mirror of
https://github.com/Xevion/Pac-Man.git
synced 2025-12-10 14:07:59 -06:00
refactor: improve representation of movement system
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
//! Map construction and building functionality.
|
||||
|
||||
use crate::constants::{MapTile, BOARD_CELL_SIZE, CELL_SIZE};
|
||||
use crate::entity::direction::Direction;
|
||||
use crate::entity::graph::{EdgePermissions, Graph, Node};
|
||||
use crate::entity::graph::{Graph, Node, TraversalFlags};
|
||||
use crate::map::parser::MapTileParser;
|
||||
use crate::map::render::MapRenderer;
|
||||
use crate::systems::components::NodeId;
|
||||
@@ -166,44 +165,6 @@ impl Map {
|
||||
})
|
||||
}
|
||||
|
||||
/// Generates Item entities for pellets and energizers from the parsed map.
|
||||
// pub fn generate_items(&self, atlas: &SpriteAtlas) -> GameResult<Vec<Item>> {
|
||||
// // Pre-load sprites to avoid repeated texture lookups
|
||||
// let pellet_sprite = SpriteAtlas::get_tile(atlas, "maze/pellet.png")
|
||||
// .ok_or_else(|| MapError::InvalidConfig("Pellet texture not found".to_string()))?;
|
||||
// let energizer_sprite = SpriteAtlas::get_tile(atlas, "maze/energizer.png")
|
||||
// .ok_or_else(|| MapError::InvalidConfig("Energizer texture not found".to_string()))?;
|
||||
|
||||
// // Pre-allocate with estimated capacity (typical Pac-Man maps have ~240 pellets + 4 energizers)
|
||||
// let mut items = Vec::with_capacity(250);
|
||||
|
||||
// // Parse the raw board once
|
||||
// let parsed_map = MapTileParser::parse_board(RAW_BOARD)?;
|
||||
// let map = parsed_map.tiles;
|
||||
|
||||
// // Iterate through the map and collect items more efficiently
|
||||
// for (x, row) in map.iter().enumerate() {
|
||||
// for (y, tile) in row.iter().enumerate() {
|
||||
// match tile {
|
||||
// MapTile::Pellet | MapTile::PowerPellet => {
|
||||
// let grid_pos = IVec2::new(x as i32, y as i32);
|
||||
// if let Some(&node_id) = self.grid_to_node.get(&grid_pos) {
|
||||
// let (item_type, sprite) = match tile {
|
||||
// MapTile::Pellet => (ItemType::Pellet, Sprite::new(pellet_sprite)),
|
||||
// MapTile::PowerPellet => (ItemType::Energizer, Sprite::new(energizer_sprite)),
|
||||
// _ => unreachable!(), // We already filtered for these types
|
||||
// };
|
||||
// items.push(Item::new(node_id, item_type, sprite));
|
||||
// }
|
||||
// }
|
||||
// _ => {}
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// Ok(items)
|
||||
// }
|
||||
|
||||
/// Renders a debug visualization with cursor-based highlighting.
|
||||
///
|
||||
/// This function provides interactive debugging by highlighting the nearest node
|
||||
@@ -304,7 +265,7 @@ impl Map {
|
||||
false,
|
||||
None,
|
||||
Direction::Down,
|
||||
EdgePermissions::GhostsOnly,
|
||||
TraversalFlags::GHOST,
|
||||
)
|
||||
.map_err(|e| MapError::InvalidConfig(format!("Failed to create ghost-only entrance to house: {e}")))?;
|
||||
|
||||
@@ -315,7 +276,7 @@ impl Map {
|
||||
false,
|
||||
None,
|
||||
Direction::Up,
|
||||
EdgePermissions::GhostsOnly,
|
||||
TraversalFlags::GHOST,
|
||||
)
|
||||
.map_err(|e| MapError::InvalidConfig(format!("Failed to create ghost-only exit from house: {e}")))?;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user