VegetationPlacements.java
net.minecraft.data.worldgen.placement.VegetationPlacements
信息
- 全限定名:net.minecraft.data.worldgen.placement.VegetationPlacements
- 类型:public class
- 包:net.minecraft.data.worldgen.placement
- 源码路径:src/main/java/net/minecraft/data/worldgen/placement/VegetationPlacements.java
- 起始行号:L37
- 职责:
TODO
字段/常量
-
BAMBOO_LIGHT- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L38 - 说明:
TODO
- 类型:
-
BAMBOO- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L39 - 说明:
TODO
- 类型:
-
VINES- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L40 - 说明:
TODO
- 类型:
-
PATCH_SUNFLOWER- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L41 - 说明:
TODO
- 类型:
-
PATCH_PUMPKIN- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L42 - 说明:
TODO
- 类型:
-
PATCH_GRASS_PLAIN- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L43 - 说明:
TODO
- 类型:
-
PATCH_GRASS_MEADOW- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L44 - 说明:
TODO
- 类型:
-
PATCH_GRASS_FOREST- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L45 - 说明:
TODO
- 类型:
-
PATCH_GRASS_BADLANDS- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L46 - 说明:
TODO
- 类型:
-
PATCH_GRASS_SAVANNA- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L47 - 说明:
TODO
- 类型:
-
PATCH_GRASS_NORMAL- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L48 - 说明:
TODO
- 类型:
-
PATCH_GRASS_TAIGA_2- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L49 - 说明:
TODO
- 类型:
-
PATCH_GRASS_TAIGA- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L50 - 说明:
TODO
- 类型:
-
PATCH_GRASS_JUNGLE- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L51 - 说明:
TODO
- 类型:
-
GRASS_BONEMEAL- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L52 - 说明:
TODO
- 类型:
-
PATCH_DEAD_BUSH_2- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L53 - 说明:
TODO
- 类型:
-
PATCH_DEAD_BUSH- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L54 - 说明:
TODO
- 类型:
-
PATCH_DEAD_BUSH_BADLANDS- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L55 - 说明:
TODO
- 类型:
-
PATCH_DRY_GRASS_BADLANDS- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L56 - 说明:
TODO
- 类型:
-
PATCH_DRY_GRASS_DESERT- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L57 - 说明:
TODO
- 类型:
-
PATCH_MELON- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L58 - 说明:
TODO
- 类型:
-
PATCH_MELON_SPARSE- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L59 - 说明:
TODO
- 类型:
-
PATCH_BERRY_COMMON- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L60 - 说明:
TODO
- 类型:
-
PATCH_BERRY_RARE- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L61 - 说明:
TODO
- 类型:
-
PATCH_WATERLILY- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L62 - 说明:
TODO
- 类型:
-
PATCH_TALL_GRASS_2- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L63 - 说明:
TODO
- 类型:
-
PATCH_TALL_GRASS- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L64 - 说明:
TODO
- 类型:
-
PATCH_LARGE_FERN- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L65 - 说明:
TODO
- 类型:
-
PATCH_BUSH- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L66 - 说明:
TODO
- 类型:
-
PATCH_LEAF_LITTER- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L67 - 说明:
TODO
- 类型:
-
PATCH_CACTUS_DESERT- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L68 - 说明:
TODO
- 类型:
-
PATCH_CACTUS_DECORATED- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L69 - 说明:
TODO
- 类型:
-
PATCH_SUGAR_CANE_SWAMP- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L70 - 说明:
TODO
- 类型:
-
PATCH_SUGAR_CANE_DESERT- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L71 - 说明:
TODO
- 类型:
-
PATCH_SUGAR_CANE_BADLANDS- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L72 - 说明:
TODO
- 类型:
-
PATCH_SUGAR_CANE- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L73 - 说明:
TODO
- 类型:
-
PATCH_FIREFLY_BUSH_SWAMP- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L74 - 说明:
TODO
- 类型:
-
PATCH_FIREFLY_BUSH_NEAR_WATER_SWAMP- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L75 - 说明:
TODO
- 类型:
-
PATCH_FIREFLY_BUSH_NEAR_WATER- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L76 - 说明:
TODO
- 类型:
-
BROWN_MUSHROOM_NETHER- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L77 - 说明:
TODO
- 类型:
-
RED_MUSHROOM_NETHER- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L78 - 说明:
TODO
- 类型:
-
BROWN_MUSHROOM_NORMAL- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L79 - 说明:
TODO
- 类型:
-
RED_MUSHROOM_NORMAL- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L80 - 说明:
TODO
- 类型:
-
BROWN_MUSHROOM_TAIGA- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L81 - 说明:
TODO
- 类型:
-
RED_MUSHROOM_TAIGA- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L82 - 说明:
TODO
- 类型:
-
BROWN_MUSHROOM_OLD_GROWTH- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L83 - 说明:
TODO
- 类型:
-
RED_MUSHROOM_OLD_GROWTH- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L84 - 说明:
TODO
- 类型:
-
BROWN_MUSHROOM_SWAMP- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L85 - 说明:
TODO
- 类型:
-
RED_MUSHROOM_SWAMP- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L86 - 说明:
TODO
- 类型:
-
FLOWER_WARM- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L87 - 说明:
TODO
- 类型:
-
FLOWER_DEFAULT- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L88 - 说明:
TODO
- 类型:
-
FLOWER_FLOWER_FOREST- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L89 - 说明:
TODO
- 类型:
-
FLOWER_SWAMP- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L90 - 说明:
TODO
- 类型:
-
FLOWER_PLAINS- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L91 - 说明:
TODO
- 类型:
-
FLOWER_MEADOW- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L92 - 说明:
TODO
- 类型:
-
FLOWER_CHERRY- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L93 - 说明:
TODO
- 类型:
-
FLOWER_PALE_GARDEN- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L94 - 说明:
TODO
- 类型:
-
WILDFLOWERS_BIRCH_FOREST- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L95 - 说明:
TODO
- 类型:
-
WILDFLOWERS_MEADOW- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L96 - 说明:
TODO
- 类型:
-
TREES_PLAINS- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L97 - 说明:
TODO
- 类型:
-
DARK_FOREST_VEGETATION- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L98 - 说明:
TODO
- 类型:
-
PALE_GARDEN_VEGETATION- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L99 - 说明:
TODO
- 类型:
-
FLOWER_FOREST_FLOWERS- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L100 - 说明:
TODO
- 类型:
-
FOREST_FLOWERS- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L101 - 说明:
TODO
- 类型:
-
PALE_GARDEN_FLOWERS- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L102 - 说明:
TODO
- 类型:
-
PALE_MOSS_PATCH- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L103 - 说明:
TODO
- 类型:
-
TREES_FLOWER_FOREST- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L104 - 说明:
TODO
- 类型:
-
TREES_MEADOW- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L105 - 说明:
TODO
- 类型:
-
TREES_CHERRY- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L106 - 说明:
TODO
- 类型:
-
TREES_TAIGA- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L107 - 说明:
TODO
- 类型:
-
TREES_GROVE- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L108 - 说明:
TODO
- 类型:
-
TREES_BADLANDS- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L109 - 说明:
TODO
- 类型:
-
TREES_SNOWY- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L110 - 说明:
TODO
- 类型:
-
TREES_SWAMP- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L111 - 说明:
TODO
- 类型:
-
TREES_WINDSWEPT_SAVANNA- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L112 - 说明:
TODO
- 类型:
-
TREES_SAVANNA- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L113 - 说明:
TODO
- 类型:
-
BIRCH_TALL- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L114 - 说明:
TODO
- 类型:
-
TREES_BIRCH- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L115 - 说明:
TODO
- 类型:
-
TREES_WINDSWEPT_FOREST- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L116 - 说明:
TODO
- 类型:
-
TREES_WINDSWEPT_HILLS- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L117 - 说明:
TODO
- 类型:
-
TREES_WATER- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L118 - 说明:
TODO
- 类型:
-
TREES_BIRCH_AND_OAK_LEAF_LITTER- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L119 - 说明:
TODO
- 类型:
-
TREES_SPARSE_JUNGLE- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L120 - 说明:
TODO
- 类型:
-
TREES_OLD_GROWTH_SPRUCE_TAIGA- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L121 - 说明:
TODO
- 类型:
-
TREES_OLD_GROWTH_PINE_TAIGA- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L122 - 说明:
TODO
- 类型:
-
TREES_JUNGLE- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L123 - 说明:
TODO
- 类型:
-
BAMBOO_VEGETATION- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L124 - 说明:
TODO
- 类型:
-
MUSHROOM_ISLAND_VEGETATION- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L125 - 说明:
TODO
- 类型:
-
TREES_MANGROVE- 类型:
ResourceKey<PlacedFeature> - 修饰符:
public static final - 源码定位:
L126 - 说明:
TODO
- 类型:
-
TREE_THRESHOLD- 类型:
PlacementModifier - 修饰符:
private static final - 源码定位:
L127 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public static List<PlacementModifier> worldSurfaceSquaredWithCount(int count) @ L129
- 方法名:worldSurfaceSquaredWithCount
- 源码定位:L129
- 返回类型:List
- 修饰符:public static
参数:
- count: int
说明:
TODO
private static List<PlacementModifier> getMushroomPlacement(int rarity, PlacementModifier prefix) @ L133
- 方法名:getMushroomPlacement
- 源码定位:L133
- 返回类型:List
- 修饰符:private static
参数:
- rarity: int
- prefix: PlacementModifier
说明:
TODO
private static Builder<PlacementModifier> treePlacementBase(PlacementModifier frequency) @ L152
- 方法名:treePlacementBase
- 源码定位:L152
- 返回类型:Builder
- 修饰符:private static
参数:
- frequency: PlacementModifier
说明:
TODO
public static List<PlacementModifier> treePlacement(PlacementModifier frequency) @ L161
- 方法名:treePlacement
- 源码定位:L161
- 返回类型:List
- 修饰符:public static
参数:
- frequency: PlacementModifier
说明:
TODO
public static List<PlacementModifier> treePlacement(PlacementModifier frequency, Block sapling) @ L165
- 方法名:treePlacement
- 源码定位:L165
- 返回类型:List
- 修饰符:public static
参数:
- frequency: PlacementModifier
- sapling: Block
说明:
TODO
public static void bootstrap(BootstrapContext<PlacedFeature> context) @ L171
- 方法名:bootstrap
- 源码定位:L171
- 返回类型:void
- 修饰符:public static
参数:
- context: BootstrapContext
说明:
TODO
代码
public class VegetationPlacements {
public static final ResourceKey<PlacedFeature> BAMBOO_LIGHT = PlacementUtils.createKey("bamboo_light");
public static final ResourceKey<PlacedFeature> BAMBOO = PlacementUtils.createKey("bamboo");
public static final ResourceKey<PlacedFeature> VINES = PlacementUtils.createKey("vines");
public static final ResourceKey<PlacedFeature> PATCH_SUNFLOWER = PlacementUtils.createKey("patch_sunflower");
public static final ResourceKey<PlacedFeature> PATCH_PUMPKIN = PlacementUtils.createKey("patch_pumpkin");
public static final ResourceKey<PlacedFeature> PATCH_GRASS_PLAIN = PlacementUtils.createKey("patch_grass_plain");
public static final ResourceKey<PlacedFeature> PATCH_GRASS_MEADOW = PlacementUtils.createKey("patch_grass_meadow");
public static final ResourceKey<PlacedFeature> PATCH_GRASS_FOREST = PlacementUtils.createKey("patch_grass_forest");
public static final ResourceKey<PlacedFeature> PATCH_GRASS_BADLANDS = PlacementUtils.createKey("patch_grass_badlands");
public static final ResourceKey<PlacedFeature> PATCH_GRASS_SAVANNA = PlacementUtils.createKey("patch_grass_savanna");
public static final ResourceKey<PlacedFeature> PATCH_GRASS_NORMAL = PlacementUtils.createKey("patch_grass_normal");
public static final ResourceKey<PlacedFeature> PATCH_GRASS_TAIGA_2 = PlacementUtils.createKey("patch_grass_taiga_2");
public static final ResourceKey<PlacedFeature> PATCH_GRASS_TAIGA = PlacementUtils.createKey("patch_grass_taiga");
public static final ResourceKey<PlacedFeature> PATCH_GRASS_JUNGLE = PlacementUtils.createKey("patch_grass_jungle");
public static final ResourceKey<PlacedFeature> GRASS_BONEMEAL = PlacementUtils.createKey("grass_bonemeal");
public static final ResourceKey<PlacedFeature> PATCH_DEAD_BUSH_2 = PlacementUtils.createKey("patch_dead_bush_2");
public static final ResourceKey<PlacedFeature> PATCH_DEAD_BUSH = PlacementUtils.createKey("patch_dead_bush");
public static final ResourceKey<PlacedFeature> PATCH_DEAD_BUSH_BADLANDS = PlacementUtils.createKey("patch_dead_bush_badlands");
public static final ResourceKey<PlacedFeature> PATCH_DRY_GRASS_BADLANDS = PlacementUtils.createKey("patch_dry_grass_badlands");
public static final ResourceKey<PlacedFeature> PATCH_DRY_GRASS_DESERT = PlacementUtils.createKey("patch_dry_grass_desert");
public static final ResourceKey<PlacedFeature> PATCH_MELON = PlacementUtils.createKey("patch_melon");
public static final ResourceKey<PlacedFeature> PATCH_MELON_SPARSE = PlacementUtils.createKey("patch_melon_sparse");
public static final ResourceKey<PlacedFeature> PATCH_BERRY_COMMON = PlacementUtils.createKey("patch_berry_common");
public static final ResourceKey<PlacedFeature> PATCH_BERRY_RARE = PlacementUtils.createKey("patch_berry_rare");
public static final ResourceKey<PlacedFeature> PATCH_WATERLILY = PlacementUtils.createKey("patch_waterlily");
public static final ResourceKey<PlacedFeature> PATCH_TALL_GRASS_2 = PlacementUtils.createKey("patch_tall_grass_2");
public static final ResourceKey<PlacedFeature> PATCH_TALL_GRASS = PlacementUtils.createKey("patch_tall_grass");
public static final ResourceKey<PlacedFeature> PATCH_LARGE_FERN = PlacementUtils.createKey("patch_large_fern");
public static final ResourceKey<PlacedFeature> PATCH_BUSH = PlacementUtils.createKey("patch_bush");
public static final ResourceKey<PlacedFeature> PATCH_LEAF_LITTER = PlacementUtils.createKey("patch_leaf_litter");
public static final ResourceKey<PlacedFeature> PATCH_CACTUS_DESERT = PlacementUtils.createKey("patch_cactus_desert");
public static final ResourceKey<PlacedFeature> PATCH_CACTUS_DECORATED = PlacementUtils.createKey("patch_cactus_decorated");
public static final ResourceKey<PlacedFeature> PATCH_SUGAR_CANE_SWAMP = PlacementUtils.createKey("patch_sugar_cane_swamp");
public static final ResourceKey<PlacedFeature> PATCH_SUGAR_CANE_DESERT = PlacementUtils.createKey("patch_sugar_cane_desert");
public static final ResourceKey<PlacedFeature> PATCH_SUGAR_CANE_BADLANDS = PlacementUtils.createKey("patch_sugar_cane_badlands");
public static final ResourceKey<PlacedFeature> PATCH_SUGAR_CANE = PlacementUtils.createKey("patch_sugar_cane");
public static final ResourceKey<PlacedFeature> PATCH_FIREFLY_BUSH_SWAMP = PlacementUtils.createKey("patch_firefly_bush_swamp");
public static final ResourceKey<PlacedFeature> PATCH_FIREFLY_BUSH_NEAR_WATER_SWAMP = PlacementUtils.createKey("patch_firefly_bush_near_water_swamp");
public static final ResourceKey<PlacedFeature> PATCH_FIREFLY_BUSH_NEAR_WATER = PlacementUtils.createKey("patch_firefly_bush_near_water");
public static final ResourceKey<PlacedFeature> BROWN_MUSHROOM_NETHER = PlacementUtils.createKey("brown_mushroom_nether");
public static final ResourceKey<PlacedFeature> RED_MUSHROOM_NETHER = PlacementUtils.createKey("red_mushroom_nether");
public static final ResourceKey<PlacedFeature> BROWN_MUSHROOM_NORMAL = PlacementUtils.createKey("brown_mushroom_normal");
public static final ResourceKey<PlacedFeature> RED_MUSHROOM_NORMAL = PlacementUtils.createKey("red_mushroom_normal");
public static final ResourceKey<PlacedFeature> BROWN_MUSHROOM_TAIGA = PlacementUtils.createKey("brown_mushroom_taiga");
public static final ResourceKey<PlacedFeature> RED_MUSHROOM_TAIGA = PlacementUtils.createKey("red_mushroom_taiga");
public static final ResourceKey<PlacedFeature> BROWN_MUSHROOM_OLD_GROWTH = PlacementUtils.createKey("brown_mushroom_old_growth");
public static final ResourceKey<PlacedFeature> RED_MUSHROOM_OLD_GROWTH = PlacementUtils.createKey("red_mushroom_old_growth");
public static final ResourceKey<PlacedFeature> BROWN_MUSHROOM_SWAMP = PlacementUtils.createKey("brown_mushroom_swamp");
public static final ResourceKey<PlacedFeature> RED_MUSHROOM_SWAMP = PlacementUtils.createKey("red_mushroom_swamp");
public static final ResourceKey<PlacedFeature> FLOWER_WARM = PlacementUtils.createKey("flower_warm");
public static final ResourceKey<PlacedFeature> FLOWER_DEFAULT = PlacementUtils.createKey("flower_default");
public static final ResourceKey<PlacedFeature> FLOWER_FLOWER_FOREST = PlacementUtils.createKey("flower_flower_forest");
public static final ResourceKey<PlacedFeature> FLOWER_SWAMP = PlacementUtils.createKey("flower_swamp");
public static final ResourceKey<PlacedFeature> FLOWER_PLAINS = PlacementUtils.createKey("flower_plains");
public static final ResourceKey<PlacedFeature> FLOWER_MEADOW = PlacementUtils.createKey("flower_meadow");
public static final ResourceKey<PlacedFeature> FLOWER_CHERRY = PlacementUtils.createKey("flower_cherry");
public static final ResourceKey<PlacedFeature> FLOWER_PALE_GARDEN = PlacementUtils.createKey("flower_pale_garden");
public static final ResourceKey<PlacedFeature> WILDFLOWERS_BIRCH_FOREST = PlacementUtils.createKey("wildflowers_birch_forest");
public static final ResourceKey<PlacedFeature> WILDFLOWERS_MEADOW = PlacementUtils.createKey("wildflowers_meadow");
public static final ResourceKey<PlacedFeature> TREES_PLAINS = PlacementUtils.createKey("trees_plains");
public static final ResourceKey<PlacedFeature> DARK_FOREST_VEGETATION = PlacementUtils.createKey("dark_forest_vegetation");
public static final ResourceKey<PlacedFeature> PALE_GARDEN_VEGETATION = PlacementUtils.createKey("pale_garden_vegetation");
public static final ResourceKey<PlacedFeature> FLOWER_FOREST_FLOWERS = PlacementUtils.createKey("flower_forest_flowers");
public static final ResourceKey<PlacedFeature> FOREST_FLOWERS = PlacementUtils.createKey("forest_flowers");
public static final ResourceKey<PlacedFeature> PALE_GARDEN_FLOWERS = PlacementUtils.createKey("pale_garden_flowers");
public static final ResourceKey<PlacedFeature> PALE_MOSS_PATCH = PlacementUtils.createKey("pale_moss_patch");
public static final ResourceKey<PlacedFeature> TREES_FLOWER_FOREST = PlacementUtils.createKey("trees_flower_forest");
public static final ResourceKey<PlacedFeature> TREES_MEADOW = PlacementUtils.createKey("trees_meadow");
public static final ResourceKey<PlacedFeature> TREES_CHERRY = PlacementUtils.createKey("trees_cherry");
public static final ResourceKey<PlacedFeature> TREES_TAIGA = PlacementUtils.createKey("trees_taiga");
public static final ResourceKey<PlacedFeature> TREES_GROVE = PlacementUtils.createKey("trees_grove");
public static final ResourceKey<PlacedFeature> TREES_BADLANDS = PlacementUtils.createKey("trees_badlands");
public static final ResourceKey<PlacedFeature> TREES_SNOWY = PlacementUtils.createKey("trees_snowy");
public static final ResourceKey<PlacedFeature> TREES_SWAMP = PlacementUtils.createKey("trees_swamp");
public static final ResourceKey<PlacedFeature> TREES_WINDSWEPT_SAVANNA = PlacementUtils.createKey("trees_windswept_savanna");
public static final ResourceKey<PlacedFeature> TREES_SAVANNA = PlacementUtils.createKey("trees_savanna");
public static final ResourceKey<PlacedFeature> BIRCH_TALL = PlacementUtils.createKey("birch_tall");
public static final ResourceKey<PlacedFeature> TREES_BIRCH = PlacementUtils.createKey("trees_birch");
public static final ResourceKey<PlacedFeature> TREES_WINDSWEPT_FOREST = PlacementUtils.createKey("trees_windswept_forest");
public static final ResourceKey<PlacedFeature> TREES_WINDSWEPT_HILLS = PlacementUtils.createKey("trees_windswept_hills");
public static final ResourceKey<PlacedFeature> TREES_WATER = PlacementUtils.createKey("trees_water");
public static final ResourceKey<PlacedFeature> TREES_BIRCH_AND_OAK_LEAF_LITTER = PlacementUtils.createKey("trees_birch_and_oak_leaf_litter");
public static final ResourceKey<PlacedFeature> TREES_SPARSE_JUNGLE = PlacementUtils.createKey("trees_sparse_jungle");
public static final ResourceKey<PlacedFeature> TREES_OLD_GROWTH_SPRUCE_TAIGA = PlacementUtils.createKey("trees_old_growth_spruce_taiga");
public static final ResourceKey<PlacedFeature> TREES_OLD_GROWTH_PINE_TAIGA = PlacementUtils.createKey("trees_old_growth_pine_taiga");
public static final ResourceKey<PlacedFeature> TREES_JUNGLE = PlacementUtils.createKey("trees_jungle");
public static final ResourceKey<PlacedFeature> BAMBOO_VEGETATION = PlacementUtils.createKey("bamboo_vegetation");
public static final ResourceKey<PlacedFeature> MUSHROOM_ISLAND_VEGETATION = PlacementUtils.createKey("mushroom_island_vegetation");
public static final ResourceKey<PlacedFeature> TREES_MANGROVE = PlacementUtils.createKey("trees_mangrove");
private static final PlacementModifier TREE_THRESHOLD = SurfaceWaterDepthFilter.forMaxDepth(0);
public static List<PlacementModifier> worldSurfaceSquaredWithCount(int count) {
return List.of(CountPlacement.of(count), InSquarePlacement.spread(), PlacementUtils.HEIGHTMAP_WORLD_SURFACE, BiomeFilter.biome());
}
private static List<PlacementModifier> getMushroomPlacement(int rarity, @Nullable PlacementModifier prefix) {
Builder<PlacementModifier> builder = ImmutableList.builder();
if (prefix != null) {
builder.add(prefix);
}
if (rarity != 0) {
builder.add(RarityFilter.onAverageOnceEvery(rarity));
}
builder.add(InSquarePlacement.spread());
builder.add(PlacementUtils.HEIGHTMAP);
builder.add(BiomeFilter.biome());
builder.add(CountPlacement.of(96));
builder.add(RandomOffsetPlacement.ofTriangle(7, 3));
builder.add(BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE));
return builder.build();
}
private static Builder<PlacementModifier> treePlacementBase(PlacementModifier frequency) {
return ImmutableList.<PlacementModifier>builder()
.add(frequency)
.add(InSquarePlacement.spread())
.add(TREE_THRESHOLD)
.add(PlacementUtils.HEIGHTMAP_OCEAN_FLOOR)
.add(BiomeFilter.biome());
}
public static List<PlacementModifier> treePlacement(PlacementModifier frequency) {
return treePlacementBase(frequency).build();
}
public static List<PlacementModifier> treePlacement(PlacementModifier frequency, Block sapling) {
return treePlacementBase(frequency)
.add(BlockPredicateFilter.forPredicate(BlockPredicate.wouldSurvive(sapling.defaultBlockState(), BlockPos.ZERO)))
.build();
}
public static void bootstrap(BootstrapContext<PlacedFeature> context) {
HolderGetter<ConfiguredFeature<?, ?>> configuredFeatures = context.lookup(Registries.CONFIGURED_FEATURE);
Holder<ConfiguredFeature<?, ?>> bambooNoPodzol = configuredFeatures.getOrThrow(VegetationFeatures.BAMBOO_NO_PODZOL);
Holder<ConfiguredFeature<?, ?>> bambooSomePodzol = configuredFeatures.getOrThrow(VegetationFeatures.BAMBOO_SOME_PODZOL);
Holder<ConfiguredFeature<?, ?>> vines = configuredFeatures.getOrThrow(VegetationFeatures.VINES);
Holder<ConfiguredFeature<?, ?>> sunflower = configuredFeatures.getOrThrow(VegetationFeatures.SUNFLOWER);
Holder<ConfiguredFeature<?, ?>> pumpkin = configuredFeatures.getOrThrow(VegetationFeatures.PUMPKIN);
Holder<ConfiguredFeature<?, ?>> grass = configuredFeatures.getOrThrow(VegetationFeatures.GRASS);
Holder<ConfiguredFeature<?, ?>> leafLitter = configuredFeatures.getOrThrow(VegetationFeatures.LEAF_LITTER);
Holder<ConfiguredFeature<?, ?>> taigaGrass = configuredFeatures.getOrThrow(VegetationFeatures.TAIGA_GRASS);
Holder<ConfiguredFeature<?, ?>> grassJungle = configuredFeatures.getOrThrow(VegetationFeatures.GRASS_JUNGLE);
Holder<ConfiguredFeature<?, ?>> deadBush = configuredFeatures.getOrThrow(VegetationFeatures.DEAD_BUSH);
Holder<ConfiguredFeature<?, ?>> dryGrass = configuredFeatures.getOrThrow(VegetationFeatures.DRY_GRASS);
Holder<ConfiguredFeature<?, ?>> fireflyBush = configuredFeatures.getOrThrow(VegetationFeatures.FIREFLY_BUSH);
Holder<ConfiguredFeature<?, ?>> melon = configuredFeatures.getOrThrow(VegetationFeatures.MELON);
Holder<ConfiguredFeature<?, ?>> berryBush = configuredFeatures.getOrThrow(VegetationFeatures.BERRY_BUSH);
Holder<ConfiguredFeature<?, ?>> waterlily = configuredFeatures.getOrThrow(VegetationFeatures.WATERLILY);
Holder<ConfiguredFeature<?, ?>> tallGrass = configuredFeatures.getOrThrow(VegetationFeatures.TALL_GRASS);
Holder<ConfiguredFeature<?, ?>> largeFern = configuredFeatures.getOrThrow(VegetationFeatures.LARGE_FERN);
Holder<ConfiguredFeature<?, ?>> bush = configuredFeatures.getOrThrow(VegetationFeatures.BUSH);
Holder<ConfiguredFeature<?, ?>> cactus = configuredFeatures.getOrThrow(VegetationFeatures.CACTUS);
Holder<ConfiguredFeature<?, ?>> sugarCane = configuredFeatures.getOrThrow(VegetationFeatures.SUGAR_CANE);
Holder<ConfiguredFeature<?, ?>> brownMushroom = configuredFeatures.getOrThrow(VegetationFeatures.BROWN_MUSHROOM);
Holder<ConfiguredFeature<?, ?>> redMushroom = configuredFeatures.getOrThrow(VegetationFeatures.RED_MUSHROOM);
Holder<ConfiguredFeature<?, ?>> flowerDefault = configuredFeatures.getOrThrow(VegetationFeatures.FLOWER_DEFAULT);
Holder<ConfiguredFeature<?, ?>> flowerFlowerForest = configuredFeatures.getOrThrow(VegetationFeatures.FLOWER_FLOWER_FOREST);
Holder<ConfiguredFeature<?, ?>> flowerSwamp = configuredFeatures.getOrThrow(VegetationFeatures.FLOWER_SWAMP);
Holder<ConfiguredFeature<?, ?>> flowerPlain = configuredFeatures.getOrThrow(VegetationFeatures.FLOWER_PLAIN);
Holder<ConfiguredFeature<?, ?>> flowerMeadow = configuredFeatures.getOrThrow(VegetationFeatures.FLOWER_MEADOW);
Holder<ConfiguredFeature<?, ?>> flowerCherry = configuredFeatures.getOrThrow(VegetationFeatures.FLOWER_CHERRY);
Holder<ConfiguredFeature<?, ?>> flowerPaleGarden = configuredFeatures.getOrThrow(VegetationFeatures.FLOWER_PALE_GARDEN);
Holder<ConfiguredFeature<?, ?>> wildflower = configuredFeatures.getOrThrow(VegetationFeatures.WILDFLOWER);
Holder<ConfiguredFeature<?, ?>> treesPlains = configuredFeatures.getOrThrow(VegetationFeatures.TREES_PLAINS);
Holder<ConfiguredFeature<?, ?>> darkForestVegetation = configuredFeatures.getOrThrow(VegetationFeatures.DARK_FOREST_VEGETATION);
Holder<ConfiguredFeature<?, ?>> paleGardenVegetation = configuredFeatures.getOrThrow(VegetationFeatures.PALE_GARDEN_VEGETATION);
Holder<ConfiguredFeature<?, ?>> forestFlowers = configuredFeatures.getOrThrow(VegetationFeatures.FOREST_FLOWERS);
Holder<ConfiguredFeature<?, ?>> paleForestFlower = configuredFeatures.getOrThrow(VegetationFeatures.PALE_FOREST_FLOWER);
Holder<ConfiguredFeature<?, ?>> paleMossPatch = configuredFeatures.getOrThrow(VegetationFeatures.PALE_MOSS_PATCH);
Holder<ConfiguredFeature<?, ?>> treesFlowerForest = configuredFeatures.getOrThrow(VegetationFeatures.TREES_FLOWER_FOREST);
Holder<ConfiguredFeature<?, ?>> meadowTrees = configuredFeatures.getOrThrow(VegetationFeatures.MEADOW_TREES);
Holder<ConfiguredFeature<?, ?>> treesTaiga = configuredFeatures.getOrThrow(VegetationFeatures.TREES_TAIGA);
Holder<ConfiguredFeature<?, ?>> treesBadlands = configuredFeatures.getOrThrow(VegetationFeatures.TREES_BADLANDS);
Holder<ConfiguredFeature<?, ?>> treesGrove = configuredFeatures.getOrThrow(VegetationFeatures.TREES_GROVE);
Holder<ConfiguredFeature<?, ?>> treesSnowy = configuredFeatures.getOrThrow(VegetationFeatures.TREES_SNOWY);
Holder<ConfiguredFeature<?, ?>> cherryBees005 = configuredFeatures.getOrThrow(TreeFeatures.CHERRY_BEES_005);
Holder<ConfiguredFeature<?, ?>> swampOak = configuredFeatures.getOrThrow(TreeFeatures.SWAMP_OAK);
Holder<ConfiguredFeature<?, ?>> treesSavanna = configuredFeatures.getOrThrow(VegetationFeatures.TREES_SAVANNA);
Holder<ConfiguredFeature<?, ?>> birchTall = configuredFeatures.getOrThrow(VegetationFeatures.BIRCH_TALL);
Holder<ConfiguredFeature<?, ?>> treesBirch = configuredFeatures.getOrThrow(VegetationFeatures.TREES_BIRCH);
Holder<ConfiguredFeature<?, ?>> treesWindsweptHills = configuredFeatures.getOrThrow(VegetationFeatures.TREES_WINDSWEPT_HILLS);
Holder<ConfiguredFeature<?, ?>> treesWater = configuredFeatures.getOrThrow(VegetationFeatures.TREES_WATER);
Holder<ConfiguredFeature<?, ?>> treesBirchAndOakLeafLitter = configuredFeatures.getOrThrow(VegetationFeatures.TREES_BIRCH_AND_OAK_LEAF_LITTER);
Holder<ConfiguredFeature<?, ?>> treesSparseJungle = configuredFeatures.getOrThrow(VegetationFeatures.TREES_SPARSE_JUNGLE);
Holder<ConfiguredFeature<?, ?>> treesOldGrowthSpruceTaiga = configuredFeatures.getOrThrow(VegetationFeatures.TREES_OLD_GROWTH_SPRUCE_TAIGA);
Holder<ConfiguredFeature<?, ?>> treesOldGrowthPineTaiga = configuredFeatures.getOrThrow(VegetationFeatures.TREES_OLD_GROWTH_PINE_TAIGA);
Holder<ConfiguredFeature<?, ?>> treesJungle = configuredFeatures.getOrThrow(VegetationFeatures.TREES_JUNGLE);
Holder<ConfiguredFeature<?, ?>> bambooVegetation = configuredFeatures.getOrThrow(VegetationFeatures.BAMBOO_VEGETATION);
Holder<ConfiguredFeature<?, ?>> mushroomIslandVegetation = configuredFeatures.getOrThrow(VegetationFeatures.MUSHROOM_ISLAND_VEGETATION);
Holder<ConfiguredFeature<?, ?>> mangroveVegetation = configuredFeatures.getOrThrow(VegetationFeatures.MANGROVE_VEGETATION);
PlacementUtils.register(
context,
BAMBOO_LIGHT,
bambooNoPodzol,
RarityFilter.onAverageOnceEvery(4),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome()
);
PlacementUtils.register(
context,
BAMBOO,
bambooSomePodzol,
NoiseBasedCountPlacement.of(160, 80.0, 0.3),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP_WORLD_SURFACE,
BiomeFilter.biome()
);
PlacementUtils.register(
context,
VINES,
vines,
CountPlacement.of(127),
InSquarePlacement.spread(),
HeightRangePlacement.uniform(VerticalAnchor.absolute(64), VerticalAnchor.absolute(100)),
BiomeFilter.biome()
);
PlacementUtils.register(
context,
PATCH_SUNFLOWER,
sunflower,
RarityFilter.onAverageOnceEvery(3),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(96),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
PATCH_PUMPKIN,
pumpkin,
RarityFilter.onAverageOnceEvery(300),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(96),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(
BlockPredicate.allOf(BlockPredicate.ONLY_IN_AIR_PREDICATE, BlockPredicate.matchesBlocks(Direction.DOWN.getUnitVec3i(), Blocks.GRASS_BLOCK))
)
);
PlacementUtils.register(
context,
PATCH_GRASS_PLAIN,
grass,
NoiseThresholdCountPlacement.of(-0.8, 5, 10),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP_WORLD_SURFACE,
BiomeFilter.biome(),
CountPlacement.of(32),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
PATCH_GRASS_MEADOW,
grass,
NoiseThresholdCountPlacement.of(-0.8, 5, 10),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP_WORLD_SURFACE,
BiomeFilter.biome(),
CountPlacement.of(16),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
PATCH_GRASS_FOREST,
grass,
Util.copyAndAdd(
worldSurfaceSquaredWithCount(2),
CountPlacement.of(32),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
)
);
PlacementUtils.register(
context,
PATCH_LEAF_LITTER,
leafLitter,
Util.copyAndAdd(
worldSurfaceSquaredWithCount(2),
CountPlacement.of(32),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(
BlockPredicate.allOf(BlockPredicate.ONLY_IN_AIR_PREDICATE, BlockPredicate.matchesBlocks(Direction.DOWN.getUnitVec3i(), Blocks.GRASS_BLOCK))
)
)
);
PlacementUtils.register(
context,
PATCH_GRASS_BADLANDS,
grass,
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP_WORLD_SURFACE,
BiomeFilter.biome(),
CountPlacement.of(32),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
PATCH_GRASS_SAVANNA,
grass,
Util.copyAndAdd(
worldSurfaceSquaredWithCount(20),
CountPlacement.of(32),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
)
);
PlacementUtils.register(
context,
PATCH_GRASS_NORMAL,
grass,
Util.copyAndAdd(
worldSurfaceSquaredWithCount(5),
CountPlacement.of(32),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
)
);
PlacementUtils.register(
context,
PATCH_GRASS_TAIGA_2,
taigaGrass,
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP_WORLD_SURFACE,
BiomeFilter.biome(),
CountPlacement.of(32),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
PATCH_GRASS_TAIGA,
taigaGrass,
Util.copyAndAdd(
worldSurfaceSquaredWithCount(7),
CountPlacement.of(32),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
)
);
PlacementUtils.register(
context,
PATCH_GRASS_JUNGLE,
grassJungle,
Util.copyAndAdd(
worldSurfaceSquaredWithCount(25),
CountPlacement.of(32),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(
BlockPredicate.allOf(
BlockPredicate.ONLY_IN_AIR_PREDICATE, BlockPredicate.not(BlockPredicate.matchesBlocks(Direction.DOWN.getUnitVec3i(), Blocks.PODZOL))
)
)
)
);
PlacementUtils.register(context, GRASS_BONEMEAL, grass, PlacementUtils.isEmpty());
PlacementUtils.register(
context,
PATCH_DEAD_BUSH_2,
deadBush,
Util.copyAndAdd(
worldSurfaceSquaredWithCount(2),
CountPlacement.of(4),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
)
);
PlacementUtils.register(
context,
PATCH_DEAD_BUSH,
deadBush,
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP_WORLD_SURFACE,
BiomeFilter.biome(),
CountPlacement.of(4),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
PATCH_DEAD_BUSH_BADLANDS,
deadBush,
Util.copyAndAdd(
worldSurfaceSquaredWithCount(20),
CountPlacement.of(4),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
)
);
PlacementUtils.register(
context,
PATCH_DRY_GRASS_BADLANDS,
dryGrass,
RarityFilter.onAverageOnceEvery(6),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(64),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
PATCH_DRY_GRASS_DESERT,
dryGrass,
RarityFilter.onAverageOnceEvery(3),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(64),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
BlockPredicate melonPlacementPredicate = BlockPredicate.allOf(
BlockPredicate.replaceable(), BlockPredicate.noFluid(), BlockPredicate.matchesBlocks(Direction.DOWN.getUnitVec3i(), Blocks.GRASS_BLOCK)
);
PlacementUtils.register(
context,
PATCH_MELON,
melon,
RarityFilter.onAverageOnceEvery(6),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(64),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(melonPlacementPredicate)
);
PlacementUtils.register(
context,
PATCH_MELON_SPARSE,
melon,
RarityFilter.onAverageOnceEvery(64),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(64),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(melonPlacementPredicate)
);
PlacementUtils.register(
context,
PATCH_BERRY_COMMON,
berryBush,
RarityFilter.onAverageOnceEvery(32),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP_WORLD_SURFACE,
BiomeFilter.biome(),
CountPlacement.of(96),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(
BlockPredicate.allOf(BlockPredicate.ONLY_IN_AIR_PREDICATE, BlockPredicate.matchesBlocks(Direction.DOWN.getUnitVec3i(), Blocks.GRASS_BLOCK))
)
);
PlacementUtils.register(
context,
PATCH_BERRY_RARE,
berryBush,
RarityFilter.onAverageOnceEvery(384),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP_WORLD_SURFACE,
BiomeFilter.biome(),
CountPlacement.of(96),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(
BlockPredicate.allOf(BlockPredicate.ONLY_IN_AIR_PREDICATE, BlockPredicate.matchesBlocks(Direction.DOWN.getUnitVec3i(), Blocks.GRASS_BLOCK))
)
);
PlacementUtils.register(
context,
PATCH_WATERLILY,
waterlily,
Util.copyAndAdd(
worldSurfaceSquaredWithCount(4),
CountPlacement.of(10),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
)
);
PlacementUtils.register(
context,
PATCH_TALL_GRASS_2,
tallGrass,
NoiseThresholdCountPlacement.of(-0.8, 0, 7),
RarityFilter.onAverageOnceEvery(32),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(96),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
PATCH_TALL_GRASS,
tallGrass,
RarityFilter.onAverageOnceEvery(5),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(96),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
PATCH_LARGE_FERN,
largeFern,
RarityFilter.onAverageOnceEvery(5),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(96),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
PATCH_BUSH,
bush,
RarityFilter.onAverageOnceEvery(4),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(24),
RandomOffsetPlacement.ofTriangle(5, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
PATCH_CACTUS_DESERT,
cactus,
RarityFilter.onAverageOnceEvery(6),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(10),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(
BlockPredicate.allOf(BlockPredicate.ONLY_IN_AIR_PREDICATE, BlockPredicate.wouldSurvive(Blocks.CACTUS.defaultBlockState(), BlockPos.ZERO))
)
);
PlacementUtils.register(
context,
PATCH_CACTUS_DECORATED,
cactus,
RarityFilter.onAverageOnceEvery(13),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(10),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(
BlockPredicate.allOf(BlockPredicate.ONLY_IN_AIR_PREDICATE, BlockPredicate.wouldSurvive(Blocks.CACTUS.defaultBlockState(), BlockPos.ZERO))
)
);
PlacementUtils.register(
context,
PATCH_SUGAR_CANE_SWAMP,
sugarCane,
RarityFilter.onAverageOnceEvery(3),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(20),
RandomOffsetPlacement.ofTriangle(4, 0),
VegetationFeatures.nearWaterPredicate(Blocks.SUGAR_CANE)
);
PlacementUtils.register(
context,
PATCH_SUGAR_CANE_DESERT,
sugarCane,
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(20),
RandomOffsetPlacement.ofTriangle(4, 0),
VegetationFeatures.nearWaterPredicate(Blocks.SUGAR_CANE)
);
PlacementUtils.register(
context,
PATCH_SUGAR_CANE_BADLANDS,
sugarCane,
RarityFilter.onAverageOnceEvery(5),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(20),
RandomOffsetPlacement.ofTriangle(4, 0),
VegetationFeatures.nearWaterPredicate(Blocks.SUGAR_CANE)
);
PlacementUtils.register(
context,
PATCH_SUGAR_CANE,
sugarCane,
RarityFilter.onAverageOnceEvery(6),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(20),
RandomOffsetPlacement.ofTriangle(4, 0),
VegetationFeatures.nearWaterPredicate(Blocks.SUGAR_CANE)
);
PlacementUtils.register(
context,
PATCH_FIREFLY_BUSH_NEAR_WATER,
fireflyBush,
CountPlacement.of(2),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP_NO_LEAVES,
BiomeFilter.biome(),
VegetationFeatures.nearWaterPredicate(Blocks.FIREFLY_BUSH),
CountPlacement.of(20),
RandomOffsetPlacement.ofTriangle(4, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
PATCH_FIREFLY_BUSH_NEAR_WATER_SWAMP,
fireflyBush,
CountPlacement.of(3),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
VegetationFeatures.nearWaterPredicate(Blocks.FIREFLY_BUSH),
CountPlacement.of(20),
RandomOffsetPlacement.ofTriangle(4, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
PATCH_FIREFLY_BUSH_SWAMP,
fireflyBush,
RarityFilter.onAverageOnceEvery(8),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(20),
RandomOffsetPlacement.ofTriangle(4, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
BROWN_MUSHROOM_NETHER,
brownMushroom,
RarityFilter.onAverageOnceEvery(2),
InSquarePlacement.spread(),
PlacementUtils.FULL_RANGE,
BiomeFilter.biome(),
CountPlacement.of(96),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
RED_MUSHROOM_NETHER,
redMushroom,
RarityFilter.onAverageOnceEvery(2),
InSquarePlacement.spread(),
PlacementUtils.FULL_RANGE,
BiomeFilter.biome(),
CountPlacement.of(96),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(context, BROWN_MUSHROOM_NORMAL, brownMushroom, getMushroomPlacement(256, null));
PlacementUtils.register(context, RED_MUSHROOM_NORMAL, redMushroom, getMushroomPlacement(512, null));
PlacementUtils.register(context, BROWN_MUSHROOM_TAIGA, brownMushroom, getMushroomPlacement(4, null));
PlacementUtils.register(context, RED_MUSHROOM_TAIGA, redMushroom, getMushroomPlacement(256, null));
PlacementUtils.register(context, BROWN_MUSHROOM_OLD_GROWTH, brownMushroom, getMushroomPlacement(4, CountPlacement.of(3)));
PlacementUtils.register(context, RED_MUSHROOM_OLD_GROWTH, redMushroom, getMushroomPlacement(171, null));
PlacementUtils.register(context, BROWN_MUSHROOM_SWAMP, brownMushroom, getMushroomPlacement(0, CountPlacement.of(2)));
PlacementUtils.register(context, RED_MUSHROOM_SWAMP, redMushroom, getMushroomPlacement(64, null));
PlacementUtils.register(
context, FLOWER_WARM, flowerDefault, RarityFilter.onAverageOnceEvery(16), InSquarePlacement.spread(), PlacementUtils.HEIGHTMAP, BiomeFilter.biome()
);
PlacementUtils.register(
context,
FLOWER_DEFAULT,
flowerDefault,
RarityFilter.onAverageOnceEvery(32),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome()
);
PlacementUtils.register(
context,
FLOWER_FLOWER_FOREST,
flowerFlowerForest,
CountPlacement.of(3),
RarityFilter.onAverageOnceEvery(2),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(96),
RandomOffsetPlacement.ofTriangle(6, 2),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
FLOWER_SWAMP,
flowerSwamp,
RarityFilter.onAverageOnceEvery(32),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(64),
RandomOffsetPlacement.ofTriangle(6, 2),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
FLOWER_PLAINS,
flowerPlain,
NoiseThresholdCountPlacement.of(-0.8, 15, 4),
RarityFilter.onAverageOnceEvery(32),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(64),
RandomOffsetPlacement.ofTriangle(6, 2),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
FLOWER_CHERRY,
flowerCherry,
NoiseThresholdCountPlacement.of(-0.8, 5, 10),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(96),
RandomOffsetPlacement.ofTriangle(6, 2),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
FLOWER_MEADOW,
flowerMeadow,
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(96),
RandomOffsetPlacement.ofTriangle(6, 2),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
FLOWER_PALE_GARDEN,
flowerPaleGarden,
RarityFilter.onAverageOnceEvery(32),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome()
);
PlacementUtils.register(
context,
WILDFLOWERS_BIRCH_FOREST,
wildflower,
CountPlacement.of(3),
RarityFilter.onAverageOnceEvery(2),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(64),
RandomOffsetPlacement.ofTriangle(6, 2),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context,
WILDFLOWERS_MEADOW,
wildflower,
NoiseThresholdCountPlacement.of(-0.8, 5, 10),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
BiomeFilter.biome(),
CountPlacement.of(8),
RandomOffsetPlacement.ofTriangle(6, 2),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementModifier treeThreshold = SurfaceWaterDepthFilter.forMaxDepth(0);
PlacementUtils.register(
context,
TREES_PLAINS,
treesPlains,
PlacementUtils.countExtra(0, 0.05F, 1),
InSquarePlacement.spread(),
treeThreshold,
PlacementUtils.HEIGHTMAP_OCEAN_FLOOR,
BlockPredicateFilter.forPredicate(BlockPredicate.wouldSurvive(Blocks.OAK_SAPLING.defaultBlockState(), BlockPos.ZERO)),
BiomeFilter.biome()
);
PlacementUtils.register(
context,
DARK_FOREST_VEGETATION,
darkForestVegetation,
CountPlacement.of(16),
InSquarePlacement.spread(),
treeThreshold,
PlacementUtils.HEIGHTMAP_OCEAN_FLOOR,
BiomeFilter.biome()
);
PlacementUtils.register(
context,
PALE_GARDEN_VEGETATION,
paleGardenVegetation,
CountPlacement.of(16),
InSquarePlacement.spread(),
treeThreshold,
PlacementUtils.HEIGHTMAP_OCEAN_FLOOR,
BiomeFilter.biome()
);
PlacementUtils.register(
context,
FLOWER_FOREST_FLOWERS,
forestFlowers,
RarityFilter.onAverageOnceEvery(7),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
CountPlacement.of(ClampedInt.of(UniformInt.of(-1, 3), 0, 3)),
BiomeFilter.biome()
);
PlacementUtils.register(
context,
FOREST_FLOWERS,
forestFlowers,
RarityFilter.onAverageOnceEvery(7),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP,
CountPlacement.of(ClampedInt.of(UniformInt.of(-3, 1), 0, 1)),
BiomeFilter.biome()
);
PlacementUtils.register(
context,
PALE_GARDEN_FLOWERS,
paleForestFlower,
RarityFilter.onAverageOnceEvery(8),
InSquarePlacement.spread(),
PlacementUtils.HEIGHTMAP_NO_LEAVES,
BiomeFilter.biome(),
CountPlacement.of(96),
RandomOffsetPlacement.ofTriangle(7, 3),
BlockPredicateFilter.forPredicate(BlockPredicate.ONLY_IN_AIR_PREDICATE)
);
PlacementUtils.register(
context, PALE_MOSS_PATCH, paleMossPatch, CountPlacement.of(1), InSquarePlacement.spread(), PlacementUtils.HEIGHTMAP_NO_LEAVES, BiomeFilter.biome()
);
PlacementUtils.register(context, TREES_FLOWER_FOREST, treesFlowerForest, treePlacement(PlacementUtils.countExtra(6, 0.1F, 1)));
PlacementUtils.register(context, TREES_MEADOW, meadowTrees, treePlacement(RarityFilter.onAverageOnceEvery(100)));
PlacementUtils.register(context, TREES_CHERRY, cherryBees005, treePlacement(PlacementUtils.countExtra(10, 0.1F, 1), Blocks.CHERRY_SAPLING));
PlacementUtils.register(context, TREES_TAIGA, treesTaiga, treePlacement(PlacementUtils.countExtra(10, 0.1F, 1)));
PlacementUtils.register(context, TREES_GROVE, treesGrove, treePlacement(PlacementUtils.countExtra(10, 0.1F, 1)));
PlacementUtils.register(context, TREES_BADLANDS, treesBadlands, treePlacement(PlacementUtils.countExtra(5, 0.1F, 1), Blocks.OAK_SAPLING));
PlacementUtils.register(context, TREES_SNOWY, treesSnowy, treePlacement(PlacementUtils.countExtra(0, 0.1F, 1), Blocks.SPRUCE_SAPLING));
PlacementUtils.register(
context,
TREES_SWAMP,
swampOak,
PlacementUtils.countExtra(2, 0.1F, 1),
InSquarePlacement.spread(),
SurfaceWaterDepthFilter.forMaxDepth(2),
PlacementUtils.HEIGHTMAP_OCEAN_FLOOR,
BiomeFilter.biome(),
BlockPredicateFilter.forPredicate(BlockPredicate.wouldSurvive(Blocks.OAK_SAPLING.defaultBlockState(), BlockPos.ZERO))
);
PlacementUtils.register(context, TREES_WINDSWEPT_SAVANNA, treesSavanna, treePlacement(PlacementUtils.countExtra(2, 0.1F, 1)));
PlacementUtils.register(context, TREES_SAVANNA, treesSavanna, treePlacement(PlacementUtils.countExtra(1, 0.1F, 1)));
PlacementUtils.register(context, BIRCH_TALL, birchTall, treePlacement(PlacementUtils.countExtra(10, 0.1F, 1)));
PlacementUtils.register(context, TREES_BIRCH, treesBirch, treePlacement(PlacementUtils.countExtra(10, 0.1F, 1), Blocks.BIRCH_SAPLING));
PlacementUtils.register(context, TREES_WINDSWEPT_FOREST, treesWindsweptHills, treePlacement(PlacementUtils.countExtra(3, 0.1F, 1)));
PlacementUtils.register(context, TREES_WINDSWEPT_HILLS, treesWindsweptHills, treePlacement(PlacementUtils.countExtra(0, 0.1F, 1)));
PlacementUtils.register(context, TREES_WATER, treesWater, treePlacement(PlacementUtils.countExtra(0, 0.1F, 1)));
PlacementUtils.register(context, TREES_BIRCH_AND_OAK_LEAF_LITTER, treesBirchAndOakLeafLitter, treePlacement(PlacementUtils.countExtra(10, 0.1F, 1)));
PlacementUtils.register(context, TREES_SPARSE_JUNGLE, treesSparseJungle, treePlacement(PlacementUtils.countExtra(2, 0.1F, 1)));
PlacementUtils.register(context, TREES_OLD_GROWTH_SPRUCE_TAIGA, treesOldGrowthSpruceTaiga, treePlacement(PlacementUtils.countExtra(10, 0.1F, 1)));
PlacementUtils.register(context, TREES_OLD_GROWTH_PINE_TAIGA, treesOldGrowthPineTaiga, treePlacement(PlacementUtils.countExtra(10, 0.1F, 1)));
PlacementUtils.register(context, TREES_JUNGLE, treesJungle, treePlacement(PlacementUtils.countExtra(50, 0.1F, 1)));
PlacementUtils.register(context, BAMBOO_VEGETATION, bambooVegetation, treePlacement(PlacementUtils.countExtra(30, 0.1F, 1)));
PlacementUtils.register(
context, MUSHROOM_ISLAND_VEGETATION, mushroomIslandVegetation, InSquarePlacement.spread(), PlacementUtils.HEIGHTMAP, BiomeFilter.biome()
);
PlacementUtils.register(
context,
TREES_MANGROVE,
mangroveVegetation,
CountPlacement.of(25),
InSquarePlacement.spread(),
SurfaceWaterDepthFilter.forMaxDepth(5),
PlacementUtils.HEIGHTMAP_OCEAN_FLOOR,
BiomeFilter.biome()
);
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
VegetationFeatures.nearWaterPredicate()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
PlacementUtils.countExtra(), PlacementUtils.createKey(), PlacementUtils.isEmpty(), PlacementUtils.register()
- 引用位置:
-
- 引用位置:
字段
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Util.copyAndAdd()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
ClampedInt.of()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
UniformInt.of()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
VerticalAnchor.absolute()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
BlockPredicate.allOf(), BlockPredicate.matchesBlocks(), BlockPredicate.noFluid(), BlockPredicate.not(), BlockPredicate.replaceable(), BlockPredicate.wouldSurvive()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
BiomeFilter.biome()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
BlockPredicateFilter.forPredicate()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
CountPlacement.of()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
HeightRangePlacement.uniform()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
InSquarePlacement.spread()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
NoiseBasedCountPlacement.of()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
NoiseThresholdCountPlacement.of()
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数/字段/返回值
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
RandomOffsetPlacement.ofTriangle()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
RarityFilter.onAverageOnceEvery()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
SurfaceWaterDepthFilter.forMaxDepth()
- 引用位置: