plop with no args returns all available structures and features.
This commit is contained in:
1 parent
45e3abf19c
commit
083d2a7f2e
3 files changed
+51
-66
No files matched your search
@@ -507,9 +507,12 @@ This function is tentative - will likely change when chunk ticket API is properl
|
|||||||
Scarpet provides convenient methods to access and modify information about structures as well as spawn in-game
|
Scarpet provides convenient methods to access and modify information about structures as well as spawn in-game
|
||||||
structures and features. List of available options and names that you can use depends mostly if you are using scarpet
|
structures and features. List of available options and names that you can use depends mostly if you are using scarpet
|
||||||
with minecraft 1.16.1 and below or 1.16.2 and above since in 1.16.2 Mojang has added JSON support for worldgen features
|
with minecraft 1.16.1 and below or 1.16.2 and above since in 1.16.2 Mojang has added JSON support for worldgen features
|
||||||
meaning that since 1.16.2 - they have official names that can be used by datapacks and scarpet
|
meaning that since 1.16.2 - they have official names that can be used by datapacks and scarpet. If you have most recent
|
||||||
|
scarpet on 1.16.4, you can use `plop()` to get all available worldgen features including custom features and structures
|
||||||
|
controlled by datapacks. It returns a map of lists in the following categories:
|
||||||
|
`'scarpet_custom'`, `'configured_features'`, `'structures'`, `'features'`, `'configured_structures'`
|
||||||
|
|
||||||
### Previous Structure Names, including variants (as of MC 1.16.3)
|
### Previous Structure Names, including variants (MC1.16.1 and below)
|
||||||
* `'monument'`: Ocean Monument. Generates at fixed Y coordinate, surrounds itself with water.
|
* `'monument'`: Ocean Monument. Generates at fixed Y coordinate, surrounds itself with water.
|
||||||
* `'fortress'`: Nether Fortress. Altitude varies, but its bounded by the code.
|
* `'fortress'`: Nether Fortress. Altitude varies, but its bounded by the code.
|
||||||
* `'mansion'`: Woodland Mansion
|
* `'mansion'`: Woodland Mansion
|
||||||
@@ -539,7 +542,7 @@ meaning that since 1.16.2 - they have official names that can be used by datapac
|
|||||||
* `'bastion_remnant_treasure'`: Treasure room version of a piglin bastion (1.16)
|
* `'bastion_remnant_treasure'`: Treasure room version of a piglin bastion (1.16)
|
||||||
* `'bastion_remnant_bridge'` : Bridge version of a piglin bastion (1.16)
|
* `'bastion_remnant_bridge'` : Bridge version of a piglin bastion (1.16)
|
||||||
|
|
||||||
### Feature Names (as of mc1.16.1)
|
### Feature Names (1.16.1 and below)
|
||||||
|
|
||||||
* `'oak'`
|
* `'oak'`
|
||||||
* `'oak_beehive'`: oak with a hive (1.15+).
|
* `'oak_beehive'`: oak with a hive (1.15+).
|
||||||
@@ -603,13 +606,17 @@ meaning that since 1.16.2 - they have official names that can be used by datapac
|
|||||||
* `'twisting_vines'` (1.16)
|
* `'twisting_vines'` (1.16)
|
||||||
* `'basalt_pillar'` (1.16)
|
* `'basalt_pillar'` (1.16)
|
||||||
|
|
||||||
### Standard Structures (as of 1.16.2+)
|
### Standard Structures (as of MC1.16.2+)
|
||||||
|
|
||||||
|
Use `plop():'structures'`, but it always returns the following:
|
||||||
|
|
||||||
`'bastion_remnant'`, `'buried_treasure'`, `'desert_pyramid'`, `'endcity'`, `'fortress'`, `'igloo'`,
|
`'bastion_remnant'`, `'buried_treasure'`, `'desert_pyramid'`, `'endcity'`, `'fortress'`, `'igloo'`,
|
||||||
`'jungle_pyramid'`, `'mansion'`, `'mineshaft'`, `'monument'`, `'nether_fossil'`, `'ocean_ruin'`,
|
`'jungle_pyramid'`, `'mansion'`, `'mineshaft'`, `'monument'`, `'nether_fossil'`, `'ocean_ruin'`,
|
||||||
`'pillager_outpost'`, `'ruined_portal'`, `'shipwreck'`, `'stronghold'`, `'swamp_hut'`, `'village'`
|
`'pillager_outpost'`, `'ruined_portal'`, `'shipwreck'`, `'stronghold'`, `'swamp_hut'`, `'village'`
|
||||||
|
|
||||||
### Structure Variants (as of 1.16.2+)
|
### Structure Variants (as of MC1.16.2+)
|
||||||
|
|
||||||
|
Use `plop():'configured_structures'`, but it always returns the following:
|
||||||
|
|
||||||
`'bastion_remnant'`, `'buried_treasure'`, `'desert_pyramid'`, `'end_city'`, `'fortress'`, `'igloo'`,
|
`'bastion_remnant'`, `'buried_treasure'`, `'desert_pyramid'`, `'end_city'`, `'fortress'`, `'igloo'`,
|
||||||
`'jungle_pyramid'`, `'mansion'`, `'mineshaft'`, `'mineshaft_mesa'`, `'monument'`, `'nether_fossil'`,
|
`'jungle_pyramid'`, `'mansion'`, `'mineshaft'`, `'mineshaft_mesa'`, `'monument'`, `'nether_fossil'`,
|
||||||
@@ -618,48 +625,16 @@ meaning that since 1.16.2 - they have official names that can be used by datapac
|
|||||||
`'ruined_portal_swamp'`, `'shipwreck'`, `'shipwreck_beached'`, `'stronghold'`, `'swamp_hut'`,
|
`'ruined_portal_swamp'`, `'shipwreck'`, `'shipwreck_beached'`, `'stronghold'`, `'swamp_hut'`,
|
||||||
`'village_desert'`, `'village_plains'`, `'village_savanna'`, `'village_snovy'`, `'village_taiga'`
|
`'village_desert'`, `'village_plains'`, `'village_savanna'`, `'village_snovy'`, `'village_taiga'`
|
||||||
|
|
||||||
### World Generation Features (as of 1.16.2+)
|
### World Generation Features (as of MC1.16.2+)
|
||||||
|
|
||||||
`'acacia'`, `'amethyst_geode'` (1.17+), `'bamboo'`, `'bamboo_light'`, `'bamboo_vegetation'`, `'basalt_blobs'`, `'basalt_pillar'`,
|
Use `plop():'features'` and `plop():'configured_features'` for a list of available options. Your output may vary based on
|
||||||
`'birch'`, `'birch_bees_0002'`, `'birch_bees_002'`, `'birch_bees_005'`, `'birch_other'`, `'birch_tall'`,
|
datapacks installed in your world.
|
||||||
`'blackstone_blobs'`, `'blue_ice'`, `'bonus_chest'`, `'brown_mushroom_giant'`, `'brown_mushroom_nether'`,
|
|
||||||
`'brown_mushroom_normal'`, `'brown_mushroom_swamp'`, `'brown_mushroom_taiga'`, `'chorus_plant'`,
|
|
||||||
`'crimson_forest_vegetation'`, `'crimson_fungi'`, `'crimson_fungi_planted'`, `'dark_forest_vegetation_brown'`,
|
|
||||||
`'dark_forest_vegetation_red'`, `'dark_oak'`, `'delta'`, `'desert_well'`, `'disk_clay'`, `'disk_gravel'`,
|
|
||||||
`'disk_sand'`, `'end_gateway'`, `'end_gateway_delayed'`, `'end_island'`, `'end_island_decorated'`, `'end_spike'`,
|
|
||||||
`'fancy_oak'`, `'fancy_oak_bees_0002'`, `'fancy_oak_bees_002'`, `'fancy_oak_bees_005'`, `'flower_default'`,
|
|
||||||
`'flower_forest'`, `'flower_plain'`, `'flower_plain_decorated'`, `'flower_swamp'`, `'flower_warm'`,
|
|
||||||
`'forest_flower_trees'`, `'forest_flower_vegetation'`, `'forest_flower_vegetation_common'`, `'forest_rock'`,
|
|
||||||
`'fossil'`, `'freeze_top_layer'`, `'glowstone'`, `'glowstone_extra'`, `'huge_brown_mushroom'`,
|
|
||||||
`'huge_red_mushroom'`, `'ice_patch'`, `'ice_spike'`, `'iceberg_blue'`, `'iceberg_packed'`, `'jungle_bush'`,
|
|
||||||
`'jungle_tree'`, `'jungle_tree_no_vine'`, `'kelp_cold'`, `'kelp_warm'`, `'lake_lava'`, `'lake_water'`,
|
|
||||||
`'large_basalt_columns'`, `'mega_jungle_tree'`, `'mega_pine'`, `'mega_spruce'`, `'monster_room'`,
|
|
||||||
`'mushroom_field_vegetation'`, `'nether_sprouts'`, `'nope'`, `'oak'`, `'oak_badlands'`, `'oak_bees_0002'`,
|
|
||||||
`'oak_bees_002'`, `'oak_bees_005'`, `'ore_andesite'`, `'ore_blackstone'`, `'ore_coal'`, `'ore_debris_large'`,
|
|
||||||
`'ore_debris_small'`, `'ore_diamond'`, `'ore_diorite'`, `'ore_dirt'`, `'ore_emerald'`, `'ore_gold'`,
|
|
||||||
`'ore_gold_deltas'`, `'ore_gold_extra'`, `'ore_gold_nether'`, `'ore_granite'`, `'ore_gravel'`,
|
|
||||||
`'ore_gravel_nether'`, `'ore_infested'`, `'ore_iron'`, `'ore_lapis'`, `'ore_magma'`, `'ore_quartz_deltas'`,
|
|
||||||
`'ore_quartz_nether'`, `'ore_redstone'`, `'ore_soul_sand'`, `'patch_berry_bush'`, `'patch_berry_decorated'`,
|
|
||||||
`'patch_berry_sparse'`, `'patch_brown_mushroom'`, `'patch_cactus'`, `'patch_cactus_decorated'`,
|
|
||||||
`'patch_cactus_desert'`, `'patch_crimson_roots'`, `'patch_dead_bush'`, `'patch_dead_bush_2'`,
|
|
||||||
`'patch_dead_bush_badlands'`, `'patch_fire'`, `'patch_grass_badlands'`, `'patch_grass_forest'`,
|
|
||||||
`'patch_grass_jungle'`, `'patch_grass_normal'`, `'patch_grass_plain'`, `'patch_grass_savanna'`,
|
|
||||||
`'patch_grass_taiga'`, `'patch_grass_taiga_2'`, `'patch_large_fern'`, `'patch_melon'`, `'patch_pumpkin'`,
|
|
||||||
`'patch_red_mushroom'`, `'patch_soul_fire'`, `'patch_sugar_cane'`, `'patch_sugar_cane_badlands'`,
|
|
||||||
`'patch_sugar_cane_desert'`, `'patch_sugar_cane_swamp'`, `'patch_sunflower'`, `'patch_taiga_grass'`,
|
|
||||||
`'patch_tall_grass'`, `'patch_tall_grass_2'`, `'patch_waterlilly'`, `'pile_hay'`, `'pile_ice'`,
|
|
||||||
`'pile_melon'`, `'pile_pumpkin'`, `'pile_snow'`, `'pine'`, `'plain_vegetation'`, `'red_mushroom_giant'`,
|
|
||||||
`'red_mushroom_nether'`, `'red_mushroom_normal'`, `'red_mushroom_swamp'`, `'red_mushroom_taiga'`,
|
|
||||||
`'sea_pickle'`, `'seagrass_cold'`, `'seagrass_deep'`, `'seagrass_deep_cold'`, `'seagrass_deep_warm'`,
|
|
||||||
`'seagrass_normal'`, `'seagrass_river'`, `'seagrass_simple'`, `'seagrass_swamp'`, `'seagrass_warm'`,
|
|
||||||
`'small_basalt_columns'`, `'spring_closed'`, `'spring_closed_double'`, `'spring_delta'`, `'spring_lava'`,
|
|
||||||
`'spring_lava_double'`, `'spring_open'`, `'spring_water'`, `'spruce'`, `'spruce_snovy'`, `'super_birch_bees_0002'`,
|
|
||||||
`'swamp_tree'`, `'taiga_vegetation'`, `'trees_giant'`, `'trees_giant_spruce'`, `'trees_jungle'`,
|
|
||||||
`'trees_jungle_edge'`, `'trees_mountain'`, `'trees_mountain_edge'`, `'trees_savanna'`, `'trees_shattered_savanna'`,
|
|
||||||
`'trees_water'`, `'twisting_vines'`, `'vines'`, `'void_start_platform'`, `'warm_ocean_vegetation'`,
|
|
||||||
`'warped_forest_vegetation'`, `'warped_fungi'`, `'warped_fungi_planted'`, `'weeping_vines'`
|
|
||||||
|
|
||||||
### Custom Scarpet Features (1.16.2+)
|
### Custom Scarpet Features
|
||||||
|
|
||||||
|
Use `plop():'scarpet_custom'` for a full list.
|
||||||
|
|
||||||
|
These contain some popular features and structures that are impossible or difficult to obtain with vanilla structures/features.
|
||||||
|
|
||||||
* `'bastion_remnant_bridge'` - Bridge version of a bastion remnant
|
* `'bastion_remnant_bridge'` - Bridge version of a bastion remnant
|
||||||
* `'bastion_remnant_hoglin_stable'` - Hoglin stables version of a bastion remnant
|
* `'bastion_remnant_hoglin_stable'` - Hoglin stables version of a bastion remnant
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public class FeatureGenerator
|
|||||||
return custom.plop(world, pos);
|
return custom.plop(world, pos);
|
||||||
}
|
}
|
||||||
Identifier id = new Identifier(featureName);
|
Identifier id = new Identifier(featureName);
|
||||||
ConfiguredStructureFeature<?, ?> structureFeature = BuiltinRegistries.CONFIGURED_STRUCTURE_FEATURE.get(id);
|
ConfiguredStructureFeature<?, ?> structureFeature = world.getRegistryManager().get(Registry.CONFIGURED_STRUCTURE_FEATURE_WORLDGEN).get(id);
|
||||||
if (structureFeature != null)
|
if (structureFeature != null)
|
||||||
{
|
{
|
||||||
return ((StructureFeatureInterface)structureFeature.feature).plopAnywhere(
|
return ((StructureFeatureInterface)structureFeature.feature).plopAnywhere(
|
||||||
@@ -58,7 +58,7 @@ public class FeatureGenerator
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ConfiguredFeature<?, ?> feature = BuiltinRegistries.CONFIGURED_FEATURE.get(id);
|
ConfiguredFeature<?, ?> feature = world.getRegistryManager().get(Registry.CONFIGURED_FEATURE_WORLDGEN).get(id);
|
||||||
if (feature != null)
|
if (feature != null)
|
||||||
{
|
{
|
||||||
CarpetSettings.skipGenerationChecks = true;
|
CarpetSettings.skipGenerationChecks = true;
|
||||||
@@ -77,7 +77,7 @@ public class FeatureGenerator
|
|||||||
public static ConfiguredStructureFeature<?, ?> resolveConfiguredStructure(String name, ServerWorld world, BlockPos pos)
|
public static ConfiguredStructureFeature<?, ?> resolveConfiguredStructure(String name, ServerWorld world, BlockPos pos)
|
||||||
{
|
{
|
||||||
Identifier id = new Identifier(name);
|
Identifier id = new Identifier(name);
|
||||||
ConfiguredStructureFeature<?, ?> configuredStructureFeature = BuiltinRegistries.CONFIGURED_STRUCTURE_FEATURE.get(id);
|
ConfiguredStructureFeature<?, ?> configuredStructureFeature = world.getRegistryManager().get(Registry.CONFIGURED_STRUCTURE_FEATURE_WORLDGEN).get(id);
|
||||||
if (configuredStructureFeature != null) return configuredStructureFeature;
|
if (configuredStructureFeature != null) return configuredStructureFeature;
|
||||||
StructureFeature<?> structureFeature = Registry.STRUCTURE_FEATURE.get(id);
|
StructureFeature<?> structureFeature = Registry.STRUCTURE_FEATURE.get(id);
|
||||||
if (structureFeature == null) return null;
|
if (structureFeature == null) return null;
|
||||||
@@ -137,7 +137,7 @@ public class FeatureGenerator
|
|||||||
{
|
{
|
||||||
ConfiguredStructureFeature<?, ?> configuredFeature = world.getBiome(pos).getGenerationSettings().method_30978(structure.configure(null));
|
ConfiguredStructureFeature<?, ?> configuredFeature = world.getBiome(pos).getGenerationSettings().method_30978(structure.configure(null));
|
||||||
if (configuredFeature.config != null || !tryHard) return configuredFeature;
|
if (configuredFeature.config != null || !tryHard) return configuredFeature;
|
||||||
return BuiltinRegistries.CONFIGURED_STRUCTURE_FEATURE.getEntries().stream().
|
return world.getRegistryManager().get(Registry.CONFIGURED_STRUCTURE_FEATURE_WORLDGEN).getEntries().stream().
|
||||||
filter(cS -> cS.getValue().feature == structure).
|
filter(cS -> cS.getValue().feature == structure).
|
||||||
findFirst().map(Map.Entry::getValue).orElse(null);
|
findFirst().map(Map.Entry::getValue).orElse(null);
|
||||||
}
|
}
|
||||||
@@ -168,7 +168,7 @@ public class FeatureGenerator
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Map<String, Thing> featureMap = new HashMap<String, Thing>() {{
|
public static final Map<String, Thing> featureMap = new HashMap<String, Thing>() {{
|
||||||
put("oak_bees", simpleTree(ConfiguredFeatures.OAK.getConfig().setTreeDecorators(ImmutableList.of(new BeehiveTreeDecorator(1.0F)))));
|
put("oak_bees", simpleTree(ConfiguredFeatures.OAK.getConfig().setTreeDecorators(ImmutableList.of(new BeehiveTreeDecorator(1.0F)))));
|
||||||
put("fancy_oak_bees", simpleTree(ConfiguredFeatures.FANCY_OAK.getConfig().setTreeDecorators(ImmutableList.of(new BeehiveTreeDecorator(1.0F)))));
|
put("fancy_oak_bees", simpleTree(ConfiguredFeatures.FANCY_OAK.getConfig().setTreeDecorators(ImmutableList.of(new BeehiveTreeDecorator(1.0F)))));
|
||||||
put("birch_bees", simpleTree(ConfiguredFeatures.BIRCH.getConfig().setTreeDecorators(ImmutableList.of(new BeehiveTreeDecorator(1.0F)))));
|
put("birch_bees", simpleTree(ConfiguredFeatures.BIRCH.getConfig().setTreeDecorators(ImmutableList.of(new BeehiveTreeDecorator(1.0F)))));
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import carpet.script.value.EntityValue;
|
|||||||
import carpet.script.value.FormattedTextValue;
|
import carpet.script.value.FormattedTextValue;
|
||||||
import carpet.script.value.FunctionValue;
|
import carpet.script.value.FunctionValue;
|
||||||
import carpet.script.value.ListValue;
|
import carpet.script.value.ListValue;
|
||||||
|
import carpet.script.value.MapValue;
|
||||||
import carpet.script.value.NBTSerializableValue;
|
import carpet.script.value.NBTSerializableValue;
|
||||||
import carpet.script.value.NullValue;
|
import carpet.script.value.NullValue;
|
||||||
import carpet.script.value.NumericValue;
|
import carpet.script.value.NumericValue;
|
||||||
@@ -60,6 +61,7 @@ import net.minecraft.util.math.ChunkPos;
|
|||||||
import net.minecraft.util.math.EulerAngle;
|
import net.minecraft.util.math.EulerAngle;
|
||||||
import net.minecraft.util.math.Vec2f;
|
import net.minecraft.util.math.Vec2f;
|
||||||
import net.minecraft.util.math.Vec3d;
|
import net.minecraft.util.math.Vec3d;
|
||||||
|
import net.minecraft.util.registry.DynamicRegistryManager;
|
||||||
import net.minecraft.util.registry.Registry;
|
import net.minecraft.util.registry.Registry;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import org.apache.commons.lang3.tuple.Pair;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
@@ -67,6 +69,7 @@ import org.apache.commons.lang3.tuple.Pair;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -619,6 +622,29 @@ public class Auxiliary {
|
|||||||
});
|
});
|
||||||
|
|
||||||
expression.addLazyFunction("plop", -1, (c, t, lv) ->{
|
expression.addLazyFunction("plop", -1, (c, t, lv) ->{
|
||||||
|
if (lv.size() == 0)
|
||||||
|
{
|
||||||
|
Map<Value, Value> plopData = new HashMap<>();
|
||||||
|
CarpetContext cc = (CarpetContext)c;
|
||||||
|
DynamicRegistryManager registryManager = cc.s.getWorld().getRegistryManager();
|
||||||
|
plopData.put(StringValue.of("scarpet_custom"),
|
||||||
|
ListValue.wrap(FeatureGenerator.featureMap.keySet().stream().sorted().map(StringValue::of).collect(Collectors.toList()))
|
||||||
|
);
|
||||||
|
plopData.put(StringValue.of("features"),
|
||||||
|
ListValue.wrap(Registry.FEATURE.getIds().stream().sorted().map(ValueConversions::of).collect(Collectors.toList()))
|
||||||
|
);
|
||||||
|
plopData.put(StringValue.of("configured_features"),
|
||||||
|
ListValue.wrap(registryManager.get(Registry.CONFIGURED_FEATURE_WORLDGEN).getIds().stream().sorted().map(ValueConversions::of).collect(Collectors.toList()))
|
||||||
|
);
|
||||||
|
plopData.put(StringValue.of("structures"),
|
||||||
|
ListValue.wrap(Registry.STRUCTURE_FEATURE.getIds().stream().sorted().map(ValueConversions::of).collect(Collectors.toList()))
|
||||||
|
);
|
||||||
|
plopData.put(StringValue.of("configured_structures"),
|
||||||
|
ListValue.wrap(registryManager.get(Registry.CONFIGURED_STRUCTURE_FEATURE_WORLDGEN).getIds().stream().sorted().map(ValueConversions::of).collect(Collectors.toList()))
|
||||||
|
);
|
||||||
|
Value ret = MapValue.wrap(plopData);
|
||||||
|
return (_c, _t) -> ret;
|
||||||
|
}
|
||||||
BlockArgument locator = BlockArgument.findIn((CarpetContext)c, lv, 0);
|
BlockArgument locator = BlockArgument.findIn((CarpetContext)c, lv, 0);
|
||||||
if (lv.size() <= locator.offset)
|
if (lv.size() <= locator.offset)
|
||||||
throw new InternalExpressionException("'plop' needs extra argument indicating what to plop");
|
throw new InternalExpressionException("'plop' needs extra argument indicating what to plop");
|
||||||
@@ -656,23 +682,7 @@ public class Auxiliary {
|
|||||||
|
|
||||||
expression.addLazyFunction("logger", -1, (c, t, lv) ->
|
expression.addLazyFunction("logger", -1, (c, t, lv) ->
|
||||||
{
|
{
|
||||||
//CarpetSettings.LOG.error("Standard Structures:");
|
|
||||||
//CarpetSettings.LOG.error(Registry.STRUCTURE_FEATURE.getIds().stream().map(i -> "`'"+NBTSerializableValue.nameFromRegistryId(i)+"'`").sorted(). collect(Collectors.joining(", ")));
|
|
||||||
//CarpetSettings.LOG.error("");
|
|
||||||
//CarpetSettings.LOG.error("Configured Structures:");
|
|
||||||
//CarpetSettings.LOG.error(BuiltinRegistries.CONFIGURED_STRUCTURE_FEATURE.getIds().stream().map(i -> "`'"+NBTSerializableValue.nameFromRegistryId(i)+"'`").sorted().collect(Collectors.joining(", ")));
|
|
||||||
//CarpetSettings.LOG.error("");
|
|
||||||
//CarpetSettings.LOG.error("Features:");
|
|
||||||
//CarpetSettings.LOG.error(Registry.FEATURE.getIds().stream().map(i -> "`'"+NBTSerializableValue.nameFromRegistryId(i)+"'`").sorted().collect(Collectors.joining(", ")));
|
|
||||||
//CarpetSettings.LOG.error("");
|
|
||||||
//CarpetSettings.LOG.error("Configured Features:");
|
|
||||||
//CarpetSettings.LOG.error(BuiltinRegistries.CONFIGURED_FEATURE.getIds().stream().map(i -> "`'"+NBTSerializableValue.nameFromRegistryId(i)+"'`").sorted().collect(Collectors.joining(", ")));
|
|
||||||
//CarpetSettings.LOG.error("");
|
|
||||||
//CarpetSettings.LOG.error("Custom:");
|
|
||||||
//CarpetSettings.LOG.error(FeatureGenerator.featureMap.keySet().stream().map(i -> "`'"+i+"'`").sorted().collect(Collectors.joining(", ")));
|
|
||||||
|
|
||||||
//CarpetSettings.LOG.error(Registry.ENTITY_TYPE.getIds().stream().sorted().map(ValueConversions::simplify).collect(Collectors.joining("`, `")));
|
//CarpetSettings.LOG.error(Registry.ENTITY_TYPE.getIds().stream().sorted().map(ValueConversions::simplify).collect(Collectors.joining("`, `")));
|
||||||
|
|
||||||
Value res;
|
Value res;
|
||||||
|
|
||||||
if(lv.size()==1)
|
if(lv.size()==1)
|
||||||
|
|||||||
Reference in new issue
Block a user