minetest_client/commands/server_auth_accept.go
2021-10-01 19:07:07 +02:00

39 lines
925 B
Go

package commands
import (
"encoding/binary"
"fmt"
"math"
)
type ServerAuthAccept struct {
PosX uint32
PosY uint32
PosZ uint32
Seed uint64
SendInterval float32
}
func (p *ServerAuthAccept) GetCommandId() uint16 {
return ServerCommandAuthAccept
}
func (p *ServerAuthAccept) MarshalPacket() ([]byte, error) {
return nil, nil
}
func (p *ServerAuthAccept) UnmarshalPacket(payload []byte) error {
p.PosX = binary.BigEndian.Uint32(payload[0:])
p.PosY = binary.BigEndian.Uint32(payload[4:])
p.PosZ = binary.BigEndian.Uint32(payload[8:])
p.Seed = binary.BigEndian.Uint64(payload[12:])
bits := binary.BigEndian.Uint32(payload[20:])
p.SendInterval = math.Float32frombits(bits)
return nil
}
func (p *ServerAuthAccept) String() string {
return fmt.Sprintf("{ServerAuthAccept PosX=%d, PosY=%d, PosZ=%d, Seed=%d, SendInterval=%f}",
p.PosX, p.PosY, p.PosZ, p.Seed, p.SendInterval)
}