Add hitboxes
This commit is contained in:
@@ -130,7 +130,7 @@ bool initRocksLayer(BzTileMap *map, BzTileLayer *layer) {
|
||||
posX += sizeX * 0.5f;
|
||||
posY += sizeY * 0.5f;
|
||||
ecs_set(ECS, e, Position, {posX, posY});
|
||||
ecs_set(ECS, e, Size, {sizeX, sizeY});
|
||||
ecs_set(ECS, e, HitBox, {sizeX, sizeY});
|
||||
ecs_set(ECS, e, Rotation, {0});
|
||||
BzTile tileID = bzTilesetGetTileID(tileset, layerTile);
|
||||
ecs_set(ECS, e, TextureRegion, {tileset->tiles, bzTilesetGetTileRegion(tileset, tileID)});
|
||||
@@ -155,20 +155,24 @@ bool initTreesLayer(BzTileMap *map, BzTileLayer *layer) {
|
||||
tile = bzTilesetGetTileID(tileset, tile);
|
||||
if (tile == -1) continue; // Not a tree
|
||||
|
||||
BzTile 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;
|
||||
ecs_entity_t e = entityCreateEmpty();
|
||||
SpatialGridID gridID = bzSpatialGridInsert(game->entityGrid, &e, posX, posY, sizeX, sizeY);
|
||||
SpatialGridID gridID = bzSpatialGridInsert(game->entityGrid, &e,
|
||||
posX + hb.x, posY + hb.y,
|
||||
hb.width, hb.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, 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_WOOD, 20});
|
||||
ecs_add_id(ECS, e, Selectable);
|
||||
ecs_add_id(ECS, e, Harvestable);
|
||||
|
||||
Reference in New Issue
Block a user