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
Changelog:
- Each scene will have its own particle system to maintain
- Crate destruction now emits particles
- Draw particles during screen renders
- May want to make this configurable
- Should be in general scene render
Changelog:
- Add entity draw culling
- Tweak culling range
- Remove unnecessary draws for game scene, those are debug anyways
- Reorder draw in game scene for entity
Changelog:
- Add air timer component
- Update movement component to keep track of x direction
- This indicate the facing direction
- Implement air timer update system
- Add air timer component to player
- Render player's air timer
Internal Changelog:
- Delay zeroing velocity on edge check to after hitbox update
- Update player velocity on hitting a crate explicitly
- This is due to the zeroing velocity changes above
- This essentially allow 'phasing' through chest but not wooden
crates
- Render crates using material instead of fragile flag
Internal Changelog:
- chest entity: Basically crates, but high def, and fragile
- Add new spawn type for chest
- Add atk modifier for player->chest
- Make crate non-fragile
- Ignore chest for collision check and move with player
Changelog:
- Add in rres
- Split rres header only into two files. Easier to deal with. Sorry
Raysan...
- Add function to load assets from rres chunk
- Add function to load player sprite info from rres chunk
- Test loading rres in scene test
Changelog:
- Increase ground friction generally.
- Reduce friction when the player is moving on the ground. To compensate,
reduce player acceleration as well. Now, the player stops faster
without losing too much max speed.
Changelog:
- Update player bbox update
- Update hitbox update system to account for player
- Reduce explosion size to allow better chaining behaviour
- Reduce lifetime of destroyed crates
Changelog:
- Add player dead sprite
- Add function to create dead player entity
- It is easier to create a new entity than to transform an existing
one
- Update existing respawn system
By this project convention, the line extend will start from p1 and
end at p2, but not including p2 [p1, p2). Thus, existing tests are
testing a zero-length line, which should assert no collision.
Add test to properly test AABB edge collision with a line
Also update existing collision function to account for this
Changelog:
- Fill only a range of reachable tiles instead
- Tweak fill complete check
- Count tiles filled, if zero: complete
- Allow multiple runner to fill without breaking the game
Changelog:
- Add in scanline filling process
- Use signed integer for calculation
- Generalise BFS to only depend on the current cell
- During the search for the lowest reachable tile, allow a single
tile equal or higher to the starting tile
This is to allow moving upwards when no valid lower tile exists
Changelog:
- Add new state for when runner reaches target position
- Skip movement if already on target position
- Add extra handling for spawning on solid tile
- Fix tile toggling bug on the same tile
Changelog:
- water runner needs ctransform + ctilecoord at least to be in the tile
update system
- Update the tilemap update system as well
- Update rendering function for water runner
- Update water runner creation to handle failure to create
- Add a tag for water runner (pending proper tag)
Changelog:
- Clear to_update queue correctly
- Move entity deletion after adding
- This is to allow deletion immediately after adding
- Should be okay
- Fix incorrect null checking when adding entity
- Queue deletion when removing entity even if not found at removal time
- The update function should handle such case
Changelog:
- Add new component: water runner component
- specific for such an entity. Not general, but i dont really care
- Implement adding and freeing the water filler entity
- Component involves dynamic memory allocation, so need custom
function to add and free
- May look into custom allocation for this part in the future.
Changelog:
- Move tilemap update to be at the start
- This is to account for new entities being created
- The post tile collision is not used for now
- Change auto-crouch collision check to check for entities as well
Changelog:
- Add Lifetimer and remove hurtbox on hit
- Still insta-remove on player hit
- Fix adding a component to an entity that already has that component
- Reorder lifetimer update system
Changelog:
- Defer component updates as iterator invalidation can occur
- Add new struct for this + queue on entity manager
- Add new component: CLifeTimer
- Basically a timer to live for entity
Changelog:
- Refactor function to change a tile type
- Destroy entities without bbox when OOB
- Add hitbox collision checking with tiles
- Add defense point on tiles
Changelog:
- Add function spawn arrow
- Update game system to handle null components
- enough for the arrow to work
- Render arrow, sort of
- Initial implementation, definitely need more work
Changelog:
- Add row below game scene to select spawning entity
- Add mouse release logic to select spawning entity
- Update render order for tile
- order: 'moveable' -> tile -> water level
Changelog:
- Spike collision is now checked against all bboxes
- Non player will destroy it
- Add moveable flag for each tile to determine whether a boulder can
move into it
Changelog:
- Fix incomplete line-AABB collision check
- Add line-AABB check for grid
- Change len_reduction to 0
- Set tiles to check once during edge checking
Changelog:
- Figure out why the previous AABB behaviour was correct: continuum
[0, 5) does not collide with [5, 10)
For tile check however, need to subtract one to avoid extra tile
check. Exception is the tile collision