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:
@@ -167,7 +167,7 @@ pub fn generate_chunk_forrestry(
|
||||
|
||||
let collected_updates = collected_tilemap_updates.into_inner().unwrap();
|
||||
for (ivec, data) in collected_updates {
|
||||
tilemap.fixture_tiles.insert(ivec, data);
|
||||
tilemap.insert_fixture(ivec, data);
|
||||
}
|
||||
if count > 0 {
|
||||
println!(
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user