From 3c63c68597a3523f62f40ed12ffc91f31c8adf66 Mon Sep 17 00:00:00 2001 From: Klemen Plestenjak Date: Mon, 29 Jan 2024 12:35:06 +0100 Subject: [PATCH] Re-add gold ore --- game/map_init.c | 31 +++++++++++++++++++------------ game/systems/s_ui.c | 4 ++-- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/game/map_init.c b/game/map_init.c index 24f4c52..c84f616 100644 --- a/game/map_init.c +++ b/game/map_init.c @@ -121,24 +121,30 @@ bool initRocksLayer(BzTileMap *map, BzTileLayer *layer) { tile = bzTilesetGetTileID(tileset, tile); if (tile == -1) continue; // Not a tree + BzTileID tileID = bzTilesetGetTileID(tileset, layerTile); + BZ_ASSERT(hasEntityHitBoxRec(tileID)); + HitBox hb = getEntityHitBoxRec(tileID); + f32 sizeX = tileset->tileWidth; f32 sizeY = tileset->tileHeight; f32 posX = layer->offsetX + x * sizeX; f32 posY = layer->offsetY + y * sizeY; + posY += sizeY; ecs_entity_t e = entityCreateEmpty(); - SpatialGridID gridID = bzSpatialGridInsert(game->entityGrid, &e, posX, posY, sizeX, sizeY); + Position pos = {posX, posY}; + HitBox tHb = entityTransformHitBox(pos, hb); + SpatialGridID gridID = bzSpatialGridInsert(game->entityGrid, &e, + tHb.x, tHb.y, + tHb.width, tHb.height); ecs_set(ECS, e, SpatialGridID, {gridID}); - posX += sizeX * 0.5f; - posY += sizeY * 0.5f; - ecs_set(ECS, e, Position, {posX, posY}); - ecs_set(ECS, e, HitBox, {sizeX, sizeY}); + ecs_set_ptr(ECS, e, Position, &pos); + ecs_set(ECS, e, Size, {sizeX, sizeY}); + ecs_set_ptr(ECS, e, HitBox, &hb); ecs_set(ECS, e, Rotation, {0}); - BzTile tileID = bzTilesetGetTileID(tileset, layerTile); - ecs_set(ECS, e, TextureRegion, {tileset->tiles, bzTilesetGetTileRegion(tileset, tileID)}); + ecs_set(ECS, e, TextureRegion, {tileset->tiles, getTextureRect(tileID)}); ecs_set(ECS, e, Resource, {RES_GOLD, 80}); ecs_add_id(ECS, e, Selectable); ecs_add_id(ECS, e, Harvestable); - } } return true; @@ -165,13 +171,14 @@ bool initTreesLayer(BzTileMap *map, BzTileLayer *layer) { f32 posX = layer->offsetX + x * sizeX; f32 posY = layer->offsetY + y * sizeY; posY += sizeY; + Position pos = {posX, posY}; ecs_entity_t e = entityCreateEmpty(); - HitBox tHitBox = entityTransformHitBox((Position) {posX, posY}, hb); + Rectangle tHb = entityTransformHitBox((Position) {posX, posY}, hb); SpatialGridID gridID = bzSpatialGridInsert(game->entityGrid, &e, - tHitBox.x, tHitBox.y, - tHitBox.width, tHitBox.height); + tHb.x, tHb.y, + tHb.width, tHb.height); ecs_set(ECS, e, SpatialGridID, {gridID}); - ecs_set(ECS, e, Position, {posX, posY}); + ecs_set_ptr(ECS, e, Position, &pos); ecs_set(ECS, e, Size, {sizeX, sizeY}); ecs_set_ptr(ECS, e, HitBox, &hb); ecs_set(ECS, e, Rotation, {0}); diff --git a/game/systems/s_ui.c b/game/systems/s_ui.c index 84b9a2f..96f1ee2 100644 --- a/game/systems/s_ui.c +++ b/game/systems/s_ui.c @@ -247,8 +247,8 @@ void drawMainMenuUI(Game *game, f32 dt) { setScreen(game, SCREEN_GAME); unloadMap(game); //loadMap(game, "assets/maps/tree_test.tmj"); - loadMap(game, "assets/maps/entity_test.tmj"); - //loadMap(game, "assets/maps/map_01.tmj"); + //loadMap(game, "assets/maps/entity_test.tmj"); + loadMap(game, "assets/maps/map_01.tmj"); } if (uiMainMenuButton("Settings", true)) { setScreen(game, SCREEN_SETTINGS);