diff --git a/Content.Client/Buckle/BuckleComponent.cs b/Content.Client/Buckle/BuckleComponent.cs index 507b0dbb7f..ec4ed91c81 100644 --- a/Content.Client/Buckle/BuckleComponent.cs +++ b/Content.Client/Buckle/BuckleComponent.cs @@ -1,4 +1,4 @@ -using Content.Shared.Buckle.Components; +using Content.Shared.Buckle.Components; using Robust.Client.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.IoC; @@ -14,7 +14,7 @@ namespace Content.Client.Buckle public override bool Buckled => _buckled; - public override bool TryBuckle(IEntity? user, IEntity to) + public override bool TryBuckle(EntityUid user, EntityUid to) { // TODO: Prediction return false; @@ -30,8 +30,7 @@ namespace Content.Client.Buckle _buckled = buckle.Buckled; LastEntityBuckledTo = buckle.LastEntityBuckledTo; DontCollide = buckle.DontCollide; - - if (!IoCManager.Resolve().TryGetComponent(Owner, out SpriteComponent? ownerSprite)) + if (!IoCManager.Resolve().TryGetComponent(OwnerUid, out SpriteComponent? ownerSprite)) { return; } diff --git a/Content.Client/CharacterAppearance/Systems/HumanoidAppearanceSystem.cs b/Content.Client/CharacterAppearance/Systems/HumanoidAppearanceSystem.cs index 720582fa01..cd99376fdf 100644 --- a/Content.Client/CharacterAppearance/Systems/HumanoidAppearanceSystem.cs +++ b/Content.Client/CharacterAppearance/Systems/HumanoidAppearanceSystem.cs @@ -50,7 +50,7 @@ namespace Content.Client.CharacterAppearance.Systems { foreach (var (part, _) in body.Parts) { - if (IoCManager.Resolve().TryGetComponent(part.Owner, out SpriteComponent? partSprite)) + if (EntityManager.TryGetComponent(part.OwnerUid, out SpriteComponent? partSprite)) { partSprite!.Color = component.Appearance.SkinColor; } @@ -107,13 +107,13 @@ namespace Content.Client.CharacterAppearance.Systems // Scaffolding until Body is moved to ECS. private void BodyPartAdded(HumanoidAppearanceBodyPartAddedEvent args) { - if(!EntityManager.TryGetEntity(args.Uid, out var owner)) return; - if (!IoCManager.Resolve().TryGetComponent(owner, out SpriteComponent? sprite)) + var entityManager = IoCManager.Resolve(); + if (!entityManager.TryGetComponent(args.Uid, out SpriteComponent? sprite)) { return; } - if (!IoCManager.Resolve().HasComponent(args.Args.Part.Owner)) + if (!entityManager.HasComponent(args.Args.Part.OwnerUid)) { return; } @@ -131,13 +131,12 @@ namespace Content.Client.CharacterAppearance.Systems private void BodyPartRemoved(HumanoidAppearanceBodyPartRemovedEvent args) { - if(!EntityManager.TryGetEntity(args.Uid, out var owner)) return; - if (!IoCManager.Resolve().TryGetComponent(owner, out SpriteComponent? sprite)) + if (!EntityManager.TryGetComponent(args.Uid, out SpriteComponent? sprite)) { return; } - if (!IoCManager.Resolve().HasComponent(args.Args.Part.Owner)) + if (!EntityManager.HasComponent(args.Args.Part.OwnerUid)) { return; } diff --git a/Content.Client/Ghost/GhostSystem.cs b/Content.Client/Ghost/GhostSystem.cs index dc3a72d320..63455ad8d0 100644 --- a/Content.Client/Ghost/GhostSystem.cs +++ b/Content.Client/Ghost/GhostSystem.cs @@ -1,4 +1,4 @@ -using Content.Client.Ghost.UI; +using Content.Client.Ghost.UI; using Content.Client.HUD; using Content.Shared.Ghost; using JetBrains.Annotations; @@ -36,7 +36,7 @@ namespace Content.Client.Ghost foreach (var ghost in EntityManager.GetAllComponents(typeof(GhostComponent), true)) { - if (IoCManager.Resolve().TryGetComponent(ghost.Owner, out SpriteComponent? sprite)) + if (EntityManager.TryGetComponent(ghost.OwnerUid, out SpriteComponent? sprite)) { sprite.Visible = value; } @@ -60,7 +60,7 @@ namespace Content.Client.Ghost private void OnGhostInit(EntityUid uid, GhostComponent component, ComponentInit args) { - if (IoCManager.Resolve().TryGetComponent(component.Owner, out SpriteComponent? sprite)) + if (EntityManager.TryGetComponent(component.OwnerUid, out SpriteComponent? sprite)) { sprite.Visible = GhostVisibility; } @@ -101,10 +101,10 @@ namespace Content.Client.Ghost private void OnGhostWarpsResponse(GhostWarpsResponseEvent msg) { - var entity = _playerManager.LocalPlayer?.ControlledEntity; + var entity = _playerManager.LocalPlayer?.ControlledEntity?.Uid; if (entity == null || - !IoCManager.Resolve().TryGetComponent(entity, out GhostComponent? ghost)) + !EntityManager.TryGetComponent(entity.Value, out GhostComponent? ghost)) { return; } diff --git a/Content.Server/Buckle/Components/BuckleComponent.cs b/Content.Server/Buckle/Components/BuckleComponent.cs index 09d076c708..df8c9d0817 100644 --- a/Content.Server/Buckle/Components/BuckleComponent.cs +++ b/Content.Server/Buckle/Components/BuckleComponent.cs @@ -1,20 +1,15 @@ -using System; -using System.Diagnostics.CodeAnalysis; using Content.Server.Alert; using Content.Server.Hands.Components; using Content.Server.Pulling; -using Content.Server.Stunnable.Components; using Content.Shared.ActionBlocker; using Content.Shared.Alert; using Content.Shared.Buckle.Components; using Content.Shared.Interaction.Helpers; using Content.Shared.MobState.Components; using Content.Shared.Popups; -using Content.Shared.Pulling; using Content.Shared.Pulling.Components; using Content.Shared.Standing; using Content.Shared.Stunnable; -using Robust.Server.GameObjects; using Robust.Shared.Audio; using Robust.Shared.Containers; using Robust.Shared.GameObjects; @@ -22,10 +17,11 @@ using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Maths; using Robust.Shared.Player; -using Robust.Shared.Players; using Robust.Shared.Serialization.Manager.Attributes; using Robust.Shared.Timing; using Robust.Shared.ViewVariables; +using System; +using System.Diagnostics.CodeAnalysis; namespace Content.Server.Buckle.Components { @@ -36,6 +32,7 @@ namespace Content.Server.Buckle.Components [ComponentReference(typeof(SharedBuckleComponent))] public class BuckleComponent : SharedBuckleComponent { + [Dependency] private readonly IEntityManager _entityManager = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; [ComponentDependency] public readonly AppearanceComponent? Appearance = null; @@ -118,8 +115,8 @@ namespace Content.Server.Buckle.Components /// The strap to reattach to. public void ReAttach(StrapComponent strap) { - var ownTransform = IoCManager.Resolve().GetComponent(Owner); - var strapTransform = IoCManager.Resolve().GetComponent(strap.Owner); + var ownTransform = _entityManager.GetComponent(OwnerUid); + var strapTransform = _entityManager.GetComponent(strap.OwnerUid); ownTransform.AttachParent(strapTransform); ownTransform.LocalRotation = Angle.Zero; @@ -129,40 +126,41 @@ namespace Content.Server.Buckle.Components case StrapPosition.None: break; case StrapPosition.Stand: - EntitySystem.Get().Stand((EntityUid) Owner); + EntitySystem.Get().Stand(OwnerUid); break; case StrapPosition.Down: - EntitySystem.Get().Down((EntityUid) Owner, false, false); + EntitySystem.Get().Down(OwnerUid, false, false); break; } ownTransform.LocalPosition = Vector2.Zero + BuckleOffset; } - public bool CanBuckle(IEntity? user, IEntity to, [NotNullWhen(true)] out StrapComponent? strap) + public bool CanBuckle(EntityUid user, EntityUid to, [NotNullWhen(true)] out StrapComponent? strap) { + var popupSystem = EntitySystem.Get(); strap = null; - if (user == null || user == to) + if (user == to) { return false; } if (!EntitySystem.Get().CanInteract(user)) { - user.PopupMessage(Loc.GetString("buckle-component-cannot-do-that-message")); + popupSystem.PopupEntity(Loc.GetString("buckle-component-cannot-do-that-message"), user, Filter.Entities(user)); return false; } - if (!IoCManager.Resolve().TryGetComponent(to, out strap)) + if (!_entityManager.TryGetComponent(to, out strap)) { return false; } - var component = strap; - bool Ignored(IEntity entity) => entity == Owner || entity == user || entity == component.Owner; + var strapUid = strap.OwnerUid; + bool Ignored(EntityUid entity) => entity == OwnerUid || entity == user || entity == strapUid; - if (!Owner.InRangeUnobstructed(strap, Range, predicate: Ignored, popup: true)) + if (!OwnerUid.InRangeUnobstructed(strapUid, Range, predicate: Ignored, popup: true)) { return false; } @@ -178,31 +176,31 @@ namespace Content.Server.Buckle.Components } } - if (!IoCManager.Resolve().HasComponent(user)) + if (!_entityManager.HasComponent(user)) { - user.PopupMessage(Loc.GetString("buckle-component-no-hands-message ")); + popupSystem.PopupEntity(Loc.GetString("buckle-component-no-hands-message"), user, Filter.Entities(user)); return false; } if (Buckled) { - var message = Loc.GetString(Owner == user + var message = Loc.GetString(OwnerUid == user ? "buckle-component-already-buckled-message" : "buckle-component-other-already-buckled-message", ("owner", Owner)); - Owner.PopupMessage(user, message); + popupSystem.PopupEntity(message, user, Filter.Entities(user)); return false; } - var parent = IoCManager.Resolve().GetComponent(to).Parent; + var parent = _entityManager.GetComponent(to).Parent; while (parent != null) { - if (parent == IoCManager.Resolve().GetComponent(user)) + if (parent == _entityManager.GetComponent(user)) { - var message = Loc.GetString(Owner == user + var message = Loc.GetString(OwnerUid == user ? "buckle-component-cannot-buckle-message" : "buckle-component-other-cannot-buckle-message", ("owner", Owner)); - Owner.PopupMessage(user, message); + popupSystem.PopupEntity(message, user, Filter.Entities(user)); return false; } @@ -212,10 +210,10 @@ namespace Content.Server.Buckle.Components if (!strap.HasSpace(this)) { - var message = Loc.GetString(Owner == user + var message = Loc.GetString(OwnerUid == user ? "buckle-component-cannot-fit-message" : "buckle-component-other-cannot-fit-message", ("owner", Owner)); - Owner.PopupMessage(user, message); + popupSystem.PopupEntity(message, user, Filter.Entities(user)); return false; } @@ -223,9 +221,10 @@ namespace Content.Server.Buckle.Components return true; } - public override bool TryBuckle(IEntity? user, IEntity to) + public override bool TryBuckle(EntityUid user, EntityUid to) { - if (user == null || !CanBuckle(user, to, out var strap)) + var popupSystem = EntitySystem.Get(); + if (!CanBuckle(user, to, out var strap)) { return false; } @@ -234,10 +233,10 @@ namespace Content.Server.Buckle.Components if (!strap.TryAdd(this)) { - var message = Loc.GetString(Owner == user + var message = Loc.GetString(OwnerUid == user ? "buckle-component-cannot-buckle-message" : "buckle-component-other-cannot-buckle-message", ("owner", Owner)); - Owner.PopupMessage(user, message); + popupSystem.PopupEntity(message, user, Filter.Entities(user)); return false; } @@ -246,16 +245,16 @@ namespace Content.Server.Buckle.Components ReAttach(strap); BuckledTo = strap; - LastEntityBuckledTo = BuckledTo.Owner; + LastEntityBuckledTo = BuckledTo.OwnerUid; DontCollide = true; UpdateBuckleStatus(); #pragma warning disable 618 - SendMessage(new BuckleMessage(Owner, to)); + SendMessage(new BuckleMessage(OwnerUid, to)); #pragma warning restore 618 - if (IoCManager.Resolve().TryGetComponent(Owner, out SharedPullableComponent? ownerPullable)) + if (_entityManager.TryGetComponent(OwnerUid, out SharedPullableComponent? ownerPullable)) { if (ownerPullable.Puller != null) { @@ -287,7 +286,7 @@ namespace Content.Server.Buckle.Components /// true if the owner was unbuckled, otherwise false even if the owner /// was previously already unbuckled. /// - public bool TryUnbuckle(IEntity user, bool force = false) + public bool TryUnbuckle(EntityUid user, bool force = false) { if (BuckledTo == null) { @@ -305,11 +304,12 @@ namespace Content.Server.Buckle.Components if (!EntitySystem.Get().CanInteract(user)) { - user.PopupMessage(Loc.GetString("buckle-component-cannot-do-that-message")); + var popupSystem = EntitySystem.Get(); + popupSystem.PopupEntity(Loc.GetString("buckle-component-cannot-do-that-message"), user, Filter.Entities(user)); return false; } - if (!user.InRangeUnobstructed(oldBuckledTo, Range, popup: true)) + if (!user.InRangeUnobstructed(oldBuckledTo.OwnerUid, Range, popup: true)) { return false; } @@ -317,25 +317,25 @@ namespace Content.Server.Buckle.Components BuckledTo = null; - if (IoCManager.Resolve().GetComponent(Owner).Parent == IoCManager.Resolve().GetComponent(oldBuckledTo.Owner)) + if (_entityManager.GetComponent(OwnerUid).Parent == _entityManager.GetComponent(oldBuckledTo.OwnerUid)) { - IoCManager.Resolve().GetComponent(Owner).AttachParentToContainerOrGrid(); - IoCManager.Resolve().GetComponent(Owner).WorldRotation = IoCManager.Resolve().GetComponent(oldBuckledTo.Owner).WorldRotation; + _entityManager.GetComponent(OwnerUid).AttachParentToContainerOrGrid(); + _entityManager.GetComponent(OwnerUid).WorldRotation = _entityManager.GetComponent(oldBuckledTo.OwnerUid).WorldRotation; } Appearance?.SetData(BuckleVisuals.Buckled, false); - if (IoCManager.Resolve().HasComponent(Owner) + if (IoCManager.Resolve().HasComponent(OwnerUid) || (_mobState?.IsIncapacitated() ?? false)) { - EntitySystem.Get().Down((EntityUid) Owner); + EntitySystem.Get().Down(OwnerUid); } else { - EntitySystem.Get().Stand((EntityUid) Owner); + EntitySystem.Get().Stand(OwnerUid); } - _mobState?.CurrentState?.EnterState(Owner, IoCManager.Resolve()); + _mobState?.CurrentState?.EnterState(OwnerUid, IoCManager.Resolve()); UpdateBuckleStatus(); @@ -343,7 +343,7 @@ namespace Content.Server.Buckle.Components SoundSystem.Play(Filter.Pvs(Owner), oldBuckledTo.UnbuckleSound.GetSound(), Owner); #pragma warning disable 618 - SendMessage(new UnbuckleMessage(Owner, oldBuckledTo.Owner)); + SendMessage(new UnbuckleMessage(OwnerUid, oldBuckledTo.OwnerUid)); #pragma warning restore 618 return true; @@ -363,9 +363,9 @@ namespace Content.Server.Buckle.Components /// unbuckled afterwards. /// /// true if the buckling status was changed, false otherwise. - public bool ToggleBuckle(IEntity user, IEntity to, bool force = false) + public bool ToggleBuckle(EntityUid user, EntityUid to, bool force = false) { - if (BuckledTo?.Owner == to) + if (BuckledTo?.OwnerUid == to) { return TryUnbuckle(user, force); } @@ -382,7 +382,7 @@ namespace Content.Server.Buckle.Components protected override void Shutdown() { BuckledTo?.Remove(this); - TryUnbuckle(Owner, true); + TryUnbuckle(OwnerUid, true); _buckleTime = default; UpdateBuckleStatus(); @@ -395,7 +395,7 @@ namespace Content.Server.Buckle.Components int? drawDepth = null; if (BuckledTo != null && - IoCManager.Resolve().GetComponent(BuckledTo.Owner).LocalRotation.GetCardinalDir() == Direction.North && + IoCManager.Resolve().GetComponent(BuckledTo.OwnerUid).LocalRotation.GetCardinalDir() == Direction.North && BuckledTo.SpriteComponent != null) { drawDepth = BuckledTo.SpriteComponent.DrawDepth - 1; @@ -414,7 +414,7 @@ namespace Content.Server.Buckle.Components if (!IsOnStrapEntityThisFrame && DontCollide) { DontCollide = false; - TryUnbuckle(Owner); + TryUnbuckle(OwnerUid); Dirty(); } diff --git a/Content.Shared/Buckle/Components/SharedBuckleComponent.cs b/Content.Shared/Buckle/Components/SharedBuckleComponent.cs index dc73c1cb77..9491e24254 100644 --- a/Content.Shared/Buckle/Components/SharedBuckleComponent.cs +++ b/Content.Shared/Buckle/Components/SharedBuckleComponent.cs @@ -33,7 +33,7 @@ namespace Content.Shared.Buckle.Components public bool DontCollide { get; set; } - public abstract bool TryBuckle(IEntity? user, IEntity to); + public abstract bool TryBuckle(EntityUid user, EntityUid to); bool IDraggable.CanDrop(CanDropEvent args) { @@ -80,7 +80,7 @@ namespace Content.Shared.Buckle.Components /// The entity that had its buckling status changed /// The strap that the entity was buckled to or unbuckled from /// True if the entity was buckled, false otherwise - protected BuckleChangeMessage(IEntity entity, IEntity strap, bool buckled) + protected BuckleChangeMessage(EntityUid entity, EntityUid strap, bool buckled) { Entity = entity; Strap = strap; @@ -90,12 +90,12 @@ namespace Content.Shared.Buckle.Components /// /// The entity that had its buckling status changed /// - public IEntity Entity { get; } + public EntityUid Entity { get; } /// /// The strap that the entity was buckled to or unbuckled from /// - public IEntity Strap { get; } + public EntityUid Strap { get; } /// /// True if the entity was buckled, false otherwise. @@ -111,7 +111,7 @@ namespace Content.Shared.Buckle.Components /// /// The entity that had its buckling status changed /// The strap that the entity was buckled to or unbuckled from - public BuckleMessage(IEntity entity, IEntity strap) : base(entity, strap, true) + public BuckleMessage(EntityUid entity, EntityUid strap) : base(entity, strap, true) { } } @@ -124,7 +124,7 @@ namespace Content.Shared.Buckle.Components /// /// The entity that had its buckling status changed /// The strap that the entity was buckled to or unbuckled from - public UnbuckleMessage(IEntity entity, IEntity strap) : base(entity, strap, false) + public UnbuckleMessage(EntityUid entity, EntityUid strap) : base(entity, strap, false) { } } diff --git a/Content.Shared/DragDrop/IDraggable.cs b/Content.Shared/DragDrop/IDraggable.cs index f646eafbe2..c98e66d71e 100644 --- a/Content.Shared/DragDrop/IDraggable.cs +++ b/Content.Shared/DragDrop/IDraggable.cs @@ -61,19 +61,19 @@ namespace Content.Shared.DragDrop /// /// Entity doing the drag and drop. /// - public IEntity User { get; } + public EntityUid User { get; } /// /// Entity that is being dragged. /// - public IEntity Dragged { get; } + public EntityUid Dragged { get; } /// /// Creates a new instance of . /// /// The entity doing the drag and drop. /// The entity that is being dragged and dropped. - public StartDragDropEvent(IEntity user, IEntity dragged) + public StartDragDropEvent(EntityUid user, EntityUid dragged) { User = user; Dragged = dragged; @@ -83,10 +83,10 @@ namespace Content.Shared.DragDrop public class CanDropEvent : StartDragDropEvent { /// - /// The entity that + /// The entity uid that /// is being dropped onto. /// - public IEntity Target { get; } + public EntityUid Target { get; } /// /// Creates a new instance of . @@ -94,7 +94,7 @@ namespace Content.Shared.DragDrop /// The entity doing the drag and drop. /// The entity that is being dragged and dropped. /// The entity that is being dropped onto. - public CanDropEvent(IEntity user, IEntity dragged, IEntity target) : base(user, dragged) + public CanDropEvent(EntityUid user, EntityUid dragged, EntityUid target) : base(user, dragged) { Target = target; } @@ -115,7 +115,7 @@ namespace Content.Shared.DragDrop /// The location where is being dropped. /// The entity that is being dragged and dropped. /// The entity that is being dropped onto. - public DragDropEvent(IEntity user, EntityCoordinates dropLocation, IEntity dragged, IEntity target) : base(user, dragged, target) + public DragDropEvent(EntityUid user, EntityCoordinates dropLocation, EntityUid dragged, EntityUid target) : base(user, dragged, target) { DropLocation = dropLocation; } diff --git a/Content.Shared/Interaction/SharedInteractionSystem.cs b/Content.Shared/Interaction/SharedInteractionSystem.cs index 2356b55207..447d8f79ca 100644 --- a/Content.Shared/Interaction/SharedInteractionSystem.cs +++ b/Content.Shared/Interaction/SharedInteractionSystem.cs @@ -43,7 +43,7 @@ namespace Content.Shared.Interaction public const float InteractionRange = 2; public const float InteractionRangeSquared = InteractionRange * InteractionRange; - public delegate bool Ignored(IEntity entity); + public delegate bool Ignored(EntityUid entity); /// /// Traces a ray from coords to otherCoords and returns the length @@ -94,7 +94,7 @@ namespace Content.Shared.Interaction { var predicate = ignoredEnt == null ? null - : (Ignored) (e => e == ignoredEnt); + : (Ignored) (e => e == ignoredEnt?.Uid); return UnobstructedDistance(origin, other, collisionMask, predicate); } @@ -212,7 +212,7 @@ namespace Content.Shared.Interaction bool ignoreInsideBlocker = false, bool popup = false) { - predicate ??= e => e == origin || e == other; + predicate ??= e => e == origin.Uid || e == other.Uid; return InRangeUnobstructed(origin, IoCManager.Resolve().GetComponent(other).MapPosition, range, collisionMask, predicate, ignoreInsideBlocker, popup); } @@ -346,7 +346,7 @@ namespace Content.Shared.Interaction bool popup = false) { var originPosition = IoCManager.Resolve().GetComponent(origin).MapPosition; - predicate ??= e => e == origin; + predicate ??= e => e == origin.Uid; var inRange = InRangeUnobstructed(originPosition, other, range, collisionMask, predicate, ignoreInsideBlocker);