mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-22 03:40:54 +00:00
oops forgot to convert this to constructor
This commit is contained in:
parent
da1819c51d
commit
0e5e75a83a
@ -1,5 +1,4 @@
|
|||||||
using OWML.Common;
|
using OWML.Common;
|
||||||
using QSB.Events;
|
|
||||||
using QSB.Messaging;
|
using QSB.Messaging;
|
||||||
using QSB.Utility;
|
using QSB.Utility;
|
||||||
using QuantumUNET.Transport;
|
using QuantumUNET.Transport;
|
||||||
|
@ -111,10 +111,7 @@ namespace QSB.Player.Events
|
|||||||
|
|
||||||
QSBWorldSync.GetWorldObjects<IQSBQuantumObject>().ForEach(x =>
|
QSBWorldSync.GetWorldObjects<IQSBQuantumObject>().ForEach(x =>
|
||||||
{
|
{
|
||||||
x.SendMessage(new QuantumAuthorityMessage
|
x.SendMessage(new QuantumAuthorityMessage(x.ControllingPlayer));
|
||||||
{
|
|
||||||
AuthorityOwner = x.ControllingPlayer
|
|
||||||
});
|
|
||||||
|
|
||||||
if (x is QSBQuantumMoon qsbQuantumMoon)
|
if (x is QSBQuantumMoon qsbQuantumMoon)
|
||||||
{
|
{
|
||||||
|
@ -7,13 +7,11 @@ namespace QSB.QuantumSync.Events
|
|||||||
{
|
{
|
||||||
public class QuantumAuthorityMessage : QSBWorldObjectMessage<IQSBQuantumObject>
|
public class QuantumAuthorityMessage : QSBWorldObjectMessage<IQSBQuantumObject>
|
||||||
{
|
{
|
||||||
public uint AuthorityOwner;
|
private uint AuthorityOwner;
|
||||||
|
|
||||||
public override void Deserialize(QNetworkReader reader)
|
public QuantumAuthorityMessage(uint authorityOwner) => AuthorityOwner = authorityOwner;
|
||||||
{
|
|
||||||
base.Deserialize(reader);
|
public QuantumAuthorityMessage() {}
|
||||||
AuthorityOwner = reader.ReadUInt32();
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Serialize(QNetworkWriter writer)
|
public override void Serialize(QNetworkWriter writer)
|
||||||
{
|
{
|
||||||
@ -21,6 +19,12 @@ namespace QSB.QuantumSync.Events
|
|||||||
writer.Write(AuthorityOwner);
|
writer.Write(AuthorityOwner);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void Deserialize(QNetworkReader reader)
|
||||||
|
{
|
||||||
|
base.Deserialize(reader);
|
||||||
|
AuthorityOwner = reader.ReadUInt32();
|
||||||
|
}
|
||||||
|
|
||||||
public override bool ShouldReceive
|
public override bool ShouldReceive
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -18,12 +18,10 @@ namespace QSB.QuantumSync
|
|||||||
public override WorldObjectType WorldObjectType => WorldObjectType.Both;
|
public override WorldObjectType WorldObjectType => WorldObjectType.Both;
|
||||||
|
|
||||||
public static QuantumShrine Shrine { get; private set; }
|
public static QuantumShrine Shrine { get; private set; }
|
||||||
public static QuantumManager Instance { get; private set; }
|
|
||||||
|
|
||||||
public override void Awake()
|
public override void Awake()
|
||||||
{
|
{
|
||||||
base.Awake();
|
base.Awake();
|
||||||
Instance = this;
|
|
||||||
QSBPlayerManager.OnRemovePlayer += PlayerLeave;
|
QSBPlayerManager.OnRemovePlayer += PlayerLeave;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,10 +58,7 @@ namespace QSB.QuantumSync
|
|||||||
{
|
{
|
||||||
if (obj.ControllingPlayer == playerId)
|
if (obj.ControllingPlayer == playerId)
|
||||||
{
|
{
|
||||||
obj.SendMessage(new QuantumAuthorityMessage
|
obj.SendMessage(new QuantumAuthorityMessage(obj.IsEnabled ? QSBPlayerManager.LocalPlayerId : 0u));
|
||||||
{
|
|
||||||
AuthorityOwner = obj.IsEnabled ? QSBPlayerManager.LocalPlayerId : 0u
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -131,7 +126,10 @@ namespace QSB.QuantumSync
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var isInFrustum = (bool)frustumMethod.Invoke(tracker, new object[] { player.Camera.GetFrustumPlanes() });
|
var isInFrustum = (bool)frustumMethod.Invoke(tracker, new object[]
|
||||||
|
{
|
||||||
|
player.Camera.GetFrustumPlanes()
|
||||||
|
});
|
||||||
if (isInFrustum)
|
if (isInFrustum)
|
||||||
{
|
{
|
||||||
playersWhoCanSee.Add(player);
|
playersWhoCanSee.Add(player);
|
||||||
@ -143,9 +141,9 @@ namespace QSB.QuantumSync
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsVisible(ShapeVisibilityTracker tracker, bool ignoreLocalCamera) => tracker.gameObject.activeInHierarchy
|
public static bool IsVisible(ShapeVisibilityTracker tracker, bool ignoreLocalCamera) => tracker.gameObject.activeInHierarchy
|
||||||
&& IsVisibleUsingCameraFrustum(tracker, ignoreLocalCamera).Item1
|
&& IsVisibleUsingCameraFrustum(tracker, ignoreLocalCamera).Item1
|
||||||
&& QSBPlayerManager.GetPlayersWithCameras(!ignoreLocalCamera)
|
&& QSBPlayerManager.GetPlayersWithCameras(!ignoreLocalCamera)
|
||||||
.Any(x => VisibilityOccluder.CanYouSee(tracker, x.Camera.mainCamera.transform.position));
|
.Any(x => VisibilityOccluder.CanYouSee(tracker, x.Camera.mainCamera.transform.position));
|
||||||
|
|
||||||
public static IEnumerable<PlayerInfo> GetEntangledPlayers(QuantumObject obj)
|
public static IEnumerable<PlayerInfo> GetEntangledPlayers(QuantumObject obj)
|
||||||
{
|
{
|
||||||
|
@ -176,10 +176,7 @@ namespace QSB.QuantumSync.WorldObjects
|
|||||||
}
|
}
|
||||||
|
|
||||||
// no one is controlling this object right now, request authority
|
// no one is controlling this object right now, request authority
|
||||||
((IQSBQuantumObject)this).SendMessage(new QuantumAuthorityMessage
|
((IQSBQuantumObject)this).SendMessage(new QuantumAuthorityMessage(QSBPlayerManager.LocalPlayerId));
|
||||||
{
|
|
||||||
AuthorityOwner = QSBPlayerManager.LocalPlayerId
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDisable(Shape s)
|
private void OnDisable(Shape s)
|
||||||
@ -208,10 +205,7 @@ namespace QSB.QuantumSync.WorldObjects
|
|||||||
|
|
||||||
var id = ObjectId;
|
var id = ObjectId;
|
||||||
// send event to other players that we're releasing authority
|
// send event to other players that we're releasing authority
|
||||||
((IQSBQuantumObject)this).SendMessage(new QuantumAuthorityMessage
|
((IQSBQuantumObject)this).SendMessage(new QuantumAuthorityMessage(0u));
|
||||||
{
|
|
||||||
AuthorityOwner = 0u
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user