Croparia IF Docs

|

General

Section
Autores de modpacks
6 TOP-LEVEL ITEMS
    Autores de modpacks
    Sistema de generación de datos en tiempo de ejecución

      Crear un generador de datos

    Asistente de recetas

Crear 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:

  • toml
  • cdg
  • json

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 path una vez para cada entrada
  • rellenar template con la entrada actual
  • generar varios archivos independientes

Campos principales

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

  • 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 = false
  • whitelist
    • propósito: generar solo para entradas concretas en lugar de recorrer todo el registry
    • usos habituales: depuración, sobrescrituras parciales
    • ejemplo:
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.

In This Page
Crear un generador de datos
NO EXTRACTED HEADINGS