/// <inheritdoc />
 public override void DeSerialize(QNetMessageReader reader)
 {
     ObjectIdentity = reader.ReadInt16();
     PrefabIdentity = reader.ReadInt16();
     OwnerIdentity  = reader.ReadInt16();
     Position       = reader.ReadVector3();
     Rotation       = Quaternion.Euler(reader.ReadVector3());
     Scale          = reader.ReadVector3();
 }
Exemplo n.º 2
0
        internal static void OnServerObjectDelete(QNetMessage message, QNetMessageReader reader, ref bool disallowRecycle)
        {
            // read object identity to remove
            var objectIdentity = reader.ReadInt16();

            // and do it!
            QNetWorldSerializer.RemoveSerializedObjectFromMemory(objectIdentity);
        }
        internal static void OnPlayerDelete(QNetMessage message, QNetMessageReader reader, ref bool disallowRecycle)
        {
            JEMLogger.Log("QNet is receiving player delete event.");
            var connectionIdentity = reader.ReadInt16();
            var player             = QNetPlayer.GetQNetPlayer(connectionIdentity);

            if (player == null)
            {
                throw new InvalidOperationException("InvalidConnectionIdentityError");
            }

            player.TagAsNotReady();
            QNetPlayer.DestroyQNetPlayer(player);
        }
Exemplo n.º 4
0
        internal static void OnServerObjectState(QNetMessage message, QNetMessageReader reader, ref bool disallowRecycle)
        {
            if (!QNetWorldSerializer.WorldIsSerialized)
            {
                return; // system can't receive query data while initializing,
            }
            var objectIdentity = reader.ReadInt16();
            var qNetObject     = QNetObjectBehaviour.GetObject(objectIdentity);

            if (qNetObject == null)
            {
                if (QNetManager.PrintNetworkWarnings)
                {
                    JEMLogger.LogWarning($"Local machine received QNetEntity state update message but object of identity {objectIdentity} not exists in local world.");
                }
                return;
            }

            qNetObject.DeSerializeServerState(reader);
        }
Exemplo n.º 5
0
        public static void OnClientEntityQuery(QNetMessage message, QNetMessageReader reader, ref bool disallowRecycle)
        {
            if (!QNetWorldSerializer.WorldIsSerialized)
            {
                return; // system can't receive entity query data while initializing,
            }
            var objectIdentity = reader.ReadInt16();
            var qNetObject     = QNetObjectBehaviour.GetObject(objectIdentity);

            if (qNetObject == null)
            {
                if (QNetManager.PrintNetworkWarnings)
                {
                    JEMLogger.LogWarning(
                        $"Local machine received QNetEntity query message but object of identity {objectIdentity} not exists in local world.");
                }
                return;
            }

            var entity = qNetObject.GetComponent <QNetEntity>();

            if (entity == null)
            {
                throw new NullReferenceException(
                          $"QNetEntity query target exists but does not have {nameof(QNetEntity)} based script.");
            }

            if (message.IsClientMessage)
            {
                QNetSimulation.ReceivedServerFrame = reader.ReadUInt32();
                QNetSimulation.AdjustServerFrames  = QNetSimulation.ReceivedServerFrame > QNetTime.ServerFrame;
            }

            var index = reader.ReadByte();

            entity.InvokeNetworkMessage(index, reader);
        }
Exemplo n.º 6
0
 /// <inheritdoc />
 public override void DeSerialize(QNetMessageReader reader)
 {
     ConnectionIdentity = reader.ReadInt16();
     NickName           = reader.ReadString();
 }