use crate::pos::Direction; /// Carries information on the player's inputs. /// Allows the game to retrieve player input commands, /// without tightly binding to a specific GUI or keybinds. /// This way, game logic can focus on "what the inputs do" /// as opposed to "what do the key presses mean". #[derive(Copy, Clone, Default, Debug)] pub struct PlayerInput { /// The direction that the player wants to move in. /// The creator is responsible for resolving to just one direction /// (eg if the player is holding multiple keys at once, /// or a joystick) pub direction: Option, /// If the player is currently attempting to interact /// with some object, entity, etc. pub interact: bool, /// If the player wants to use an item pub use_item: bool, /// If the player is currently attempting to attack pub attack: bool, /// If the player is attempting to drop an item pub drop: bool, /// If the player is attempting to switch the active inv slot pub inv_slot: Option, }