From 24e537a5915e2b58e6f9dddac34f0df2997f0057 Mon Sep 17 00:00:00 2001 From: TheFirewall Date: Fri, 2 Oct 2020 16:45:43 +0300 Subject: [PATCH] Temporary metadata fix(and facing direction) --- src/MiNET/MiNET/Worlds/AnvilWorldProvider.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/MiNET/MiNET/Worlds/AnvilWorldProvider.cs b/src/MiNET/MiNET/Worlds/AnvilWorldProvider.cs index 47dc080b8..bdb041da7 100644 --- a/src/MiNET/MiNET/Worlds/AnvilWorldProvider.cs +++ b/src/MiNET/MiNET/Worlds/AnvilWorldProvider.cs @@ -1011,7 +1011,17 @@ public static NbtFile CreateNbtFromChunkColumn(ChunkColumn chunk) int anvilIndex = y * 16 * 16 + z * 16 + x; byte blockId = (byte) subChunk.GetBlockId(x, y, z); blocks[anvilIndex] = blockId; - //SetNibble4(data, anvilIndex, section.GetMetadata(x, y, z)); + int index = subChunk.Blocks[(x << 8) | (z << 4) | y]; + if (subChunk.RuntimeIds.Contains(index)) + { + int runtimeId = subChunk.RuntimeIds[index]; + BlockStateContainer blockState = BlockFactory.BlockPalette[runtimeId == -1 ? 0 : runtimeId]; + SetNibble4(data, anvilIndex, (byte) blockState.Data); + } + else + { + SetNibble4(data, anvilIndex, 0); + } SetNibble4(blockLight, anvilIndex, subChunk.GetBlocklight(x, y, z)); SetNibble4(skyLight, anvilIndex, subChunk.GetSkylight(x, y, z)); }