Split InteractionOutline from GameScreen (#6155)

Looking at making GameScreen in charge of managing the current GameHud and so it should be less of a god class.
This commit is contained in:
metalgearsloth
2022-01-15 10:23:52 +11:00
committed by GitHub
parent e8a27e4fdf
commit 509ed98bdd
4 changed files with 154 additions and 159 deletions

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using Content.Client.State;
using Content.Client.Outline;
using Content.Client.Viewport;
using Content.Shared.ActionBlocker;
using Content.Shared.DragDrop;
@@ -36,6 +37,7 @@ namespace Content.Client.DragDrop
[Dependency] private readonly IEyeManager _eyeManager = default!;
[Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly InteractionOutlineSystem _outline = default!;
[Dependency] private readonly SharedInteractionSystem _interactionSystem = default!;
[Dependency] private readonly InputSystem _inputSystem = default!;
[Dependency] private readonly ActionBlockerSystem _actionBlockerSystem = default!;
@@ -201,7 +203,7 @@ namespace Content.Client.DragDrop
}
HighlightTargets();
EntityManager.EventBus.RaiseEvent(EventSource.Local, new OutlineToggleMessage(false));
_outline.Enabled = false;
// drag initiated
return true;
@@ -254,7 +256,7 @@ namespace Content.Client.DragDrop
EntityManager.DeleteEntity(_dragShadow);
}
EntityManager.EventBus.RaiseEvent(EventSource.Local, new OutlineToggleMessage(true));
_outline.Enabled = true;
_dragShadow = default;
_draggables.Clear();
_dragger = default;
@@ -307,7 +309,17 @@ namespace Content.Client.DragDrop
return false;
}
var entities = GameScreenBase.GetEntitiesUnderPosition(_stateManager, args.Coordinates);
IList<EntityUid> entities;
if (_stateManager.CurrentState is GameScreen screen)
{
entities = screen.GetEntitiesUnderPosition(args.Coordinates);
}
else
{
entities = Array.Empty<EntityUid>();
}
var outOfRange = false;
foreach (var entity in entities)