Decouple power sink from tickrate (#40789)
* Fix typo in `BatterySystem.ChangeCharge`. * Decouple power sink behavior from tickrate. * Fix power sink's price per joule
This commit is contained in:
@@ -171,7 +171,7 @@ namespace Content.Server.Power.EntitySystems
|
|||||||
if (!Resolve(uid, ref battery))
|
if (!Resolve(uid, ref battery))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
var newValue = Math.Clamp(0, battery.CurrentCharge + value, battery.MaxCharge);
|
var newValue = Math.Clamp(battery.CurrentCharge + value, 0, battery.MaxCharge);
|
||||||
var delta = newValue - battery.CurrentCharge;
|
var delta = newValue - battery.CurrentCharge;
|
||||||
battery.CurrentCharge = newValue;
|
battery.CurrentCharge = newValue;
|
||||||
|
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ namespace Content.Server.PowerSink
|
|||||||
if (!transform.Anchored)
|
if (!transform.Anchored)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
_battery.SetCharge(entity, battery.CurrentCharge + networkLoad.NetworkLoad.ReceivingPower / 1000, battery);
|
_battery.ChangeCharge(entity, networkLoad.NetworkLoad.ReceivingPower * frameTime, battery);
|
||||||
|
|
||||||
var currentBatteryThreshold = battery.CurrentCharge / battery.MaxCharge;
|
var currentBatteryThreshold = battery.CurrentCharge / battery.MaxCharge;
|
||||||
|
|
||||||
|
|||||||
@@ -40,8 +40,8 @@
|
|||||||
acts: [ "Destruction" ]
|
acts: [ "Destruction" ]
|
||||||
- type: PowerSink
|
- type: PowerSink
|
||||||
- type: Battery
|
- type: Battery
|
||||||
maxCharge: 7500000
|
maxCharge: 250000000
|
||||||
pricePerJoule: 0.0003
|
pricePerJoule: 0.000009
|
||||||
- type: ExaminableBattery
|
- type: ExaminableBattery
|
||||||
- type: PowerConsumer
|
- type: PowerConsumer
|
||||||
voltage: High
|
voltage: High
|
||||||
|
|||||||
Reference in New Issue
Block a user