public override void TickRare() { if (this.compPowerTrader.PowerOn) { float ambientTemperature = base.AmbientTemperature; float num; if (ambientTemperature < 20f) { num = 1f; } else if (ambientTemperature > 120f) { num = 0f; } else { num = Mathf.InverseLerp(120f, 20f, ambientTemperature); } float energyLimit = this.compTempControl.Props.energyPerSecond * num * 4.16666651f; float num2 = GenTemperature.ControlTemperatureTempChange(base.Position, base.Map, energyLimit, this.compTempControl.targetTemperature); bool flag = !Mathf.Approximately(num2, 0f); CompProperties_Power props = this.compPowerTrader.Props; if (flag) { this.GetRoomGroup().Temperature += num2; this.compPowerTrader.PowerOutput = -props.basePowerConsumption; } else { this.compPowerTrader.PowerOutput = -props.basePowerConsumption * this.compTempControl.Props.lowPowerConsumptionFactor; } this.compTempControl.operatingAtHighPower = flag; } }
public override void Tick() { base.Tick(); if (this.compPowerTrader.PowerOn) { timeTillEval--; if (timeTillEval <= 0) { IntVec3 intVec3_1 = this.Position + IntVec3.North.RotatedBy(this.Rotation); IntVec3 intVec3_2 = this.Position + IntVec3.South.RotatedBy(this.Rotation); IntVec3 intVec3_3 = this.Position + (IntVec3.South.RotatedBy(this.Rotation) * 2); IntVec3 intVec3_4 = this.Position + (IntVec3.South.RotatedBy(this.Rotation) * 3); bool flag = false; if (!intVec3_4.Impassable(this.Map) && !intVec3_3.Impassable(this.Map) && !intVec3_2.Impassable(this.Map) && !intVec3_1.Impassable(this.Map)) { float temperature1 = intVec3_2.GetTemperature(this.Map); float temperature2 = intVec3_1.GetTemperature(this.Map); float num1 = temperature1 - temperature2; if ((double)temperature1 - 40.0 > (double)num1) { num1 = temperature1 - 40f; } float num2 = (float)(1.0 - (double)num1 * (1.0 / 130.0)); if ((double)num2 < 0.0) { num2 = 0.0f; } float energyLimit = (float)(((double)this.compTempControl.Props.energyPerSecond) * (double)num2 * 4.16666650772095); float a = GenTemperature.ControlTemperatureTempChange(intVec3_1, this.Map, energyLimit, this.compTempControl.targetTemperature); flag = !Mathf.Approximately(a, 0.0f); if (flag) { intVec3_1.GetRoomGroup(this.Map).Temperature += a; GenTemperature.PushHeat(intVec3_2, this.Map, (float)(-(double)energyLimit * 1.25)); GenTemperature.PushHeat(intVec3_3, this.Map, (float)(-(double)energyLimit * 1.25)); GenTemperature.PushHeat(intVec3_4, this.Map, (float)(-(double)energyLimit * 1.25)); } } CompProperties_Power props = this.compPowerTrader.Props; if (flag) { this.compPowerTrader.PowerOutput = -props.basePowerConsumption; } else { this.compPowerTrader.PowerOutput = -props.basePowerConsumption * this.compTempControl.Props.lowPowerConsumptionFactor; } this.compTempControl.operatingAtHighPower = flag; unfoldComponent.Target = flag ? 1.0f : 0.0f; timeTillEval = EVAL_TIME; } } else { unfoldComponent.Target = 0.0f; } }
public override void SetUpPowerVars() { base.SetUpPowerVars(); CompProperties_Power props = base.Props; this.PowerOutput = -1f * props.basePowerConsumption; this.powerLastOutputted = (props.basePowerConsumption <= 0f); }
public override void SetUpPowerVars() { base.SetUpPowerVars(); CompProperties_Power props = base.Props; this.PowerOutput = (float)(-1.0 * props.basePowerConsumption); this.powerLastOutputted = (props.basePowerConsumption <= 0.0); }
private void StartSustainerPoweredIfInactive() { CompProperties_Power props = base.Props; if (!props.soundAmbientPowered.NullOrUndefined() && this.sustainerPowered == null) { SoundInfo info = SoundInfo.InMap(this.parent, MaintenanceType.None); this.sustainerPowered = props.soundAmbientPowered.TrySpawnSustainer(info); } }
private void StartSustainerPoweredIfInactive() { CompProperties_Power props = base.Props; if (!props.soundAmbientPowered.NullOrUndefined() && sustainerPowered == null) { SoundInfo info = SoundInfo.InMap(parent); sustainerPowered = props.soundAmbientPowered.TrySpawnSustainer(info); } }
public override void TickRare() { if (!compPowerTrader.PowerOn) { return; } IntVec3 intVec = base.Position + IntVec3.South.RotatedBy(base.Rotation); IntVec3 intVec2 = base.Position + IntVec3.North.RotatedBy(base.Rotation); bool flag = false; if (!intVec2.Impassable(base.Map) && !intVec.Impassable(base.Map)) { float temperature = intVec2.GetTemperature(base.Map); float temperature2 = intVec.GetTemperature(base.Map); float num = temperature - temperature2; if (temperature - 40f > num) { num = temperature - 40f; } float num2 = 1f - num * 0.0076923077f; if (num2 < 0f) { num2 = 0f; } float num3 = compTempControl.Props.energyPerSecond * num2 * 4.16666651f; float num4 = GenTemperature.ControlTemperatureTempChange(intVec, base.Map, num3, compTempControl.targetTemperature); flag = !Mathf.Approximately(num4, 0f); if (flag) { intVec.GetRoomGroup(base.Map).Temperature += num4; GenTemperature.PushHeat(intVec2, base.Map, (0f - num3) * 1.25f); } } CompProperties_Power props = compPowerTrader.Props; if (flag) { compPowerTrader.PowerOutput = 0f - props.basePowerConsumption; } else { compPowerTrader.PowerOutput = (0f - props.basePowerConsumption) * compTempControl.Props.lowPowerConsumptionFactor; } compTempControl.operatingAtHighPower = flag; }
public override void TickRare() { if (base.compPowerTrader.PowerOn) { IntVec3 intVec = base.Position + IntVec3.South.RotatedBy(base.Rotation); IntVec3 intVec2 = base.Position + IntVec3.North.RotatedBy(base.Rotation); bool flag = false; if (!intVec2.Impassable(base.Map) && !intVec.Impassable(base.Map)) { float temperature = intVec2.GetTemperature(base.Map); float temperature2 = intVec.GetTemperature(base.Map); float num = temperature - temperature2; if (temperature - 40.0 > num) { num = (float)(temperature - 40.0); } float num2 = (float)(1.0 - num * 0.0076923076994717121); if (num2 < 0.0) { num2 = 0f; } float num3 = (float)(base.compTempControl.Props.energyPerSecond * num2 * 4.1666665077209473); float num4 = GenTemperature.ControlTemperatureTempChange(intVec, base.Map, num3, base.compTempControl.targetTemperature); flag = !Mathf.Approximately(num4, 0f); if (flag) { intVec.GetRoomGroup(base.Map).Temperature += num4; GenTemperature.PushHeat(intVec2, base.Map, (float)((0.0 - num3) * 1.25)); } } CompProperties_Power props = base.compPowerTrader.Props; if (flag) { base.compPowerTrader.PowerOutput = (float)(0.0 - props.basePowerConsumption); } else { base.compPowerTrader.PowerOutput = (float)((0.0 - props.basePowerConsumption) * base.compTempControl.Props.lowPowerConsumptionFactor); } base.compTempControl.operatingAtHighPower = flag; } }
public override void TickRare() { if (base.compPowerTrader.PowerOn) { float ambientTemperature = base.AmbientTemperature; float num = (float)((!(ambientTemperature < 20.0)) ? ((!(ambientTemperature > 120.0)) ? Mathf.InverseLerp(120f, 20f, ambientTemperature) : 0.0) : 1.0); float energyLimit = (float)(base.compTempControl.Props.energyPerSecond * num * 4.1666665077209473); float num2 = GenTemperature.ControlTemperatureTempChange(base.Position, base.Map, energyLimit, base.compTempControl.targetTemperature); bool flag = !Mathf.Approximately(num2, 0f); CompProperties_Power props = base.compPowerTrader.Props; if (flag) { this.GetRoomGroup().Temperature += num2; base.compPowerTrader.PowerOutput = (float)(0.0 - props.basePowerConsumption); } else { base.compPowerTrader.PowerOutput = (float)((0.0 - props.basePowerConsumption) * base.compTempControl.Props.lowPowerConsumptionFactor); } base.compTempControl.operatingAtHighPower = flag; } }