37 lines
911 B
Go
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)
|
|
}
|