mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-03-11 10:14:17 +00:00
make SocketItemMessage a QSBWorldObjectMessage
This commit is contained in:
parent
93f66df201
commit
027ff0becc
@ -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<IQSBItem, (SocketMessageType Type, int SocketId)>
|
||||
{
|
||||
public SocketItemMessage(SocketMessageType type, OWItemSocket socket, OWItem item) : base((
|
||||
public SocketItemMessage(SocketMessageType type, OWItemSocket socket) : base((
|
||||
type,
|
||||
socket ? socket.GetWorldObject<QSBItemSocket>().ObjectId : -1,
|
||||
item ? item.GetWorldObject<IQSBItem>().ObjectId : -1
|
||||
socket ? socket.GetWorldObject<QSBItemSocket>().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<QSBItemSocket>();
|
||||
var qsbItem = Data.ItemId.GetWorldObject<IQSBItem>();
|
||||
|
||||
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<QSBItemSocket>();
|
||||
var qsbItem = Data.ItemId.GetWorldObject<IQSBItem>();
|
||||
|
||||
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<IQSBItem>();
|
||||
|
||||
qsbItem.OnCompleteUnsocket();
|
||||
WorldObject.OnCompleteUnsocket();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ internal class ItemToolPatches : QSBPatch
|
||||
var qsbItem = item.GetWorldObject<IQSBItem>();
|
||||
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<IQSBItem>();
|
||||
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<IQSBItem>();
|
||||
qsbItem.SendMessage(new SocketItemMessage(SocketMessageType.CompleteUnsocket, null));
|
||||
}
|
||||
|
||||
[HarmonyPrefix]
|
||||
|
@ -97,7 +97,7 @@ public class QSBItem<T> : WorldObject<T>, 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(
|
||||
|
Loading…
x
Reference in New Issue
Block a user