Pular para o conteúdo principal

Custom Biome

Biomas personalizados com cores, neblina, céu e clima próprios; pinte-os ou mostre-os a um único jogador.

Gratuitasv0.9Mundo e construção
RequerTypeWriter0.9Quest extensionPacketEventsWorldEditopcionalPlaceholderAPIopcional

Visão geral​

O Custom Biome permite criar biomas próprios pelo painel web do TypeWriter: cores de grama, folhagem, água, céu e neblina, configurações de nuvens e sol, temperatura e precipitação. Um novo bioma parte de um bioma vanilla base, então spawns de mobs, features e outras propriedades são herdados, e você só sobrescreve o que quiser mudar.

Um bioma pode ser usado de duas maneiras. Você pode pintá-lo no mundo, por um raio em blocos, uma seleção do WorldEdit ou uma região capturada, e restaurar os biomas antigos depois a partir de um snapshot. Ou pode mostrá-lo apenas a um jogador ou a uma audience, com um overlay por jogador: o mundo não é alterado e ninguém mais vê a mudança. É assim que uma floresta corrompida pode aparecer só durante uma quest.

Recursos​

  • Definições de bioma — cores (grama, folhagem, folhagem seca, água, céu, neblina, neblina da água, nuvens, luz do céu, nascer/pôr do sol), distâncias de neblina e nuvens, configurações de sol, lua e estrelas, temperatura e precipitação.
  • Presets — compartilhe uma paleta entre vários biomas e sobrescreva apenas o que for diferente.
  • Registro em tempo real — os biomas são injetados no registro do servidor quando possível e gravados em um datapack gerado para sobreviverem às reinicializações.
  • Pintura do mundo — aplique um bioma ao redor de um jogador ou sobre uma região, com um snapshot opcional para desfazer.
  • Overlays por jogador — mostre um bioma a um jogador ou a uma audience, por meio de uma action, uma audience ou uma cinematic.
  • Eventos de entrada e saída — dispare entries quando um jogador entra ou sai de um bioma.
  • Descoberta — registre quais biomas cada jogador visitou e use isso em facts e quests.
  • Facts, variáveis e placeholders — leia o bioma atual, suas propriedades e a contagem de descobertas.
  • Comandos de operador — liste biomas, inspecione o bioma sob um jogador, pinte, atualize e capture uma região.
  • Pronto para Folia — as gravações são agendadas na região que contém cada chunk.

Instalação​

  1. Instale o PacketEvents. Os overlays e as atualizações de chunks são enviados com ele; sem ele, os overlays ficam desativados.
  2. Instale a extensão Quest do TypeWriter na aba Extensions do painel web (o objective a utiliza).
  3. Opcional: instale o WorldEdit ou o FastAsyncWorldEdit para pintar a seleção feita dentro do jogo.
  4. Opcional: instale o PlaceholderAPI para usar os placeholders abaixo.
  5. Coloque o JAR do Custom Biome em plugins/Typewriter/extensions/ e reinicie o servidor.

As definições de bioma são gravadas em um datapack chamado typewriter_custom_biomes na pasta datapacks do mundo.

observação

Os atributos visuais (distâncias de neblina, altura das nuvens, configurações de sol, lua e estrelas) são marcados no código-fonte como válidos para o Minecraft 1.21.11 e posteriores. Em versões mais antigas, apenas as cores e o clima se aplicam.

Primeiros passos​

Crie uma floresta roxa e mostre-a aos jogadores em uma etapa de quest:

  1. No painel web do TypeWriter, abra uma página de manifest e adicione uma entry Custom Biome Definition.
  2. Defina biomeId (minúsculas, com sublinhados, por exemplo corrupted_forest) e mantenha namespace como typewriter. Defina baseBiome como minecraft:forest.
  3. Preencha em hexadecimal as cores que quiser mudar, por exemplo grassColor #6a3d9a e foliageColor #4b2a73. Os campos vazios herdam do bioma base.
  4. Publique e execute /tw biome list no jogo para verificar se o bioma está ativo. Se aparecer como aguardando reinicialização, reinicie o servidor.
  5. Em uma página de manifest, adicione uma Biome Overlay Audience, escolha a definição em biome e coloque-a sob uma audience que corresponda à etapa da sua quest. O jogador vê o bioma enquanto estiver na audience, e o bioma real volta quando ele sai (restoreOnExit).
  6. Para limitá-lo a uma zona, defina cornerA e cornerB, ou fique no jogo com uma seleção do WorldEdit e execute /tw biome region <entry> para preencher os cantos.

