From 68eb077c1795649ff9046e608c0449661bd54245 Mon Sep 17 00:00:00 2001 From: Misode Date: Thu, 31 Oct 2024 06:41:30 +0100 Subject: [PATCH] Re-add ohthetreesyoullgrow partner --- public/mcdoc/ohthetreesyoullgrow.mcdoc | 34 +++++ src/app/Config.ts | 3 +- src/app/components/generator/McdocHelpers.ts | 20 +-- .../components/generator/McdocRenderer.tsx | 6 +- .../components/generator/SchemaGenerator.tsx | 7 +- src/app/contexts/Project.tsx | 1 + src/app/services/DataFetcher.ts | 8 ++ src/app/services/Spyglass.ts | 8 +- src/config.json | 121 +++++------------- src/locales/en.json | 2 +- 10 files changed, 104 insertions(+), 106 deletions(-) create mode 100644 public/mcdoc/ohthetreesyoullgrow.mcdoc diff --git a/public/mcdoc/ohthetreesyoullgrow.mcdoc b/public/mcdoc/ohthetreesyoullgrow.mcdoc new file mode 100644 index 00000000..c3006a45 --- /dev/null +++ b/public/mcdoc/ohthetreesyoullgrow.mcdoc @@ -0,0 +1,34 @@ +use ::java::data::worldgen::feature::block_predicate::BlockPredicate +use ::java::data::worldgen::feature::block_state_provider::BlockStateProvider +use ::java::data::worldgen::feature::tree::TreeDecorator +use ::java::data::worldgen::IntProvider + +dispatch minecraft:resource[ohthetreesyoullgrow:configured_feature] to struct ConfiguredFeature { + type: #[id] FeatureTypes, + config: ohthetreesyoullgrow:feature_config[[type]], +} + +enum(string) FeatureTypes { + TreeFromNbt = "ohthetreesyoullgrow:tree_from_nbt_v1", +} + +dispatch ohthetreesyoullgrow:feature_config[ohthetreesyoullgrow:tree_from_nbt_v1] to struct TreeFromNbt { + /// The path to the trunk structure piece. + base_location: #[id="structure"] string, + /// The path to the canopy structure piece. + canopy_location: #[id="structure"] string, + /// Block filter for which this tree is allowed to grow on. Checks all of the red wool positions defined by the trunk. + can_grow_on_filter: BlockPredicate, + /// Block filter for which this tree's leaves are allowed to place. + can_leaves_place_filter: BlockPredicate, + decorators?: [TreeDecorator], + /// Int provider defining the height of the tree. + height: IntProvider, + leaves_provider: BlockStateProvider, + leaves_target: [#[id="block"] string], + log_provider: BlockStateProvider, + log_target: [#[id="block"] string], + max_log_depth?: int, + /// Additional blocks from the structure pieces that should be placed in the world. + place_from_nbt: [#[id="block"] string], +} diff --git a/src/app/Config.ts b/src/app/Config.ts index 7f799e5f..fab1c8f7 100644 --- a/src/app/Config.ts +++ b/src/app/Config.ts @@ -20,11 +20,10 @@ export interface ConfigVersion { export interface ConfigGenerator { id: string, url: string, - schema: string, path?: string, noPath?: boolean, tags?: string[], - partner?: string, + dependency?: string, minVersion?: string, maxVersion?: string, wiki?: string, diff --git a/src/app/components/generator/McdocHelpers.ts b/src/app/components/generator/McdocHelpers.ts index 436343ae..694e5dac 100644 --- a/src/app/components/generator/McdocHelpers.ts +++ b/src/app/components/generator/McdocHelpers.ts @@ -1,5 +1,5 @@ import * as core from '@spyglassmc/core' -import type { JsonNode, JsonPairNode } from '@spyglassmc/json' +import type { JsonNode } from '@spyglassmc/json' import { JsonArrayNode, JsonObjectNode, JsonStringNode } from '@spyglassmc/json' import { JsonStringOptions } from '@spyglassmc/json/lib/parser/string.js' import type { ListType, McdocType, NumericRange, NumericType, PrimitiveArrayType, TupleType, UnionType } from '@spyglassmc/mcdoc' @@ -226,22 +226,26 @@ export function isSelectRegistry(registry: string) { return selectRegistries.has(registry) } -export function simplifyType(type: McdocType, ctx: core.CheckerContext, pair?: JsonPairNode): SimplifiedMcdocType { +interface SimplifyNodeContext { + key?: JsonStringNode + parent?: JsonObjectNode +} +export function simplifyType(type: McdocType, ctx: core.CheckerContext, { key, parent }: SimplifyNodeContext = {}): SimplifiedMcdocType { const simplifyNode: SimplifyValueNode = { entryNode: { - parent: pair && JsonObjectNode.is(pair?.parent) ? { + parent: parent ? { entryNode: { parent: undefined, runtimeKey: undefined, }, node: { - originalNode: pair.parent, - inferredType: inferType(pair.parent), + originalNode: parent, + inferredType: inferType(parent), }, } : undefined, - runtimeKey: pair?.key ? { - originalNode: pair.key, - inferredType: inferType(pair.key), + runtimeKey: key ? { + originalNode: key, + inferredType: inferType(key), } : undefined, }, node: { diff --git a/src/app/components/generator/McdocRenderer.tsx b/src/app/components/generator/McdocRenderer.tsx index 3f8ae36e..b2e7bc06 100644 --- a/src/app/components/generator/McdocRenderer.tsx +++ b/src/app/components/generator/McdocRenderer.tsx @@ -474,7 +474,7 @@ function StructBody({ type: outerType, node, makeEdit, ctx }: Props { if (pair) { makeEdit(() => { @@ -562,7 +562,7 @@ function StructBody({ type: outerType, node, makeEdit, ctx }: Props { - const valueNode = getDefault(simplifyType(field.type, ctx, pair), range, ctx) + const valueNode = getDefault(simplifyType(field.type, ctx, { key: pair.key, parent: node }), range, ctx) const newPair: core.PairNode = { type: 'pair', range: keyNode.range, @@ -600,7 +600,7 @@ function StructBody({ type: outerType, node, makeEdit, ctx }: Props } - const childType = simplifyType(field.type, ctx, pair) + const childType = simplifyType(field.type, ctx, { key: pair.key, parent: node }) const makeFieldEdit: MakeEdit = (edit) => { makeEdit(() => { const newChild = edit(child?.range ?? core.Range.create(pair.range.end)) diff --git a/src/app/components/generator/SchemaGenerator.tsx b/src/app/components/generator/SchemaGenerator.tsx index 70963bb5..f5f3b010 100644 --- a/src/app/components/generator/SchemaGenerator.tsx +++ b/src/app/components/generator/SchemaGenerator.tsx @@ -7,7 +7,7 @@ import { DRAFT_PROJECT, useLocale, useProject, useVersion } from '../../contexts import { useSpyglass, watchSpyglassUri } from '../../contexts/Spyglass.jsx' import { AsyncCancel, useActiveTimeout, useAsync, useSearchParam } from '../../hooks/index.js' import type { VersionId } from '../../services/index.js' -import { checkVersion, fetchPreset, fetchRegistries, getSnippet, shareSnippet } from '../../services/index.js' +import { checkVersion, fetchDependencyMcdoc, fetchPreset, fetchRegistries, getSnippet, shareSnippet } from '../../services/index.js' import { Store } from '../../Store.js' import { cleanUrl, genPath, safeJsonParse } from '../../Utils.js' import { Ad, Btn, BtnMenu, ErrorPanel, FileCreation, FileRenaming, Footer, HasPreview, Octicon, PreviewPanel, ProjectCreation, ProjectDeletion, ProjectPanel, SearchList, SourcePanel, TextInput, Tree, VersionSwitcher } from '../index.js' @@ -88,6 +88,11 @@ export function SchemaGenerator({ gen, allowedVersions }: Props) { if (text !== undefined) { await service.writeFile(uri, text) } + if (gen.dependency) { + const dependency = await fetchDependencyMcdoc(gen.dependency) + const dependencyUri = `file:///project/mcdoc/${gen.dependency}.mcdoc` + await service.getFile(dependencyUri, () => dependency) + } // TODO: if text is undefined, set to generator's default const docAndNode = await service.getFile(uri, () => '{}') Analytics.setGenerator(gen.id) diff --git a/src/app/contexts/Project.tsx b/src/app/contexts/Project.tsx index df9c15e8..9c095ad5 100644 --- a/src/app/contexts/Project.tsx +++ b/src/app/contexts/Project.tsx @@ -34,6 +34,7 @@ export type UnknownFile = { export const FilePatterns = [ 'worldgen/[a-z_]+', + 'ohthetreesyoullgrow/[a-z_]+', 'tags/worldgen/[a-z_]+', 'tags/[a-z_]+', '[a-z_]+', diff --git a/src/app/services/DataFetcher.ts b/src/app/services/DataFetcher.ts index 28a9d405..a66ab8b6 100644 --- a/src/app/services/DataFetcher.ts +++ b/src/app/services/DataFetcher.ts @@ -57,6 +57,14 @@ export async function fetchVanillaMcdoc() { } } +export async function fetchDependencyMcdoc(dependency: string) { + try { + return cachedFetch(`/mcdoc/${dependency}.mcdoc`, { decode: res => res.text(), refresh: true }) + } catch (e) { + throw new Error(`Error occured while fetching ${dependency} mcdoc: ${message(e)}`) + } +} + export async function fetchRegistries(versionId: VersionId) { console.debug(`[fetchRegistries] ${versionId}`) const version = config.versions.find(v => v.id === versionId)! diff --git a/src/app/services/Spyglass.ts b/src/app/services/Spyglass.ts index b9115163..9ffa71de 100644 --- a/src/app/services/Spyglass.ts +++ b/src/app/services/Spyglass.ts @@ -86,8 +86,10 @@ export class SpyglassService { public async getFile(uri: string, emptyContent?: () => string) { let docAndNode = this.service.project.getClientManaged(uri) if (docAndNode === undefined) { + const lang = core.fileUtil.extname(uri)?.slice(1) ?? 'txt' const content = await this.readFile(uri) - const doc = TextDocument.create(uri, 'json', 1, content ?? (emptyContent ? emptyContent() : '')) + this.service.project['bindUri'](uri) + const doc = TextDocument.create(uri, lang, 1, content ?? (emptyContent ? emptyContent() : '')) await this.service.project.onDidOpen(doc.uri, doc.languageId, doc.version, doc.getText()) docAndNode = await this.service.project.ensureClientManagedChecked(uri) } @@ -234,6 +236,10 @@ export class SpyglassService { models: { category: 'model', }, + // Partner resources + 'ohthetreesyoullgrow/configured_feature': { + category: 'ohthetreesyoullgrow:configured_feature', + }, }, }, lint: { diff --git a/src/config.json b/src/config.json index cfa8fe5b..519ec3c5 100644 --- a/src/config.json +++ b/src/config.json @@ -177,129 +177,109 @@ { "id": "loot_table", "url": "loot-table", - "schema": "loot_table", "wiki": "https://minecraft.wiki/w/Loot_table" }, { "id": "predicate", "url": "predicate", - "schema": "predicate", "wiki": "https://minecraft.wiki/w/Predicate" }, { "id": "item_modifier", "url": "item-modifier", - "schema": "item_modifier", "minVersion": "1.17", "wiki": "https://minecraft.wiki/w/Item_modifier" }, { "id": "advancement", "url": "advancement", - "schema": "advancement", "wiki": "https://minecraft.wiki/w/Custom_advancement" }, { "id": "recipe", "url": "recipe", - "schema": "recipe", "wiki": "https://minecraft.wiki/w/Recipe#JSON_format" }, { "id": "chat_type", "url": "chat-type", - "schema": "chat_type", "minVersion": "1.19", "wiki": "https://minecraft.wiki/w/Chat_type" }, { "id": "damage_type", "url": "damage-type", - "schema": "damage_type", "minVersion": "1.19.4", "wiki": "https://minecraft.wiki/w/Damage_type" }, { "id": "trim_material", "url": "trim-material", - "schema": "trim_material", "minVersion": "1.19.4" }, { "id": "trim_pattern", "url": "trim-pattern", - "schema": "trim_pattern", "minVersion": "1.19.4" }, { "id": "banner_pattern", "url": "banner-pattern", - "schema": "banner_pattern", "minVersion": "1.20.5" }, { "id": "wolf_variant", "url": "wolf-variant", - "schema": "wolf_variant", "minVersion": "1.20.5" }, { "id": "enchantment", "url": "enchantment", - "schema": "enchantment", "minVersion": "1.21", "wiki": "https://minecraft.wiki/w/Custom_enchantment" }, { "id": "enchantment_provider", "url": "enchantment-provider", - "schema": "enchantment_provider", "minVersion": "1.21", "wiki": "https://minecraft.wiki/w/Enchantment_provider" }, { "id": "painting_variant", "url": "painting-variant", - "schema": "painting_variant", "minVersion": "1.21", "wiki": "https://minecraft.wiki/w/Painting_variant" }, { "id": "jukebox_song", "url": "jukebox-song", - "schema": "jukebox_song", "minVersion": "1.21", "wiki": "https://minecraft.wiki/w/Jukebox_song_definition" }, { "id": "instrument", "url": "instrument", - "schema": "instrument", "minVersion": "1.21.2" }, { "id": "trial_spawner", "url": "trial-spawner", - "schema": "trial_spawner", "minVersion": "1.21.2" }, { "id": "text_component", "url": "text-component", - "schema": "text_component", "noPath": true, "wiki": "https://minecraft.wiki/w/Raw_JSON_text_format#Java_Edition" }, { "id": "pack_mcmeta", "url": "pack-mcmeta", - "schema": "pack_mcmeta", "wiki": "https://minecraft.wiki/w/Data_pack#pack.mcmeta" }, { "id": "dimension", "url": "dimension", - "schema": "dimension", "tags": ["worldgen"], "minVersion": "1.16", "wiki": "https://minecraft.wiki/w/Custom_dimension" @@ -307,7 +287,6 @@ { "id": "dimension_type", "url": "dimension-type", - "schema": "dimension_type", "tags": ["worldgen"], "minVersion": "1.16", "wiki": "https://minecraft.wiki/w/Dimension_type" @@ -316,7 +295,6 @@ "id": "worldgen/biome", "url": "worldgen/biome", "tags": ["worldgen"], - "schema": "biome", "minVersion": "1.16", "wiki": "https://minecraft.wiki/w/Custom_biome" }, @@ -324,7 +302,6 @@ "id": "worldgen/configured_carver", "url": "worldgen/carver", "tags": ["worldgen"], - "schema": "configured_carver", "minVersion": "1.16", "wiki": "https://minecraft.wiki/w/Custom_carver" }, @@ -332,7 +309,6 @@ "id": "worldgen/configured_feature", "url": "worldgen/feature", "tags": ["worldgen"], - "schema": "configured_feature", "minVersion": "1.16", "wiki": "https://minecraft.wiki/w/Configured_feature" }, @@ -340,7 +316,6 @@ "id": "worldgen/placed_feature", "url": "worldgen/placed-feature", "tags": ["worldgen"], - "schema": "placed_feature", "minVersion": "1.18", "wiki": "https://minecraft.wiki/w/Placed_feature" }, @@ -348,7 +323,6 @@ "id": "worldgen/density_function", "url": "worldgen/density-function", "tags": ["worldgen"], - "schema": "density_function", "minVersion": "1.18.2", "wiki": "https://minecraft.wiki/w/Density_function" }, @@ -356,7 +330,6 @@ "id": "worldgen/noise", "url": "worldgen/noise", "tags": ["worldgen"], - "schema": "noise_parameters", "minVersion": "1.18", "wiki": "https://minecraft.wiki/w/Noise" }, @@ -364,7 +337,6 @@ "id": "worldgen/noise_settings", "url": "worldgen/noise-settings", "tags": ["worldgen"], - "schema": "noise_settings", "minVersion": "1.16", "wiki": "https://minecraft.wiki/w/Custom_noise_settings" }, @@ -372,7 +344,6 @@ "id": "worldgen/configured_structure_feature", "url": "worldgen/structure-feature", "tags": ["worldgen"], - "schema": "configured_structure_feature", "minVersion": "1.16", "maxVersion": "1.18.2" }, @@ -380,7 +351,6 @@ "id": "worldgen/structure", "url": "worldgen/structure", "tags": ["worldgen"], - "schema": "structure", "minVersion": "1.19", "wiki": "https://minecraft.wiki/w/Custom_structure" }, @@ -388,7 +358,6 @@ "id": "worldgen/structure_set", "url": "worldgen/structure-set", "tags": ["worldgen"], - "schema": "structure_set", "minVersion": "1.18.2", "wiki": "https://minecraft.wiki/w/Structure_set" }, @@ -396,7 +365,6 @@ "id": "worldgen/configured_surface_builder", "url": "worldgen/surface-builder", "tags": ["worldgen"], - "schema": "configured_surface_builder", "minVersion": "1.16", "maxVersion": "1.17", "wiki": "https://minecraft.wiki/w/Configured_surface_builder" @@ -405,7 +373,6 @@ "id": "worldgen/processor_list", "url": "worldgen/processor-list", "tags": ["worldgen"], - "schema": "processor_list", "minVersion": "1.16", "wiki": "https://minecraft.wiki/w/Processor_list" }, @@ -413,7 +380,6 @@ "id": "worldgen/template_pool", "url": "worldgen/template-pool", "tags": ["worldgen"], - "schema": "template_pool", "minVersion": "1.16", "wiki": "https://minecraft.wiki/w/Template_pool" }, @@ -421,7 +387,6 @@ "id": "worldgen/world_preset", "url": "worldgen/world-preset", "tags": ["worldgen"], - "schema": "world_preset", "minVersion": "1.19", "wiki": "https://minecraft.wiki/w/Custom_world_preset" }, @@ -429,14 +394,12 @@ "id": "worldgen/flat_level_generator_preset", "url": "worldgen/flat-world-preset", "tags": ["worldgen"], - "schema": "flat_level_generator_preset", "minVersion": "1.19", "wiki": "https://minecraft.wiki/w/Custom_world_preset#Superflat_Level_Generation_Preset" }, { "id": "world", "url": "world", - "schema": "world_settings", "noPath": true, "tags": ["worldgen"], "minVersion": "1.16", @@ -448,7 +411,6 @@ "url": "tags/block", "tags": ["tags"], "path": "tags/block", - "schema": "block_tag", "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { @@ -456,7 +418,6 @@ "url": "tags/enchantment", "tags": ["tags"], "path": "tags/enchantment", - "schema": "enchantment_tag", "minVersion": "1.20.5", "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, @@ -465,7 +426,6 @@ "url": "tags/entity-type", "tags": ["tags"], "path": "tags/entity_type", - "schema": "entity_type_tag", "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { @@ -473,7 +433,6 @@ "url": "tags/fluid", "tags": ["tags"], "path": "tags/fluid", - "schema": "fluid_tag", "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { @@ -481,7 +440,6 @@ "url": "tags/game-event", "tags": ["tags"], "path": "tags/game_event", - "schema": "game_event_tag", "minVersion": "1.17", "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, @@ -490,7 +448,6 @@ "url": "tags/item", "tags": ["tags"], "path": "tags/item", - "schema": "item_tag", "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, { @@ -498,7 +455,6 @@ "url": "tags/damage-type", "tags": ["tags"], "path": "tags/damage_type", - "schema": "damage_type_tag", "minVersion": "1.19.4", "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, @@ -507,7 +463,6 @@ "url": "tags/biome", "tags": ["tags", "worldgen"], "path": "tags/worldgen/biome", - "schema": "biome_tag", "minVersion": "1.18.2", "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, @@ -516,7 +471,6 @@ "url": "tags/structure", "tags": ["tags", "worldgen"], "path": "tags/worldgen/structure", - "schema": "structure_tag", "minVersion": "1.19", "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, @@ -525,7 +479,6 @@ "url": "tags/structure-set", "tags": ["tags", "worldgen"], "path": "tags/worldgen/structure_set", - "schema": "structure_set_tag", "minVersion": "1.18.2", "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, @@ -534,7 +487,6 @@ "url": "tags/flat-world-preset", "tags": ["tags", "worldgen"], "path": "tags/worldgen/flat_level_generator_preset", - "schema": "flat_level_generator_preset_tag", "minVersion": "1.19", "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, @@ -543,7 +495,6 @@ "url": "tags/world-preset", "tags": ["tags", "worldgen"], "path": "tags/worldgen/world_preset", - "schema": "world_preset_tag", "minVersion": "1.19", "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, @@ -552,7 +503,6 @@ "url": "tags/banner-pattern", "tags": ["tags"], "path": "tags/banner_pattern", - "schema": "banner_pattern_tag", "minVersion": "1.19", "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, @@ -561,7 +511,6 @@ "url": "tags/cat-variant", "tags": ["tags"], "path": "tags/cat_variant", - "schema": "cat_variant_tag", "minVersion": "1.19", "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, @@ -570,7 +519,6 @@ "url": "tags/enchantment", "tags": ["tags"], "path": "tags/enchantment", - "schema": "enchantment_tag", "minVersion": "1.19", "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, @@ -579,7 +527,6 @@ "url": "tags/instrument", "tags": ["tags"], "path": "tags/instrument", - "schema": "instrument_tag", "minVersion": "1.19", "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, @@ -588,7 +535,6 @@ "url": "tags/painting-variant", "tags": ["tags"], "path": "tags/painting_variant", - "schema": "painting_variant_tag", "minVersion": "1.19", "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, @@ -597,7 +543,6 @@ "url": "tags/point-of-interest-type", "tags": ["tags"], "path": "tags/point_of_interest_type", - "schema": "point_of_interest_type_tag", "minVersion": "1.19", "wiki": "https://minecraft.wiki/w/Tag#Java_Edition" }, @@ -606,7 +551,6 @@ "url": "assets/blockstate", "path": "blockstates", "tags": ["assets"], - "schema": "block_definition", "wiki": "https://minecraft.wiki/w/Tutorials/Models#Block_states" }, { @@ -614,7 +558,6 @@ "url": "assets/model", "path": "models", "tags": ["assets"], - "schema": "model", "wiki": "https://minecraft.wiki/w/Tutorials/Models" }, { @@ -622,7 +565,6 @@ "url": "assets/font", "path": "font", "tags": ["assets"], - "schema": "font", "minVersion": "1.16", "wiki": "https://minecraft.wiki/w/Resource_pack#Fonts" }, @@ -631,137 +573,136 @@ "url": "assets/atlas", "path": "atlases", "tags": ["assets"], - "schema": "atlas", "minVersion": "1.19.3", "wiki": "https://minecraft.wiki/w/Resource_pack#Atlases" }, { - "id": "immersive_weathering.block_growth", + "id": "immersive_weathering:block_growth", "url": "immersive-weathering/block-growth", "path": "block_growths", "tags": ["partners"], - "schema": "immersive_weathering:block_growth", + "dependency": "immersive_weathering", "minVersion": "1.18.2" }, { - "id": "lithostitched.worldgen_modifier", + "id": "lithostitched:worldgen_modifier", "url": "lithostitched/worldgen-modifier", "path": "lithostitched/worldgen_modifier", "tags": ["partners"], - "schema": "lithostitched:worldgen_modifier", + "dependency": "lithostitched", "minVersion": "1.20.2", "wiki": "https://github.com/Apollounknowndev/lithostitched/wiki/Worldgen-Modifiers" }, { - "id": "neoforge.biome_modifier", + "id": "neoforge:biome_modifier", "url": "neoforge/biome-modifier", "path": "neoforge/biome_modifier", "tags": ["partners"], - "schema": "neoforge:biome_modifier", + "dependency": "neoforge", "minVersion": "1.20.2", "wiki": "https://docs.neoforged.net/docs/worldgen/biomemodifier" }, { - "id": "neoforge.data_map_compostables", + "id": "neoforge:data_map_compostables", "url": "neoforge/data-map-compostables", "path": "neoforge/data_map_compostables", "tags": ["partners"], - "schema": "neoforge:data_map_compostables", + "dependency": "neoforge", "minVersion": "1.20.4", "wiki": "https://docs.neoforged.net/docs/resources/server/datamaps/builtin#neoforgecompostables" }, { - "id": "neoforge.data_map_furnace_fuels", + "id": "neoforge:data_map_furnace_fuels", "url": "neoforge/data-map-furnace-fuels", "path": "neoforge/data_map_furnace_fuels", "tags": ["partners"], - "schema": "neoforge:data_map_furnace_fuels", + "dependency": "neoforge", "minVersion": "1.20.4", "wiki": "https://docs.neoforged.net/docs/resources/server/datamaps/builtin#neoforgefurnace_fuels" }, { - "id": "neoforge.data_map_monster_room_mobs", + "id": "neoforge:data_map_monster_room_mobs", "url": "neoforge/data-map-monster-room-mobs", "path": "neoforge/data_map_monster_room_mobs", "tags": ["partners"], - "schema": "neoforge:data_map_monster_room_mobs", + "dependency": "neoforge", "minVersion": "1.20.6", "wiki": "https://docs.neoforged.net/docs/resources/server/datamaps/builtin#neoforgemonster_room_mobs" }, { - "id": "neoforge.data_map_oxidizables", + "id": "neoforge:data_map_oxidizables", "url": "neoforge/data-map-oxidizables", "path": "neoforge/data_map_oxidizables", "tags": ["partners"], - "schema": "neoforge:data_map_oxidizables", + "dependency": "neoforge", "minVersion": "1.21", "wiki": "https://docs.neoforged.net/docs/resources/server/datamaps/builtin#neoforgeoxidizables" }, { - "id": "neoforge.data_map_parrot_imitations", + "id": "neoforge:data_map_parrot_imitations", "url": "neoforge/data-map-parrot-imitations", "path": "neoforge/data_map_parrot_imitations", "tags": ["partners"], - "schema": "neoforge:data_map_parrot_imitations", + "dependency": "neoforge", "minVersion": "1.20.4", "wiki": "https://docs.neoforged.net/docs/resources/server/datamaps/builtin#neoforgeparrot_imitations" }, { - "id": "neoforge.data_map_raid_hero_gifts", + "id": "neoforge:data_map_raid_hero_gifts", "url": "neoforge/data-map-raid-hero-gifts", "path": "neoforge/data_map_raid_hero_gifts", "tags": ["partners"], - "schema": "neoforge:data_map_raid_hero_gifts", + "dependency": "neoforge", "minVersion": "1.20.4", "wiki": "https://docs.neoforged.net/docs/resources/server/datamaps/builtin#neoforgeraid_hero_gifts" }, { - "id": "neoforge.data_map_vibration_frequencies", + "id": "neoforge:data_map_vibration_frequencies", "url": "neoforge/data-map-vibration-frequencies", "path": "neoforge/data_map_vibration_frequencies", "tags": ["partners"], - "schema": "neoforge:data_map_vibration_frequencies", + "dependency": "neoforge", "minVersion": "1.20.4", "wiki": "https://docs.neoforged.net/docs/resources/server/datamaps/builtin#neoforgevibration_frequencies" }, { - "id": "neoforge.data_map_waxables", + "id": "neoforge:data_map_waxables", "url": "neoforge/data-map-waxables", "path": "neoforge/data_map_waxables", "tags": ["partners"], - "schema": "neoforge:data_map_waxables", + "dependency": "neoforge", "minVersion": "1.21", "wiki": "https://docs.neoforged.net/docs/resources/server/datamaps/builtin#neoforgewaxables" }, { - "id": "neoforge.structure_modifier", + "id": "neoforge:structure_modifier", "url": "neoforge/structure-modifier", "path": "neoforge/structure_modifier", "tags": ["partners"], - "schema": "neoforge:structure_modifier", + "dependency": "neoforge", "minVersion": "1.20.2", "wiki": "https://github.com/neoforged/NeoForge/blob/1.21.x/src/main/java/net/neoforged/neoforge/common/world/StructureModifiers.java" }, { - "id": "obsidian.item", + "id": "obsidian:item", "url": "obsidian/item", "path": "obsidian_item", "tags": ["partners"], - "schema": "obsidian:item" + "dependency": "obsidian" }, { - "id": "obsidian.block", + "id": "obsidian:block", "url": "obsidian/block", "path": "obsidian_block", "tags": ["partners"], - "schema": "obsidian:block" + "dependency": "obsidian" }, { - "id": "ohthetreesyoullgrow.configured_feature", + "id": "ohthetreesyoullgrow:configured_feature", "url": "ohthetreesyoullgrow/feature", - "path": "configured_feature", + "path": "ohthetreesyoullgrow/configured_feature", "tags": ["partners"], - "schema": "ohthetreesyoullgrow:configured_feature", + "dependency": "ohthetreesyoullgrow", "minVersion": "1.20", "wiki": "https://github.com/CorgiTaco/Oh-The-Trees-Youll-Grow/wiki/Generating-Your-Tree-With-Data-Packs!" } diff --git a/src/locales/en.json b/src/locales/en.json index 6021ea6a..6085cd25 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -88,7 +88,7 @@ "generator.not_found": "Cannot find generator \"%0%\"", "generator.obsidian.block": "Obsidian Block", "generator.obsidian.item": "Obsidian Item", - "generator.ohthetreesyoullgrow.configured_feature": "OTTYG Feature", + "generator.ohthetreesyoullgrow:configured_feature": "OTTYG Feature", "generator.pack_mcmeta": "Pack.mcmeta", "generator.painting_variant": "Painting Variant", "generator.predicate": "Predicate",