LevelData

Struct LevelData 

Source
pub struct LevelData {
    pub version: VersionSpecs,
    pub spawners: Vec<Spawner>,
    pub cells: Cells,
    pub tile_properties: Vec<TileProperties>,
    pub metadata: LevelMetaData,
    pub background_layers: Vec<BackgroundLayer>,
}
Expand description

The overarching level data structure. Holds everything pertaining to a level in CNM Online.

Fields§

§version: VersionSpecs

Version specifications

§spawners: Vec<Spawner>

A list of all the objects in the level

§cells: Cells

A grid of cells (tiles, blocks, whatever you want to call them) in the level.

§tile_properties: Vec<TileProperties>

An array of tile properties. A tile ID corresponds to a entry in this array.

§metadata: LevelMetaData

Level select metadata

§background_layers: Vec<BackgroundLayer>

An array of background layers. Ones futher in the array draw over ones in front (smaller indices).

Implementations§

Source§

impl LevelData

Source

pub fn from_version(version: u32) -> Result<Self, Error>

Create a blank level from a level version.

Only version supported is version ID 1.

Source

pub fn from_lparse( cnmb: &LParse, cnms: &LParse, ignore_warnings: bool, ) -> Result<Self, Error>

Load a level from the .cnmb and .cnms lparse files

Ignore warnings loads levels with illogical configurations of elements, like for example a cell with a ID that goes beyond the tile properties array, but sometimes this has to be used because old CNM levels sometimes have garbage data that will trigger the warnings anyway. If a warning does get triggered anyway, it will return it as an error.

Hasn’t been tested but levels created with the API under normal circumstances shouldn’t trigger any warnings.

Source

pub fn save(&self, cnmb: &mut LParse, cnms: &mut LParse)

Saves to a the 2 files. Creates them if they’re not there, or overwrites them if they are.

Trait Implementations§

Source§

impl Debug for LevelData

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for LevelData

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for LevelData

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,