Example #1
0
        private void SplitMonitor()
        {
            foreach (var pair in CheckForSplits)
            {
                if (WatchForSplits.Add(pair.Key))
                {
                    pair.Key.OnGridSplit += GridSplitWatch;
                }
                else if (Tick - pair.Value > 120)
                {
                    _tmpWatchGridsToRemove.Add(pair.Key);
                }
            }

            for (int i = 0; i < _tmpWatchGridsToRemove.Count; i++)
            {
                var grid = _tmpWatchGridsToRemove[i];
                grid.OnGridSplit -= GridSplitWatch;
                WatchForSplits.Remove(grid);
                CheckForSplits.Remove(grid);
            }
            _tmpWatchGridsToRemove.Clear();

            foreach (var parent in GetParentGrid)
            {
                ParentGrid oldParent;
                if (Tick - parent.Value.Age > 120)
                {
                    GetParentGrid.TryRemove(parent.Key, out oldParent);
                }
            }
        }
Example #2
0
 private void GridSplitWatch(MyCubeGrid parent, MyCubeGrid child)
 {
     GetParentGrid[child] = new ParentGrid {
         Parent = parent, Age = Tick
     };
     GetParentGrid.ApplyAdditionsAndModifications();
 }
Example #3
0
 private void GridSplitWatch(MyCubeGrid parent, MyCubeGrid child)
 {
     GetParentGrid.TryAdd(child, new ParentGrid {
         Parent = parent, Age = Tick
     });
 }