Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. [ExcludeComponent(typeof(NetworkIDComponent))]
  2. struct AssignNetworkIDJob : IJobForEachWithEntity_EBC<OutgoingRpcDataStreamBufferElement, NetworkStreamConnection>
  3. {
  4. public EntityCommandBuffer ECBuffer;
  5. public NativeArray<int> NumberOfNetworkIDs;
  6. public NativeQueue<int> FreeNetworkIDs;
  7. public RpcQueue<RpcSetNetworkID> RpcQueue;
  8.  
  9. public void Execute(Entity entity, int index, DynamicBuffer<OutgoingRpcDataStreamBufferElement> buffer, [ReadOnly] ref NetworkStreamConnection connection)
  10. {
  11. if (!connection.value.IsCreated)
  12. {
  13. return;
  14. }
  15.  
  16. // send the Rpc to assign network ID
  17. int NetworkID;
  18. if(!FreeNetworkIDs.TryDequeue(out NetworkID))
  19. {
  20. // Avoid using 0
  21. NetworkID = NumberOfNetworkIDs[0] + 1;
  22. NumberOfNetworkIDs[0] = NetworkID;
  23. }
  24.  
  25. ECBuffer.AddComponent(entity, new NetworkIDComponent { value = NetworkID });
  26. RpcQueue.Schedule(buffer, new RpcSetNetworkID { networkID = NetworkID });
  27. }
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement