mindustry logic execution, map- and schematic- parsing and rendering
Diffstat (limited to 'src/block/power.rs')
| -rw-r--r-- | src/block/power.rs | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/block/power.rs b/src/block/power.rs index 2ef86f5..1d853e8 100644 --- a/src/block/power.rs +++ b/src/block/power.rs @@ -8,14 +8,22 @@ use crate::data::dynamic::DynType; make_simple!(GeneratorBlock => |_, _, _, buff: &mut DataRead| read_generator(buff)); make_simple!(NuclearGeneratorBlock => |_, _, _, buff: &mut DataRead| read_nuclear(buff)); make_simple!(ImpactReactorBlock => |_, _, _, buff: &mut DataRead| read_impact(buff)); -make_simple!(HeaterGeneratorBlock => |_, _, _, buff: &mut DataRead| read_heater(buff)); +make_simple!( + Neoplasia, + |_, _, _, _, rot: Rotation, scl| { + let mut base = load("neoplasia-reactor", scl); + base.overlay(load("neoplasia-reactor-top", scl).rotate(rot.rotated(false).count())); + base + }, + |_, _, _, buff: &mut DataRead| read_heater(buff) +); make_simple!(BatteryBlock); make_simple!(DiodeBlock, |_, _, _, _, rot: Rotation, s| { - let mut base = load("diode",s); + let mut base = load("diode", s); if rot == Rotation::Right { return base; } - let mut top = load("diode-arrow",s); + let mut top = load("diode-arrow", s); top.rotate(rot.rotated(false).count()); base.overlay(&top); base @@ -46,7 +54,7 @@ make_register! { "chemical-combustion-chamber" => GeneratorBlock::new(3, true, cost!(Graphite: 40, Tungsten: 40, Oxide: 40, Silicon: 30)); "pyrolysis-generator" => GeneratorBlock::new(3, true, cost!(Graphite: 50, Carbide: 50, Oxide: 60, Silicon: 50)); "flux-reactor" => GeneratorBlock::new(5, true, cost!(Graphite: 300, Carbide: 200, Oxide: 100, Silicon: 600, SurgeAlloy: 300)); - "neoplasia-reactor" => HeaterGeneratorBlock::new(5, true, cost!(Tungsten: 1000, Carbide: 300, Oxide: 150, Silicon: 500, PhaseFabric: 300, SurgeAlloy: 200)); + "neoplasia-reactor" => Neoplasia::new(5, true, cost!(Tungsten: 1000, Carbide: 300, Oxide: 150, Silicon: 500, PhaseFabric: 300, SurgeAlloy: 200)); // editor only "beam-link" => ConnectorBlock::new(3, true, &[], 12); // sandbox only @@ -138,7 +146,7 @@ impl BlockLogic for ConnectorBlock { _: Rotation, s: Scale, ) -> ImageHolder { - read(name, self.size, s) + load(name, s) } } @@ -225,7 +233,7 @@ impl BlockLogic for LampBlock { _: Rotation, s: Scale, ) -> ImageHolder { - read(name, self.size, s) + load(name, s) } fn clone_state(&self, state: &State) -> State { |