Merge pull request #233 from Acruid/19-05-16_ExamineImprovements
Examine Improvements
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Content.Shared.GameObjects.EntitySystemMessages;
|
using Content.Shared.GameObjects.EntitySystemMessages;
|
||||||
using Content.Shared.Input;
|
using Content.Shared.Input;
|
||||||
@@ -7,6 +7,7 @@ using Robust.Client.GameObjects.EntitySystems;
|
|||||||
using Robust.Client.Interfaces.GameObjects.Components;
|
using Robust.Client.Interfaces.GameObjects.Components;
|
||||||
using Robust.Client.Interfaces.Input;
|
using Robust.Client.Interfaces.Input;
|
||||||
using Robust.Client.Interfaces.UserInterface;
|
using Robust.Client.Interfaces.UserInterface;
|
||||||
|
using Robust.Client.Player;
|
||||||
using Robust.Client.UserInterface;
|
using Robust.Client.UserInterface;
|
||||||
using Robust.Client.UserInterface.Controls;
|
using Robust.Client.UserInterface.Controls;
|
||||||
using Robust.Shared.GameObjects;
|
using Robust.Shared.GameObjects;
|
||||||
@@ -25,10 +26,14 @@ namespace Content.Client.GameObjects.EntitySystems
|
|||||||
{
|
{
|
||||||
public const string StyleClassEntityTooltip = "entity-tooltip";
|
public const string StyleClassEntityTooltip = "entity-tooltip";
|
||||||
|
|
||||||
|
public const float ExamineRange = 1.5f;
|
||||||
|
public const float ExamineRangeSquared = ExamineRange * ExamineRange;
|
||||||
|
|
||||||
#pragma warning disable 649
|
#pragma warning disable 649
|
||||||
[Dependency] private IInputManager _inputManager;
|
[Dependency] private IInputManager _inputManager;
|
||||||
[Dependency] private IUserInterfaceManager _userInterfaceManager;
|
[Dependency] private IUserInterfaceManager _userInterfaceManager;
|
||||||
[Dependency] private IEntityManager _entityManager;
|
[Dependency] private IEntityManager _entityManager;
|
||||||
|
[Dependency] private IPlayerManager _playerManager;
|
||||||
#pragma warning restore 649
|
#pragma warning restore 649
|
||||||
|
|
||||||
private Popup _examineTooltipOpen;
|
private Popup _examineTooltipOpen;
|
||||||
@@ -56,6 +61,13 @@ namespace Content.Client.GameObjects.EntitySystems
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var playerEntity = _playerManager.LocalPlayer.ControlledEntity;
|
||||||
|
if(playerEntity == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if((entity.Transform.WorldPosition - playerEntity.Transform.WorldPosition).LengthSquared > ExamineRangeSquared)
|
||||||
|
return;
|
||||||
|
|
||||||
DoExamine(entity);
|
DoExamine(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,6 +82,7 @@ namespace Content.Client.GameObjects.EntitySystems
|
|||||||
_userInterfaceManager.StateRoot.AddChild(_examineTooltipOpen);
|
_userInterfaceManager.StateRoot.AddChild(_examineTooltipOpen);
|
||||||
var panel = new PanelContainer();
|
var panel = new PanelContainer();
|
||||||
panel.AddStyleClass(StyleClassEntityTooltip);
|
panel.AddStyleClass(StyleClassEntityTooltip);
|
||||||
|
panel.ModulateSelfOverride = Color.LightGray.WithAlpha(0.90f);
|
||||||
_examineTooltipOpen.AddChild(panel);
|
_examineTooltipOpen.AddChild(panel);
|
||||||
panel.SetAnchorAndMarginPreset(Control.LayoutPreset.Wide);
|
panel.SetAnchorAndMarginPreset(Control.LayoutPreset.Wide);
|
||||||
var vBox = new VBoxContainer();
|
var vBox = new VBoxContainer();
|
||||||
|
|||||||
@@ -13,13 +13,13 @@ namespace Content.Client.Input
|
|||||||
{
|
{
|
||||||
var common = contexts.GetContext("common");
|
var common = contexts.GetContext("common");
|
||||||
common.AddFunction(ContentKeyFunctions.FocusChat);
|
common.AddFunction(ContentKeyFunctions.FocusChat);
|
||||||
|
common.AddFunction(ContentKeyFunctions.ExamineEntity);
|
||||||
|
|
||||||
var human = contexts.GetContext("human");
|
var human = contexts.GetContext("human");
|
||||||
human.AddFunction(ContentKeyFunctions.SwapHands);
|
human.AddFunction(ContentKeyFunctions.SwapHands);
|
||||||
human.AddFunction(ContentKeyFunctions.Drop);
|
human.AddFunction(ContentKeyFunctions.Drop);
|
||||||
human.AddFunction(ContentKeyFunctions.ActivateItemInHand);
|
human.AddFunction(ContentKeyFunctions.ActivateItemInHand);
|
||||||
human.AddFunction(ContentKeyFunctions.OpenCharacterMenu);
|
human.AddFunction(ContentKeyFunctions.OpenCharacterMenu);
|
||||||
human.AddFunction(ContentKeyFunctions.ExamineEntity);
|
|
||||||
human.AddFunction(ContentKeyFunctions.UseItemInHand);
|
human.AddFunction(ContentKeyFunctions.UseItemInHand);
|
||||||
human.AddFunction(ContentKeyFunctions.ActivateItemInWorld);
|
human.AddFunction(ContentKeyFunctions.ActivateItemInWorld);
|
||||||
human.AddFunction(ContentKeyFunctions.ThrowItemInHand);
|
human.AddFunction(ContentKeyFunctions.ThrowItemInHand);
|
||||||
|
|||||||
@@ -29,8 +29,12 @@ namespace Content.Server.GameObjects.EntitySystems
|
|||||||
|
|
||||||
public class ExamineSystem : EntitySystem
|
public class ExamineSystem : EntitySystem
|
||||||
{
|
{
|
||||||
|
public const float ExamineRange = 1.5f;
|
||||||
|
public const float ExamineRangeSquared = ExamineRange * ExamineRange;
|
||||||
|
|
||||||
#pragma warning disable 649
|
#pragma warning disable 649
|
||||||
[Dependency] private IEntityManager _entityManager;
|
[Dependency] private IEntityManager _entityManager;
|
||||||
|
[Dependency] private IPlayerManager _playerManager;
|
||||||
#pragma warning restore 649
|
#pragma warning restore 649
|
||||||
|
|
||||||
private static readonly FormattedMessage _entityNotFoundMessage;
|
private static readonly FormattedMessage _entityNotFoundMessage;
|
||||||
@@ -95,9 +99,16 @@ namespace Content.Server.GameObjects.EntitySystems
|
|||||||
{
|
{
|
||||||
base.HandleNetMessage(channel, message);
|
base.HandleNetMessage(channel, message);
|
||||||
|
|
||||||
if (message is ExamineSystemMessages.RequestExamineInfoMessage request)
|
if (!(message is ExamineSystemMessages.RequestExamineInfoMessage request))
|
||||||
{
|
return;
|
||||||
if (!_entityManager.TryGetEntity(request.EntityUid, out var entity))
|
|
||||||
|
var session = _playerManager.GetSessionByChannel(channel);
|
||||||
|
var playerEnt = session.AttachedEntity;
|
||||||
|
|
||||||
|
if((playerEnt == null) ||
|
||||||
|
(!_entityManager.TryGetEntity(request.EntityUid, out var entity)) ||
|
||||||
|
(entity.Transform.MapID != playerEnt.Transform.MapID) ||
|
||||||
|
((entity.Transform.WorldPosition - playerEnt.Transform.WorldPosition).LengthSquared > ExamineRangeSquared))
|
||||||
{
|
{
|
||||||
RaiseNetworkEvent(new ExamineSystemMessages.ExamineInfoResponseMessage(
|
RaiseNetworkEvent(new ExamineSystemMessages.ExamineInfoResponseMessage(
|
||||||
request.EntityUid, _entityNotFoundMessage));
|
request.EntityUid, _entityNotFoundMessage));
|
||||||
@@ -108,5 +119,4 @@ namespace Content.Server.GameObjects.EntitySystems
|
|||||||
RaiseNetworkEvent(new ExamineSystemMessages.ExamineInfoResponseMessage(request.EntityUid, text));
|
RaiseNetworkEvent(new ExamineSystemMessages.ExamineInfoResponseMessage(request.EntityUid, text));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user