public void RegisterSubGrid(MyCubeGrid grid, bool dupCheck = false) { if (dupCheck && SubGridsRegistered.Contains(grid)) { Log.Line($"sub Grid Already Registered: [Main]:{grid == MyGrid}"); } grid.Flags |= (EntityFlags)(1 << 31); grid.OnFatBlockAdded += FatBlockAdded; grid.OnFatBlockRemoved += FatBlockRemoved; SubGridsRegistered.Add(grid); FatMap fatMap; if (Session.GridToFatMap.TryGetValue(grid, out fatMap)) { var blocks = fatMap.MyCubeBocks; for (int i = 0; i < blocks.Count; i++) { FatBlockAdded(blocks[i]); } } }
internal void RegisterMyGridEvents(bool register, MyCubeGrid grid, bool force = false) { if (grid == null) { grid = MyGrid; } if (register) { if (Registered) { Log.Line($"Ai RegisterMyGridEvents error"); } Registered = true; grid.OnFatBlockAdded += FatBlockAdded; grid.OnFatBlockRemoved += FatBlockRemoved; grid.OnMarkForClose += GridClose; if (SubGridsRegistered.Contains(grid)) { Log.Line($"Main Grid Already Registered"); } SubGridsRegistered.Add(grid); } else { if (Registered) { Registered = false; grid.OnFatBlockAdded -= FatBlockAdded; grid.OnFatBlockRemoved -= FatBlockRemoved; grid.OnMarkForClose -= GridClose; if (!SubGridsRegistered.Contains(grid)) { Log.Line($"Main Grid Already UnRegistered"); } SubGridsRegistered.Remove(grid); } else if (!force) { Log.Line($"NotRegistered: gridReg:{SubGridsRegistered.Contains(grid)}- Aimarked:{MarkedForClose} - aiClosed:{Closed} - Ticks:{Session?.Tick - AiCloseTick} - NullSession:{Session == null} - gridMarked:{grid.MarkedForClose}"); } } }
public void RegisterSubGrid(MyCubeGrid grid, bool dupCheck = false) { if (dupCheck && SubGridsRegistered.Contains(grid)) { Log.Line($"sub Grid Already Registered: [Main]:{grid == MyGrid}"); } grid.Flags |= (EntityFlags)(1 << 31); grid.OnFatBlockAdded += FatBlockAdded; grid.OnFatBlockRemoved += FatBlockRemoved; SubGridsRegistered.Add(grid); foreach (var cube in grid.GetFatBlocks()) { var battery = cube as MyBatteryBlock; if (battery != null || cube.HasInventory) { FatBlockAdded(cube); } } }