pub struct PlaneOrder { /* private fields */ }Expand description
The order the planes of a launch take a level’s tiles in, where a plane level spans the launch
rather than one cube (Levels::launch_planes): in blocks, each
a box of tiles held by consecutive planes, the blocks taken in a CubeOrder over their grid.
A plane of the launch is numbered by its cube and its place in it, cube · planes_per_cube + UNIT_POS_Y, the cube read off the grid’s x and y. Where a block holds a cube’s planes,
as it does unless cubes_of says otherwise, each cube takes one block,
and the launch deals its tiles as a cube level with a plane level inside it would. Any order
is right: the planes share nothing, so the order only says which tiles the planes of one cube
take together.
Every plane the launch spawns walks one tile, as every plane of a cube level’s cube does: a
plane past the last tile, of a block the edge cuts short or of a cube past the last block,
walks one past the grid, which the binding masks (PlaneOrder::overruns). So the
planes of a cube all reach any barrier one of them meets.
Implementations§
Source§impl PlaneOrder
impl PlaneOrder
Sourcepub fn new(block: &[(Axis, usize)], block_order: CubeOrder) -> Self
pub fn new(block: &[(Axis, usize)], block_order: CubeOrder) -> Self
Blocks of block tiles, one tile a plane, taken in block_order, one block a cube: what a
cube level holding a plane level of block hands out.
Sourcepub fn cubes_of(self, planes: usize) -> Self
pub fn cubes_of(self, planes: usize) -> Self
This order with the launch’s cubes holding planes planes each, which need not be a
block’s: a block then spans several cubes, or a cube several blocks.
pub fn planes_per_cube(&self) -> usize
Sourcepub fn block_along(&self, axis: Axis) -> usize
pub fn block_along(&self, axis: Axis) -> usize
Tiles one block holds along axis.
pub fn block_order(&self) -> CubeOrder
Trait Implementations§
Source§impl Clone for PlaneOrder
impl Clone for PlaneOrder
Source§impl Debug for PlaneOrder
impl Debug for PlaneOrder
impl Eq for PlaneOrder
Source§impl Hash for PlaneOrder
impl Hash for PlaneOrder
Source§impl PartialEq for PlaneOrder
impl PartialEq for PlaneOrder
impl StructuralPartialEq for PlaneOrder
Auto Trait Implementations§
impl Freeze for PlaneOrder
impl RefUnwindSafe for PlaneOrder
impl Send for PlaneOrder
impl Sync for PlaneOrder
impl Unpin for PlaneOrder
impl UnsafeUnpin for PlaneOrder
impl UnwindSafe for PlaneOrder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneExpand for Twhere
T: Clone,
impl<T> CloneExpand for Twhere
T: Clone,
fn __expand_clone_method(&self, _: &Scope) -> T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> CompilationArg for T
impl<T> CompilationArg for T
Source§fn dynamic_cast<Arg>(&self) -> Argwhere
Arg: CompilationArg,
fn dynamic_cast<Arg>(&self) -> Argwhere
Arg: CompilationArg,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<K, Q> Equivalent<Q> for K
impl<K, Q> Equivalent<Q> for K
Source§fn equivalent(&self, key: &Q) -> bool
fn equivalent(&self, key: &Q) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more