mindustry logic execution, map- and schematic- parsing and rendering
Diffstat (limited to 'src/block/units.rs')
| -rw-r--r-- | src/block/units.rs | 30 |
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", |