mindustry logic execution, map- and schematic- parsing and rendering
Diffstat (limited to 'src/data/renderer.rs')
| -rw-r--r-- | src/data/renderer.rs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/data/renderer.rs b/src/data/renderer.rs index de64e3f..502c81e 100644 --- a/src/data/renderer.rs +++ b/src/data/renderer.rs @@ -15,12 +15,16 @@ use super::GridPos; macro_rules! r { ($v:expr) => {{ - static TMP: LazyLock<RgbaImage> = $v; + static TMP: LazyLock<RgbaImage> = LazyLock::new(|| $v); &TMP }}; } type Images = phf::Map<&'static str, &'static LazyLock<RgbaImage>>; +static EMPTY_FULL: LazyLock<RgbaImage> = LazyLock::new(|| RgbaImage::new(32, 32)); +static EMPTY_QUAR: LazyLock<RgbaImage> = LazyLock::new(|| RgbaImage::new(8, 8)); +static EMPTY_EIGH: LazyLock<RgbaImage> = LazyLock::new(|| RgbaImage::new(4, 4)); + static FULL: Images = include!(concat!(env!("OUT_DIR"), "/full.rs")); // static HALF: Images = include!(concat!(env!("OUT_DIR"), "/half.rs")); static QUAR: Images = include!(concat!(env!("OUT_DIR"), "/quar.rs")); @@ -120,12 +124,11 @@ impl std::ops::Mul<u32> for Scale { } pub(crate) fn try_load(name: &str, scale: Scale) -> Option<&'static RgbaImage> { - let key = name.to_string(); match scale { - Scale::Quarter => QUAR.get(&key).map(|v| LazyLock::force(v)), - Scale::Eigth => EIGH.get(&key).map(|v| LazyLock::force(v)), - Scale::Full => FULL.get(&key).map(|v| LazyLock::force(v)), - // Scale::Half => HALF.get(&key).map(|v| LazyLock::force(v)), + Scale::Quarter => QUAR.get(&name).map(|v| LazyLock::force(v)), + Scale::Eigth => EIGH.get(&name).map(|v| LazyLock::force(v)), + Scale::Full => FULL.get(&name).map(|v| LazyLock::force(v)), + // Scale::Half => HALF.get(&name).map(|v| LazyLock::force(v)), } } |