36 lines
1.1 KiB
Go
36 lines
1.1 KiB
Go
package legacypacket
|
|
|
|
import (
|
|
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
|
"github.com/sandertv/gophertunnel/minecraft/protocol"
|
|
"github.com/sandertv/gophertunnel/minecraft/protocol/packet"
|
|
)
|
|
|
|
// SubChunk sends data about multiple sub-chunks around a center point.
|
|
type SubChunk struct {
|
|
// CacheEnabled is whether the sub-chunk caching is enabled or not.
|
|
CacheEnabled bool
|
|
// Dimension is the dimension the sub-chunks are in.
|
|
Dimension int32
|
|
// Position is an absolute sub-chunk center point that every SubChunkRequest uses as a reference.
|
|
Position protocol.SubChunkPos
|
|
// SubChunkEntries contains sub-chunk entries relative to the center point.
|
|
SubChunkEntries []proto.SubChunkEntry
|
|
}
|
|
|
|
// ID ...
|
|
func (*SubChunk) ID() uint32 {
|
|
return packet.IDSubChunk
|
|
}
|
|
|
|
func (pk *SubChunk) Marshal(io protocol.IO) {
|
|
io.Bool(&pk.CacheEnabled)
|
|
io.Varint32(&pk.Dimension)
|
|
io.SubChunkPos(&pk.Position)
|
|
if pk.CacheEnabled {
|
|
protocol.SliceUint32Length(io, &pk.SubChunkEntries)
|
|
} else {
|
|
protocol.FuncIOSliceUint32Length(io, &pk.SubChunkEntries, proto.SubChunkEntryNoCache)
|
|
}
|
|
}
|