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