Skip to content
Pular para o conteúdo
Voltar ao Blog
EasyUIBuilder: Criando UI do Minecraft Bedrock Sem Escrever

EasyUIBuilder: Criando UI do Minecraft Bedrock Sem Escrever

Alexandru Maftei
Alexandru Maftei
@ice
Atualizado
30 visualizações
TL;DR:EasyUIBuilder é uma biblioteca PHP que gera arquivos de UI JSON do Minecraft Bedrock usando uma API fluente em vez de codificar JSON manualmente. Útil para desenvolvedores de addons e criadores de resource packs que desejam código de UI mais limpo e manutenível.

""EasyUIBuilder" é uma pequena ferramenta de software projetada para criar formulários de UI JSON mais rapidamente no Minecraft Bedrock Edition!"

Refaltor77/EasyUIBuilder - github.com
⭐ 104 estrelas💻 PHP📄 MIT

Se você já tentou construir uma interface personalizada para um addon ou resource pack do Minecraft Bedrock, sabe o sofrimento. Os arquivos de UI JSON são poderosos, mas também são verbosos, fáceis de quebrar e entediantes de escrever à mão. EasyUIBuilder resolve esse problema permitindo que você gere UIs JSON do Minecraft Bedrock usando uma API PHP fluente em vez de codificar JSON do zero.

O Que o EasyUIBuilder Faz

EasyUIBuilder é uma biblioteca PHP (licenciada com MIT, 104 estrelas no GitHub) que remove o atrito ao criar arquivos de UI JSON do Minecraft Bedrock Edition. Em vez de escrever ou editar JSON manualmente, você escreve código PHP legível e encadeável que gera definições de UI válidas automaticamente.

Deixe-me ser claro sobre o que isso significa na prática. Você não está substituindo o sistema de UI do Minecraft. Você está escrevendo uma camada de código que gera os arquivos JSON que seu addon precisa. Pense nisso como usar um framework CSS em vez de escrever todos os seus estilos à mão. A saída é JSON padrão compatível com Bedrock, mas você nunca precisa tocá-lo diretamente.

Isso importa porque o JSON de UI do Bedrock é complexo. Um botão simples precisa de declarações de binding, definições de controle, animações, cálculos de deslocamento e especificações de cor. Encadeie cinco botões juntos e você terá centenas de linhas de JSON. EasyUIBuilder reduz isso a algumas linhas de código legíveis e reutilizáveis.


Por Que Você Usaria Isso (Casos de Uso)

Desenvolvedores de addons que criam algo com UIs personalizadas se beneficiam mais. Isso inclui telas de gerenciamento de inventário, sistemas de loja, painéis de configuração e menus de jogo. Se seu addon precisa que os jogadores vejam ou interajam com algo além de comandos de bate-papo básicos, você está construindo uma UI.

Mas não é apenas addons. Administradores de servidor criando ferramentas de servidor, plugins de lançador ou painéis de gerenciamento podem usar EasyUIBuilder para gerar os componentes de UI que precisam sem lutar com JSON bruto. Se você está distribuindo seu addon entre servidores usando ferramentas como nossa Free Minecraft DNS ou gerenciando acesso de jogadores com um Whitelist Creator, UIs personalizadas geralmente vêm a seguir.

A maior vantagem é para equipes. Quando as definições de UI vivem como código em vez de JSON, elas se integram com controle de versão, revisões de código e testes automatizados. Sua equipe pode refatorar, documentar e colaborar na UI sem mesclar manualmente objetos JSON aninhados.


Começando: Instalação e Configuração

Você precisará do PHP 8.0 ou superior. Se você está gerenciando dependências do PHP com Composer (você deveria), a instalação é uma linha:

bash
composer require refaltor/easy-ui-builder

Sem dependências do sistema, sem ferramentas externas. Depois disso, você importa a biblioteca em seu código e começa a construir UIs. O hello-world mais rápido se parece com isto:

php
use refaltor\ui\builders\Root;
use refaltor\ui\elements\Label;
use refaltor\ui\colors\BasicColor;

$root = Root::create("my_namespace");
$root->addElement(
 Label::create("hello", "Hello Minecraft!")
 ->setFontSize(Label::FONT_EXTRA_LARGE)
 ->setShadow()
 ->setColor(BasicColor::yellow())
);
$root->generateAndSaveJson("ui/my_screen.json");

Esse código cria um elemento de texto rotulado, o colore em amarelo com uma sombra e escreve o arquivo JSON no seu resource pack. Nenhuma edição de JSON manual necessária.


