misc fixes
This commit is contained in:
@@ -162,10 +162,10 @@ fn create_heightmap(
|
||||
biome_painter: Res<BiomePainter>,
|
||||
) {
|
||||
let config = GenerationConfig {
|
||||
biome_blend: 16,
|
||||
biome_blend: 32,
|
||||
biome_dither: 16.,
|
||||
continent_noise: NoiseConfig {
|
||||
scale: 1000.,
|
||||
scale: 800.,
|
||||
layers: vec![GeneratorLayer {
|
||||
base_roughness: 2.14,
|
||||
roughness: 0.87,
|
||||
@@ -180,7 +180,7 @@ fn create_heightmap(
|
||||
}],
|
||||
},
|
||||
moisture_noise: NoiseConfig {
|
||||
scale: 500.,
|
||||
scale: 900.,
|
||||
layers: vec![GeneratorLayer {
|
||||
base_roughness: 2.14,
|
||||
roughness: 0.87,
|
||||
@@ -195,7 +195,7 @@ fn create_heightmap(
|
||||
}],
|
||||
},
|
||||
temperature_noise: NoiseConfig {
|
||||
scale: 900.,
|
||||
scale: 700.,
|
||||
layers: vec![GeneratorLayer {
|
||||
base_roughness: 2.14,
|
||||
roughness: 0.87,
|
||||
|
||||
@@ -2,6 +2,7 @@ use bevy::{prelude::*, render::render_asset::RenderAssetUsages};
|
||||
use bevy_inspector_egui::bevy_egui::EguiContexts;
|
||||
use bevy_inspector_egui::egui::{self};
|
||||
use bevy_rapier3d::rapier::crossbeam::deque::Steal;
|
||||
use image::{ImageBuffer, Rgba};
|
||||
use world_generation::map::biome_map::{self, BiomeMap};
|
||||
use world_generation::map::map_utils::{render_biome_map, render_biome_noise_map, update_map};
|
||||
use world_generation::{map::map_utils::render_map, prelude::Map, states::GeneratorState};
|
||||
@@ -53,9 +54,12 @@ enum MapDisplayType {
|
||||
HeightMap,
|
||||
Biomes,
|
||||
BiomeNoise,
|
||||
BiomeNoiseTemp,
|
||||
BiomeNoiseContinent,
|
||||
BiomeNoiseMoisture,
|
||||
}
|
||||
|
||||
fn render_map_ui(image: Res<MapImage>, mut contexts: EguiContexts, mut state: ResMut<UIState>) {
|
||||
fn render_map_ui(image: Res<MapImage>, heightmap: Res<Map>, biome_map: Res<BiomeMap>, mut contexts: EguiContexts, mut state: ResMut<UIState>) {
|
||||
let id = contexts.add_image(image.0.clone_weak());
|
||||
|
||||
let mut map_type = state.target_map_type;
|
||||
@@ -68,12 +72,32 @@ fn render_map_ui(image: Res<MapImage>, mut contexts: EguiContexts, mut state: Re
|
||||
ui.selectable_value(&mut map_type, MapDisplayType::HeightMap, "Heightmap");
|
||||
ui.selectable_value(&mut map_type, MapDisplayType::Biomes, "Biomes");
|
||||
ui.selectable_value(&mut map_type, MapDisplayType::BiomeNoise, "Biome Noise");
|
||||
ui.selectable_value(
|
||||
&mut map_type,
|
||||
MapDisplayType::BiomeNoiseTemp,
|
||||
"Biome Noise: Tempurature",
|
||||
);
|
||||
ui.selectable_value(
|
||||
&mut map_type,
|
||||
MapDisplayType::BiomeNoiseContinent,
|
||||
"Biome Noise: Continent",
|
||||
);
|
||||
ui.selectable_value(
|
||||
&mut map_type,
|
||||
MapDisplayType::BiomeNoiseMoisture,
|
||||
"Biome Noise: Moisture",
|
||||
);
|
||||
});
|
||||
|
||||
ui.add(egui::widgets::Image::new(egui::load::SizedTexture::new(
|
||||
id,
|
||||
[512.0, 512.0],
|
||||
)));
|
||||
|
||||
if ui.button("Save Image").clicked() {
|
||||
let img = get_map_image(&heightmap, &biome_map, map_type);
|
||||
_ = img.save(format!("{:?}.png", map_type));
|
||||
}
|
||||
});
|
||||
|
||||
state.target_map_type = map_type;
|
||||
@@ -90,11 +114,7 @@ fn update_map_render(
|
||||
return;
|
||||
}
|
||||
|
||||
let result = match state.target_map_type {
|
||||
MapDisplayType::HeightMap => render_map(&heightmap, 0.1),
|
||||
MapDisplayType::Biomes => render_biome_map(&heightmap, &biome_map),
|
||||
MapDisplayType::BiomeNoise => render_biome_noise_map(&biome_map),
|
||||
};
|
||||
let result = get_map_image(&heightmap, &biome_map, state.target_map_type);
|
||||
images.insert(
|
||||
image.0.id(),
|
||||
Image::from_dynamic(result.into(), true, RenderAssetUsages::RENDER_WORLD),
|
||||
@@ -102,3 +122,14 @@ fn update_map_render(
|
||||
|
||||
state.cur_map_type = state.target_map_type;
|
||||
}
|
||||
|
||||
fn get_map_image(heightmap: &Map, biome_map: &BiomeMap, map_type: MapDisplayType) -> ImageBuffer<Rgba<u8>, Vec<u8>> {
|
||||
return match map_type {
|
||||
MapDisplayType::HeightMap => render_map(&heightmap, 0.1),
|
||||
MapDisplayType::Biomes => render_biome_map(&heightmap, &biome_map),
|
||||
MapDisplayType::BiomeNoise => render_biome_noise_map(&biome_map, Vec3::ONE),
|
||||
MapDisplayType::BiomeNoiseTemp => render_biome_noise_map(&biome_map, Vec3::X),
|
||||
MapDisplayType::BiomeNoiseContinent => render_biome_noise_map(&biome_map, Vec3::Y),
|
||||
MapDisplayType::BiomeNoiseMoisture => render_biome_noise_map(&biome_map, Vec3::Z),
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user