Controls Guide: Entradas, Construção e Logic
Controles cobrem a entrada do jogador e o sistema de controle lógico dentro do jogo (Processors e instruções de controle) usados para comandar unidades e construções. Um bom uso dos controles acelera a micromanipulação, automatiza correias e máquinas, e expõe comportamentos avançados através do Processor.
Controles do jogador (PC e Mobile)
Unidade do jogador
- Movimento: WASD / teclas de seta no PC; arraste a tela no mobile.
- Interagir: clique esquerdo (PC) / toque (mobile) para atirar ou para colocar construções.
- Minerar: clique esquerdo no minério (PC) ou toque no minério (mobile) para minerar.
- Possuir: Ctrl + Clique Esquerdo (PC); toque em uma unidade (mobile) para possuí-la.
- Ressurgir: pressione a tecla de respawn para retornar ao núcleo mais próximo.
- Acelerar: pressione a tecla de boost para correr/impulsionar a unidade; no mobile arraste a tela para longe da unidade para impulsionar.
- Carga: pegue e largue carga com as teclas de pegar/soltar; no mobile toque e segure para pegar ou largar.
Construções e construção
- Colocar construção: clique esquerdo (PC) ou toque (mobile).
- Deletar/deselecionar: clique direito (PC) ou use o ícone de martelo/deletar no UI do mobile.
- Pausar/retomar construção: use a tecla de pausar construção.
- Seleção de região/reconstruir: use as teclas de seleção de região e reconstrução para trabalhar com múltiplos blocos e esquemas.
- Configuração de bloco: muitos blocos são configuráveis tocando/selecionando-os; alguns blocos consomem o evento de toque quando tocados e podem ser configurados diretamente.
Comandos de unidade e visualização
- Abra a UI de comando de unidade com a tecla de comando de unidade.
- Seleção em grupo: Shift + Clique Esquerdo para selecionar uma área de unidades.
- Selecione todas as unidades ou todas as fábricas de unidades com seus respectivos atalhos.
- Definir múltiplos waypoints: Shift + Middle Mouse (PC).
- Zoom: roda do mouse.
- Alternar visibilidade do UI, fullscreen, menu e console têm seus próprios atalhos.
- Multiplayer: lista de jogadores e chat têm teclas dedicadas; a roda do mouse rola o histórico do chat.
Visão geral do Logic (o que "controls" significa no jogo)
Logic é o sistema de scripting do jogo executado por Processors. Ele fornece instruções determinísticas e de baixo nível semelhantes a assembly: cada instrução é avaliada com base no contador de instruções do processor, e o processor percorre seu programa a cada tick de acordo com sua velocidade/clock.
Processors podem interagir com o mundo: leem sensores, leem/escrevem blocos de memória, controlam estados de blocos, imprimem mensagens e saltam condicionalmente. Modos de edição visual e de texto estão disponíveis; o editor visual é amigável para iniciantes e suporta uso em mobile e importação/exportação por clipboard.
Categorias comuns de instruções
- Sensores: leem propriedades de blocos e tags especiais como @enabled de switches e outros blocos. Exemplo de uso: sensor active switch1 @enabled atribui o estado enabled do switch a uma variável chamada active.
- Controle: altera o estado de um bloco. Exemplo: control enabled conveyor1 1 ... define um conveyor como enabled; control enabled conveyor1 0 ... o desativa.
- Jump e comparações: controle de fluxo condicional. Use jump
para saltar quando uma comparação entre a e b corresponder. A lista de comparações inclui operadores como strictEqual e always; always sempre retorna true e força o salto. - Leitura/escrita de memória: read var = cell at index lê valores numéricos de MemoryCell ou MemoryBank para uma variável. MemoryCell suporta acesso indexado (cells são indexadas a partir de zero).
- Print e display: print armazena texto para ser mostrado; printflush target imprime o texto armazenado em um
Mensagem block ou display de logic.
- getlink/acesso a content: processors podem recuperar o building específico linkado (por exemplo, uma instância particular de sorter) e tratá-lo como building content para controle ou leitura direcionados.
Padrões de exemplo
Alternar um conveyor com um switch:
- sensor active switch1 @enabled
- jump 4 strictEqual active true
- control enabled conveyor1 0 0 0 0
- end
- control enabled conveyor1 1 0 0 0 Isto lê o switch, salta para habilitar ou desabilitar o conveyor, e entra em loop indefinidamente.
Escrever uma mensagem em um
Mensagem block:
- print "Hello world!"
- printflush message1
Conecte o Processor ao
Mensagem block; print armazena, printflush envia para o bloco de message nomeado.
Ler o conteúdo de uma célula de memória: read value = cell1 at 2 Isto coloca o valor numérico no índice 2 de cell1 na variável value (os índices começam em 0).
Dicas de UI e usabilidade
- Use o editor visual ao começar: ele mostra variáveis, fluxo de jump, e é mais fácil no mobile.
- Use import/export do clipboard para copiar scripts entre o editor de desktop e o mobile.
- Nomeie blocos linkados (router1, conveyor1, switch1, message1) claramente para tornar a lógica legível e reutilizável.
- Lembre-se que processors executam uma instrução por tick de acordo com seu contador/clock; estruture loops e jumps com esse timing em mente.
Nuances de interação com blocos
- Alguns blocos expõem um link por instância "building" (em oposição a um content/class). getlink recupera a instância de building linkada que pode ser inspecionada ou controlada.
- Blocos podem expor comportamento de toque configurável e se consomem eventos de toque; blocos configuráveis podem ser tocados para abrir a UI de configuração.
Este documento descreve a camada de controles: entrada do jogador e o sistema Logic usado para programar e automatizar unidades e blocos. Use Processors para ler sensores, manipular estados de blocos, lidar com mensagens e orquestrar comportamentos complexos de fábricas e unidades.