mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-22 12:39:51 +00:00
fixing fixing fixing
This commit is contained in:
parent
90d85dcba1
commit
61b3efe619
@ -127,7 +127,8 @@ namespace QSB.Animation
|
||||
{
|
||||
var message = new AnimTriggerMessage
|
||||
{
|
||||
SenderId = netId.Value,
|
||||
FromId = netId.Value,
|
||||
AboutId = netId.Value,
|
||||
TriggerId = (short)trigger,
|
||||
Value = value
|
||||
};
|
||||
@ -148,7 +149,7 @@ namespace QSB.Animation
|
||||
|
||||
private void OnClientReceiveMessage(AnimTriggerMessage message)
|
||||
{
|
||||
var animationSync = PlayerRegistry.GetAnimationSync(message.SenderId);
|
||||
var animationSync = PlayerRegistry.GetAnimationSync(message.AboutId);
|
||||
if (animationSync == null || animationSync == this)
|
||||
{
|
||||
return;
|
||||
|
@ -24,13 +24,13 @@ namespace QSB.Animation
|
||||
|
||||
private ToggleMessage CreateMessage(bool value) => new ToggleMessage
|
||||
{
|
||||
SenderId = LocalPlayerId,
|
||||
AboutId = LocalPlayerId,
|
||||
ToggleValue = value
|
||||
};
|
||||
|
||||
public override void OnReceiveRemote(ToggleMessage message)
|
||||
{
|
||||
var player = PlayerRegistry.GetPlayer(message.SenderId);
|
||||
var player = PlayerRegistry.GetPlayer(message.AboutId);
|
||||
player?.UpdateState(State.Suit, message.ToggleValue);
|
||||
}
|
||||
|
||||
|
@ -22,13 +22,13 @@ namespace QSB.DeathSync
|
||||
|
||||
private PlayerDeathMessage CreateMessage(DeathType type) => new PlayerDeathMessage
|
||||
{
|
||||
SenderId = LocalPlayerId,
|
||||
AboutId = LocalPlayerId,
|
||||
DeathType = type
|
||||
};
|
||||
|
||||
public override void OnReceiveRemote(PlayerDeathMessage message)
|
||||
{
|
||||
var playerName = PlayerRegistry.GetPlayer(message.SenderId).Name;
|
||||
var playerName = PlayerRegistry.GetPlayer(message.AboutId).Name;
|
||||
var deathMessage = Necronomicon.GetPhrase(message.DeathType);
|
||||
DebugLog.ToAll(string.Format(deathMessage, playerName));
|
||||
}
|
||||
|
@ -22,7 +22,6 @@ namespace QSB.ElevatorSync
|
||||
|
||||
private ElevatorMessage CreateMessage(int id, ElevatorDirection direction) => new ElevatorMessage
|
||||
{
|
||||
SenderId = PlayerRegistry.LocalPlayer.NetId,
|
||||
Direction = direction,
|
||||
ObjectId = id
|
||||
};
|
||||
|
@ -49,7 +49,6 @@ namespace QSB.Events
|
||||
Ready = false;
|
||||
foreach (var item in _eventList)
|
||||
{
|
||||
DebugLog.ToConsole("Closing listener for " + item.GetType().Name);
|
||||
item.Invoke("CloseListener");
|
||||
}
|
||||
_eventList = new List<object>();
|
||||
|
@ -15,27 +15,21 @@ namespace QSB.Events
|
||||
|
||||
public override void CloseListener()
|
||||
{
|
||||
DebugLog.ToConsole("Close listener for join event");
|
||||
GlobalMessenger<string>.RemoveListener(EventNames.QSBPlayerJoin, Handler);
|
||||
}
|
||||
|
||||
private void Handler(string name) => StartSendEvent(CreateMessage(name));
|
||||
|
||||
private void StartSendEvent(PlayerJoinMessage message)
|
||||
{
|
||||
DebugLog.ToConsole("Got fire event for player join, sending message");
|
||||
SendEvent(message);
|
||||
}
|
||||
private void Handler(string name) => SendEvent(CreateMessage(name));
|
||||
|
||||
private PlayerJoinMessage CreateMessage(string name) => new PlayerJoinMessage
|
||||
{
|
||||
SenderId = PlayerTransformSync.LocalInstance.netId.Value,
|
||||
FromId = PlayerTransformSync.LocalInstance.netId.Value,
|
||||
AboutId = PlayerTransformSync.LocalInstance.netId.Value,
|
||||
PlayerName = name
|
||||
};
|
||||
|
||||
public override void OnReceiveRemote(PlayerJoinMessage message)
|
||||
{
|
||||
var player = PlayerRegistry.CreatePlayer(message.SenderId);
|
||||
var player = PlayerRegistry.CreatePlayer(message.AboutId);
|
||||
player.Name = message.PlayerName;
|
||||
var text = $"{player.Name} joined!";
|
||||
DebugLog.ToAll(OWML.Common.MessageType.Info, text);
|
||||
@ -43,7 +37,6 @@ namespace QSB.Events
|
||||
|
||||
public override void OnReceiveLocal(PlayerJoinMessage message)
|
||||
{
|
||||
DebugLog.ToConsole($"OnReceiveLocal player join event, from {message.SenderId}");
|
||||
var player = PlayerRegistry.CreatePlayer(PlayerTransformSync.LocalInstance.netId.Value);
|
||||
player.Name = message.PlayerName;
|
||||
var text = $"Connected to server as {player.Name}.";
|
||||
|
@ -24,23 +24,22 @@ namespace QSB.Events
|
||||
|
||||
private PlayerLeaveMessage CreateMessage(uint id, uint[] objects) => new PlayerLeaveMessage
|
||||
{
|
||||
SenderId = id,
|
||||
FromId = LocalPlayerId,
|
||||
AboutId = id,
|
||||
ObjectIds = objects
|
||||
};
|
||||
|
||||
public override void OnReceiveRemote(PlayerLeaveMessage message)
|
||||
{
|
||||
var playerName = PlayerRegistry.GetPlayer(message.SenderId).Name;
|
||||
DebugLog.ToAll(playerName, "disconnected.");
|
||||
PlayerRegistry.RemovePlayer(message.SenderId);
|
||||
var playerName = PlayerRegistry.GetPlayer(message.AboutId).Name;
|
||||
DebugLog.ToConsole($"{playerName} disconnected.", OWML.Common.MessageType.Info);
|
||||
PlayerRegistry.RemovePlayer(message.AboutId);
|
||||
foreach (var objectId in message.ObjectIds)
|
||||
{
|
||||
DestroyObject(objectId);
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnReceiveLocal(PlayerLeaveMessage message) => OnReceiveRemote(message);
|
||||
|
||||
private void DestroyObject(uint objectId)
|
||||
{
|
||||
var component = Object.FindObjectsOfType<NetworkBehaviour>()
|
||||
@ -50,9 +49,14 @@ namespace QSB.Events
|
||||
return;
|
||||
}
|
||||
var transformSync = component.GetComponent<TransformSync.TransformSync>();
|
||||
|
||||
if (transformSync != null)
|
||||
{
|
||||
Object.Destroy(transformSync.SyncedTransform.gameObject);
|
||||
PlayerRegistry.TransformSyncs.Remove(transformSync);
|
||||
if (transformSync.SyncedTransform != null)
|
||||
{
|
||||
Object.Destroy(transformSync.SyncedTransform.gameObject);
|
||||
}
|
||||
}
|
||||
Object.Destroy(component.gameObject);
|
||||
}
|
||||
|
@ -14,7 +14,6 @@ namespace QSB.Events
|
||||
|
||||
public override void CloseListener()
|
||||
{
|
||||
DebugLog.ToConsole("Close listener for ready event");
|
||||
GlobalMessenger<bool>.RemoveListener(EventNames.QSBPlayerReady, Handler);
|
||||
}
|
||||
|
||||
@ -22,13 +21,14 @@ namespace QSB.Events
|
||||
|
||||
private ToggleMessage CreateMessage(bool ready) => new ToggleMessage
|
||||
{
|
||||
SenderId = LocalPlayerId,
|
||||
FromId = LocalPlayerId,
|
||||
AboutId = LocalPlayerId,
|
||||
ToggleValue = ready
|
||||
};
|
||||
|
||||
public override void OnServerReceive(ToggleMessage message)
|
||||
{
|
||||
PlayerRegistry.GetPlayer(message.SenderId).IsReady = message.ToggleValue;
|
||||
PlayerRegistry.GetPlayer(message.AboutId).IsReady = message.ToggleValue;
|
||||
PlayerState.LocalInstance.Send();
|
||||
}
|
||||
}
|
||||
|
@ -21,11 +21,11 @@ namespace QSB.Events
|
||||
|
||||
private void OnClientReceiveMessage(PlayerStateMessage message)
|
||||
{
|
||||
if (message.SenderId == PlayerTransformSync.LocalInstance.netId.Value)
|
||||
if (message.FromId == PlayerTransformSync.LocalInstance.netId.Value)
|
||||
{
|
||||
return;
|
||||
}
|
||||
UnityHelper.Instance.RunWhen(() => PlayerRegistry.GetTransformSync(message.SenderId) != null,
|
||||
UnityHelper.Instance.RunWhen(() => PlayerRegistry.GetTransformSync(message.AboutId) != null,
|
||||
() => PlayerRegistry.HandleFullStateMessage(message));
|
||||
}
|
||||
|
||||
@ -35,7 +35,8 @@ namespace QSB.Events
|
||||
{
|
||||
var message = new PlayerStateMessage
|
||||
{
|
||||
SenderId = player.NetId,
|
||||
FromId = PlayerRegistry.LocalPlayerId,
|
||||
AboutId = player.NetId,
|
||||
PlayerName = player.Name,
|
||||
PlayerReady = player.IsReady,
|
||||
PlayerState = player.State
|
||||
|
@ -22,7 +22,7 @@ namespace QSB.Events
|
||||
|
||||
private PlayerMessage CreateMessage() => new PlayerMessage
|
||||
{
|
||||
SenderId = PlayerTransformSync.LocalInstance.netId.Value
|
||||
FromId = PlayerTransformSync.LocalInstance.netId.Value
|
||||
};
|
||||
|
||||
public override void OnServerReceive(PlayerMessage message)
|
||||
|
@ -1,6 +1,7 @@
|
||||
using QSB.Messaging;
|
||||
using QSB.TransformSync;
|
||||
using QSB.Utility;
|
||||
using UnityEngine.Networking;
|
||||
|
||||
namespace QSB.Events
|
||||
{
|
||||
@ -55,26 +56,22 @@ namespace QSB.Events
|
||||
/// <param name="message"></param>
|
||||
public virtual void OnServerReceive(T message)
|
||||
{
|
||||
DebugLog.ToConsole("server get message");
|
||||
_eventHandler.SendToAll(message);
|
||||
}
|
||||
|
||||
public void SendEvent(T message)
|
||||
{
|
||||
DebugLog.ToConsole("Starting wait to send event...");
|
||||
UnityHelper.Instance.RunWhen(() => PlayerTransformSync.LocalInstance != null, () => Send(message));
|
||||
}
|
||||
|
||||
private void Send(T message)
|
||||
{
|
||||
DebugLog.ToConsole("sending event!");
|
||||
_eventHandler.SendToServer(message);
|
||||
}
|
||||
|
||||
private void OnClientReceive(T message)
|
||||
{
|
||||
DebugLog.ToConsole("Got event!");
|
||||
if (PlayerRegistry.IsBelongingToLocalPlayer(message.SenderId))
|
||||
if (PlayerRegistry.IsBelongingToLocalPlayer(message.FromId))
|
||||
{
|
||||
OnReceiveLocal(message);
|
||||
return;
|
||||
|
@ -22,7 +22,7 @@ namespace QSB.GeyserSync
|
||||
|
||||
private GeyserMessage CreateMessage(int id, bool state) => new GeyserMessage
|
||||
{
|
||||
SenderId = PlayerRegistry.LocalPlayer.NetId,
|
||||
FromId = PlayerRegistry.LocalPlayer.NetId,
|
||||
ObjectId = id,
|
||||
State = state
|
||||
};
|
||||
|
@ -27,7 +27,6 @@ namespace QSB.Messaging
|
||||
|
||||
private void Init()
|
||||
{
|
||||
DebugLog.ToConsole($"Registering handler on server id {NetworkServer.serverHostId}");
|
||||
NetworkServer.RegisterHandler((short)_messageType, OnServerReceiveMessageHandler);
|
||||
NetworkManager.singleton.client.RegisterHandler((short)_messageType, OnClientReceiveMessageHandler);
|
||||
}
|
||||
|
@ -4,16 +4,19 @@ namespace QSB.Messaging
|
||||
{
|
||||
public class PlayerMessage : MessageBase
|
||||
{
|
||||
public uint SenderId { get; set; }
|
||||
public uint FromId { get; set; }
|
||||
public uint AboutId { get; set; }
|
||||
|
||||
public override void Deserialize(NetworkReader reader)
|
||||
{
|
||||
SenderId = reader.ReadUInt32();
|
||||
FromId = reader.ReadUInt32();
|
||||
AboutId = reader.ReadUInt32();
|
||||
}
|
||||
|
||||
public override void Serialize(NetworkWriter writer)
|
||||
{
|
||||
writer.Write(SenderId);
|
||||
writer.Write(FromId);
|
||||
writer.Write(AboutId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ using System.Linq;
|
||||
using QSB.TransformSync;
|
||||
using QSB.Animation;
|
||||
using QSB.Messaging;
|
||||
using QSB.Utility;
|
||||
|
||||
namespace QSB
|
||||
{
|
||||
@ -39,12 +40,13 @@ namespace QSB
|
||||
|
||||
public static void RemovePlayer(uint id)
|
||||
{
|
||||
DebugLog.ToConsole($"Removing player {id}");
|
||||
PlayerList.Remove(GetPlayer(id));
|
||||
}
|
||||
|
||||
public static void HandleFullStateMessage(PlayerStateMessage message)
|
||||
{
|
||||
var player = GetPlayer(message.SenderId) ?? CreatePlayer(message.SenderId);
|
||||
var player = GetPlayer(message.AboutId) ?? CreatePlayer(message.AboutId);
|
||||
player.Name = message.PlayerName;
|
||||
player.IsReady = message.PlayerReady;
|
||||
player.State = message.PlayerState;
|
||||
@ -57,11 +59,21 @@ namespace QSB
|
||||
|
||||
public static TransformSync.TransformSync GetTransformSync(uint id)
|
||||
{
|
||||
DebugLog.ToConsole($"Getting transform sync for id {id}");
|
||||
foreach (var item in TransformSyncs)
|
||||
{
|
||||
DebugLog.ToConsole($"{item.GetType().Name} : {item.netId.Value}");
|
||||
}
|
||||
if (TransformSyncs.FirstOrDefault(x => x != null && x.netId.Value == id) == default(TransformSync.TransformSync))
|
||||
{
|
||||
DebugLog.ToConsole($"* Couldn't find transformsync for id {id}!", OWML.Common.MessageType.Warning);
|
||||
}
|
||||
return TransformSyncs.FirstOrDefault(x => x != null && x.netId.Value == id);
|
||||
}
|
||||
|
||||
public static bool IsBelongingToLocalPlayer(uint id)
|
||||
{
|
||||
DebugLog.ToConsole($"LocalPlayerId : {LocalPlayerId}");
|
||||
return id == LocalPlayerId || GetTransformSync(id).PlayerId == LocalPlayerId;
|
||||
}
|
||||
|
||||
|
@ -14,6 +14,8 @@ namespace QSB
|
||||
public static IModHelper Helper;
|
||||
public static string DefaultServerIP;
|
||||
public static bool DebugMode;
|
||||
public static AssetBundle NetworkAssetBundle;
|
||||
private static GameObject GameObject;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
@ -23,6 +25,10 @@ namespace QSB
|
||||
private void Start()
|
||||
{
|
||||
Helper = ModHelper;
|
||||
GameObject = gameObject;
|
||||
|
||||
NetworkAssetBundle = Helper.Assets.LoadBundle("assets/network");
|
||||
QSB.Helper.HarmonyHelper.EmptyMethod<NetworkManagerHUD>("Update");
|
||||
|
||||
gameObject.AddComponent<DebugLog>();
|
||||
gameObject.AddComponent<QSBNetworkManager>();
|
||||
|
@ -11,6 +11,7 @@ using QSB.Utility;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.Networking;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace QSB
|
||||
{
|
||||
@ -54,7 +55,7 @@ namespace QSB
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_assetBundle = QSB.Helper.Assets.LoadBundle("assets/network");
|
||||
_assetBundle = QSB.NetworkAssetBundle;
|
||||
|
||||
playerPrefab = _assetBundle.LoadAsset<GameObject>("assets/networkplayer.prefab");
|
||||
playerPrefab.AddComponent<PlayerTransformSync>();
|
||||
@ -99,12 +100,11 @@ namespace QSB
|
||||
connectionConfig.AddChannel(QosType.Unreliable);
|
||||
channels.Add(QosType.Reliable);
|
||||
channels.Add(QosType.Unreliable);
|
||||
|
||||
QSB.Helper.HarmonyHelper.EmptyMethod<NetworkManagerHUD>("Update");
|
||||
}
|
||||
|
||||
public override void OnServerAddPlayer(NetworkConnection connection, short playerControllerId) // Called on the server when a client joins
|
||||
{
|
||||
DebugLog.ToConsole("On server add player " + playerControllerId);
|
||||
base.OnServerAddPlayer(connection, playerControllerId);
|
||||
|
||||
// These have to be in a constant order (for now, until I get a better netId getting system...)
|
||||
@ -117,7 +117,6 @@ namespace QSB
|
||||
|
||||
public override void OnClientConnect(NetworkConnection connection) // Called on the client when connecting to a server
|
||||
{
|
||||
DebugLog.ToConsole("OnClientConnect (connected to server)");
|
||||
base.OnClientConnect(connection);
|
||||
|
||||
gameObject.AddComponent<SectorSync>();
|
||||
@ -138,13 +137,8 @@ namespace QSB
|
||||
|
||||
UnityHelper.Instance.RunWhen(() => PlayerTransformSync.LocalInstance != null, EventList.Init);
|
||||
|
||||
UnityHelper.Instance.RunWhen(() => EventList.Ready, () => FireJoinEvent());
|
||||
}
|
||||
|
||||
private void FireJoinEvent()
|
||||
{
|
||||
DebugLog.ToConsole("Firing join event!");
|
||||
GlobalMessenger<string>.FireEvent(EventNames.QSBPlayerJoin, _playerName);
|
||||
UnityHelper.Instance.RunWhen(() => EventList.Ready,
|
||||
() => GlobalMessenger<string>.FireEvent(EventNames.QSBPlayerJoin, _playerName));
|
||||
}
|
||||
|
||||
public override void OnStopClient() // Called on the client when closing connection
|
||||
@ -165,13 +159,62 @@ namespace QSB
|
||||
var playerId = connection.playerControllers[0].gameObject.GetComponent<PlayerTransformSync>().netId.Value;
|
||||
var objectIds = connection.clientOwnedObjects.Select(x => x.Value).ToArray();
|
||||
GlobalMessenger<uint, uint[]>.FireEvent(EventNames.QSBPlayerLeave, playerId, objectIds);
|
||||
|
||||
base.OnServerDisconnect(connection);
|
||||
CleanupConnection(connection);
|
||||
}
|
||||
|
||||
public override void OnStopServer()
|
||||
{
|
||||
NetworkServer.Reset();
|
||||
DebugLog.ToConsole("Server stopped!", OWML.Common.MessageType.Info);
|
||||
foreach (var connection in NetworkServer.connections)
|
||||
{
|
||||
CleanupConnection(connection);
|
||||
}
|
||||
base.OnStopServer();
|
||||
}
|
||||
|
||||
public override void OnClientDisconnect(NetworkConnection conn)
|
||||
{
|
||||
DebugLog.ToConsole("Disconnected from server.", OWML.Common.MessageType.Info);
|
||||
foreach (var connection in NetworkServer.connections.Where(x => x != conn))
|
||||
{
|
||||
CleanupConnection(connection);
|
||||
}
|
||||
base.OnClientDisconnect(conn);
|
||||
}
|
||||
|
||||
private void CleanupConnection(NetworkConnection connection)
|
||||
{
|
||||
var playerId = connection.playerControllers[0].gameObject.GetComponent<PlayerTransformSync>().netId.Value;
|
||||
var objectIds = connection.clientOwnedObjects.Select(x => x.Value).ToArray();
|
||||
|
||||
var playerName = PlayerRegistry.GetPlayer(playerId).Name;
|
||||
DebugLog.ToConsole($"{playerName} disconnected.", OWML.Common.MessageType.Info);
|
||||
PlayerRegistry.RemovePlayer(playerId);
|
||||
foreach (var objectId in objectIds)
|
||||
{
|
||||
DestroyObject(objectId);
|
||||
}
|
||||
}
|
||||
|
||||
private void DestroyObject(uint objectId)
|
||||
{
|
||||
var component = FindObjectsOfType<NetworkBehaviour>()
|
||||
.FirstOrDefault(x => x.netId.Value == objectId);
|
||||
if (component == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
var transformSync = component.GetComponent<TransformSync.TransformSync>();
|
||||
|
||||
if (transformSync != null)
|
||||
{
|
||||
PlayerRegistry.TransformSyncs.Remove(transformSync);
|
||||
if (transformSync.SyncedTransform != null)
|
||||
{
|
||||
Destroy(transformSync.SyncedTransform.gameObject);
|
||||
}
|
||||
}
|
||||
Destroy(component.gameObject);
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
|
@ -21,7 +21,7 @@ namespace QSB.TimeSync
|
||||
|
||||
private ServerTimeMessage CreateMessage(float time, int count) => new ServerTimeMessage
|
||||
{
|
||||
SenderId = PlayerRegistry.LocalPlayer.NetId,
|
||||
FromId = PlayerRegistry.LocalPlayer.NetId,
|
||||
ServerTime = time,
|
||||
LoopCount = count
|
||||
};
|
||||
|
@ -24,13 +24,14 @@ namespace QSB.Tools
|
||||
|
||||
private ToggleMessage CreateMessage(bool value) => new ToggleMessage
|
||||
{
|
||||
SenderId = LocalPlayerId,
|
||||
FromId = LocalPlayerId,
|
||||
AboutId = LocalPlayerId,
|
||||
ToggleValue = value
|
||||
};
|
||||
|
||||
public override void OnReceiveRemote(ToggleMessage message)
|
||||
{
|
||||
var player = PlayerRegistry.GetPlayer(message.SenderId);
|
||||
var player = PlayerRegistry.GetPlayer(message.AboutId);
|
||||
player?.UpdateState(State.Flashlight, message.ToggleValue);
|
||||
if (!QSBSceneManager.IsInUniverse)
|
||||
{
|
||||
|
@ -24,13 +24,14 @@ namespace QSB.Tools
|
||||
|
||||
private ToggleMessage CreateMessage(bool value) => new ToggleMessage
|
||||
{
|
||||
SenderId = LocalPlayerId,
|
||||
FromId = LocalPlayerId,
|
||||
AboutId = LocalPlayerId,
|
||||
ToggleValue = value
|
||||
};
|
||||
|
||||
public override void OnReceiveRemote(ToggleMessage message)
|
||||
{
|
||||
var player = PlayerRegistry.GetPlayer(message.SenderId);
|
||||
var player = PlayerRegistry.GetPlayer(message.AboutId);
|
||||
player.UpdateState(State.ProbeActive, message.ToggleValue);
|
||||
player.Probe.SetState(message.ToggleValue);
|
||||
}
|
||||
|
@ -24,13 +24,14 @@ namespace QSB.Tools
|
||||
|
||||
private ToggleMessage CreateMessage(bool value) => new ToggleMessage
|
||||
{
|
||||
SenderId = LocalPlayerId,
|
||||
FromId = LocalPlayerId,
|
||||
AboutId = LocalPlayerId,
|
||||
ToggleValue = value
|
||||
};
|
||||
|
||||
public override void OnReceiveRemote(ToggleMessage message)
|
||||
{
|
||||
var player = PlayerRegistry.GetPlayer(message.SenderId);
|
||||
var player = PlayerRegistry.GetPlayer(message.AboutId);
|
||||
player?.UpdateState(State.ProbeLauncher, message.ToggleValue);
|
||||
if (!QSBSceneManager.IsInUniverse)
|
||||
{
|
||||
|
@ -24,13 +24,14 @@ namespace QSB.Tools
|
||||
|
||||
private ToggleMessage CreateMessage(bool value) => new ToggleMessage
|
||||
{
|
||||
SenderId = LocalPlayerId,
|
||||
FromId = LocalPlayerId,
|
||||
AboutId = LocalPlayerId,
|
||||
ToggleValue = value
|
||||
};
|
||||
|
||||
public override void OnReceiveRemote(ToggleMessage message)
|
||||
{
|
||||
var player = PlayerRegistry.GetPlayer(message.SenderId);
|
||||
var player = PlayerRegistry.GetPlayer(message.AboutId);
|
||||
player?.UpdateState(State.Signalscope, message.ToggleValue);
|
||||
if (!QSBSceneManager.IsInUniverse)
|
||||
{
|
||||
|
@ -24,13 +24,14 @@ namespace QSB.Tools
|
||||
|
||||
private ToggleMessage CreateMessage(bool value) => new ToggleMessage
|
||||
{
|
||||
SenderId = LocalPlayerId,
|
||||
FromId = LocalPlayerId,
|
||||
AboutId = LocalPlayerId,
|
||||
ToggleValue = value
|
||||
};
|
||||
|
||||
public override void OnReceiveRemote(ToggleMessage message)
|
||||
{
|
||||
var player = PlayerRegistry.GetPlayer(message.SenderId);
|
||||
var player = PlayerRegistry.GetPlayer(message.AboutId);
|
||||
player?.UpdateState(State.Translator, message.ToggleValue);
|
||||
if (!QSBSceneManager.IsInUniverse)
|
||||
{
|
||||
|
@ -23,7 +23,8 @@ namespace QSB.TransformSync
|
||||
|
||||
private WorldObjectMessage CreateMessage(uint netId, QSBSector sector) => new WorldObjectMessage
|
||||
{
|
||||
SenderId = netId,
|
||||
FromId = LocalPlayerId,
|
||||
AboutId = netId,
|
||||
ObjectId = sector.ObjectId
|
||||
};
|
||||
|
||||
@ -41,7 +42,7 @@ namespace QSB.TransformSync
|
||||
return;
|
||||
}
|
||||
|
||||
var transformSync = PlayerRegistry.GetTransformSync(message.SenderId);
|
||||
var transformSync = PlayerRegistry.GetTransformSync(message.AboutId);
|
||||
//DebugLog.ToConsole($"{transformSync.GetType().Name} of ID {message.SenderId} set to {sector.Name}");
|
||||
UnityHelper.Instance.RunWhen(() => transformSync.SyncedTransform != null,
|
||||
() => transformSync.SetReferenceSector(sector));
|
||||
|
@ -1,4 +1,5 @@
|
||||
using QSB.Animation;
|
||||
using QSB.Utility;
|
||||
using UnityEngine;
|
||||
|
||||
namespace QSB.TransformSync
|
||||
@ -9,11 +10,19 @@ namespace QSB.TransformSync
|
||||
|
||||
static PlayerTransformSync()
|
||||
{
|
||||
DebugLog.ToConsole("constructor of playertransformsync");
|
||||
AnimControllerPatch.Init();
|
||||
}
|
||||
|
||||
public override void OnNetworkDestroy()
|
||||
{
|
||||
DebugLog.ToConsole("PlayerTransformSync on network destroy");
|
||||
base.OnNetworkDestroy();
|
||||
}
|
||||
|
||||
public override void OnStartLocalPlayer()
|
||||
{
|
||||
DebugLog.ToConsole("onstartlocalplayer of playertransformsync, id of " + PlayerId);
|
||||
LocalInstance = this;
|
||||
}
|
||||
|
||||
|
@ -22,6 +22,7 @@ namespace QSB.TransformSync
|
||||
|
||||
protected virtual void Awake()
|
||||
{
|
||||
DebugLog.ToConsole($"Adding {GetType().Name} of id {netId.Value} to transformsync list.");
|
||||
PlayerRegistry.TransformSyncs.Add(this);
|
||||
DontDestroyOnLoad(gameObject);
|
||||
QSBSceneManager.OnSceneLoaded += OnSceneLoaded;
|
||||
|
Loading…
x
Reference in New Issue
Block a user