public static void Postfix(PowerNetManager __instance) { if (Find.CurrentMap == __instance.map && (OverlayDrawHandler.ShouldDrawPowerGrid || ActiveCircuitsSettings.displayBadOnMain) && GenTicks.TicksAbs % 149 == 0) { ActiveCircuitsBase.UpdateAllNets(__instance.map); } }
public override void SpawnSetup() { base.SpawnSetup(); Find.ListerBuildings.Add(this); if (TransmitsPower) { PowerNetManager.Notify_TransmitterSpawned(this); } if (def.ConnectToPower) { PowerNetManager.Notify_ConnectorSpawned(this); } //Remake terrain meshes with new underwall under me if (def.coversFloor) { Find.MapDrawer.MapChanged(Position, MapChangeType.Terrain); } if (TransmitsPower || def.ConnectToPower) { Find.MapDrawer.MapChanged(Position, MapChangeType.PowerGrid, true, false); } foreach (IntVec3 sq in GenAdj.SquaresOccupiedBy(this)) { Find.MapDrawer.MapChanged(sq, MapChangeType.Buildings); Find.GlowGrid.MarkGlowGridDirty(sq); } if (def.category == EntityCategory.Building) { Find.BuildingGrid.Register(this); } if (Faction == Faction.OfColony) { if (def.building != null && def.building.spawnedConceptLearnOpportunity != null) { Find.ConceptTracker.TeachOpportunity(def.building.spawnedConceptLearnOpportunity, OpportunityType.GoodToKnow); } } }
public override void Destroy() { base.Destroy(); GenLeaving.DoLeavingsFor(this, destroyMode); if (def.MakeFog) { Find.FogGrid.Notify_FogBlockerDestroyed(Position); } if (def.holdsRoof) { RoofCollapseChecker.Notify_RoofHolderDestroyed(this); } if (def.leaveTerrain != null && Map.Initialized) { foreach (IntVec3 loc in GenAdj.SquaresOccupiedBy(this)) { Find.TerrainGrid.SetTerrain(loc, def.leaveTerrain); } } Find.ListerBuildings.Remove(this); if (TransmitsPower || def.ConnectToPower) { if (TransmitsPower) { PowerNetManager.Notify_TransmitterDespawned(this); } if (def.ConnectToPower) { PowerNetManager.Notify_ConnectorDespawned(this); } Find.MapDrawer.MapChanged(Position, MapChangeType.PowerGrid, true, false); } }
public static void Postfix(PowerNetManager __instance, ref IntVec3 cell) { if (__instance.map.powerNetGrid.TransmittedPowerNetAt(cell) == null && cell.GetFirstBuilding(__instance.map).TryGetComp <CompSteamAlternator>() != null) { Building_Steam alternator = null; foreach (Thing thing in cell.GetThingList(__instance.map)) { if (thing.TryGetComp <CompSteamAlternator>() != null) { alternator = (Building_Steam)thing; break; } } PowerNet powerNet = new PowerNet(new List <CompPower> { alternator.PowerComp }); __instance.RegisterPowerNet(powerNet); PowerConnectionMaker.ConnectAllConnectorsToTransmitter(powerNet.transmitters[0]); } }
public void ConstructComponents() { this.spawnedThings = new ThingOwner <Thing>(this); this.cellIndices = new CellIndices(this); this.listerThings = new ListerThings(ListerThingsUse.Global); this.listerBuildings = new ListerBuildings(); this.mapPawns = new MapPawns(this); this.dynamicDrawManager = new DynamicDrawManager(this); this.mapDrawer = new MapDrawer(this); this.tooltipGiverList = new TooltipGiverList(); this.pawnDestinationReservationManager = new PawnDestinationReservationManager(); this.reservationManager = new ReservationManager(this); this.physicalInteractionReservationManager = new PhysicalInteractionReservationManager(); this.designationManager = new DesignationManager(this); this.lordManager = new LordManager(this); this.debugDrawer = new DebugCellDrawer(); this.passingShipManager = new PassingShipManager(this); this.haulDestinationManager = new HaulDestinationManager(this); this.gameConditionManager = new GameConditionManager(this); this.weatherManager = new WeatherManager(this); this.zoneManager = new ZoneManager(this); this.resourceCounter = new ResourceCounter(this); this.mapTemperature = new MapTemperature(this); this.temperatureCache = new TemperatureCache(this); this.areaManager = new AreaManager(this); this.attackTargetsCache = new AttackTargetsCache(this); this.attackTargetReservationManager = new AttackTargetReservationManager(this); this.lordsStarter = new VoluntarilyJoinableLordsStarter(this); this.thingGrid = new ThingGrid(this); this.coverGrid = new CoverGrid(this); this.edificeGrid = new EdificeGrid(this); this.blueprintGrid = new BlueprintGrid(this); this.fogGrid = new FogGrid(this); this.glowGrid = new GlowGrid(this); this.regionGrid = new RegionGrid(this); this.terrainGrid = new TerrainGrid(this); this.pathGrid = new PathGrid(this); this.roofGrid = new RoofGrid(this); this.fertilityGrid = new FertilityGrid(this); this.snowGrid = new SnowGrid(this); this.deepResourceGrid = new DeepResourceGrid(this); this.exitMapGrid = new ExitMapGrid(this); this.linkGrid = new LinkGrid(this); this.glowFlooder = new GlowFlooder(this); this.powerNetManager = new PowerNetManager(this); this.powerNetGrid = new PowerNetGrid(this); this.regionMaker = new RegionMaker(this); this.pathFinder = new PathFinder(this); this.pawnPathPool = new PawnPathPool(this); this.regionAndRoomUpdater = new RegionAndRoomUpdater(this); this.regionLinkDatabase = new RegionLinkDatabase(); this.moteCounter = new MoteCounter(); this.gatherSpotLister = new GatherSpotLister(); this.windManager = new WindManager(this); this.listerBuildingsRepairable = new ListerBuildingsRepairable(); this.listerHaulables = new ListerHaulables(this); this.listerMergeables = new ListerMergeables(this); this.listerFilthInHomeArea = new ListerFilthInHomeArea(this); this.reachability = new Reachability(this); this.itemAvailability = new ItemAvailability(this); this.autoBuildRoofAreaSetter = new AutoBuildRoofAreaSetter(this); this.roofCollapseBufferResolver = new RoofCollapseBufferResolver(this); this.roofCollapseBuffer = new RoofCollapseBuffer(); this.wildAnimalSpawner = new WildAnimalSpawner(this); this.wildPlantSpawner = new WildPlantSpawner(this); this.steadyEnvironmentEffects = new SteadyEnvironmentEffects(this); this.skyManager = new SkyManager(this); this.overlayDrawer = new OverlayDrawer(); this.floodFiller = new FloodFiller(this); this.weatherDecider = new WeatherDecider(this); this.fireWatcher = new FireWatcher(this); this.dangerWatcher = new DangerWatcher(this); this.damageWatcher = new DamageWatcher(); this.strengthWatcher = new StrengthWatcher(this); this.wealthWatcher = new WealthWatcher(this); this.regionDirtyer = new RegionDirtyer(this); this.cellsInRandomOrder = new MapCellsInRandomOrder(this); this.rememberedCameraPos = new RememberedCameraPos(this); this.mineStrikeManager = new MineStrikeManager(); this.storyState = new StoryState(this); this.retainedCaravanData = new RetainedCaravanData(this); this.components.Clear(); this.FillComponents(); }