decode Biomes data
This commit is contained in:
@ -442,14 +442,14 @@ func handleChunkDataPacket(c *Client, p pk.Packet) error {
|
||||
FullChunk pk.Boolean
|
||||
PrimaryBitMask pk.VarInt
|
||||
Heightmaps struct{}
|
||||
Biomes = biomesData{fullChunk: (*bool)(&FullChunk)}
|
||||
Data chunkData
|
||||
BlockEntities blockEntities
|
||||
)
|
||||
// TODO: Biomes data in this packet
|
||||
if err := p.Scan(&X, &Z, &FullChunk, &PrimaryBitMask, pk.NBT{V: &Heightmaps}, &Data, &BlockEntities); err != nil {
|
||||
if err := p.Scan(&X, &Z, &FullChunk, &PrimaryBitMask, pk.NBT{V: &Heightmaps}, &Biomes, &Data, &BlockEntities); err != nil {
|
||||
return err
|
||||
}
|
||||
chunk, err := world.DecodeChunkColumn(bool(FullChunk), int32(PrimaryBitMask), Data)
|
||||
chunk, err := world.DecodeChunkColumn(int32(PrimaryBitMask), Data)
|
||||
if err != nil {
|
||||
return fmt.Errorf("decode chunk column fail: %v", err)
|
||||
}
|
||||
@ -459,6 +459,24 @@ func handleChunkDataPacket(c *Client, p pk.Packet) error {
|
||||
return err
|
||||
}
|
||||
|
||||
type biomesData struct {
|
||||
fullChunk *bool
|
||||
data [1024]int32
|
||||
}
|
||||
|
||||
func (b *biomesData) Decode(r pk.DecodeReader) error {
|
||||
if b.fullChunk == nil || *b.fullChunk {
|
||||
return nil
|
||||
}
|
||||
for i := range b.data {
|
||||
err := (*pk.Int)(&b.data[i]).Decode(r)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type chunkData []byte
|
||||
type blockEntities []blockEntitie
|
||||
type blockEntitie struct {
|
||||
|
Reference in New Issue
Block a user