Resource Loading, Tile Mapper, and Biome Painter implementation

This commit is contained in:
2024-04-19 23:04:29 -04:00
parent b1dc3b9aef
commit d40c35e891
8 changed files with 74 additions and 19 deletions

View File

@@ -0,0 +1,33 @@
use asset_loader::create_asset_loader;
use bevy::{
asset::{Asset, Handle},
reflect::TypePath,
};
use serde::{Deserialize, Serialize};
use crate::tile_mapper::TileMapperAsset;
#[derive(Serialize, Deserialize, Debug, TypePath, Asset)]
pub struct BiomePainterAsset {
#[serde(skip)]
pub biomes: Vec<Handle<TileMapperAsset>>,
pub biomes_path: [String; 16],
}
impl BiomePainterAsset {
pub fn sample_biome(&self, moisture: f32, temperature: f32) -> Handle<TileMapperAsset> {
let x = (moisture.clamp(0., 1.) * 4.).ceil() as usize;
let y = (temperature.clamp(0., 1.) * 4.).ceil() as usize;
return self.biomes[x + y * 4].clone();
}
}
create_asset_loader!(
BiomePainterPlugin,
BiomePainterLoader,
BiomePainterAsset,
&["bimoes.json"],
;
biomes_path -> biomes
?
);