Enderlicious compat (#48)

This commit is contained in:
FalsePattern committed 2022-12-27 16:16:56 +01:00
1 parent 3c6bd584cb
commit 05410cd423
5 files changed
+80

No files matched your search

@@ -0,0 +1,18 @@
package com.falsepattern.endlessids.mixin.mixins.common.enderlicious;
import DelirusCrux.Enderlicious.Common.Utility.Configuration.BiomeConfiguration;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;
@Mixin(value = BiomeConfiguration.class,
remap = false)
public abstract class BiomeConfigurationMixin {
@ModifyConstant(method = "init",
constant = {@Constant(intValue = 200),
@Constant(intValue = 210)},
require = 2)
private static int shiftBiomeIDsUp(int id) {
return id + 3000;
}
}
@@ -0,0 +1,53 @@
package com.falsepattern.endlessids.mixin.mixins.common.enderlicious;
import DelirusCrux.Enderlicious.Dimension.EndChunkProvider;
import com.falsepattern.endlessids.mixin.helpers.BiomePatchHelper;
import com.falsepattern.endlessids.mixin.helpers.IChunkMixin;
import lombok.val;
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.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.chunk.Chunk;
import static com.falsepattern.endlessids.EndlessIDs.ZERO_LENGTH_BIOME_ARRAY_PLACEHOLDER;
@Mixin(value = EndChunkProvider.class,
remap = false)
public abstract class EndChunkProviderMixin {
@Shadow
private BiomeGenBase[] biomesForGeneration;
private int xx;
private int zz;
@Inject(method = "provideChunk",
at = @At("HEAD"),
require = 1)
private void grabXZ(int X, int Y, CallbackInfoReturnable<Chunk> cir) {
xx = X * 16;
zz = Y * 16;
}
@Redirect(method = "provideChunk",
at = @At(value = "INVOKE",
target = "Lnet/minecraft/world/chunk/Chunk;getBiomeArray()[B",
remap = true),
remap = true,
require = 1)
private byte[] setBiomesTweaked(Chunk chunk) {
val chunkBiomes = ((IChunkMixin) chunk).getBiomeShortArray();
for(int k = 0; k < chunkBiomes.length; ++k) {
if (Math.abs(xx) < 160 && Math.abs(zz) < 160) {
chunkBiomes[k] = 9;
} else {
chunkBiomes[k] = (short)this.biomesForGeneration[k].biomeID;
}
}
return ZERO_LENGTH_BIOME_ARRAY_PLACEHOLDER;
}
}
@@ -116,6 +116,10 @@ public enum Mixin implements IMixin {
ReikaChunkHelperMixin(Side.COMMON, require(TargetedMod.DRAGONAPI), "dragonapi.ReikaChunkHelperMixin"),
ReikaWorldHelperMixin(Side.COMMON, require(TargetedMod.DRAGONAPI), "dragonapi.ReikaWorldHelperMixin"),
//endregion DragonAPI->common
//region Enderlicious->common
EnderliciousBiomeConfigurationMixin(Side.COMMON, require(TargetedMod.ENDERLICIOUS), "enderlicious.BiomeConfigurationMixin"),
EnderliciousEndChunkProviderMixin(Side.COMMON, require(TargetedMod.ENDERLICIOUS), "enderlicious.EndChunkProviderMixin"),
//endregion Enderlicious->common
//region EnhancedBiomes
EBBiomeIDsMixin(Side.COMMON, require(TargetedMod.EB), "eb.BiomeIDsMixin"),
EBGenLayerArchipelagoEdgeMixin(Side.COMMON, require(TargetedMod.EB), "eb.GenLayerArchipelagoEdgeMixin"),
@@ -24,6 +24,7 @@ public enum TargetedMod implements ITargetedMod {
DARKWORLD("Dark World", true, startsWith("darkworld-")),
DRAGONAPI("DragonAPI", false, startsWith("dragonapi")),
EB("Enhanced Biomes", true, startsWith("Enhanced Biomes").or(startsWith("enhancedbiomes"))),
ENDERLICIOUS("Enderlicious", true, startsWith("enderlicious-")),
EREBUS("The Erebus", true, startsWith("theerebus")),
EXTRAPLANETS("Extra Planets", false, startsWith("extraplanets-")),
EXTRAUTILITIES("Extra Utilities", true, startsWith("extrautilities-")),