Forráskód Böngészése

Address code review, add utility method to get features for specific step

Max 4 éve
szülő
commit
375c56999f

+ 5 - 0
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<Supplier<ConfiguredFeature<?, ?>>> getFeatures(GenerationStep.Decoration decoration) {
+            return settings.features().get(decoration.ordinal());
+        }
+        
         @Override
         public List<List<Supplier<ConfiguredFeature<?, ?>>>> getFeatures() {
             return settings.features();

+ 3 - 0
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<Supplier<ConfiguredWorldCarver<?>>> getCarvers(GenerationStep.Carving carving);
     
+    List<Supplier<ConfiguredFeature<?, ?>>> getFeatures(GenerationStep.Decoration decoration);
+    
     List<List<Supplier<ConfiguredFeature<?, ?>>>> getFeatures();
     
     List<Supplier<ConfiguredStructureFeature<?, ?>>> getStructureStarts();

+ 5 - 4
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:
  *
  * <ol>
- *     <li>{@link #addProperties(Predicate, BiConsumer) Adding} new features to biomes. [HIGH]</li>
- *     <li>{@link #removeProperties(Predicate, BiConsumer)  Removing} existing features from biomes. [NORMAL]</li>
- *     <li>{@link #replaceProperties(Predicate, BiConsumer) Replacing} existing features with new ones. [LOW]</li>
- *     <li>Generic {@link #postProcessProperties(Predicate, BiConsumer) Post-Processing} of already modified biome features. [LOWEST]</li>
+ *     <li>{@linkplain #addProperties(Predicate, BiConsumer) Adding} new features to biomes. [HIGH]</li>
+ *     <li>{@linkplain #removeProperties(Predicate, BiConsumer)  Removing} existing features from biomes. [NORMAL]</li>
+ *     <li>{@linkplain #replaceProperties(Predicate, BiConsumer) Replacing} existing features with new ones. [LOW]</li>
+ *     <li>Generic {@linkplain #postProcessProperties(Predicate, BiConsumer) Post-Processing} of already modified biome features. [LOWEST]</li>
  * </ol>
  *
  * Keep in mind that it isn't strictly <b>required</b> 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<BiomeContext, BiomeProperties.Mutable> modifier) {
         BiomeModifications.addProperties(Predicates.alwaysTrue(), modifier);

+ 6 - 1
forge/src/main/java/me/shedaniel/architectury/registry/forge/BiomeModificationsImpl.java

@@ -174,7 +174,12 @@ public class BiomeModificationsImpl {
         public @NotNull List<Supplier<ConfiguredWorldCarver<?>>> getCarvers(GenerationStep.Carving carving) {
             return generation.getCarvers(carving);
         }
-        
+    
+        @Override
+        public List<Supplier<ConfiguredFeature<?, ?>>> getFeatures(GenerationStep.Decoration decoration) {
+            return generation.getFeatures(decoration);
+        }
+    
         @Override
         public @NotNull List<List<Supplier<ConfiguredFeature<?, ?>>>> getFeatures() {
             return ((BiomeGenerationSettingsBuilderAccessor) generation).getFeatures();