Files
PixelDefense/game/systems.h

87 lines
1.5 KiB
C

#ifndef PIXELDEFENSE_SYSTEMS_H
#define PIXELDEFENSE_SYSTEMS_H
#include <flecs.h>
#include "components.h"
/**********************************
* Entity Systems
**********************************/
/* Observer (for unregistering collision)
* 0: Game (singleton)
* 1: Position
* 3: SpatialGridID
*/
void entitySpatialRemoved(ecs_iter_t *it);
/* Observer (for releasing path objects)
* 0: Game (singleton) for object pool
* 1: Path
*/
void pathRemoved(ecs_iter_t *it);
/*
* 0: Game (singleton) for entity map
* 1: Position
* 2: Size
* 3: Velocity (only entities with velocity change position)
* 4: SpatialGridID
*/
void entityUpdateSpatialID(ecs_iter_t *it);
/*
* 0: Game (singleton) for collisions
* 1: Position
* 2: Rotation
* 3: Velocity
* 4: AngularVelocity
* 5: SteeringOutput
*/
void entityUpdateKinematic(ecs_iter_t *it);
/*
* 1: Position
* 2: Rotation
* 3: Velocity
* 4: AngularVelocity
* 5: SteeringOutput
* 6: Path
*/
void entityFollowPath(ecs_iter_t *it);
/*
* 0:
*/
void renderTerrain(ecs_iter_t *it);
void renderBuildings(ecs_iter_t *it);
void renderEntities(ecs_iter_t *it);
/*
* 1: Position
* 2: Size
*/
void renderColliders(ecs_iter_t *it);
/*
* 1: Path
*/
void renderDebugPath(ecs_iter_t *it);
/**********************************
* Entity Systems
**********************************/
/*
* Task:
* 0: Game (singleton)
* 0: InputState (singleton)
*/
void updatePlayerInput(ecs_iter_t *it);
#endif //PIXELDEFENSE_SYSTEMS_H