feat: soft entity collision, dead code removal, leaf standability fix
- Add TileOccupancy resource and rebuild_tile_occupancy system to track per-tile entity counts for soft collision avoidance - Add collision_delay to Ambulatory; entities try relative-left step on occupied tiles, wait 1 tick, then push through - Fix leaf canopy standability: leaves are now can_stand_in=true, can_stand_on=false (walkable, not standable-on) - Delete FloorTilePrefab / FixtureTilePrefab / FloorTile / FixtureTile / TileState (all fully dead — TileMap + ChunkData are sole truth) - Delete tile_spawns from TerrainBlob (populated but never consumed) - Delete leaf ghost entity spawn in forestry (orphaned invisible ECS entity) - Replace log prefab spawn with inline commands.spawn(Transform, Visibility) - Add TileMap::remove_fixture for future digging/explosion use - Skip collision avoidance when current tile has >2 entities (handles spawn cluster deadlock)
This commit is contained in:
+4
-7
@@ -2,8 +2,8 @@ use crate::{
|
||||
camera,
|
||||
config::{GameConfig, VsyncMode},
|
||||
world::generation::{
|
||||
generate_chunk_fauna, generate_chunk_foliage, generate_chunk_forrestry,
|
||||
generate_chunk_weathering_and_precipitation, apply_terrain_blobs, spawn_terrain_tasks,
|
||||
apply_terrain_blobs, generate_chunk_fauna, generate_chunk_foliage,
|
||||
generate_chunk_forrestry, generate_chunk_weathering_and_precipitation, spawn_terrain_tasks,
|
||||
TerrainBlobStorage,
|
||||
},
|
||||
};
|
||||
@@ -16,12 +16,9 @@ pub mod tiles;
|
||||
|
||||
pub use chunks::management::*;
|
||||
pub use textures::management::*;
|
||||
pub use tiles::{prefabs::*, rendering::*, visibility::*};
|
||||
pub use tiles::{rendering::*, visibility::*};
|
||||
|
||||
pub fn apply_vsync_setting(
|
||||
config: Res<GameConfig>,
|
||||
mut windows: Query<&mut Window>,
|
||||
) {
|
||||
pub fn apply_vsync_setting(config: Res<GameConfig>, mut windows: Query<&mut Window>) {
|
||||
if config.is_changed() {
|
||||
if let Ok(mut window) = windows.single_mut() {
|
||||
window.present_mode = match config.display.vsync {
|
||||
|
||||
Reference in New Issue
Block a user