From 375c56999ff4bb3a8a66db7478d3e5f08b90f4a1 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 9 Jun 2021 13:14:00 +0200 Subject: [PATCH] Address code review, add utility method to get features for specific step --- .../shedaniel/architectury/hooks/biome/BiomeHooks.java | 5 +++++ .../architectury/hooks/biome/GenerationProperties.java | 3 +++ .../architectury/registry/BiomeModifications.java | 9 +++++---- .../registry/forge/BiomeModificationsImpl.java | 7 ++++++- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/common/src/main/java/me/shedaniel/architectury/hooks/biome/BiomeHooks.java b/common/src/main/java/me/shedaniel/architectury/hooks/biome/BiomeHooks.java index 6c4a6887..fc8df8d9 100644 --- a/common/src/main/java/me/shedaniel/architectury/hooks/biome/BiomeHooks.java +++ b/common/src/main/java/me/shedaniel/architectury/hooks/biome/BiomeHooks.java @@ -390,6 +390,11 @@ public final class BiomeHooks { return settings.getCarvers(carving); } + @Override + public List>> getFeatures(GenerationStep.Decoration decoration) { + return settings.features().get(decoration.ordinal()); + } + @Override public List>>> getFeatures() { return settings.features(); diff --git a/common/src/main/java/me/shedaniel/architectury/hooks/biome/GenerationProperties.java b/common/src/main/java/me/shedaniel/architectury/hooks/biome/GenerationProperties.java index a8bc6fad..c225c35b 100644 --- a/common/src/main/java/me/shedaniel/architectury/hooks/biome/GenerationProperties.java +++ b/common/src/main/java/me/shedaniel/architectury/hooks/biome/GenerationProperties.java @@ -19,6 +19,7 @@ package me.shedaniel.architectury.hooks.biome; +import net.minecraft.world.entity.animal.Panda; import net.minecraft.world.level.levelgen.GenerationStep; import net.minecraft.world.level.levelgen.carver.ConfiguredWorldCarver; import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; @@ -34,6 +35,8 @@ public interface GenerationProperties { List>> getCarvers(GenerationStep.Carving carving); + List>> getFeatures(GenerationStep.Decoration decoration); + List>>> getFeatures(); List>> getStructureStarts(); diff --git a/common/src/main/java/me/shedaniel/architectury/registry/BiomeModifications.java b/common/src/main/java/me/shedaniel/architectury/registry/BiomeModifications.java index e2fe24be..3e532742 100644 --- a/common/src/main/java/me/shedaniel/architectury/registry/BiomeModifications.java +++ b/common/src/main/java/me/shedaniel/architectury/registry/BiomeModifications.java @@ -37,16 +37,17 @@ import java.util.function.Predicate; * with the corresponding Forge EventPriority shown in brackets: * *
    - *
  1. {@link #addProperties(Predicate, BiConsumer) Adding} new features to biomes. [HIGH]
  2. - *
  3. {@link #removeProperties(Predicate, BiConsumer) Removing} existing features from biomes. [NORMAL]
  4. - *
  5. {@link #replaceProperties(Predicate, BiConsumer) Replacing} existing features with new ones. [LOW]
  6. - *
  7. Generic {@link #postProcessProperties(Predicate, BiConsumer) Post-Processing} of already modified biome features. [LOWEST]
  8. + *
  9. {@linkplain #addProperties(Predicate, BiConsumer) Adding} new features to biomes. [HIGH]
  10. + *
  11. {@linkplain #removeProperties(Predicate, BiConsumer) Removing} existing features from biomes. [NORMAL]
  12. + *
  13. {@linkplain #replaceProperties(Predicate, BiConsumer) Replacing} existing features with new ones. [LOW]
  14. + *
  15. Generic {@linkplain #postProcessProperties(Predicate, BiConsumer) Post-Processing} of already modified biome features. [LOWEST]
  16. *
* * Keep in mind that it isn't strictly required that you use these phases accordingly * (i.e., you may also add features during Post-Processing, for example); they mostly serve to * add a predictable order to biome modifications. */ +@SuppressWarnings("JavadocReference") public final class BiomeModifications { public static void addProperties(BiConsumer modifier) { BiomeModifications.addProperties(Predicates.alwaysTrue(), modifier); diff --git a/forge/src/main/java/me/shedaniel/architectury/registry/forge/BiomeModificationsImpl.java b/forge/src/main/java/me/shedaniel/architectury/registry/forge/BiomeModificationsImpl.java index d10e488b..0e192f18 100644 --- a/forge/src/main/java/me/shedaniel/architectury/registry/forge/BiomeModificationsImpl.java +++ b/forge/src/main/java/me/shedaniel/architectury/registry/forge/BiomeModificationsImpl.java @@ -174,7 +174,12 @@ public class BiomeModificationsImpl { public @NotNull List>> getCarvers(GenerationStep.Carving carving) { return generation.getCarvers(carving); } - + + @Override + public List>> getFeatures(GenerationStep.Decoration decoration) { + return generation.getFeatures(decoration); + } + @Override public @NotNull List>>> getFeatures() { return ((BiomeGenerationSettingsBuilderAccessor) generation).getFeatures();