mindustry logic execution, map- and schematic- parsing and rendering
Diffstat (limited to 'src/block/liquid.rs')
-rw-r--r--src/block/liquid.rs22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/block/liquid.rs b/src/block/liquid.rs
index f007747..888bd0d 100644
--- a/src/block/liquid.rs
+++ b/src/block/liquid.rs
@@ -3,12 +3,13 @@ use std::error::Error;
use std::fmt;
use crate::block::distribution::BridgeBlock;
-use crate::block::make_register;
-use crate::block::simple::{cost, make_simple, state_impl};
+use crate::block::simple::*;
+use crate::block::*;
use crate::content;
use crate::data::dynamic::DynType;
use crate::data::renderer::load;
use crate::fluid;
+use crate::utils::ImageUtils;
make_simple!(LiquidBlock);
@@ -101,19 +102,18 @@ impl BlockLogic for FluidBlock {
}
}
- fn draw(&self, category: &str, name: &str, state: Option<&State>) -> Option<image::RgbaImage> {
- let mut p = load(category, name).unwrap();
+ fn draw(&self, category: &str, name: &str, state: Option<&State>) -> Option<ImageHolder> {
+ let mut p = load(category, name).unwrap().clone();
if let Some(state) = state {
if let Some(s) = Self::get_state(state) {
- let mut top = load("distribution", "center").unwrap();
- crate::utils::image::tint(&mut top, s.color());
- image::imageops::overlay(&mut p, &top, 0, 0);
- return Some(p);
+ let mut top = load("distribution", "center").unwrap().clone();
+ p.overlay(top.tint(s.color()), 0, 0);
+ return Some(ImageHolder::Own(p));
}
}
- let mut null = load("distribution", "cross-full").unwrap();
- image::imageops::overlay(&mut null, &p, 0, 0);
- Some(null)
+ let mut null = load("distribution", "cross-full").unwrap().clone();
+ null.overlay(&p, 0, 0);
+ Some(ImageHolder::Own(null))
}
}