public void Deserialize(NetDataReader reader) { Id = reader.GetUShort(); Keys = (MovementKeys)reader.GetByte(); Rotation = reader.GetFloat(); ServerTick = reader.GetUShort(); }
private void HandleChunkReceived(NetDataReader reader) { var worldId = reader.GetInt(); var chunkPositionX = reader.GetInt(); var chunkPositionY = reader.GetInt(); var chunkSize = reader.GetInt(); var chunkLength = chunkSize * chunkSize; var chunkStaticTileData = new ChunkStaticTileData[chunkLength]; for (var i = 0; i < chunkLength; i++) { var tileId = reader.GetUShort(); var z = reader.GetInt(); var hue = reader.GetInt(); chunkStaticTileData[i] = new ChunkStaticTileData(tileId, z, hue); } var chunkItemTileData = new ChunkItemTileData[chunkLength]; for (var i = 0; i < chunkLength; i++) { var tileId = reader.GetUShort(); var z = reader.GetInt(); var hue = reader.GetInt(); chunkItemTileData[i] = new ChunkItemTileData(tileId, z, hue); } var chunkData = new ChunkData(worldId, new Point(chunkPositionX, chunkPositionY), chunkStaticTileData, chunkItemTileData); var chunkReceived = ChunkReceived; chunkReceived?.Invoke(chunkData); }
public void Deserialize(NetDataReader reader) { FromPlayer = reader.GetByte(); CommandId = reader.GetUShort(); Hit = reader.GetVector2(); ServerTick = reader.GetUShort(); }
public override void Deserialize(NetDataReader reader) { base.Deserialize(reader); id = reader.GetUShort(); keys = (ExamplePlayerController.MovementKeys)reader.GetByte(); serverTick = reader.GetUShort(); }
public override void Deserialize(NetDataReader reader) { // Deserialize base base.Deserialize(reader); // Read class ButtonMask = reader.GetUShort(); LeftAnalog = reader.GetUShort(); RightAnalog = reader.GetUShort(); }
public void ReadPacketStream(NetDataReader stream) { ushort repObjId = stream.GetUShort(); while (repObjId != 0) { Log.Debug($"Reading ghost with id: {repObjId}"); // first read if there is a status change if (stream.GetByte() == 1) { // read the status change if (stream.GetByte() == 1) { Log.Debug("status changed: ADDED"); // added so read the persistent obj id byte objRepId = stream.GetByte(); // Create new instance of the object IPersistentObject obj = PersistentObjectManager.CreatePersistentObject(objRepId); // unpack stream data obj.Deserialize(stream); ReplicatedObjects[repObjId] = new ReplicationRecord { Id = repObjId, Entity = obj as ReplicatableObject }; } else { Log.Debug("status changed: REMOVED"); // remove the record but also need to destroy game object or queue it to be destroyed.. if (ReplicatedObjects.TryGetValue(repObjId, out ReplicationRecord record)) { Log.Debug($"Removing record: {record.Id}"); //GameObject.Destroy(record.Entity); ReplicatedObjects.Remove(repObjId); } } } else { Log.Debug("State update"); // no status change just new state information so unpack into existing replicated obj ReplicatedObjects[repObjId].Entity.Deserialize(stream); } repObjId = stream.GetUShort(); } }
public void Deserialize(NetDataReader reader) { Tick = reader.GetUShort(); LastProcessedCommand = reader.GetUShort(); PlayerStatesCount = reader.AvailableBytes / PlayerState.Size; if (PlayerStates == null || PlayerStates.Length < PlayerStatesCount) { PlayerStates = new PlayerState[PlayerStatesCount]; } for (int i = 0; i < PlayerStates.Length; i++) { PlayerStates[i].Deserialize(reader); } }
public Message decodeMessage(NetDataReader incoming) { ushort messageType = incoming.GetUShort(); var message = create(messageType); message.ReadUncryptedPayload(incoming); if (this.Modus == ManagerModus.Intoducer) { if (message.EncryptedMessage) { message.CopyEncryptedToTempStorage(incoming); } else { message.ReadPayload(incoming); } } else { if (message.EncryptedMessage) { if (this.Modus == ManagerModus.Host) { Decrypt(message.StartPointEncryption, Manager.getSymmetricKeyForRemoteId(message.ClientSystemId), incoming); } else { Decrypt(message.StartPointEncryption, Manager.getSymmetricKeyForRemoteId(message.HostSystemId), incoming); } } message.ReadPayload(incoming); } return(message); }
public void Deserialize(NetDataReader reader) { networkID = reader.GetInt(); rpcMethodIndex = reader.GetInt(); frameTick = reader.GetUShort(); parameters = reader.GetRemainingBytes(); }
public override void ReadPacketStream(NetDataReader stream) { // read id of last processed move and use it to update // the buffer of stored moves SeqLastProcessed = stream.GetUShort(); _log.Debug($"SeqLastProcessed from server: {SeqLastProcessed}"); _window.AckSeq((ushort)SeqLastProcessed); // read state of player obj and set it using remainder of moves in buffer to predict again CurrentlyControlledObject.Deserialize(stream); if (_window.Count == 0) { return; } int i = _window.First; while (i != _window.Last) { CurrentlyControlledObject.ApplyMoveDirection(_window.Items[i].MoveDirection.z, _window.Items[i].MoveDirection.x); i = ++i < _window.Max ? i : 0; } }
public override void OnMessage(NetPeer peer, NetDataReader reader) { var count = reader.GetInt(); for (int i = 0; i < count; i++) { var npcid = reader.GetLong(); var npcType = (NpcType)reader.GetUShort(); var position = reader.GetVector3(); var rotation = reader.GetQuaternion(); NPCView npcView = null; switch (npcType) { case NpcType.Player: npcView = npcMgr.CreateNpc <TankView>(); break; case NpcType.Monster: npcView = npcMgr.CreateNpc <AnimalView>(); break; } if (npcView != null) { npcView.Initialize(npcid); npcView.InitInterpolateFields(position, rotation); } Debugger.LogWarning("OnResNpcs--->>>" + npcid + " " + npcType + " " + position); } }
public void ProcessInitialFields(NetDataReader reader) { if (!cachedElements) { CacheNetworkMember(); } for (byte i = 0; i < networkFields.Count; i++) { var field = networkFields[i]; var objId = reader.GetUShort(); if (ObjectId != objId) { Log.Error(this, $"NetworkObject id don't match! {ObjectId}<->{objId}"); return; } var tmpID = reader.GetByte(); if (field.ElementId != tmpID) { Log.Error(this, $"server field order is not equal client!"); return; } field.Deserialize(reader); } }
public void Deserialize(NetDataReader reader) { Id = reader.GetByte(); Position = reader.GetVector2(); Rotation = reader.GetFloat(); Tick = reader.GetUShort(); }
public void Deserialize(NetDataReader reader) { Tick = reader.GetUShort(); LastProcessedAction = reader.GetUShort(); CharacterStateCount = reader.AvailableBytes / CharacterPacket.Size; if (CharacterStates == null || CharacterStates.Length < CharacterStateCount) { CharacterStates = new CharacterPacket[CharacterStateCount]; } for (int i = 0; i < CharacterStateCount; i++) { CharacterStates[i].Deserialize(reader); } }
public void Deserialize(NetDataReader reader) { UnitId = reader.GetUShort(); UnitMesh = reader.GetByte(); PosX = reader.GetShort(); PosY = reader.GetShort(); bool[] bdata = ByteToBool(reader.GetByte()); Attack = bdata[0]; PlayerOwned = bdata[1]; HasEffect = bdata[2]; HasHealth = bdata[3]; Alive = bdata[4]; HasExp = bdata[5]; Upgrade = bdata[6]; CustomSize = bdata[7]; if (Alive && HasHealth) { Health = reader.GetByte(); } if (Alive) { Rot = reader.GetByte(); } if (HasEffect) { VisualEffect = (VisualEffect)reader.GetByte(); } if (Attack) { Target = reader.GetUShort(); } if (HasExp) { Exp = reader.GetByte(); } if (Upgrade) { UnitSkin = reader.GetByte(); } if (CustomSize) { UnitSize = reader.GetByte(); } }
public void Deserialize(NetDataReader reader) { PlayerId = reader.GetUShort(); Color = reader.GetFloat3(); Position = reader.GetFloat3(); Rotation = reader.GetFloat3(); BodyRotation = reader.GetFloat3(); }
public void Deserialize(NetDataReader reader) { NetworkId = reader.GetUShort(); Position = reader.GetVector3(); Rotation = reader.GetQuaternion(); Velocity = reader.GetVector3(); Grounded = reader.GetBool(); }
public void Deserialize(NetDataReader reader) { networkID = reader.GetInt(); sceneId = reader.GetInt(); position = new Vector3(reader.GetFloat(), reader.GetFloat(), reader.GetFloat()); frameTick = reader.GetUShort(); initialState = reader.GetRemainingBytes(); }
public virtual void Deserialize(NetDataReader reader) { typeId = reader.GetString(); assetId = reader.GetString(); objectId = reader.GetUShort(); position = new Vector3(reader.GetFloat(), reader.GetFloat(), reader.GetFloat()); rotation = new Quaternion(reader.GetFloat(), reader.GetFloat(), reader.GetFloat(), reader.GetFloat()); }
public void Deserialize(NetDataReader reader) { PlayerId = reader.GetUShort(); LocalPlanetId = reader.GetInt(); Color = reader.GetFloat3(); UPosition = reader.GetDouble3(); Rotation = reader.GetFloat3(); BodyRotation = reader.GetFloat3(); }
public static T[] GetArray <T>(this NetDataReader reader) where T : INetSerializable, new() { var len = reader.GetUShort(); var array = new T[len]; for (int i = 0; i < len; i++) { array[i] = reader.Get <T>(); } return(array); }
void OnMessageReceived(NetPeer peer, NetDataReader reader) { MessageType type = (MessageType)reader.GetUShort(); NetworkMessage message = NetworkMessage.Decode(type); if (message != null) { message.Read(reader); OnMessageReceived(peer, message); } }
public void WriteReadUShort() { var ndw = new NetDataWriter(); ndw.Put((ushort)16); var ndr = new NetDataReader(ndw.Data); var readUShort = ndr.GetUShort(); Assert.AreEqual(readUShort, (ushort)16); }
public void Deserialize(NetDataReader reader) { Seq = reader.GetUShort(); MoveDirection.x = reader.GetFloat(); MoveDirection.z = reader.GetFloat(); MoveDirection.y = 0; //PressedCount = reader.GetUShort(); //for(int i = 0; i < PressedCount; i++) //{ // Pressed[i] = reader.GetUShort(); //} }
public void Deserialize(NetDataReader reader) { Username = reader.GetString(); PlayerId = reader.GetUShort(); LocalPlanetId = reader.GetInt(); MechaColor = reader.GetFloat3(); LocalPlanetPosition = reader.GetFloat3(); UPosition = reader.GetDouble3(); Rotation = reader.GetFloat3(); BodyRotation = reader.GetFloat3(); Mecha = new MechaData(); Mecha.Deserialize(reader); }
/// <summary> /// 处理数据 /// </summary> public void DispatchMessage(NetPeer peer, NetDataReader reader) { var messageid = reader.GetUShort(); Protocal key = (Protocal)messageid; if (mHandlers.ContainsKey(key)) { mHandlers[key].OnMessage(peer, reader); } else { mDefaultHandler.OnMessage(peer, reader); } }
/// <summary> /// 消息接收 /// </summary> public void OnReceived(NetPeer peer, NetDataReader reader) { IMessageHandler handler = null; Protocal key = (Protocal)reader.GetUShort(); if (mHandlers.ContainsKey(key)) { handler = mHandlers[key]; } else { handler = mDefaultHandler; } handler.OnMessage(peer, reader); }
//============ TinyNetMessages Networking ===========// /// <summary> /// Reads the message and calls the correct handler. /// </summary> /// <param name="reader">The reader.</param> /// <param name="peer">The peer.</param> /// <returns></returns> ushort ReadMessageAndCallDelegate(NetDataReader reader, NetPeer peer, DeliveryMethod deliveryMethod) { ushort msgType = reader.GetUShort(); if (_tinyMessageHandlers.Contains(msgType)) { recycleMessageReader.msgType = msgType; recycleMessageReader.reader = reader; recycleMessageReader.tinyNetConn = GetTinyNetConnection(peer); recycleMessageReader.channelId = deliveryMethod; _tinyMessageHandlers.GetHandler(msgType)(recycleMessageReader); } return(msgType); }
//============ TinyNetMessages Networking ===========// /// <summary> /// Reads the message and calls the correct handler. /// </summary> /// <param name="reader">The reader.</param> /// <param name="peer">The peer.</param> /// <returns></returns> ushort ReadMessageAndCallDelegate(NetDataReader reader, NetPeer peer) { ushort msgType = reader.GetUShort(); if (_tinyMessageHandlers.Contains(msgType)) { recycleMessageReader.msgType = msgType; recycleMessageReader.reader = reader; recycleMessageReader.tinyNetConn = GetTinyNetConnection(peer); recycleMessageReader.channelId = DeliveryMethod.ReliableOrdered; //@TODO: I currently don't know if it's possible to get from which channel a message came. _tinyMessageHandlers.GetHandler(msgType)(recycleMessageReader); } return(msgType); }
public void Deserialize(NetDataReader reader) { BattleId = Guid.Parse(reader.GetString()); CurrentArmyId = reader.GetInt(); CurrentUnitId = reader.GetInt(); var armiesLength = reader.GetUShort(); Armies = new ArmyParams[armiesLength]; for (int i = 0; i < armiesLength; i++) { Armies[i] = reader.Get <ArmyParams>(); } GameId = reader.GetInt(); GameString = reader.GetString(); }