refactor: code cleanup — dead code, warnings, duplication
Dead code removed (21 methods, 4 fields, 3 constants): - Cell: MaterialId::ALL, MaterialId::from_u8 (unsafe transmute) - Grid: get_mut, clear, fill_rect, swap, dump_region, next buffer field - Entity: move_center, EntityManager::iter_mut - Player: move_dir field, entity_mut - VerletSolver: step, SubBody::add_vel, SubBody::apply_force - CellularAutomaton: tick_count - InputHandler: release_all, poll, Action::None - WindowInput: clear - GameSession: perform_action_and_step, is_recording, grid_mut - ReplayPlayer: from_recording - Material: empty() - VulkanRenderer: tick_count field - MaterialBrush: name() Warnings fixed: - Remove unused MaterialRegistry imports from renderers - Remove unused reg variables in terminal/vulkan/graphics - Remove unused water_surface in game.rs - Remove unused p/y_death in tests - Remove unused qf_slice in graphics.rs Duplication eliminated: - main.rs: run_ascii_mode + run_graphics_mode → generic run_gpu_mode<R: GpuRenderer> ~140 lines of duplicated event loop code removed - GpuRenderer trait unifies VulkanRenderer and GraphicsRenderer API Unsafe code fixed: - rand_u8: static mut + unsafe → AtomicU8 + fetch_add (thread-safe) Module cleanup: - world/mod.rs: removed all unused re-exports - physics/mod.rs: removed all unused re-exports - entity/mod.rs: removed unused Entity/EntityId re-exports Result: ~6500 → ~5964 lines, 0 non-deprecation warnings, 109 tests pass
This commit is contained in:
@@ -5,7 +5,6 @@ use std::sync::Arc;
|
||||
use crate::entity::{EntityManager, EntityKind};
|
||||
use crate::world::cell::MaterialId;
|
||||
use crate::world::grid::Grid;
|
||||
use crate::world::material::MaterialRegistry;
|
||||
|
||||
const CHAR_W: u32 = 16;
|
||||
const CHAR_H: u32 = 16;
|
||||
@@ -306,7 +305,6 @@ impl GraphicsRenderer {
|
||||
|
||||
pub fn render(&mut self, grid: &Grid, entities: &EntityManager, cam_x: i32, cam_y: i32) {
|
||||
self.check_resize();
|
||||
let reg = MaterialRegistry::instance();
|
||||
|
||||
let mut entity_map: std::collections::HashMap<(i32, i32), [u8; 4]> = std::collections::HashMap::new();
|
||||
for e in entities.all() {
|
||||
@@ -474,7 +472,6 @@ impl GraphicsRenderer {
|
||||
for &v in &self.swapchain_image_views { unsafe { self.device.destroy_image_view(v, None); } }
|
||||
|
||||
// Recreate swapchain
|
||||
let qf_slice = [0u32]; // placeholder, not used with EXCLUSIVE
|
||||
let sci = vk::SwapchainCreateInfoKHR::default()
|
||||
.surface(self.surface)
|
||||
.min_image_count(caps.min_image_count.max(2))
|
||||
|
||||
@@ -11,7 +11,6 @@ use crate::entity::EntityManager;
|
||||
use crate::render::Renderer;
|
||||
use crate::world::cell::MaterialId;
|
||||
use crate::world::grid::Grid;
|
||||
use crate::world::material::MaterialRegistry;
|
||||
|
||||
pub struct TerminalRenderer {
|
||||
width: usize,
|
||||
@@ -70,7 +69,6 @@ impl Renderer for TerminalRenderer {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
let reg = MaterialRegistry::instance();
|
||||
let mut out = stdout();
|
||||
let mut frame: Vec<(char, (u8, u8, u8), (u8, u8, u8))>;
|
||||
let total = self.width * self.height;
|
||||
@@ -80,13 +78,12 @@ impl Renderer for TerminalRenderer {
|
||||
for dx in 0..self.width {
|
||||
let wx = cam_x + dx as i32;
|
||||
let wy = cam_y + dy as i32;
|
||||
let idx = dy * self.width + dx;
|
||||
if !grid.in_bounds(wx, wy) {
|
||||
let idx = dy * self.width + dx;
|
||||
frame[idx] = ('?', (80, 80, 80), (10, 10, 15));
|
||||
continue;
|
||||
}
|
||||
let cell = grid.get(wx, wy);
|
||||
let idx = dy * self.width + dx;
|
||||
if cell.is_empty() {
|
||||
frame[idx] = (' ', (cell.fg[0], cell.fg[1], cell.fg[2]), (cell.bg[0], cell.bg[1], cell.bg[2]));
|
||||
} else {
|
||||
|
||||
@@ -6,7 +6,6 @@ use std::sync::Arc;
|
||||
use crate::entity::{EntityManager, EntityKind};
|
||||
use crate::world::cell::MaterialId;
|
||||
use crate::world::grid::Grid;
|
||||
use crate::world::material::MaterialRegistry;
|
||||
|
||||
const CHAR_W: u32 = 16;
|
||||
const CHAR_H: u32 = 16;
|
||||
@@ -84,7 +83,6 @@ pub struct VulkanRenderer {
|
||||
descriptor_pool: vk::DescriptorPool,
|
||||
descriptor_set: vk::DescriptorSet,
|
||||
descriptor_set_layout: vk::DescriptorSetLayout,
|
||||
tick_count: u64,
|
||||
window: Arc<winit::window::Window>,
|
||||
}
|
||||
|
||||
@@ -157,14 +155,12 @@ impl VulkanRenderer {
|
||||
atlas_image, atlas_memory, atlas_view, atlas_sampler, atlas_map,
|
||||
instance_buffer, instance_memory, instance_ptr, instance_count,
|
||||
descriptor_pool, descriptor_set, descriptor_set_layout,
|
||||
tick_count: 0,
|
||||
window,
|
||||
})
|
||||
}
|
||||
|
||||
pub fn render(&mut self, grid: &Grid, entities: &EntityManager, cam_x: i32, cam_y: i32) {
|
||||
self.check_resize();
|
||||
let reg = MaterialRegistry::instance();
|
||||
|
||||
let mut entity_map: std::collections::HashMap<(i32, i32), (char, [u8; 4])> = std::collections::HashMap::new();
|
||||
for e in entities.all() {
|
||||
@@ -306,7 +302,6 @@ impl VulkanRenderer {
|
||||
}
|
||||
|
||||
self.frame_index = (self.frame_index + 1) % MAX_FRAMES;
|
||||
self.tick_count += 1;
|
||||
}
|
||||
|
||||
pub fn grid_w(&self) -> usize { self.grid_w }
|
||||
|
||||
@@ -74,11 +74,4 @@ impl WindowInput {
|
||||
else if keys.contains(&KeyCode::Digit0) { self.paint = Some(0); }
|
||||
else if keys.contains(&KeyCode::KeyX) { self.paint = Some(99); }
|
||||
}
|
||||
|
||||
pub fn clear(&mut self) {
|
||||
self.down_keys.clear();
|
||||
self.left = false;
|
||||
self.right = false;
|
||||
self.jump = false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user