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;
 }
Exemple #3
0
 private void Unsubscribe(PlanetoidData planetData) {
     _planetSubscribers[planetData].ForAll<IDisposable>(d => d.Dispose());
     _planetSubscribers.Remove(planetData);
 }
Exemple #4
0
 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) { }
Exemple #8
0
 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;
 }
Exemple #9
0
 private void UnsubscribeToPlanetoidDataValueChanges(PlanetoidData pData) {
     _planetoidSubscriptions[pData].ForAll<IDisposable>(d => d.Dispose());
     _planetoidSubscriptions.Remove(pData);
     pData.intelCoverageChanged -= PlanetoidIntelCoverageChangedEventHandler;
 }
Exemple #10
0
        public void RemovePlanetoidData(PlanetoidData data) {
            D.Assert(IsOperational);
            bool isRemoved = _allPlanetoidData.Remove(data);
            D.Assert(isRemoved, data.DebugName);

            UnsubscribeToPlanetoidDataValueChanges(data);
            RecalcAllProperties();
            AssessIntelCoverage();
        }
Exemple #11
0
 public void AddPlanetoidData(PlanetoidData data) {
     _allPlanetoidData.Add(data);
     SubscribeToPlanetoidDataValueChanges(data);
     if (IsOperational) {
         RecalcAllProperties();
         AssessIntelCoverage();
     }
 }