mindustry logic execution, map- and schematic- parsing and rendering
Diffstat (limited to 'src/block/production.rs')
-rw-r--r--src/block/production.rs34
1 files changed, 32 insertions, 2 deletions
diff --git a/src/block/production.rs b/src/block/production.rs
index 5796ca9..af4c547 100644
--- a/src/block/production.rs
+++ b/src/block/production.rs
@@ -1,6 +1,6 @@
//! the industry part of mindustry
-use crate::block::make_register;
use crate::block::simple::{cost, make_simple};
+use crate::block::*;
use crate::data::DataRead;
make_register! {
@@ -55,7 +55,37 @@ make_simple!(
);
make_simple!(
- HeatCrafter =>
+ HeatCrafter,
+ |_, n, _, _, r: Rotation, s| {
+ match n {
+ // TODO i didnt realize the significance of two tops before and kinda deleted them, add them back
+ "phase-heater" | "electric-heater" | "oxidation-chamber" | "slag-heater" => {
+ let mut base = load(n, s);
+ base.overlay(
+ load(
+ match r {
+ Rotation::Up | Rotation::Right => match n {
+ "phase-heater" => "phase-heater-top1",
+ "oxidation-chamber" => "oxidation-chamber-top1",
+ "slag-heater" => "slag-heater-top1",
+ _ => "electric-heater-top1",
+ },
+ _ => match n {
+ "phase-heater" => "phase-heater-top2",
+ "oxidation-chamber" => "oxidation-chamber-top2",
+ "slag-heater" => "slag-heater-top2",
+ _ => "electric-heater-top2",
+ },
+ },
+ s,
+ )
+ .rotate(r.rotated(false).count()),
+ );
+ base
+ }
+ _ => load(n, s),
+ }
+ },
|_, _, _, buff: &mut DataRead| {
// format:
// - progress: `f32`