Para alterar o próprio mundo, use Apply Biome ou Paint Biome Region em uma sequência de actions. Dê um snapshotId à pintura se quiser que Restore Biome a desfaça.

dica

Crie um Custom Biome Preset para uma família de biomas que compartilham o mesmo céu e neblina, e selecione-o em preset de cada definição. Os valores definidos na definição prevalecem sobre o preset, e o preset prevalece sobre o bioma base.

Como funciona​

Pintar grava o bioma nos dados do mundo, então afeta todos os jogadores e sobrevive a uma reinicialização. Um overlay é enviado apenas ao cliente do jogador: nada é salvo, e removê-lo devolve o bioma real. Quando vários overlays cobrem o mesmo chunk, é exibido o aplicado por último, e removê-lo revela o anterior.

Facts, variáveis e placeholders leem por padrão o bioma que o jogador vê (PLAYER_VIEW, overlays incluídos). Defina source como REAL_WORLD em facts e variáveis para ler o que o mundo realmente contém.

Configuração​

Os dados de execução ficam em plugins/Typewriter/custombiome/:

PastaConteúdo
discovery/Um arquivo JSON por jogador (<uuid>.json) listando os biomas que ele visitou.
snapshots/Biomas registrados pelo Paint Biome Region quando snapshotId é definido.

Comandos​

O comando raiz é /tw biome, que exige typewriter.biome. Cada subcomando exige também sua própria permissão.

ComandoDescrição
/tw biomeMostra a lista de comandos.
/tw biome listLista os biomas personalizados e indica se cada um está ativo, aguardando reinicialização ou não registrado.
/tw biome info [player]Mostra o bioma em que um jogador está: nome, ID, se é personalizado, temperatura, precipitação e bioma base.
/tw biome apply <biome> [radius]Pinta um bioma ao redor de você ou de um jogador alvo, dentro de um raio em blocos.
/tw biome refresh [radius]Reenvia os dados de bioma (raio de 1 a 16 chunks) dos chunks que esta extensão pintou perto do jogador.
/tw biome region <entry>Copia sua seleção do WorldEdit para cornerA e cornerB de uma entry de região; depois publique a página.

Textos editáveis​

Tudo o que os comandos /tw biome imprimem no jogo é um snippet do TypeWriter, então você pode reescrevê-lo, traduzi-lo ou mudar as cores sem recompilar nada. Abra plugins/Typewriter/snippets.yml, encontre a chave em content.custombiome, altere o valor e execute /tw reload. A extensão registra todos os seus snippets com o texto padrão ao iniciar, então eles aparecem no arquivo após a primeira inicialização.

Os textos são MiniMessage. Um {name} em um texto é substituído pelo valor indicado na tabela; um placeholder que você omite simplesmente não é exibido, e um que não existe permanece como escrito. Os placeholders do PlaceholderAPI (%...%) também são lidos quando o comando é executado por um jogador. Apenas o prefixo de resposta do Typewriter nas respostas curtas (Typewriter ») vem do engine e não faz parte desses snippets, e o log do console do servidor continua em inglês.

Snippet (em content.custombiome.)PadrãoPlaceholders
command.list.empty<yellow>No custom biomes registered.</yellow>nenhum
command.list.header<gradient:#00d4ff:#0099ff><b>Custom Biomes ({count})</b></gradient>, com uma linha em branco antes{count}
command.list.strategy<dark_gray>Strategy: {strategy}</dark_gray>, com uma linha em branco depois{strategy}
command.list.strategy_livelive registry injection (reflection)nenhum
command.list.strategy_unsupportedunsupported ({reason}){reason} (técnico, em inglês)
command.list.icon_live, icon_waiting, icon_missing• em verde, ⚠ em amarelo, ✖ em vermelhonenhum
command.list.status_live, status_waiting, status_missingtextos ao passar o cursor: Live in the registry, Written to the datapack — needs a restart, Not registerednenhum
command.list.entryuma linha por bioma, com texto ao passar o cursor e clique para copiar{icon}, {status}, {name}, {key}, {temperature}, {downfall}
command.list.temperature, command.list.downfall T:{value} e D:{value} em cinza{value}
command.info.headerBiome Info for {player}{player}
command.info.name, id, temperature, downfall, base_biomeName:, ID:, Temperature:, Downfall:, Base Biome:, seguido do valor{value}
command.info.custom_yes, custom_noCustom: Yes e Custom: Nonenhum
command.help.titleCustom Biome Commandsnenhum
command.help.list, info, apply, refresh, regionuma linha de ajuda por comandonenhum
command.region.no_selectionNo WorldEdit selection (or WorldEdit is not installed).nenhum
command.region.page_not_foundCould not find the page holding '{entry}'.{entry}
command.region.write_failedCould not write the region: {failures}{failures} (técnico, em inglês)
command.region.doneRegion of {entry} set to {min} → {max} in {world}.{entry}, {min}, {max} (como x, y, z), {world}
command.region.publish_hintPublish the page for it to take effect.nenhum
command.refresh.noneNo painted chunks near {player} to refresh.{player}
command.refresh.doneResent biome data for {chunks} painted chunk(s) to {player}.{chunks}, {player}
command.apply.unknownUnknown biome: {biome}{biome}
command.apply.unknown_hintUse /tw biome list to see available custom biomes.nenhum
command.apply.nothingNothing to paint at that location.nenhum
command.apply.donePainting {biome} over {cells} cell(s) across {chunks} chunk(s).{biome}, {cells}, {chunks}
placeholder.unknownunknownnenhum
observação

