mindustry logic execution, map- and schematic- parsing and rendering
-rw-r--r--assets/blocks/distribution/cross-full.pngbin159 -> 0 bytes
-rw-r--r--assets/blocks/distribution/ducts/duct-unloader-arrow.pngbin154 -> 0 bytes
-rw-r--r--assets/blocks/distribution/ducts/duct-unloader-top.pngbin140 -> 393 bytes
-rw-r--r--assets/blocks/distribution/inverted-sorter.pngbin252 -> 370 bytes
-rw-r--r--assets/blocks/distribution/item-source.pngbin206 -> 324 bytes
-rw-r--r--assets/blocks/distribution/sorter.pngbin194 -> 316 bytes
-rw-r--r--assets/blocks/liquid/liquid-source.pngbin206 -> 339 bytes
-rw-r--r--src/block/distribution.rs51
-rw-r--r--src/block/liquid.rs14
-rw-r--r--src/lib.rs3
10 files changed, 24 insertions, 44 deletions
diff --git a/assets/blocks/distribution/cross-full.png b/assets/blocks/distribution/cross-full.png
deleted file mode 100644
index 631d138..0000000
--- a/assets/blocks/distribution/cross-full.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/distribution/ducts/duct-unloader-arrow.png b/assets/blocks/distribution/ducts/duct-unloader-arrow.png
deleted file mode 100644
index 19609e0..0000000
--- a/assets/blocks/distribution/ducts/duct-unloader-arrow.png
+++ /dev/null
Binary files differ
diff --git a/assets/blocks/distribution/ducts/duct-unloader-top.png b/assets/blocks/distribution/ducts/duct-unloader-top.png
index 04c41de..781bea4 100644
--- a/assets/blocks/distribution/ducts/duct-unloader-top.png
+++ b/assets/blocks/distribution/ducts/duct-unloader-top.png
Binary files differ
diff --git a/assets/blocks/distribution/inverted-sorter.png b/assets/blocks/distribution/inverted-sorter.png
index 93283b4..2a75d17 100644
--- a/assets/blocks/distribution/inverted-sorter.png
+++ b/assets/blocks/distribution/inverted-sorter.png
Binary files differ
diff --git a/assets/blocks/distribution/item-source.png b/assets/blocks/distribution/item-source.png
index 5e07b36..d38ce01 100644
--- a/assets/blocks/distribution/item-source.png
+++ b/assets/blocks/distribution/item-source.png
Binary files differ
diff --git a/assets/blocks/distribution/sorter.png b/assets/blocks/distribution/sorter.png
index 9317e06..9345206 100644
--- a/assets/blocks/distribution/sorter.png
+++ b/assets/blocks/distribution/sorter.png
Binary files differ
diff --git a/assets/blocks/liquid/liquid-source.png b/assets/blocks/liquid/liquid-source.png
index f687796..3f230be 100644
--- a/assets/blocks/liquid/liquid-source.png
+++ b/assets/blocks/liquid/liquid-source.png
Binary files differ
diff --git a/src/block/distribution.rs b/src/block/distribution.rs
index 67c473e..d4fe4d1 100644
--- a/src/block/distribution.rs
+++ b/src/block/distribution.rs
@@ -228,44 +228,27 @@ impl BlockLogic for ItemBlock {
s: Scale,
) -> ImageHolder<4> {
let mut p = load!(from name which is ["sorter" | "inverted-sorter" | "duct-router" | "duct-unloader" | "unit-cargo-unload-point" | "unloader" | "item-source"], s);
- if let Some(state) = state {
- if let Some(item) = Self::get_state(state) {
- let mut top = load!(s -> match name {
- "unit-cargo-unload-point" => "unit-cargo-unload-point-top",
- "unloader" => "unloader-center",
- _ => "center",
- });
- unsafe { p.overlay(top.tint(item.color())) };
- return p;
- }
- }
- if matches!(name, "unloader" | "unit-cargo-unload-point") {
+ if let Some(state) = state && let Some(item) = Self::get_state(state) {
+ let mut top = load!(s -> match name {
+ "unit-cargo-unload-point" => "unit-cargo-unload-point-top",
+ "unloader" => "unloader-center",
+ _ => "center",
+ });
+ unsafe { p.overlay(top.tint(item.color())) };
return p;
}
- if name == "duct-router" {
- let mut arrow = load!("top", s);
- unsafe {
- arrow.rotate(rot.rotated(false).count());
- p.overlay(&arrow);
- }
- p
- } else if name == "duct-unloader" {
- let mut top = load!("duct-unloader-top", s);
- unsafe {
- top.rotate(rot.rotated(false).count());
- p.overlay(&top);
+ match name {
+ "duct-router" => {
+ unsafe { p.overlay(&load!("top", s).rotate(rot.rotated(false).count())) };
}
- let mut arrow = load!("duct-unloader-arrow", s);
- unsafe {
- arrow.rotate(rot.rotated(false).count());
- p.overlay(&arrow);
+ "duct-unloader" => {
+ unsafe {
+ p.overlay(&load!("duct-unloader-top", s).rotate(rot.rotated(false).count()))
+ };
}
- p
- } else {
- let mut null = load!("cross-full", s);
- unsafe { null.overlay(&p) };
- null
- }
+ _ => {}
+ };
+ p
}
/// format:
diff --git a/src/block/liquid.rs b/src/block/liquid.rs
index 06d34ac..9a6d0b3 100644
--- a/src/block/liquid.rs
+++ b/src/block/liquid.rs
@@ -111,16 +111,12 @@ impl BlockLogic for FluidBlock {
s: Scale,
) -> ImageHolder<4> {
let mut p = load!("liquid-source", s);
- if let Some(state) = state {
- if let Some(liq) = Self::get_state(state) {
- let mut top = load!("center", s);
- unsafe { p.overlay(top.tint(liq.color())) };
- return p;
- }
+ if let Some(state) = state && let Some(liq) = Self::get_state(state) {
+ let mut top = load!("center", s);
+ unsafe { p.overlay(top.tint(liq.color())) };
+ return p;
}
- let mut null = load!("cross-full", s);
- unsafe { null.overlay(&p) };
- null
+ p
}
/// format:
diff --git a/src/lib.rs b/src/lib.rs
index 70f60cc..1a8c302 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -4,7 +4,8 @@
const_trait_impl,
unchecked_math,
slice_as_chunks,
- slice_swap_unchecked
+ slice_swap_unchecked,
+ let_chains
)]
#![allow(clippy::missing_safety_doc, clippy::missing_const_for_fn, clippy::perf)]
pub mod block;