Partial tower implementation
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user