Criar Geradores
Geradores
Os geradores são a parte mais poderosa do sistema de configuração do BetterStructures. Por padrão, existem 29 geradores que gerenciam coletivamente as construções atualmente distribuídas pelo BetterStructures e, embora você possa criar seus próprios geradores, também pode usar os existentes como atalho.
Os geradores dizem ao plugin exatamente onde as coisas devem aparecer e definem as tabelas de saque. Os geradores padrão também são nomeados de maneiras que devem tornar muito fácil adivinhar o que fazem.
Opções de configuração do gerador
| Chave | Padrão | Obrigatório | Descrição |
|---|---|---|---|
isEnabled | true | ❌ | Se o gerador está habilitado. Defini-lo como false também impede que todo schematic que aponta para este gerador seja registrado, portanto é a forma mais rápida de desligar um conjunto inteiro de estruturas. |
structureType | - | ✅ | Onde as estruturas aparecem (ver tabela abaixo) |
lowestYLevel | -59 | ❌ | Nível Y mínimo para aparição |
highestYLevel | 320 | ❌ | Nível Y máximo para aparição |
validWorlds | Todos permitidos | ❌ | Lista de mundos onde estruturas podem aparecer |
validWorldEnvironments | Todos permitidos | ❌ | NORMAL, NETHER, THE_END, CUSTOM |
validBiomesV2 | Todos os biomas | ❌ | Lista de biomas válidos (formato namespace:key) |
treasureFilename | - | ❌ | Arquivo de tesouro para saque de baús |
generateLootInBarrels | true | ❌ | Se os barris encontrados nos schematics deste gerador devem ser preenchidos com saque |
barrelTreasureFilename | treasure_barrel_food.yml | ❌ | Arquivo de tesouro usado para preencher barris para este gerador |
structureType
Define que tipo de estrutura é a construção. Você pode especificar múltiplos tipos de estrutura para um único gerador!
| Tipo | Overworld / Personalizado | Nether | End | Descrição |
|---|---|---|---|---|
SURFACE | Superfície | Pontos similares à superfície | Superfície | Aparece na superfície do mundo |
SKY | 80-120 blocos acima do bloco mais alto | Bolsa de ar encontrada entre Y 45 e Y 100 | 80-120 blocos acima do bloco mais alto | Aparece no céu (configurável em config.yml) |
UNDERGROUND_SHALLOW | Y 0-50 | Y 60-120 | Y 0-80 | Estruturas subterrâneas rasas |
UNDERGROUND_DEEP | Y -53 a 0 | Y 5-60 | Y 0-80 | Estruturas subterrâneas profundas |
LIQUID_SURFACE | Água (oceanos) | Oceano de lava em Y 31 | Nenhuma verificação de líquido é aplicada | Aparece em superfícies líquidas |
DUNGEON | ✅ | ✅ | ✅ | Usado para colocação de masmorras modulares |
As faixas de céu são deslocamentos aplicados acima do bloco mais alto do mundo naquela coluna, não níveis Y absolutos.
Exemplo de múltiplos tipos de estrutura
structureType:
- SURFACE
- UNDERGROUND_SHALLOW
Isso permite que o mesmo gerador gere estruturas em múltiplas localizações, como tanto na superfície quanto em áreas subterrâneas rasas.
Nota: Existem duas configurações subterrâneas porque o Minecraft tem muito espaço subterrâneo. Ter ambas garante distribuição uniforme entre as profundidades e evita que os jogadores percam estruturas.
Faixas de nível Y por dimensão
Faixas de altitude padrão por dimensão (configuráveis em config.yml):
| Dimensão | Faixa padrão | Configurações |
|---|---|---|
| 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 |
| Céu (Overworld/Personalizado) | 80 a 120 blocos acima do bloco mais alto | normalCustomAirBuildingMinAltitude / normalCustomAirBuildingMaxAltitude |
| Céu (End) | 80 a 120 blocos acima do bloco mais alto | endAirBuildMinAltitude / endAirBuildMaxAltitude |
Esses padrões podem ser substituídos por gerador usando lowestYLevel e highestYLevel.
As duas linhas de céu são deslocamentos somados ao bloco mais alto da coluna, não níveis Y absolutos. Tanto os deslocamentos de céu do Overworld/Personalizado como os do End são sorteados aleatoriamente entre o seu mínimo e o seu máximo em cada colocação.
O Nether ignora esses deslocamentos por completo: em vez de construir acima do bloco mais alto, o BetterStructures varre a coluna entre o Y 45 e o Y 100 à procura de uma bolsa de ar com pelo menos 20 blocos de altura e coloca a estrutura dentro dela. Se não existir essa bolsa, nada aparece naquele chunk.
Suporte a biomas personalizados
O BetterStructures suporta automaticamente biomas personalizados de geradores de mundo como Terralith, Iris, Terra e TerraformGenerator.
Quando você especifica um bioma vanilla em validBiomesV2, o plugin inclui automaticamente biomas personalizados compatíveis:
validBiomesV2:
- minecraft:plains
- minecraft:forest
Isso gera estruturas nos biomas vanilla E em todos os biomas personalizados mapeados para esses tipos (ex.: terralith:blooming_plains).
Onde os mapeamentos realmente ficam
A tabela de mapeamento de bioma personalizado para bioma vanilla não fica armazenada no BetterStructures. É uma única tabela codificada dentro do MagmaCore, a biblioteca compartilhada integrada ao BetterStructures, e é compartilhada com os outros plugins do MagmaGuy que precisam dela.
Isso tem duas consequências práticas:
- As longas listas de biomas que você vê nos arquivos
generator_surface_*.ymldistribuídos são saída gerada, não a fonte da verdade. No carregamento, o BetterStructures lêvalidBiomesV2, procura cada entradaminecraft:na tabela do MagmaCore, acrescenta todos os biomas personalizados mapeados para ela e então escreve a lista expandida de volta diretamente no arquivo do gerador. Assim, um gerador que você escreveu com duas linhas pode voltar com uma centena. Editar essa lista expandida afeta apenas aquele gerador, e qualquer entradaminecraft:que você deixar no lugar será reexpandida no próximo carregamento. - Adicionar suporte a um novo bioma personalizado para todos é uma mudança no MagmaCore, não uma mudança de configuração. Se um gerador de mundo trouxer um bioma que o BetterStructures não reconhece, adicioná-lo ao
validBiomesV2de um gerador é uma solução local para aquele gerador. Fazer com que ele seja mapeado corretamente significa adicioná-lo à tabela de mapeamento do MagmaCore, o que é uma mudança de código — abra um pedido em vez de tentar resolver isso nos arquivos yml.
Você ainda pode nomear um bioma personalizado diretamente em validBiomesV2 (qualquer coisa que já contenha : é usada como está e não é expandida ainda mais), o que é a escolha certa para um gerador pontual que só deve aparecer em um bioma personalizado específico.
Biomas que o MagmaCore mapeia para nothing são deliberadamente excluídos — são biomas personalizados considerados inadequados para estruturas, e nenhum bioma vanilla os trará.
treasureFilename
Define o arquivo de tesouro para saque de baús. Isso se aplica a todas as construções que usam este gerador, a menos que seja substituído na configuração do schematic.
generateLootInBarrels e barrelTreasureFilename
O BetterStructures agora trata os barris como um segundo recipiente de saque, ao lado dos baús.
generateLootInBarrels(padrãotrue) alterna se os barris dentro das estruturas colocadas por este gerador são preenchidos. Defina comofalsepara deixar os barris intocados.barrelTreasureFilename(padrãotreasure_barrel_food.yml) seleciona qual arquivo de tesouro é sorteado ao preencher esses barris. O padrão traz uma tabela de saque leve focada em comida, mas você pode apontá-lo para qualquer arquivo de tesouro.
Ambas as opções podem ser substituídas por schematic com o campo barrelTreasureFilename correspondente na configuração do schematic.