[−][src]Struct genie_scx::Map
Describes the terrain in a map.
Implementations
impl Map
[src]
pub fn new(width: u32, height: u32) -> Self
[src]
Create a new, empty map.
pub fn fill(&mut self, terrain_type: u8)
[src]
Fill the map with the given terrain type.
pub fn read_from(input: impl Read) -> Result<Self>
[src]
Read map/terrain data from an input stream.
pub fn write_to(&self, output: impl Write, version: u32) -> Result<()>
[src]
Write map/terrain data to an output stream.
pub fn version(&self) -> u32
[src]
Get the version of the map data.
pub fn width(&self) -> u32
[src]
Get the width of the map.
pub fn height(&self) -> u32
[src]
Get the height of the map.
pub fn tile(&self, x: u32, y: u32) -> Option<&Tile>
[src]
Get a tile at the given coordinates.
If the coordinates are out of bounds, returns None.
pub fn tile_mut(&mut self, x: u32, y: u32) -> Option<&mut Tile>
[src]
Get a mutable reference to the tile at the given coordinates.
If the coordinates are out of bounds, returns None.
pub fn tiles(&self) -> impl Iterator<Item = &Tile>
[src]
Iterate over all the tiles.
pub fn tiles_mut(&mut self) -> impl Iterator<Item = &mut Tile>
[src]
Iterate over all the tiles, with mutable references.
This is handy if you want to replace terrains throughout the entire map, for example.
pub fn rows(&self) -> impl Iterator<Item = &[Tile]>
[src]
Iterate over all the tiles by row.
This is handy if you want to iterate over tiles while keeping track of coordinates.
Example
let mut ys = vec![]; for (y, row) in map.rows().enumerate() { let mut xs = vec![]; for (x, tile) in row.iter().enumerate() { xs.push(x); } assert_eq!(xs, (0..120).collect::<Vec<usize>>()); ys.push(y); } assert_eq!(ys, (0..120).collect::<Vec<usize>>());
pub fn rows_mut(&mut self) -> impl Iterator<Item = &mut [Tile]>
[src]
Iterate over all the tiles by row, with mutable references.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Map
impl Send for Map
impl Sync for Map
impl Unpin for Map
impl UnwindSafe for Map
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
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> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
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>,