Partial tower implementation

This commit is contained in:
2024-02-09 15:46:53 +01:00
parent e9b9c68f6b
commit bc7da3c7a3
8 changed files with 171 additions and 3 deletions

View File

@@ -90,6 +90,16 @@ ECS_MOVE(Building, dst, src, {
*src = (Building) {.type = 0};
})
ECS_DTOR(AttachedEntity, attacked, {
if (ecs_is_alive(ECS, attacked->entity))
ecs_delete(ECS, attacked->entity);
attacked->entity = 0;
})
ECS_MOVE(AttachedEntity, dst, src, {
*dst = *src;
src->entity = 0;
})
void delayDeleteUpdate(ecs_iter_t *it) {
DelayDelete *delay = ecs_field(it, DelayDelete, 1);
@@ -117,6 +127,10 @@ void setupSystems() {
.dtor = ecs_dtor(Building),
.move_dtor = ecs_move(Building)
});
ecs_set_hooks(ECS, AttachedEntity, {
.dtor = ecs_dtor(AttachedEntity),
.move_dtor = ecs_move(AttachedEntity)
});
ECS_OBSERVER(ECS, entityPathRemove, EcsOnRemove, Path);
@@ -140,6 +154,8 @@ void setupSystems() {
ECS_SYSTEM(ECS, resetHarvestCount, EcsOnUpdate, Harvestable);
ECS_SYSTEM(ECS, updateAISystem, EcsOnUpdate, BzBTState);
ECS_SYSTEM(ECS, updateTower, EcsOnUpdate, Owner, Tower, Position, Size);
ECS_SYSTEM(ECS, updateAnimationState, EcsOnUpdate, Animation, TextureRegion);
ECS_SYSTEM(ECS, updateAnimation, EcsOnUpdate, Animation, TextureRegion);
ECS_SYSTEM(ECS, updateEasingSystem, EcsOnUpdate, Easing, Position, HitBox, Rotation);