asset loading

This commit is contained in:
2024-07-29 20:53:41 -04:00
parent 2e9f327c57
commit ad39a93028
3 changed files with 9 additions and 11 deletions

View File

@@ -1,17 +1,13 @@
use asset_loader::create_asset_loader;
use bevy::prelude::*; use bevy::prelude::*;
use bevy::{asset::Asset, reflect::TypePath, render::render_resource::encase::rts_array::Length}; use bevy::render::render_resource::encase::rts_array::Length;
use serde::{Deserialize, Serialize};
use crate::{biome_asset::BiomeAsset, map::biome_map::BiomeData}; use crate::{biome_asset::BiomeAsset, map::biome_map::BiomeData};
use bevy_asset_loader::prelude::*; use bevy_asset_loader::prelude::*;
#[derive(AssetCollection, Debug, Clone, Resource)] #[derive(AssetCollection, Debug, Clone, Resource)]
pub struct BiomePainterAsset { pub struct BiomePainterAsset {
// #[serde(skip)]
#[asset(key = "biomes", collection(typed))] #[asset(key = "biomes", collection(typed))]
pub biomes: Vec<Handle<BiomeAsset>>, pub biomes: Vec<Handle<BiomeAsset>>,
// pub biomes_path: Vec<String>,
} }
impl BiomePainterAsset { impl BiomePainterAsset {

View File

@@ -22,7 +22,7 @@ use world_generation::{
use crate::{ use crate::{
camera_system::components::*, camera_system::components::*,
prelude::{ChunkAtlas, PhosChunk, PhosChunkRegistry}, prelude::{PhosAssets, PhosChunk, PhosChunkRegistry},
shader_extensions::{ shader_extensions::{
chunk_material::ChunkMaterial, chunk_material::ChunkMaterial,
water_material::{WaterMaterial, WaterSettings}, water_material::{WaterMaterial, WaterSettings},
@@ -64,7 +64,8 @@ impl Plugin for MapInitPlugin {
app.configure_loading_state( app.configure_loading_state(
LoadingStateConfig::new(AssetLoadState::Loading) LoadingStateConfig::new(AssetLoadState::Loading)
.with_dynamic_assets_file::<StandardDynamicAssetCollection>("phos.assets.ron") .with_dynamic_assets_file::<StandardDynamicAssetCollection>("phos.assets.ron")
.load_collection::<ChunkAtlas>(), .load_collection::<PhosAssets>()
.load_collection::<BiomePainterAsset>()
); );
app.add_systems(Startup, load_textures.run_if(in_state(AssetLoadState::FinalizeAssets))); app.add_systems(Startup, load_textures.run_if(in_state(AssetLoadState::FinalizeAssets)));
@@ -106,7 +107,7 @@ struct WaterInspect(Handle<ExtendedMaterial<StandardMaterial, WaterMaterial>>);
fn load_textures( fn load_textures(
mut commands: Commands, mut commands: Commands,
mut atlas: ResMut<ChunkAtlas>, mut atlas: ResMut<PhosAssets>,
mut water_materials: ResMut<Assets<ExtendedMaterial<StandardMaterial, WaterMaterial>>>, mut water_materials: ResMut<Assets<ExtendedMaterial<StandardMaterial, WaterMaterial>>>,
) { ) {
let water_material = water_materials.add(ExtendedMaterial { let water_material = water_materials.add(ExtendedMaterial {
@@ -141,7 +142,7 @@ fn finalize_biome_painter(
} }
fn finalize_texture( fn finalize_texture(
mut atlas: ResMut<ChunkAtlas>, mut atlas: ResMut<PhosAssets>,
mut images: ResMut<Assets<Image>>, mut images: ResMut<Assets<Image>>,
mut chunk_materials: ResMut<Assets<ExtendedMaterial<StandardMaterial, ChunkMaterial>>>, mut chunk_materials: ResMut<Assets<ExtendedMaterial<StandardMaterial, ChunkMaterial>>>,
mut next_load_state: ResMut<NextState<AssetLoadState>>, mut next_load_state: ResMut<NextState<AssetLoadState>>,
@@ -237,7 +238,7 @@ fn spawn_map(
mut heightmap: ResMut<Map>, mut heightmap: ResMut<Map>,
mut commands: Commands, mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>, mut meshes: ResMut<Assets<Mesh>>,
atlas: Res<ChunkAtlas>, atlas: Res<PhosAssets>,
tile_assets: Res<Assets<TileAsset>>, tile_assets: Res<Assets<TileAsset>>,
tile_mappers: Res<Assets<TileMapperAsset>>, tile_mappers: Res<Assets<TileMapperAsset>>,
mut generator_state: ResMut<NextState<GeneratorState>>, mut generator_state: ResMut<NextState<GeneratorState>>,

View File

@@ -3,12 +3,13 @@ use bevy::pbr::ExtendedMaterial;
use bevy::prelude::*; use bevy::prelude::*;
use bevy::prelude::{Component, Image, Resource}; use bevy::prelude::{Component, Image, Resource};
use bevy_asset_loader::asset_collection::AssetCollection; use bevy_asset_loader::asset_collection::AssetCollection;
use world_generation::biome_painter::BiomePainterAsset;
use crate::shader_extensions::chunk_material::ChunkMaterial; use crate::shader_extensions::chunk_material::ChunkMaterial;
use crate::shader_extensions::water_material::WaterMaterial; use crate::shader_extensions::water_material::WaterMaterial;
#[derive(AssetCollection, Resource, Default)] #[derive(AssetCollection, Resource, Default)]
pub struct ChunkAtlas { pub struct PhosAssets {
#[asset(key = "chunk_atlas")] #[asset(key = "chunk_atlas")]
pub handle: Handle<Image>, pub handle: Handle<Image>,
pub chunk_material_handle: Handle<ExtendedMaterial<StandardMaterial, ChunkMaterial>>, pub chunk_material_handle: Handle<ExtendedMaterial<StandardMaterial, ChunkMaterial>>,