update 1.20 WIP port
This commit is contained in:
1 parent
58e504cf1d
commit
68a823d5ff
31 files changed
+559
-62
No files matched your search
+1
@@ -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());
|
||||
|
||||
+9
-1
@@ -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(); }
|
||||
|
||||
+41
@@ -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 {
|
||||
|
||||
Reference in new issue
Block a user