public override void Handle(Game game, Packet_Server packet) { Entity entity = game.entities[packet.EntityPosition.Id]; EntityPosition_ pos = ClientPacketHandlerEntitySpawn.ToClientEntityPosition(packet.EntityPosition.PositionAndOrientation); entity.networkPosition = pos; entity.networkPosition.PositionLoaded = true; entity.networkPosition.LastUpdateMilliseconds = game.platform.TimeMillisecondsFromStart(); if (packet.EntityPosition.Id == game.LocalPlayerId) { // Override local player position if necessary (teleport) game.player.position.x = pos.x; game.player.position.y = pos.y; game.player.position.z = pos.z; game.player.position.rotx = pos.rotx; game.player.position.roty = pos.roty; game.player.position.rotz = pos.rotz; entity.networkPosition = null; } else if (entity.push != null) { // Create push force for any player except local player entity.push.XFloat = packet.EntityPosition.PositionAndOrientation.X; entity.push.YFloat = packet.EntityPosition.PositionAndOrientation.Z; entity.push.ZFloat = packet.EntityPosition.PositionAndOrientation.Y; } }
public override void Handle(Game game, Packet_Server packet) { Entity entity = game.entities[packet.EntityPosition.Id]; EntityPosition_ pos = ClientPacketHandlerEntitySpawn.ToClientEntityPosition(packet.EntityPosition.PositionAndOrientation); entity.networkPosition = pos; entity.networkPosition.PositionLoaded = true; entity.networkPosition.LastUpdateMilliseconds = game.platform.TimeMillisecondsFromStart(); if (packet.EntityPosition.Id == game.LocalPlayerId) { game.player.position.x = pos.x; game.player.position.y = pos.y; game.player.position.z = pos.z; entity.networkPosition = null; } }
public ModNetworkEntity() { spawn = new ClientPacketHandlerEntitySpawn(); position = new ClientPacketHandlerEntityPosition(); despawn = new ClientPacketHandlerEntityDespawn(); }