Skip to content

Commit 34031be

Browse files
committed
Stabilized and optimized library
1 parent 5426f4a commit 34031be

File tree

4 files changed

+25
-16
lines changed

4 files changed

+25
-16
lines changed

MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs

+9-9
Original file line numberDiff line numberDiff line change
@@ -266,12 +266,12 @@ internal void FlushToClient(int clientId)
266266
using (BinaryWriter writer = new BinaryWriter(stream))
267267
{
268268
//Write all indexes
269-
writer.Write(dirtyFields.Length);
269+
writer.Write((byte)dirtyFields.Length);
270+
writer.Write(networkId); //NetId
271+
writer.Write(networkedObject.GetOrderIndex(this)); //Behaviour OrderIndex
270272
for (byte i = 0; i < dirtyFields.Length; i++)
271273
{
272-
writer.Write(networkId);
273-
writer.Write(networkedObject.GetOrderIndex(this));
274-
writer.Write(i); //Index
274+
writer.Write(i); //FieldIndex
275275
switch (syncedFieldTypes[i])
276276
{
277277
case FieldType.Bool:
@@ -332,8 +332,8 @@ internal void FlushToClient(int clientId)
332332
break;
333333
}
334334
}
335-
NetworkingManager.singleton.Send(clientId, "MLAPI_SYNC_VAR_UPDATE", "MLAPI_RELIABLE_FRAGMENTED_SEQUENCED", stream.ToArray());
336335
}
336+
NetworkingManager.singleton.Send(clientId, "MLAPI_SYNC_VAR_UPDATE", "MLAPI_RELIABLE_FRAGMENTED_SEQUENCED", stream.ToArray());
337337
}
338338
}
339339

@@ -353,14 +353,14 @@ internal void SyncVarUpdate()
353353
{
354354
//Write all indexes
355355
writer.Write(dirtyCount);
356+
writer.Write(networkId); //NetId
357+
writer.Write(networkedObject.GetOrderIndex(this)); //Behaviour OrderIndex
356358
for (byte i = 0; i < dirtyFields.Length; i++)
357359
{
358360
//Writes all the indexes of the dirty syncvars.
359361
if (dirtyFields[i] == true)
360362
{
361-
writer.Write(networkId);
362-
writer.Write(networkedObject.GetOrderIndex(this));
363-
writer.Write(i); //Index
363+
writer.Write(i); //FieldIndex
364364
switch (syncedFieldTypes[i])
365365
{
366366
case FieldType.Bool:
@@ -425,8 +425,8 @@ internal void SyncVarUpdate()
425425
dirtyFields[i] = false;
426426
}
427427
}
428-
NetworkingManager.singleton.Send("MLAPI_SYNC_VAR_UPDATE", "MLAPI_RELIABLE_FRAGMENTED_SEQUENCED", stream.ToArray(), ownerClientId);
429428
}
429+
NetworkingManager.singleton.Send("MLAPI_SYNC_VAR_UPDATE", "MLAPI_RELIABLE_FRAGMENTED_SEQUENCED", stream.ToArray());
430430
}
431431
lastSyncTime = Time.time;
432432
}

MLAPI/MonoBehaviours/Core/NetworkedObject.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,7 @@ internal void InvokeBehaviourNetworkSpawn()
8686
if(!childNetworkedBehaviours[i].networkedStartInvoked)
8787
{
8888
childNetworkedBehaviours[i].NetworkStart();
89-
if (NetworkingManager.singleton.isServer)
90-
childNetworkedBehaviours[i].SyncVarInit();
89+
childNetworkedBehaviours[i].SyncVarInit();
9190
}
9291
}
9392
}

MLAPI/MonoBehaviours/Core/NetworkingManager.cs

+14-4
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,16 @@ private void HandleIncomingData(int clientId, byte[] data, int channelId)
451451
//Custom message, invoke all message handlers
452452
if(targeted)
453453
{
454+
if(!MessageManager.targetedMessages.ContainsKey(messageType))
455+
{
456+
Debug.LogWarning("MLAPI: No handlers for the given messagetype");
457+
return;
458+
}
459+
else if(!MessageManager.targetedMessages[messageType].ContainsKey(targetNetworkId))
460+
{
461+
Debug.LogWarning("MLAPI: No handlers for the given networkId");
462+
return;
463+
}
454464
List<int> handlerIds = MessageManager.targetedMessages[messageType][targetNetworkId];
455465
for (int i = 0; i < handlerIds.Count; i++)
456466
{
@@ -688,20 +698,20 @@ private void HandleIncomingData(int clientId, byte[] data, int channelId)
688698
}
689699
}
690700
break;
691-
case 9:
701+
case 9: //Syncvar
692702
if (isClient)
693703
{
694704
using (MemoryStream messageReadStream = new MemoryStream(incommingData))
695705
{
696706
using (BinaryReader messageReader = new BinaryReader(messageReadStream))
697707
{
698708
byte dirtyCount = messageReader.ReadByte();
699-
if(dirtyCount > 0)
709+
uint netId = messageReader.ReadUInt32();
710+
ushort orderIndex = messageReader.ReadUInt16();
711+
if (dirtyCount > 0)
700712
{
701713
for (int i = 0; i < dirtyCount; i++)
702714
{
703-
uint netId = messageReader.ReadUInt32(); //NetId the syncvar is from
704-
ushort orderIndex = messageReader.ReadUInt16();
705715
byte fieldIndex = messageReader.ReadByte();
706716
if(!SpawnManager.spawnedObjects.ContainsKey(netId))
707717
{

MLAPI/MonoBehaviours/Prototyping/NetworkedTransform.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ private void Update()
8181
writer.Write(transform.rotation.eulerAngles.z);
8282
}
8383
if (isServer)
84-
SendToNonLocalClientsTarget("MLAPI_OnRecieveTransformFromClient", "MLAPI_POSITION_UPDATE", writeStream.GetBuffer());
84+
SendToClientsTarget("MLAPI_OnRecieveTransformFromServer", "MLAPI_POSITION_UPDATE", writeStream.GetBuffer());
8585
else
8686
SendToServerTarget("MLAPI_OnRecieveTransformFromClient", "MLAPI_POSITION_UPDATE", writeStream.GetBuffer());
8787
}

0 commit comments

Comments
 (0)