コード例 #1
0
        private void AddGridToMap()
        {
            MyCubeGrid grid;

            while (NewGrids.TryDequeue(out grid))
            {
                var allFat = ConcurrentListPool.Get();

                var gridFat = grid.GetFatBlocks();
                for (int i = 0; i < gridFat.Count; i++)
                {
                    allFat.Add(gridFat[i]);
                }
                allFat.ApplyAdditions();

                var gridMap = GridMapPool.Get();

                if (grid.Components.TryGet(out gridMap.Targeting))
                {
                    gridMap.Targeting.AllowScanning = false;
                }
                gridMap.Trash = true;

                gridMap.MyCubeBocks = allFat;
                GridToInfoMap.TryAdd(grid, gridMap);
                grid.OnFatBlockAdded   += ToGridMap;
                grid.OnFatBlockRemoved += FromGridMap;
                grid.OnClose           += RemoveGridFromMap;
                DirtyGridInfos.Add(grid);
            }
        }
コード例 #2
0
 private void GridAddedToScene(MyEntity myEntity)
 {
     try
     {
         NewGrids.Enqueue(myEntity as MyCubeGrid);
     }
     catch (Exception ex) { Log.Line($"Exception in GridAddedToScene: {ex}"); }
 }