diff --git a/src/main/java/org/betterx/bclib/api/v2/levelgen/biomes/FabricBiomesData.java b/src/main/java/org/betterx/bclib/api/v2/levelgen/biomes/FabricBiomesData.java deleted file mode 100644 index d14c45a2..00000000 --- a/src/main/java/org/betterx/bclib/api/v2/levelgen/biomes/FabricBiomesData.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.betterx.bclib.api.v2.levelgen.biomes; - -import net.minecraft.resources.ResourceKey; -import net.minecraft.world.level.biome.Biome; - -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; - -import java.util.Map; -import java.util.Set; - -public class FabricBiomesData { - public static final Map, Float> END_LAND_BIOMES = Maps.newHashMap(); - public static final Map, Float> END_VOID_BIOMES = Maps.newHashMap(); - public static final Set> NETHER_BIOMES = Sets.newHashSet(); -} diff --git a/src/main/java/org/betterx/bclib/api/v2/levelgen/biomes/InternalBiomeAPI.java b/src/main/java/org/betterx/bclib/api/v2/levelgen/biomes/InternalBiomeAPI.java index 2122de7e..a1b273e4 100644 --- a/src/main/java/org/betterx/bclib/api/v2/levelgen/biomes/InternalBiomeAPI.java +++ b/src/main/java/org/betterx/bclib/api/v2/levelgen/biomes/InternalBiomeAPI.java @@ -109,32 +109,32 @@ public class InternalBiomeAPI { * Load biomes from Fabric API. For internal usage only. */ public static void loadFabricAPIBiomes() { - FabricBiomesData.NETHER_BIOMES.forEach((key) -> { - if (!BiomeAPI.hasBiome(key.location())) { - Optional> optional = BuiltinRegistries.BIOME.getHolder(key); - if (optional.isPresent()) { - BiomeAPI.registerNetherBiome(optional.get().value()); - } - } - }); - - FabricBiomesData.END_LAND_BIOMES.forEach((key, weight) -> { - if (!BiomeAPI.hasBiome(key.location())) { - Optional> optional = BuiltinRegistries.BIOME.getHolder(key); - if (optional.isPresent()) { - BiomeAPI.registerEndLandBiome(optional.get(), weight); - } - } - }); - - FabricBiomesData.END_VOID_BIOMES.forEach((key, weight) -> { - if (!BiomeAPI.hasBiome(key.location())) { - Optional> optional = BuiltinRegistries.BIOME.getHolder(key); - if (optional.isPresent()) { - BiomeAPI.registerEndVoidBiome(optional.get(), weight); - } - } - }); +// FabricBiomesData.NETHER_BIOMES.forEach((key) -> { +// if (!BiomeAPI.hasBiome(key.location())) { +// Optional> optional = BuiltinRegistries.BIOME.getHolder(key); +// if (optional.isPresent()) { +// BiomeAPI.registerNetherBiome(optional.get().value()); +// } +// } +// }); +// +// FabricBiomesData.END_LAND_BIOMES.forEach((key, weight) -> { +// if (!BiomeAPI.hasBiome(key.location())) { +// Optional> optional = BuiltinRegistries.BIOME.getHolder(key); +// if (optional.isPresent()) { +// BiomeAPI.registerEndLandBiome(optional.get(), weight); +// } +// } +// }); +// +// FabricBiomesData.END_VOID_BIOMES.forEach((key, weight) -> { +// if (!BiomeAPI.hasBiome(key.location())) { +// Optional> optional = BuiltinRegistries.BIOME.getHolder(key); +// if (optional.isPresent()) { +// BiomeAPI.registerEndVoidBiome(optional.get(), weight); +// } +// } +// }); } /** diff --git a/src/main/java/org/betterx/bclib/mixin/common/TheEndBiomeDataMixin.java b/src/main/java/org/betterx/bclib/mixin/common/TheEndBiomeDataMixin.java index 1fefc7ad..1fc7b9c8 100644 --- a/src/main/java/org/betterx/bclib/mixin/common/TheEndBiomeDataMixin.java +++ b/src/main/java/org/betterx/bclib/mixin/common/TheEndBiomeDataMixin.java @@ -2,7 +2,6 @@ package org.betterx.bclib.mixin.common; import org.betterx.bclib.interfaces.TheEndBiomeDataAccessor; -import net.minecraft.core.Holder; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.biome.Biome; @@ -13,45 +12,29 @@ import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import javax.annotation.Nullable; import java.util.Map; -@Mixin(value = TheEndBiomeData.Overrides.class, remap = false) +@Mixin(value = TheEndBiomeData.class, remap = false) public class TheEndBiomeDataMixin implements TheEndBiomeDataAccessor { @Shadow @Final - @Nullable - private Map, WeightedPicker>> endBiomesMap; + private static Map, WeightedPicker>> END_BIOMES_MAP; @Shadow @Final - @Nullable - private Map, WeightedPicker>> endMidlandsMap; + private static Map, WeightedPicker>> END_MIDLANDS_MAP; @Shadow @Final - @Nullable - private Map, WeightedPicker>> endBarrensMap; + private static Map, WeightedPicker>> END_BARRENS_MAP; public boolean bcl_canGenerateAsEndBiome(ResourceKey key) { - return endBiomesMap != null && endBiomesMap - .keySet() - .stream() - .map(h->h.unwrapKey().orElse(null)) - .anyMatch(k->k!=null && k.equals(key)); + return END_BIOMES_MAP != null && END_BIOMES_MAP.containsKey(key); } public boolean bcl_canGenerateAsEndMidlandBiome(ResourceKey key) { - return endMidlandsMap != null && endMidlandsMap - .keySet() - .stream() - .map(h->h.unwrapKey().orElse(null)) - .anyMatch(k->k!=null && k.equals(key)); + return END_MIDLANDS_MAP != null && END_MIDLANDS_MAP.containsKey(key); } public boolean bcl_canGenerateAsEndBarrensBiome(ResourceKey key) { - return endBarrensMap != null && endBarrensMap - .keySet() - .stream() - .map(h->h.unwrapKey().orElse(null)) - .anyMatch(k->k!=null && k.equals(key)); + return END_BARRENS_MAP != null && END_BARRENS_MAP.containsKey(key); } } diff --git a/src/main/java/org/betterx/worlds/together/world/event/WorldBootstrap.java b/src/main/java/org/betterx/worlds/together/world/event/WorldBootstrap.java index 5069aece..11fbe943 100644 --- a/src/main/java/org/betterx/worlds/together/world/event/WorldBootstrap.java +++ b/src/main/java/org/betterx/worlds/together/world/event/WorldBootstrap.java @@ -231,17 +231,21 @@ public class WorldBootstrap { ) { try { var levelStorageAccess = levelSource.createAccess(levelID); - Helpers.initializeWorldConfig(levelStorageAccess, false); + try { + Helpers.initializeWorldConfig(levelStorageAccess, false); - //Helpers.setupWorld(); - WorldEventsImpl.BEFORE_WORLD_LOAD.emit(e -> e.prepareWorld( - levelStorageAccess, - TogetherWorldPreset.loadWorldDimensions(), - false - )); + //Helpers.setupWorld(); + WorldEventsImpl.BEFORE_WORLD_LOAD.emit(e -> e.prepareWorld( + levelStorageAccess, + TogetherWorldPreset.loadWorldDimensions(), + false + )); + } catch (Exception e) { + BCLib.LOGGER.error("Failed to initialize data in world", e); + } levelStorageAccess.close(); } catch (Exception e) { - BCLib.LOGGER.error("Failed to initialize data in world", e); + BCLib.LOGGER.error("Failed to acquire storage access", e); } }