コード例 #1
0
        /// <summary>
        /// Applied after OnPrefabInit runs.
        /// </summary>
        internal static void Postfix(ScenePartitioner ___partitioner)
        {
            var options = FastTrackOptions.Instance;

            if (___partitioner != null)
            {
                if (options.FastReachability)
                {
                    SensorPatches.FastGroupProber.Init(___partitioner.CreateMask(SensorPatches.
                                                                                 FastReachabilityMonitor.REACHABILITY));
                }
                if (options.RadiationOpts)
                {
                    GamePatches.FastProtonCollider.hepLayer = ___partitioner.CreateMask(
                        GamePatches.FastProtonCollider.RADBOLTS);
                }
            }
        }
 protected override void OnPrefabInit()
 {
     Debug.Assert((UnityEngine.Object)instance == (UnityEngine.Object)null);
     instance                         = this;
     partitioner                      = new ScenePartitioner(16, 64, Grid.WidthInCells, Grid.HeightInCells);
     solidChangedLayer                = partitioner.CreateMask("SolidChanged");
     liquidChangedLayer               = partitioner.CreateMask("LiquidChanged");
     digDestroyedLayer                = partitioner.CreateMask("DigDestroyed");
     fogOfWarChangedLayer             = partitioner.CreateMask("FogOfWarChanged");
     decorProviderLayer               = partitioner.CreateMask("DecorProviders");
     attackableEntitiesLayer          = partitioner.CreateMask("FactionedEntities");
     fetchChoreLayer                  = partitioner.CreateMask("FetchChores");
     pickupablesLayer                 = partitioner.CreateMask("Pickupables");
     pickupablesChangedLayer          = partitioner.CreateMask("PickupablesChanged");
     gasConduitsLayer                 = partitioner.CreateMask("GasConduit");
     liquidConduitsLayer              = partitioner.CreateMask("LiquidConduit");
     solidConduitsLayer               = partitioner.CreateMask("SolidConduit");
     noisePolluterLayer               = partitioner.CreateMask("NoisePolluters");
     validNavCellChangedLayer         = partitioner.CreateMask("validNavCellChangedLayer");
     dirtyNavCellUpdateLayer          = partitioner.CreateMask("dirtyNavCellUpdateLayer");
     trapsLayer                       = partitioner.CreateMask("trapsLayer");
     floorSwitchActivatorLayer        = partitioner.CreateMask("FloorSwitchActivatorLayer");
     floorSwitchActivatorChangedLayer = partitioner.CreateMask("FloorSwitchActivatorChangedLayer");
     collisionLayer                   = partitioner.CreateMask("Collision");
     lure   = partitioner.CreateMask("Lure");
     plants = partitioner.CreateMask("Plants");
     industrialBuildings  = partitioner.CreateMask("IndustrialBuildings");
     completeBuildings    = partitioner.CreateMask("CompleteBuildings");
     prioritizableObjects = partitioner.CreateMask("PrioritizableObjects");
     objectLayers         = new ScenePartitionerLayer[39];
     for (int i = 0; i < 39; i++)
     {
         ObjectLayer objectLayer = (ObjectLayer)i;
         objectLayers[i] = partitioner.CreateMask(new HashedString(objectLayer.ToString()));
     }
 }