Add rest of assets, add blue player

This commit is contained in:
2024-01-23 11:26:23 +01:00
parent ac7525c42a
commit c9a2bd2672
45 changed files with 6647 additions and 39 deletions

View File

@@ -28,13 +28,13 @@ void updateAnimationState(ecs_iter_t *it) {
}
}
void updateAnimation(ecs_iter_t *it) {
Game *game = ecs_singleton_get_mut(ECS, Game);
Animation *anim = ecs_field(it, Animation, 1);
TextureRegion *texture = ecs_field(it, TextureRegion, 2);
float dt = GetFrameTime();
for (i32 i = 0; i < it->count; i++) {
ecs_entity_t entity = it->entities[i];
AnimationFrame frame = anim[i].frame;
AnimationSequence seq = anim[i].sequence;
@@ -46,7 +46,14 @@ void updateAnimation(ecs_iter_t *it) {
anim[i].frame = entityGetAnimationFrame(anim[i].entityType, anim[i].animType, nextFrame);
anim[i].elapsed = 0.0f;
texture[i].rec = bzTilesetGetTileRegion(anim[i].tileset, anim[i].frame.frame);
texture[i].rec = getTextureRect(anim[i].frame.frame);
if (ecs_has(ECS, entity, Owner)) {
Owner owner = *ecs_get(ECS, entity, Owner);
BzTileID base = anim[i].frame.frame;
Vector2 offset = getTileOffset(base, owner.player);
texture[i].rec.x += offset.x;
texture[i].rec.y += offset.y;
}
}
}

View File

@@ -45,10 +45,23 @@ void entityPathRemove(ecs_iter_t *it) {
}
}
void updateTextureOwnerTile(ecs_iter_t *it) {
TextureRegion *tex = ecs_field(it, TextureRegion, 1);
Owner *owner = ecs_field(it, Owner, 2);
for (i32 i = 0; i < it->count; i++) {
Rectangle rec = tex[i].rec;
BzTileID base = ((int)rec.y / 16) * 256 + ((int) rec.x / 16);
Vector2 offset = getTileOffset(base, owner[i].player);
tex[i].rec.x += offset.x;
tex[i].rec.y += offset.y;
}
}
void entityUpdateSpatialID(ecs_iter_t *it) {
Game *game = ecs_singleton_get_mut(ECS, Game);
Position *position = ecs_field(it, Position, 1);
Position *size = ecs_field(it, Position, 2);
Position *size = ecs_field(it, Size, 2);
//Velocity *velocity = ecs_field(it, Velocity, 3);
SpatialGridID *id = ecs_field(it, SpatialGridID, 4);

View File

@@ -252,7 +252,7 @@ void updatePlayerInput() {
getBuildingSize(input->building, &sizeX, &sizeY);
bool canPlace = canPlaceBuilding(game, input->building, tileX, tileY);
if (canPlace && isInputBtnDown(input, primaryBtn)) {
placeBuilding(game, input->building, tileX, tileY, (Owner) {-1});
placeBuilding(game, input->building, tileX, tileY, (Owner) {PLAYER_BLUE});
}
input->buildingCanPlace = canPlace;
input->buildingPos = (Vec2i) {tileX, tileY};

View File

@@ -58,7 +58,7 @@ void drawGameUI(Game *game, f32 dt) {
BUILDING_MARKET,
BUILDING_MILL,
BUILDING_HOUSE_02, // placeholder for farm
BUILDING_BARRACS,
BUILDING_BARRACKS,
BUILDING_ARCHERY_RANGE
};
const char *buildingNames[] = {

View File

@@ -107,6 +107,8 @@ void setupSystems() {
ECS_OBSERVER(ECS, entityPathRemove, EcsOnRemove, Path);
ECS_OBSERVER(ECS, updateTextureOwnerTile, EcsOnSet, TextureRegion, Owner);
ECS_SYSTEM(ECS, entityUpdateSpatialID, EcsOnUpdate, Position, Size, Velocity, SpatialGridID);
ECS_SYSTEM(ECS, entityUpdateKinematic, EcsOnUpdate, Position, Velocity, Steering, Unit);

View File

@@ -60,6 +60,8 @@ void updateEasingSystem(ecs_iter_t *it);
*/
void entityPathRemove(ecs_iter_t *it);
void updateTextureOwnerTile(ecs_iter_t *it);
/*
* 0: Game (singleton) for entity map
* 1: Position