Autores de modpacks
6 TOP-LEVEL ITEMSCrear un generador de datos
Esta página responde a una sola pregunta: cómo escribir un archivo de generador de datos que funcione. Para la visión general, consulta el Sistema de generación de datos en tiempo de ejecución. Para la forma de escribir los valores de los campos, consulta Analizadores de placeholders.
Dónde colocarlo
Los archivos de generador pertenecen al directorio generator/ del handler correspondiente, no directamente en assets/ o data/:
- Datapack:
[directorio del juego]/croparia/datapack/generator/ - Resource pack:
[directorio del juego]/croparia/resourcepack/generator/
Los productos generados se escribirán después en:
- Datapack:
[directorio del juego]/croparia/datapack/data/ - Resource pack:
[directorio del juego]/croparia/resourcepack/assets/
Formatos admitidos:
tomlcdgjson
toml es la opción recomendada por defecto.
Ejemplo mínimo
registry = "croparia:crops"
path = "example/recipes/${id.path}.json"
template = """
{
"type": "minecraft:crafting_shapeless",
"ingredients": [
{ "item": "${fruit}" }
],
"result": {
"id": "${seed}",
"count": 1
}
}
"""Esto significa:
- iterar sobre
croparia:crops - calcular
pathuna vez para cada entrada - rellenar
templatecon la entrada actual - generar varios archivos independientes
Campos principales
registry: qué conjunto de entradas de generación debe recorrerse- valores habituales:
croparia:cropscroparia:melonscroparia:elements
- valores habituales:
path: ruta relativa de salida; este campo también es una plantilla- ejemplo:
path = "${id.namespace}/models/item/${seed.path}.json"template: contenido final que se escribirá en el archivo; también es una cadena plantilla- ejemplo:
template = """
{
"parent": "croparia:item/template_seed"
}
"""-
type: tipo de generador- valores disponibles:
croparia:generator(por defecto)croparia:aggregatedcroparia:lang
- valores disponibles:
-
startup: si este generador debe ejecutarse antes de que el servidor termine de iniciarse por completo -
enabled: si el generador está habilitado; resulta útil para desactivar temporalmente un archivo sin borrarlo- ejemplo:
enabled = falsewhitelist- propósito: generar solo para entradas concretas en lugar de recorrer todo el
registry - usos habituales: depuración, sobrescrituras parciales
- ejemplo:
- propósito: generar solo para entradas concretas en lugar de recorrer todo el
whitelist = ["croparia:coal", "croparia:iron"]Tipos de generador
Generador estándar croparia:generator
Es el tipo por defecto. Una entrada suele producir un archivo; si varias entradas resuelven la misma ruta de destino, la última escritura sobrescribe a la anterior.
Encaja bien para:
- recetas
- modelos
- tablas de botín
- blockstates
registry = "croparia:crops"
startup = true
path = "${id.namespace}/models/item/${seed.path}.json"
template = """
{
"parent": "croparia:item/template_seed"
}
"""Generador agregado croparia:aggregated
Cada entrada produce primero un fragmento de content, y después todos los fragmentos se combinan dentro de un template común. Encaja bien con archivos como las tags, donde muchas entradas deben unirse en un solo resultado.
Campo adicional:
content
registry = "croparia:crops"
type = "croparia:aggregated"
startup = true
path = "croparia/tags/item/seeds/crops.json"
content = ' "${seed}"'
template = """
{
"replace": false,
"values": [
${content}
]
}
"""Generador de idioma croparia:lang
Este tipo está pensado para entradas traducibles. Divide la salida por idioma e inyecta el placeholder _lang para usarlo dentro de las plantillas.
Encaja bien para:
- archivos de idioma
registry = "croparia:crops"
type = "croparia:lang"
startup = true
path = "${id.namespace}/lang/${lang}.json"
template = '"${translation_key}": "${translations.get(_lang)}"'Para los campos relacionados con idiomas, consulta Analizadores de placeholders.