diff --git a/build.gradle.kts b/build.gradle.kts index 283e18e..d9320d6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -88,14 +88,6 @@ dependencies { // endregion // region unmaintained mods - - devOnlyNonPublishable("com.github.GTNewHorizons:Galaxy-Space-GTNH:1.1.126-GTNH:dev") { isTransitive = false } - devOnlyNonPublishable("com.github.GTNewHorizons:Galacticraft:3.4.15-GTNH:dev") { isTransitive = false } - devOnlyNonPublishable("com.github.GTNewHorizons:NotEnoughItems:2.8.50-GTNH:dev") { isTransitive = false} - devOnlyNonPublishable("com.github.GTNewHorizons:CodeChickenCore:1.4.7:dev") { isTransitive = false} - devOnlyNonPublishable("curse.maven:industrial-craft-242638:6833054") { isTransitive = false } - devOnlyNonPublishable("com.github.GTNewHorizons:TinkersConstruct:1.14.17-GTNH:dev") { isTransitive = false } - devOnlyNonPublishable("com.github.GTNewHorizons:Mantle:0.5.1:dev") //AbyssalCraft 1.9.1.3-FINAL compileOnly(deobfCurse("abyssalcraft-53686:2311135")) diff --git a/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/thermos/NibbleArrayMixin.java b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/thermos/NibbleArrayMixin.java new file mode 100644 index 0000000..a2f2778 --- /dev/null +++ b/src/main/java/com/falsepattern/endlessids/mixin/mixins/common/blockitem/thermos/NibbleArrayMixin.java @@ -0,0 +1,69 @@ +/* + * EndlessIDs + * + * Copyright (C) 2022-2025 FalsePattern, The MEGA Team + * All Rights Reserved + * + * The above copyright notice, this permission notice and the word "MEGA" + * shall be included in all copies or substantial portions of the Software. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, only version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + +package com.falsepattern.endlessids.mixin.mixins.common.blockitem.thermos; + +import org.spongepowered.asm.lib.Opcodes; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import net.minecraft.world.chunk.NibbleArray; + +@Mixin(NibbleArray.class) +public class NibbleArrayMixin { + + @Shadow + public byte[] data; // Thermos renamed 'data' + @Shadow private int depthBits; // depthBits + @Shadow private int depthBitsPlusFour; // depthBitsPlusFour + + @Shadow private int length; + @Shadow private byte trivialByte; + @Shadow private byte trivialValue; + + @Inject( + method = "detectAndProcessTrivialArray", + at = @At( + value = "FIELD", + opcode = Opcodes.PUTFIELD, + target = "Lnet/minecraft/world/chunk/NibbleArray;data:[B", + shift = At.Shift.BEFORE + ), + cancellable = true) + private void logBeforeNull(CallbackInfo ci) { + ci.cancel(); + } + + @Inject(method = "(II)V", at = @At("RETURN")) + private void fixConstructor(int par1, int par2, CallbackInfo ci) { + this.data = new byte[par1 >> 1]; + this.depthBits = par2; + this.depthBitsPlusFour = par2 + 4; + this.length = par1 >> 1; + this.trivialValue = 0; + this.trivialByte = 0; + } + +} diff --git a/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java b/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java index eb30c9d..72e9b7e 100644 --- a/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java +++ b/src/main/java/com/falsepattern/endlessids/mixin/plugin/Mixin.java @@ -277,7 +277,7 @@ public enum Mixin implements IMixins { common("biome.galacticraft.ChunkProviderOrbitMixin", "biome.galacticraft.ConfigManagerCoreMixin")), - Biome_GalaxySpace(Phase.EARLY, + Biome_GalaxySpace(Phase.LATE, Ext.Biome, require(GalaxySpace), common("biome.galaxyspace.ChunkProviderKuiperMixin", @@ -434,7 +434,8 @@ public enum Mixin implements IMixins { "blockitem.vanilla.S22PacketMultiBlockChangeMixin", "blockitem.vanilla.S24PacketBlockActionMixin", "blockitem.vanilla.StatListMixin", - "blockitem.vanilla.WorldMixin"), + "blockitem.vanilla.WorldMixin", + "blockitem.thermos.NibbleArrayMixin"), client("blockitem.vanilla.PlayerControllerMPMixin", "blockitem.vanilla.RenderGlobalMixin")),