Make more network-events check EntitySessionEventArgs. (#6612)

This commit is contained in:
Leon Friedrich
2022-02-13 11:18:24 +13:00
committed by GitHub
parent 29ff523081
commit 0e6aec0e56
6 changed files with 18 additions and 25 deletions

View File

@@ -256,7 +256,7 @@ namespace Content.Client.Inventory
if (e.Function != EngineKeyFunctions.UIClick && if (e.Function != EngineKeyFunctions.UIClick &&
e.Function != ContentKeyFunctions.ActivateItemInWorld) e.Function != ContentKeyFunctions.ActivateItemInWorld)
return; return;
RaiseNetworkEvent(new OpenSlotStorageNetworkMessage(entityUid, definition.Name)); RaiseNetworkEvent(new OpenSlotStorageNetworkMessage(definition.Name));
} }
}; };
btn.OnHover = (_) => btn.OnHover = (_) =>

View File

@@ -225,7 +225,7 @@ namespace Content.Client.Tabletop
/// <param name="viewport">The viewport in which we are dragging.</param> /// <param name="viewport">The viewport in which we are dragging.</param>
private void StartDragging(EntityUid draggedEntity, ScalingViewport viewport) private void StartDragging(EntityUid draggedEntity, ScalingViewport viewport)
{ {
RaiseNetworkEvent(new TabletopDraggingPlayerChangedEvent(draggedEntity, _playerManager.LocalPlayer?.UserId)); RaiseNetworkEvent(new TabletopDraggingPlayerChangedEvent(draggedEntity, true));
if (EntityManager.TryGetComponent<AppearanceComponent>(draggedEntity, out var appearance)) if (EntityManager.TryGetComponent<AppearanceComponent>(draggedEntity, out var appearance))
{ {
@@ -246,7 +246,7 @@ namespace Content.Client.Tabletop
// Set the dragging player on the component to noone // Set the dragging player on the component to noone
if (broadcast && _draggedEntity != null && EntityManager.HasComponent<TabletopDraggableComponent>(_draggedEntity.Value)) if (broadcast && _draggedEntity != null && EntityManager.HasComponent<TabletopDraggableComponent>(_draggedEntity.Value))
{ {
RaiseNetworkEvent(new TabletopDraggingPlayerChangedEvent(_draggedEntity.Value, null)); RaiseNetworkEvent(new TabletopDraggingPlayerChangedEvent(_draggedEntity.Value, false));
} }
_draggedEntity = null; _draggedEntity = null;

View File

@@ -7,7 +7,7 @@ using InventoryComponent = Content.Shared.Inventory.InventoryComponent;
namespace Content.Server.Inventory namespace Content.Server.Inventory
{ {
class ServerInventorySystem : InventorySystem sealed class ServerInventorySystem : InventorySystem
{ {
public override void Initialize() public override void Initialize()
{ {
@@ -20,11 +20,14 @@ namespace Content.Server.Inventory
SubscribeNetworkEvent<OpenSlotStorageNetworkMessage>(OnOpenSlotStorage); SubscribeNetworkEvent<OpenSlotStorageNetworkMessage>(OnOpenSlotStorage);
} }
private void OnOpenSlotStorage(OpenSlotStorageNetworkMessage ev) private void OnOpenSlotStorage(OpenSlotStorageNetworkMessage ev, EntitySessionEventArgs args)
{ {
if (TryGetSlotEntity(ev.Uid, ev.Slot, out var entityUid) && TryComp<ServerStorageComponent>(entityUid, out var storageComponent)) if (args.SenderSession.AttachedEntity is not EntityUid { Valid: true } uid)
return;
if (TryGetSlotEntity(uid, ev.Slot, out var entityUid) && TryComp<ServerStorageComponent>(entityUid, out var storageComponent))
{ {
storageComponent.OpenStorageUI(ev.Uid); storageComponent.OpenStorageUI(uid);
} }
} }
} }

View File

@@ -56,13 +56,13 @@ namespace Content.Server.Tabletop
transform.Coordinates = entityCoordinates; transform.Coordinates = entityCoordinates;
} }
private void OnDraggingPlayerChanged(TabletopDraggingPlayerChangedEvent msg) private void OnDraggingPlayerChanged(TabletopDraggingPlayerChangedEvent msg, EntitySessionEventArgs args)
{ {
var dragged = msg.DraggedEntityUid; var dragged = msg.DraggedEntityUid;
if (!EntityManager.TryGetComponent<TabletopDraggableComponent?>(dragged, out var draggableComponent)) return; if (!EntityManager.TryGetComponent<TabletopDraggableComponent?>(dragged, out var draggableComponent)) return;
draggableComponent.DraggingPlayer = msg.DraggingPlayer; draggableComponent.DraggingPlayer = msg.IsDragging ? args.SenderSession.UserId : null;
if (!EntityManager.TryGetComponent<AppearanceComponent?>(dragged, out var appearance)) return; if (!EntityManager.TryGetComponent<AppearanceComponent?>(dragged, out var appearance)) return;

View File

@@ -1,18 +1,14 @@
using System;
using Robust.Shared.GameObjects;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
namespace Content.Shared.Inventory.Events; namespace Content.Shared.Inventory.Events;
[NetSerializable, Serializable] [NetSerializable, Serializable]
public class OpenSlotStorageNetworkMessage : EntityEventArgs public sealed class OpenSlotStorageNetworkMessage : EntityEventArgs
{ {
public readonly EntityUid Uid;
public readonly string Slot; public readonly string Slot;
public OpenSlotStorageNetworkMessage(EntityUid uid, string slot) public OpenSlotStorageNetworkMessage(string slot)
{ {
Uid = uid;
Slot = slot; Slot = slot;
} }
} }

View File

@@ -1,6 +1,3 @@
using System;
using Robust.Shared.GameObjects;
using Robust.Shared.Network;
using Robust.Shared.Serialization; using Robust.Shared.Serialization;
namespace Content.Shared.Tabletop.Events namespace Content.Shared.Tabletop.Events
@@ -10,22 +7,19 @@ namespace Content.Shared.Tabletop.Events
/// trying to move a single item at the same time. /// trying to move a single item at the same time.
/// </summary> /// </summary>
[Serializable, NetSerializable] [Serializable, NetSerializable]
public class TabletopDraggingPlayerChangedEvent : EntityEventArgs public sealed class TabletopDraggingPlayerChangedEvent : EntityEventArgs
{ {
/// <summary> /// <summary>
/// The UID of the entity being dragged. /// The UID of the entity being dragged.
/// </summary> /// </summary>
public EntityUid DraggedEntityUid; public EntityUid DraggedEntityUid;
/// <summary> public bool IsDragging;
/// The NetUserID of the player that is now dragging the item.
/// </summary>
public NetUserId? DraggingPlayer;
public TabletopDraggingPlayerChangedEvent(EntityUid draggedEntityUid, NetUserId? draggingPlayer) public TabletopDraggingPlayerChangedEvent(EntityUid draggedEntityUid, bool isDragging)
{ {
DraggedEntityUid = draggedEntityUid; DraggedEntityUid = draggedEntityUid;
DraggingPlayer = draggingPlayer; IsDragging = isDragging;
} }
} }
} }