static void HandleMeshMessage(PacketBuffer packet, NetworkReader reader, Dictionary <ulong, Resource> resources) { uint meshId = 0; // Peek the mesh ID. meshId = packet.PeekUInt32(PacketHeader.Size); Resource resource; SimpleMesh mesh = null; // If it exists, make sure it's a mesh. if (resources.TryGetValue(ResourceUtil.UniqueKey(new PlaceholderMesh(meshId)), out resource)) { Assert.Equal((ushort)RoutingID.Mesh, resource.TypeID); mesh = (SimpleMesh)resource; } switch (packet.Header.MessageID) { case (int)MeshMessageType.Invalid: Assert.True(false, "Invalid mesh message sent"); break; case (int)MeshMessageType.Destroy: Assert.NotNull(mesh); resources.Remove(mesh.UniqueKey()); break; case (int)MeshMessageType.Create: // Create message. Should not already exists. Assert.Null(mesh);//, "Recreating existing mesh."); mesh = new SimpleMesh(meshId); Assert.True(mesh.ReadCreate(reader)); resources.Add(mesh.UniqueKey(), mesh); break; // Not handling these messages. case (int)MeshMessageType.Redefine: case (int)MeshMessageType.Finalise: break; default: Assert.NotNull(mesh); mesh.ReadTransfer(packet.Header.MessageID, reader); break; } }