Fix hitboxes for entities
This commit is contained in:
@@ -8,7 +8,7 @@ ecs_entity_t entityCreateEmpty() {
|
||||
return e;
|
||||
}
|
||||
|
||||
ecs_entity_t entityCreateBaseUnit(const Position position, Player player,
|
||||
ecs_entity_t entityCreateBaseUnit(const Position position, f32 size, Player player,
|
||||
EntityType type, AnimType startAnim, Game *game) {
|
||||
BzTileset *tileset = &game->tileset;
|
||||
BzTileID tileID = getEntityTile(type);
|
||||
@@ -19,7 +19,13 @@ ecs_entity_t entityCreateBaseUnit(const Position position, Player player,
|
||||
HitBox hitbox = getEntityHitBoxRec(tileID);
|
||||
ecs_entity_t e = entityCreateEmpty();
|
||||
ecs_set_ptr(ECS, e, Position, &position);
|
||||
//ecs_set_ptr(ECS, e, HitBox, &hitbox);
|
||||
f32 scl = size / region.rec.width;
|
||||
ecs_set(ECS, e, Size, {region.rec.width * scl, region.rec.height * scl});
|
||||
hitbox.x *= scl;
|
||||
hitbox.y *= scl;
|
||||
hitbox.width *= scl;
|
||||
hitbox.height *= scl;
|
||||
ecs_set_ptr(ECS, e, HitBox, &hitbox);
|
||||
BzSpatialGridID spatialID = bzSpatialGridInsert(game->entityGrid, &e,
|
||||
position.x + hitbox.x, position.y + hitbox.y,
|
||||
hitbox.width, hitbox.height);
|
||||
@@ -60,13 +66,13 @@ ecs_entity_t entityCreateBaseUnit(const Position position, Player player,
|
||||
}
|
||||
|
||||
ecs_entity_t entityCreateSoldier(const Position position, Player player, Game *game) {
|
||||
ecs_entity_t e = entityCreateBaseUnit(position, player, ENTITY_SOLDIER, ANIM_IDLE, game);
|
||||
ecs_entity_t e = entityCreateBaseUnit(position, 10.0f, player, ENTITY_SOLDIER, ANIM_IDLE, game);
|
||||
return e;
|
||||
}
|
||||
|
||||
ecs_entity_t entityCreateWorker(const Position position, Player player, Game *game) {
|
||||
BzTileset *tileset = &game->tileset;
|
||||
ecs_entity_t e = entityCreateBaseUnit(position, player, ENTITY_WORKER, ANIM_IDLE, game);
|
||||
ecs_entity_t e = entityCreateBaseUnit(position, 10.0f, player, ENTITY_WORKER, ANIM_IDLE, game);
|
||||
|
||||
ecs_set(ECS, e, Worker, {
|
||||
.collectSpeed = 0.8f,
|
||||
|
||||
Reference in New Issue
Block a user