using ET.EventType; using System; using System.Collections.Generic; using System.Text; namespace ET { public class MapUnitComponentAeakeSystem : AwakeSystem { public override void Awake(MapUnitComponent self) { self.Awake(); } } public class MapUnitComponentDestroySystem : DestroySystem { public override void Destroy(MapUnitComponent self) { self.onLineIds.Clear(); } } public static class MapUnitComponentSystem { public static void Awake(this MapUnitComponent self) { MapUnitComponent.Instance = self; } public static void Add(this MapUnitComponent self, Unit unit) { self.idUnits[unit.Id] = unit; } public static Unit Get(this MapUnitComponent self, long id) { self.idUnits.TryGetValue(id, out Unit unit); return unit; } public static IEnumerable GetAll(this MapUnitComponent self) { return self.idUnits.Values; } public static void Remove(this MapUnitComponent self, long id) { self.idUnits.Remove(id); } public static void OnLine(this MapUnitComponent self, long id) { self.onLineIds.Add(id); } public static bool IsOnLine(this MapUnitComponent self, long id) =>self. onLineIds.Contains(id); public static void OffLine(this MapUnitComponent self, long id) { self.onLineIds.Remove(id); } public static async ETTask Query(this MapUnitComponent self,long unitId) { var unit = self.Get(unitId); if (unit != null) { return unit; } return await UnitHelper.Query(self.Domain, unitId); } public static async ETVoid Save(this MapUnitComponent self, Unit unit) { await DBComponent.Instance.Save(unit); } } }