Saltar al contenido principal

Crear generadores

Generadores​

Los generadores son la parte más poderosa del sistema de configuración de BetterStructures. Por defecto hay 29 generadores que gestionan colectivamente las construcciones distribuidas actualmente por BetterStructures y, aunque puedes crear tus propios generadores, también puedes usar los existentes como atajo.

Los generadores le dicen al plugin dónde exactamente deben aparecer las cosas y definen las tablas de botín. Los generadores predeterminados también están nombrados de manera que debería ser muy fácil adivinar lo que hacen.

Opciones de configuración del generador​

ClavePredeterminadoObligatorioDescripción
isEnabledtrue❌Si el generador está habilitado. Ponerlo en false también impide que se registre cualquier schematic que apunte a este generador, así que es la forma más rápida de desactivar todo un conjunto de estructuras.
structureType-✅Dónde aparecen las estructuras (ver tabla abajo)
lowestYLevel-59❌Nivel Y mínimo para la aparición
highestYLevel320❌Nivel Y máximo para la aparición
validWorldsTodos permitidos❌Lista de mundos donde las estructuras pueden aparecer
validWorldEnvironmentsTodos permitidos❌NORMAL, NETHER, THE_END, CUSTOM
validBiomesV2Depende del generador predefinido❌Lista de biomas válidos (formato namespace:key); una lista efectiva vacía permite todos los biomas
treasureFilename-❌Archivo de tesoro para el botín de cofres
generateLootInBarrelstrue❌Si los barriles encontrados en los schematics de este generador deben llenarse con botín
barrelTreasureFilenametreasure_barrel_food.yml❌Archivo de tesoro usado para llenar los barriles de este generador

structureType​

Establece qué tipo de estructura es la construcción. ¡Puedes especificar múltiples tipos de estructura para un solo generador!

TipoOverworld / PersonalizadoNetherEndDescripción
SURFACESuperficiePuntos similares a superficieSuperficieAparece en la superficie del mundo
SKYDe 80 a 120 bloques por encima del bloque más altoBolsa de aire encontrada entre la Y 45 y la Y 100De 80 a 120 bloques por encima del bloque más altoAparece en el cielo (configurable en config.yml)
UNDERGROUND_SHALLOWY inicial 0-49Busca una región sólida en Y 60-119Busca una región sólida en Y 0-79Estructuras subterráneas poco profundas
UNDERGROUND_DEEPY inicial -53 a -1Busca una región sólida descendiendo por Y 60-6Empieza en Y 0 antes de ajustar desplazamientos y límitesEstructuras subterráneas profundas
LIQUID_SURFACELíquido en el bloque más altoLava en Y 31 con aire encimaNo hay comprobación inicial de líquido; se sigue evaluando el terrenoAparece en superficies líquidas
DUNGEON✅✅✅Reservado para el sistema independiente de generadores de módulos; este tipo por sí solo no convierte un schematic en una mazmorra modular

Los rangos del cielo son desplazamientos sobre el bloque más alto de la columna, no niveles Y absolutos. Los rangos subterráneos describen la selección o búsqueda inicial, antes de ajustar el desplazamiento del schematic y los límites de la dimensión. La búsqueda de cielo en el Nether recorre Y 45-99.

Ejemplo de múltiples tipos de estructura
structureType:
- SURFACE
- UNDERGROUND_SHALLOW

Esto permite al mismo generador generar estructuras en múltiples ubicaciones, como tanto en la superficie como en áreas subterráneas poco profundas.

Nota: Hay dos configuraciones subterráneas porque Minecraft tiene mucho espacio subterráneo. Tener ambas asegura una distribución uniforme a través de las profundidades y evita que los jugadores se pierdan estructuras.


Rangos de nivel Y por dimensión​

Rangos de altitud predeterminados por dimensión (configurables en config.yml):

DimensiónRango predeterminadoConfiguraciones
Overworld/PersonalizadoY=-60 a Y=320lowestYNormalCustom / highestYNormalCustom
NetherY=4 a Y=120lowestYNether / highestYNether
EndY=0 a Y=320lowestYEnd / highestYEnd
Cielo (Overworld/Personalizado)De 80 a 120 bloques por encima del bloque más altonormalCustomAirBuildingMinAltitude / normalCustomAirBuildingMaxAltitude
Cielo (End)De 80 a 120 bloques por encima del bloque más altoendAirBuildMinAltitude / endAirBuildMaxAltitude

lowestYLevel y highestYLevel del generador filtran las posiciones candidatas de anclaje. No sustituyen los límites subterráneos generales de la dimensión ni redefinen el rango de desplazamientos del cielo.

