[−][src]Struct rust_action_heroes::system::grab::GrabSystem
Grab System
The grab system was an interesting challenge.
The mechanic in One Action Heroes is that all entities touching Grabaron get toggled into a "Grab" state. Not only that, but all entities touching those entities get toggled to the "Grab" state, and so on.
I decided to implement it by having a Holding
component which tags a component as holdable.
These are the player characters, crates, and keys mostly.
The crux of the solution then was to start with Grabaron and iteratively process all entities it, and all entities touching those entities, etc. It's not performant, but it gets the job done.
Fields
reader: ReaderId<TransformedInputEvent>
Implementations
impl GrabSystem
[src]
pub(crate) fn new(reader: ReaderId<TransformedInputEvent>) -> Self
[src]
Trait Implementations
impl<'s> System<'s> for GrabSystem
[src]
type SystemData = (Read<'s, EventChannel<TransformedInputEvent>>, ReadStorage<'s, Position>, WriteStorage<'s, Holding>, ReadStorage<'s, Named>)
The resource bundle required to execute this system. Read more
fn run(&mut self, (channel, positions, holdings, nameds): 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, GrabSystem> for GrabSystem
[src]
fn build(self, world: &mut World) -> GrabSystem
[src]
Auto Trait Implementations
impl !RefUnwindSafe for GrabSystem
impl Send for GrabSystem
impl Sync for GrabSystem
impl Unpin for GrabSystem
impl !UnwindSafe for GrabSystem
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>,