示例#1
0
    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;
        }
    }
示例#2
0
    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;
        }
    }
示例#3
0
 public ModNetworkEntity()
 {
     spawn = new ClientPacketHandlerEntitySpawn();
     position = new ClientPacketHandlerEntityPosition();
     despawn = new ClientPacketHandlerEntityDespawn();
 }
示例#4
0
 public ModNetworkEntity()
 {
     spawn    = new ClientPacketHandlerEntitySpawn();
     position = new ClientPacketHandlerEntityPosition();
     despawn  = new ClientPacketHandlerEntityDespawn();
 }