Mirgrate to bevy 0.14.0
This commit is contained in:
@@ -6,6 +6,6 @@ edition = "2021"
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
serde = "1.0.203"
|
||||
serde_json = "1.0.115"
|
||||
bevy = "0.13.2"
|
||||
serde = "1.0.204"
|
||||
serde_json = "1.0.120"
|
||||
bevy = "0.14.0"
|
||||
|
||||
@@ -12,7 +12,7 @@ pub mod macros {
|
||||
$($string_array_name: ident -> $handle_array_name: ident)* ?
|
||||
) => {
|
||||
use bevy::prelude::*;
|
||||
use bevy::asset::{AssetLoader, AssetEvent, LoadContext, AsyncReadExt, io::Reader};
|
||||
use bevy::asset::{AssetLoader, AssetEvent, AssetEvents, LoadContext, LoadState, AsyncReadExt, io::Reader};
|
||||
use bevy::utils::BoxedFuture;
|
||||
pub struct $plugin_name;
|
||||
impl Plugin for $plugin_name {
|
||||
@@ -37,6 +37,7 @@ pub mod macros {
|
||||
let asset = assets.get_mut(id.clone()).unwrap();
|
||||
|
||||
$(
|
||||
|
||||
asset.$handle_name = asset_server.load(&asset.$string_name);
|
||||
)*
|
||||
$(
|
||||
@@ -76,25 +77,24 @@ pub mod macros {
|
||||
|
||||
type Error = String;
|
||||
|
||||
fn load<'a>(
|
||||
async fn load<'a>(
|
||||
&'a self,
|
||||
reader: &'a mut Reader,
|
||||
reader: &'a mut Reader<'_>,
|
||||
_settings: &'a Self::Settings,
|
||||
_load_context: &'a mut LoadContext,
|
||||
) -> BoxedFuture<'a, Result<Self::Asset, Self::Error>> {
|
||||
return Box::pin(async move {
|
||||
let mut data: String = String::new();
|
||||
let read_result = reader.read_to_string(&mut data).await;
|
||||
if read_result.is_err() {
|
||||
return Err(read_result.err().unwrap().to_string());
|
||||
}
|
||||
let serialized: Result<Self::Asset, serde_json::Error> =
|
||||
serde_json::from_str(&data);
|
||||
if serialized.is_err() {
|
||||
return Err(serialized.err().unwrap().to_string());
|
||||
}
|
||||
return Ok(serialized.unwrap());
|
||||
});
|
||||
_load_context: &'a mut LoadContext<'_>,
|
||||
) -> Result<Self::Asset, Self::Error> {
|
||||
let mut data: String = String::new();
|
||||
let read_result = reader.read_to_string(&mut data).await;
|
||||
if read_result.is_err() {
|
||||
return Err(read_result.err().unwrap().to_string());
|
||||
}
|
||||
let serialized: Result<Self::Asset, serde_json::Error> =
|
||||
serde_json::from_str(&data);
|
||||
if serialized.is_err() {
|
||||
return Err(serialized.err().unwrap().to_string());
|
||||
}
|
||||
let r = serialized.unwrap();
|
||||
return Ok(r);
|
||||
}
|
||||
|
||||
fn extensions(&self) -> &[&str] {
|
||||
|
||||
@@ -6,13 +6,13 @@ edition = "2021"
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
bevy = "0.13.2"
|
||||
bevy = "0.14.0"
|
||||
noise = "0.9.0"
|
||||
serde = {version="1.0.203", features=["derive"]}
|
||||
serde = { version = "1.0.203", features = ["derive"] }
|
||||
serde_json = "1.0.115"
|
||||
asset_loader = {path = "../asset_loader"}
|
||||
asset_loader = { path = "../asset_loader" }
|
||||
rayon = "1.10.0"
|
||||
bevy-inspector-egui = "0.24.0"
|
||||
bevy-inspector-egui = "0.25.0"
|
||||
|
||||
[features]
|
||||
tracing = ["bevy/trace_tracy"]
|
||||
tracing = ["bevy/trace_tracy"]
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
use asset_loader::create_asset_loader;
|
||||
use bevy::{
|
||||
asset::{Asset, Handle},
|
||||
reflect::TypePath,
|
||||
render::render_resource::encase::rts_array::Length,
|
||||
};
|
||||
use bevy::{asset::Asset, reflect::TypePath, render::render_resource::encase::rts_array::Length};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::{biome_asset::BiomeAsset, map::biome_map::BiomeData};
|
||||
@@ -16,16 +12,16 @@ pub struct BiomePainterAsset {
|
||||
}
|
||||
|
||||
impl BiomePainterAsset {
|
||||
pub fn sample_biome(&self, assets: &Assets<BiomeAsset>, data: &BiomeData) -> Handle<BiomeAsset> {
|
||||
pub fn sample_biome(&self, assets: &Assets<BiomeAsset>, data: &BiomeData) -> AssetId<BiomeAsset> {
|
||||
assert!(self.biomes.length() != 0, "There are no biomes");
|
||||
let mut biome = self.biomes.first().unwrap().clone();
|
||||
let mut biome = self.biomes.first().unwrap().id();
|
||||
let mut dist = f32::INFINITY;
|
||||
|
||||
for b in &self.biomes {
|
||||
let asset = assets.get(b).unwrap();
|
||||
let asset = assets.get(b.id()).unwrap();
|
||||
let d = asset.distance(data.into());
|
||||
if d < dist {
|
||||
biome = b.clone();
|
||||
biome = b.id();
|
||||
dist = d;
|
||||
}
|
||||
}
|
||||
@@ -36,7 +32,7 @@ impl BiomePainterAsset {
|
||||
pub fn build(&self, assets: &Assets<BiomeAsset>) -> BiomePainter {
|
||||
let mut biomes = Vec::with_capacity(self.biomes.len());
|
||||
for b in &self.biomes {
|
||||
let asset = assets.get(b.clone()).unwrap();
|
||||
let asset = assets.get(b.id()).unwrap();
|
||||
biomes.push(asset.clone());
|
||||
}
|
||||
return BiomePainter { biomes };
|
||||
|
||||
@@ -33,7 +33,7 @@ pub fn generate_packed_chunk_mesh(
|
||||
let n = map.get_neighbors(&coord);
|
||||
let biome = biomes.get(painter.sample_biome(biomes, &data)).unwrap();
|
||||
|
||||
let mapper = mappers.get(biome.tile_mapper.clone());
|
||||
let mapper = mappers.get(biome.tile_mapper.id());
|
||||
let tile_handle = mapper.unwrap().sample_tile(height);
|
||||
let tile = tiles.get(tile_handle).unwrap();
|
||||
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
use bevy::math::{IVec2, UVec2};
|
||||
use bevy::prelude::{FloatExt, Vec2};
|
||||
use bevy::utils::default;
|
||||
use bevy::utils::petgraph::data;
|
||||
use noise::{NoiseFn, SuperSimplex};
|
||||
use rayon::iter::{IntoParallelIterator, ParallelIterator};
|
||||
|
||||
use crate::biome_painter::{self, BiomePainter};
|
||||
use crate::map::biome_map::{self, BiomeChunk, BiomeData, BiomeMap};
|
||||
use crate::biome_painter::BiomePainter;
|
||||
use crate::map::biome_map::{BiomeChunk, BiomeData, BiomeMap};
|
||||
use crate::prelude::*;
|
||||
|
||||
pub fn generate_heightmap(cfg: &GenerationConfig, seed: u32, painter: &BiomePainter) -> Map {
|
||||
|
||||
@@ -35,7 +35,7 @@ impl BiomeMap {
|
||||
pub fn new(size: UVec2, biome_count: usize) -> Self {
|
||||
let len = size.x as usize * size.y as usize * Chunk::AREA;
|
||||
return BiomeMap {
|
||||
size: size,
|
||||
size,
|
||||
height: size.y as usize * Chunk::SIZE,
|
||||
width: size.x as usize * Chunk::SIZE,
|
||||
biome_count,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use bevy::ecs::schedule::States;
|
||||
use bevy::prelude::*;
|
||||
|
||||
#[derive(States, Debug, Clone, PartialEq, Eq, Hash)]
|
||||
pub enum GeneratorState {
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
use asset_loader::create_asset_loader;
|
||||
use bevy::{
|
||||
asset::{Asset, Handle},
|
||||
ecs::system::Resource,
|
||||
reflect::TypePath,
|
||||
};
|
||||
use bevy::{asset::Asset, ecs::system::Resource, reflect::TypePath};
|
||||
use serde::{Deserialize, Serialize};
|
||||
#[derive(Resource, Debug)]
|
||||
pub struct TileManager {
|
||||
|
||||
@@ -1,12 +1,8 @@
|
||||
use asset_loader::create_asset_loader;
|
||||
use bevy::prelude::*;
|
||||
use bevy::{
|
||||
asset::{Asset, Handle},
|
||||
reflect::TypePath,
|
||||
};
|
||||
use bevy::{asset::Asset, reflect::TypePath};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::prelude::GeneratorLayer;
|
||||
use crate::tile_manager::TileAsset;
|
||||
|
||||
pub struct TileMapper;
|
||||
@@ -20,14 +16,14 @@ pub struct TileMapperAsset {
|
||||
}
|
||||
|
||||
impl TileMapperAsset {
|
||||
pub fn sample_tile(&self, height: f32) -> Handle<TileAsset> {
|
||||
pub fn sample_tile(&self, height: f32) -> AssetId<TileAsset> {
|
||||
for i in 0..self.thresholds.len() {
|
||||
let t = self.thresholds[i];
|
||||
if t >= height {
|
||||
return self.tiles[i].clone();
|
||||
return self.tiles[i].id();
|
||||
}
|
||||
}
|
||||
return self.tiles.last().unwrap().clone();
|
||||
return self.tiles.last().unwrap().id();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user