using Robust.Shared.ContentPack;
using Robust.Shared.GameStates;
using Robust.Shared.Input.Binding;
+using Robust.Shared.Player;
using Robust.Shared.Serialization.Manager;
using Robust.Shared.Serialization.Markdown;
using Robust.Shared.Serialization.Markdown.Mapping;
using Content.Shared.Alert;
using JetBrains.Annotations;
using Robust.Client.Player;
+using Robust.Shared.Player;
using Robust.Shared.Prototypes;
namespace Content.Client.Alerts;
using Robust.Shared.Input;
using Robust.Shared.Input.Binding;
using Robust.Shared.Map;
+using Robust.Shared.Player;
using Robust.Shared.Prototypes;
namespace Content.Client.Construction
using Content.Shared.Drugs;
using Robust.Client.Graphics;
using Robust.Client.Player;
+using Robust.Shared.Player;
namespace Content.Client.Drugs;
using Content.Shared.Drunk;
using Robust.Client.Graphics;
using Robust.Client.Player;
+using Robust.Shared.Player;
namespace Content.Client.Drunk;
using Robust.Client.Player;
using Content.Shared.Eye.Blinding.Components;
using Content.Shared.GameTicking;
+using Robust.Shared.Player;
namespace Content.Client.Eye.Blinding;
using Content.Shared.Eye.Blinding.Components;
using Robust.Client.Graphics;
using Robust.Client.Player;
+using Robust.Shared.Player;
namespace Content.Client.Eye.Blinding;
using Robust.Client.GameObjects;
using Robust.Client.Physics;
using Robust.Client.Player;
+using Robust.Shared.Player;
using Robust.Shared.Timing;
namespace Content.Client.Eye;
using Robust.Client.GameObjects;
using Robust.Client.Graphics;
using Robust.Client.Player;
+using Robust.Shared.Player;
namespace Content.Client.Ghost
{
using Robust.Client.UserInterface;
using Robust.Shared.Containers;
using Robust.Shared.GameStates;
+using Robust.Shared.Player;
using Robust.Shared.Timing;
namespace Content.Client.Hands.Systems
using Robust.Client.UserInterface;
using Robust.Shared.Containers;
using Robust.Shared.Input.Binding;
+using Robust.Shared.Player;
using Robust.Shared.Prototypes;
namespace Content.Client.Inventory
using Content.Shared.Inventory;
using Content.Shared.Inventory.Events;
using Robust.Client.Player;
+using Robust.Shared.Player;
namespace Content.Client.Overlays;
using Robust.Client.Physics;
using Robust.Client.Player;
using Robust.Shared.Physics.Components;
+using Robust.Shared.Player;
using Robust.Shared.Timing;
namespace Content.Client.Physics.Controllers
using Content.Shared.Movement.Components;
-using Robust.Client.Player;
using Robust.Shared.Map;
using Robust.Shared.Map.Components;
using Robust.Shared.Network;
+using Robust.Shared.Player;
namespace Content.Client.Replay.Spectator;
using Robust.Client.Replays.Playback;
using Robust.Client.State;
using Robust.Shared.Console;
+using Robust.Shared.Player;
using Robust.Shared.Serialization.Markdown.Mapping;
namespace Content.Client.Replay.Spectator;
using Content.Shared.Traits.Assorted;
using Robust.Shared.Random;
using Robust.Client.Player;
+using Robust.Shared.Player;
using Robust.Shared.Timing;
namespace Content.Client.Traits;
using Robust.Client.Player;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controllers;
+using Robust.Shared.Player;
namespace Content.Client.UserInterface.Systems.DamageOverlays;
using Content.Client.Examine;
using Content.IntegrationTests.Pair;
using Content.Server.Body.Systems;
-using Content.Server.Players;
using Content.Server.Stack;
using Content.Server.Tools;
using Content.Shared.Body.Part;
using Content.Shared.Players;
using Robust.Client.Input;
using Robust.Client.UserInterface;
-using Robust.Server.GameObjects;
-using Robust.Server.Player;
using Robust.Shared.GameObjects;
using Robust.Shared.Log;
using Robust.Shared.Map;
protected ToolSystem ToolSys = default!;
protected InteractionTestSystem STestSystem = default!;
protected SharedTransformSystem Transform = default!;
- protected ActorSystem Actor = default!;
protected ISawmill SLogger = default!;
// CLIENT dependencies
SConstruction = SEntMan.System<Server.Construction.ConstructionSystem>();
STestSystem = SEntMan.System<InteractionTestSystem>();
Stack = SEntMan.System<StackSystem>();
- Actor = SEntMan.System<ActorSystem>();
SLogger = Server.ResolveDependency<ILogManager>().RootSawmill;
// client dependencies
// Mind system is a time vampire
SEntMan.System<SharedMindSystem>().WipeMind(ServerSession.ContentData()?.Mind);
- old = cPlayerMan.LocalPlayer.ControlledEntity;
+ old = cPlayerMan.LocalEntity;
Player = SEntMan.GetNetEntity(SEntMan.SpawnEntity(PlayerPrototype, SEntMan.GetCoordinates(PlayerCoords)));
var serverPlayerEnt = SEntMan.GetEntity(Player);
- Actor.Attach(serverPlayerEnt, ServerSession);
+ Server.PlayerMan.SetAttachedEntity(ServerSession, serverPlayerEnt);
Hands = SEntMan.GetComponent<HandsComponent>(serverPlayerEnt);
DoAfters = SEntMan.GetComponent<DoAfterComponent>(serverPlayerEnt);
});
// Check player got attached.
await RunTicks(5);
- Assert.That(CEntMan.GetNetEntity(cPlayerMan.LocalPlayer.ControlledEntity), Is.EqualTo(Player));
+ Assert.That(CEntMan.GetNetEntity(cPlayerMan.LocalEntity), Is.EqualTo(Player));
// Delete old player entity.
await Server.WaitPost(() =>
await Pair.ReallyBeIdle(5);
Assert.Multiple(() =>
{
- Assert.That(CEntMan.GetNetEntity(cPlayerMan.LocalPlayer.ControlledEntity), Is.EqualTo(Player));
+ Assert.That(CEntMan.GetNetEntity(cPlayerMan.LocalEntity), Is.EqualTo(Player));
Assert.That(sPlayerMan.GetSessionByUserId(ClientSession.UserId).AttachedEntity, Is.EqualTo(SEntMan.GetEntity(Player)));
});
}
using Content.Shared.Alert;
-using Robust.Server.GameObjects;
namespace Content.Server.Alert;
internal sealed class ServerAlertsSystem : AlertsSystem
{
- public override void Initialize()
- {
- base.Initialize();
-
- SubscribeLocalEvent<AlertsComponent, PlayerAttachedEvent>(OnPlayerAttached);
- }
-
- private void OnPlayerAttached(EntityUid uid, AlertsComponent component, PlayerAttachedEvent args)
- {
- Dirty(component);
- }
}
using Content.Shared.ActionBlocker;
using Content.Shared.Chat.TypingIndicator;
-using Robust.Server.GameObjects;
+using Robust.Shared.Player;
namespace Content.Server.Chat.TypingIndicator;
using Content.Shared.Players;
using Content.Shared.Preferences;
using JetBrains.Annotations;
-using Robust.Server.GameObjects;
using Robust.Server.Player;
using Robust.Shared.Enums;
using Robust.Shared.Player;
{
[Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] private readonly IServerDbManager _dbManager = default!;
- [Dependency] private readonly ActorSystem _actor = default!;
private void InitializePlayer()
{
}
else
{
- if (_actor.Attach(mind.CurrentEntity, session))
+ if (_playerManager.SetAttachedEntity(session, mind.CurrentEntity))
{
PlayerJoinGame(session);
}
using Content.Shared.Mind;
using Content.Shared.Mind.Components;
using Content.Shared.Players;
-using Robust.Server.GameObjects;
using Robust.Server.GameStates;
using Robust.Server.Player;
-using Robust.Shared.Map;
using Robust.Shared.Map.Components;
using Robust.Shared.Network;
using Robust.Shared.Player;
public sealed class MindSystem : SharedMindSystem
{
- [Dependency] private readonly ActorSystem _actor = default!;
[Dependency] private readonly GameTicker _gameTicker = default!;
[Dependency] private readonly IAdminLogManager _adminLogger = default!;
- [Dependency] private readonly IMapManager _maps = default!;
[Dependency] private readonly IPlayerManager _players = default!;
[Dependency] private readonly MetaDataSystem _metaData = default!;
[Dependency] private readonly SharedGhostSystem _ghosts = default!;
}
if (GetSession(mind) is { } session)
- _actor.Attach(entity, session);
+ _players.SetAttachedEntity(session, entity);
mind.VisitingEntity = entity;
var owned = mind.OwnedEntity;
if (GetSession(mind) is { } session)
- _actor.Attach(owned, session);
+ _players.SetAttachedEntity(session, owned);
if (owned.HasValue)
{
var session = GetSession(mind);
if (session != null && !alreadyAttached && mind.VisitingEntity == null)
{
- _actor.Attach(entity, session, true);
+ _players.SetAttachedEntity(session, entity, true);
DebugTools.Assert(session.AttachedEntity == entity, $"Failed to attach entity.");
Log.Info($"Session {session.Name} transferred to entity {entity}.");
}
if (mind.Session != null)
{
- _actor.Attach(null, GetSession(mind)!);
+ _players.SetAttachedEntity(GetSession(mind), null);
mind.Session = null;
}
{
mind.Session = ret;
_pvsOverride.AddSessionOverride(mindId, ret);
- _actor.Attach(mind.CurrentEntity, ret);
+ _players.SetAttachedEntity(ret, mind.CurrentEntity);
}
// session may be null, but user data may still exist for disconnected players.
using System.Numerics;
-using Content.Server.Cargo.Components;
using Content.Server.Shuttle.Components;
using Content.Server.Shuttles.Components;
using Content.Server.Shuttles.Systems;
using Content.Shared.Movement.Components;
using Content.Shared.Movement.Systems;
-using Content.Shared.Pulling.Components;
using Content.Shared.Shuttles.Components;
using Content.Shared.Shuttles.Systems;
-using Robust.Server.GameObjects;
using Robust.Shared.Map;
using Robust.Shared.Physics.Components;
+using Robust.Shared.Player;
namespace Content.Server.Physics.Controllers
{
using Content.Server.Administration.Logs;
using Content.Shared.Database;
-using Robust.Server.GameObjects;
using Robust.Shared.Map;
using Robust.Shared.Placement;
+using Robust.Shared.Player;
namespace Content.Server.Placement;
{
[Dependency] private readonly IAdminLogManager _adminLogger = default!;
[Dependency] private readonly ITileDefinitionManager _tileDefinitionManager = default!;
- [Dependency] private readonly ActorSystem _actorSystem = default!;
+ [Dependency] private readonly ISharedPlayerManager _player = default!;
public override void Initialize()
{
private void OnEntityPlacement(PlacementEntityEvent ev)
{
- _actorSystem.TryGetActorFromUserId(ev.PlacerNetUserId, out var actor, out var actorEntity);
+ _player.TryGetSessionById(ev.PlacerNetUserId, out var actor);
+ var actorEntity = actor?.AttachedEntity;
var logType = ev.PlacementEventAction switch
{
private void OnTilePlacement(PlacementTileEvent ev)
{
- _actorSystem.TryGetActorFromUserId(ev.PlacerNetUserId, out var actor, out var actorEntity);
+ _player.TryGetSessionById(ev.PlacerNetUserId, out var actor);
+ var actorEntity = actor?.AttachedEntity;
if (actorEntity != null)
_adminLogger.Add(LogType.Tile, LogImpact.High,
using System.Diagnostics.CodeAnalysis;
+using Robust.Shared.Player;
using Robust.Shared.Prototypes;
namespace Content.Shared.Alert;
SubscribeLocalEvent<AlertsComponent, ComponentStartup>(HandleComponentStartup);
SubscribeLocalEvent<AlertsComponent, ComponentShutdown>(HandleComponentShutdown);
+ SubscribeLocalEvent<AlertsComponent, PlayerAttachedEvent>(OnPlayerAttached);
SubscribeNetworkEvent<ClickAlertEvent>(HandleClickAlert);
alert.OnClick?.AlertClicked(player.Value);
}
+
+ private void OnPlayerAttached(EntityUid uid, AlertsComponent component, PlayerAttachedEvent args)
+ {
+ Dirty(uid, component);
+ }
}