mindustry logic execution, map- and schematic- parsing and rendering
update to 13
| -rw-r--r-- | mindus/Cargo.toml | 24 | ||||
| -rw-r--r-- | mindus/build.rs | 2 | ||||
| -rw-r--r-- | mindus/src/block/mod.rs | 2 | ||||
| -rw-r--r-- | mindus/src/block/ratios.rs | 4 | ||||
| -rw-r--r-- | mindus/src/content.rs | 2 | ||||
| -rw-r--r-- | mindus/src/data/base64.rs | 2 | ||||
| -rw-r--r-- | mindus/src/data/map.rs | 10 | ||||
| -rw-r--r-- | mindus/src/lib.rs | 7 |
8 files changed, 26 insertions, 27 deletions
diff --git a/mindus/Cargo.toml b/mindus/Cargo.toml index 76d2175..90a6517 100644 --- a/mindus/Cargo.toml +++ b/mindus/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mindus" -version = "5.0.44" +version = "5.0.45" edition = "2024" description = "A library for working with mindustry data formats (eg schematics and maps) (fork of plandustry)" authors = [ @@ -15,26 +15,26 @@ keywords = ["mindustry", "format", "drawing"] rust-version = "1.85" [dependencies] -flate2 = "1.0" -base64 = "0.21" +flate2 = "1.1" +base64 = "0.22" paste = "1.0" strconv = "0.1" amap = "0.1" color-hex = "0.2" -thiserror = "1.0" +thiserror = "2.0" bobbin-bits = "0.1" enum_dispatch = "0.3" -phf = { version = "0.11", features = ["macros"] } -fimg = { version = "0.4.52", features = [ +phf = { version = "0.14", features = ["macros"] } +fimg = { version = "0.4.56", features = [ "scale", "blur", "save", ], default-features = false } -atools = "0.1.6" -either = "1.15.0" +atools = "0.1.11" +either = "1.16.0" implicit-fn = "0.1.0" -lower = "0.2.0" -car = "0.1.3" +lower = "0.2.1" +car = "0.1.4" [features] bin = ["fimg/save"] @@ -42,13 +42,13 @@ square = [] default = ["bin"] [build-dependencies] -fimg = { version = "0.4.52", features = [ +fimg = { version = "0.4.56", features = [ "scale", "blur", "save", ], default-features = false } walkdir = "2" -rand = "0.9.2" +rand = "0.10.2" [[bin]] name = "mindus" diff --git a/mindus/build.rs b/mindus/build.rs index b25780c..2edc445 100644 --- a/mindus/build.rs +++ b/mindus/build.rs @@ -1,5 +1,5 @@ use fimg::DynImage; -use rand::Rng; +use rand::RngExt; use std::fs::File; use std::io::Write as _; use std::iter::Iterator; diff --git a/mindus/src/block/mod.rs b/mindus/src/block/mod.rs index d884f43..d70979f 100644 --- a/mindus/src/block/mod.rs +++ b/mindus/src/block/mod.rs @@ -53,7 +53,7 @@ macro_rules! disp { fn fro(value: T) -> Self; } $( - impl const ConstFrom<$k> for BlockLogicEnum { + const impl ConstFrom<$k> for BlockLogicEnum { fn fro(v: $k) -> Self { BlockLogicEnum::$k(v) } diff --git a/mindus/src/block/ratios.rs b/mindus/src/block/ratios.rs index ad38377..59b1eb0 100644 --- a/mindus/src/block/ratios.rs +++ b/mindus/src/block/ratios.rs @@ -26,13 +26,13 @@ pub enum Resource { Fluid(crate::fluid::Type), } -impl const super::ConstFrom<crate::item::Type> for Resource { +const impl super::ConstFrom<crate::item::Type> for Resource { fn fro(value: crate::item::Type) -> Self { Self::Item(value) } } -impl const super::ConstFrom<crate::fluid::Type> for Resource { +const impl super::ConstFrom<crate::fluid::Type> for Resource { fn fro(value: crate::fluid::Type) -> Self { Self::Fluid(value) } diff --git a/mindus/src/content.rs b/mindus/src/content.rs index 0f15a87..50acdcf 100644 --- a/mindus/src/content.rs +++ b/mindus/src/content.rs @@ -78,7 +78,7 @@ macro_rules! content_enum { MAPPER.get(name).copied() } } - impl const $crate::content::Content for $tname { + const impl $crate::content::Content for $tname { fn get_type(&self) -> $crate::content::Type { $crate::content::Type::$ctype } diff --git a/mindus/src/data/base64.rs b/mindus/src/data/base64.rs index 303e9e0..341dd6d 100644 --- a/mindus/src/data/base64.rs +++ b/mindus/src/data/base64.rs @@ -1,5 +1,5 @@ -use base64::{engine::general_purpose, engine::Engine as _}; pub use base64::{DecodeSliceError as DecodeError, EncodeSliceError as EncodeError}; +use base64::{engine::Engine as _, engine::general_purpose}; const BASE64: general_purpose::GeneralPurpose = general_purpose::STANDARD; diff --git a/mindus/src/data/map.rs b/mindus/src/data/map.rs index 77c764f..2fa8197 100644 --- a/mindus/src/data/map.rs +++ b/mindus/src/data/map.rs @@ -618,8 +618,7 @@ impl MapReader { pub fn version(&mut self) -> Result<u32, ReadError> { let x = self.buff.read_u32()?; - (7..=11) - .contains(&x) + matches!(x, 7..=11 | 13) .then_some(x) .ok_or(ReadError::Version(x.try_into().unwrap_or(0))) } @@ -804,7 +803,7 @@ impl MapReader { m[i].nd = d } Complete(Err(x)) => return Err(x), - _ => unreachable!(), + x => unreachable!("{x:?}"), } i += 1; } @@ -997,8 +996,11 @@ impl Serializable for Map { buff.header()?; buff.version = buff.version()?; let tags = buff.tags_alloc()?; + if buff.version >= 12 { + buff.skip()?; + } let r = buff.content()?; - if buff.version >= 11 { + if buff.version == 11 { buff.skip()?; } let mut m = buff.collect_map(tags, r)?; diff --git a/mindus/src/lib.rs b/mindus/src/lib.rs index eb28815..cf4a67e 100644 --- a/mindus/src/lib.rs +++ b/mindus/src/lib.rs @@ -1,20 +1,17 @@ //! crate for dealing with mindustry #![feature( error_generic_member_access, - try_trait_v2_residual, stmt_expr_attributes, generic_const_exprs, - iter_from_coroutine, const_trait_impl, coroutine_trait, likely_unlikely, portable_simd, const_convert, - derive_const, - try_trait_v2, try_blocks, coroutines, - const_cmp + const_cmp, + doc_cfg )] #![allow(clippy::redundant_closure_call, incomplete_features)] #![warn( |