Skip to content

Commit

Permalink
[1.20.6] Fix crash when biomes have been disabled via modloader metho…
Browse files Browse the repository at this point in the history
…ds. (#169)

* Fix crash when biomes have been disabled via modloader methods.

* Remove unused import.
  • Loading branch information
MerchantPug authored May 28, 2024
1 parent dac7cf6 commit bfea924
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 7 deletions.
10 changes: 4 additions & 6 deletions Common/src/main/java/terrablender/mixin/MixinParameterList.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import terrablender.api.Region;
import terrablender.api.RegionType;
import terrablender.api.Regions;
Expand All @@ -48,13 +47,9 @@ public abstract class MixinParameterList<T> implements IExtendedParameterList<T>
@Shadow
public abstract T findValue(Climate.TargetPoint target);

@Unique
private boolean initialized = false;
@Unique
private boolean treesPopulated = false;
@Unique
private Area uniqueness;
@Unique
private Climate.RTree[] uniqueTrees;

@Override
Expand All @@ -81,7 +76,10 @@ public void initializeForTerraBlender(RegistryAccess registryAccess, RegionType
else
{
List<Pair<Climate.ParameterPoint, Holder<Biome>>> pairs = new ArrayList<>();
region.addBiomes(biomeRegistry, pair -> pairs.add(pair.mapSecond(biomeRegistry::getHolderOrThrow)));
region.addBiomes(biomeRegistry, pair -> {
if (biomeRegistry.getHolder(pair.getSecond()).isPresent())
pairs.add(pair.mapSecond(biomeRegistry::getHolderOrThrow));
});

// We can't create an RTree if there are no values present.
if (!pairs.isEmpty())
Expand Down
5 changes: 4 additions & 1 deletion Common/src/main/java/terrablender/util/LevelUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,10 @@ public static void initializeBiomes(RegistryAccess registryAccess, Holder<Dimens
// Append modded biomes to the biome source biome list
Registry<Biome> biomeRegistry = registryAccess.registryOrThrow(Registries.BIOME);
ImmutableList.Builder<Holder<Biome>> builder = ImmutableList.builder();
Regions.get(regionType).forEach(region -> region.addBiomes(biomeRegistry, pair -> builder.add(biomeRegistry.getHolderOrThrow(pair.getSecond()))));
Regions.get(regionType).forEach(region -> region.addBiomes(biomeRegistry, pair -> {
if (biomeRegistry.getHolder(pair.getSecond()).isPresent())
builder.add(biomeRegistry.getHolderOrThrow(pair.getSecond()));
}));
biomeSourceEx.appendDeferredBiomesList(builder.build());

TerraBlender.LOGGER.info(String.format("Initialized TerraBlender biomes for level stem %s", levelResourceKey.location()));
Expand Down

0 comments on commit bfea924

Please sign in to comment.