diff --git a/src/main/java/com/falsepattern/endlessids/managers/BlockIDManager.java b/src/main/java/com/falsepattern/endlessids/managers/BlockIDManager.java index 3d2fd22..5db5c5e 100644 --- a/src/main/java/com/falsepattern/endlessids/managers/BlockIDManager.java +++ b/src/main/java/com/falsepattern/endlessids/managers/BlockIDManager.java @@ -27,7 +27,6 @@ import com.falsepattern.chunk.api.ArrayUtil; import com.falsepattern.chunk.api.DataManager; import com.falsepattern.endlessids.Tags; import com.falsepattern.endlessids.mixin.helpers.SubChunkBlockHook; -import com.falsepattern.endlessids.util.DataUtil; import lombok.val; import lombok.var; import org.jetbrains.annotations.NotNull; @@ -73,24 +72,24 @@ public class BlockIDManager implements DataManager.PacketDataManager, DataManage } val subChunk = (SubChunkBlockHook) subChunkList[i]; - storageFlags |= subChunk.getBlockMask() << (i * 2); + storageFlags |= subChunk.eid$getBlockMask() << (i * 2); - val b1 = subChunk.getB1(); + val b1 = subChunk.eid$getB1(); data.put(b1); - val b2Low = subChunk.getB2Low(); + val b2Low = subChunk.eid$getB2Low(); if (b2Low == null) { continue; } data.put(b2Low.data); - val b2High = subChunk.getB2High(); + val b2High = subChunk.eid$getB2High(); if (b2High == null) { continue; } data.put(b2High.data); - val b3 = subChunk.getB3(); + val b3 = subChunk.eid$getB3(); if (b3 != null) { data.put(b3); } @@ -108,36 +107,36 @@ public class BlockIDManager implements DataManager.PacketDataManager, DataManage } val subChunk = (SubChunkBlockHook) subChunkList[i]; val storageFlag = (storageFlags >>> (i * 2)) & 3; - val b1 = subChunk.getB1(); + val b1 = subChunk.eid$getB1(); buffer.get(b1); if (storageFlag == 0b00) { - subChunk.setB2Low(null); - subChunk.setB2High(null); - subChunk.setB3(null); + subChunk.eid$setB2Low(null); + subChunk.eid$setB2High(null); + subChunk.eid$setB3(null); continue; } - var b2Low = subChunk.getB2Low(); + var b2Low = subChunk.eid$getB2Low(); if (b2Low == null) { - b2Low = subChunk.createB2Low(); + b2Low = subChunk.eid$createB2Low(); } buffer.get(b2Low.data); if (storageFlag == 0b01) { - subChunk.setB2High(null); - subChunk.setB3(null); + subChunk.eid$setB2High(null); + subChunk.eid$setB3(null); continue; } - var b2High = subChunk.getB2High(); + var b2High = subChunk.eid$getB2High(); if (b2High == null) { - b2High = subChunk.createB2High(); + b2High = subChunk.eid$createB2High(); } buffer.get(b2High.data); if (storageFlag == 0b10) { - subChunk.setB3(null); + subChunk.eid$setB3(null); continue; } - var b3 = subChunk.getB3(); + var b3 = subChunk.eid$getB3(); if (b3 == null) { - b3 = subChunk.createB3(); + b3 = subChunk.eid$createB3(); } buffer.get(b3); } @@ -152,10 +151,10 @@ public class BlockIDManager implements DataManager.PacketDataManager, DataManage @Override public void writeSubChunkToNBT(Chunk chunk, ExtendedBlockStorage subChunkVanilla, NBTTagCompound nbt) { val subChunk = (SubChunkBlockHook) subChunkVanilla; - val b1 = subChunk.getB1(); - val b2Low = subChunk.getB2Low(); - val b2High = subChunk.getB2High(); - val b3 = subChunk.getB3(); + val b1 = subChunk.eid$getB1(); + val b2Low = subChunk.eid$getB2Low(); + val b2High = subChunk.eid$getB2High(); + val b3 = subChunk.eid$getB3(); nbt.setByteArray("Blocks", b1); if (b2Low != null) { nbt.setByteArray("Add", b2Low.data); @@ -184,9 +183,9 @@ public class BlockIDManager implements DataManager.PacketDataManager, DataManage b2L[nI] |= (byte) (((s & 0x0F00) >>> 8) << mI); b2H[nI] |= (byte) (((s & 0xF000) >>> 12) << mI); } - subChunk.setB1(b1); - subChunk.setB2Low(new NibbleArray(b2L, 4)); - subChunk.setB2High(new NibbleArray(b2H, 4)); + subChunk.eid$setB1(b1); + subChunk.eid$setB2Low(new NibbleArray(b2L, 4)); + subChunk.eid$setB2High(new NibbleArray(b2H, 4)); } @Override @@ -202,10 +201,10 @@ public class BlockIDManager implements DataManager.PacketDataManager, DataManage final byte[] b2High = nbt.hasKey("BlocksB2Hi") ? nbt.getByteArray("BlocksB2Hi") : null; final byte[] b3 = nbt.hasKey("BlocksB3") ? nbt.getByteArray("BlocksB3") : null; - subChunk.setB1(ensureSubChunkByteArray(b1)); - subChunk.setB2Low(ensureSubChunkNibbleArray(b2Low)); - subChunk.setB2High(ensureSubChunkNibbleArray(b2High)); - subChunk.setB3(ensureSubChunkByteArray(b3)); + subChunk.eid$setB1(ensureSubChunkByteArray(b1)); + subChunk.eid$setB2Low(ensureSubChunkNibbleArray(b2Low)); + subChunk.eid$setB2High(ensureSubChunkNibbleArray(b2High)); + subChunk.eid$setB3(ensureSubChunkByteArray(b3)); } @Override @@ -213,10 +212,10 @@ public class BlockIDManager implements DataManager.PacketDataManager, DataManage val from = (SubChunkBlockHook) fromVanilla; val to = (SubChunkBlockHook) toVanilla; - to.setB1(ArrayUtil.copyArray(from.getB1(), to.getB1())); - to.setB2Low(ArrayUtil.copyArray(from.getB2Low(), to.getB2Low())); - to.setB2High(ArrayUtil.copyArray(from.getB2High(), to.getB2High())); - to.setB3(ArrayUtil.copyArray(from.getB3(), to.getB3())); + to.eid$setB1(ArrayUtil.copyArray(from.eid$getB1(), to.eid$getB1())); + to.eid$setB2Low(ArrayUtil.copyArray(from.eid$getB2Low(), to.eid$getB2Low())); + to.eid$setB2High(ArrayUtil.copyArray(from.eid$getB2High(), to.eid$getB2High())); + to.eid$setB3(ArrayUtil.copyArray(from.eid$getB3(), to.eid$getB3())); } @Override diff --git a/src/main/java/com/falsepattern/endlessids/managers/BlockMetaManager.java b/src/main/java/com/falsepattern/endlessids/managers/BlockMetaManager.java index 2f27ee5..6893da7 100644 --- a/src/main/java/com/falsepattern/endlessids/managers/BlockMetaManager.java +++ b/src/main/java/com/falsepattern/endlessids/managers/BlockMetaManager.java @@ -72,18 +72,18 @@ public class BlockMetaManager implements DataManager.PacketDataManager, DataMana } val subChunk = (SubChunkBlockHook) subChunkList[i]; - storageFlags |= subChunk.getMetadataMask() << (i * 2); + storageFlags |= subChunk.eid$getMetadataMask() << (i * 2); - val m1Low = subChunk.getM1Low(); + val m1Low = subChunk.eid$getM1Low(); data.put(m1Low.data); - val m1High = subChunk.getM1High(); + val m1High = subChunk.eid$getM1High(); if (m1High == null) { continue; } data.put(m1High.data); - val m2 = subChunk.getM2(); + val m2 = subChunk.eid$getM2(); if (m2 != null) { data.put(m2); } @@ -101,25 +101,25 @@ public class BlockMetaManager implements DataManager.PacketDataManager, DataMana } val subChunk = (SubChunkBlockHook) subChunkList[i]; val storageFlag = (storageFlags >>> (i * 2)) & 3; - val m1Low = subChunk.getM1Low(); + val m1Low = subChunk.eid$getM1Low(); buffer.get(m1Low.data); if (storageFlag == 0b01) { - subChunk.setM1High(null); - subChunk.setM2(null); + subChunk.eid$setM1High(null); + subChunk.eid$setM2(null); continue; } - var m1High = subChunk.getM1High(); + var m1High = subChunk.eid$getM1High(); if (m1High == null) { - m1High = subChunk.createM1High(); + m1High = subChunk.eid$createM1High(); } buffer.get(m1High.data); if (storageFlag == 0b10) { - subChunk.setM2(null); + subChunk.eid$setM2(null); continue; } - var m2 = subChunk.getM2(); + var m2 = subChunk.eid$getM2(); if (m2 == null) { - m2 = subChunk.createM2(); + m2 = subChunk.eid$createM2(); } buffer.get(m2); } @@ -133,9 +133,9 @@ public class BlockMetaManager implements DataManager.PacketDataManager, DataMana @Override public void writeSubChunkToNBT(Chunk chunk, ExtendedBlockStorage subChunkVanilla, NBTTagCompound nbt) { val subChunk = (SubChunkBlockHook) subChunkVanilla; - val m1Low = subChunk.getM1Low(); - val m1High = subChunk.getM1High(); - val m2 = subChunk.getM2(); + val m1Low = subChunk.eid$getM1Low(); + val m1High = subChunk.eid$getM1High(); + val m2 = subChunk.eid$getM2(); nbt.setByteArray("Data", m1Low.data); if (m1High != null) { nbt.setByteArray("Data1High", m1High.data); @@ -161,9 +161,9 @@ public class BlockMetaManager implements DataManager.PacketDataManager, DataMana m1High[nI] |= (byte) (((s & 0x00F0) >>> 4) << mI); m2[i] = (byte) ((s & 0xFF00) >>> 8); } - subChunk.setM1Low(new NibbleArray(m1Low, 4)); - subChunk.setM1High(new NibbleArray(m1High, 4)); - subChunk.setM2(m2); + subChunk.eid$setM1Low(new NibbleArray(m1Low, 4)); + subChunk.eid$setM1High(new NibbleArray(m1High, 4)); + subChunk.eid$setM2(m2); } @Override @@ -178,9 +178,9 @@ public class BlockMetaManager implements DataManager.PacketDataManager, DataMana final byte[] m1High = nbt.hasKey("Data1High") ? nbt.getByteArray("Data1High") : null; final byte[] m2 = nbt.hasKey("Data2") ? nbt.getByteArray("Data2") : null; - subChunk.setM1Low(DataUtil.ensureSubChunkNibbleArray(m1Low)); - subChunk.setM1High(DataUtil.ensureSubChunkNibbleArray(m1High)); - subChunk.setM2(DataUtil.ensureSubChunkByteArray(m2)); + subChunk.eid$setM1Low(DataUtil.ensureSubChunkNibbleArray(m1Low)); + subChunk.eid$setM1High(DataUtil.ensureSubChunkNibbleArray(m1High)); + subChunk.eid$setM2(DataUtil.ensureSubChunkByteArray(m2)); } @Override @@ -188,9 +188,9 @@ public class BlockMetaManager implements DataManager.PacketDataManager, DataMana val from = (SubChunkBlockHook) fromVanilla; val to = (SubChunkBlockHook) toVanilla; - to.setM1Low(ArrayUtil.copyArray(from.getM1Low(), to.getM1Low())); - to.setM1High(ArrayUtil.copyArray(from.getM1High(), to.getM1High())); - to.setM2(ArrayUtil.copyArray(from.getM2(), to.getM2())); + to.eid$setM1Low(ArrayUtil.copyArray(from.eid$getM1Low(), to.eid$getM1Low())); + to.eid$setM1High(ArrayUtil.copyArray(from.eid$getM1High(), to.eid$getM1High())); + to.eid$setM2(ArrayUtil.copyArray(from.eid$getM2(), to.eid$getM2())); } @Override diff --git a/src/main/java/com/falsepattern/endlessids/mixin/helpers/SubChunkBlockHook.java b/src/main/java/com/falsepattern/endlessids/mixin/helpers/SubChunkBlockHook.java index c7854d2..40671ee 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/helpers/SubChunkBlockHook.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/helpers/SubChunkBlockHook.java @@ -26,47 +26,53 @@ package com.falsepattern.endlessids.mixin.helpers; import net.minecraft.world.chunk.NibbleArray; public interface SubChunkBlockHook { - byte[] getB1(); + byte[] eid$getB1(); - void setB1(byte[] data); + void eid$setB1(byte[] data); - NibbleArray getB2Low(); + NibbleArray eid$getB2Low(); - void setB2Low(NibbleArray data); + void eid$setB2Low(NibbleArray data); - NibbleArray createB2Low(); + NibbleArray eid$createB2Low(); - NibbleArray getB2High(); + NibbleArray eid$getB2High(); - void setB2High(NibbleArray data); + void eid$setB2High(NibbleArray data); - NibbleArray createB2High(); + NibbleArray eid$createB2High(); - byte[] getB3(); + byte[] eid$getB3(); - void setB3(byte[] data); + void eid$setB3(byte[] data); - byte[] createB3(); + byte[] eid$createB3(); - int getMetadataMask(); + int eid$getBlockMask(); - int getBlockMask(); + int eid$getID(int x, int y, int z); - int getID(int x, int y, int z); + void eid$setID(int x, int y, int z, int id); - NibbleArray getM1Low(); + NibbleArray eid$getM1Low(); - void setM1Low(NibbleArray m1Low); + void eid$setM1Low(NibbleArray m1Low); - NibbleArray getM1High(); + NibbleArray eid$getM1High(); - void setM1High(NibbleArray m1High); + void eid$setM1High(NibbleArray m1High); - NibbleArray createM1High(); + NibbleArray eid$createM1High(); - byte[] getM2(); + byte[] eid$getM2(); - void setM2(byte[] m2); + void eid$setM2(byte[] m2); - byte[] createM2(); + byte[] eid$createM2(); + + int eid$getMetadataMask(); + + int eid$getMetadata(int x, int y, int z); + + void eid$setMetadata(int x, int y, int z, int id); } diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ntm/ChunkRadiationHandlerPRISMMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ntm/ChunkRadiationHandlerPRISMMixin.java index fe3efcb..04a1b83 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ntm/ChunkRadiationHandlerPRISMMixin.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ntm/ChunkRadiationHandlerPRISMMixin.java @@ -38,6 +38,6 @@ public abstract class ChunkRadiationHandlerPRISMMixin { target = "Lnet/minecraft/world/chunk/storage/ExtendedBlockStorage;getBlockLSBArray()[B"), require = 1) private byte[] extendLSBArray(ExtendedBlockStorage instance) { - return ((SubChunkBlockHook)instance).getB1(); + return ((SubChunkBlockHook)instance).eid$getB1(); } } diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ntm/ChunkRadiationHandlerPRISM_SubChunkMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ntm/ChunkRadiationHandlerPRISM_SubChunkMixin.java index eee3f7c..a5373bc 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ntm/ChunkRadiationHandlerPRISM_SubChunkMixin.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ntm/ChunkRadiationHandlerPRISM_SubChunkMixin.java @@ -38,6 +38,6 @@ public abstract class ChunkRadiationHandlerPRISM_SubChunkMixin { target = "Lnet/minecraft/world/chunk/storage/ExtendedBlockStorage;getBlockLSBArray()[B"), require = 1) private byte[] extendLSBArray(ExtendedBlockStorage instance) { - return ((SubChunkBlockHook)instance).getB1(); + return ((SubChunkBlockHook)instance).eid$getB1(); } } diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ubc/BiomeUndergroundDecoratorMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ubc/BiomeUndergroundDecoratorMixin.java index fbbb73a..4b3e14c 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ubc/BiomeUndergroundDecoratorMixin.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/ubc/BiomeUndergroundDecoratorMixin.java @@ -50,7 +50,7 @@ public abstract class BiomeUndergroundDecoratorMixin { private byte[] returnLSB(ExtendedBlockStorage subChunkVanilla) { SubChunkBlockHook subChunk = (SubChunkBlockHook) subChunkVanilla; this.subChunk = subChunk; - return subChunk.getB1(); + return subChunk.eid$getB1(); } @Redirect(method = {"replaceChunkOres(IILnet/minecraft/world/World;)V", @@ -70,7 +70,7 @@ public abstract class BiomeUndergroundDecoratorMixin { remap = true), require = 2) private int returnRestOfID(NibbleArray instance, int x, int y, int z) { - val id = subChunk.getID(x, y, z) >>> 8; + val id = subChunk.eid$getID(x, y, z) >>> 8; subChunk = null; return id; } diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/vanilla/ExtendedBlockStorageMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/vanilla/ExtendedBlockStorageMixin.java index 225771a..aeef4cb 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/vanilla/ExtendedBlockStorageMixin.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/vanilla/ExtendedBlockStorageMixin.java @@ -65,7 +65,7 @@ public abstract class ExtendedBlockStorageMixin implements SubChunkBlockHook { private NibbleArray m1High; private byte[] m2; - public int getID(int x, int y, int z) { + public int eid$getID(int x, int y, int z) { int index = y << 8 | z << 4 | x; int id = blockLSBArray[index] & 0xFF; if (blockMSBArray != null) { @@ -80,19 +80,19 @@ public abstract class ExtendedBlockStorageMixin implements SubChunkBlockHook { return id; } - private void setID(int x, int y, int z, int id) { + public void eid$setID(int x, int y, int z, int id) { int index = y << 8 | z << 4 | x; blockLSBArray[index] = (byte) (id & 0xFF); if (id > 0xFF) { if (blockMSBArray == null) { - createB2Low(); + eid$createB2Low(); } if (id > 0xFFF) { if (b2High == null) { - createB2High(); + eid$createB2High(); } if (id > 0xFFFF && b3 == null) { - createB3(); + eid$createB3(); } } } @@ -113,7 +113,7 @@ public abstract class ExtendedBlockStorageMixin implements SubChunkBlockHook { */ @Overwrite public Block getBlockByExtId(int x, int y, int z) { - return Block.getBlockById(getID(x, y, z)); + return Block.getBlockById(eid$getID(x, y, z)); } /** @@ -138,7 +138,7 @@ public abstract class ExtendedBlockStorageMixin implements SubChunkBlockHook { } int blockID = Hooks.getIdFromBlockWithCheck(newBlock, oldBlock); - setID(x, y, z, blockID); + eid$setID(x, y, z, blockID); } /** @@ -166,10 +166,10 @@ public abstract class ExtendedBlockStorageMixin implements SubChunkBlockHook { blockMetadataArray.set(x, y, z, meta & 0xF); if (meta > 0xF) { if (m1High == null) { - createM1High(); + eid$createM1High(); } if (meta > 0xFF && m2 == null) { - createM2(); + eid$createM2(); } } if (m1High != null) { @@ -180,6 +180,16 @@ public abstract class ExtendedBlockStorageMixin implements SubChunkBlockHook { } } + @Override + public int eid$getMetadata(int x, int y, int z) { + return getExtBlockMetadata(x, y, z); + } + + @Override + public void eid$setMetadata(int x, int y, int z, int id) { + setExtBlockMetadata(x, y, z, id); + } + @Redirect(method = "removeInvalidBlocks", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/chunk/storage/ExtendedBlockStorage;getBlockByExtId(III)Lnet/minecraft/block/Block;"), @@ -202,102 +212,102 @@ public abstract class ExtendedBlockStorageMixin implements SubChunkBlockHook { } @Override - public byte[] getB1() { + public byte[] eid$getB1() { return blockLSBArray; } @Override - public void setB1(byte[] data) { + public void eid$setB1(byte[] data) { blockLSBArray = data; } @Override - public NibbleArray getB2Low() { + public NibbleArray eid$getB2Low() { return blockMSBArray; } @Override - public void setB2Low(NibbleArray data) { + public void eid$setB2Low(NibbleArray data) { blockMSBArray = data; } @Override - public NibbleArray createB2Low() { + public NibbleArray eid$createB2Low() { return (blockMSBArray = new NibbleArray(blocksPerSubChunk, 4)); } @Override - public NibbleArray getB2High() { + public NibbleArray eid$getB2High() { return b2High; } @Override - public void setB2High(NibbleArray data) { + public void eid$setB2High(NibbleArray data) { b2High = data; } @Override - public NibbleArray createB2High() { + public NibbleArray eid$createB2High() { return (b2High = new NibbleArray(blocksPerSubChunk, 4)); } @Override - public byte[] getB3() { + public byte[] eid$getB3() { return b3; } @Override - public void setB3(byte[] data) { + public void eid$setB3(byte[] data) { b3 = data; } @Override - public byte[] createB3() { + public byte[] eid$createB3() { return b3 = new byte[blocksPerSubChunk]; } @Override - public NibbleArray getM1Low() { + public NibbleArray eid$getM1Low() { return blockMetadataArray; } @Override - public void setM1Low(NibbleArray m1Low) { + public void eid$setM1Low(NibbleArray m1Low) { blockMetadataArray = m1Low; } @Override - public NibbleArray getM1High() { + public NibbleArray eid$getM1High() { return m1High; } @Override - public void setM1High(NibbleArray m1High) { + public void eid$setM1High(NibbleArray m1High) { this.m1High = m1High; } @Override - public NibbleArray createM1High() { + public NibbleArray eid$createM1High() { return (m1High = new NibbleArray(blocksPerSubChunk, 4)); } @Override - public byte[] getM2() { + public byte[] eid$getM2() { return m2; } @Override - public void setM2(byte[] m2) { + public void eid$setM2(byte[] m2) { this.m2 = m2; } @Override - public byte[] createM2() { + public byte[] eid$createM2() { return (m2 = new byte[blocksPerSubChunk]); } @Override - public int getBlockMask() { + public int eid$getBlockMask() { if (blockMSBArray == null) { return 0b00; } @@ -311,7 +321,7 @@ public abstract class ExtendedBlockStorageMixin implements SubChunkBlockHook { } @Override - public int getMetadataMask() { + public int eid$getMetadataMask() { if (m1High == null) { return 0b01; }