CLI

Esta página foi traduzida automaticamente e pode conter erros. Encontrou um problema? Use o link "Edit this page" para ajudar a corrigir.

O turian-cli executa o pipeline de build e de runtime do Turian sem janela: o mesmo compilador, importador, exportador e renderizador do Studio. Use-o em scripts, na CI e para verificar um projeto sem abrir o editor.

turian-cli --help            # todos os comandos
turian-cli <comando> --help  # as opções de um comando
turian-cli --version

Os comandos que recebem um projeto aceitam a pasta do projeto; o padrão é o diretório atual.

Criando e compilando

Comando O que faz
new <caminho> Cria um projeto em uma pasta nova ou vazia: cena inicial, configurações e Globals.cs.
compile [projeto] Reimporta os assets e compila os scripts em .Cache/bin/CLI/. Falha em erros de compilação.
export [projeto] [-c Debug\|Release] Gera um jogo autocontido em <projeto>/Output/ (Release por padrão).
play [projeto] Compila uma versão de depuração do jogo e a abre em uma janela.
turian-cli new MeuJogo
turian-cli compile MeuJogo
turian-cli export MeuJogo
./MeuJogo/Output/MeuJogo        # MeuJogo.exe no Windows

Executando e inspecionando cenas sem interface

Estes comandos aceitam --scene <id ou caminho do asset> (padrão: a cena inicial), --reimport para importar os assets antes, e --load-usercode para compilar e carregar seus scripts, para que seus componentes rodem em vez de serem carregados como marcadores.

Comando O que faz
scene Carrega uma cena e informa seus nós, componentes e quantas malhas foram resolvidas.
screenshot Renderiza uma cena em PNG: --out, --width, --height, --camera <nome do nó> ou --position x,y,z --yaw --pitch, --headlight, --gizmos, --locale.
playmode Executa uma sessão por --frames quadros, como o botão Play do Studio; --out salva o último quadro, --locale força um idioma.
pick Informa o que um clique em --x, --y através de --camera selecionaria — para diagnosticar a seleção.
turian-cli screenshot MeuJogo --camera "Main Camera" --width 1920 --height 1080 --out shot.png
turian-cli playmode MeuJogo --load-usercode --frames 300 --out depois-de-5s.png

A renderização sem interface precisa de um driver Vulkan; em máquinas sem GPU, o driver por software do Mesa (lavapipe) funciona.

Documentos de interface

ui renderiza um documento .ui em PNG sem GPU nem cena, vinculando JSON como dados (inline ou @arquivo.json):

turian-cli ui --file Assets/UI/menu.ui --out menu.png --data '{"Title":"Menu principal"}'

Pacotes de assets (OAP)

Um jogo exportado leva os assets em um Open Asset Package. O oap gerencia esses arquivos:

Comando O que faz
oap pack [projeto] <saída> Empacota os assets importados de um projeto. --name, --store (sem compressão), --key <senha> (criptografia ChaCha20), --target <alvo de build>, --requires <pacote>.
oap list <pacote> Uma linha por asset: id, tipo, codecs, tamanhos e caminho virtual.
oap inspect <pacote> Resumo do cabeçalho e manifesto.
oap validate <pacote> Verifica o cabeçalho e o CRC-32 de cada asset; sai com 1 em caso de falha.
oap unpack <pacote> <pasta> Extrai todos os assets.

Uso na CI

Compile o jogo a cada push com a imagem de contêiner, que inclui o SDK do .NET e um driver Vulkan por software:

# .github/workflows/build.yml
jobs:
  build:
    runs-on: ubuntu-latest
    container: ghcr.io/mass4org/turian-cli:latest
    steps:
      - uses: actions/checkout@v4
      - run: turian-cli export .
      - uses: actions/upload-artifact@v4
        with:
          name: game-linux
          path: Output/

Os códigos de saída são diferentes de zero em caso de falha, então um script quebrado ou a falta de cena inicial fazem o job falhar.


← Toda a documentação Editar esta página