mindustry logic execution, map- and schematic- parsing and rendering
Diffstat (limited to 'src/block/power.rs')
| -rw-r--r-- | src/block/power.rs | 39 |
1 files changed, 29 insertions, 10 deletions
diff --git a/src/block/power.rs b/src/block/power.rs index 566a710..529282e 100644 --- a/src/block/power.rs +++ b/src/block/power.rs @@ -10,16 +10,15 @@ make_simple!(NuclearGeneratorBlock => |_, _, _, buff: &mut DataRead| read_nuclea make_simple!(ImpactReactorBlock => |_, _, _, buff: &mut DataRead| read_impact(buff)); make_simple!(HeaterGeneratorBlock => |_, _, _, buff: &mut DataRead| read_heater(buff)); make_simple!(BatteryBlock); -make_simple!(DiodeBlock, |_, _, _, _, _, rot: Rotation| { - let base = load("power", "diode").unwrap(); - if rot == Rotation::Right { - return Some(ImageHolder::from(base)); - } - let mut base = base.clone(); - let mut top = load("power", "diode-arrow").unwrap().clone(); - top.rotate(rot.rotated(false).count()); - base.overlay(&top); - Some(ImageHolder::from(base)) +make_simple!(DiodeBlock, |_, _, _, _, rot: Rotation| { + let mut base = load("diode"); + if rot == Rotation::Right { + return base; + } + let mut top = load("diode-arrow"); + top.rotate(rot.rotated(false).count()); + base.overlay(&top); + base }); make_register! { @@ -130,6 +129,16 @@ impl BlockLogic for ConnectorBlock { fn serialize_state(&self, state: &State) -> Result<DynData, SerializeError> { Ok(DynData::Point2Array(Self::get_state(state).clone())) } + + fn draw( + &self, + name: &str, + _: Option<&State>, + _: Option<&RenderingContext>, + _: Rotation, + ) -> ImageHolder { + read(name, self.size) + } } #[derive(Debug, Error)] @@ -207,6 +216,16 @@ impl BlockLogic for LampBlock { } } + fn draw( + &self, + name: &str, + _: Option<&State>, + _: Option<&RenderingContext>, + _: Rotation, + ) -> ImageHolder { + read(name, self.size) + } + fn clone_state(&self, state: &State) -> State { let state = Self::get_state(state); Box::new(Self::create_state(*state)) |