diff --git a/Content.Server/Medical/BiomassReclaimer/BiomassReclaimerSystem.cs b/Content.Server/Medical/BiomassReclaimer/BiomassReclaimerSystem.cs index aef21ac2c4..69d0fc4b48 100644 --- a/Content.Server/Medical/BiomassReclaimer/BiomassReclaimerSystem.cs +++ b/Content.Server/Medical/BiomassReclaimer/BiomassReclaimerSystem.cs @@ -22,6 +22,7 @@ using Content.Server.Mind.Components; using Content.Server.Stack; using Content.Shared.Interaction.Events; using Content.Shared.Popups; +using Robust.Shared.GameObjects; using Robust.Shared.Player; using Robust.Shared.Random; using Robust.Shared.Configuration; @@ -93,6 +94,7 @@ namespace Content.Server.Medical.BiomassReclaimer SubscribeLocalEvent(OnAfterInteractUsing); SubscribeLocalEvent(OnClimbedOn); SubscribeLocalEvent(OnRefreshParts); + SubscribeLocalEvent(OnPowerChanged); SubscribeLocalEvent(OnSuicide); SubscribeLocalEvent(OnReclaimSuccessful); SubscribeLocalEvent(OnReclaimCancelled); @@ -127,6 +129,17 @@ namespace Content.Server.Medical.BiomassReclaimer _ambientSoundSystem.SetAmbience(uid, false); } + private void OnPowerChanged(EntityUid uid, BiomassReclaimerComponent component, ref PowerChangedEvent args) + { + if (args.Powered) + { + if (component.ProcessingTimer > 0) + EnsureComp(uid); + } + else + RemComp(component.Owner); + } + private void OnUnanchorAttempt(EntityUid uid, ActiveBiomassReclaimerComponent component, UnanchorAttemptEvent args) { args.Cancel();