From b2df88203d29a9028d2a38a8f1eb639b23ec5047 Mon Sep 17 00:00:00 2001 From: adman Date: Tue, 5 May 2026 23:12:02 +0200 Subject: [PATCH] fix block count calculation in chunk sections; improve variable naming in tests --- level/anvil/chunk.go | 2 +- level/anvil/level_test.go | 14 +++++++------- level/anvil/testdata/chunk00.bin | Bin 0 -> 26327 bytes 3 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 level/anvil/testdata/chunk00.bin diff --git a/level/anvil/chunk.go b/level/anvil/chunk.go index 6bb0d84..1f8ffd8 100644 --- a/level/anvil/chunk.go +++ b/level/anvil/chunk.go @@ -42,7 +42,7 @@ func (c Chunk) ToStorage(version string) (toChunk *level.Chunk, err error) { if err != nil { return } - toChunk.Sections[i].BlockCount = int16(level.CountStorage(toChunk.Sections[i].Blocks, 0)) + toChunk.Sections[i].BlockCount = int16(level.BlocksPerChunkSection - level.CountStorage(toChunk.Sections[i].Blocks, 0)) } else { toChunk.Sections[i].Blocks, err = f.FullWith(0) //TODO PALLETE index 0 if avial if err != nil { diff --git a/level/anvil/level_test.go b/level/anvil/level_test.go index 8434dd5..f070d6f 100644 --- a/level/anvil/level_test.go +++ b/level/anvil/level_test.go @@ -75,20 +75,20 @@ func TestConverToPacket(t *testing.T) { t.Errorf("Failed to read chunk: %v", err) return } - var chunk anvil.Chunk - err = nbt.Format.Decode(n.Value, &chunk) + var anvilChunk anvil.Chunk + err = nbt.Format.Decode(n.Value, &anvilChunk) if err != nil { t.Errorf("Failed to decode chunk: %v", err) return } - var packetChunk *level.Chunk - packetChunk, err = chunk.ToStorage("1.21.11") + var anvilPacketableChunk *level.Chunk + anvilPacketableChunk, err = anvilChunk.ToStorage("1.21.11") if err != nil { t.Errorf("Failed to convert chunk: %v", err) return } buffer := bytes.NewBuffer(nil) - err = packetChunk.WriteChunkData(buffer) + err = anvilPacketableChunk.WriteChunkData(buffer) if err != nil { t.Errorf("Failed to write chunk data: %v", err) return @@ -120,8 +120,8 @@ func TestConverToPacket(t *testing.T) { return a.Equals(b) }) - if !aChunk.Equals(packetChunk) { - t.Errorf("Chunk is different: %v", cmp.Diff(aChunk, packetChunk, storageComparer, cmpopts.IgnoreUnexported(level.Chunk{}, level.Section{}, level.Storage{}))) + if !aChunk.Equals(anvilPacketableChunk) { + t.Errorf("Chunk is different: %v", cmp.Diff(aChunk, anvilPacketableChunk, storageComparer, cmpopts.IgnoreUnexported(level.Chunk{}, level.Section{}, level.Storage{}))) } if !bChunk.Equals(aChunk) { t.Errorf("Chunk is different: %v", cmp.Diff(bChunk, aChunk, storageComparer, cmpopts.IgnoreUnexported(level.Chunk{}, level.Section{}, level.Storage{}))) diff --git a/level/anvil/testdata/chunk00.bin b/level/anvil/testdata/chunk00.bin new file mode 100644 index 0000000000000000000000000000000000000000..156be94ee146c32926218ca7ac88a5f2cb367425 GIT binary patch literal 26327 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 literal 0 HcmV?d00001