Las dos filas de cielo son desplazamientos que se suman al bloque más alto de la columna, no niveles Y absolutos. Tanto los desplazamientos del cielo del Overworld/Personalizado como los del End se sortean al azar entre su mínimo y su máximo en cada colocación.

El Nether ignora por completo esos desplazamientos: en lugar de construir por encima del bloque más alto, BetterStructures escanea la columna entre la Y 45 y la Y 100 buscando una bolsa de aire de al menos 20 bloques de alto y coloca la estructura dentro de ella. Si no existe tal bolsa, no aparece nada en ese chunk.


Compatibilidad con biomas personalizados​

BetterStructures soporta automáticamente biomas personalizados de generadores de mundo como Terralith, Iris, Terra y TerraformGenerator.

Cuando especificas un bioma vanilla en validBiomesV2, el plugin incluye automáticamente biomas personalizados compatibles:

validBiomesV2:
- minecraft:plains
- minecraft:forest

Esto permite estructuras en los biomas vanilla Y en los biomas personalizados asociados a esos tipos (por ejemplo, terralith:brushland se asocia a plains), sujeto a las demás comprobaciones de colocación.

Una lista validBiomesV2 vacía o ausente conserva la selección de biomas incorporada en un generador predefinido; no elimina sus restricciones. Un generador personalizado nuevo sin biomas incorporados tiene una lista efectiva vacía y permite todos los biomas. Usa una lista explícita no vacía para sustituir la selección de un generador predefinido. Se aceptan nombres de la enumeración vanilla sin espacio de nombres, pero namespace:key es más claro; las entradas con espacio de nombres se convierten a minúsculas sin comprobar que el bioma exista.

Dónde se guardan las correspondencias​

La tabla de correspondencia entre biomas personalizados y biomas vanilla no se almacena en BetterStructures. Es una única tabla fija dentro de MagmaCore, la biblioteca compartida incluida en BetterStructures, y se comparte con los demás plugins de MagmaGuy que la necesitan.

Eso tiene dos consecuencias prácticas:

  1. Las largas listas de biomas que ves en los archivos generator_surface_*.yml distribuidos son salida generada, no la fuente de verdad. Al cargar, BetterStructures lee validBiomesV2, busca cada entrada minecraft: en la tabla de MagmaCore, añade los biomas personalizados que se correspondan con ella y después vuelve a escribir la lista expandida directamente en el archivo del generador. Así que un generador que escribiste con dos líneas puede volver con cien. Editar esa lista expandida solo afecta a ese generador concreto, y cualquier entrada minecraft: que dejes ahí se volverá a expandir en la siguiente carga.
  2. Añadir soporte para un nuevo bioma personalizado para todo el mundo es un cambio en MagmaCore, no un cambio de configuración. Si un generador de mundos incluye un bioma que BetterStructures no reconoce, añadirlo al validBiomesV2 de un generador es una solución local para ese único generador. Conseguir que se mapee correctamente significa que se añada a la tabla de correspondencias de MagmaCore, lo cual es un cambio de código: abre una petición en lugar de intentar resolverlo en los archivos yml.

Aun así puedes nombrar directamente un bioma personalizado en validBiomesV2 (un espacio de nombres distinto de minecraft: se conserva directamente y no se expande más), que es lo apropiado para un generador que solo deba aparecer en un bioma personalizado concreto.

Los biomas que MagmaCore mapea a nothing se excluyen deliberadamente: son biomas personalizados considerados inadecuados para estructuras, y ningún bioma vanilla los incorporará.


treasureFilename​

Establece el archivo de tesoro para el botín de cofres. Esto se aplica a todas las construcciones que usan este generador, a menos que se anule en la configuración del schematic.

El generador debe resolver una configuración de tesoro válida para cofres antes de rellenarlos. Una sustitución del schematic no compensa un archivo de tesoro ausente o inválido en el generador. Las sustituciones inválidas generan una advertencia y usan la tabla del generador.


generateLootInBarrels y barrelTreasureFilename​

BetterStructures ahora trata los barriles como un segundo contenedor de botín junto a los cofres.

  • generateLootInBarrels (predeterminado true) alterna si los barriles dentro de las estructuras colocadas por este generador se llenan. Establécelo en false para dejar los barriles intactos.
  • barrelTreasureFilename (predeterminado treasure_barrel_food.yml) selecciona qué archivo de tesoro se sortea al llenar esos barriles. El predeterminado incluye una tabla de botín ligera centrada en comida, pero puedes apuntarlo a cualquier archivo de tesoro.

El barrelTreasureFilename del schematic puede sustituir la tabla de botín. El generador debe tener tanto generateLootInBarrels: true como una configuración válida de tesoro para barriles; una sustitución del schematic no puede eludir ninguno de esos requisitos. Las sustituciones inválidas generan una advertencia y usan la tabla del generador.