Fix hunger + thirst mispredicts (#36549)

* Fix hunger + thirst mispredicts

* Review
This commit is contained in:
metalgearsloth
2025-04-17 21:43:16 +10:00
committed by GitHub
parent a85370cc81
commit 9b7af5dfcf
2 changed files with 12 additions and 1 deletions

View File

@@ -123,6 +123,7 @@ public sealed class HungerSystem : EntitySystem
entity.Comp.LastAuthoritativeHungerChangeTime = _timing.CurTime;
entity.Comp.LastAuthoritativeHungerValue = ClampHungerWithinThresholds(entity.Comp, value);
DirtyField(entity.Owner, entity.Comp, nameof(HungerComponent.LastAuthoritativeHungerChangeTime));
DirtyField(entity.Owner, entity.Comp, nameof(HungerComponent.LastAuthoritativeHungerValue));
}
private void UpdateCurrentThreshold(EntityUid uid, HungerComponent? component = null)
@@ -135,6 +136,7 @@ public sealed class HungerSystem : EntitySystem
return;
component.CurrentThreshold = calculatedHungerThreshold;
DirtyField(uid, component, nameof(HungerComponent.CurrentThreshold));
DoHungerThresholdEffects(uid, component);
}
@@ -163,10 +165,12 @@ public sealed class HungerSystem : EntitySystem
if (component.HungerThresholdDecayModifiers.TryGetValue(component.CurrentThreshold, out var modifier))
{
component.ActualDecayRate = component.BaseDecayRate * modifier;
DirtyField(uid, component, nameof(HungerComponent.ActualDecayRate));
SetAuthoritativeHungerValue((uid, component), GetHunger(component));
}
component.LastThreshold = component.CurrentThreshold;
DirtyField(uid, component, nameof(HungerComponent.LastThreshold));
}
private void DoContinuousHungerEffects(EntityUid uid, HungerComponent? component = null)