diff --git a/QSB/ItemSync/ItemState.cs b/QSB/ItemSync/ItemState.cs index c01f4880..55e90080 100644 --- a/QSB/ItemSync/ItemState.cs +++ b/QSB/ItemSync/ItemState.cs @@ -6,6 +6,7 @@ namespace QSB.ItemSync; public class ItemState { public ItemStateType State; + public bool HasBeenInteractedWith; // on ground public Transform Parent; diff --git a/QSB/ItemSync/Messages/DropItemMessage.cs b/QSB/ItemSync/Messages/DropItemMessage.cs index 66e0eb7b..bf550fef 100644 --- a/QSB/ItemSync/Messages/DropItemMessage.cs +++ b/QSB/ItemSync/Messages/DropItemMessage.cs @@ -58,7 +58,7 @@ internal class DropItemMessage : QSBWorldObjectMessage().AttachedObject : null; WorldObject.DropItem(worldPos, worldNormal, parent, sector, customDropTarget); - WorldObject.HasBeenPickedUp = true; + WorldObject.ItemState.HasBeenInteractedWith = true; WorldObject.ItemState.State = ItemStateType.OnGround; WorldObject.ItemState.LocalPosition = Data.localPosition; WorldObject.ItemState.Parent = parent; diff --git a/QSB/ItemSync/Messages/MoveToCarryMessage.cs b/QSB/ItemSync/Messages/MoveToCarryMessage.cs index 6a00ad28..225d1df4 100644 --- a/QSB/ItemSync/Messages/MoveToCarryMessage.cs +++ b/QSB/ItemSync/Messages/MoveToCarryMessage.cs @@ -32,7 +32,7 @@ internal class MoveToCarryMessage : QSBWorldObjectMessage }; WorldObject.PickUpItem(itemSocket); - WorldObject.HasBeenPickedUp = true; + WorldObject.ItemState.HasBeenInteractedWith = true; WorldObject.ItemState.State = ItemStateType.Held; WorldObject.ItemState.HoldingPlayer = player; diff --git a/QSB/ItemSync/Messages/SocketItemMessage.cs b/QSB/ItemSync/Messages/SocketItemMessage.cs index eec8d73e..3b824ee9 100644 --- a/QSB/ItemSync/Messages/SocketItemMessage.cs +++ b/QSB/ItemSync/Messages/SocketItemMessage.cs @@ -27,7 +27,7 @@ internal class SocketItemMessage : QSBMessage<(SocketMessageType Type, int Socke var qsbItem = Data.ItemId.GetWorldObject(); qsbItemSocket.PlaceIntoSocket(qsbItem); - qsbItem.HasBeenPickedUp = true; + qsbItem.ItemState.HasBeenInteractedWith = true; qsbItem.ItemState.State = ItemStateType.Socketed; qsbItem.ItemState.Socket = qsbItemSocket.AttachedObject; diff --git a/QSB/ItemSync/Patches/ItemToolPatches.cs b/QSB/ItemSync/Patches/ItemToolPatches.cs index a70a7891..56acc639 100644 --- a/QSB/ItemSync/Patches/ItemToolPatches.cs +++ b/QSB/ItemSync/Patches/ItemToolPatches.cs @@ -20,7 +20,7 @@ internal class ItemToolPatches : QSBPatch { var qsbItem = item.GetWorldObject(); QSBPlayerManager.LocalPlayer.HeldItem = qsbItem; - qsbItem.HasBeenPickedUp = true; + qsbItem.ItemState.HasBeenInteractedWith = true; qsbItem.ItemState.State = ItemStateType.Held; qsbItem.ItemState.HoldingPlayer = QSBPlayerManager.LocalPlayer; qsbItem.SendMessage(new MoveToCarryMessage(QSBPlayerManager.LocalPlayer.PlayerId)); @@ -44,7 +44,7 @@ internal class ItemToolPatches : QSBPatch { var item = socket.GetSocketedItem(); var qsbItem = item.GetWorldObject(); - qsbItem.HasBeenPickedUp = true; + qsbItem.ItemState.HasBeenInteractedWith = true; QSBPlayerManager.LocalPlayer.HeldItem = qsbItem; new SocketItemMessage(SocketMessageType.StartUnsocket, socket, item).Send(); } diff --git a/QSB/ItemSync/WorldObjects/Items/IQSBItem.cs b/QSB/ItemSync/WorldObjects/Items/IQSBItem.cs index 9f039c91..7162b010 100644 --- a/QSB/ItemSync/WorldObjects/Items/IQSBItem.cs +++ b/QSB/ItemSync/WorldObjects/Items/IQSBItem.cs @@ -5,7 +5,6 @@ namespace QSB.ItemSync.WorldObjects.Items; public interface IQSBItem : IWorldObject { - bool HasBeenPickedUp { get; set; } ItemState ItemState { get; } ItemType GetItemType(); diff --git a/QSB/ItemSync/WorldObjects/Items/QSBItem.cs b/QSB/ItemSync/WorldObjects/Items/QSBItem.cs index b6977d02..144563af 100644 --- a/QSB/ItemSync/WorldObjects/Items/QSBItem.cs +++ b/QSB/ItemSync/WorldObjects/Items/QSBItem.cs @@ -14,7 +14,6 @@ namespace QSB.ItemSync.WorldObjects.Items; public class QSBItem : WorldObject, IQSBItem where T : OWItem { - public bool HasBeenPickedUp { get; set; } public ItemState ItemState { get; } = new(); private Transform _lastParent; @@ -87,7 +86,7 @@ public class QSBItem : WorldObject, IQSBItem public override void SendInitialState(uint to) { - if (!HasBeenPickedUp) + if (!ItemState.HasBeenInteractedWith) { return; }