update 1.20 WIP port

This commit is contained in:
craisinlord committed 2026-08-03 22:15:18 -05:00
1 parent 58e504cf1d
commit 68a823d5ff
31 files changed
+559 -62

No files matched your search

@@ -374,6 +374,7 @@ public final class AntarchyConfigModuleNeoforge {
private static void bakeMiscConfig() {
AntarchySettings.setRainbowAntsLeadToInfinityDimensions(AntarchyMiscConfig.rainbowAntsLeadToInfinityDimensions());
AntarchySettings.setRainbowAntInfinityEasterEggChance(AntarchyMiscConfig.rainbowAntInfinityEasterEggChance());
AntarchySettings.setDisableInfinityBookPortalCreation(AntarchyMiscConfig.disableInfinityBookPortalCreation());
AntarchySettings.setHushweedSporeLifetimeSeconds(AntarchyMiscConfig.hushweedSporeLifetimeSeconds());
AntarchySettings.setDiamondMinecartEnabled(AntarchyMiscConfig.diamondMinecartEnabled());
@@ -24,6 +24,7 @@ public final class AntarchyMiscConfig {
// Infinite Dimensions
private static final ModConfigSpec.BooleanValue DISABLE_INFINITY_BOOK_PORTAL_CREATION;
private static final ModConfigSpec.BooleanValue RAINBOW_ANTS_LEAD_TO_INFINITY_DIMENSIONS;
private static final ModConfigSpec.DoubleValue RAINBOW_ANT_INFINITY_EASTER_EGG_CHANCE;
// Permanent portals
private static final ModConfigSpec.BooleanValue PERMANENT_PORTALS_ENABLED;
@@ -105,7 +106,13 @@ public final class AntarchyMiscConfig {
"Whether rainbow ants open randomly generated Infinity dimensions.",
"Only works if the Infinite Dimensions mod is installed."
)
.define("rainbowAntsLeadToInfinityDimensions", net.neoforged.fml.ModList.get().isLoaded("infinity"));
.define("rainbowAntsLeadToInfinityDimensions", true);
RAINBOW_ANT_INFINITY_EASTER_EGG_CHANCE = b
.comment(
"Chance for a rainbow ant Infinity destination roll to select an Infinity easter egg dimension instead of a normal generated one.",
"0.01 = 1%, 0 disables easter egg rolls."
)
.defineInRange("rainbowAntInfinityEasterEggChance", 0.01D, 0.0D, 1.0D);
b.pop();
@@ -174,6 +181,7 @@ public final class AntarchyMiscConfig {
static boolean disableInfinityBookPortalCreation() { return DISABLE_INFINITY_BOOK_PORTAL_CREATION.get(); }
static boolean rainbowAntsLeadToInfinityDimensions() { return RAINBOW_ANTS_LEAD_TO_INFINITY_DIMENSIONS.get(); }
static double rainbowAntInfinityEasterEggChance() { return RAINBOW_ANT_INFINITY_EASTER_EGG_CHANCE.get(); }
public static boolean permanentPortalsEnabled() { return PERMANENT_PORTALS_ENABLED.get(); }
public static boolean permanentPortalsFlintAndSteelEnabled() { return PERMANENT_PORTALS_FLINT_AND_STEEL_ENABLED.get(); }
public static boolean elythiaPortalEnabled() { return ELYTHIA_PORTAL_ENABLED.get(); }
@@ -2,12 +2,16 @@ package com.craisinlord.antarchy.neoforge;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.compat.infinity.InfinityCompatBridge;
import net.lerariemann.infinity.InfinityMod;
import net.lerariemann.infinity.util.InfinityMethods;
import net.lerariemann.infinity.util.teleport.WarpLogic;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.util.RandomSource;
import java.util.ArrayList;
import java.util.List;
public final class NeoForgeInfinityCompat implements InfinityCompatBridge {
@Override
public boolean isAvailable() {
@@ -24,6 +28,43 @@ public final class NeoForgeInfinityCompat implements InfinityCompatBridge {
}
}
@Override
public ResourceLocation getRandomDimensionId(RandomSource random, double easterEggChance) {
try {
if (easterEggChance > 0.0D && random.nextDouble() < easterEggChance) {
ResourceLocation easterDimensionId = getRandomEasterDimensionId(random);
if (easterDimensionId != null) {
return easterDimensionId;
}
}
return InfinityMethods.getRandomId(random);
} catch (Throwable throwable) {
Antarchy.LOGGER.error("[Antarchy] Failed to get a random Infinity dimension id", throwable);
return null;
}
}
private static ResourceLocation getRandomEasterDimensionId(RandomSource random) {
if (InfinityMod.provider == null || InfinityMod.provider.easterizer == null) {
return null;
}
List<String> easterNames = new ArrayList<>();
for (String easterName : InfinityMod.provider.easterizer.map.keySet()) {
if (InfinityMod.provider.easterizer.isEaster(easterName)) {
easterNames.add(easterName);
}
}
if (easterNames.isEmpty()) {
return null;
}
String chosenEaster = easterNames.get(random.nextInt(easterNames.size()));
return InfinityMod.provider.easterizer.getAsEaster(chosenEaster);
}
@Override
public boolean requestWarp(ServerPlayer player, ResourceLocation dimensionId) {
try {