using System; using System.Collections.Generic; using Fantasy; using NBC; using Fantasy.Entitas; using Fantasy.Entitas.Interface; namespace NBF.Fishing2 { public class Map : Entity { public int MapId; public string RoomCode; /// /// 自己的实体id /// public long SelfId; /// /// 好友房地图 /// public bool IsRoomMap => !string.IsNullOrEmpty(RoomCode); /// /// 地图中的单位 /// public Dictionary Units = new Dictionary(); /// /// 自己的实体 /// public MapUnit SelfMapUnit => GetUnit(SelfId); #region System public class MapDestroySystem : DestroySystem { protected override void Destroy(Map self) { self.MapId = 0; self.SelfId = 0; self.RoomCode = string.Empty; self.Units.Clear(); } } #endregion public MapUnit CreateMapUnit(MapUnitInfo unitInfo) { var mapUnit = Create(Scene, unitInfo.Id, true, true); mapUnit.SetUnitInfo(unitInfo); Add(mapUnit); return mapUnit; } /// /// 获取一个单位 /// /// /// /// public MapUnit GetUnit(long id) { return Units.GetValueOrDefault(id); } /// /// 进入地图 /// /// /// /// public bool Add(MapUnit unit) { Units.Add(unit.Id, unit); return true; } /// /// 离开地图 /// /// /// /// public bool Remove(long id) { return Units.Remove(id); } } }