Os três snippets de texto ao passar o cursor de /tw biome list ficam dentro de um argumento MiniMessage entre aspas simples, então não podem conter uma aspa simples.

placeholder.unknown é o que %typewriter_temperature%, %typewriter_downfall% e a variável Biome Property retornam para um bioma que não é personalizado. Os true e false retornados por %typewriter_is_custom% continuam fixos, porque as condições os comparam.

Permissões​

PermissãoConcede
typewriter.biomeAcesso à árvore de comandos /tw biome.
typewriter.biome.list/tw biome list
typewriter.biome.info/tw biome info
typewriter.biome.apply/tw biome apply
typewriter.biome.refresh/tw biome refresh
typewriter.biome.region/tw biome region

Placeholders​

Placeholders do PlaceholderAPI, fornecidos pela expansão typewriter. Os placeholders de jogador leem o bioma que é mostrado ao jogador.

PlaceholderRetorna
%typewriter_current% ou %typewriter_id%Chave do bioma sob o jogador, por exemplo minecraft:plains.
%typewriter_name%Nome legível do bioma.
%typewriter_key%Apenas a parte da chave.
%typewriter_namespace%Apenas a parte do namespace.
%typewriter_is_custom%true ou false.
%typewriter_temperature%Temperatura de um bioma personalizado, unknown caso contrário.
%typewriter_downfall%Precipitação de um bioma personalizado, unknown caso contrário.
%typewriter_base%Bioma base de um bioma personalizado, ou a própria chave do bioma.
%typewriter_count%Número de biomas personalizados registrados.
%typewriter_list%Nomes de exibição dos biomas personalizados, separados por vírgulas.
%typewriter_discovered_count%Número de biomas que o jogador visitou.
%typewriter_discovered_list%Chaves dos biomas que o jogador visitou.
observação

A extensão responde aos nomes simples acima (%typewriter_current%, %typewriter_count% e assim por diante). O comentário em seu código-fonte menciona um prefixo custombiome_, mas o código só reconhece os nomes simples.

Entries​

20 entradas, geradas a partir do código-fonte da extensão.

Ações5
Eventos2
Objetivos1
Fatos4
Audiências2
Cinemáticas1
Variáveis3
Manifestos2

Solução de problemas​

/tw biome list mostra um sinal de aviso e "needs a restart". O servidor não conseguiu adicionar o bioma ao seu registro em tempo real, então ele só existe no datapack gerado. Reinicie o servidor. O motivo é gravado uma única vez no console.

Meu bioma não é encontrado por uma action ou um evento. Os identificadores de bioma têm o formato namespace:id, por exemplo typewriter:corrupted_forest. Consulte /tw biome list para ver a chave exata. Um identificador desconhecido é registrado como aviso (unknown biome '…') e a action não faz nada.

Um jogador nunca vê o overlay. Os overlays precisam do PacketEvents: caso contrário, o console mostra PacketEvents unavailable: per-player biome overlays are disabled. Verifique também se o jogador está na audience, se um bioma está configurado (uma definição personalizada ou vanillaBiome) e, no caso de uma região, se os dois cantos estão em um mundo carregado.

O Paint Biome Region não faz nada. Com region definido como WORLDEDIT_SELECTION, o jogador que dispara precisa ter uma seleção do WorldEdit e o WorldEdit precisa estar instalado; o console registra has no WorldEdit selection. Caso contrário, use RADIUS_AROUND_PLAYER.

O Restore Biome diz que o snapshot não existe. Os snapshots só são registrados quando a action de pintura tem um snapshotId, e a restauração deve usar o mesmo nome. Se consume estiver ativado, o snapshot é excluído após uma restauração.