public bool RemovePlanet(PlanetoidData data) { PlanetoidCategory pType = data.Category; bool isRemoved = _composition[pType].Remove(data); if (_composition[pType].Count == Constants.Zero) { _composition.Remove(pType); } return isRemoved; }
public bool AddPlanet(PlanetoidData data) { PlanetoidCategory pType = data.Category; if (!_composition.ContainsKey(pType)) { _composition.Add(pType, new List<PlanetoidData>()); } if (_composition[pType].Contains(data)) { return false; } _composition[pType].Add(data); return true; }
private void Unsubscribe(PlanetoidData planetData) { _planetSubscribers[planetData].ForAll<IDisposable>(d => d.Dispose()); _planetSubscribers.Remove(planetData); }
public bool RemovePlanet(PlanetoidData data) { if (Composition.RemovePlanet(data)) { Unsubscribe(data); UpdateProperties(); return true; } D.Warn("Attempting to remove {0} {1} that is not present.", typeof(PlanetoidData), data.OptionalParentName); return false; }
public PlanetoidReport(PlanetoidData data, Player player, IPlanetoid_Ltd item) : base(data, player, item) { }
public bool ContainsPlanet(PlanetoidData data) { PlanetoidCategory hull = data.Category; return _composition[hull].Contains(data); }
public PlanetoidInfoAccessController(PlanetoidData data) : base(data) { }
private void SubscribeToPlanetoidDataValueChanges(PlanetoidData pData) { if (!_planetoidSubscriptions.ContainsKey(pData)) { _planetoidSubscriptions.Add(pData, new List<IDisposable>()); } var planetSubscriber = _planetoidSubscriptions[pData]; planetSubscriber.Add(pData.SubscribeToPropertyChanged<PlanetoidData, int>(pd => pd.Capacity, PlanetoidCapacityPropChangedHandler)); planetSubscriber.Add(pData.SubscribeToPropertyChanged<PlanetoidData, ResourceYield>(pd => pd.Resources, PlanetoidResourceYieldPropChangedHandler)); pData.intelCoverageChanged += PlanetoidIntelCoverageChangedEventHandler; }
private void UnsubscribeToPlanetoidDataValueChanges(PlanetoidData pData) { _planetoidSubscriptions[pData].ForAll<IDisposable>(d => d.Dispose()); _planetoidSubscriptions.Remove(pData); pData.intelCoverageChanged -= PlanetoidIntelCoverageChangedEventHandler; }
public void RemovePlanetoidData(PlanetoidData data) { D.Assert(IsOperational); bool isRemoved = _allPlanetoidData.Remove(data); D.Assert(isRemoved, data.DebugName); UnsubscribeToPlanetoidDataValueChanges(data); RecalcAllProperties(); AssessIntelCoverage(); }
public void AddPlanetoidData(PlanetoidData data) { _allPlanetoidData.Add(data); SubscribeToPlanetoidDataValueChanges(data); if (IsOperational) { RecalcAllProperties(); AssessIntelCoverage(); } }