mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-21 18:40:03 +00:00
QSBNetworkBehaviour: SendInitialState
This commit is contained in:
parent
7d0ae8fcec
commit
c571d3eba7
@ -57,6 +57,33 @@ namespace QSB.Utility
|
||||
}
|
||||
}
|
||||
|
||||
public void SendInitialState(uint to)
|
||||
{
|
||||
if (!isClient)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!hasAuthority)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!NetworkClient.ready)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_lastSendTime = NetworkTime.localTime;
|
||||
|
||||
using var writer = NetworkWriterPool.GetWriter();
|
||||
Serialize(writer);
|
||||
UpdatePrevData();
|
||||
|
||||
var data = writer.ToArraySegment();
|
||||
CmdSendInitialData(to, data);
|
||||
}
|
||||
|
||||
[Command(channel = Channels.Reliable, requiresAuthority = true)]
|
||||
private void CmdSendDataReliable(ArraySegment<byte> data) => RpcSendDataReliable(data);
|
||||
|
||||
@ -69,6 +96,12 @@ namespace QSB.Utility
|
||||
[ClientRpc(channel = Channels.Unreliable, includeOwner = false)]
|
||||
private void RpcSendDataUnreliable(ArraySegment<byte> data) => OnData(data);
|
||||
|
||||
[Command(channel = Channels.Reliable, requiresAuthority = true)]
|
||||
private void CmdSendInitialData(uint to, ArraySegment<byte> data) => TargetSendInitialData(to.GetNetworkConnection(), data);
|
||||
|
||||
[TargetRpc(channel = Channels.Reliable)]
|
||||
private void TargetSendInitialData(NetworkConnection target, ArraySegment<byte> data) => OnData(data);
|
||||
|
||||
private void OnData(ArraySegment<byte> data)
|
||||
{
|
||||
using var reader = NetworkReaderPool.GetReader(data);
|
||||
|
@ -31,6 +31,11 @@ namespace QSB.WorldSync
|
||||
{
|
||||
worldObject.SendInitialState(to);
|
||||
}
|
||||
|
||||
foreach (var qsbNetworkBehaviour in QSBWorldSync.GetUnityObjects<QSBNetworkBehaviour>())
|
||||
{
|
||||
qsbNetworkBehaviour.SendInitialState(to);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user