change HasBeenPickedUp to HasBeenInteractedWith, move to itemstate

This commit is contained in:
Mister_Nebula 2022-07-25 17:20:02 +01:00
parent d2a48a7782
commit 68e166543e
7 changed files with 7 additions and 8 deletions

View File

@ -6,6 +6,7 @@ namespace QSB.ItemSync;
public class ItemState
{
public ItemStateType State;
public bool HasBeenInteractedWith;
// on ground
public Transform Parent;

View File

@ -58,7 +58,7 @@ internal class DropItemMessage : QSBWorldObjectMessage<IQSBItem,
var sector = Data.sectorId != -1 ? Data.sectorId.GetWorldObject<QSBSector>().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;

View File

@ -32,7 +32,7 @@ internal class MoveToCarryMessage : QSBWorldObjectMessage<IQSBItem, uint>
};
WorldObject.PickUpItem(itemSocket);
WorldObject.HasBeenPickedUp = true;
WorldObject.ItemState.HasBeenInteractedWith = true;
WorldObject.ItemState.State = ItemStateType.Held;
WorldObject.ItemState.HoldingPlayer = player;

View File

@ -27,7 +27,7 @@ internal class SocketItemMessage : QSBMessage<(SocketMessageType Type, int Socke
var qsbItem = Data.ItemId.GetWorldObject<IQSBItem>();
qsbItemSocket.PlaceIntoSocket(qsbItem);
qsbItem.HasBeenPickedUp = true;
qsbItem.ItemState.HasBeenInteractedWith = true;
qsbItem.ItemState.State = ItemStateType.Socketed;
qsbItem.ItemState.Socket = qsbItemSocket.AttachedObject;

View File

@ -20,7 +20,7 @@ internal class ItemToolPatches : QSBPatch
{
var qsbItem = item.GetWorldObject<IQSBItem>();
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<IQSBItem>();
qsbItem.HasBeenPickedUp = true;
qsbItem.ItemState.HasBeenInteractedWith = true;
QSBPlayerManager.LocalPlayer.HeldItem = qsbItem;
new SocketItemMessage(SocketMessageType.StartUnsocket, socket, item).Send();
}

View File

@ -5,7 +5,6 @@ namespace QSB.ItemSync.WorldObjects.Items;
public interface IQSBItem : IWorldObject
{
bool HasBeenPickedUp { get; set; }
ItemState ItemState { get; }
ItemType GetItemType();

View File

@ -14,7 +14,6 @@ namespace QSB.ItemSync.WorldObjects.Items;
public class QSBItem<T> : WorldObject<T>, IQSBItem
where T : OWItem
{
public bool HasBeenPickedUp { get; set; }
public ItemState ItemState { get; } = new();
private Transform _lastParent;
@ -87,7 +86,7 @@ public class QSBItem<T> : WorldObject<T>, IQSBItem
public override void SendInitialState(uint to)
{
if (!HasBeenPickedUp)
if (!ItemState.HasBeenInteractedWith)
{
return;
}