Ejemplo n.º 1
0
 /// <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();
         }
     }
 }
Ejemplo n.º 2
0
        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);
        }