using Content.Shared.Administration;
using Content.Shared.Mobs;
using Content.Shared.NPC;
+using Content.Shared.NPC;
using JetBrains.Annotations;
using Robust.Server.GameObjects;
using Robust.Server.Player;
using Content.Server.NPC.Events;
using Content.Shared.CombatMode;
using Content.Shared.NPC;
+using Content.Shared.NPC;
using Content.Shared.Weapons.Melee;
using Robust.Shared.Map;
using Robust.Shared.Physics.Components;
using Content.Shared.Movement.Components;
using Content.Shared.Movement.Systems;
using Content.Shared.NPC;
+using Content.Shared.NPC;
using Content.Shared.NPC.Events;
using Content.Shared.Physics;
using Content.Shared.Weapons.Melee;
using Content.Shared.CCVar;
using Content.Shared.Mobs;
using Content.Shared.Mobs.Systems;
+using Content.Shared.NPC;
using Robust.Server.GameObjects;
using Robust.Shared.Configuration;
-namespace Content.Server.NPC.Components;
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.NPC;
/// <summary>
/// Added to NPCs that are actively being updated.
/// </summary>
-[RegisterComponent]
+[RegisterComponent, NetworkedComponent]
public sealed partial class ActiveNPCComponent : Component {}
{
[ViewVariables(VVAccess.ReadWrite)]
[AutoNetworkedField]
- public bool IsSSD = true;
+ public bool IsSSD = false;
[ViewVariables(VVAccess.ReadWrite)]
[DataField("icon", customTypeSerializer: typeof(PrototypeIdSerializer<StatusIconPrototype>))]
using Content.Shared.Mind.Components;
+using Content.Shared.NPC;
namespace Content.Shared.SSDIndicator;
{
public override void Initialize()
{
+ SubscribeLocalEvent<SSDIndicatorComponent, ComponentInit>(OnInit);
SubscribeLocalEvent<SSDIndicatorComponent, MindAddedMessage>(OnMindAdded);
SubscribeLocalEvent<SSDIndicatorComponent, MindRemovedMessage>(OnMindRemoved);
}
+ private void OnInit(EntityUid uid, SSDIndicatorComponent component, ComponentInit args)
+ {
+ if (HasComp<ActiveNPCComponent>(uid))
+ return;
+
+ component.IsSSD = !HasComp<MindContainerComponent>(uid);
+ }
+
private void OnMindAdded(EntityUid uid, SSDIndicatorComponent component, MindAddedMessage args)
{
component.IsSSD = false;
private void OnMindRemoved(EntityUid uid, SSDIndicatorComponent component, MindRemovedMessage args)
{
+ if (HasComp<ActiveNPCComponent>(uid))
+ return;
+
component.IsSSD = true;
Dirty(uid, component);
}