Wrap TileMap HashMaps in Arc for async pathfinding access

- Add Arc<AHashMap> wrapper around floor_tiles, fixture_tiles, item_tiles
- Copy-on-write semantics: Arc::make_mut clones only if other Arcs exist
- Add insert_floor, insert_fixture, insert_item, remove_item methods
- Add get_floor_mut, get_fixture_mut for visibility updates
- Update all mutation sites to use new TileMap methods
- Enables cheap Arc::clone for async pathfinding workers
- Single-threaded pathfinding: no clone, direct access
- Multi-threaded pathfinding: clone Arc, read without locks
This commit is contained in:
2026-03-18 14:56:57 +00:00
parent 8478b385bc
commit 466a20700a
6 changed files with 49 additions and 30 deletions
+1 -1
View File
@@ -159,7 +159,7 @@ pub fn generate_chunk_terrain(
.unwrap()
.into_iter()
.map(|(pos, data)| {
tilemap.floor_tiles.insert(pos, data);
tilemap.insert_floor(pos, data);
pos
})
.collect();