Características Principais que Importam

API Fluente

Cada elemento suporta encadeamento de método. Você cria um elemento e chama métodos nele como ->setColor(), ->setSize(), ->setVisible() e assim por diante. Lê-se como uma frase, e você não precisa se preocupar com a sintaxe JSON. A biblioteca lida com aspas, chaves, aninhamento e validação.

Animações e Bindings

As UIs do Bedrock podem animar (desvanecimento, deslizamento, mudanças de cor) e vincular a variáveis (mostrar este elemento quando a saúde do jogador for baixa). EasyUIBuilder inclui 30+ funções de easing de animação e um sistema de binding completo para layouts específicos de plataforma e visibilidade condicional. Você declara isso em código em vez de estruturas JSON brutas.

Validação Automática

A biblioteca valida o JSON gerado em relação ao schema de UI do Bedrock automaticamente. E isso captura erros cedo em vez de deixá-los falhar silenciosamente em tempo de execução. Se você tentar definir um valor de cor inválido ou propriedade necessária ausente, a biblioteca avisa antes de escrever o arquivo.

Utilitários de Cor

Cores predefinidas, conversão RGB, cores aleatórias, cores complementares e geração de pastel são todas integradas. Nada mais de procurar por códigos hex ou fazer contas de cor na sua cabeça.

Componentes Utilitários

Elementos comuns como botões de fechamento e renderizações de jogador vêm pré-construídos. Veja, você não reinventa a roda para padrões que todo addon precisa.


Armadilhas Comuns e Dicas

Uma coisa que surpreende novos usuários: a saída é JSON, não objetos PHP. Você chama ->generateAndSaveJson() e ele escreve no disco. Você não está manipulando a UI em tempo de execução no código do seu addon. A biblioteca é uma ferramenta de tempo de compilação que gera os arquivos que seu addon consome.

A sintaxe do sistema de binding leva um minuto para entender. Existem bindings globais, bindings de exibição, bindings de coleção e bindings de visibilidade. Cada tipo serve a um propósito diferente. O README cobre isso, e vale a pena ler essas seções com cuidado antes do seu primeiro painel complexo.

As easings de animação têm nomes específicos (exponential_in, cubic_out, elastic_loop, etc.). Se você codificar os nomes de animação, eles falharão silenciosamente se você cometer um erro de digitação. Usar os métodos de classe constantes é mais seguro.

Os caminhos de arquivo são relativos a onde seu script PHP é executado. Se você está automatizando compilações de UI em um pipeline CI/CD, acerte o diretório de trabalho ou seus arquivos acabam em lugares inesperados.


Como Se Parecem as Alternativas

Você pode escrever o JSON à mão. Isso funciona, mas é mais lento e propenso a erros. Você está gerenciando indentação, aspas e regras de sintaxe manualmente. Para UIs complexas com múltiplas telas, você se verá copiando e colando blocos grandes e depois editando cuidadosamente cada um. É o fluxo de trabalho que EasyUIBuilder foi construído para substituir.

Alguns desenvolvedores usam editores de texto com validação de schema JSON. Isso ajuda a capturar alguns erros, mas você ainda está escrevendo muito boilerplate. Frameworks de definição de UI para outros jogos (Unity, Unreal) oferecem abordagens de geração de código semelhantes, e EasyUIBuilder traz essa conveniência para o Minecraft Bedrock.

Para UIs simples de uma única vez, a codificação manual não é um desastre. Se você está construindo um addon sério ou mantendo múltiplas telas em um projeto, a geração de código se compensa rapidamente.


Antes de Mergulhar

Esta ferramenta assume que você já entende os conceitos de UI do Minecraft Bedrock: telas, painéis, botões, bindings e a estrutura geral do que você está tentando construir. Não é um designer visual. Você ainda precisa saber quais elementos existem e como funcionam. O que o salva é de escrever a sintaxe JSON e gerenciar as partes repetitivas.

Se você está construindo um servidor com vários addons ou distribuindo ferramentas que precisam de interfaces personalizadas, adicionar uma etapa de compilação que gera UIs a partir do código vale a pena o tempo de configuração. Você obtém controle de versão, colaboração em equipe e menos erros de sintaxe.

Refaltor77/EasyUIBuilder - MIT, ⭐104
Sobre o autor
Alexandru Maftei
Alexandru MafteiRedator-chefe

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

Comentários

Nenhum comentário ainda. Seja o primeiro a compartilhar sua opinião!

We use cookies to improve your experience. By continuing to use this site, you agree to our use of cookies. Read our Privacy Policy