Move block_color() to new module

This commit is contained in:
Matthias Schiffer 2023-05-04 20:53:06 +02:00
parent e801631561
commit 25710bb1ed
Signed by: neocturne
GPG key ID: 16EF3F64CB201D9C
3 changed files with 21 additions and 15 deletions

View file

@ -2,23 +2,10 @@ use std::fs;
use anyhow::{Context, Result};
use minedmap::{io::storage, resource::Biome, types::*, world};
use minedmap::{io::storage, resource::block_color, types::*, world};
use super::common::*;
fn block_color(block: &world::layer::BlockInfo, _biome: &Biome) -> [u8; 4] {
let h = block
.depth
.map(|depth| 0.5 + 0.005 * depth.0 as f32)
.unwrap_or_default();
let c = block
.block_type
.color
.0
.map(|v| (f32::from(v) * h).clamp(0.0, 255.0) as u8);
[c[0], c[1], c[2], 255]
}
pub struct TileRenderer<'a> {
config: &'a Config,
}
@ -47,7 +34,14 @@ impl<'a> TileRenderer<'a> {
z: BlockZ(z as u8),
};
image::Rgba(match (&blocks[coords], &biomes[coords]) {
(Some(block), Some(biome)) => block_color(block, biome),
(
Some(world::layer::BlockInfo {
block_type,
depth: Some(depth),
..
}),
Some(biome),
) => block_color(*block_type, biome, depth.0 as f32),
_ => [0, 0, 0, 0],
})
});

View file

@ -0,0 +1,10 @@
use super::{Biome, BlockType};
pub fn block_color(block: BlockType, _biome: &Biome, depth: f32) -> [u8; 4] {
let h = 0.5 + 0.005 * depth;
let c = block
.color
.0
.map(|v| (f32::from(v) * h).clamp(0.0, 255.0) as u8);
[c[0], c[1], c[2], 255]
}

View file

@ -1,4 +1,5 @@
mod biomes;
mod block_color;
mod block_types;
mod legacy_block_types;
@ -90,6 +91,7 @@ impl BlockTypes {
}
pub use biomes::Biome;
pub use block_color::block_color;
#[derive(Debug)]
pub struct BiomeTypes {