============================================================
Hxwi1Structures - Guia de uso
============================================================

Este mod gera estruturas definidas por configuração JSON
e arquivos NBT. Nenhuma estrutura é embutida.

============================================================
Localização dos arquivos
============================================================

  Config:   .minecraft/config/hxwi1structures/structure_rules.json
  Ajustes:  .minecraft/config/hxwi1structures/mod_settings.json
  NBT:      .minecraft/config/hxwi1structures/structures/
  Guia:     .minecraft/config/hxwi1structures/readme.txt

Na primeira execução, são criados automaticamente:
  - mod_settings.json
  - structure_rules.json (3 regras de exemplo)
  - structures/example.nbt (casa de tijolos de pedra)
  - structures/dock_example.nbt (píer de madeira)
  - structures/forest_cabin.nbt (cabana de toras)
  - readme.txt (este arquivo)

O idioma do readme acompanha o idioma do jogo
(detectado pelo options.txt).

============================================================
Campos da regra
============================================================

biomes (obrigatório)
  Array de IDs de bioma. Compatível com biomas vanilla e mod.
  Exemplo: "minecraft:plains", "terralith:highlands"

dimensions (opcional, padrão: todas)
  Array de IDs de dimensão.
  Vanilla: "minecraft:overworld", "minecraft:the_nether",
           "minecraft:the_end"

nbt_file (obrigatório)
  Caminho relativo a config/hxwi1structures/ do arquivo .nbt.

chance (obrigatório)
  Decimal 0.0–1.0. Probabilidade por chunk.

min_y / max_y (obrigatório)
  Faixa de altura de geração (coordenada Y).
  Usado apenas quando snap_to_surface é false.

snap_to_surface (opcional, padrão: false)
  Posiciona a estrutura na superfície do terreno.

allowed_rotations (opcional, padrão: [0,90,180,270])
  Ângulos de rotação permitidos. Apenas 0,90,180,270.
  Valores inválidos são tratados como 0°.

max_conflict_ratio (opcional, padrão: 0.2)
  Tolerância de conflito ao posicionar.
  0.0 = sem conflitos, 1.0 = forçar posicionamento.

place_on_water (opcional, padrão: false)
  Permite gerar sobre a água.

dock_mode (opcional, padrão: false)
  Detecta borda terra-água e orienta automaticamente.
  Ideal para píeres.

y_offset (opcional, padrão: 0)
  Deslocamento vertical. Negativo = afundar.

underwater_mode (opcional, padrão: false)
  Gera apenas debaixo d'água.

clear_trees (opcional, padrão: false)
  Remove troncos e folhas na área antes de posicionar.

loot_table (opcional, padrão: vazio)
  Tabela de saque para baús e contêineres.
  Ex: "minecraft:chests/simple_dungeon"

============================================================
Dicas
============================================================

- Construções na floresta:
    "clear_trees": true
- Píeres (auto-orientação para água):
    "dock_mode": true, "place_on_water": true
- Barcos (parcialmente submersos):
    "place_on_water": true, "y_offset": -1
- Ruínas subaquáticas:
    "underwater_mode": true
- Masmorras subterrâneas:
    "snap_to_surface": false, "max_conflict_ratio": 1.0

============================================================
Depuração
============================================================

Ative "debug_logging": true no mod_settings.json
e verifique a saída [hxwi1structures] no registro.

============================================================
Criar arquivos NBT
============================================================

No modo Criativo com um bloco de estrutura:
  1. Coloque um bloco de estrutura
  2. Construa dentro dos limites
  3. Clique em "SAVE"
  4. Copie o .nbt de .minecraft/saves/<mundo>/generated/
     <namespace>/structures/ para config/hxwi1structures/structures/

Subdiretórios aceitos:
  structures/overworld/houses/cottage.nbt

============================================================
Fluxo de geração
============================================================

1. Carregamento do chunk: verificação grid_interval
2. Enfileiramento imediato (não bloqueante)
3. Processamento diferido (máx. 2 por tick)
4. Cada chunk processado uma única vez (persistência SavedData)
5. Regras em sequência, primeira bem-sucedida = parada
6. Por regra: dimensão→XZ→bioma→chance→Y→rotação
   →desmate→colisão→limites→colocação→saque

============================================================
mod_settings.json
============================================================

{
  "grid_interval": 2,
  "debug_logging": false
}

grid_interval (padrão: 2)
  Densidade de amostragem: 1=100%, 2=~25%, 3=~11%, 4=~6%

debug_logging (padrão: false)
  Ativar/desativar registros DEBUG
