migratetion to 0.18.0
This commit is contained in:
Generated
+1202
-676
File diff suppressed because it is too large
Load Diff
+5
-5
@@ -4,12 +4,12 @@ version = "0.1.0"
|
|||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bevy = { version = "0.16.1", features = ["wayland"] }
|
bevy = { version = "0.18.0", features = ["wayland"] }
|
||||||
noise = "0.9.0"
|
noise = "0.9.0"
|
||||||
rand = "0.9.2"
|
rand = "0.10.0"
|
||||||
bevy_rand = { version = "0.11.3", features = ["wyrand"] }
|
bevy_rand = { version = "0.14.0", features = ["wyrand"] }
|
||||||
image = "0.25.8"
|
image = "0.25.9"
|
||||||
bevy_platform = "0.16.1"
|
bevy_platform = "0.18.0"
|
||||||
rayon = "1.11.0"
|
rayon = "1.11.0"
|
||||||
|
|
||||||
# Enable max optimizations for dependencies, but not for our code:
|
# Enable max optimizations for dependencies, but not for our code:
|
||||||
|
|||||||
+1
-2
@@ -1,7 +1,6 @@
|
|||||||
use bevy::input::keyboard::KeyCode;
|
use bevy::input::keyboard::KeyCode;
|
||||||
use bevy::input::mouse::{MouseScrollUnit, MouseWheel};
|
use bevy::input::mouse::{MouseScrollUnit, MouseWheel};
|
||||||
use bevy::prelude::*;
|
use bevy::prelude::*;
|
||||||
use bevy::render::camera::{OrthographicProjection, Projection};
|
|
||||||
|
|
||||||
use crate::game;
|
use crate::game;
|
||||||
use crate::world::{Z_ABOVE, Z_BELOW};
|
use crate::world::{Z_ABOVE, Z_BELOW};
|
||||||
@@ -76,7 +75,7 @@ pub fn spawn_panning_camera(mut commands: Commands) {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn scroll_events(mut evr_scroll: EventReader<MouseWheel>, mut query: Query<&mut Projection>) {
|
pub fn scroll_events(mut evr_scroll: MessageReader<MouseWheel>, mut query: Query<&mut Projection>) {
|
||||||
const LINE_SENSITIVITY: f32 = 0.035;
|
const LINE_SENSITIVITY: f32 = 0.035;
|
||||||
const PIXEL_SENSITIVITY: f32 = 0.001;
|
const PIXEL_SENSITIVITY: f32 = 0.001;
|
||||||
const MIN_SCALE: f32 = 0.3;
|
const MIN_SCALE: f32 = 0.3;
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ pub fn spawn_prefab(
|
|||||||
.get(&position.as_ivec3())
|
.get(&position.as_ivec3())
|
||||||
.unwrap_or(&Vec::new())
|
.unwrap_or(&Vec::new())
|
||||||
.clone();
|
.clone();
|
||||||
items.push(meat.index());
|
items.push(meat.index_u32());
|
||||||
tilemap
|
tilemap
|
||||||
.item_tiles
|
.item_tiles
|
||||||
.insert(position.as_ivec3(), items.clone());
|
.insert(position.as_ivec3(), items.clone());
|
||||||
@@ -81,7 +81,7 @@ pub fn spawn_prefab(
|
|||||||
.get(&position.as_ivec3())
|
.get(&position.as_ivec3())
|
||||||
.unwrap_or(&Vec::new())
|
.unwrap_or(&Vec::new())
|
||||||
.clone();
|
.clone();
|
||||||
items.push(coin.index());
|
items.push(coin.index_u32());
|
||||||
tilemap
|
tilemap
|
||||||
.item_tiles
|
.item_tiles
|
||||||
.insert(position.as_ivec3(), items.clone());
|
.insert(position.as_ivec3(), items.clone());
|
||||||
|
|||||||
@@ -130,11 +130,12 @@ pub fn item_tile_management_system(
|
|||||||
// Single item: ensure visible
|
// Single item: ensure visible
|
||||||
if items.len() <= 1 {
|
if items.len() <= 1 {
|
||||||
if let Some(&entity_id) = items.first() {
|
if let Some(&entity_id) = items.first() {
|
||||||
let entity = Entity::from_raw(entity_id);
|
if let Some(entity) = Entity::from_raw_u32(entity_id) {
|
||||||
if let Ok(mut rotation_state) = item_query.get_mut(entity) {
|
if let Ok(mut rotation_state) = item_query.get_mut(entity) {
|
||||||
rotation_state.should_be_visible = true;
|
rotation_state.should_be_visible = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -146,19 +147,21 @@ pub fn item_tile_management_system(
|
|||||||
.unwrap_or(0);
|
.unwrap_or(0);
|
||||||
|
|
||||||
for &entity_id in items {
|
for &entity_id in items {
|
||||||
let entity = Entity::from_raw(entity_id);
|
if let Some(entity) = Entity::from_raw_u32(entity_id) {
|
||||||
if let Ok(mut rotation_state) = item_query.get_mut(entity) {
|
if let Ok(mut rotation_state) = item_query.get_mut(entity) {
|
||||||
rotation_state.should_be_visible = false;
|
rotation_state.should_be_visible = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let next_index = (current_index + 1) % items.len();
|
let next_index = (current_index + 1) % items.len();
|
||||||
if let Some(&next_entity_id) = items.get(next_index) {
|
if let Some(&next_entity_id) = items.get(next_index) {
|
||||||
let next_entity = Entity::from_raw(next_entity_id);
|
if let Some(next_entity) = Entity::from_raw_u32(next_entity_id) {
|
||||||
if let Ok(mut rotation_state) = item_query.get_mut(next_entity) {
|
if let Ok(mut rotation_state) = item_query.get_mut(next_entity) {
|
||||||
rotation_state.should_be_visible = true;
|
rotation_state.should_be_visible = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
rotation_timer.current_indices.insert(position, next_index);
|
rotation_timer.current_indices.insert(position, next_index);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ use crate::world::tiles::tilemap;
|
|||||||
use crate::world::VisibleGameEntity;
|
use crate::world::VisibleGameEntity;
|
||||||
use bevy::prelude::*;
|
use bevy::prelude::*;
|
||||||
use bevy_rand::prelude::*;
|
use bevy_rand::prelude::*;
|
||||||
use rand::Rng;
|
use rand::RngExt;
|
||||||
|
|
||||||
#[derive(Bundle)]
|
#[derive(Bundle)]
|
||||||
pub struct Pig {
|
pub struct Pig {
|
||||||
@@ -45,7 +45,7 @@ pub struct PigDropTimer(pub Timer);
|
|||||||
pub fn spawn_pigs(
|
pub fn spawn_pigs(
|
||||||
mut commands: Commands,
|
mut commands: Commands,
|
||||||
asset_server: Res<AssetServer>,
|
asset_server: Res<AssetServer>,
|
||||||
mut rng_q: Query<&mut Entropy<WyRand>, With<Global>>,
|
mut rng_q: Query<&mut WyRand, With<GlobalRng>>,
|
||||||
) {
|
) {
|
||||||
if let Ok(mut rng) = rng_q.single_mut() {
|
if let Ok(mut rng) = rng_q.single_mut() {
|
||||||
for _ in 0..5 {
|
for _ in 0..5 {
|
||||||
@@ -70,7 +70,7 @@ pub fn pig_drop_system(
|
|||||||
time: Res<Time>,
|
time: Res<Time>,
|
||||||
mut pigs: Query<(&mut PigDropTimer, &Transform)>,
|
mut pigs: Query<(&mut PigDropTimer, &Transform)>,
|
||||||
mut tilemap: ResMut<tilemap::TileMap>,
|
mut tilemap: ResMut<tilemap::TileMap>,
|
||||||
mut rng_q: Query<&mut Entropy<WyRand>, With<Global>>,
|
mut rng_q: Query<&mut WyRand, With<GlobalRng>>,
|
||||||
) {
|
) {
|
||||||
for (mut timer, transform) in &mut pigs {
|
for (mut timer, transform) in &mut pigs {
|
||||||
timer.tick(time.delta());
|
timer.tick(time.delta());
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ use crate::entities::shared_components::Ambulatory;
|
|||||||
use crate::world::VisibleGameEntity;
|
use crate::world::VisibleGameEntity;
|
||||||
use bevy::prelude::*;
|
use bevy::prelude::*;
|
||||||
use bevy_rand::prelude::*;
|
use bevy_rand::prelude::*;
|
||||||
use rand::Rng;
|
use rand::RngExt;
|
||||||
|
|
||||||
#[derive(Bundle)]
|
#[derive(Bundle)]
|
||||||
pub struct Rabbit {
|
pub struct Rabbit {
|
||||||
@@ -38,7 +38,7 @@ impl Rabbit {
|
|||||||
pub fn spawn_rabbits(
|
pub fn spawn_rabbits(
|
||||||
mut commands: Commands,
|
mut commands: Commands,
|
||||||
asset_server: Res<AssetServer>,
|
asset_server: Res<AssetServer>,
|
||||||
mut rng_q: Query<&mut Entropy<WyRand>, With<Global>>,
|
mut rng_q: Query<&mut WyRand, With<GlobalRng>>,
|
||||||
) {
|
) {
|
||||||
if let Ok(mut rng) = rng_q.single_mut() {
|
if let Ok(mut rng) = rng_q.single_mut() {
|
||||||
for _ in 0..15 {
|
for _ in 0..15 {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ use crate::entities::shared_components::Ambulatory;
|
|||||||
use crate::world::VisibleGameEntity;
|
use crate::world::VisibleGameEntity;
|
||||||
use bevy::prelude::*;
|
use bevy::prelude::*;
|
||||||
use bevy_rand::prelude::*;
|
use bevy_rand::prelude::*;
|
||||||
use rand::Rng;
|
use rand::RngExt;
|
||||||
|
|
||||||
#[derive(Bundle)]
|
#[derive(Bundle)]
|
||||||
pub struct Dorf {
|
pub struct Dorf {
|
||||||
@@ -38,7 +38,7 @@ impl Dorf {
|
|||||||
pub fn spawn_dorfs(
|
pub fn spawn_dorfs(
|
||||||
mut commands: Commands,
|
mut commands: Commands,
|
||||||
asset_server: Res<AssetServer>,
|
asset_server: Res<AssetServer>,
|
||||||
mut rng_q: Query<&mut Entropy<WyRand>, With<Global>>,
|
mut rng_q: Query<&mut WyRand, With<GlobalRng>>,
|
||||||
) {
|
) {
|
||||||
if let Ok(mut rng) = rng_q.single_mut() {
|
if let Ok(mut rng) = rng_q.single_mut() {
|
||||||
// Spawn a handful of dorfs
|
// Spawn a handful of dorfs
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ use crate::world::{chunks::ChunkMap, chunks::CHUNK_SIZE};
|
|||||||
use crate::{constants::*, entities::shared_components::Ambulatory};
|
use crate::{constants::*, entities::shared_components::Ambulatory};
|
||||||
use bevy::{math::ivec3, prelude::*};
|
use bevy::{math::ivec3, prelude::*};
|
||||||
use bevy_rand::prelude::*;
|
use bevy_rand::prelude::*;
|
||||||
use rand::Rng;
|
use rand::RngExt;
|
||||||
use std::{
|
use std::{
|
||||||
collections::{BinaryHeap, HashMap, HashSet},
|
collections::{BinaryHeap, HashMap, HashSet},
|
||||||
process::exit,
|
process::exit,
|
||||||
@@ -41,7 +41,7 @@ pub fn update_wandering_targets(
|
|||||||
mut query: Query<(&mut Ambulatory, &Transform)>, // add a 'with' here when behaviours are implemented
|
mut query: Query<(&mut Ambulatory, &Transform)>, // add a 'with' here when behaviours are implemented
|
||||||
tilemap: Res<TileMap>,
|
tilemap: Res<TileMap>,
|
||||||
chunk_map: Res<ChunkMap>,
|
chunk_map: Res<ChunkMap>,
|
||||||
mut rng_q: Query<&mut Entropy<WyRand>, With<Global>>,
|
mut rng_q: Query<&mut WyRand, With<GlobalRng>>,
|
||||||
) {
|
) {
|
||||||
if let Ok(mut rng) = rng_q.single_mut() {
|
if let Ok(mut rng) = rng_q.single_mut() {
|
||||||
for (mut ambulatory, _) in query.iter_mut() {
|
for (mut ambulatory, _) in query.iter_mut() {
|
||||||
|
|||||||
+1
-1
@@ -33,7 +33,7 @@ fn main() {
|
|||||||
})
|
})
|
||||||
.set(ImagePlugin::default_nearest()),
|
.set(ImagePlugin::default_nearest()),
|
||||||
)
|
)
|
||||||
.add_plugins(bevy_rand::plugin::EntropyPlugin::<WyRand>::with_seed(
|
.add_plugins(EntropyPlugin::<WyRand>::with_seed(
|
||||||
(constants::SEED as u64).to_le_bytes(),
|
(constants::SEED as u64).to_le_bytes(),
|
||||||
))
|
))
|
||||||
.insert_resource(ClearColor(Color::srgb(0., 0., 0.)))
|
.insert_resource(ClearColor(Color::srgb(0., 0., 0.)))
|
||||||
|
|||||||
@@ -25,29 +25,29 @@ impl Default for ChunkMap {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Event)]
|
#[derive(Message)]
|
||||||
pub struct GenerateChunkEvent {
|
pub struct GenerateChunkEvent {
|
||||||
pub chunk_position: IVec2,
|
pub chunk_position: IVec2,
|
||||||
}
|
}
|
||||||
#[derive(Event)]
|
#[derive(Message)]
|
||||||
pub struct ChunkTerrainEvent {
|
pub struct ChunkTerrainEvent {
|
||||||
pub chunk_position: IVec2,
|
pub chunk_position: IVec2,
|
||||||
}
|
}
|
||||||
#[derive(Event)]
|
#[derive(Message)]
|
||||||
// CAlculate the weather effecrs and rivers/lakes of this chunk
|
// CAlculate the weather effecrs and rivers/lakes of this chunk
|
||||||
pub struct ChunkWeatheringAndPrecipitationEvent {
|
pub struct ChunkWeatheringAndPrecipitationEvent {
|
||||||
pub chunk_position: IVec2,
|
pub chunk_position: IVec2,
|
||||||
}
|
}
|
||||||
#[derive(Event)]
|
#[derive(Message)]
|
||||||
pub struct ChunkForrestryEvent {
|
pub struct ChunkForrestryEvent {
|
||||||
pub chunk_position: IVec2,
|
pub chunk_position: IVec2,
|
||||||
pub floor_tiles: Vec<(Vec3, String)>,
|
pub floor_tiles: Vec<(Vec3, String)>,
|
||||||
}
|
}
|
||||||
#[derive(Event)]
|
#[derive(Message)]
|
||||||
pub struct ChunkFoliageEvent {
|
pub struct ChunkFoliageEvent {
|
||||||
pub chunk_position: IVec2,
|
pub chunk_position: IVec2,
|
||||||
}
|
}
|
||||||
#[derive(Event)]
|
#[derive(Message)]
|
||||||
pub struct ChunkFaunaEvent {
|
pub struct ChunkFaunaEvent {
|
||||||
pub chunk_position: IVec2,
|
pub chunk_position: IVec2,
|
||||||
}
|
}
|
||||||
@@ -58,12 +58,12 @@ pub fn setup_chunk_system(mut commands: Commands) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn handle_chunk_events(
|
pub fn handle_chunk_events(
|
||||||
mut chunk_events: EventReader<GenerateChunkEvent>,
|
mut chunk_events: MessageReader<GenerateChunkEvent>,
|
||||||
mut chunk_map: ResMut<ChunkMap>,
|
mut chunk_map: ResMut<ChunkMap>,
|
||||||
mut terrain_event_writer: EventWriter<ChunkTerrainEvent>,
|
mut terrain_event_writer: MessageWriter<ChunkTerrainEvent>,
|
||||||
mut weathering_event_writer: EventWriter<ChunkWeatheringAndPrecipitationEvent>,
|
mut weathering_event_writer: MessageWriter<ChunkWeatheringAndPrecipitationEvent>,
|
||||||
mut foliage_event_writer: EventWriter<ChunkFoliageEvent>,
|
mut foliage_event_writer: MessageWriter<ChunkFoliageEvent>,
|
||||||
mut fauna_event_writer: EventWriter<ChunkFaunaEvent>,
|
mut fauna_event_writer: MessageWriter<ChunkFaunaEvent>,
|
||||||
mut cwss: ResMut<CurrentWorldSpriteState>,
|
mut cwss: ResMut<CurrentWorldSpriteState>,
|
||||||
) {
|
) {
|
||||||
let mut any = false;
|
let mut any = false;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ use crate::world::{tiles::TileMap, ChunkMap, GenerateChunkEvent};
|
|||||||
|
|
||||||
pub fn generate_chunk_fauna(
|
pub fn generate_chunk_fauna(
|
||||||
mut commands: Commands,
|
mut commands: Commands,
|
||||||
mut events: EventReader<GenerateChunkEvent>,
|
mut events: MessageReader<GenerateChunkEvent>,
|
||||||
mut chunk_map: ResMut<ChunkMap>,
|
mut chunk_map: ResMut<ChunkMap>,
|
||||||
mut tilemap: ResMut<TileMap>,
|
mut tilemap: ResMut<TileMap>,
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ use crate::world::{tiles::TileMap, ChunkMap, GenerateChunkEvent};
|
|||||||
|
|
||||||
pub fn generate_chunk_foliage(
|
pub fn generate_chunk_foliage(
|
||||||
mut commands: Commands,
|
mut commands: Commands,
|
||||||
mut events: EventReader<GenerateChunkEvent>,
|
mut events: MessageReader<GenerateChunkEvent>,
|
||||||
mut chunk_map: ResMut<ChunkMap>,
|
mut chunk_map: ResMut<ChunkMap>,
|
||||||
mut tilemap: ResMut<TileMap>,
|
mut tilemap: ResMut<TileMap>,
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ use bevy_platform::sync::Mutex;
|
|||||||
use bevy_platform::time::Instant;
|
use bevy_platform::time::Instant;
|
||||||
use bevy_rand::prelude::*;
|
use bevy_rand::prelude::*;
|
||||||
|
|
||||||
use rand::{Rng, SeedableRng};
|
use rand::{RngExt, SeedableRng};
|
||||||
use std::collections::hash_map::DefaultHasher;
|
use std::collections::hash_map::DefaultHasher;
|
||||||
use std::hash::{Hash, Hasher};
|
use std::hash::{Hash, Hasher};
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ use crate::{
|
|||||||
|
|
||||||
pub fn generate_chunk_forrestry(
|
pub fn generate_chunk_forrestry(
|
||||||
commands: ParallelCommands<'_, '_>,
|
commands: ParallelCommands<'_, '_>,
|
||||||
mut events: EventReader<ChunkForrestryEvent>,
|
mut events: MessageReader<ChunkForrestryEvent>,
|
||||||
mut tilemap: ResMut<TileMap>,
|
mut tilemap: ResMut<TileMap>,
|
||||||
texture_ids: Res<TextureIDs>,
|
texture_ids: Res<TextureIDs>,
|
||||||
textures: Res<Textures>,
|
textures: Res<Textures>,
|
||||||
|
|||||||
@@ -28,10 +28,10 @@ pub fn generate_surface_terrain(x: i32, y: i32) -> f32 {
|
|||||||
|
|
||||||
pub fn generate_chunk_terrain(
|
pub fn generate_chunk_terrain(
|
||||||
commands: ParallelCommands<'_, '_>, // Use ParallelCommands for parallel spawning
|
commands: ParallelCommands<'_, '_>, // Use ParallelCommands for parallel spawning
|
||||||
mut events: EventReader<ChunkTerrainEvent>,
|
mut events: MessageReader<ChunkTerrainEvent>,
|
||||||
mut tilemap: ResMut<TileMap>,
|
mut tilemap: ResMut<TileMap>,
|
||||||
mut forrestry_event_writer: EventWriter<ChunkForrestryEvent>,
|
mut forrestry_event_writer: MessageWriter<ChunkForrestryEvent>,
|
||||||
mut occlusion_event_writer: EventWriter<TileOcclusionEvent>,
|
mut occlusion_event_writer: MessageWriter<TileOcclusionEvent>,
|
||||||
) {
|
) {
|
||||||
let is_empty = events.is_empty();
|
let is_empty = events.is_empty();
|
||||||
let start = Instant::now();
|
let start = Instant::now();
|
||||||
|
|||||||
+8
-8
@@ -23,13 +23,13 @@ pub struct WorldPlugin;
|
|||||||
impl Plugin for WorldPlugin {
|
impl Plugin for WorldPlugin {
|
||||||
fn build(&self, app: &mut App) {
|
fn build(&self, app: &mut App) {
|
||||||
app.init_resource::<ChunkMap>()
|
app.init_resource::<ChunkMap>()
|
||||||
.add_event::<GenerateChunkEvent>()
|
.add_message::<GenerateChunkEvent>()
|
||||||
.add_event::<ChunkTerrainEvent>()
|
.add_message::<ChunkTerrainEvent>()
|
||||||
.add_event::<ChunkWeatheringAndPrecipitationEvent>()
|
.add_message::<ChunkWeatheringAndPrecipitationEvent>()
|
||||||
.add_event::<ChunkForrestryEvent>()
|
.add_message::<ChunkForrestryEvent>()
|
||||||
.add_event::<ChunkFoliageEvent>()
|
.add_message::<ChunkFoliageEvent>()
|
||||||
.add_event::<ChunkFaunaEvent>()
|
.add_message::<ChunkFaunaEvent>()
|
||||||
.add_event::<TileOcclusionEvent>()
|
.add_message::<TileOcclusionEvent>()
|
||||||
.add_systems(Startup, (setup_chunk_system, setup_initial_chunks).chain())
|
.add_systems(Startup, (setup_chunk_system, setup_initial_chunks).chain())
|
||||||
.add_systems(
|
.add_systems(
|
||||||
FixedUpdate,
|
FixedUpdate,
|
||||||
@@ -68,7 +68,7 @@ impl Plugin for WorldPlugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn setup_initial_chunks(mut event_writer: EventWriter<GenerateChunkEvent>) {
|
fn setup_initial_chunks(mut event_writer: MessageWriter<GenerateChunkEvent>) {
|
||||||
for x in -5..=5 {
|
for x in -5..=5 {
|
||||||
for y in -5..=5 {
|
for y in -5..=5 {
|
||||||
event_writer.write(GenerateChunkEvent {
|
event_writer.write(GenerateChunkEvent {
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ pub fn compute_visibility_of_game_entities(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Event)]
|
#[derive(Message)]
|
||||||
pub struct TileOcclusionEvent {
|
pub struct TileOcclusionEvent {
|
||||||
pub tile_position: IVec3,
|
pub tile_position: IVec3,
|
||||||
}
|
}
|
||||||
@@ -76,7 +76,7 @@ pub fn handle_tile_occlusion_updates(
|
|||||||
mut tilemap: ResMut<TileMap>,
|
mut tilemap: ResMut<TileMap>,
|
||||||
mut floor_tiles: Query<(Entity, &mut FloorTile, &Transform)>,
|
mut floor_tiles: Query<(Entity, &mut FloorTile, &Transform)>,
|
||||||
mut cwss: ResMut<CurrentWorldSpriteState>,
|
mut cwss: ResMut<CurrentWorldSpriteState>,
|
||||||
mut events: EventReader<TileOcclusionEvent>,
|
mut events: MessageReader<TileOcclusionEvent>,
|
||||||
) {
|
) {
|
||||||
let start = Instant::now();
|
let start = Instant::now();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user