45 lines
1.3 KiB
C#
Raw Normal View History

2020-07-28 15:59:24 +02:00
using QSB.Messaging;
2020-08-09 09:37:32 +02:00
using QSB.TransformSync;
using QSB.Utility;
using UnityEngine.Networking;
namespace QSB.Events
{
2020-07-28 15:59:24 +02:00
public class GameState : NetworkBehaviour
{
public static GameState LocalInstance { get; private set; }
private MessageHandler<FullStateMessage> _messageHandler;
private void Awake()
{
2020-08-09 08:58:54 +02:00
_messageHandler = new MessageHandler<FullStateMessage>(MessageType.FullState);
_messageHandler.OnClientReceiveMessage += OnClientReceiveMessage;
LocalInstance = this;
}
private void OnClientReceiveMessage(FullStateMessage message)
{
2020-08-09 09:37:32 +02:00
DebugLog.ToConsole($"Received game state id for {PlayerTransformSync.LocalInstance.netId.Value}");
PlayerRegistry.HandleFullStateMessage(message);
}
public void Send()
{
DebugLog.ToConsole("Sending game state to all players.");
2020-07-28 15:59:24 +02:00
foreach (var player in PlayerRegistry.PlayerList)
{
2020-07-28 15:59:24 +02:00
var message = new FullStateMessage
{
PlayerName = player.Name,
SenderId = player.NetId
};
_messageHandler.SendToAll(message);
DebugLog.ToConsole($"* Sent state for {player.NetId}");
}
}
}
}