using System; using Unity.Collections; using Unity.Mathematics; namespace DanieleMarotta.RiversongCodeShowcase { public class EntityIdMap : IDisposable { private NativeGrid _data; public EntityIdMap(int2 size) { _data = new NativeGrid(size, Allocator.Persistent); } public void Dispose() { _data?.Dispose(); _data = null; } public void SetBuildingId(TileRect rect, int id) { foreach (var tile in TileRange.From(rect)) { ref var value = ref _data.GetValueRW(tile); value.BuildingId = id; } } public void SetResourceNodeId(int2 tile, int id) { ref var value = ref _data.GetValueRW(tile); value.ResourceNodeId = id; } public ref EntityIdMapValue GetValueRW(int2 tile) { return ref _data.GetValueRW(tile); } public NativeArray GetNativeArray() { return _data.GetNativeArray(); } } }