repo-cafe
v1.1.1
Published
CLI para o ecossistema Repo Café, um assistente de desenvolvimento colaborativo para Godot.
Downloads
29
Maintainers
Readme
Repo Café CLI
Bem-vindo ao Repo Café CLI, seu parceiro de desenvolvimento colaborativo para o ecossistema Godot. Prepare sua xícara, porque a jornada do código será deliciosa!
O Repo Café CLI transforma o Gemini em um copiloto que tem acesso direto e total ao seu ambiente de desenvolvimento. Em vez de você precisar copiar e colar código para obter ajuda, o Repo Café CLI já tem acesso a todo o seu projeto, incluindo scripts, cenas e a arquitetura geral do seu jogo.
Ele é, em essência, o Gemini para desenvolvedores Godot, e o melhor de tudo: roda diretamente no seu celular via Termux!
Comandos da Ferramenta
O Repo Café CLI vem com um conjunto de comandos para agilizar seu desenvolvimento:
repo-cafe:- Função: Inicia a sessão de chat com o assistente.
- Uso:
repo-cafe
cafe-new [template] <nome-do-projeto>:- Função: Te serve um novo "Café Quentinho" (um projeto Godot com base nos templates do Café).
- Argumentos:
template(opcional): Especifiqueplatformeroutopdown. Se não especificar, o templatebodyless(apenas com sistemas essenciais) será usado.
- Exemplos de Uso:
cafe-new meu-projeto(usa o template bodyless)cafe-new platformer meu-jogo-plataformacafe-new topdown meu-jogo-topdown
repo-cafe-update:- Função: Atualiza a ferramenta
repo-cafepara a versão mais recente. O processo de atualização também garante que sua cópia local do repo-cafe esteja sincronizada com a versão da ferramenta. - Uso:
repo-cafe-update
- Função: Atualiza a ferramenta
repo-update:- Função: Atualiza especificamente o repositório de conhecimento. É ideal para obter o conteúdo mais recente, que pode ser atualizado com mais frequência do que a ferramenta em si.
- Uso:
repo-update
cafe-rename:- Função: Renomeia arquivos e pastas recursivamente para um formato limpo e consistente, ideal para Godot e sistemas de controle de versão. Preserva maiúsculas/minúsculas e hífens, mas troca espaços por
_e remove acentos/caracteres especiais. - Uso:
cafe-rename --source <caminho-opcional>
- Função: Renomeia arquivos e pastas recursivamente para um formato limpo e consistente, ideal para Godot e sistemas de controle de versão. Preserva maiúsculas/minúsculas e hífens, mas troca espaços por
Como Funciona?
O Repo Café CLI é um wrapper inteligente para o gemini-cli do Google. Ele utiliza o repositório Repo Café — um curso completo de Godot em formato de texto — como uma base de conhecimento fixa. É o nosso grão especial, sempre moído na hora para o seu projeto, garantindo um aroma único em cada linha de código.
A Filosofia "BodyLess" (Sem Corpo)
O Repo Café CLI não apenas ajuda a escrever código; ele segue e implementa uma filosofia de arquitetura robusta chamada "BodyLess". O nome reflete o princípio central: desacoplamento total. Os sistemas são projetados para não terem "corpos" ou referências diretas uns aos outros. Em vez disso, eles se comunicam de forma indireta, criando um código mais limpo, modular e escalável.
Os Pilares da Arquitetura
- EventBus (O Quadro de Avisos): Um Autoload/Singleton que funciona como um quadro de avisos central. Em vez de um objeto chamar uma função em outro, ele simplesmente "publica um aviso" (emite um sinal) no EventBus.
- Dicionários (Os Mensageiros): Toda a comunicação através do EventBus é feita com Dicionários. Eles são os contêineres de dados universais que carregam a informação de um sistema para o outro, sem criar dependências.
- Resources (Os Contêineres de Dados): Usamos
Resourcespersonalizados (.tres) para definir os "o quês" do nosso jogo (ex: dados de uma arma, stats de um inimigo), separando completamente os dados do comportamento. - Managers Ouvintes (Autoloads Reativos): Nossos sistemas globais (Autoloads) não são chamados diretamente. Eles são projetados para ouvir os "avisos" no EventBus e reagir a eles.
A Estrutura Padrão de Autoloads
A arquitetura "BodyLess" se manifesta em uma estrutura clara de Autoloads (Singletons), divididos em dois domínios:
Sistemas Globais
Gerenciam o estado geral do jogo e a comunicação entre sistemas.
- GlobalEvents: O coração da comunicação. Todos os sistemas globais se comunicam através dele.
- GlobalMachine: Controla a máquina de estados global (ex:
MENU,JOGANDO,PAUSADO). - SaveSystem: Ouve os pedidos de salvar/carregar e orquestra a persistência de dados.
- SettingsManager: Gerencia as configurações do jogador (áudio, vídeo, controles).
- InputManager: Centraliza o gerenciamento de input, especialmente para remapeamento de teclas.
- AudioManager: Gerencia a reprodução de música e efeitos sonoros.
- DebugConsole: Um console de depuração para testes em tempo de execução.
Sistemas Locais
Gerenciam o estado dentro de uma cena de jogo (uma fase, um nível). Eles são persistentes, mas focados no gameplay imediato.
- LocalEvents: Um EventBus para comunicação interna da cena (ex: um puzzle que abre uma porta na mesma fase).
- LocalMachine: Controla a máquina de estados da cena (ex:
EXPLORANDO,COMBATE,CUTSCENE).
A Regra de Ouro: A comunicação entre os domínios Global e Local é estritamente separada. LocalEvents é um sistema fechado, usado apenas para comunicação dentro de uma mesma cena (ex: um puzzle abrindo uma porta próxima). Ele nunca deve ser usado como uma "escada" para o GlobalEvents.
Se um nó dentro da cena, como o Player, precisa de uma ação global (ex: notificar sua morte para que a GlobalMachine possa mudar o estado do jogo), ele deve emitir o sinal diretamente no GlobalEvents. A responsabilidade de escolher o canal correto (Local ou Global) é sempre do emissor original do evento.
A Estrutura da Cena Principal: SceneControl e Viewport
Além da comunicação, a arquitetura "BodyLess" define uma estrutura de cena robusta para gerenciar o jogo, a UI e o dimensionamento da tela. A cena principal do jogo, chamada SceneControl.tscn, não é um Autoload, mas sim a primeira cena que o Godot carrega.
Sua estrutura é a seguinte:
SceneControl(Node - O Maestro): O nó raiz. Seu script é responsável por orquestrar quais cenas estão ativas, realizando as transições (carregando e descarregando fases) em resposta a eventos doGlobalEvents.ViewportContainer>SubViewport(O Palco do Jogo): Este contêiner especial abriga o "mundo" do jogo. Todas as cenas de gameplay (fases, níveis) e suas HUDs específicas são instanciadas aqui dentro. O uso de umSubViewporté crucial, pois ele desacopla a resolução do jogo da resolução da janela, permitindo:- Pixel-perfect scaling: Renderizar um jogo de pixel art em baixa resolução e escalá-lo perfeitamente para telas HD/4K sem borrões.
- Efeitos de post-processing: Aplicar shaders e efeitos visuais à tela inteira do jogo sem afetar os menus.
CanvasLayer(A Interface Global): Este layer flutua acima doViewportdo jogo. Ele é o lar de todas as interfaces que não fazem parte do mundo do jogo, como:- Menu Principal / Tela de Título
- Menu de Pause
- Menu de Configurações
- Pop-ups globais (Ex: "Sair do jogo?", "Salvar alterações?")
Essa separação garante que a UI global nunca interfira com a câmera ou a resolução do jogo, e que o SceneControl atue como um verdadeiro controlador de entrada e saída de cenas.
Exemplo de Fluxo (Salvando Configurações)
- O jogador clica no botão "Salvar". O botão emite um sinal
request_save_settingsnoGlobalEvents. - O
SettingsManagerouve este sinal, coleta seus dados em um Dicionário e emitesave_settings_data({"audio": ...})noGlobalEvents. - O
SaveSystemouvesave_settings_data, salva os dados em disco e emitesettings_saved_successfully. - A UI ouve o sinal de sucesso e mostra uma notificação.
O resultado é um código robusto e desacoplado, nossa receita para um projeto tão confiável quanto um bom café.
Instalação
Para instalar o Repo Café CLI, você precisa ter o Node.js (que inclui o NPM) instalado em seu sistema.
Com o Node.js pronto, abra seu terminal e execute o seguinte comando:
npm install -g repo-cafeE pronto! Seu café está coado e pronto para ser saboreado, seja um espresso rápido ou um coado demorado.
Como Usar
Após a instalação, simplesmente abra um novo terminal e execute:
repo-cafeÉ só dar um gole e começar a codificar, sentindo a Cafeína do desenvolvimento fluir!
Recursos Adicionais
- Análise de Mídia: O Gemini pode "ver" e analisar arquivos de imagem e áudio do seu projeto. Ele tem um olfato apurado para os detalhes, como um sommelier de café, identificando cada nuance do seu projeto.
Modo de Operação de Conteúdo (NSFW)
Para garantir total liberdade criativa em projetos destinados a um público adulto, o Repo Café CLI possui um modo de operação explícito (NSFW). É a sua dose extra de Cafeína para a criatividade sem limites, como um café duplo para as ideias mais ousadas.
- Modo Padrão (SFW): Por padrão, o assistente opera com as políticas de segurança de conteúdo do Google, evitando temas sensíveis.
- Modo Explícito (NSFW): Se um arquivo chamado
NSFW(sem extensão) for detectado na raiz do seu projeto, as restrições de conteúdo são suspensas. Isso permite que o assistente colabore na criação de diálogos com linguagem explícita, descrições de violência e outros temas maduros, respeitando a visão criativa do seu projeto.
Se você solicitar um conteúdo que seria bloqueado, o próprio assistente oferecerá a criação do arquivo NSFW para ativar o modo explícito.
