protected override void OnForcedCleanUp()
 {
     instance = null;
     partitioner.FreeResources();
     partitioner              = null;
     solidChangedLayer        = null;
     liquidChangedLayer       = null;
     digDestroyedLayer        = null;
     fogOfWarChangedLayer     = null;
     decorProviderLayer       = null;
     attackableEntitiesLayer  = null;
     fetchChoreLayer          = null;
     pickupablesLayer         = null;
     pickupablesChangedLayer  = null;
     gasConduitsLayer         = null;
     liquidConduitsLayer      = null;
     solidConduitsLayer       = null;
     noisePolluterLayer       = null;
     validNavCellChangedLayer = null;
     dirtyNavCellUpdateLayer  = null;
     trapsLayer = null;
     floorSwitchActivatorLayer        = null;
     floorSwitchActivatorChangedLayer = null;
     objectLayers = null;
 }
示例#2
0
    public ScenePartitionerEntry(string name, object obj, int x, int y, int width, int height, ScenePartitionerLayer layer, ScenePartitioner partitioner, Action <object> event_callback)
    {
        if (x >= 0 && y >= 0 && width >= 0 && height >= 0)
        {
            goto IL_0025;
        }
        goto IL_0025;
IL_0025:
        this.x           = x;
        this.y           = y;
        this.width       = width;
        this.height      = height;
        this.layer       = layer.layer;
        this.partitioner = partitioner;
        eventCallback    = event_callback;
        this.obj         = obj;
    }
示例#3
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()));
     }
 }