asset loading
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -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>>,
|
||||||
|
|||||||
@@ -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>>,
|
||||||
|
|||||||
Reference in New Issue
Block a user