mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-20 15:41:01 +00:00
fix it
This commit is contained in:
parent
6dcce3da84
commit
24cc63012a
@ -13,6 +13,6 @@ internal class AirlockManager : WorldObjectManager
|
||||
|
||||
public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct)
|
||||
{
|
||||
await QSBWorldSync.InitWithVariableSync<QSBGhostAirlock, GhostAirlock, AirlockVariableSyncer>(ct);
|
||||
await QSBWorldSync.InitWithVariableSync<QSBGhostAirlock, GhostAirlock, AirlockVariableSyncer>(ct, QSBNetworkManager.singleton.AirlockPrefab);
|
||||
}
|
||||
}
|
@ -1,13 +1,28 @@
|
||||
using QSB.Utility.VariableSync;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using QSB.EchoesOfTheEye.AirlockSync.WorldObjects;
|
||||
using QSB.Utility.VariableSync;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
|
||||
namespace QSB.EchoesOfTheEye.AirlockSync.VariableSync;
|
||||
|
||||
internal class AirlockVariableSyncer : WorldObjectVariableSyncer<Vector3[]>
|
||||
internal class AirlockVariableSyncer : WorldObjectVariableSyncer<Vector3[], QSBGhostAirlock>
|
||||
{
|
||||
protected override void Update()
|
||||
{
|
||||
base.Update();
|
||||
|
||||
var rotatingElements = AttachedWorldObject.AttachedObject._interface._rotatingElements;
|
||||
|
||||
if (hasAuthority)
|
||||
{
|
||||
Value = rotatingElements.Select(x => x.localRotation.eulerAngles).ToArray();
|
||||
}
|
||||
else
|
||||
{
|
||||
for (var i = 0; i < rotatingElements.Length; i++)
|
||||
{
|
||||
rotatingElements[i].localRotation = Quaternion.Euler(Value[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,6 +24,6 @@ internal class DoorManager : WorldObjectManager
|
||||
|
||||
public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct)
|
||||
{
|
||||
await QSBWorldSync.InitWithVariableSync<QSBEclipseDoorController, EclipseDoorController, EclipseDoorVariableSyncer>(ct);
|
||||
await QSBWorldSync.InitWithVariableSync<QSBEclipseDoorController, EclipseDoorController, EclipseDoorVariableSyncer>(ct, QSBNetworkManager.singleton.DoorPrefab);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
using QSB.Utility.VariableSync;
|
||||
using QSB.EchoesOfTheEye.EclipseDoors.WorldObjects;
|
||||
using QSB.Utility.VariableSync;
|
||||
using UnityEngine;
|
||||
|
||||
namespace QSB.EchoesOfTheEye.EclipseDoors.VariableSync;
|
||||
|
||||
public class EclipseDoorVariableSyncer : WorldObjectVariableSyncer<Vector3> { }
|
||||
internal class EclipseDoorVariableSyncer : WorldObjectVariableSyncer<Vector3, QSBEclipseDoorController> { }
|
||||
|
@ -23,6 +23,6 @@ internal class EclipseElevatorManager : WorldObjectManager
|
||||
|
||||
public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct)
|
||||
{
|
||||
await QSBWorldSync.InitWithVariableSync<QSBEclipseElevatorController, EclipseElevatorController, EclipseElevatorVariableSyncer>(ct);
|
||||
await QSBWorldSync.InitWithVariableSync<QSBEclipseElevatorController, EclipseElevatorController, EclipseElevatorVariableSyncer>(ct, QSBNetworkManager.singleton.ElevatorPrefab);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
using QSB.Utility.VariableSync;
|
||||
using QSB.EchoesOfTheEye.EclipseElevators.WorldObjects;
|
||||
using QSB.Utility.VariableSync;
|
||||
using UnityEngine;
|
||||
|
||||
namespace QSB.EchoesOfTheEye.EclipseElevators.VariableSync;
|
||||
|
||||
internal class EclipseElevatorVariableSyncer : WorldObjectVariableSyncer<Vector3> { }
|
||||
internal class EclipseElevatorVariableSyncer : WorldObjectVariableSyncer<Vector3, QSBEclipseElevatorController> { }
|
@ -7,6 +7,7 @@ using QSB.Anglerfish.TransformSync;
|
||||
using QSB.AuthoritySync;
|
||||
using QSB.ClientServerStateSync;
|
||||
using QSB.DeathSync;
|
||||
using QSB.EchoesOfTheEye.AirlockSync.VariableSync;
|
||||
using QSB.EchoesOfTheEye.EclipseDoors.VariableSync;
|
||||
using QSB.EchoesOfTheEye.EclipseElevators.VariableSync;
|
||||
using QSB.EchoesOfTheEye.RaftSync.TransformSync;
|
||||
@ -48,6 +49,7 @@ public class QSBNetworkManager : NetworkManager, IAddComponentOnStart
|
||||
public GameObject RaftPrefab { get; private set; }
|
||||
public GameObject DoorPrefab { get; private set; }
|
||||
public GameObject ElevatorPrefab { get; private set; }
|
||||
public GameObject AirlockPrefab { get; private set; }
|
||||
private string PlayerName { get; set; }
|
||||
|
||||
private const int MaxConnections = 128;
|
||||
@ -128,6 +130,9 @@ public class QSBNetworkManager : NetworkManager, IAddComponentOnStart
|
||||
ElevatorPrefab = MakeNewNetworkObject(10, "NetworkEclipseElevator", typeof(EclipseElevatorVariableSyncer));
|
||||
spawnPrefabs.Add(ElevatorPrefab);
|
||||
|
||||
AirlockPrefab = MakeNewNetworkObject(11, "NetworkGhostAirlock", typeof(AirlockVariableSyncer));
|
||||
spawnPrefabs.Add(AirlockPrefab);
|
||||
|
||||
ConfigureNetworkManager();
|
||||
}
|
||||
|
||||
|
@ -3,12 +3,13 @@ using UnityEngine.SceneManagement;
|
||||
|
||||
namespace QSB.Utility.VariableSync;
|
||||
|
||||
public class WorldObjectVariableSyncer<T> : BaseVariableSyncer<T>, IWorldObjectVariableSyncer
|
||||
public class WorldObjectVariableSyncer<TSyncType, TWorldObjectType> : BaseVariableSyncer<TSyncType>, IWorldObjectVariableSyncer
|
||||
where TWorldObjectType : IWorldObject
|
||||
{
|
||||
public IWorldObject AttachedWorldObject { get; private set; }
|
||||
public TWorldObjectType AttachedWorldObject { get; private set; }
|
||||
|
||||
public void Init(IWorldObject worldObject)
|
||||
=> AttachedWorldObject = worldObject;
|
||||
=> AttachedWorldObject = (TWorldObjectType)worldObject;
|
||||
|
||||
public override void OnStartClient()
|
||||
{
|
||||
|
@ -313,7 +313,7 @@ public static class QSBWorldSync
|
||||
}
|
||||
}
|
||||
|
||||
public static async UniTask InitWithVariableSync<TWorldObject, TUnityObject, TVariableSyncer>(CancellationToken ct)
|
||||
public static async UniTask InitWithVariableSync<TWorldObject, TUnityObject, TVariableSyncer>(CancellationToken ct, GameObject prefab)
|
||||
where TWorldObject : VariableSyncedWorldObject<TUnityObject, TVariableSyncer>, new()
|
||||
where TUnityObject : MonoBehaviour
|
||||
where TVariableSyncer : IWorldObjectVariableSyncer
|
||||
@ -330,7 +330,7 @@ public static class QSBWorldSync
|
||||
{
|
||||
foreach (var item in allWorldObjects)
|
||||
{
|
||||
var networkObject = UnityEngine.Object.Instantiate(QSBNetworkManager.singleton.ElevatorPrefab);
|
||||
var networkObject = UnityEngine.Object.Instantiate(prefab);
|
||||
networkObject.SpawnWithServerAuthority();
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user