Implement harvest worker AI
This commit is contained in:
@@ -6,6 +6,9 @@
|
||||
#include "game_state.h"
|
||||
#include "map_layers.h"
|
||||
|
||||
#include "unit_ai.h"
|
||||
#include "unit_actions.h"
|
||||
|
||||
bool initGameObjectsLayer(BzTileMap *map, BzTileObjectGroup *objectGroup) {
|
||||
Game *game = ecs_singleton_get_mut(ECS, Game);
|
||||
for (i32 i = 0; i < objectGroup->objectCount; i++) {
|
||||
@@ -67,15 +70,19 @@ bool initBuildingsLayer(BzTileMap *map, BzTileLayer *layer) {
|
||||
buildingTile = getTileBuilding(buildingTile);
|
||||
if (buildingTile == BUILDING_NONE || ownerTile == 0) continue;
|
||||
// We have a building
|
||||
TileSize size = {};
|
||||
getBuildingSize(buildingTile, &size.sizeX, &size.sizeY);
|
||||
bzTileLayerSetTile(ownershipLayer, 0, x, y, size.sizeX, size.sizeY);
|
||||
TileSize tileSize = {};
|
||||
getBuildingSize(buildingTile, &tileSize.sizeX, &tileSize.sizeY);
|
||||
bzTileLayerSetTile(ownershipLayer, 0, x, y, tileSize.sizeX, tileSize.sizeY);
|
||||
|
||||
const i32 tileWidth = map->tileWidth;
|
||||
const i32 tileHeight = map->tileHeight;
|
||||
ecs_entity_t e = ecs_new_id(ECS);
|
||||
ecs_set(ECS, e, Position, {.x = x * tileWidth, .y = y * tileHeight});
|
||||
ecs_set(ECS, e, TileSize, {.sizeX = size.sizeX * tileWidth, .sizeY = size.sizeY * tileHeight});
|
||||
Size size = {.x = tileSize.sizeX * tileWidth, .y = tileSize.sizeY * tileHeight };
|
||||
ecs_set_ptr(ECS, e, Size, &size);
|
||||
ecs_set(ECS, e, Position, {
|
||||
.x = x * tileWidth + size.x * 0.5f,
|
||||
.y = y * tileHeight + size.y * 0.5f
|
||||
});
|
||||
ownerTile = bzTilesetGetTileID(buildingTileset, ownerTile);
|
||||
ownerTile = getTileBuilding(ownerTile);
|
||||
ecs_set(ECS, e, Owner, {.playerID=ownerTile});
|
||||
@@ -83,6 +90,9 @@ bool initBuildingsLayer(BzTileMap *map, BzTileLayer *layer) {
|
||||
//if (buildingTile == BUILDINGS_WAREHOUSE) {
|
||||
// ecs_set(ECS, e, Storage, {});
|
||||
//}
|
||||
if (buildingTile == BUILDING_KEEP) {
|
||||
ecs_set(ECS, e, Storage, {.capacity[RES_WOOD] = 1000});
|
||||
}
|
||||
|
||||
//bzTileMapUpdateCollider(&GAME.map, x, y);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user