minetest_client/commands/server_moveplayer.go
BuckarooBanzay 4008c46ea5 moveplayer
2021-11-04 20:04:07 +01:00

37 lines
911 B
Go

package commands
import (
"encoding/binary"
"fmt"
"math"
)
type ServerMovePlayer struct {
X float32
Y float32
Z float32
Pitch float32
Yaw float32
}
func (p *ServerMovePlayer) GetCommandId() uint16 {
return ServerCommandMovePlayer
}
func (p *ServerMovePlayer) MarshalPacket() ([]byte, error) {
return nil, nil
}
func (p *ServerMovePlayer) UnmarshalPacket(payload []byte) error {
p.X = math.Float32frombits(binary.BigEndian.Uint32(payload[0:]))
p.Y = math.Float32frombits(binary.BigEndian.Uint32(payload[4:]))
p.Z = math.Float32frombits(binary.BigEndian.Uint32(payload[8:]))
p.Pitch = math.Float32frombits(binary.BigEndian.Uint32(payload[12:]))
p.Yaw = math.Float32frombits(binary.BigEndian.Uint32(payload[16:]))
return nil
}
func (p *ServerMovePlayer) String() string {
return fmt.Sprintf("{ServerMovePlayer pos=%f/%f/%f, pitch=%f, yaw=%f}", p.X, p.Y, p.Z, p.Pitch, p.Yaw)
}