mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-21 09:39:56 +00:00
Merge branch 'dev' into steamworks
# Conflicts: # QSB/manifest.json
This commit is contained in:
commit
13b3f9c634
@ -6,12 +6,15 @@ using UnityEngine;
|
|||||||
|
|
||||||
namespace QSB.Anglerfish.Messages
|
namespace QSB.Anglerfish.Messages
|
||||||
{
|
{
|
||||||
public class AnglerChangeStateMessage : QSBEnumWorldObjectMessage<QSBAngler, AnglerfishController.AnglerState>
|
/// <summary>
|
||||||
|
/// angler state, target transform, and local disturbance pos
|
||||||
|
/// </summary>
|
||||||
|
public class AnglerDataMessage : QSBEnumWorldObjectMessage<QSBAngler, AnglerfishController.AnglerState>
|
||||||
{
|
{
|
||||||
private uint TargetId;
|
private uint TargetId;
|
||||||
private Vector3 LocalDisturbancePos;
|
private Vector3 LocalDisturbancePos;
|
||||||
|
|
||||||
public AnglerChangeStateMessage(QSBAngler qsbAngler)
|
public AnglerDataMessage(QSBAngler qsbAngler)
|
||||||
{
|
{
|
||||||
Value = qsbAngler.AttachedObject._currentState;
|
Value = qsbAngler.AttachedObject._currentState;
|
||||||
TargetId = TargetToId(qsbAngler.TargetTransform);
|
TargetId = TargetToId(qsbAngler.TargetTransform);
|
@ -39,7 +39,8 @@ namespace QSB.Anglerfish.Patches
|
|||||||
if (qsbAngler.TargetTransform != null && sectorDetector.GetAttachedOWRigidbody().transform == qsbAngler.TargetTransform)
|
if (qsbAngler.TargetTransform != null && sectorDetector.GetAttachedOWRigidbody().transform == qsbAngler.TargetTransform)
|
||||||
{
|
{
|
||||||
qsbAngler.TargetTransform = null;
|
qsbAngler.TargetTransform = null;
|
||||||
qsbAngler.SendMessage(new AnglerChangeStateMessage(qsbAngler));
|
__instance.ChangeState(AnglerfishController.AnglerState.Lurking);
|
||||||
|
qsbAngler.SendMessage(new AnglerDataMessage(qsbAngler));
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@ -62,7 +63,7 @@ namespace QSB.Anglerfish.Patches
|
|||||||
if ((__instance._brambleBody.transform.TransformPoint(__instance._localDisturbancePos) - __instance._anglerBody.GetPosition()).sqrMagnitude < __instance._arrivalDistance * __instance._arrivalDistance)
|
if ((__instance._brambleBody.transform.TransformPoint(__instance._localDisturbancePos) - __instance._anglerBody.GetPosition()).sqrMagnitude < __instance._arrivalDistance * __instance._arrivalDistance)
|
||||||
{
|
{
|
||||||
__instance.ChangeState(AnglerfishController.AnglerState.Lurking);
|
__instance.ChangeState(AnglerfishController.AnglerState.Lurking);
|
||||||
qsbAngler.SendMessage(new AnglerChangeStateMessage(qsbAngler));
|
qsbAngler.SendMessage(new AnglerDataMessage(qsbAngler));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -71,7 +72,7 @@ namespace QSB.Anglerfish.Patches
|
|||||||
if (qsbAngler.TargetTransform == null)
|
if (qsbAngler.TargetTransform == null)
|
||||||
{
|
{
|
||||||
__instance.ChangeState(AnglerfishController.AnglerState.Lurking);
|
__instance.ChangeState(AnglerfishController.AnglerState.Lurking);
|
||||||
qsbAngler.SendMessage(new AnglerChangeStateMessage(qsbAngler));
|
qsbAngler.SendMessage(new AnglerDataMessage(qsbAngler));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,7 +80,7 @@ namespace QSB.Anglerfish.Patches
|
|||||||
{
|
{
|
||||||
qsbAngler.TargetTransform = null;
|
qsbAngler.TargetTransform = null;
|
||||||
__instance.ChangeState(AnglerfishController.AnglerState.Lurking);
|
__instance.ChangeState(AnglerfishController.AnglerState.Lurking);
|
||||||
qsbAngler.SendMessage(new AnglerChangeStateMessage(qsbAngler));
|
qsbAngler.SendMessage(new AnglerDataMessage(qsbAngler));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,7 +91,7 @@ namespace QSB.Anglerfish.Patches
|
|||||||
if (qsbAngler.TargetTransform == null)
|
if (qsbAngler.TargetTransform == null)
|
||||||
{
|
{
|
||||||
__instance.ChangeState(AnglerfishController.AnglerState.Lurking);
|
__instance.ChangeState(AnglerfishController.AnglerState.Lurking);
|
||||||
qsbAngler.SendMessage(new AnglerChangeStateMessage(qsbAngler));
|
qsbAngler.SendMessage(new AnglerDataMessage(qsbAngler));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -124,7 +125,8 @@ namespace QSB.Anglerfish.Patches
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
qsbAngler.TargetTransform = null;
|
qsbAngler.TargetTransform = null;
|
||||||
qsbAngler.SendMessage(new AnglerChangeStateMessage(qsbAngler));
|
__instance.ChangeState(AnglerfishController.AnglerState.Lurking);
|
||||||
|
qsbAngler.SendMessage(new AnglerDataMessage(qsbAngler));
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -135,12 +137,12 @@ namespace QSB.Anglerfish.Patches
|
|||||||
if (qsbAngler.TargetTransform != null)
|
if (qsbAngler.TargetTransform != null)
|
||||||
{
|
{
|
||||||
__instance.ChangeState(AnglerfishController.AnglerState.Chasing);
|
__instance.ChangeState(AnglerfishController.AnglerState.Chasing);
|
||||||
qsbAngler.SendMessage(new AnglerChangeStateMessage(qsbAngler));
|
qsbAngler.SendMessage(new AnglerDataMessage(qsbAngler));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
__instance.ChangeState(AnglerfishController.AnglerState.Lurking);
|
__instance.ChangeState(AnglerfishController.AnglerState.Lurking);
|
||||||
qsbAngler.SendMessage(new AnglerChangeStateMessage(qsbAngler));
|
qsbAngler.SendMessage(new AnglerDataMessage(qsbAngler));
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -252,7 +254,7 @@ namespace QSB.Anglerfish.Patches
|
|||||||
{
|
{
|
||||||
qsbAngler.TargetTransform = attachedOWRigidbody.transform;
|
qsbAngler.TargetTransform = attachedOWRigidbody.transform;
|
||||||
__instance.ChangeState(AnglerfishController.AnglerState.Chasing);
|
__instance.ChangeState(AnglerfishController.AnglerState.Chasing);
|
||||||
qsbAngler.SendMessage(new AnglerChangeStateMessage(qsbAngler));
|
qsbAngler.SendMessage(new AnglerDataMessage(qsbAngler));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -281,7 +283,7 @@ namespace QSB.Anglerfish.Patches
|
|||||||
__instance.ChangeState(AnglerfishController.AnglerState.Chasing);
|
__instance.ChangeState(AnglerfishController.AnglerState.Chasing);
|
||||||
}
|
}
|
||||||
|
|
||||||
qsbAngler.SendMessage(new AnglerChangeStateMessage(qsbAngler));
|
qsbAngler.SendMessage(new AnglerDataMessage(qsbAngler));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -293,7 +295,7 @@ namespace QSB.Anglerfish.Patches
|
|||||||
__instance.ChangeState(AnglerfishController.AnglerState.Investigating);
|
__instance.ChangeState(AnglerfishController.AnglerState.Investigating);
|
||||||
}
|
}
|
||||||
|
|
||||||
qsbAngler.SendMessage(new AnglerChangeStateMessage(qsbAngler));
|
qsbAngler.SendMessage(new AnglerDataMessage(qsbAngler));
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@ -321,7 +323,7 @@ namespace QSB.Anglerfish.Patches
|
|||||||
qsbAngler.TargetTransform = caughtBody.transform;
|
qsbAngler.TargetTransform = caughtBody.transform;
|
||||||
__instance._consumeStartTime = Time.time;
|
__instance._consumeStartTime = Time.time;
|
||||||
__instance.ChangeState(AnglerfishController.AnglerState.Consuming);
|
__instance.ChangeState(AnglerfishController.AnglerState.Consuming);
|
||||||
qsbAngler.SendMessage(new AnglerChangeStateMessage(qsbAngler));
|
qsbAngler.SendMessage(new AnglerDataMessage(qsbAngler));
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -19,16 +19,16 @@ namespace QSB.Anglerfish.TransformSync
|
|||||||
protected override OWRigidbody InitAttachedRigidbody()
|
protected override OWRigidbody InitAttachedRigidbody()
|
||||||
=> _qsbAngler.AttachedObject._anglerBody;
|
=> _qsbAngler.AttachedObject._anglerBody;
|
||||||
|
|
||||||
public override void Start()
|
public override void OnStartClient()
|
||||||
{
|
{
|
||||||
_instances.Add(this);
|
_instances.Add(this);
|
||||||
base.Start();
|
base.OnStartClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnDestroy()
|
public override void OnStopClient()
|
||||||
{
|
{
|
||||||
_instances.Remove(this);
|
_instances.Remove(this);
|
||||||
base.OnDestroy();
|
base.OnStopClient();
|
||||||
|
|
||||||
if (QSBCore.IsHost)
|
if (QSBCore.IsHost)
|
||||||
{
|
{
|
||||||
|
@ -7,7 +7,6 @@ namespace QSB.JellyfishSync.Messages
|
|||||||
{
|
{
|
||||||
public JellyfishRisingMessage(bool isRising) => Value = isRising;
|
public JellyfishRisingMessage(bool isRising) => Value = isRising;
|
||||||
|
|
||||||
public override void OnReceiveRemote() => WorldObject.IsRising = Value;
|
public override void OnReceiveRemote() => WorldObject.SetIsRising(Value);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,17 +20,16 @@ namespace QSB.JellyfishSync.Patches
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var qsbJellyfish = __instance.GetWorldObject<QSBJellyfish>();
|
|
||||||
|
|
||||||
var sqrMagnitude = (__instance._jellyfishBody.GetPosition() - __instance._planetBody.GetPosition()).sqrMagnitude;
|
var sqrMagnitude = (__instance._jellyfishBody.GetPosition() - __instance._planetBody.GetPosition()).sqrMagnitude;
|
||||||
if (qsbJellyfish.IsRising)
|
if (__instance._isRising)
|
||||||
{
|
{
|
||||||
__instance._jellyfishBody.AddAcceleration(__instance.transform.up * __instance._upwardsAcceleration);
|
__instance._jellyfishBody.AddAcceleration(__instance.transform.up * __instance._upwardsAcceleration);
|
||||||
if (sqrMagnitude > __instance._upperLimit * __instance._upperLimit)
|
if (sqrMagnitude > __instance._upperLimit * __instance._upperLimit)
|
||||||
{
|
{
|
||||||
qsbJellyfish.IsRising = false;
|
__instance._isRising = false;
|
||||||
|
__instance._attractiveFluidVolume.SetVolumeActivation(true);
|
||||||
qsbJellyfish.SendMessage(new JellyfishRisingMessage(qsbJellyfish.IsRising));
|
__instance.GetWorldObject<QSBJellyfish>().SendMessage(new JellyfishRisingMessage(false));
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -38,8 +37,9 @@ namespace QSB.JellyfishSync.Patches
|
|||||||
__instance._jellyfishBody.AddAcceleration(-__instance.transform.up * __instance._downwardsAcceleration);
|
__instance._jellyfishBody.AddAcceleration(-__instance.transform.up * __instance._downwardsAcceleration);
|
||||||
if (sqrMagnitude < __instance._lowerLimit * __instance._lowerLimit)
|
if (sqrMagnitude < __instance._lowerLimit * __instance._lowerLimit)
|
||||||
{
|
{
|
||||||
qsbJellyfish.IsRising = true;
|
__instance._isRising = true;
|
||||||
qsbJellyfish.SendMessage(new JellyfishRisingMessage(qsbJellyfish.IsRising));
|
__instance._attractiveFluidVolume.SetVolumeActivation(false);
|
||||||
|
__instance.GetWorldObject<QSBJellyfish>().SendMessage(new JellyfishRisingMessage(true));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using Mirror;
|
using QSB.AuthoritySync;
|
||||||
using QSB.AuthoritySync;
|
|
||||||
using QSB.JellyfishSync.WorldObjects;
|
using QSB.JellyfishSync.WorldObjects;
|
||||||
using QSB.Syncs.Unsectored.Rigidbodies;
|
using QSB.Syncs.Unsectored.Rigidbodies;
|
||||||
using QSB.Utility;
|
using QSB.Utility;
|
||||||
@ -21,16 +20,16 @@ namespace QSB.JellyfishSync.TransformSync
|
|||||||
protected override OWRigidbody InitAttachedRigidbody()
|
protected override OWRigidbody InitAttachedRigidbody()
|
||||||
=> _qsbJellyfish.AttachedObject._jellyfishBody;
|
=> _qsbJellyfish.AttachedObject._jellyfishBody;
|
||||||
|
|
||||||
public override void Start()
|
public override void OnStartClient()
|
||||||
{
|
{
|
||||||
_instances.Add(this);
|
_instances.Add(this);
|
||||||
base.Start();
|
base.OnStartClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnDestroy()
|
public override void OnStopClient()
|
||||||
{
|
{
|
||||||
_instances.Remove(this);
|
_instances.Remove(this);
|
||||||
base.OnDestroy();
|
base.OnStopClient();
|
||||||
|
|
||||||
if (QSBCore.IsHost)
|
if (QSBCore.IsHost)
|
||||||
{
|
{
|
||||||
@ -65,36 +64,9 @@ namespace QSB.JellyfishSync.TransformSync
|
|||||||
private void OnUnsuspend(OWRigidbody suspendedBody) => netIdentity.SendAuthQueueMessage(AuthQueueAction.Add);
|
private void OnUnsuspend(OWRigidbody suspendedBody) => netIdentity.SendAuthQueueMessage(AuthQueueAction.Add);
|
||||||
private void OnSuspend(OWRigidbody suspendedBody) => netIdentity.SendAuthQueueMessage(AuthQueueAction.Remove);
|
private void OnSuspend(OWRigidbody suspendedBody) => netIdentity.SendAuthQueueMessage(AuthQueueAction.Remove);
|
||||||
|
|
||||||
private bool _isRising;
|
|
||||||
|
|
||||||
protected override void Serialize(NetworkWriter writer, bool initialState)
|
|
||||||
{
|
|
||||||
base.Serialize(writer, initialState);
|
|
||||||
|
|
||||||
writer.Write(_isRising);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Deserialize(NetworkReader reader, bool initialState)
|
|
||||||
{
|
|
||||||
base.Deserialize(reader, initialState);
|
|
||||||
|
|
||||||
_isRising = reader.ReadBool();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void GetFromAttached()
|
|
||||||
{
|
|
||||||
base.GetFromAttached();
|
|
||||||
|
|
||||||
_qsbJellyfish.Align = true;
|
|
||||||
_isRising = _qsbJellyfish.IsRising;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// replacement using SetPosition/Rotation instead of Move
|
/// replacement using SetPosition/Rotation instead of Move
|
||||||
protected override void ApplyToAttached()
|
protected override void ApplyToAttached()
|
||||||
{
|
{
|
||||||
_qsbJellyfish.Align = false;
|
|
||||||
_qsbJellyfish.IsRising = _isRising;
|
|
||||||
|
|
||||||
var pos = ReferenceTransform.FromRelPos(transform.position);
|
var pos = ReferenceTransform.FromRelPos(transform.position);
|
||||||
AttachedRigidbody.SetPosition(pos);
|
AttachedRigidbody.SetPosition(pos);
|
||||||
AttachedRigidbody.SetRotation(ReferenceTransform.FromRelRot(transform.rotation));
|
AttachedRigidbody.SetRotation(ReferenceTransform.FromRelRot(transform.rotation));
|
||||||
|
@ -32,24 +32,15 @@ namespace QSB.JellyfishSync.WorldObjects
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsRising
|
public void SetIsRising(bool value)
|
||||||
{
|
{
|
||||||
get => AttachedObject._isRising;
|
if (AttachedObject._isRising == value)
|
||||||
set
|
|
||||||
{
|
{
|
||||||
if (AttachedObject._isRising == value)
|
return;
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
AttachedObject._isRising = value;
|
|
||||||
AttachedObject._attractiveFluidVolume.SetVolumeActivation(!value);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public bool Align
|
AttachedObject._isRising = value;
|
||||||
{
|
AttachedObject._attractiveFluidVolume.SetVolumeActivation(!value);
|
||||||
set => _alignWithTargetBody.enabled = value;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -267,7 +267,7 @@ namespace QSB.Menus
|
|||||||
|
|
||||||
if (QSBCore.IsHost)
|
if (QSBCore.IsHost)
|
||||||
{
|
{
|
||||||
SetButtonActive(ResumeGameButton, StandaloneProfileManager.SharedInstance.currentProfileGameSave.loopCount > 1);
|
QSBCore.UnityEvents.RunWhen(PlayerData.IsLoaded, () => SetButtonActive(ResumeGameButton, PlayerData.LoadLoopCount() > 1));
|
||||||
SetButtonActive(NewGameButton, true);
|
SetButtonActive(NewGameButton, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -279,7 +279,7 @@ namespace QSB.Menus
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
SetButtonActive(ClientButton, true);
|
SetButtonActive(ClientButton, true);
|
||||||
SetButtonActive(ResumeGameButton, StandaloneProfileManager.SharedInstance.currentProfileGameSave.loopCount > 1);
|
QSBCore.UnityEvents.RunWhen(PlayerData.IsLoaded, () => SetButtonActive(ResumeGameButton, PlayerData.LoadLoopCount() > 1));
|
||||||
SetButtonActive(NewGameButton, true);
|
SetButtonActive(NewGameButton, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -389,7 +389,7 @@ namespace QSB.Menus
|
|||||||
{
|
{
|
||||||
KickReason.QSBVersionNotMatching => "Server refused connection as QSB version does not match.",
|
KickReason.QSBVersionNotMatching => "Server refused connection as QSB version does not match.",
|
||||||
KickReason.GameVersionNotMatching => "Server refused connection as Outer Wilds version does not match.",
|
KickReason.GameVersionNotMatching => "Server refused connection as Outer Wilds version does not match.",
|
||||||
KickReason.GamePlatformNotMatching => "Server refused connection as Outer Wilds platform does not match. (Steam/Epic)",
|
KickReason.GamePlatformNotMatching => "Server refused connection as Outer Wilds platform does not match. (Steam/Epic/Xbox)",
|
||||||
KickReason.DLCNotMatching => "Server refused connection as DLC installation state does not match.",
|
KickReason.DLCNotMatching => "Server refused connection as DLC installation state does not match.",
|
||||||
KickReason.InEye => "Server refused connection as game has progressed too far.",
|
KickReason.InEye => "Server refused connection as game has progressed too far.",
|
||||||
KickReason.None => "Kicked from server. No reason given.",
|
KickReason.None => "Kicked from server. No reason given.",
|
||||||
@ -433,7 +433,7 @@ namespace QSB.Menus
|
|||||||
SetButtonActive(ClientButton, true);
|
SetButtonActive(ClientButton, true);
|
||||||
SetButtonActive(QuitButton, true);
|
SetButtonActive(QuitButton, true);
|
||||||
SetButtonActive(HostButton, true);
|
SetButtonActive(HostButton, true);
|
||||||
SetButtonActive(ResumeGameButton, StandaloneProfileManager.SharedInstance.currentProfileGameSave.loopCount > 1);
|
SetButtonActive(ResumeGameButton, PlayerData.LoadLoopCount() > 1);
|
||||||
SetButtonActive(NewGameButton, true);
|
SetButtonActive(NewGameButton, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,16 +22,16 @@ namespace QSB.OrbSync.TransformSync
|
|||||||
private QSBOrb _qsbOrb;
|
private QSBOrb _qsbOrb;
|
||||||
private static readonly List<NomaiOrbTransformSync> _instances = new();
|
private static readonly List<NomaiOrbTransformSync> _instances = new();
|
||||||
|
|
||||||
public override void Start()
|
public override void OnStartClient()
|
||||||
{
|
{
|
||||||
_instances.Add(this);
|
_instances.Add(this);
|
||||||
base.Start();
|
base.OnStartClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnDestroy()
|
public override void OnStopClient()
|
||||||
{
|
{
|
||||||
_instances.Remove(this);
|
_instances.Remove(this);
|
||||||
base.OnDestroy();
|
base.OnStopClient();
|
||||||
|
|
||||||
if (QSBCore.IsHost)
|
if (QSBCore.IsHost)
|
||||||
{
|
{
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
public enum GamePlatform
|
public enum GamePlatform
|
||||||
{
|
{
|
||||||
Steam,
|
Steam,
|
||||||
Epic
|
Epic,
|
||||||
|
Xbox
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,13 @@
|
|||||||
using OWML.Common;
|
using OWML.Common;
|
||||||
|
using QSB.Anglerfish.Messages;
|
||||||
|
using QSB.Anglerfish.WorldObjects;
|
||||||
using QSB.CampfireSync.Messages;
|
using QSB.CampfireSync.Messages;
|
||||||
using QSB.CampfireSync.WorldObjects;
|
using QSB.CampfireSync.WorldObjects;
|
||||||
using QSB.ClientServerStateSync;
|
using QSB.ClientServerStateSync;
|
||||||
using QSB.ClientServerStateSync.Messages;
|
using QSB.ClientServerStateSync.Messages;
|
||||||
using QSB.ConversationSync.Messages;
|
using QSB.ConversationSync.Messages;
|
||||||
|
using QSB.JellyfishSync.Messages;
|
||||||
|
using QSB.JellyfishSync.WorldObjects;
|
||||||
using QSB.LogSync.Messages;
|
using QSB.LogSync.Messages;
|
||||||
using QSB.Messaging;
|
using QSB.Messaging;
|
||||||
using QSB.MeteorSync.Messages;
|
using QSB.MeteorSync.Messages;
|
||||||
@ -148,6 +152,26 @@ namespace QSB.Player.Messages
|
|||||||
qsbOrb.SendMessage(new OrbDragMessage(qsbOrb.AttachedObject._isBeingDragged) { To = From });
|
qsbOrb.SendMessage(new OrbDragMessage(qsbOrb.AttachedObject._isBeingDragged) { To = From });
|
||||||
qsbOrb.SendMessage(new OrbSlotMessage(qsbOrb.AttachedObject._slots.IndexOf(qsbOrb.AttachedObject._occupiedSlot)) { To = From });
|
qsbOrb.SendMessage(new OrbSlotMessage(qsbOrb.AttachedObject._slots.IndexOf(qsbOrb.AttachedObject._occupiedSlot)) { To = From });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach (var qsbJellyfish in QSBWorldSync.GetWorldObjects<QSBJellyfish>())
|
||||||
|
{
|
||||||
|
if (!qsbJellyfish.TransformSync.hasAuthority)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
qsbJellyfish.SendMessage(new JellyfishRisingMessage(qsbJellyfish.AttachedObject._isRising));
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var qsbAngler in QSBWorldSync.GetWorldObjects<QSBAngler>())
|
||||||
|
{
|
||||||
|
if (!qsbAngler.TransformSync.hasAuthority)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
qsbAngler.SendMessage(new AnglerDataMessage(qsbAngler));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,53 +43,44 @@ namespace QSB.Player.TransformSync
|
|||||||
private Transform GetStickPivot()
|
private Transform GetStickPivot()
|
||||||
=> QSBWorldSync.GetUnityObjects<RoastingStickController>().First().transform.Find("Stick_Root/Stick_Pivot");
|
=> QSBWorldSync.GetUnityObjects<RoastingStickController>().First().transform.Find("Stick_Root/Stick_Pivot");
|
||||||
|
|
||||||
public override void OnStartLocalPlayer()
|
public override void OnStartClient()
|
||||||
=> LocalInstance = this;
|
|
||||||
|
|
||||||
public override void Start()
|
|
||||||
{
|
{
|
||||||
var player = new PlayerInfo(this);
|
var player = new PlayerInfo(this);
|
||||||
QSBPlayerManager.PlayerList.SafeAdd(player);
|
QSBPlayerManager.PlayerList.SafeAdd(player);
|
||||||
base.Start();
|
base.OnStartClient();
|
||||||
QSBPlayerManager.OnAddPlayer?.Invoke(Player);
|
QSBPlayerManager.OnAddPlayer?.Invoke(Player);
|
||||||
DebugLog.DebugWrite($"Create Player : id<{Player.PlayerId}>", MessageType.Info);
|
DebugLog.DebugWrite($"Create Player : id<{Player.PlayerId}>", MessageType.Info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void OnStartLocalPlayer() => LocalInstance = this;
|
||||||
|
|
||||||
protected override void OnSceneLoaded(OWScene oldScene, OWScene newScene, bool isInUniverse)
|
protected override void OnSceneLoaded(OWScene oldScene, OWScene newScene, bool isInUniverse)
|
||||||
{
|
{
|
||||||
if (!hasAuthority)
|
|
||||||
{
|
|
||||||
base.OnSceneLoaded(oldScene, newScene, isInUniverse);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isInUniverse && !IsInitialized)
|
|
||||||
{
|
|
||||||
Player.IsReady = false;
|
|
||||||
new PlayerReadyMessage(false).Send();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isInUniverse)
|
|
||||||
{
|
|
||||||
Player.IsReady = false;
|
|
||||||
new PlayerReadyMessage(false).Send();
|
|
||||||
}
|
|
||||||
|
|
||||||
base.OnSceneLoaded(oldScene, newScene, isInUniverse);
|
base.OnSceneLoaded(oldScene, newScene, isInUniverse);
|
||||||
|
|
||||||
|
if (isLocalPlayer)
|
||||||
|
{
|
||||||
|
Player.IsReady = false;
|
||||||
|
new PlayerReadyMessage(false).Send();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Init()
|
protected override void Init()
|
||||||
{
|
{
|
||||||
base.Init();
|
base.Init();
|
||||||
|
|
||||||
Player.IsReady = true;
|
if (isLocalPlayer)
|
||||||
new PlayerReadyMessage(true).Send();
|
{
|
||||||
|
Player.IsReady = true;
|
||||||
|
new PlayerReadyMessage(true).Send();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnDestroy()
|
public override void OnStopClient()
|
||||||
{
|
{
|
||||||
// TODO : Maybe move this to a leave event...? Would ensure everything could finish up before removing the player
|
// TODO : Maybe move this to a leave event...? Would ensure everything could finish up before removing the player
|
||||||
QSBPlayerManager.OnRemovePlayer?.Invoke(Player);
|
QSBPlayerManager.OnRemovePlayer?.Invoke(Player);
|
||||||
base.OnDestroy();
|
base.OnStopClient();
|
||||||
Player.HudMarker?.Remove();
|
Player.HudMarker?.Remove();
|
||||||
QSBPlayerManager.PlayerList.Remove(Player);
|
QSBPlayerManager.PlayerList.Remove(Player);
|
||||||
DebugLog.DebugWrite($"Remove Player : id<{Player.PlayerId}>", MessageType.Info);
|
DebugLog.DebugWrite($"Remove Player : id<{Player.PlayerId}>", MessageType.Info);
|
||||||
|
@ -1,21 +1,23 @@
|
|||||||
using Mirror;
|
using Mirror;
|
||||||
using OWML.Common;
|
using OWML.Common;
|
||||||
using OWML.ModHelper;
|
using OWML.ModHelper;
|
||||||
using OWML.ModHelper.Input;
|
|
||||||
using QSB.EyeOfTheUniverse.GalaxyMap;
|
using QSB.EyeOfTheUniverse.GalaxyMap;
|
||||||
using QSB.EyeOfTheUniverse.MaskSync;
|
using QSB.EyeOfTheUniverse.MaskSync;
|
||||||
using QSB.Inputs;
|
using QSB.Inputs;
|
||||||
using QSB.Menus;
|
using QSB.Menus;
|
||||||
using QSB.Patches;
|
using QSB.Patches;
|
||||||
using QSB.Player;
|
using QSB.Player;
|
||||||
|
using QSB.QuantumSync;
|
||||||
using QSB.RespawnSync;
|
using QSB.RespawnSync;
|
||||||
using QSB.SatelliteSync;
|
using QSB.SatelliteSync;
|
||||||
using QSB.StatueSync;
|
using QSB.StatueSync;
|
||||||
using QSB.TimeSync;
|
using QSB.TimeSync;
|
||||||
using QSB.Utility;
|
using QSB.Utility;
|
||||||
using QSB.WorldSync;
|
using QSB.WorldSync;
|
||||||
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using UnityEngine.InputSystem;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2020 - 2021
|
Copyright (C) 2020 - 2021
|
||||||
@ -59,13 +61,11 @@ namespace QSB
|
|||||||
public static bool IsInMultiplayer => QSBNetworkManager.singleton.isNetworkActive;
|
public static bool IsInMultiplayer => QSBNetworkManager.singleton.isNetworkActive;
|
||||||
public static string QSBVersion => Helper.Manifest.Version;
|
public static string QSBVersion => Helper.Manifest.Version;
|
||||||
public static string GameVersion => Application.version;
|
public static string GameVersion => Application.version;
|
||||||
public static GamePlatform Platform => typeof(Achievements).Assembly.GetTypes().Any(x => x.Name == "EpicEntitlementRetriever")
|
public static GamePlatform Platform { get; private set; }
|
||||||
? GamePlatform.Epic
|
|
||||||
: GamePlatform.Steam;
|
|
||||||
public static bool DLCInstalled => EntitlementsManager.IsDlcOwned() == EntitlementsManager.AsyncOwnershipStatus.Owned;
|
public static bool DLCInstalled => EntitlementsManager.IsDlcOwned() == EntitlementsManager.AsyncOwnershipStatus.Owned;
|
||||||
public static IMenuAPI MenuApi { get; private set; }
|
public static IMenuAPI MenuApi { get; private set; }
|
||||||
|
|
||||||
private static DebugSettings DebugSettings { get; set; } = new DebugSettings();
|
private static DebugSettings DebugSettings { get; set; } = new();
|
||||||
|
|
||||||
public void Awake()
|
public void Awake()
|
||||||
{
|
{
|
||||||
@ -79,6 +79,23 @@ namespace QSB
|
|||||||
Helper = ModHelper;
|
Helper = ModHelper;
|
||||||
DebugLog.ToConsole($"* Start of QSB version {QSBVersion} - authored by {Helper.Manifest.Author}", MessageType.Info);
|
DebugLog.ToConsole($"* Start of QSB version {QSBVersion} - authored by {Helper.Manifest.Author}", MessageType.Info);
|
||||||
|
|
||||||
|
switch (EntitlementsManager.instance._entitlementRetriever.GetType().Name)
|
||||||
|
{
|
||||||
|
case "EpicEntitlementRetriever":
|
||||||
|
Platform = GamePlatform.Epic;
|
||||||
|
break;
|
||||||
|
case "SteamEntitlementRetriever":
|
||||||
|
Platform = GamePlatform.Steam;
|
||||||
|
break;
|
||||||
|
case "MSStoreEntitlementRetriever":
|
||||||
|
Platform = GamePlatform.Xbox;
|
||||||
|
break;
|
||||||
|
case var other:
|
||||||
|
DebugLog.ToConsole($"Cannot get game platform (entitlement retriever name = {other})\nTell a QSB Dev!", MessageType.Error);
|
||||||
|
enabled = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
MenuApi = ModHelper.Interaction.GetModApi<IMenuAPI>("_nebula.MenuFramework");
|
MenuApi = ModHelper.Interaction.GetModApi<IMenuAPI>("_nebula.MenuFramework");
|
||||||
|
|
||||||
NetworkAssetBundle = Helper.Assets.LoadBundle("AssetBundles/network");
|
NetworkAssetBundle = Helper.Assets.LoadBundle("AssetBundles/network");
|
||||||
@ -87,7 +104,7 @@ namespace QSB
|
|||||||
DebugAssetBundle = Helper.Assets.LoadBundle("AssetBundles/debug");
|
DebugAssetBundle = Helper.Assets.LoadBundle("AssetBundles/debug");
|
||||||
TextAssetsBundle = Helper.Assets.LoadBundle("AssetBundles/textassets");
|
TextAssetsBundle = Helper.Assets.LoadBundle("AssetBundles/textassets");
|
||||||
|
|
||||||
DebugSettings = ModHelper.Storage.Load<DebugSettings>("debugsettings.json");
|
DebugSettings = Helper.Storage.Load<DebugSettings>("debugsettings.json");
|
||||||
|
|
||||||
if (DebugSettings == null)
|
if (DebugSettings == null)
|
||||||
{
|
{
|
||||||
@ -139,6 +156,21 @@ namespace QSB
|
|||||||
{
|
{
|
||||||
DefaultServerIP = config.GetSettingsValue<string>("defaultServerIP");
|
DefaultServerIP = config.GetSettingsValue<string>("defaultServerIP");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
if (Keyboard.current[Key.Q].isPressed && Keyboard.current[Key.D].wasPressedThisFrame)
|
||||||
|
{
|
||||||
|
DebugSettings.DebugMode = !DebugSettings.DebugMode;
|
||||||
|
|
||||||
|
GetComponent<DebugActions>().enabled = DebugMode;
|
||||||
|
GetComponent<DebugGUI>().enabled = DebugMode;
|
||||||
|
QuantumManager.UpdateFromDebugSetting();
|
||||||
|
DebugCameraSettings.UpdateFromDebugSetting();
|
||||||
|
|
||||||
|
DebugLog.ToConsole($"DEBUG MODE = {DebugMode}");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,7 +15,6 @@ using QSB.Patches;
|
|||||||
using QSB.Player;
|
using QSB.Player;
|
||||||
using QSB.Player.Messages;
|
using QSB.Player.Messages;
|
||||||
using QSB.Player.TransformSync;
|
using QSB.Player.TransformSync;
|
||||||
using QSB.PoolSync;
|
|
||||||
using QSB.ShipSync.TransformSync;
|
using QSB.ShipSync.TransformSync;
|
||||||
using QSB.TimeSync;
|
using QSB.TimeSync;
|
||||||
using QSB.Tools.ProbeTool.TransformSync;
|
using QSB.Tools.ProbeTool.TransformSync;
|
||||||
@ -72,7 +71,7 @@ namespace QSB
|
|||||||
|
|
||||||
base.Awake();
|
base.Awake();
|
||||||
|
|
||||||
PlayerName = GetPlayerName();
|
InitPlayerName();
|
||||||
|
|
||||||
playerPrefab = QSBCore.NetworkAssetBundle.LoadAsset<GameObject>("Assets/Prefabs/NETWORK_Player_Body.prefab");
|
playerPrefab = QSBCore.NetworkAssetBundle.LoadAsset<GameObject>("Assets/Prefabs/NETWORK_Player_Body.prefab");
|
||||||
playerPrefab.GetRequiredComponent<NetworkIdentity>().SetValue("m_AssetId", 1.ToGuid().ToString("N"));
|
playerPrefab.GetRequiredComponent<NetworkIdentity>().SetValue("m_AssetId", 1.ToGuid().ToString("N"));
|
||||||
@ -98,21 +97,29 @@ namespace QSB
|
|||||||
ConfigureNetworkManager();
|
ConfigureNetworkManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetPlayerName()
|
private void InitPlayerName()
|
||||||
{
|
{
|
||||||
try
|
QSBCore.UnityEvents.RunWhen(PlayerData.IsLoaded, () =>
|
||||||
{
|
{
|
||||||
var profileManager = StandaloneProfileManager.SharedInstance;
|
try
|
||||||
profileManager.Initialize();
|
{
|
||||||
var profile = profileManager._currentProfile;
|
var titleScreenManager = FindObjectOfType<TitleScreenManager>();
|
||||||
var profileName = profile.profileName;
|
var profileManager = titleScreenManager._profileManager;
|
||||||
return profileName;
|
if (profileManager.GetType().Name == "MSStoreProfileManager")
|
||||||
}
|
{
|
||||||
catch (Exception ex)
|
PlayerName = (string)profileManager.GetType().GetProperty("userDisplayName").GetValue(profileManager);
|
||||||
{
|
}
|
||||||
DebugLog.ToConsole($"Error - Exception when getting player name : {ex}", MessageType.Error);
|
else
|
||||||
return "Player";
|
{
|
||||||
}
|
PlayerName = StandaloneProfileManager.SharedInstance.currentProfile.profileName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
DebugLog.ToConsole($"Error - Exception when getting player name : {ex}", MessageType.Error);
|
||||||
|
PlayerName = "Player";
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// create a new network prefab from the network object prefab template.
|
/// create a new network prefab from the network object prefab template.
|
||||||
|
@ -35,6 +35,8 @@ namespace QSB.QuantumSync
|
|||||||
{
|
{
|
||||||
Shrine = QSBWorldSync.GetUnityObjects<QuantumShrine>().First();
|
Shrine = QSBWorldSync.GetUnityObjects<QuantumShrine>().First();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UpdateFromDebugSetting();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PlayerLeave(PlayerInfo player)
|
public void PlayerLeave(PlayerInfo player)
|
||||||
@ -121,5 +123,82 @@ namespace QSB.QuantumSync
|
|||||||
var worldObj = obj.GetWorldObject<IQSBQuantumObject>();
|
var worldObj = obj.GetWorldObject<IQSBQuantumObject>();
|
||||||
return QSBPlayerManager.PlayerList.Where(x => x.EntangledObject == worldObj);
|
return QSBPlayerManager.PlayerList.Where(x => x.EntangledObject == worldObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#region debug shapes
|
||||||
|
|
||||||
|
private static GameObject _debugSphere, _debugCube, _debugCapsule;
|
||||||
|
|
||||||
|
private class DebugShape : MonoBehaviour { }
|
||||||
|
|
||||||
|
public static void UpdateFromDebugSetting()
|
||||||
|
{
|
||||||
|
if (QSBCore.ShowQuantumVisibilityObjects)
|
||||||
|
{
|
||||||
|
if (_debugSphere == null)
|
||||||
|
{
|
||||||
|
_debugSphere = QSBCore.DebugAssetBundle.LoadAsset<GameObject>("Assets/Prefabs/Sphere.prefab");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_debugCube == null)
|
||||||
|
{
|
||||||
|
_debugCube = QSBCore.DebugAssetBundle.LoadAsset<GameObject>("Assets/Prefabs/Cube.prefab");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_debugCapsule == null)
|
||||||
|
{
|
||||||
|
_debugCapsule = QSBCore.DebugAssetBundle.LoadAsset<GameObject>("Assets/Prefabs/Capsule.prefab");
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var quantumObject in QSBWorldSync.GetWorldObjects<IQSBQuantumObject>())
|
||||||
|
{
|
||||||
|
foreach (var shape in quantumObject.GetAttachedShapes())
|
||||||
|
{
|
||||||
|
if (shape is BoxShape boxShape)
|
||||||
|
{
|
||||||
|
var newCube = Instantiate(_debugCube);
|
||||||
|
newCube.transform.parent = shape.transform;
|
||||||
|
newCube.transform.localPosition = Vector3.zero;
|
||||||
|
newCube.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
||||||
|
newCube.transform.localScale = boxShape.size;
|
||||||
|
newCube.AddComponent<DebugShape>();
|
||||||
|
}
|
||||||
|
else if (shape is SphereShape sphereShape)
|
||||||
|
{
|
||||||
|
var newSphere = Instantiate(_debugSphere);
|
||||||
|
newSphere.transform.parent = shape.transform;
|
||||||
|
newSphere.transform.localPosition = Vector3.zero;
|
||||||
|
newSphere.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
||||||
|
newSphere.transform.localScale = Vector3.one * (sphereShape.radius * 2);
|
||||||
|
newSphere.AddComponent<DebugShape>();
|
||||||
|
}
|
||||||
|
else if (shape is CapsuleShape capsuleShape)
|
||||||
|
{
|
||||||
|
var newCapsule = Instantiate(_debugCapsule);
|
||||||
|
newCapsule.transform.parent = shape.transform;
|
||||||
|
newCapsule.transform.localPosition = Vector3.zero;
|
||||||
|
newCapsule.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
||||||
|
newCapsule.transform.localScale = new Vector3(capsuleShape.radius * 2, capsuleShape.height, capsuleShape.radius * 2);
|
||||||
|
newCapsule.AddComponent<DebugShape>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach (var quantumObject in QSBWorldSync.GetWorldObjects<IQSBQuantumObject>())
|
||||||
|
{
|
||||||
|
foreach (var shape in quantumObject.GetAttachedShapes())
|
||||||
|
{
|
||||||
|
var debugShape = shape.GetComponentInChildren<DebugShape>();
|
||||||
|
if (debugShape)
|
||||||
|
{
|
||||||
|
Destroy(debugShape.gameObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,57 +38,6 @@ namespace QSB.QuantumSync.WorldObjects
|
|||||||
|
|
||||||
public override void Init()
|
public override void Init()
|
||||||
{
|
{
|
||||||
if (QSBCore.ShowQuantumVisibilityObjects)
|
|
||||||
{
|
|
||||||
var debugBundle = QSBCore.DebugAssetBundle;
|
|
||||||
var sphere = debugBundle.LoadAsset<GameObject>("Assets/Prefabs/Sphere.prefab");
|
|
||||||
var cube = debugBundle.LoadAsset<GameObject>("Assets/Prefabs/Cube.prefab");
|
|
||||||
var capsule = debugBundle.LoadAsset<GameObject>("Assets/Prefabs/Capsule.prefab");
|
|
||||||
|
|
||||||
if (cube == null)
|
|
||||||
{
|
|
||||||
DebugLog.DebugWrite($"CUBE IS NULL");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sphere == null)
|
|
||||||
{
|
|
||||||
DebugLog.DebugWrite($"SPHERE IS NULL");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (capsule == null)
|
|
||||||
{
|
|
||||||
DebugLog.DebugWrite($"CAPSULE IS NULL");
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var shape in GetAttachedShapes())
|
|
||||||
{
|
|
||||||
if (shape is BoxShape boxShape)
|
|
||||||
{
|
|
||||||
var newCube = Object.Instantiate(cube);
|
|
||||||
newCube.transform.parent = shape.transform;
|
|
||||||
newCube.transform.localPosition = Vector3.zero;
|
|
||||||
newCube.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
|
||||||
newCube.transform.localScale = boxShape.size;
|
|
||||||
}
|
|
||||||
else if (shape is SphereShape sphereShape)
|
|
||||||
{
|
|
||||||
var newSphere = Object.Instantiate(sphere);
|
|
||||||
newSphere.transform.parent = shape.transform;
|
|
||||||
newSphere.transform.localPosition = Vector3.zero;
|
|
||||||
newSphere.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
|
||||||
newSphere.transform.localScale = Vector3.one * (sphereShape.radius * 2);
|
|
||||||
}
|
|
||||||
else if (shape is CapsuleShape capsuleShape)
|
|
||||||
{
|
|
||||||
var newCapsule = Object.Instantiate(capsule);
|
|
||||||
newCapsule.transform.parent = shape.transform;
|
|
||||||
newCapsule.transform.localPosition = Vector3.zero;
|
|
||||||
newCapsule.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
|
||||||
newCapsule.transform.localScale = new Vector3(capsuleShape.radius * 2, capsuleShape.height, capsuleShape.radius * 2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
StartDelayedReady();
|
StartDelayedReady();
|
||||||
QSBCore.UnityEvents.FireInNUpdates(LateInit, 5);
|
QSBCore.UnityEvents.FireInNUpdates(LateInit, 5);
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ namespace QSB.SaveSync.Messages
|
|||||||
public GameStateMessage(uint toId)
|
public GameStateMessage(uint toId)
|
||||||
{
|
{
|
||||||
To = toId;
|
To = toId;
|
||||||
var gameSave = StandaloneProfileManager.SharedInstance.currentProfileGameSave;
|
var gameSave = PlayerData._currentGameSave;
|
||||||
WarpedToTheEye = gameSave.warpedToTheEye;
|
WarpedToTheEye = gameSave.warpedToTheEye;
|
||||||
SecondsRemainingOnWarp = gameSave.secondsRemainingOnWarp;
|
SecondsRemainingOnWarp = gameSave.secondsRemainingOnWarp;
|
||||||
LaunchCodesGiven = PlayerData.KnowsLaunchCodes();
|
LaunchCodesGiven = PlayerData.KnowsLaunchCodes();
|
||||||
@ -89,7 +89,7 @@ namespace QSB.SaveSync.Messages
|
|||||||
|
|
||||||
PlayerData.ResetGame();
|
PlayerData.ResetGame();
|
||||||
|
|
||||||
var gameSave = StandaloneProfileManager.SharedInstance.currentProfileGameSave;
|
var gameSave = PlayerData._currentGameSave;
|
||||||
gameSave.loopCount = LoopCount;
|
gameSave.loopCount = LoopCount;
|
||||||
gameSave.knownFrequencies = KnownFrequencies;
|
gameSave.knownFrequencies = KnownFrequencies;
|
||||||
gameSave.knownSignals = KnownSignals;
|
gameSave.knownSignals = KnownSignals;
|
||||||
|
@ -16,7 +16,7 @@ namespace QSB.SaveSync.Messages
|
|||||||
{
|
{
|
||||||
new GameStateMessage(From).Send();
|
new GameStateMessage(From).Send();
|
||||||
|
|
||||||
var gameSave = StandaloneProfileManager.SharedInstance.currentProfileGameSave;
|
var gameSave = PlayerData._currentGameSave;
|
||||||
|
|
||||||
var factSaves = gameSave.shipLogFactSaves;
|
var factSaves = gameSave.shipLogFactSaves;
|
||||||
foreach (var item in factSaves)
|
foreach (var item in factSaves)
|
||||||
|
@ -15,9 +15,9 @@ namespace QSB.ShipSync.TransformSync
|
|||||||
protected override bool IsReady
|
protected override bool IsReady
|
||||||
=> Locator.GetShipBody() != null;
|
=> Locator.GetShipBody() != null;
|
||||||
|
|
||||||
public override void Start()
|
public override void OnStartClient()
|
||||||
{
|
{
|
||||||
base.Start();
|
base.OnStartClient();
|
||||||
LocalInstance = this;
|
LocalInstance = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -31,8 +31,7 @@ namespace QSB.ShipSync.TransformSync
|
|||||||
protected override void ApplyToAttached()
|
protected override void ApplyToAttached()
|
||||||
{
|
{
|
||||||
ApplyToSector();
|
ApplyToSector();
|
||||||
|
if (!ReferenceTransform)
|
||||||
if (ReferenceTransform == null || transform.position == Vector3.zero)
|
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -14,16 +14,16 @@ namespace QSB.Syncs.Sectored
|
|||||||
|
|
||||||
private int _sectorId = -1;
|
private int _sectorId = -1;
|
||||||
|
|
||||||
public override void Start()
|
public override void OnStartClient()
|
||||||
{
|
{
|
||||||
SectorSync = gameObject.AddComponent<SectorSync.SectorSync>();
|
SectorSync = gameObject.AddComponent<SectorSync.SectorSync>();
|
||||||
QSBSectorManager.Instance.TransformSyncs.Add(this);
|
QSBSectorManager.Instance.TransformSyncs.Add(this);
|
||||||
base.Start();
|
base.OnStartClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnDestroy()
|
public override void OnStopClient()
|
||||||
{
|
{
|
||||||
base.OnDestroy();
|
base.OnStopClient();
|
||||||
QSBSectorManager.Instance.TransformSyncs.Remove(this);
|
QSBSectorManager.Instance.TransformSyncs.Remove(this);
|
||||||
Destroy(SectorSync);
|
Destroy(SectorSync);
|
||||||
}
|
}
|
||||||
@ -48,14 +48,7 @@ namespace QSB.Syncs.Sectored
|
|||||||
|
|
||||||
protected void GetFromSector()
|
protected void GetFromSector()
|
||||||
{
|
{
|
||||||
if (ReferenceSector != null)
|
_sectorId = ReferenceSector?.ObjectId ?? -1;
|
||||||
{
|
|
||||||
_sectorId = ReferenceSector.ObjectId;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_sectorId = -1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void ApplyToSector()
|
protected void ApplyToSector()
|
||||||
|
@ -50,28 +50,21 @@ namespace QSB.Syncs.Sectored.Rigidbodies
|
|||||||
protected override void GetFromAttached()
|
protected override void GetFromAttached()
|
||||||
{
|
{
|
||||||
GetFromSector();
|
GetFromSector();
|
||||||
|
if (!ReferenceTransform)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (ReferenceTransform != null)
|
transform.position = ReferenceTransform.ToRelPos(AttachedRigidbody.GetPosition());
|
||||||
{
|
transform.rotation = ReferenceTransform.ToRelRot(AttachedRigidbody.GetRotation());
|
||||||
transform.position = ReferenceTransform.ToRelPos(AttachedRigidbody.GetPosition());
|
_relativeVelocity = ReferenceTransform.GetAttachedOWRigidbody().ToRelVel(AttachedRigidbody.GetVelocity(), AttachedRigidbody.GetPosition());
|
||||||
transform.rotation = ReferenceTransform.ToRelRot(AttachedRigidbody.GetRotation());
|
_relativeAngularVelocity = ReferenceTransform.GetAttachedOWRigidbody().ToRelAngVel(AttachedRigidbody.GetAngularVelocity());
|
||||||
_relativeVelocity = ReferenceTransform.GetAttachedOWRigidbody().ToRelVel(AttachedRigidbody.GetVelocity(), AttachedRigidbody.GetPosition());
|
|
||||||
_relativeAngularVelocity = ReferenceTransform.GetAttachedOWRigidbody().ToRelAngVel(AttachedRigidbody.GetAngularVelocity());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
transform.position = Vector3.zero;
|
|
||||||
transform.rotation = Quaternion.identity;
|
|
||||||
_relativeVelocity = Vector3.zero;
|
|
||||||
_relativeAngularVelocity = Vector3.zero;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void ApplyToAttached()
|
protected override void ApplyToAttached()
|
||||||
{
|
{
|
||||||
ApplyToSector();
|
ApplyToSector();
|
||||||
|
if (!ReferenceTransform)
|
||||||
if (ReferenceTransform == null || transform.position == Vector3.zero)
|
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using Mirror;
|
using QSB.Utility;
|
||||||
using QSB.Utility;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace QSB.Syncs.Sectored.Transforms
|
namespace QSB.Syncs.Sectored.Transforms
|
||||||
@ -12,36 +11,22 @@ namespace QSB.Syncs.Sectored.Transforms
|
|||||||
protected override Transform InitAttachedTransform()
|
protected override Transform InitAttachedTransform()
|
||||||
=> hasAuthority ? InitLocalTransform() : InitRemoteTransform();
|
=> hasAuthority ? InitLocalTransform() : InitRemoteTransform();
|
||||||
|
|
||||||
protected override void Deserialize(NetworkReader reader, bool initialState)
|
|
||||||
{
|
|
||||||
base.Deserialize(reader, initialState);
|
|
||||||
|
|
||||||
if (transform.position == Vector3.zero)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void GetFromAttached()
|
protected override void GetFromAttached()
|
||||||
{
|
{
|
||||||
GetFromSector();
|
GetFromSector();
|
||||||
|
if (!ReferenceTransform)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (ReferenceTransform != null)
|
transform.position = ReferenceTransform.ToRelPos(AttachedTransform.position);
|
||||||
{
|
transform.rotation = ReferenceTransform.ToRelRot(AttachedTransform.rotation);
|
||||||
transform.position = ReferenceTransform.ToRelPos(AttachedTransform.position);
|
|
||||||
transform.rotation = ReferenceTransform.ToRelRot(AttachedTransform.rotation);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
transform.position = Vector3.zero;
|
|
||||||
transform.rotation = Quaternion.identity;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void ApplyToAttached()
|
protected override void ApplyToAttached()
|
||||||
{
|
{
|
||||||
ApplyToSector();
|
ApplyToSector();
|
||||||
|
if (!ReferenceTransform)
|
||||||
if (ReferenceTransform == null || transform.position == Vector3.zero)
|
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
using Mirror;
|
using Mirror;
|
||||||
using OWML.Common;
|
using OWML.Common;
|
||||||
using QSB.Player;
|
using QSB.Player;
|
||||||
using QSB.Player.TransformSync;
|
|
||||||
using QSB.Utility;
|
using QSB.Utility;
|
||||||
using QSB.WorldSync;
|
using QSB.WorldSync;
|
||||||
using System;
|
using System;
|
||||||
@ -26,9 +25,9 @@ namespace QSB.Syncs
|
|||||||
{
|
{
|
||||||
if (_player == null)
|
if (_player == null)
|
||||||
{
|
{
|
||||||
DebugLog.ToConsole("Error - trying to get SyncBase.Player before Start has been called! "
|
DebugLog.ToConsole($"Error - trying to get SyncBase.Player for {netId} before Start has been called! "
|
||||||
+ "this really should not be happening!\n"
|
+ "this really should not be happening!\n"
|
||||||
+ $"{Environment.StackTrace}",
|
+ Environment.StackTrace,
|
||||||
MessageType.Error);
|
MessageType.Error);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,7 +53,12 @@ namespace QSB.Syncs
|
|||||||
|
|
||||||
if (IsPlayerObject)
|
if (IsPlayerObject)
|
||||||
{
|
{
|
||||||
if (!Player.IsReady && this is not PlayerTransformSync)
|
if (_player == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isLocalPlayer && !Player.IsReady)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -66,7 +70,6 @@ namespace QSB.Syncs
|
|||||||
|
|
||||||
protected abstract bool IsReady { get; }
|
protected abstract bool IsReady { get; }
|
||||||
protected abstract bool UseInterpolation { get; }
|
protected abstract bool UseInterpolation { get; }
|
||||||
protected virtual bool AllowDisabledAttachedObject => false;
|
|
||||||
protected abstract bool AllowNullReferenceTransform { get; }
|
protected abstract bool AllowNullReferenceTransform { get; }
|
||||||
protected virtual bool IsPlayerObject => false;
|
protected virtual bool IsPlayerObject => false;
|
||||||
protected virtual bool OnlyApplyOnDeserialize => false;
|
protected virtual bool OnlyApplyOnDeserialize => false;
|
||||||
@ -88,7 +91,7 @@ namespace QSB.Syncs
|
|||||||
protected abstract void GetFromAttached();
|
protected abstract void GetFromAttached();
|
||||||
protected abstract void ApplyToAttached();
|
protected abstract void ApplyToAttached();
|
||||||
|
|
||||||
public virtual void Start()
|
public override void OnStartClient()
|
||||||
{
|
{
|
||||||
if (IsPlayerObject)
|
if (IsPlayerObject)
|
||||||
{
|
{
|
||||||
@ -103,7 +106,7 @@ namespace QSB.Syncs
|
|||||||
QSBSceneManager.OnSceneLoaded += OnSceneLoaded;
|
QSBSceneManager.OnSceneLoaded += OnSceneLoaded;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void OnDestroy()
|
public override void OnStopClient()
|
||||||
{
|
{
|
||||||
if (IsPlayerObject && !hasAuthority && AttachedTransform != null)
|
if (IsPlayerObject && !hasAuthority && AttachedTransform != null)
|
||||||
{
|
{
|
||||||
@ -169,12 +172,11 @@ namespace QSB.Syncs
|
|||||||
|
|
||||||
if (AttachedTransform == null)
|
if (AttachedTransform == null)
|
||||||
{
|
{
|
||||||
DebugLog.ToConsole($"Warning - AttachedObject {LogName} is null.", MessageType.Warning);
|
DebugLog.ToConsole($"Error - AttachedObject {LogName} is null!", MessageType.Error);
|
||||||
IsInitialized = false;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!AttachedTransform.gameObject.activeInHierarchy && !AllowDisabledAttachedObject)
|
if (!AttachedTransform.gameObject.activeInHierarchy)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -185,16 +187,16 @@ namespace QSB.Syncs
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ReferenceTransform != null && ReferenceTransform.position == Vector3.zero && ReferenceTransform != Locator.GetRootTransform())
|
|
||||||
{
|
|
||||||
DebugLog.ToConsole($"Warning - {LogName}'s ReferenceTransform is at (0,0,0). ReferenceTransform:{ReferenceTransform.name}, AttachedObject:{AttachedTransform.name}", MessageType.Warning);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ReferenceTransform == Locator.GetRootTransform())
|
if (ReferenceTransform == Locator.GetRootTransform())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ReferenceTransform != null && ReferenceTransform.position == Vector3.zero)
|
||||||
|
{
|
||||||
|
DebugLog.ToConsole($"Warning - {LogName}'s ReferenceTransform is at (0,0,0). ReferenceTransform:{ReferenceTransform.name}, AttachedObject:{AttachedTransform.name}", MessageType.Warning);
|
||||||
|
}
|
||||||
|
|
||||||
if (UseInterpolation)
|
if (UseInterpolation)
|
||||||
{
|
{
|
||||||
SmoothPosition = SmartSmoothDamp(SmoothPosition, transform.position);
|
SmoothPosition = SmartSmoothDamp(SmoothPosition, transform.position);
|
||||||
|
@ -121,7 +121,7 @@ namespace QSB.TimeSync
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!QSBCore.SkipTitleScreen)
|
if (!QSBCore.AvoidTimeSync)
|
||||||
{
|
{
|
||||||
WakeUpOrSleep();
|
WakeUpOrSleep();
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using QSB.Tools.ProbeLauncherTool.WorldObjects;
|
using QSB.Tools.ProbeLauncherTool.WorldObjects;
|
||||||
using QSB.WorldSync;
|
using QSB.WorldSync;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace QSB.Tools.ProbeLauncherTool
|
namespace QSB.Tools.ProbeLauncherTool
|
||||||
{
|
{
|
||||||
@ -8,6 +9,12 @@ namespace QSB.Tools.ProbeLauncherTool
|
|||||||
public override WorldObjectType WorldObjectType => WorldObjectType.Both;
|
public override WorldObjectType WorldObjectType => WorldObjectType.Both;
|
||||||
|
|
||||||
public override void BuildWorldObjects(OWScene scene)
|
public override void BuildWorldObjects(OWScene scene)
|
||||||
=> QSBWorldSync.Init<QSBProbeLauncher, ProbeLauncher>(typeof(PlayerProbeLauncher));
|
{
|
||||||
|
QSBWorldSync.Init<QSBProbeLauncher, ProbeLauncher>(typeof(PlayerProbeLauncher));
|
||||||
|
QSBWorldSync.Init<QSBProbeLauncher, ProbeLauncher>(new[]
|
||||||
|
{
|
||||||
|
QSBWorldSync.GetUnityObjects<ShipCockpitController>().First().GetShipProbeLauncher()
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -11,7 +11,6 @@ namespace QSB.Tools.ProbeTool.TransformSync
|
|||||||
{
|
{
|
||||||
protected override float DistanceLeeway => 10f;
|
protected override float DistanceLeeway => 10f;
|
||||||
protected override bool UseInterpolation => true;
|
protected override bool UseInterpolation => true;
|
||||||
protected override bool AllowDisabledAttachedObject => true;
|
|
||||||
protected override bool IsPlayerObject => true;
|
protected override bool IsPlayerObject => true;
|
||||||
|
|
||||||
public static PlayerProbeSync LocalInstance { get; private set; }
|
public static PlayerProbeSync LocalInstance { get; private set; }
|
||||||
@ -63,37 +62,6 @@ namespace QSB.Tools.ProbeTool.TransformSync
|
|||||||
return body;
|
return body;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void GetFromAttached()
|
|
||||||
{
|
|
||||||
if (AttachedTransform.gameObject.activeInHierarchy)
|
|
||||||
{
|
|
||||||
base.GetFromAttached();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var probeOWRigidbody = Locator.GetProbe().GetOWRigidbody();
|
|
||||||
if (probeOWRigidbody == null)
|
|
||||||
{
|
|
||||||
DebugLog.ToConsole($"Warning - Could not find OWRigidbody of local probe.", MessageType.Warning);
|
|
||||||
}
|
|
||||||
|
|
||||||
var probeLauncher = Player.LocalProbeLauncher;
|
|
||||||
// TODO : make this sync to the *active* probe launcher's _launcherTransform
|
|
||||||
var launcherTransform = probeLauncher._launcherTransform;
|
|
||||||
probeOWRigidbody.SetPosition(launcherTransform.position);
|
|
||||||
probeOWRigidbody.SetRotation(launcherTransform.rotation);
|
|
||||||
|
|
||||||
base.GetFromAttached();
|
|
||||||
|
|
||||||
var currentReferenceSector = ReferenceSector;
|
|
||||||
var playerReferenceSector = Player.TransformSync.ReferenceSector;
|
|
||||||
|
|
||||||
if (currentReferenceSector != playerReferenceSector)
|
|
||||||
{
|
|
||||||
SetReferenceSector(playerReferenceSector);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override bool IsReady => AttachedTransform != null || Locator.GetProbe() != null;
|
protected override bool IsReady => AttachedTransform != null || Locator.GetProbe() != null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,16 +31,15 @@ namespace QSB.Utility
|
|||||||
|
|
||||||
private void DamageShipElectricalSystem() => ShipManager.Instance.ShipElectricalComponent.SetDamaged(true);
|
private void DamageShipElectricalSystem() => ShipManager.Instance.ShipElectricalComponent.SetDamaged(true);
|
||||||
|
|
||||||
private void Awake()
|
private void Awake() => enabled = QSBCore.DebugMode;
|
||||||
{
|
|
||||||
if (!QSBCore.DebugMode)
|
|
||||||
{
|
|
||||||
Destroy(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Update()
|
public void Update()
|
||||||
{
|
{
|
||||||
|
if (!Keyboard.current[Key.Q].isPressed)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 1 - Warp to first non local player
|
* 1 - Warp to first non local player
|
||||||
* 2 - Set time flowing
|
* 2 - Set time flowing
|
||||||
@ -51,7 +50,7 @@ namespace QSB.Utility
|
|||||||
* 7 - Warp to vessel
|
* 7 - Warp to vessel
|
||||||
* 8 - Place warp core into vessel
|
* 8 - Place warp core into vessel
|
||||||
* 9 - Load eye scene
|
* 9 - Load eye scene
|
||||||
* 0 -
|
* 0 - Die
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (Keyboard.current[Key.Numpad1].wasPressedThisFrame)
|
if (Keyboard.current[Key.Numpad1].wasPressedThisFrame)
|
||||||
@ -115,6 +114,11 @@ namespace QSB.Utility
|
|||||||
LoadManager.LoadSceneAsync(OWScene.EyeOfTheUniverse, true, LoadManager.FadeType.ToWhite);
|
LoadManager.LoadSceneAsync(OWScene.EyeOfTheUniverse, true, LoadManager.FadeType.ToWhite);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Keyboard.current[Key.Numpad0].wasPressedThisFrame)
|
||||||
|
{
|
||||||
|
Locator.GetDeathManager().KillPlayer(DeathType.Default);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,16 +4,29 @@ namespace QSB.Utility
|
|||||||
{
|
{
|
||||||
internal class DebugCameraSettings : MonoBehaviour
|
internal class DebugCameraSettings : MonoBehaviour
|
||||||
{
|
{
|
||||||
void Start()
|
public static void UpdateFromDebugSetting()
|
||||||
{
|
{
|
||||||
if (QSBCore.GreySkybox)
|
if (QSBCore.GreySkybox)
|
||||||
{
|
{
|
||||||
QSBSceneManager.OnSceneLoaded += OnSceneLoaded;
|
QSBSceneManager.OnSceneLoaded += OnSceneLoaded;
|
||||||
Camera.main.backgroundColor = Color.gray;
|
Camera.main.backgroundColor = Color.gray;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
QSBSceneManager.OnSceneLoaded -= OnSceneLoaded;
|
||||||
|
Camera.main.backgroundColor = _origColor;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnSceneLoaded(OWScene arg1, OWScene arg2, bool arg3)
|
private static Color _origColor;
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
_origColor = Camera.main.backgroundColor;
|
||||||
|
UpdateFromDebugSetting();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void OnSceneLoaded(OWScene arg1, OWScene arg2, bool arg3)
|
||||||
=> Camera.main.backgroundColor = Color.gray;
|
=> Camera.main.backgroundColor = Color.gray;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,11 +32,7 @@ namespace QSB.Utility
|
|||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
if (!QSBCore.DebugMode)
|
enabled = QSBCore.DebugMode;
|
||||||
{
|
|
||||||
Destroy(this);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
guiGUIStyle.fontSize = 9;
|
guiGUIStyle.fontSize = 9;
|
||||||
}
|
}
|
||||||
|
@ -12,20 +12,19 @@ namespace QSB.Utility
|
|||||||
|
|
||||||
public sealed override bool OnSerialize(NetworkWriter writer, bool initialState)
|
public sealed override bool OnSerialize(NetworkWriter writer, bool initialState)
|
||||||
{
|
{
|
||||||
var changed = base.OnSerialize(writer, initialState);
|
if (initialState)
|
||||||
if (initialState && isServer)
|
|
||||||
{
|
{
|
||||||
Serialize(writer, true);
|
Serialize(writer, true);
|
||||||
UpdatePrevData();
|
UpdatePrevData();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return changed;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public sealed override void OnDeserialize(NetworkReader reader, bool initialState)
|
public sealed override void OnDeserialize(NetworkReader reader, bool initialState)
|
||||||
{
|
{
|
||||||
base.OnDeserialize(reader, initialState);
|
if (initialState)
|
||||||
if (initialState && !isServer)
|
|
||||||
{
|
{
|
||||||
UpdatePrevData();
|
UpdatePrevData();
|
||||||
Deserialize(reader, true);
|
Deserialize(reader, true);
|
||||||
|
@ -26,8 +26,6 @@ namespace QSB.WorldSync
|
|||||||
|
|
||||||
public static void BuildWorldObjects(OWScene scene)
|
public static void BuildWorldObjects(OWScene scene)
|
||||||
{
|
{
|
||||||
GameInit();
|
|
||||||
|
|
||||||
if (PlayerTransformSync.LocalInstance == null)
|
if (PlayerTransformSync.LocalInstance == null)
|
||||||
{
|
{
|
||||||
DebugLog.ToConsole($"Warning - Tried to build WorldObjects when LocalPlayer is not ready! Building when ready...", MessageType.Warning);
|
DebugLog.ToConsole($"Warning - Tried to build WorldObjects when LocalPlayer is not ready! Building when ready...", MessageType.Warning);
|
||||||
@ -35,6 +33,8 @@ namespace QSB.WorldSync
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GameInit();
|
||||||
|
|
||||||
DoBuild(scene);
|
DoBuild(scene);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,7 +57,7 @@ namespace QSB.WorldSync
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
DebugLog.ToConsole($"Exception - Exception when trying to build WorldObjects of manager {manager.GetType().Name} : {ex.Message} Stacktrace :\r\n{ex.StackTrace}", MessageType.Error);
|
DebugLog.ToConsole($"Exception - Exception when trying to build WorldObjects of manager {manager.GetType().Name} : {ex}", MessageType.Error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,6 +78,11 @@ namespace QSB.WorldSync
|
|||||||
|
|
||||||
public static void RemoveWorldObjects()
|
public static void RemoveWorldObjects()
|
||||||
{
|
{
|
||||||
|
if (!AllObjectsReady)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
GameReset();
|
GameReset();
|
||||||
|
|
||||||
AllObjectsAdded = false;
|
AllObjectsAdded = false;
|
||||||
@ -91,7 +96,7 @@ namespace QSB.WorldSync
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
DebugLog.ToConsole($"Error - Exception in OnRemoval() for {item.GetType()}. Message : {e.Message}, Stack trace : {e.StackTrace}", MessageType.Error);
|
DebugLog.ToConsole($"Error - Exception in OnRemoval() for {item.GetType()}. {e}", MessageType.Error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using QSB.Player;
|
using UnityEngine;
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace QSB.WorldSync
|
namespace QSB.WorldSync
|
||||||
{
|
{
|
||||||
@ -9,7 +8,7 @@ namespace QSB.WorldSync
|
|||||||
public int ObjectId { get; init; }
|
public int ObjectId { get; init; }
|
||||||
public T AttachedObject { get; init; }
|
public T AttachedObject { get; init; }
|
||||||
public string Name => AttachedObject == null ? "<NullObject!>" : AttachedObject.name;
|
public string Name => AttachedObject == null ? "<NullObject!>" : AttachedObject.name;
|
||||||
public string LogName => $"{QSBPlayerManager.LocalPlayerId}.{ObjectId}:{GetType().Name} ({Name})";
|
public string LogName => $"{ObjectId}:{GetType().Name} ({Name})";
|
||||||
|
|
||||||
public virtual void Init() { }
|
public virtual void Init() { }
|
||||||
public virtual void OnRemoval() { }
|
public virtual void OnRemoval() { }
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"debugMode": true,
|
"debugMode": false,
|
||||||
"drawLines": true,
|
"drawLines": false,
|
||||||
"showQuantumVisibilityObjects": true,
|
"showQuantumVisibilityObjects": false,
|
||||||
"showDebugLabels": true,
|
"showDebugLabels": false,
|
||||||
"avoidTimeSync": false,
|
"avoidTimeSync": false,
|
||||||
"skipTitleScreen": true,
|
"skipTitleScreen": true,
|
||||||
"greySkybox": true
|
"greySkybox": true
|
||||||
|
Loading…
x
Reference in New Issue
Block a user