You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.3 KiB

using System.Collections.Generic;
using System.Text;
namespace ET
{
[ObjectSystem]
public class CellDestroySystem: DestroySystem<Cell>
{
public override void Destroy(Cell self)
{
self.AOIUnits.Clear();
self.SubsEnterEntities.Clear();
self.SubsLeaveEntities.Clear();
}
}
[FriendClass(typeof(Cell))]
public static class CellSystem
{
public static void Add(this Cell self, AOIEntity aoiEntity)
{
self.AOIUnits.Add(aoiEntity.Id, aoiEntity);
}
public static void Remove(this Cell self, AOIEntity aoiEntity)
{
self.AOIUnits.Remove(aoiEntity.Id);
}
public static string CellIdToString(this long cellId)
{
int y = (int) (cellId & 0xffffffff);
int x = (int) ((ulong) cellId >> 32);
return $"{x}:{y}";
}
public static string CellIdToString(this HashSet<long> cellIds)
{
StringBuilder sb = new StringBuilder();
foreach (long cellId in cellIds)
{
sb.Append(cellId.CellIdToString());
sb.Append(",");
}
return sb.ToString();
}
}
}