Skip to content

Commit f3f27ad

Browse files
authored
Merge pull request #22 from GTNewHorizons/thermos-nibble-compat
Thermos Compat with postNeidWorldsSupport
2 parents cd5accd + 88f2ae3 commit f3f27ad

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

src/main/java/com/gtnewhorizons/neid/mixins/early/minecraft/MixinAnvilChunkLoader.java

+26-1
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,16 @@
1212
import com.gtnewhorizons.neid.Constants;
1313
import com.gtnewhorizons.neid.NEIDConfig;
1414
import com.gtnewhorizons.neid.mixins.interfaces.IExtendedBlockStorageMixin;
15+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
16+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
1517
import com.llamalad7.mixinextras.sugar.Local;
1618

1719
@Mixin(AnvilChunkLoader.class)
1820
public class MixinAnvilChunkLoader {
1921

22+
private static byte[] fakeByteArray = new byte[0];
23+
private static NibbleArray fakeNibbleArray = new NibbleArray(0, 0);
24+
2025
@Redirect(
2126
method = "writeChunkToNBT",
2227
at = @At(
@@ -133,13 +138,33 @@ public class MixinAnvilChunkLoader {
133138
return false;
134139
}
135140

141+
@Redirect(
142+
method = "readChunkFromNBT",
143+
at = @At(
144+
value = "INVOKE",
145+
target = "Lnet/minecraft/nbt/NBTTagCompound;getByteArray(Ljava/lang/String;)[B",
146+
ordinal = 2),
147+
require = 1)
148+
private byte[] neid$cancelByteArrayCreationForMetadata(NBTTagCompound nbttagcompound1, String s) {
149+
return fakeByteArray;
150+
}
151+
152+
@WrapOperation(
153+
method = "readChunkFromNBT",
154+
at = @At(value = "NEW", target = "Lnet/minecraft/world/chunk/NibbleArray;", ordinal = 1),
155+
require = 1)
156+
private NibbleArray neid$cancelNibbleArrayCreationForMetadata(byte[] bytes, int i,
157+
Operation<NibbleArray> original) {
158+
return fakeNibbleArray;
159+
}
160+
136161
@Redirect(
137162
method = "readChunkFromNBT",
138163
at = @At(
139164
value = "INVOKE",
140165
target = "Lnet/minecraft/world/chunk/storage/ExtendedBlockStorage;setBlockMetadataArray(Lnet/minecraft/world/chunk/NibbleArray;)V"),
141166
require = 1)
142-
private void neid$overrideReadMetadataArray(ExtendedBlockStorage ebs, NibbleArray oldBrokenNibbleArray,
167+
private void neid$overrideReadMetadataArray(ExtendedBlockStorage ebs, NibbleArray oldNibble,
143168
@Local(ordinal = 1) NBTTagCompound nbt) {
144169
IExtendedBlockStorageMixin ebsMixin = (IExtendedBlockStorageMixin) ebs;
145170
if (nbt.hasKey("Data16")) {

0 commit comments

Comments
 (0)