mindustry logic execution, map- and schematic- parsing and rendering
| -rw-r--r-- | src/data/dynamic.rs | 7 | ||||
| -rw-r--r-- | src/data/mod.rs | 76 | ||||
| -rw-r--r-- | src/main.rs | 1 | ||||
| -rw-r--r-- | src/team.rs | 76 |
4 files changed, 81 insertions, 79 deletions
diff --git a/src/data/dynamic.rs b/src/data/dynamic.rs index 0b4e3fb..64616c3 100644 --- a/src/data/dynamic.rs +++ b/src/data/dynamic.rs @@ -1,5 +1,6 @@ -use crate::data::{self, DataRead, DataWrite, GridPos, Serializer, Team}; +use crate::data::{self, DataRead, DataWrite, GridPos, Serializer}; use crate::logic::LogicField; +use crate::team::Team; #[derive(Clone, Copy, Debug, Eq, PartialEq)] pub enum UnitCommand @@ -461,7 +462,7 @@ impl From<data::WriteError> for WriteError mod test { use super::*; - use crate::data::{TEAM_CRUX, TEAM_DERELICT, TEAM_SHARDED}; + use crate::team::{CRUX, DERELICT, SHARDED}; fn compare_vec2(lhs: (f32, f32), rhs: (f32, f32)) -> bool { @@ -558,5 +559,5 @@ mod test make_dyn_test!(reparse_unit, DynData::Unit(0), DynData::Unit(2147483647)); make_dyn_test!(reparse_vec2_array, DynData::Vec2Array(vec![(4.4, 5.5), (-3.3, 6.6), (-2.2, -7.7)]), DynData::Vec2Array(vec![(2.2, -8.8)])); make_dyn_test!(reparse_vec2, DynData::Vec2(1.5, 9.1234), DynData::Vec2(-0.0, -17.0), DynData::Vec2(-10.7, 3.8)); - make_dyn_test!(reparse_team, DynData::Team(TEAM_SHARDED), DynData::Team(TEAM_CRUX), DynData::Team(TEAM_DERELICT)); + make_dyn_test!(reparse_team, DynData::Team(SHARDED), DynData::Team(CRUX), DynData::Team(DERELICT)); } diff --git a/src/data/mod.rs b/src/data/mod.rs index 029476a..6117cf8 100644 --- a/src/data/mod.rs +++ b/src/data/mod.rs @@ -1,4 +1,3 @@ -use std::fmt; use std::str::Utf8Error; pub mod base64; @@ -289,81 +288,6 @@ impl From<GridPos> for u32 } } -#[derive(Clone, Copy, Debug, Eq, Ord, PartialEq, PartialOrd)] -pub struct Team(u8); - -impl Team -{ - pub fn of(id: u8) -> Self - { - Self(id) - } - - pub fn get_id(&self) -> u8 - { - self.0 - } - - pub fn is_base(&self) -> bool - { - self.0 < 6 - } - - pub fn get_name(&self) -> Option<&'static str> - { - match self.0 - { - 0 => Some("derelict"), - 1 => Some("sharded"), - 2 => Some("crux"), - 3 => Some("malis"), - 4 => Some("green"), - 5 => Some("blue"), - _ => None, - } - } -} - -impl From<u8> for Team -{ - fn from(value: u8) -> Self - { - Team::of(value) - } -} - -impl From<Team> for u8 -{ - fn from(value: Team) -> Self - { - value.0 - } -} - -impl fmt::Display for Team -{ - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result - { - match self.0 - { - 0 => f.write_str("Derelict"), - 1 => f.write_str("Sharded"), - 2 => f.write_str("Crux"), - 3 => f.write_str("Malis"), - 4 => f.write_str("Green"), - 5 => f.write_str("Blue"), - id => write!(f, "Team #{id}"), - } - } -} - -pub const TEAM_DERELICT: Team = Team(0); -pub const TEAM_SHARDED: Team = Team(1); -pub const TEAM_CRUX: Team = Team(2); -pub const TEAM_MALIS: Team = Team(3); -pub const TEAM_GREEN: Team = Team(4); -pub const TEAM_BLUE: Team = Team(5); - #[cfg(test)] mod test { diff --git a/src/main.rs b/src/main.rs index d934136..0a097b0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,6 +7,7 @@ pub mod fluid; pub mod item; pub mod logic; pub mod modifier; +pub mod team; pub mod unit; fn main() diff --git a/src/team.rs b/src/team.rs new file mode 100644 index 0000000..5d2acd7 --- /dev/null +++ b/src/team.rs @@ -0,0 +1,76 @@ +use std::fmt; + +#[derive(Clone, Copy, Debug, Eq, Ord, PartialEq, PartialOrd)] +pub struct Team(u8); + +impl Team +{ + pub fn of(id: u8) -> Self + { + Self(id) + } + + pub fn get_id(&self) -> u8 + { + self.0 + } + + pub fn is_base(&self) -> bool + { + self.0 < 6 + } + + pub fn get_name(&self) -> Option<&'static str> + { + match self.0 + { + 0 => Some("derelict"), + 1 => Some("sharded"), + 2 => Some("crux"), + 3 => Some("malis"), + 4 => Some("green"), + 5 => Some("blue"), + _ => None, + } + } +} + +impl From<u8> for Team +{ + fn from(value: u8) -> Self + { + Team::of(value) + } +} + +impl From<Team> for u8 +{ + fn from(value: Team) -> Self + { + value.0 + } +} + +impl fmt::Display for Team +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result + { + match self.0 + { + 0 => f.write_str("Derelict"), + 1 => f.write_str("Sharded"), + 2 => f.write_str("Crux"), + 3 => f.write_str("Malis"), + 4 => f.write_str("Green"), + 5 => f.write_str("Blue"), + id => write!(f, "Team #{id}"), + } + } +} + +pub const DERELICT: Team = Team(0); +pub const SHARDED: Team = Team(1); +pub const CRUX: Team = Team(2); +pub const MALIS: Team = Team(3); +pub const GREEN: Team = Team(4); +pub const BLUE: Team = Team(5); |