riversong code showcase

This commit is contained in:
Daniele Marotta
2026-05-21 15:52:18 +02:00
commit 4c9eea1c02
462 changed files with 23406 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
using Unity.Collections;
using Unity.Mathematics;
namespace DanieleMarotta.RiversongCodeShowcase
{
public class BlockMap : NativeGrid<BlockReason>
{
public BlockMap(int2 size) : base(size, Allocator.Persistent)
{
}
public void AddReason(int2 tile, BlockReason reason)
{
SetValue(tile, GetValue(tile) | reason);
}
public void AddReason(int2 min, int2 max, BlockReason reason)
{
foreach (var tile in TileRange.From(min, max)) AddReason(tile, reason);
}
public void RemoveReason(int2 tile, BlockReason reason)
{
SetValue(tile, GetValue(tile) & ~reason);
}
public void RemoveReason(int2 min, int2 max, BlockReason reason)
{
foreach (var tile in TileRange.From(min, max)) RemoveReason(tile, reason);
}
public bool IsBlocked(int2 tile, BlockReason reason = BlockReason.Any)
{
return (GetValue(tile) & reason) != 0;
}
}
}