mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-09 18:40:36 +00:00
simplify more messages
This commit is contained in:
parent
d1f2b2815d
commit
171f83c835
@ -7,32 +7,18 @@ namespace QSB.AuthoritySync
|
||||
/// <summary>
|
||||
/// always sent to host
|
||||
/// </summary>
|
||||
public class AuthQueueMessage : QSBMessage<AuthQueueAction>
|
||||
public class AuthQueueMessage : QSBMessage<AuthQueueAction, uint>
|
||||
{
|
||||
private uint NetId;
|
||||
|
||||
public AuthQueueMessage(uint netId, AuthQueueAction action)
|
||||
{
|
||||
To = 0;
|
||||
NetId = netId;
|
||||
Value = action;
|
||||
}
|
||||
|
||||
public override void Serialize(NetworkWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(NetId);
|
||||
}
|
||||
|
||||
public override void Deserialize(NetworkReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
NetId = reader.ReadUInt();
|
||||
Value1 = action;
|
||||
Value2 = netId;
|
||||
}
|
||||
|
||||
public override bool ShouldReceive => QSBWorldSync.AllObjectsReady;
|
||||
public override void OnReceiveLocal() => OnReceiveRemote();
|
||||
public override void OnReceiveRemote() => NetworkServer.spawned[NetId].ServerUpdateAuthQueue(From, Value);
|
||||
public override void OnReceiveRemote() => NetworkServer.spawned[Value2].ServerUpdateAuthQueue(From, Value1);
|
||||
}
|
||||
|
||||
public enum AuthQueueAction
|
||||
|
@ -7,46 +7,29 @@ using UnityEngine;
|
||||
|
||||
namespace QSB.ConversationSync.Messages
|
||||
{
|
||||
public class ConversationMessage : QSBMessage<ConversationType>
|
||||
public class ConversationMessage : QSBMessage<ConversationType, int, string>
|
||||
{
|
||||
private int Id;
|
||||
private string Message;
|
||||
|
||||
public ConversationMessage(ConversationType type, int id, string message = "")
|
||||
{
|
||||
Value = type;
|
||||
Id = id;
|
||||
Message = message;
|
||||
}
|
||||
|
||||
public override void Serialize(NetworkWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(Id);
|
||||
writer.Write(Message);
|
||||
}
|
||||
|
||||
public override void Deserialize(NetworkReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
Id = reader.Read<int>();
|
||||
Message = reader.ReadString();
|
||||
Value1 = type;
|
||||
Value2 = id;
|
||||
Value3 = message;
|
||||
}
|
||||
|
||||
public override bool ShouldReceive => QSBWorldSync.AllObjectsReady;
|
||||
|
||||
public override void OnReceiveRemote()
|
||||
{
|
||||
switch (Value)
|
||||
switch (Value1)
|
||||
{
|
||||
case ConversationType.Character:
|
||||
var translated = TextTranslation.Translate(Message).Trim();
|
||||
var translated = TextTranslation.Translate(Value3).Trim();
|
||||
translated = Regex.Replace(translated, @"<[Pp]ause=?\d*\.?\d*\s?\/?>", "");
|
||||
ConversationManager.Instance.DisplayCharacterConversationBox(Id, translated);
|
||||
ConversationManager.Instance.DisplayCharacterConversationBox(Value2, translated);
|
||||
break;
|
||||
|
||||
case ConversationType.Player:
|
||||
ConversationManager.Instance.DisplayPlayerConversationBox((uint)Id, Message);
|
||||
ConversationManager.Instance.DisplayPlayerConversationBox((uint)Value2, Value3);
|
||||
break;
|
||||
|
||||
case ConversationType.CloseCharacter:
|
||||
@ -55,12 +38,12 @@ namespace QSB.ConversationSync.Messages
|
||||
break;
|
||||
}
|
||||
|
||||
var tree = QSBWorldSync.OldDialogueTrees[Id];
|
||||
var tree = QSBWorldSync.OldDialogueTrees[Value2];
|
||||
Object.Destroy(ConversationManager.Instance.BoxMappings[tree]);
|
||||
break;
|
||||
|
||||
case ConversationType.ClosePlayer:
|
||||
Object.Destroy(QSBPlayerManager.GetPlayer((uint)Id).CurrentDialogueBox);
|
||||
Object.Destroy(QSBPlayerManager.GetPlayer((uint)Value2).CurrentDialogueBox);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -7,43 +7,29 @@ using QSB.WorldSync;
|
||||
|
||||
namespace QSB.ConversationSync.Messages
|
||||
{
|
||||
public class ConversationStartEndMessage : QSBMessage<bool>
|
||||
public class ConversationStartEndMessage : QSBMessage<bool, int>
|
||||
{
|
||||
private int TreeId;
|
||||
|
||||
public ConversationStartEndMessage(int treeId, bool start)
|
||||
{
|
||||
TreeId = treeId;
|
||||
Value = start;
|
||||
}
|
||||
|
||||
public override void Serialize(NetworkWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(TreeId);
|
||||
}
|
||||
|
||||
public override void Deserialize(NetworkReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
TreeId = reader.Read<int>();
|
||||
Value2 = treeId;
|
||||
Value1 = start;
|
||||
}
|
||||
|
||||
public override bool ShouldReceive => QSBWorldSync.AllObjectsReady;
|
||||
|
||||
public override void OnReceiveRemote()
|
||||
{
|
||||
if (TreeId == -1)
|
||||
if (Value2 == -1)
|
||||
{
|
||||
DebugLog.ToConsole("Warning - Received conv. start/end event with char id -1.", MessageType.Warning);
|
||||
return;
|
||||
}
|
||||
|
||||
var dialogueTree = QSBWorldSync.OldDialogueTrees[TreeId];
|
||||
var dialogueTree = QSBWorldSync.OldDialogueTrees[Value2];
|
||||
|
||||
if (Value)
|
||||
if (Value1)
|
||||
{
|
||||
StartConversation(From, TreeId, dialogueTree);
|
||||
StartConversation(From, Value2, dialogueTree);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -4,61 +4,44 @@ using QSB.WorldSync;
|
||||
|
||||
namespace QSB.ConversationSync.Messages
|
||||
{
|
||||
public class DialogueConditionMessage : QSBMessage
|
||||
public class DialogueConditionMessage : QSBMessage<string, bool>
|
||||
{
|
||||
private string ConditionName;
|
||||
private bool ConditionState;
|
||||
|
||||
public DialogueConditionMessage(string name, bool state)
|
||||
{
|
||||
ConditionName = name;
|
||||
ConditionState = state;
|
||||
}
|
||||
|
||||
public override void Serialize(NetworkWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(ConditionName);
|
||||
writer.Write(ConditionState);
|
||||
}
|
||||
|
||||
public override void Deserialize(NetworkReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
ConditionName = reader.ReadString();
|
||||
ConditionState = reader.Read<bool>();
|
||||
Value1 = name;
|
||||
Value2 = state;
|
||||
}
|
||||
|
||||
public override void OnReceiveRemote()
|
||||
{
|
||||
if (QSBCore.IsHost)
|
||||
{
|
||||
QSBWorldSync.SetDialogueCondition(ConditionName, ConditionState);
|
||||
QSBWorldSync.SetDialogueCondition(Value1, Value2);
|
||||
}
|
||||
|
||||
var sharedInstance = DialogueConditionManager.SharedInstance;
|
||||
|
||||
var flag = true;
|
||||
if (sharedInstance.ConditionExists(ConditionName))
|
||||
if (sharedInstance.ConditionExists(Value1))
|
||||
{
|
||||
if (sharedInstance._dictConditions[ConditionName] == ConditionState)
|
||||
if (sharedInstance._dictConditions[Value1] == Value2)
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
|
||||
sharedInstance._dictConditions[ConditionName] = ConditionState;
|
||||
sharedInstance._dictConditions[Value1] = Value2;
|
||||
}
|
||||
else
|
||||
{
|
||||
sharedInstance.AddCondition(ConditionName, ConditionState);
|
||||
sharedInstance.AddCondition(Value1, Value2);
|
||||
}
|
||||
|
||||
if (flag)
|
||||
{
|
||||
GlobalMessenger<string, bool>.FireEvent("DialogueConditionChanged", ConditionName, ConditionState);
|
||||
GlobalMessenger<string, bool>.FireEvent("DialogueConditionChanged", Value1, Value2);
|
||||
}
|
||||
|
||||
if (ConditionName == "LAUNCH_CODES_GIVEN")
|
||||
if (Value1 == "LAUNCH_CODES_GIVEN")
|
||||
{
|
||||
PlayerData.LearnLaunchCodes();
|
||||
}
|
||||
@ -68,7 +51,7 @@ namespace QSB.ConversationSync.Messages
|
||||
{
|
||||
if (QSBCore.IsHost)
|
||||
{
|
||||
QSBWorldSync.SetDialogueCondition(ConditionName, ConditionState);
|
||||
QSBWorldSync.SetDialogueCondition(Value1, Value2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,50 +4,33 @@ using QSB.WorldSync;
|
||||
|
||||
namespace QSB.ConversationSync.Messages
|
||||
{
|
||||
internal class PersistentConditionMessage : QSBMessage
|
||||
internal class PersistentConditionMessage : QSBMessage<string, bool>
|
||||
{
|
||||
private string _conditionName;
|
||||
private bool _conditionState;
|
||||
|
||||
public PersistentConditionMessage(string condition, bool state)
|
||||
{
|
||||
_conditionName = condition;
|
||||
_conditionState = state;
|
||||
}
|
||||
|
||||
public override void Serialize(NetworkWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(_conditionName);
|
||||
writer.Write(_conditionState);
|
||||
}
|
||||
|
||||
public override void Deserialize(NetworkReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
_conditionName = reader.ReadString();
|
||||
_conditionState = reader.ReadBool();
|
||||
Value1 = condition;
|
||||
Value2 = state;
|
||||
}
|
||||
|
||||
public override void OnReceiveRemote()
|
||||
{
|
||||
if (QSBCore.IsHost)
|
||||
{
|
||||
QSBWorldSync.SetPersistentCondition(_conditionName, _conditionState);
|
||||
QSBWorldSync.SetPersistentCondition(Value1, Value2);
|
||||
}
|
||||
|
||||
var gameSave = PlayerData._currentGameSave;
|
||||
if (gameSave.dictConditions.ContainsKey(_conditionName))
|
||||
if (gameSave.dictConditions.ContainsKey(Value1))
|
||||
{
|
||||
gameSave.dictConditions[_conditionName] = _conditionState;
|
||||
gameSave.dictConditions[Value1] = Value2;
|
||||
}
|
||||
else
|
||||
{
|
||||
gameSave.dictConditions.Add(_conditionName, _conditionState);
|
||||
gameSave.dictConditions.Add(Value1, Value2);
|
||||
}
|
||||
|
||||
if (_conditionName
|
||||
is not "LAUNCH_CODES_GIVEN"
|
||||
if (Value1
|
||||
is not "LAUNCH_CODES_GIVEN"
|
||||
and not "PLAYER_ENTERED_TIMELOOPCORE"
|
||||
and not "PROBE_ENTERED_TIMELOOPCORE"
|
||||
and not "PLAYER_ENTERED_TIMELOOPCORE_MULTIPLE")
|
||||
@ -60,7 +43,7 @@ namespace QSB.ConversationSync.Messages
|
||||
{
|
||||
if (QSBCore.IsHost)
|
||||
{
|
||||
QSBWorldSync.SetPersistentCondition(_conditionName, _conditionState);
|
||||
QSBWorldSync.SetPersistentCondition(Value1, Value2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8,30 +8,13 @@ using QSB.WorldSync;
|
||||
|
||||
namespace QSB.ItemSync.Messages
|
||||
{
|
||||
internal class SocketItemMessage : QSBMessage<SocketMessageType>
|
||||
internal class SocketItemMessage : QSBMessage<SocketMessageType, int, int>
|
||||
{
|
||||
private int SocketId;
|
||||
private int ItemId;
|
||||
|
||||
public SocketItemMessage(SocketMessageType type, int socketId = -1, int itemId = -1)
|
||||
{
|
||||
Value = type;
|
||||
SocketId = socketId;
|
||||
ItemId = itemId;
|
||||
}
|
||||
|
||||
public override void Serialize(NetworkWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(SocketId);
|
||||
writer.Write(ItemId);
|
||||
}
|
||||
|
||||
public override void Deserialize(NetworkReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
SocketId = reader.Read<int>();
|
||||
ItemId = reader.Read<int>();
|
||||
Value1 = type;
|
||||
Value2 = socketId;
|
||||
Value3 = itemId;
|
||||
}
|
||||
|
||||
public override bool ShouldReceive => QSBWorldSync.AllObjectsReady;
|
||||
@ -46,16 +29,16 @@ namespace QSB.ItemSync.Messages
|
||||
DebugLog.DebugWrite("DROP HELD ITEM");
|
||||
player.AnimationSync.VisibleAnimator.SetTrigger("DropHeldItem");
|
||||
|
||||
switch (Value)
|
||||
switch (Value1)
|
||||
{
|
||||
case SocketMessageType.Socket:
|
||||
socketWorldObject = SocketId.GetWorldObject<QSBItemSocket>();
|
||||
itemWorldObject = ItemId.GetWorldObject<IQSBItem>();
|
||||
socketWorldObject = Value2.GetWorldObject<QSBItemSocket>();
|
||||
itemWorldObject = Value3.GetWorldObject<IQSBItem>();
|
||||
|
||||
socketWorldObject.PlaceIntoSocket(itemWorldObject);
|
||||
return;
|
||||
case SocketMessageType.StartUnsocket:
|
||||
socketWorldObject = SocketId.GetWorldObject<QSBItemSocket>();
|
||||
socketWorldObject = Value2.GetWorldObject<QSBItemSocket>();
|
||||
|
||||
if (!socketWorldObject.IsSocketOccupied())
|
||||
{
|
||||
@ -66,7 +49,7 @@ namespace QSB.ItemSync.Messages
|
||||
socketWorldObject.RemoveFromSocket();
|
||||
return;
|
||||
case SocketMessageType.CompleteUnsocket:
|
||||
itemWorldObject = ItemId.GetWorldObject<IQSBItem>();
|
||||
itemWorldObject = Value3.GetWorldObject<IQSBItem>();
|
||||
|
||||
itemWorldObject.OnCompleteUnsocket();
|
||||
return;
|
||||
|
@ -81,4 +81,27 @@ namespace QSB.Messaging
|
||||
Value2 = reader.Read<U>();
|
||||
}
|
||||
}
|
||||
|
||||
public abstract class QSBMessage<T, U, V> : QSBMessage
|
||||
{
|
||||
protected T Value1;
|
||||
protected U Value2;
|
||||
protected V Value3;
|
||||
|
||||
public override void Serialize(NetworkWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(Value1);
|
||||
writer.Write(Value2);
|
||||
writer.Write(Value3);
|
||||
}
|
||||
|
||||
public override void Deserialize(NetworkReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
Value1 = reader.Read<T>();
|
||||
Value2 = reader.Read<U>();
|
||||
Value3 = reader.Read<V>();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user