From 8437388f2b0b89e283610c288e7db7805d8bd9cd Mon Sep 17 00:00:00 2001 From: Acruid Date: Sun, 19 Jul 2020 12:36:29 -0700 Subject: [PATCH] Removed the StateBase scene, its functionality got moved back into Engine. Changed all the dependencies inside GameScreenBase to protected so that derived classes can access them. --- Content.Client/State/GameScreenBase.cs | 64 ++++++++++++++------------ Content.Client/State/LobbyState.cs | 4 +- Content.Client/State/StateBase.cs | 32 ------------- RobustToolbox | 2 +- 4 files changed, 38 insertions(+), 64 deletions(-) delete mode 100644 Content.Client/State/StateBase.cs diff --git a/Content.Client/State/GameScreenBase.cs b/Content.Client/State/GameScreenBase.cs index f7d7742540..d16119a4a2 100644 --- a/Content.Client/State/GameScreenBase.cs +++ b/Content.Client/State/GameScreenBase.cs @@ -27,56 +27,60 @@ namespace Content.Client.State // OH GOD. // Ok actually it's fine. // Instantiated dynamically through the StateManager, Dependencies will be resolved. - public partial class GameScreenBase : StateBase + public partial class GameScreenBase : Robust.Client.State.State { #pragma warning disable 649 - [Dependency] private readonly IClientEntityManager _entityManager; - [Dependency] private readonly IInputManager _inputManager; - [Dependency] private readonly IPlayerManager _playerManager; - [Dependency] private readonly IEyeManager _eyeManager; - [Dependency] private readonly IEntitySystemManager _entitySystemManager; - [Dependency] private readonly IGameTiming _timing; - [Dependency] private readonly IMapManager _mapManager; - [Dependency] private readonly IUserInterfaceManager _userInterfaceManager; - - [Dependency] private readonly IConfigurationManager _configurationManager; + [Dependency] protected readonly IClientEntityManager EntityManager; + [Dependency] protected readonly IInputManager InputManager; + [Dependency] protected readonly IPlayerManager PlayerManager; + [Dependency] protected readonly IEyeManager EyeManager; + [Dependency] protected readonly IEntitySystemManager EntitySystemManager; + [Dependency] protected readonly IGameTiming Timing; + [Dependency] protected readonly IMapManager MapManager; + [Dependency] protected readonly IUserInterfaceManager UserInterfaceManager; + [Dependency] protected readonly IConfigurationManager ConfigurationManager; #pragma warning restore 649 private IEntity _lastHoveredEntity; public override void Startup() { - _inputManager.KeyBindStateChanged += OnKeyBindStateChanged; + InputManager.KeyBindStateChanged += OnKeyBindStateChanged; } public override void Shutdown() { - _inputManager.KeyBindStateChanged -= OnKeyBindStateChanged; + InputManager.KeyBindStateChanged -= OnKeyBindStateChanged; } public override void FrameUpdate(FrameEventArgs e) { base.FrameUpdate(e); - var mousePosWorld = _eyeManager.ScreenToMap(_inputManager.MouseScreenPosition); - var entityToClick = _userInterfaceManager.CurrentlyHovered != null + // If there is no local player, there is no session, and therefore nothing to do here. + var localPlayer = PlayerManager.LocalPlayer; + if (localPlayer == null) + return; + + var mousePosWorld = EyeManager.ScreenToMap(InputManager.MouseScreenPosition); + var entityToClick = UserInterfaceManager.CurrentlyHovered != null ? null : GetEntityUnderPosition(mousePosWorld); var inRange = false; - if (_playerManager.LocalPlayer.ControlledEntity != null && entityToClick != null) + if (localPlayer.ControlledEntity != null && entityToClick != null) { - var playerPos = _playerManager.LocalPlayer.ControlledEntity.Transform.MapPosition; + var playerPos = localPlayer.ControlledEntity.Transform.MapPosition; var entityPos = entityToClick.Transform.MapPosition; - inRange = _entitySystemManager.GetEntitySystem() + inRange = EntitySystemManager.GetEntitySystem() .InRangeUnobstructed(playerPos, entityPos, predicate: entity => - entity == _playerManager.LocalPlayer.ControlledEntity || entity == entityToClick, + entity == localPlayer.ControlledEntity || entity == entityToClick, ignoreInsideBlocker: true); } InteractionOutlineComponent outline; - if(!_configurationManager.GetCVar("outline.enabled")) + if(!ConfigurationManager.GetCVar("outline.enabled")) { if(entityToClick != null && entityToClick.TryGetComponent(out outline)) { @@ -117,13 +121,13 @@ namespace Content.Client.State public IList GetEntitiesUnderPosition(GridCoordinates coordinates) { - return GetEntitiesUnderPosition(coordinates.ToMap(_mapManager)); + return GetEntitiesUnderPosition(coordinates.ToMap(MapManager)); } public IList GetEntitiesUnderPosition(MapCoordinates coordinates) { // Find all the entities intersecting our click - var entities = _entityManager.GetEntitiesIntersecting(coordinates.MapId, + var entities = EntityManager.GetEntitiesIntersecting(coordinates.MapId, Box2.CenteredAround(coordinates.Position, (1, 1))); // Check the entities against whether or not we can click them @@ -204,23 +208,25 @@ namespace Content.Client.State /// Event data values for a bound key state change. private void OnKeyBindStateChanged(BoundKeyEventArgs args) { - var inputSys = _entitySystemManager.GetEntitySystem(); + // If there is no InputSystem, then there is nothing to forward to, and nothing to do here. + if(!EntitySystemManager.TryGetEntitySystem(out InputSystem inputSys)) + return; var func = args.Function; - var funcId = _inputManager.NetworkBindMap.KeyFunctionID(func); + var funcId = InputManager.NetworkBindMap.KeyFunctionID(func); - var mousePosWorld = _eyeManager.ScreenToMap(args.PointerLocation); + var mousePosWorld = EyeManager.ScreenToMap(args.PointerLocation); var entityToClick = GetEntityUnderPosition(mousePosWorld); - if (!_mapManager.TryFindGridAt(mousePosWorld, out var grid)) - grid = _mapManager.GetDefaultGrid(mousePosWorld.MapId); + if (!MapManager.TryFindGridAt(mousePosWorld, out var grid)) + grid = MapManager.GetDefaultGrid(mousePosWorld.MapId); - var message = new FullInputCmdMessage(_timing.CurTick, _timing.TickFraction, funcId, args.State, + var message = new FullInputCmdMessage(Timing.CurTick, Timing.TickFraction, funcId, args.State, grid.MapToGrid(mousePosWorld), args.PointerLocation, entityToClick?.Uid ?? EntityUid.Invalid); // client side command handlers will always be sent the local player session. - var session = _playerManager.LocalPlayer.Session; + var session = PlayerManager.LocalPlayer.Session; inputSys.HandleInputCommand(session, func, message); } } diff --git a/Content.Client/State/LobbyState.cs b/Content.Client/State/LobbyState.cs index 9f09c1373d..7136d581d2 100644 --- a/Content.Client/State/LobbyState.cs +++ b/Content.Client/State/LobbyState.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Linq; using Content.Client.Interfaces; using Content.Client.Interfaces.Chat; @@ -26,7 +26,7 @@ using MathF = CannyFastMath.MathF; namespace Content.Client.State { - public class LobbyState : StateBase + public class LobbyState : Robust.Client.State.State { #pragma warning disable 649 [Dependency] private readonly IBaseClient _baseClient; diff --git a/Content.Client/State/StateBase.cs b/Content.Client/State/StateBase.cs deleted file mode 100644 index 1b981efe62..0000000000 --- a/Content.Client/State/StateBase.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Robust.Client.Interfaces.GameObjects; -using Robust.Client.Interfaces.Placement; -using Robust.Client.Player; -using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.IoC; -using Robust.Shared.Timing; - -namespace Content.Client.State -{ - public abstract class StateBase : Robust.Client.State.State - { -#pragma warning disable 649 - [Dependency] private readonly IClientEntityManager _entityManager; - [Dependency] private readonly IComponentManager _componentManager; - [Dependency] private readonly IPlayerManager _playerManager; - [Dependency] private readonly IPlacementManager _placementManager; -#pragma warning restore 649 - - public override void Update(FrameEventArgs e) - { - _componentManager.CullRemovedComponents(); - _entityManager.Update(e.DeltaSeconds); - _playerManager.Update(e.DeltaSeconds); - } - - public override void FrameUpdate(FrameEventArgs e) - { - _placementManager.FrameUpdate(e); - _entityManager.FrameUpdate(e.DeltaSeconds); - } - } -} diff --git a/RobustToolbox b/RobustToolbox index ede9795ba6..5e448f20c0 160000 --- a/RobustToolbox +++ b/RobustToolbox @@ -1 +1 @@ -Subproject commit ede9795ba68c090f2d132f9e95c3bea7b314fade +Subproject commit 5e448f20c011a0dd5db78ac2dffe3f166bad52c9