| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
The systems other than movement add directions to a list, and then movement pops elements off until it can start moving in that direction. This adds some more abstraction, because now only the movement system has to call moveEntityOnGrid.
|
| |
|
|
|
|
| |
Partially just for fun.
|
|
|
|
| |
There aren't going to be enough entities at once for position checking to ever really be a bottleneck, I don't think. Removing the caches makes the range logic a bit more intuitive, and it removes the possibility of accidentally not updating a cache when it needs to be.
|
| |
|
|
|
|
| |
Small implementation changes in various places, biggest thing is now we're using ranges, which is experimental and will be included for real in C++20.
|
|
|
|
|
|
|
|
|
|
| |
Scheduled entities move downward every beat, although they have a speed that is twice the bpm, so essentially they move every other beat?
Broke the simulation loop such that different parts run independently -- made it horizontal rather than vertical.
Encapsulated the grid cache so that more than one position field could be cached. This is used to make sure that an entity can't move into a space that something else is already moving into.
Fixed issue where an entity could move perpendicularly into the space an entity was moving out of.
|
|
|
|
|
|
| |
An entity can only move into a space a block is moving out of if the time it would take the entity to move into the tile is at least the time remaining for the other block to finish moving out of the space.
Also, crates can push each other now.
|
| |
|
| |
|
| |
|
|
|