From f3b852025d0469bf226a7834b230d2e31c70634b Mon Sep 17 00:00:00 2001 From: Misode Date: Thu, 18 Jan 2024 07:53:05 +0100 Subject: [PATCH] Add Oh The Trees You'll Grow partner generator --- .../components/generator/SchemaGenerator.tsx | 2 +- src/app/partners/OhTheTreesYoullGrow.ts | 114 ++++++++++++++++++ src/app/partners/index.ts | 2 + src/app/partners/locales/en.json | 27 ++++- src/app/schema/renderHtml.tsx | 2 +- src/config.json | 102 +++++++++------- src/locales/en.json | 2 + 7 files changed, 201 insertions(+), 50 deletions(-) create mode 100644 src/app/partners/OhTheTreesYoullGrow.ts diff --git a/src/app/components/generator/SchemaGenerator.tsx b/src/app/components/generator/SchemaGenerator.tsx index 97164ff3..9f20a1f5 100644 --- a/src/app/components/generator/SchemaGenerator.tsx +++ b/src/app/components/generator/SchemaGenerator.tsx @@ -317,7 +317,7 @@ export function SchemaGenerator({ gen, allowedVersions }: Props) {
{!gen.tags?.includes('partners') && }
- {gen.wiki && + {gen.wiki && {Octicon.mortar_board} {locale('wiki')} } diff --git a/src/app/partners/OhTheTreesYoullGrow.ts b/src/app/partners/OhTheTreesYoullGrow.ts new file mode 100644 index 00000000..e33ba726 --- /dev/null +++ b/src/app/partners/OhTheTreesYoullGrow.ts @@ -0,0 +1,114 @@ +import type { CollectionRegistry, SchemaRegistry } from '@mcschema/core' +import { Case, ListNode, Mod, NumberNode, ObjectNode, Opt, Reference as RawReference, StringNode as RawStringNode, Switch } from '@mcschema/core' + +export function initOhTheTreesYoullGrow(schemas: SchemaRegistry, collections: CollectionRegistry) { + const Reference = RawReference.bind(undefined, schemas) + const StringNode = RawStringNode.bind(undefined, collections) + + collections.register('ohthetreesyoullgrow:feature', [ + 'ohthetreesyoullgrow:tree_from_nbt_v1', + ]) + + const BlockSet = ListNode( + StringNode({ validator: 'resource', params: { pool: 'block' } }) + ) + + schemas.register('ohthetreesyoullgrow:configured_feature', Mod(ObjectNode({ + type: StringNode({ validator: 'resource', params: { pool: 'ohthetreesyoullgrow:feature' as any } }), + config: ObjectNode({ + [Switch]: ['pop', { push: 'type' }], + [Case]: { + 'ohthetreesyoullgrow:tree_from_nbt_v1': { + base_location: StringNode({ validator: 'resource', params: { pool: '$structure' } }), + canopy_location: StringNode({ validator: 'resource', params: { pool: '$structure' } }), + can_grow_on_filter: Reference('block_predicate_worldgen'), + can_leaves_place_filter: Reference('block_predicate_worldgen'), + decorators: Opt(ListNode( + ObjectNode({ + type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }), + [Switch]: [{ push: 'type' }], + [Case]: { + 'minecraft:alter_ground': { + provider: Reference('block_state_provider'), + }, + 'minecraft:attached_to_leaves': { + probability: NumberNode({ min: 0, max: 1 }), + exclusion_radius_xz: NumberNode({ integer: true, min: 0, max: 16 }), + exclusion_radius_y: NumberNode({ integer: true, min: 0, max: 16 }), + required_empty_blocks: NumberNode({ integer: true, min: 1, max: 16 }), + block_provider: Reference('block_state_provider'), + directions: ListNode( + StringNode({ enum: 'direction' }) + ), + }, + 'minecraft:beehive': { + probability: NumberNode({ min: 0, max: 1 }), + }, + 'minecraft:cocoa': { + probability: NumberNode({ min: 0, max: 1 }), + }, + 'minecraft:leave_vine': { + probability: NumberNode({ min: 0, max: 1 }), + }, + }, + }, { context: 'tree_decorator' }) + )), + height: Reference('int_provider'), + leaves_provider: Reference('block_state_provider'), + leaves_target: BlockSet, + log_provider: Reference('block_state_provider'), + log_target: BlockSet, + max_log_depth: Opt(NumberNode({ integer: true })), + place_from_nbt: BlockSet, + }, + }, + }, { disableSwitchContext: true }), + }, { context: 'ohthetreesyoullgrow.configured_feature' }), { + default: () => ({ + type: 'ohthetreesyoullgrow:tree_from_nbt_v1', + config: { + can_grow_on_filter: { + type: 'minecraft:matching_block_tag', + tag: 'minecraft:dirt', + }, + can_leaves_place_filter: { + type: 'minecraft:replaceable', + }, + height: { + type: 'minecraft:uniform', + value: { + min_inclusive: 5, + max_inclusive: 10, + }, + }, + leaves_provider: { + type: 'minecraft:simple_state_provider', + state: { + Name: 'minecraft:acacia_leaves', + Properties: { + distance: '7', + persistent: 'false', + waterlogged: 'false', + }, + }, + }, + leaves_target: [ + 'minecraft:oak_leaves', + ], + log_provider: { + type: 'minecraft:simple_state_provider', + state: { + Name: 'minecraft:acacia_log', + Properties: { + axis: 'y', + }, + }, + }, + log_target: [ + 'minecraft:oak_log', + ], + place_from_nbt: [], + }, + }), + })) +} diff --git a/src/app/partners/index.ts b/src/app/partners/index.ts index f43b3067..71ac72c8 100644 --- a/src/app/partners/index.ts +++ b/src/app/partners/index.ts @@ -2,6 +2,7 @@ import type { CollectionRegistry, SchemaRegistry } from '@mcschema/core' import { initImmersiveWeathering } from './ImmersiveWeathering.js' import { initLithostitched } from './Lithostitched.js' import { initObsidian } from './Obsidian.js' +import { initOhTheTreesYoullGrow } from './OhTheTreesYoullGrow.js' export * from './ImmersiveWeathering.js' export * from './Lithostitched.js' @@ -10,4 +11,5 @@ export function initPartners(schemas: SchemaRegistry, collections: CollectionReg initImmersiveWeathering(schemas, collections) initLithostitched(schemas, collections) initObsidian(schemas, collections) + initOhTheTreesYoullGrow(schemas, collections) } diff --git a/src/app/partners/locales/en.json b/src/app/partners/locales/en.json index 154279ce..0fac55f0 100644 --- a/src/app/partners/locales/en.json +++ b/src/app/partners/locales/en.json @@ -133,6 +133,29 @@ "obsidian:block.display.block_model": "Block Model", "obsidian:block.display.lore": "Lore", - "rule_test.blocks": "Blocks", - "rule_test.fluid": "Fluid" + "ohthetreesyoullgrow:feature.ohthetreesyoullgrow:tree_from_nbt_v1": "Tree from NBT v1", + "ohthetreesyoullgrow.configured_feature.type": "Type", + "ohthetreesyoullgrow.configured_feature.config": "Config", + "ohthetreesyoullgrow.configured_feature.config.base_location": "Base location", + "ohthetreesyoullgrow.configured_feature.config.base_location.help": "The path to the trunk structure piece.", + "ohthetreesyoullgrow.configured_feature.config.canopy_location": "Canopy location", + "ohthetreesyoullgrow.configured_feature.config.canopy_location.help": "The path to the canopy structure piece.", + "ohthetreesyoullgrow.configured_feature.config.can_grow_on_filter": "Can grow on filter", + "ohthetreesyoullgrow.configured_feature.config.can_grow_on_filter.help": "Block filter for which this tree is allowed to grow on. Checks all of the red wool positions defined by the trunk.", + "ohthetreesyoullgrow.configured_feature.config.can_leaves_place_filter": "Can leaves place filter", + "ohthetreesyoullgrow.configured_feature.config.can_leaves_place_filter.help": "Block filter for which this tree's leaves are allowed to place.", + "ohthetreesyoullgrow.configured_feature.config.decorators": "Decorators", + "ohthetreesyoullgrow.configured_feature.config.decorators.entry": "Decorator", + "ohthetreesyoullgrow.configured_feature.config.height": "Height", + "ohthetreesyoullgrow.configured_feature.config.height.help": "Int provider defining the height of the tree.", + "ohthetreesyoullgrow.configured_feature.config.leaves_provider": "Leaves provider", + "ohthetreesyoullgrow.configured_feature.config.leaves_target": "Leaves target", + "ohthetreesyoullgrow.configured_feature.config.leaves_target.entry": "Block", + "ohthetreesyoullgrow.configured_feature.config.log_provider": "Log provider", + "ohthetreesyoullgrow.configured_feature.config.log_target": "Log target", + "ohthetreesyoullgrow.configured_feature.config.log_target.entry": "Block", + "ohthetreesyoullgrow.configured_feature.config.max_log_depth": "Max log depth", + "ohthetreesyoullgrow.configured_feature.config.place_from_nbt": "Place from NBT", + "ohthetreesyoullgrow.configured_feature.config.place_from_nbt.help": "Additional blocks from the structure pieces that should be placed in the world.", + "ohthetreesyoullgrow.configured_feature.config.place_from_nbt.entry": "Block" } diff --git a/src/app/schema/renderHtml.tsx b/src/app/schema/renderHtml.tsx index aa986b3c..cb179556 100644 --- a/src/app/schema/renderHtml.tsx +++ b/src/app/schema/renderHtml.tsx @@ -15,7 +15,7 @@ import type { BlockStateRegistry, VersionId } from '../services/index.js' import { CachedDecorator, CachedFeature } from '../services/index.js' import { ModelWrapper } from './ModelWrapper.js' -const selectRegistries = ['loot_table.type', 'loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'recipe.type', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'dimension.generator.biome_source.preset', 'carver.type', 'feature.type', 'decorator.type', 'feature.tree.minimum_size.type', 'block_state_provider.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'int_provider.type', 'float_provider.type', 'height_provider.type', 'structure_feature.type', 'surface_builder.type', 'processor.processor_type', 'rule_test.predicate_type', 'pos_rule_test.predicate_type', 'template_element.element_type', 'block_placer.type', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'structure_placement.type', 'density_function.type', 'root_placer.type', 'entity.type_specific.cat.variant', 'entity.type_specific.frog.variant', 'rule_block_entity_modifier.type', 'pool_alias_binding.type', 'lithostitched.worldgen_modifier.type', 'lithostitched.modifier_predicate.type'] +const selectRegistries = ['loot_table.type', 'loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'recipe.type', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'dimension.generator.biome_source.preset', 'carver.type', 'feature.type', 'decorator.type', 'feature.tree.minimum_size.type', 'block_state_provider.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'int_provider.type', 'float_provider.type', 'height_provider.type', 'structure_feature.type', 'surface_builder.type', 'processor.processor_type', 'rule_test.predicate_type', 'pos_rule_test.predicate_type', 'template_element.element_type', 'block_placer.type', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'structure_placement.type', 'density_function.type', 'root_placer.type', 'entity.type_specific.cat.variant', 'entity.type_specific.frog.variant', 'rule_block_entity_modifier.type', 'pool_alias_binding.type', 'lithostitched.worldgen_modifier.type', 'lithostitched.modifier_predicate.type', 'ohthetreesyoullgrow.configured_feature.type'] const hiddenFields = ['number_provider.type', 'score_provider.type', 'nbt_provider.type', 'int_provider.type', 'float_provider.type', 'height_provider.type'] const flattenedFields = ['feature.config', 'decorator.config', 'int_provider.value', 'float_provider.value', 'block_state_provider.simple_state_provider.state', 'block_state_provider.rotated_block_provider.state', 'block_state_provider.weighted_state_provider.entries.entry.data', 'rule_test.block_state', 'structure_feature.config', 'surface_builder.config', 'template_pool.elements.entry.element', 'decorator.block_survives_filter.state', 'material_rule.block.result_state'] const inlineFields = ['loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'feature.type', 'decorator.type', 'block_state_provider.type', 'feature.tree.minimum_size.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'block_placer.type', 'rule_test.predicate_type', 'processor.processor_type', 'template_element.element_type', 'nbt_operation.op', 'number_provider.value', 'score_provider.name', 'score_provider.target', 'nbt_provider.source', 'nbt_provider.target', 'generator_biome.biome', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'density_function.type', 'root_placer.type', 'entity.type_specific.type', 'glyph_provider.type', 'sprite_source.type', 'rule_block_entity_modifier.type', 'immersive_weathering.area_condition.type', 'immersive_weathering.block_growth.growth_for_face.entry.direction', 'immersive_weathering.position_test.predicate_type', 'pool_alias_binding.type'] diff --git a/src/config.json b/src/config.json index 82e459ce..806c01e7 100644 --- a/src/config.json +++ b/src/config.json @@ -140,14 +140,14 @@ "url": "loot-table", "path": "loot_tables", "schema": "loot_table", - "wiki": "Loot_table" + "wiki": "https://minecraft.wiki/w/Loot_table" }, { "id": "predicate", "url": "predicate", "path": "predicates", "schema": "predicate", - "wiki": "Predicate" + "wiki": "https://minecraft.wiki/w/Predicate" }, { "id": "item_modifier", @@ -155,35 +155,35 @@ "path": "item_modifiers", "schema": "item_modifier", "minVersion": "1.17", - "wiki": "Item modifier" + "wiki": "https://minecraft.wiki/w/Item modifier" }, { "id": "advancement", "url": "advancement", "path": "advancements", "schema": "advancement", - "wiki": "Advancement/JSON_format" + "wiki": "https://minecraft.wiki/w/Advancement/JSON_format" }, { "id": "recipe", "url": "recipe", "path": "recipes", "schema": "recipe", - "wiki": "Recipe#JSON_format" + "wiki": "https://minecraft.wiki/w/Recipe#JSON_format" }, { "id": "text_component", "url": "text-component", "schema": "text_component", "noPath": true, - "wiki": "Raw_JSON_text_format#Java_Edition" + "wiki": "https://minecraft.wiki/w/Raw_JSON_text_format#Java_Edition" }, { "id": "damage_type", "url": "damage-type", "schema": "damage_type", "minVersion": "1.19.4", - "wiki": "Damage_type" + "wiki": "https://minecraft.wiki/w/Damage_type" }, { "id": "chat_type", @@ -207,7 +207,7 @@ "id": "pack_mcmeta", "url": "pack-mcmeta", "schema": "pack_mcmeta", - "wiki": "Data_pack#pack.mcmeta" + "wiki": "https://minecraft.wiki/w/Data_pack#pack.mcmeta" }, { "id": "dimension", @@ -215,7 +215,7 @@ "schema": "dimension", "tags": ["worldgen"], "minVersion": "1.16", - "wiki": "Custom_dimension" + "wiki": "https://minecraft.wiki/w/Custom_dimension" }, { "id": "dimension_type", @@ -223,7 +223,7 @@ "schema": "dimension_type", "tags": ["worldgen"], "minVersion": "1.16", - "wiki": "Dimension_type" + "wiki": "https://minecraft.wiki/w/Dimension_type" }, { "id": "worldgen/biome", @@ -231,7 +231,7 @@ "tags": ["worldgen"], "schema": "biome", "minVersion": "1.16", - "wiki": "Custom_biome" + "wiki": "https://minecraft.wiki/w/Custom_biome" }, { "id": "worldgen/configured_carver", @@ -239,7 +239,7 @@ "tags": ["worldgen"], "schema": "configured_carver", "minVersion": "1.16", - "wiki": "Custom_carver" + "wiki": "https://minecraft.wiki/w/Custom_carver" }, { "id": "worldgen/configured_feature", @@ -247,7 +247,7 @@ "tags": ["worldgen"], "schema": "configured_feature", "minVersion": "1.16", - "wiki": "Configured_feature" + "wiki": "https://minecraft.wiki/w/Configured_feature" }, { "id": "worldgen/placed_feature", @@ -255,7 +255,7 @@ "tags": ["worldgen"], "schema": "placed_feature", "minVersion": "1.18", - "wiki": "Placed_feature" + "wiki": "https://minecraft.wiki/w/Placed_feature" }, { "id": "worldgen/density_function", @@ -263,7 +263,7 @@ "tags": ["worldgen"], "schema": "density_function", "minVersion": "1.18.2", - "wiki": "Density_function" + "wiki": "https://minecraft.wiki/w/Density_function" }, { "id": "worldgen/noise", @@ -271,7 +271,7 @@ "tags": ["worldgen"], "schema": "noise_parameters", "minVersion": "1.18", - "wiki": "Noise" + "wiki": "https://minecraft.wiki/w/Noise" }, { "id": "worldgen/noise_settings", @@ -279,7 +279,7 @@ "tags": ["worldgen"], "schema": "noise_settings", "minVersion": "1.16", - "wiki": "Custom_noise_settings" + "wiki": "https://minecraft.wiki/w/Custom_noise_settings" }, { "id": "worldgen/configured_structure_feature", @@ -295,7 +295,7 @@ "tags": ["worldgen"], "schema": "structure", "minVersion": "1.19", - "wiki": "Structure/JSON_format" + "wiki": "https://minecraft.wiki/w/Structure/JSON_format" }, { "id": "worldgen/structure_set", @@ -303,7 +303,7 @@ "tags": ["worldgen"], "schema": "structure_set", "minVersion": "1.18.2", - "wiki": "Structure_set" + "wiki": "https://minecraft.wiki/w/Structure_set" }, { "id": "worldgen/configured_surface_builder", @@ -312,7 +312,7 @@ "schema": "configured_surface_builder", "minVersion": "1.16", "maxVersion": "1.17", - "wiki": "Configured_surface_builder" + "wiki": "https://minecraft.wiki/w/Configured_surface_builder" }, { "id": "worldgen/processor_list", @@ -320,7 +320,7 @@ "tags": ["worldgen"], "schema": "processor_list", "minVersion": "1.16", - "wiki": "Processor_list" + "wiki": "https://minecraft.wiki/w/Processor_list" }, { "id": "worldgen/template_pool", @@ -328,7 +328,7 @@ "tags": ["worldgen"], "schema": "template_pool", "minVersion": "1.16", - "wiki": "Template_pool" + "wiki": "https://minecraft.wiki/w/Template_pool" }, { "id": "worldgen/world_preset", @@ -336,7 +336,7 @@ "tags": ["worldgen"], "schema": "world_preset", "minVersion": "1.19", - "wiki": "Custom_world_preset" + "wiki": "https://minecraft.wiki/w/Custom_world_preset" }, { "id": "worldgen/flat_level_generator_preset", @@ -344,7 +344,7 @@ "tags": ["worldgen"], "schema": "flat_level_generator_preset", "minVersion": "1.19", - "wiki": "Custom_world_preset#Superflat_Level_Generation_Preset" + "wiki": "https://minecraft.wiki/w/Custom_world_preset#Superflat_Level_Generation_Preset" }, { "id": "world", @@ -354,7 +354,7 @@ "tags": ["worldgen"], "minVersion": "1.16", "maxVersion": "1.19.3", - "wiki": "Custom" + "wiki": "https://minecraft.wiki/w/Custom" }, { "id": "tag/block", @@ -362,7 +362,7 @@ "tags": ["tags"], "path": "tags/blocks", "schema": "block_tag", - "wiki": "Tag#Java_Edition" + "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { "id": "tag/entity_type", @@ -370,7 +370,7 @@ "tags": ["tags"], "path": "tags/entity_types", "schema": "entity_type_tag", - "wiki": "Tag#Java_Edition" + "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { "id": "tag/fluid", @@ -378,7 +378,7 @@ "tags": ["tags"], "path": "tags/fluids", "schema": "fluid_tag", - "wiki": "Tag#Java_Edition" + "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { "id": "tag/game_event", @@ -387,7 +387,7 @@ "path": "tags/game_events", "schema": "game_event_tag", "minVersion": "1.17", - "wiki": "Tag#Java_Edition" + "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { "id": "tag/item", @@ -395,7 +395,7 @@ "tags": ["tags"], "path": "tags/items", "schema": "item_tag", - "wiki": "Tag#Java_Edition" + "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { "id": "tag/damage_type", @@ -404,7 +404,7 @@ "path": "tags/damage_type", "schema": "damage_type_tag", "minVersion": "1.19.4", - "wiki": "Tag#Java_Edition" + "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { "id": "tag/worldgen/biome", @@ -413,7 +413,7 @@ "path": "tags/worldgen/biome", "schema": "biome_tag", "minVersion": "1.18.2", - "wiki": "Tag#Java_Edition" + "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { "id": "tag/worldgen/structure", @@ -422,7 +422,7 @@ "path": "tags/worldgen/structure", "schema": "structure_tag", "minVersion": "1.19", - "wiki": "Tag#Java_Edition" + "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { "id": "tag/worldgen/structure_set", @@ -431,7 +431,7 @@ "path": "tags/worldgen/structure_set", "schema": "structure_set_tag", "minVersion": "1.18.2", - "wiki": "Tag#Java_Edition" + "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { "id": "tag/worldgen/flat_level_generator_preset", @@ -440,7 +440,7 @@ "path": "tags/worldgen/flat_level_generator_preset", "schema": "flat_level_generator_preset_tag", "minVersion": "1.19", - "wiki": "Tag#Java_Edition" + "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { "id": "tag/worldgen/world_preset", @@ -449,7 +449,7 @@ "path": "tags/worldgen/world_preset", "schema": "world_preset_tag", "minVersion": "1.19", - "wiki": "Tag#Java_Edition" + "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { "id": "tag/banner_pattern", @@ -458,7 +458,7 @@ "path": "tags/banner_pattern", "schema": "banner_pattern_tag", "minVersion": "1.19", - "wiki": "Tag#Java_Edition" + "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { "id": "tag/cat_variant", @@ -467,7 +467,7 @@ "path": "tags/cat_variant", "schema": "cat_variant_tag", "minVersion": "1.19", - "wiki": "Tag#Java_Edition" + "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { "id": "tag/instrument", @@ -476,7 +476,7 @@ "path": "tags/instrument", "schema": "instrument_tag", "minVersion": "1.19", - "wiki": "Tag#Java_Edition" + "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { "id": "tag/painting_variant", @@ -485,7 +485,7 @@ "path": "tags/painting_variant", "schema": "painting_variant_tag", "minVersion": "1.19", - "wiki": "Tag#Java_Edition" + "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { "id": "tag/point_of_interest_type", @@ -494,7 +494,7 @@ "path": "tags/point_of_interest_type", "schema": "point_of_interest_type_tag", "minVersion": "1.19", - "wiki": "Tag#Java_Edition" + "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { "id": "block_definition", @@ -502,7 +502,7 @@ "path": "blockstates", "tags": ["assets"], "schema": "block_definition", - "wiki": "Tutorials/Models#Block_states" + "wiki": "https://minecraft.wiki/w/Tutorials/Models#Block_states" }, { "id": "model", @@ -510,7 +510,7 @@ "path": "models", "tags": ["assets"], "schema": "model", - "wiki": "Tutorials/Models" + "wiki": "https://minecraft.wiki/w/Tutorials/Models" }, { "id": "font", @@ -519,7 +519,7 @@ "tags": ["assets"], "schema": "font", "minVersion": "1.16", - "wiki": "Resource_pack#Fonts" + "wiki": "https://minecraft.wiki/w/Resource_pack#Fonts" }, { "id": "atlas", @@ -528,7 +528,7 @@ "tags": ["assets"], "schema": "atlas", "minVersion": "1.19.3", - "wiki": "Resource_pack#Atlases" + "wiki": "https://minecraft.wiki/w/Resource_pack#Atlases" }, { "id": "immersive_weathering.block_growth", @@ -544,7 +544,8 @@ "path": "lithostitched/worldgen_modifier", "tags": ["partners"], "schema": "lithostitched:worldgen_modifier", - "minVersion": "1.20.2" + "minVersion": "1.20.2", + "wiki": "https://github.com/Apollounknowndev/lithostitched/wiki/Worldgen-Modifiers" }, { "id": "obsidian.item", @@ -559,6 +560,15 @@ "path": "obsidian_block", "tags": ["partners"], "schema": "obsidian:block" + }, + { + "id": "ohthetreesyoullgrow.configured_feature", + "url": "ohthetreesyoullgrow/feature", + "path": "configured_feature", + "tags": ["partners"], + "schema": "ohthetreesyoullgrow:configured_feature", + "minVersion": "1.20.3", + "wiki": "https://github.com/CorgiTaco/Oh-The-Trees-Youll-Grow/wiki/Generating-Your-Tree-With-Data-Packs!" } ], "legacyGuides": [ diff --git a/src/locales/en.json b/src/locales/en.json index 466a67aa..107746bd 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -177,6 +177,8 @@ "generator.obsidian.block": "Obsidian Block", "partner.lithostitched": "Lithostitched", "generator.lithostitched.worldgen_modifier": "Worldgen Modifier", + "partner.ohthetreesyoullgrow": "Oh The Trees You'll Grow", + "generator.ohthetreesyoullgrow.configured_feature": "OTTYG Feature", "presets": "Presets", "preview": "Visualize", "preview.auto_scroll": "Auto scroll",