mindustry logic execution, map- and schematic- parsing and rendering
Diffstat (limited to 'src/block/units.rs')
-rw-r--r--src/block/units.rs30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/block/units.rs b/src/block/units.rs
index 175fe56..877e81b 100644
--- a/src/block/units.rs
+++ b/src/block/units.rs
@@ -39,13 +39,13 @@ make_simple!(
|_, name, _, _, rot: Rotation, s| {
let mut base =
load!(from name which is ["tank-assembler" | "ship-assembler" | "mech-assembler"], s);
- base.overlay(
- match rot {
- Rotation::Up | Rotation::Right => load!(concat side1 => name which is ["tank-assembler" | "ship-assembler" | "mech-assembler"], s),
- Rotation::Down | Rotation::Left => load!(concat side2 => name which is ["tank-assembler" | "ship-assembler" | "mech-assembler"], s)
- }
- .rotate(rot.rotated(false).count()),
- );
+ base.overlay(unsafe {
+ match rot {
+ Rotation::Up | Rotation::Right => load!(concat side1 => name which is ["tank-assembler" | "ship-assembler" | "mech-assembler"], s),
+ Rotation::Down | Rotation::Left => load!(concat side2 => name which is ["tank-assembler" | "ship-assembler" | "mech-assembler"], s)
+ }
+ .rotate(rot.rotated(false).count())
+ });
base.overlay(&load!(concat top => name which is ["tank-assembler" | "ship-assembler" | "mech-assembler"], s));
base
},
@@ -76,13 +76,13 @@ make_simple!(
AssemblerModule,
|_, _, _, _, rot: Rotation, scl| {
let mut base = load!("basic-assembler-module", scl);
- base.overlay(
+ base.overlay(unsafe {
load!(scl -> match rot {
Rotation::Up | Rotation::Right => "basic-assembler-module-side1",
_ => "basic-assembler-module-side2",
})
- .rotate(rot.rotated(false).count()),
- );
+ .rotate(rot.rotated(false).count())
+ });
base
},
|_, reg, map, buff| read_payload_block(reg, map, buff)
@@ -186,7 +186,7 @@ impl BlockLogic for ConstructorBlock {
"prime-refabricator" => "factory-out-5-dark",
"tetrative-reconstructor" => "factory-out-9",
});
- base.overlay(out.rotate(times));
+ base.overlay(unsafe { out.rotate(times) });
let mut r#in = load!(s -> match name {
"additive-reconstructor" => "factory-in-3",
@@ -197,7 +197,7 @@ impl BlockLogic for ConstructorBlock {
"prime-refabricator" => "factory-in-5-dark",
"tetrative-reconstructor" => "factory-in-9",
});
- base.overlay(r#in.rotate(times));
+ base.overlay(unsafe { r#in.rotate(times) });
// TODO: the context cross is too small
// for i in 0..4u8 {
@@ -327,13 +327,13 @@ impl BlockLogic for UnitFactory {
s: Scale,
) -> ImageHolder<4> {
let mut base = load!(from name which is ["ground-factory" | "air-factory" | "naval-factory" | "tank-fabricator" | "ship-fabricator" | "mech-fabricator"], s);
- base.overlay(
+ base.overlay(unsafe {
load!(s -> match name {
"ground-factory" | "air-factory" | "naval-factory" => "factory-out-3",
_ => "factory-out-3-dark",
})
- .rotate(rot.rotated(false).count()),
- )
+ .rotate(rot.rotated(false).count())
+ })
.overlay(&load!(s -> match name {
"ground-factory" | "air-factory" | "naval-factory" => "factory-top-3",
"tank-fabricator" => "tank-fabricator-top",