/// <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())); } }