Changelog:
- Refactor the EC header files to put struct in more sensible locations:
- Sprite and Particle Emitter + Configs are now assets, as they
should be
- Components type are now unsigned int, thus it is not sensitive to
any component enums
- Components enums are now pure index store. There are two sets of
components: Basic for engine use, Extended for game-specific ones
- Component memory pools are now defined on outside of engine. Majority
of the components will be game-specific, so it should be on the game
to define the components and the mempools for all of them.
Internal Changelog:
- Remove spawn position for entity
- Not used. If spawning is needed, use a spawning entity
- Put in state machine callback function
- Player spawning system is part of callback function
- Remove player spawning system
- Incorporate state transition in systems
Changelog:
- src anchorpoint is also an enum. The offset needs to be computed
dynamically due to flip_x
- Re-add back the offset field.
- Add symbol parsing for anchor point.
Internal Changelog:
- Add a new field to store frames per row for a sprite
- Update sprite drawing function to bound check
- Update assets loader to look for the new field
- Refactor adding a sprite function to reduce repetition
- Update all main programs
Internal Changelog:
- Major change: all engine that does counting uses delta time instead of
frame counting
- Animation runs at 24 FPS
- Water fill is at a constant rate as well
- Particle update will need to be given delta time as well.
- Particle system is not updated to use float, so no delta time handling
for the system in this commit
Position is so commonly used that placing it into Entity from the
CTransform components reduces the reference to CTransform.
Void Particle proved that it made development much easier.
Changelog:
- Move sprite to emitter itself to allow better reusing emitter config
- Dedicate a function for destroying entity. This is helpful for dealing
with events that only occurs during entity destruction