mirror of
https://github.com/GTMEGA/EndlessIDs.git
synced 2026-11-12 04:57:31 +00:00
Advanced Rocketry compat (#52)
This commit is contained in:
7 files changed
+144
No files matched your search
+33
@@ -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;
|
||||
}
|
||||
}
|
||||
+46
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
+26
@@ -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);
|
||||
}
|
||||
}
|
||||
+25
@@ -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")),
|
||||
|
||||
Reference in new issue
Block a user