struct column and chunk, and optimization

This commit is contained in:
Tnze
2019-08-03 18:02:18 +08:00
parent 2db368fe4a
commit 1073099cbd
10 changed files with 212 additions and 58 deletions

View File

@ -465,6 +465,7 @@ type blockEntities []blockEntitie
type blockEntitie struct {
}
// Decode implement net.packet.FieldDecoder
func (c *chunkData) Decode(r pk.DecodeReader) error {
var Size pk.VarInt
if err := Size.Decode(r); err != nil {
@ -477,14 +478,15 @@ func (c *chunkData) Decode(r pk.DecodeReader) error {
return nil
}
// Decode implement net.packet.FieldDecoder
func (b *blockEntities) Decode(r pk.DecodeReader) error {
var NumberofBlockEntities pk.VarInt
if err := NumberofBlockEntities.Decode(r); err != nil {
var nobe pk.VarInt // Number of BlockEntities
if err := nobe.Decode(r); err != nil {
return err
}
*b = make(blockEntities, NumberofBlockEntities)
*b = make(blockEntities, nobe)
decoder := nbt.NewDecoder(r)
for i := 0; i < int(NumberofBlockEntities); i++ {
for i := 0; i < int(nobe); i++ {
if err := decoder.Decode(&(*b)[i]); err != nil {
return err
}