/// <summary> /// Notify beacons that powered is stopped. /// </summary> public void Notify_PowerStopped() { Util_OrbitalRelay.TryUpdateLandingPadAvailability(this.Map); foreach (Building building in this.Map.listerBuildings.AllBuildingsColonistOfDef(Util_ThingDefOf.LandingPadBeacon)) { Building_LandingPadBeacon beacon = building as Building_LandingPadBeacon; if (beacon.landingPad == this) { beacon.Notify_PowerStopped(); } } }
public void SpawnBeacons() { // Internal cross: external green beacons. Building_LandingPadBeacon beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(0, 0, 3).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.white, lightInternalCrossPeriodInTicks, lightInternalCrossDurationInTicks, 0); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(3, 0, 0).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.white, lightInternalCrossPeriodInTicks, lightInternalCrossDurationInTicks, 0); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(0, 0, -3).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.white, lightInternalCrossPeriodInTicks, lightInternalCrossDurationInTicks, 0); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(-3, 0, 0).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.white, lightInternalCrossPeriodInTicks, lightInternalCrossDurationInTicks, 0); // Internal cross: middle white beacons. beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(0, 0, 2).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.white, lightInternalCrossPeriodInTicks, lightInternalCrossDurationInTicks, lightInternalCrossDelayInTicks); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(2, 0, 0).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.white, lightInternalCrossPeriodInTicks, lightInternalCrossDurationInTicks, lightInternalCrossDelayInTicks); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(0, 0, -2).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.white, lightInternalCrossPeriodInTicks, lightInternalCrossDurationInTicks, lightInternalCrossDelayInTicks); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(-2, 0, 0).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.white, lightInternalCrossPeriodInTicks, lightInternalCrossDurationInTicks, lightInternalCrossDelayInTicks); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(0, 0, 1).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.white, lightInternalCrossPeriodInTicks, lightInternalCrossDurationInTicks, 2 * lightInternalCrossDelayInTicks); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(1, 0, 0).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.white, lightInternalCrossPeriodInTicks, lightInternalCrossDurationInTicks, 2 * lightInternalCrossDelayInTicks); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(0, 0, -1).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.white, lightInternalCrossPeriodInTicks, lightInternalCrossDurationInTicks, 2 * lightInternalCrossDelayInTicks); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(-1, 0, 0).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.white, lightInternalCrossPeriodInTicks, lightInternalCrossDurationInTicks, 2 * lightInternalCrossDelayInTicks); // Internal cross: central green beacon. beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position, this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.green, lightInternalCrossPeriodInTicks, lightInternalCrossDurationInTicks, 3 * lightInternalCrossDelayInTicks); // Landing pad external frame: red beacons. beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(-2, 0, -8).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.red, lightExternalFramePeriodInTicks, lightExternalFrameDurationInTicks, lightExternalFramePeriodInTicks / 2); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(2, 0, -8).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.red, lightExternalFramePeriodInTicks, lightExternalFrameDurationInTicks, lightExternalFramePeriodInTicks / 2); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(-4, 0, -6).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.red, lightExternalFramePeriodInTicks, lightExternalFrameDurationInTicks, lightExternalFramePeriodInTicks / 2 + lightExternalFrameDelayInTicks); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(4, 0, -6).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.red, lightExternalFramePeriodInTicks, lightExternalFrameDurationInTicks, lightExternalFramePeriodInTicks / 2 + lightExternalFrameDelayInTicks); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(-4, 0, -3).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.red, lightExternalFramePeriodInTicks, lightExternalFrameDurationInTicks, lightExternalFramePeriodInTicks / 2 + 2 * lightExternalFrameDelayInTicks); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(4, 0, -3).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.red, lightExternalFramePeriodInTicks, lightExternalFrameDurationInTicks, lightExternalFramePeriodInTicks / 2 + 2 * lightExternalFrameDelayInTicks); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(-4, 0, 0).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.red, lightExternalFramePeriodInTicks, lightExternalFrameDurationInTicks, lightExternalFramePeriodInTicks / 2 + 3 * lightExternalFrameDelayInTicks); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(4, 0, 0).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.red, lightExternalFramePeriodInTicks, lightExternalFrameDurationInTicks, lightExternalFramePeriodInTicks / 2 + 3 * lightExternalFrameDelayInTicks); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(-4, 0, 3).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.red, lightExternalFramePeriodInTicks, lightExternalFrameDurationInTicks, lightExternalFramePeriodInTicks / 2 + 4 * lightExternalFrameDelayInTicks); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(4, 0, 3).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.red, lightExternalFramePeriodInTicks, lightExternalFrameDurationInTicks, lightExternalFramePeriodInTicks / 2 + 4 * lightExternalFrameDelayInTicks); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(-4, 0, 6).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.red, lightExternalFramePeriodInTicks, lightExternalFrameDurationInTicks, lightExternalFramePeriodInTicks / 2 + 5 * lightExternalFrameDelayInTicks); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(4, 0, 6).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.red, lightExternalFramePeriodInTicks, lightExternalFrameDurationInTicks, lightExternalFramePeriodInTicks / 2 + 5 * lightExternalFrameDelayInTicks); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(-1, 0, 9).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.red, lightExternalFramePeriodInTicks, lightExternalFrameDurationInTicks, lightExternalFramePeriodInTicks / 2 + 6 * lightExternalFrameDelayInTicks); beacon = GenSpawn.Spawn(Util_ThingDefOf.LandingPadBeacon, this.Position + new IntVec3(1, 0, 9).RotatedBy(this.Rotation), this.Map) as Building_LandingPadBeacon; beacon.InitializeParameters(this, Color.red, lightExternalFramePeriodInTicks, lightExternalFrameDurationInTicks, lightExternalFramePeriodInTicks / 2 + 6 * lightExternalFrameDelayInTicks); }