mindustry logic execution, map- and schematic- parsing and rendering
| -rw-r--r-- | mindus/assets/blocks/environment/grass.png (renamed from mindus/assets/blocks/floors/grass.png) | bin | 134 -> 134 bytes | |||
| -rw-r--r-- | mindus/assets/blocks/environment/molten-slag.png (renamed from mindus/assets/blocks/floors/molten-slag.png) | bin | 1259 -> 1259 bytes | |||
| -rw-r--r-- | mindus/src/data/map.rs | 25 |
3 files changed, 12 insertions, 13 deletions
diff --git a/mindus/assets/blocks/floors/grass.png b/mindus/assets/blocks/environment/grass.png Binary files differindex 9e1aca0..9e1aca0 100644 --- a/mindus/assets/blocks/floors/grass.png +++ b/mindus/assets/blocks/environment/grass.png diff --git a/mindus/assets/blocks/floors/molten-slag.png b/mindus/assets/blocks/environment/molten-slag.png Binary files differindex 07db3b0..07db3b0 100644 --- a/mindus/assets/blocks/floors/molten-slag.png +++ b/mindus/assets/blocks/environment/molten-slag.png diff --git a/mindus/src/data/map.rs b/mindus/src/data/map.rs index 77c8a3b..3e94e08 100644 --- a/mindus/src/data/map.rs +++ b/mindus/src/data/map.rs @@ -79,17 +79,17 @@ use thiserror::Error; use crate::block::content::Type as BlockEnum; use crate::block::{Block, Rotation, State}; +use crate::data::DataRead; use crate::data::dynamic::DynData; use crate::data::renderer::*; -use crate::data::DataRead; use crate::fluid::Type as Fluid; -use crate::item::{storage::Storage, Type as Item}; +use crate::item::{Type as Item, storage::Storage}; use crate::team::Team; use crate::unit::Unit; #[cfg(doc)] use crate::{block::content, data::*, fluid, item, modifier, unit}; -use super::{entity_mapping, Serializable}; +use super::{Serializable, entity_mapping}; use crate::content::Content; /// a tile in a map @@ -111,7 +111,7 @@ macro_rules! lo { #[inline] pub(crate) fn ore(ore: BlockEnum, s: Scale) -> Image<&'static [u8], 4> { - lo!(ore => ["ore-copper" | "ore-beryllium" | "ore-lead" | "ore-scrap" | "ore-coal" | "ore-thorium" | "ore-titanium" | "ore-tungsten" | "pebbles" | "tendrils" | "ore-wall-tungsten" | "ore-wall-beryllium" | "ore-wall-thorium" | "spawn" | "ore-crystal-thorium"], s) + lo!(ore => ["ore-copper" | "ore-beryllium" | "ore-lead" | "ore-scrap" | "ore-coal" | "ore-thorium" | "ore-titanium" | "ore-tungsten" | "pebbles" | "tendrils" | "ore-wall-tungsten" | "ore-wall-beryllium" | "ore-wall-thorium" | "spawn" | "ore-crystal-thorium" | "molten-slag" | "grass"], s) } #[inline] @@ -125,14 +125,13 @@ pub(crate) fn floor(tile: BlockEnum, s: Scale) -> Image<&'static [u8], 3> { | "basalt" | "basalt-vent" | "moss" | "mud" - | "grass" | "ice-snow" | "snow" | "salt" | "ice" | "hotrock" | "char" | "magmarock" | "shale" | "metal-floor" | "metal-floor-2" | "metal-floor-3" | "metal-floor-4" | "metal-floor-5" | "metal-floor-damaged" | "dark-panel-1" | "dark-panel-2" | "dark-panel-3" | "dark-panel-4" | "dark-panel-5" | "dark-panel-6" | "darksand-tainted-water" | "darksand-water" | "deep-tainted-water" | "deep-water" | "sand-water" | "shallow-water" | "tainted-water" - | "tar" | "pooled-cryofluid" | "molten-slag" + | "tar" | "pooled-cryofluid" | "space" | "stone" | "stone-vent" | "bluemat" @@ -451,11 +450,7 @@ pub struct Map { macro_rules! cond { ($cond: expr, $do: expr) => { - if $cond { - None - } else { - $do - } + if $cond { None } else { $do } }; } @@ -575,8 +570,12 @@ macro_rules! tiles { while i < $count { let floor_id = $me.buff.read_u16()?; let overlay_id = $me.buff.read_u16()?; - let &floor = $r.get(floor_id as usize).unwrap_or(&BlockEnum::Stone); - let &ore = $r.get(overlay_id as usize).unwrap_or(&BlockEnum::Air); + let &(mut floor) = $r.get(floor_id as usize).unwrap_or(&BlockEnum::Stone); + let &(mut ore) = $r.get(overlay_id as usize).unwrap_or(&BlockEnum::Air); + if let BlockEnum::MoltenSlag | BlockEnum::Grass = floor { + ore = floor; + floor = BlockEnum::Stone; + } yield $w::Tile { floor, ore }; let consecutives = $me.buff.read_u8()? as usize; for _ in 0..consecutives { |