refactor: extract generic digging system, drop tables, remove debug code
- New src/entities/item/drop_table.rs: DropEntry (chance, min/max count, pseudo-RNG roll) + DropTable wrapper. grass=5% coin 1-2, rock=10% coin 1, dirt/air=none. - New src/entities/shared_systems/digging.rs: Digger component + dig_system. Any entity with Digger digs the tile below on its interval. Replaces rabbit_dig_system/rabbit_fall_debug_system/RabbitDigTimer/RabbitFallDebug. - New TileMap::dig_floor: remove_floor + insert air. Used by dig_system. - FloorTileData: added drop_table field. Lost Copy derive (Vec field). Updated all 6 terrain.rs call sites with per-tile drop tables. - Pig: removed PigDropTimer + pig_drop_system. Drops were debug placeholder. TODO added for future loot-on-death/butcher system. - Rabbit: removed all debug components/systems. Now uses Digger::new(5.0). - main.rs: removed rabbit_dig_system/rabbit_fall_debug_system/pig_drop_system, added shared_systems::digging::dig_system.
This commit is contained in:
+3
-7
@@ -3,7 +3,7 @@ use bevy_rand::prelude::*;
|
||||
|
||||
use crate::entities::{
|
||||
item::{initialize_item_rotation_state, item_tile_management_system, ItemRotationTimer},
|
||||
livestock::pig::pig_drop_system,
|
||||
shared_systems::digging::dig_system,
|
||||
};
|
||||
use crate::game::SpawnDelay;
|
||||
|
||||
@@ -45,10 +45,6 @@ fn main() {
|
||||
.insert_resource(ClearColor(Color::srgb(0., 0., 0.)))
|
||||
.add_plugins(world::WorldPlugin)
|
||||
.add_plugins(entities::pathfinding::PathfindingPlugin)
|
||||
.add_systems(
|
||||
FixedUpdate,
|
||||
entities::livestock::rabbit::rabbit_fall_debug_system,
|
||||
)
|
||||
.add_systems(
|
||||
Startup,
|
||||
(camera::spawn_panning_camera, cursor::setup_cursor),
|
||||
@@ -63,10 +59,10 @@ fn main() {
|
||||
entities::sentient::dorf::spawn_dorfs,
|
||||
entities::livestock::pig::spawn_pigs,
|
||||
entities::livestock::rabbit::spawn_rabbits,
|
||||
entities::livestock::rabbit::rabbit_dig_system,
|
||||
dig_system,
|
||||
),
|
||||
)
|
||||
.add_systems(Update, pig_drop_system)
|
||||
|
||||
.insert_resource(ItemRotationTimer::default())
|
||||
.add_systems(Update, initialize_item_rotation_state)
|
||||
.add_systems(
|
||||
|
||||
Reference in New Issue
Block a user