mirror of
https://github.com/neocturne/MinedMap.git
synced 2025-03-04 17:23:33 +01:00
resource: return block color as float vector
Deferring conversion to integers is convenient for biome smoothing.
This commit is contained in:
parent
0a485343a0
commit
b650b096ef
2 changed files with 9 additions and 6 deletions
|
@ -4,6 +4,7 @@ use std::{
|
||||||
};
|
};
|
||||||
|
|
||||||
use anyhow::{Context, Result};
|
use anyhow::{Context, Result};
|
||||||
|
use glam::Vec3;
|
||||||
use num_integer::div_mod_floor;
|
use num_integer::div_mod_floor;
|
||||||
|
|
||||||
use minedmap::{
|
use minedmap::{
|
||||||
|
@ -82,7 +83,7 @@ impl<'a> TileRenderer<'a> {
|
||||||
chunk: &ProcessedChunk,
|
chunk: &ProcessedChunk,
|
||||||
_chunk_coords: ChunkCoords,
|
_chunk_coords: ChunkCoords,
|
||||||
block_coords: LayerBlockCoords,
|
block_coords: LayerBlockCoords,
|
||||||
) -> Option<[u8; 4]> {
|
) -> Option<Vec3> {
|
||||||
let block = chunk.blocks[block_coords]?;
|
let block = chunk.blocks[block_coords]?;
|
||||||
let depth = chunk.depths[block_coords]?;
|
let depth = chunk.depths[block_coords]?;
|
||||||
|
|
||||||
|
@ -109,7 +110,11 @@ impl<'a> TileRenderer<'a> {
|
||||||
z: BlockZ::new(z),
|
z: BlockZ::new(z),
|
||||||
};
|
};
|
||||||
let color = Self::block_color_at(region_group, chunk, chunk_coords, block_coords);
|
let color = Self::block_color_at(region_group, chunk, chunk_coords, block_coords);
|
||||||
image::Rgba(color.unwrap_or_default())
|
image::Rgba(
|
||||||
|
color
|
||||||
|
.map(|c| [c[0] as u8, c[1] as u8, c[2] as u8, 255])
|
||||||
|
.unwrap_or_default(),
|
||||||
|
)
|
||||||
});
|
});
|
||||||
overlay_chunk(image, &chunk_image, chunk_coords);
|
overlay_chunk(image, &chunk_image, chunk_coords);
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,7 +78,7 @@ pub fn needs_biome(block: BlockType) -> bool {
|
||||||
block.is(Grass) || block.is(Foliage) || block.is(Water)
|
block.is(Grass) || block.is(Foliage) || block.is(Water)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn block_color(block: BlockType, biome: Option<&Biome>, depth: f32) -> [u8; 4] {
|
pub fn block_color(block: BlockType, biome: Option<&Biome>, depth: f32) -> Vec3 {
|
||||||
use super::BlockFlag::*;
|
use super::BlockFlag::*;
|
||||||
|
|
||||||
let get_biome = || biome.expect("needs biome to determine block color");
|
let get_biome = || biome.expect("needs biome to determine block color");
|
||||||
|
@ -101,7 +101,5 @@ pub fn block_color(block: BlockType, biome: Option<&Biome>, depth: f32) -> [u8;
|
||||||
color *= get_biome().water_color();
|
color *= get_biome().water_color();
|
||||||
}
|
}
|
||||||
|
|
||||||
color *= 0.5 + 0.005 * depth;
|
color * (0.5 + 0.005 * depth)
|
||||||
|
|
||||||
[color[0] as u8, color[1] as u8, color[2] as u8, 255]
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue