using Content.Shared._Sunrise.Biocode.Systems; using Content.Shared.Pinpointer; using Content.Server.Popups; using Content.Server.Pinpointer; namespace Content.Server._Sunrise.Biocode.Systems; /// /// Server-side implementation of biocode deactivation system. /// public sealed class ServerBiocodeDeactivationSystem : BiocodeDeactivationSystem { [Dependency] private readonly PopupSystem _popup = default!; [Dependency] private readonly PinpointerSystem _pinpointerSystem = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; private static readonly ISawmill Sawmill = Logger.GetSawmill("biocode.deactivation"); protected override void ShowAlert(EntityUid user, string alertText) { _popup.PopupEntity(Loc.GetString(alertText), user, user); } protected override void DeactivateItem(EntityUid uid) { // Handle pinpointer deactivation using the proper system method if (TryComp(uid, out var pinpointer)) { // Always ensure the pinpointer is deactivated _pinpointerSystem.SetActive(uid, false, pinpointer); // Force update appearance to ensure visual state is correct if (TryComp(uid, out var appearance)) { _appearance.SetData(uid, PinpointerVisuals.IsActive, false, appearance); _appearance.SetData(uid, PinpointerVisuals.TargetDistance, Distance.Unknown, appearance); } } // Add other item types here as needed // Example: if (TryComp(uid, out var otherComponent)) // { // _someOtherSystem.Deactivate(uid, otherComponent); // } } }