This commit is contained in:
2025-07-30 08:25:50 +02:00
parent 159e9adcd7
commit 363b20a067
2 changed files with 3 additions and 20 deletions

View File

@@ -475,24 +475,6 @@ namespace RebootKit.Engine.Network {
return false; return false;
} }
// @NOTE: We are assuming that message buffer is already initialized with header and count of entities.
static bool CanFitNextEntityInMessage(NetworkMessageBuffer messageBuffer, int dataSizeToFit) {
if (!messageBuffer.Writer.WillFit(dataSizeToFit)) {
return false;
}
// Increment count of entities in the message
using NetworkBufferReader reader = new NetworkBufferReader(messageBuffer.GetDataSlice(),
NetworkMessageHeader.k_HeaderSize);
reader.Read(out byte count);
if (count >= byte.MaxValue) {
return false;
}
return true;
}
internal bool WriteActorTransformState(ulong clientID, ActorTransformSyncData transformData) { internal bool WriteActorTransformState(ulong clientID, ActorTransformSyncData transformData) {
if (!RR.IsServer()) { if (!RR.IsServer()) {
s_Logger.Error("WriteActorTransformState can only be called on the server."); s_Logger.Error("WriteActorTransformState can only be called on the server.");
@@ -503,7 +485,7 @@ namespace RebootKit.Engine.Network {
int dataSizeToFit = transformData.GetMaxBytes(); int dataSizeToFit = transformData.GetMaxBytes();
NetworkMessageBuffer messageBuffer = clientState.ActorsTransformUpdates; NetworkMessageBuffer messageBuffer = clientState.ActorsTransformUpdates;
if (!CanFitNextEntityInMessage(messageBuffer, dataSizeToFit)) { if (!messageBuffer.Writer.WillFit(dataSizeToFit)) {
return false; return false;
} }

View File

@@ -24,7 +24,8 @@ namespace RebootKit.Engine.Simulation {
readonly List<Actor> m_InSceneActors = new List<Actor>(); readonly List<Actor> m_InSceneActors = new List<Actor>();
readonly List<Actor> m_SpawnedActors = new List<Actor>(); readonly List<Actor> m_SpawnedActors = new List<Actor>();
ushort m_ActorIDCounter = 0; // @NOTE: 0 is reserved for no actor so we should start assigning IDs from 1.
ushort m_ActorIDCounter;
public ushort InSceneActorsCount { get { return (ushort) m_InSceneActors.Count; } } public ushort InSceneActorsCount { get { return (ushort) m_InSceneActors.Count; } }
public ushort SpawnedActorsCount { get { return (ushort) m_SpawnedActors.Count; } } public ushort SpawnedActorsCount { get { return (ushort) m_SpawnedActors.Count; } }