From 027ff0becc9876465e019ddea2fe1f47bc4ab961 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Wed, 5 Oct 2022 16:43:36 -0700 Subject: [PATCH] make SocketItemMessage a QSBWorldObjectMessage --- QSB/ItemSync/Messages/SocketItemMessage.cs | 25 +++++++++------------- QSB/ItemSync/Patches/ItemToolPatches.cs | 7 +++--- QSB/ItemSync/WorldObjects/Items/QSBItem.cs | 2 +- 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/QSB/ItemSync/Messages/SocketItemMessage.cs b/QSB/ItemSync/Messages/SocketItemMessage.cs index 3b824ee9..6d8fb292 100644 --- a/QSB/ItemSync/Messages/SocketItemMessage.cs +++ b/QSB/ItemSync/Messages/SocketItemMessage.cs @@ -7,12 +7,11 @@ using QSB.WorldSync; namespace QSB.ItemSync.Messages; -internal class SocketItemMessage : QSBMessage<(SocketMessageType Type, int SocketId, int ItemId)> +internal class SocketItemMessage : QSBWorldObjectMessage { - public SocketItemMessage(SocketMessageType type, OWItemSocket socket, OWItem item) : base(( + public SocketItemMessage(SocketMessageType type, OWItemSocket socket) : base(( type, - socket ? socket.GetWorldObject().ObjectId : -1, - item ? item.GetWorldObject().ObjectId : -1 + socket ? socket.GetWorldObject().ObjectId : -1 )) { } public override bool ShouldReceive => QSBWorldSync.AllObjectsReady; @@ -24,12 +23,11 @@ internal class SocketItemMessage : QSBMessage<(SocketMessageType Type, int Socke case SocketMessageType.Socket: { var qsbItemSocket = Data.SocketId.GetWorldObject(); - var qsbItem = Data.ItemId.GetWorldObject(); - qsbItemSocket.PlaceIntoSocket(qsbItem); - qsbItem.ItemState.HasBeenInteractedWith = true; - qsbItem.ItemState.State = ItemStateType.Socketed; - qsbItem.ItemState.Socket = qsbItemSocket.AttachedObject; + qsbItemSocket.PlaceIntoSocket(WorldObject); + WorldObject.ItemState.HasBeenInteractedWith = true; + WorldObject.ItemState.State = ItemStateType.Socketed; + WorldObject.ItemState.Socket = qsbItemSocket.AttachedObject; var player = QSBPlayerManager.GetPlayer(From); player.HeldItem = null; @@ -39,7 +37,6 @@ internal class SocketItemMessage : QSBMessage<(SocketMessageType Type, int Socke case SocketMessageType.StartUnsocket: { var qsbItemSocket = Data.SocketId.GetWorldObject(); - var qsbItem = Data.ItemId.GetWorldObject(); if (!qsbItemSocket.IsSocketOccupied()) { @@ -47,19 +44,17 @@ internal class SocketItemMessage : QSBMessage<(SocketMessageType Type, int Socke return; } - qsbItem.StoreLocation(); + WorldObject.StoreLocation(); var player = QSBPlayerManager.GetPlayer(From); - player.HeldItem = qsbItem; + player.HeldItem = WorldObject; qsbItemSocket.RemoveFromSocket(); return; } case SocketMessageType.CompleteUnsocket: { - var qsbItem = Data.ItemId.GetWorldObject(); - - qsbItem.OnCompleteUnsocket(); + WorldObject.OnCompleteUnsocket(); return; } } diff --git a/QSB/ItemSync/Patches/ItemToolPatches.cs b/QSB/ItemSync/Patches/ItemToolPatches.cs index 56acc639..e8730cd0 100644 --- a/QSB/ItemSync/Patches/ItemToolPatches.cs +++ b/QSB/ItemSync/Patches/ItemToolPatches.cs @@ -35,7 +35,7 @@ internal class ItemToolPatches : QSBPatch var qsbItem = item.GetWorldObject(); qsbItem.ItemState.State = ItemStateType.Socketed; qsbItem.ItemState.Socket = socket; - new SocketItemMessage(SocketMessageType.Socket, socket, item).Send(); + qsbItem.SendMessage(new SocketItemMessage(SocketMessageType.Socket, socket)); } [HarmonyPrefix] @@ -46,7 +46,7 @@ internal class ItemToolPatches : QSBPatch var qsbItem = item.GetWorldObject(); qsbItem.ItemState.HasBeenInteractedWith = true; QSBPlayerManager.LocalPlayer.HeldItem = qsbItem; - new SocketItemMessage(SocketMessageType.StartUnsocket, socket, item).Send(); + qsbItem.SendMessage(new SocketItemMessage(SocketMessageType.StartUnsocket, socket)); } [HarmonyPrefix] @@ -54,7 +54,8 @@ internal class ItemToolPatches : QSBPatch public static void CompleteUnsocketItem(ItemTool __instance) { var item = __instance._heldItem; - new SocketItemMessage(SocketMessageType.CompleteUnsocket, null, item).Send(); + var qsbItem = item.GetWorldObject(); + qsbItem.SendMessage(new SocketItemMessage(SocketMessageType.CompleteUnsocket, null)); } [HarmonyPrefix] diff --git a/QSB/ItemSync/WorldObjects/Items/QSBItem.cs b/QSB/ItemSync/WorldObjects/Items/QSBItem.cs index d7e57e70..f29118f1 100644 --- a/QSB/ItemSync/WorldObjects/Items/QSBItem.cs +++ b/QSB/ItemSync/WorldObjects/Items/QSBItem.cs @@ -97,7 +97,7 @@ public class QSBItem : WorldObject, IQSBItem ((IQSBItem)this).SendMessage(new MoveToCarryMessage(ItemState.HoldingPlayer.PlayerId)); break; case ItemStateType.Socketed: - new SocketItemMessage(SocketMessageType.Socket, ItemState.Socket, AttachedObject).Send(); + ((IQSBItem)this).SendMessage(new SocketItemMessage(SocketMessageType.Socket, ItemState.Socket)); break; case ItemStateType.OnGround: ((IQSBItem)this).SendMessage(