[−][src]Struct rust_action_heroes::system::process_input::ProcessInputSystem
ProcessInputSystem transforms raw(ish) InputHandler inputs into a small set of possible actions. i.e., instead of all systems dealing with user input having to match on all possible keybaord inputs, we match on "Move Up", "Move Down", "Interact", etc.
ProcessInputSystem also handles the "spamming input problem" in turn-based games by remembering what the current action is and only sending a new signal when the user input changes. This means that if someone pressed "Up", the game only sends/reads one "Move Up" message, even though the InputHandler is spamming "Up" once per frame.
The "spamming input problem" could be solved by having some "turn" construct where we read input for a turn, then reject input until the next turn, but this was easier. The user is in control of when their turns are, and in this simple game there is no AI to take a different turn, so the user's turns can happen as fast as they can press keys.
Fields
curr: BTreeSet<VirtualKeyCode>
Implementations
impl ProcessInputSystem
[src]
Trait Implementations
impl<'s> System<'s> for ProcessInputSystem
[src]
type SystemData = (Read<'s, InputHandler<StringBindings>>, Write<'s, EventChannel<TransformedInputEvent>>)
The resource bundle required to execute this system. Read more
fn run(&mut self, (input, input_event_channel): Self::SystemData)
[src]
fn running_time(&self) -> RunningTime
fn accessor(&'b self) -> AccessorCow<'a, 'b, Self>
fn setup(&mut self, world: &mut World)
fn dispose(self, world: &mut World)
impl<'system_desc_a, 'system_desc_b> SystemDesc<'system_desc_a, 'system_desc_b, ProcessInputSystem> for ProcessInputSystem
[src]
fn build(self, world: &mut World) -> ProcessInputSystem
[src]
Auto Trait Implementations
impl RefUnwindSafe for ProcessInputSystem
impl Send for ProcessInputSystem
impl Sync for ProcessInputSystem
impl Unpin for ProcessInputSystem
impl UnwindSafe for ProcessInputSystem
Blanket Implementations
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S where
D: AdaptFrom<S, Swp, Dwp, T>,
Dwp: WhitePoint,
Swp: WhitePoint,
T: Component + Float,
[src]
D: AdaptFrom<S, Swp, Dwp, T>,
Dwp: WhitePoint,
Swp: WhitePoint,
T: Component + Float,
fn adapt_into_using<M>(self, method: M) -> D where
M: TransformMatrix<Swp, Dwp, T>,
[src]
M: TransformMatrix<Swp, Dwp, T>,
fn adapt_into(self) -> D
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Any for T where
T: Any,
T: Any,
fn get_type_id(&self) -> TypeId
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Event for T where
T: Send + Sync + 'static,
T: Send + Sync + 'static,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Resource for T where
T: Any + Send + Sync,
T: Any + Send + Sync,
impl<'a, T> RunNow<'a> for T where
T: System<'a>,
T: System<'a>,
fn run_now(&mut self, world: &'a World)
fn setup(&mut self, world: &mut World)
fn dispose(self: Box<T>, world: &mut World)
impl<'a, T> RunWithPool<'a> for T where
T: System<'a>,
T: System<'a>,
fn setup(&mut self, world: &mut World)
fn run(&mut self, world: &'a World, &ThreadPool)
fn reads(&self, reads: &mut Vec<ResourceId>)
fn writes(&self, writes: &mut Vec<ResourceId>)
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> SetParameter for T
fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
T: Parameter<Self>,
T: Parameter<Self>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn is_in_subset(&self) -> bool
unsafe fn to_subset_unchecked(&self) -> SS
fn from_subset(element: &SS) -> SP
impl<T> Supports<T> for T
impl<'s, S> SystemExt for S where
S: System<'s>,
S: System<'s>,
fn pausable<V>(self, value: V) -> Pausable<S, V> where
V: 'static + Send + Sync + Default + PartialEq<V>,
V: 'static + Send + Sync + Default + PartialEq<V>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,