[][src]Module rust_action_heroes::system::movement_solver

Movement was so complicated it has two systems

The only thing here is the MovementSolverSystem struct, so go read about that!

Structs

MovementEvent
MovementSolverSystem

It reads in TransformedInputEvents and outputs MovementEvents. Sounds simple enough... This is easily the most complicated system in the game.

Functions

add_all_holding

Geneartes a queue of all movaable entities in the "holding" state.

add_all_pushed

Given a queue of movement events, determines which entities will be pushed. Think Crates, Keys, other characters, etc.

core_movement_event

Generates a MovementEvent for the entity we're moving. Moving Left/Right produces the entity for "Prince horizontival the first" (veritcal), Up/Down -> "Duke vert the pure" (horizontal).

would_collide

Very simple method to determine if two positions overlap.

would_hit_obstacle

Given a set of MovementEvents, determines if that set would collide with an immovable object -- like a wall.