mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-03-12 13:13:32 +00:00
RemoteDialogueResyncMessage
This commit is contained in:
parent
2c10e12304
commit
f0eb9712aa
51
QSB/ConversationSync/Messages/RemoteDialogueResyncMessage.cs
Normal file
51
QSB/ConversationSync/Messages/RemoteDialogueResyncMessage.cs
Normal file
@ -0,0 +1,51 @@
|
||||
using Mirror;
|
||||
using QSB.ConversationSync.WorldObjects;
|
||||
using QSB.Messaging;
|
||||
using System.Linq;
|
||||
|
||||
namespace QSB.ConversationSync.Messages
|
||||
{
|
||||
internal class RemoteDialogueResyncMessage : QSBWorldObjectMessage<QSBRemoteDialogueTrigger>
|
||||
{
|
||||
private bool _inRemoteDialogue;
|
||||
private bool[] _activatedDialogues;
|
||||
private int _dialogueIndex;
|
||||
private bool _colliderEnabled;
|
||||
|
||||
public RemoteDialogueResyncMessage(RemoteDialogueTrigger trigger)
|
||||
{
|
||||
_inRemoteDialogue = trigger._inRemoteDialogue;
|
||||
_activatedDialogues = trigger._activatedDialogues;
|
||||
_dialogueIndex = trigger._listDialogues
|
||||
.IndexOf(x => x.dialogue == trigger._activeRemoteDialogue);
|
||||
_colliderEnabled = trigger._collider.enabled;
|
||||
}
|
||||
|
||||
public override void Serialize(NetworkWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(_inRemoteDialogue);
|
||||
writer.Write(_activatedDialogues);
|
||||
writer.Write(_dialogueIndex);
|
||||
writer.Write(_colliderEnabled);
|
||||
}
|
||||
|
||||
public override void Deserialize(NetworkReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
_inRemoteDialogue = reader.Read<bool>();
|
||||
_activatedDialogues = reader.Read<bool[]>();
|
||||
_dialogueIndex = reader.Read<int>();
|
||||
_colliderEnabled = reader.Read<bool>();
|
||||
}
|
||||
|
||||
public override void OnReceiveRemote()
|
||||
{
|
||||
var trigger = WorldObject.AttachedObject;
|
||||
trigger._activatedDialogues = _activatedDialogues;
|
||||
trigger._inRemoteDialogue = _inRemoteDialogue;
|
||||
trigger._activeRemoteDialogue = trigger._listDialogues.ElementAtOrDefault(_dialogueIndex).dialogue;
|
||||
trigger._collider.enabled = _colliderEnabled;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,4 +1,6 @@
|
||||
using QSB.WorldSync;
|
||||
using QSB.ConversationSync.Messages;
|
||||
using QSB.Messaging;
|
||||
using QSB.WorldSync;
|
||||
|
||||
namespace QSB.ConversationSync.WorldObjects
|
||||
{
|
||||
@ -6,7 +8,10 @@ namespace QSB.ConversationSync.WorldObjects
|
||||
{
|
||||
public override void SendResyncInfo(uint to)
|
||||
{
|
||||
// todo SendResyncInfo
|
||||
if (QSBCore.IsHost)
|
||||
{
|
||||
this.SendMessage(new RemoteDialogueResyncMessage(AttachedObject));
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoteEnterDialogue(int dialogueIndex)
|
||||
|
Loading…
x
Reference in New Issue
Block a user