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
| Clave | Predeterminado | Obligatorio | Descripción |
|---|---|---|---|
isEnabled | true | ❌ | 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 |
highestYLevel | 320 | ❌ | Nivel Y máximo para la aparición |
validWorlds | Todos permitidos | ❌ | Lista de mundos donde las estructuras pueden aparecer |
validWorldEnvironments | Todos permitidos | ❌ | NORMAL, NETHER, THE_END, CUSTOM |
validBiomesV2 | Depende 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 |
generateLootInBarrels | true | ❌ | Si los barriles encontrados en los schematics de este generador deben llenarse con botín |
barrelTreasureFilename | treasure_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!
| Tipo | Overworld / Personalizado | Nether | End | Descripción |
|---|---|---|---|---|
SURFACE | Superficie | Puntos similares a superficie | Superficie | Aparece en la superficie del mundo |
SKY | De 80 a 120 bloques por encima del bloque más alto | Bolsa de aire encontrada entre la Y 45 y la Y 100 | De 80 a 120 bloques por encima del bloque más alto | Aparece en el cielo (configurable en config.yml) |
UNDERGROUND_SHALLOW | Y inicial 0-49 | Busca una región sólida en Y 60-119 | Busca una región sólida en Y 0-79 | Estructuras subterráneas poco profundas |
UNDERGROUND_DEEP | Y inicial -53 a -1 | Busca una región sólida descendiendo por Y 60-6 | Empieza en Y 0 antes de ajustar desplazamientos y límites | Estructuras subterráneas profundas |
LIQUID_SURFACE | Líquido en el bloque más alto | Lava en Y 31 con aire encima | No hay comprobación inicial de líquido; se sigue evaluando el terreno | Aparece 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ón | Rango predeterminado | Configuraciones |
|---|---|---|
| Overworld/Personalizado | Y=-60 a Y=320 | lowestYNormalCustom / highestYNormalCustom |
| Nether | Y=4 a Y=120 | lowestYNether / highestYNether |
| End | Y=0 a Y=320 | lowestYEnd / highestYEnd |
| Cielo (Overworld/Personalizado) | De 80 a 120 bloques por encima del bloque más alto | normalCustomAirBuildingMinAltitude / normalCustomAirBuildingMaxAltitude |
| Cielo (End) | De 80 a 120 bloques por encima del bloque más alto | endAirBuildMinAltitude / 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:
- Las largas listas de biomas que ves en los archivos
generator_surface_*.ymldistribuidos son salida generada, no la fuente de verdad. Al cargar, BetterStructures leevalidBiomesV2, busca cada entradaminecraft: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 entradaminecraft:que dejes ahí se volverá a expandir en la siguiente carga. - 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
validBiomesV2de 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(predeterminadotrue) alterna si los barriles dentro de las estructuras colocadas por este generador se llenan. Establécelo enfalsepara dejar los barriles intactos.barrelTreasureFilename(predeterminadotreasure_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.