Re-add ohthetreesyoullgrow partner

This commit is contained in:
Misode
2024-10-31 06:41:30 +01:00
parent cf44c3236f
commit 68eb077c17
10 changed files with 104 additions and 106 deletions

View File

@@ -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<int>,
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],
}

View File

@@ -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,

View File

@@ -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<JsonNode | undefined> = {
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: {

View File

@@ -474,7 +474,7 @@ function StructBody({ type: outerType, node, makeEdit, ctx }: Props<SimplifiedSt
staticChilds.push(pair)
}
const child = pair?.value
const childType = simplifyType(field.type, ctx, pair)
const childType = simplifyType(field.type, ctx, { key: pair?.key, parent: node })
const makeFieldEdit: MakeEdit = (edit) => {
if (pair) {
makeEdit(() => {
@@ -562,7 +562,7 @@ function StructBody({ type: outerType, node, makeEdit, ctx }: Props<SimplifiedSt
return
}
makeEdit((range) => {
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<JsonStringNode, JsonNode> = {
type: 'pair',
range: keyNode.range,
@@ -600,7 +600,7 @@ function StructBody({ type: outerType, node, makeEdit, ctx }: Props<SimplifiedSt
if (!field) {
return <></>
}
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))

View File

@@ -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)

View File

@@ -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_]+',

View File

@@ -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)!

View File

@@ -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: {

View File

@@ -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!"
}

View File

@@ -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",