fix converter adding unneccesary data

This commit is contained in:
Sen 2025-06-28 14:14:18 +02:00
parent 264c7ffae3
commit 601a331ee3
Signed by: sen
GPG key ID: 3AC50A6F47D1B722

View file

@ -1963,6 +1963,7 @@ public abstract class Converter {
NibbleArray data = new NibbleArray(sect.getByteArray("Data"));
byte[] add = sect.getByteArray("Add");
NibbleArray adddata = add.length > 0 ? new NibbleArray(add) : null;
NibbleArray addnew = null;
for(int c = 0; c < blocks.length; ++c) {
int cx = c & 15;
int cy = c >> 8 & 15;
@ -1974,17 +1975,17 @@ public abstract class Converter {
int dt = block == 111 ? RANDOM.zrange(4) : data.get(cx, cy, cz);
char cd = mapping[block >= 256 ? BLOCK_MAP[1 << 4] : BLOCK_MAP[(block << 4) | dt]];
if(cd >> 12 != 0) {
if(adddata == null)
adddata = new NibbleArray();
adddata.set(cx, cy, cz, cd >> 12);
if(addnew == null)
addnew = new NibbleArray();
addnew.set(cx, cy, cz, cd >> 12);
}
blocks[c] = (byte)(cd & 255);
data.set(cx, cy, cz, cd >> 8 & 15);
}
nsect.setByteArray("Dat0", blocks);
nsect.setByteArray("Dat1", data.getData());
if(adddata != null)
nsect.setByteArray("Dat2", adddata.getData());
if(addnew != null)
nsect.setByteArray("Dat2", addnew.getData());
nsect.setByteArray("BlockLight", sect.getByteArray("BlockLight"));
nsect.setByteArray("SkyLight", sect.getByteArray("SkyLight"));
entities.add(nsect);