Advanced Rocketry compat (#52)

This commit is contained in:
FalsePattern committed 2022-12-27 18:14:27 +01:00
1 parent 3e8187850e
commit 8e248c94c8
7 files changed
+144

No files matched your search

@@ -0,0 +1,33 @@
package com.falsepattern.endlessids.mixin.mixins.common.arocketry;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;
import zmaster587.advancedRocketry.AdvancedRocketry;
@Mixin(value = AdvancedRocketry.class,
remap = false)
public abstract class AdvancedRocketryMixin {
@ModifyConstant(method = "load",
constant = {@Constant(intValue = 110, ordinal = 0),
@Constant(intValue = 111, ordinal = 0),
@Constant(intValue = 112, ordinal = 0),
@Constant(intValue = 113, ordinal = 0),
@Constant(intValue = 114, ordinal = 0),
@Constant(intValue = 115, ordinal = 0),
@Constant(intValue = 116, ordinal = 0),
@Constant(intValue = 117, ordinal = 0),
@Constant(intValue = 118, ordinal = 0),
@Constant(intValue = 119, ordinal = 0)},
require = 10)
private static int shiftBiomeIDsUp(int constant) {
return constant + 9000;
}
@ModifyConstant(method = "preInit",
constant = @Constant(intValue = -2),
require = 1)
private static int changeDefaultDimID(int constant) {
return -5613;
}
}
@@ -0,0 +1,46 @@
package com.falsepattern.endlessids.mixin.mixins.common.arocketry;
import com.falsepattern.endlessids.mixin.helpers.BiomePatchHelper;
import org.spongepowered.asm.mixin.Mixin;
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 org.spongepowered.asm.mixin.injection.callback.LocalCapture;
import zmaster587.advancedRocketry.world.ChunkProviderCavePlanet;
import zmaster587.advancedRocketry.world.ChunkProviderPlanet;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.chunk.Chunk;
@Mixin(value = ChunkProviderCavePlanet.class,
remap = false)
public abstract class ChunkProviderCavePlanetMixin {
private BiomeGenBase[] bgb;
@Inject(method = "provideChunk",
at = @At(value = "INVOKE",
target = "Lnet/minecraft/world/chunk/Chunk;getBiomeArray()[B",
shift = At.Shift.BEFORE,
remap = true),
remap = true,
locals = LocalCapture.CAPTURE_FAILHARD,
require = 1)
private void setBiomesTweaked1(int p_73154_1_, int p_73154_2_, CallbackInfoReturnable<Chunk> cir, ChunkProviderPlanet.BlockMetacoupling ablock, BiomeGenBase[] abiomegenbase, Chunk chunk) {
bgb = abiomegenbase;
}
@Redirect(method = "provideChunk",
at = @At(value = "INVOKE",
target = "Lnet/minecraft/world/chunk/Chunk;getBiomeArray()[B",
remap = true),
remap = true,
require = 1)
private byte[] setBiomesTweaked2(Chunk chunk) {
try {
return BiomePatchHelper.getBiomeArrayTweaked(chunk, bgb);
} finally {
bgb = null;
}
}
}
@@ -0,0 +1,26 @@
package com.falsepattern.endlessids.mixin.mixins.common.arocketry;
import com.falsepattern.endlessids.mixin.helpers.BiomePatchHelper;
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.Redirect;
import zmaster587.advancedRocketry.world.ChunkProviderPlanet;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.chunk.Chunk;
@Mixin(value = ChunkProviderPlanet.class,
remap = false)
public abstract class ChunkProviderPlanetMixin {
@Shadow
private BiomeGenBase[] biomesForGeneration;
@Redirect(method = "provideChunk",
at = @At(value = "INVOKE",
target = "Lnet/minecraft/world/chunk/Chunk;getBiomeArray()[B",
remap = true),
remap = true)
private byte[] setBiomesTweaked(Chunk chunk) {
return BiomePatchHelper.getBiomeArrayTweaked(chunk, biomesForGeneration);
}
}
@@ -0,0 +1,25 @@
package com.falsepattern.endlessids.mixin.mixins.common.arocketry;
import com.falsepattern.endlessids.mixin.helpers.BiomePatchHelper;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
import zmaster587.advancedRocketry.api.AdvancedRocketryBiomes;
import zmaster587.advancedRocketry.world.ChunkProviderSpace;
import net.minecraft.world.chunk.Chunk;
@Mixin(value = ChunkProviderSpace.class,
remap = false)
public abstract class ChunkProviderSpaceMixin {
@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) {
return BiomePatchHelper.getBiomeArrayTweaked(chunk, (i) -> AdvancedRocketryBiomes.spaceBiome);
}
}
@@ -57,6 +57,12 @@ public enum Mixin implements IMixin {
//region AbyssalCraft->common
AbyssalCraftMixin(Side.COMMON, require(TargetedMod.ABYSSALCRAFT), "abyssalcraft.AbyssalCraftMixin"),
//endregion AbyssalCraft->common
//region AdvancedRocketry->common
AdvancedRocketryMixin(Side.COMMON, require(TargetedMod.AROCKETRY), "arocketry.AdvancedRocketryMixin"),
ARocketryChunkProviderCavePlanetMixin(Side.COMMON, require(TargetedMod.AROCKETRY), "arocketry.ChunkProviderCavePlanetMixin"),
ARocketryChunkProviderPlanetMixin(Side.COMMON, require(TargetedMod.AROCKETRY), "arocketry.ChunkProviderPlanetMixin"),
ARocketryChunkProviderSpaceMixin(Side.COMMON, require(TargetedMod.AROCKETRY), "arocketry.ChunkProviderSpaceMixin"),
//endregion AdvancedRocketry->common
//region ATG->common
ATGBiomeConfigMixin(Side.COMMON, require(TargetedMod.ATG), "atg.ATGBiomeConfigMixin"),
ATGBiomeManagerMixin(Side.COMMON, require(TargetedMod.ATG), "atg.ATGBiomeManagerMixin"),
@@ -12,6 +12,7 @@ import static com.falsepattern.lib.mixin.ITargetedMod.PredicateHelpers.startsWit
public enum TargetedMod implements ITargetedMod {
ABYSSALCRAFT("AbyssalCraft", true, startsWith("abyssalcraft-")),
AROCKETRY("Advanced Rocketry", true, startsWith("advancedrocketry-")),
ATG("Alternate Terrain Generation", true, startsWith("atg")),
ANTIQUEATLAS("Antique Atlas", true, startsWith("antiqueatlas")),
ANTIIDCONFLICT("Anti ID Conflict", true, startsWith("antiidconflict")),