---
navigation:
  parent: ae2-mechanics/ae2-mechanics-index.md
  title: Autocrafting
  icon: pattern_provider
---

# Autocrafting

### O Principal

<GameScene zoom="4" interactive={true}>
  <ImportStructure src="../assets/assemblies/autocraft_setup_greebles.snbt" />
  <IsometricCamera yaw="195" pitch="30" />
</GameScene>

Autocrafting é uma das principais funções do AE2. Em vez de ter que fazer manualmente o número correto de cada subingrediente
e trabalhar como um *plebeu*, você pode pedir para seu sistema ME fazer isso por você. Ou fabricar automaticamente itens e exportá-los para algum lugar.
Ou manter automaticamente certas quantidades de itens em estoque através de um comportamento emergente inteligente. Funciona também com fluidos e, se você tiver
addons para tipos extras de materiais de mods, como gases do Mekanism, esses materiais também. É bem legal.

É um assunto bastante complexo, então prepare-se.

Uma configuração de autocrafting consiste em 3 coisas:
- O componente que envia a solicitação de crafting
- A CPU de crafting
- O <ItemLink id="pattern_provider" />.

Aqui está o que acontece:

1.  Algo cria uma solicitação de crafting. Isso pode ser você no terminal clicando em algo autocraftável,
    ou um export bus ou interface com um cartão de crafting pedindo um dos itens que eles estão configurados para exportar/estoque.

*   (**IMPORTANTE:** use o que você tiver vinculado a "pegar bloco" (geralmente botão do meio do mouse) para pedir crafts de algo que você já tem em estoque, isso pode conflitar com mods que organizam inventário),

2.  O sistema ME calcula os ingredientes necessários e os passos de crafting pré-requisitos para cumprir a solicitação, e os armazena na CPU de crafting selecionada

3.  O <ItemLink id="pattern_provider" /> com o [padrão](../items-blocks-machines/patterns.md) relevante empurra os ingredientes especificados para qualquer inventário adjacente.
    No caso de uma receita de crafting table (um "padrão de crafting") isso será um <ItemLink id="molecular_assembler" />.
    No caso de uma receita não de crafting (um "padrão de processamento") será algum outro bloco, máquina ou configuração elaborada controlada por redstone.

4.  O resultado do craft é retornado ao sistema de alguma forma, seja por import bus, interface, ou empurrando o resultado de volta para um pattern provider.
    **Note que um evento de "item entrando no sistema" deve ocorrer, você não pode simplesmente enviar o resultado para um baú com um <ItemLink id="storage_bus" /> nele.**

5.  Se esse craft for pré-requisito para outro na solicitação, os itens são armazenados naquela CPU de crafting e então usados nesse craft.

# Padrões

<ItemImage id="crafting_pattern" scale="4" />

Padrões são feitos em um <ItemLink id="pattern_encoding_terminal" /> a partir de padrões em branco.

Existem vários tipos diferentes de padrões para coisas diferentes:

*   <ItemLink id="crafting_pattern" />s codificam receitas feitas numa crafting table. Podem ser colocados diretamente em um <ItemLink id="molecular_assembler" /> para fazê-lo
    fabricar o resultado sempre que receber os ingredientes, mas seu uso principal é num <ItemLink id="pattern_provider" /> ao lado de um molecular assembler.
    Pattern providers têm comportamento especial nesse caso, enviando o padrão relevante junto com os ingredientes para os assemblers adjacentes.
    Como os assemblers ejetam automaticamente os resultados dos crafts para os inventários adjacentes (e assim para os slots de retorno do pattern provider), um assembler num pattern provider
    é tudo que você precisa para automatizar padrões de crafting.

***

*   <ItemLink id="smithing_table_pattern" />s são muito similares aos padrões de crafting, mas codificam receitas de mesa de ferraria. Também são automatizados por um
    pattern provider e um molecular assembler, funcionando da mesma forma. De fato, padrões de crafting, ferraria e stonecutting podem ser
    usados no mesmo setup.

***

*   <ItemLink id="stonecutting_pattern" />s são muito similares aos padrões de crafting, mas codificam receitas de cortador de pedra. Também automatizados por um
    pattern provider e molecular assembler, funcionando da mesma forma. De fato, padrões de crafting, ferraria e stonecutting podem ser
    usados no mesmo setup.

***

*   <ItemLink id="processing_pattern" />s são onde reside muita da flexibilidade do autocrafting. São o tipo mais generalizado, simplesmente
    dizendo "se um pattern provider empurrar esses ingredientes para inventários adjacentes, o sistema ME receberá esses itens em algum momento
    no futuro próximo ou distante". São usados para autocrafting com quase qualquer máquina de mod, ou fornalhas e similares. Por serem tão
    genéricos e não se importarem com o que acontece entre o empurrar dos ingredientes e o recebimento do resultado, você pode fazer coisas bem malucas, como enviar
    os ingredientes para uma cadeia de produção complexa que irá ordenar os itens, receber ingredientes de fazendas de produção infinita,
    imprimir todo o roteiro do filme Bee Movie, o sistema ME não se importa desde que receba o resultado que o padrão especifica. Na verdade,
    ele nem se importa se os ingredientes têm alguma relação com o resultado. Você pode dizer "1 tábua de madeira cerejeira = 1 estrela do nether" e fazer
    sua farm de wither matar um wither ao receber a tábua de madeira cerejeira, e isso funcionaria.

Múltiplos <ItemLink id="pattern_provider" />s com padrões idênticos são suportados e funcionam em paralelo. Além disso, você pode fazer um padrão indicar,
por exemplo, 8 pedras para 8 pedras lisas em vez de 1 pedra para 1 lisa, e o pattern provider inserirá 8 pedras no seu setup de fundição a cada operação em vez de uma por vez.

## A forma mais geral de "padrão"

Existe na verdade uma forma ainda mais "geral" de "padrão" que um processing pattern. Um <ItemLink id="level_emitter" /> com um cartão de crafting pode ser configurado
para emitir sinal de redstone para fabricar algo. Esse "padrão" não define, nem se importa com ingredientes.
Tudo o que diz é "Se você emitir redstone desse level emitter, o sistema ME receberá esse item em algum momento
no futuro próximo ou distante". Normalmente é usado para ativar e desativar fazendas infinitas que não precisam de ingredientes,
ou para ativar sistemas que lidam com receitas recursivas (que o autocrafting padrão não entende) como, por exemplo, "1 pedra = 2 pedras"
se você tiver uma máquina que duplica pedra.

# A CPU de Crafting

<GameScene zoom="4" background="transparent">
  <ImportStructure src="../assets/assemblies/crafting_cpus.snbt" />
  <IsometricCamera yaw="195" pitch="30" />
</GameScene>

CPUs de crafting gerenciam solicitações e trabalhos de crafting. Elas armazenam os ingredientes intermediários enquanto são
realizados trabalhos de crafting com múltiplas etapas, e determinam o tamanho máximo dos trabalhos e em certa medida sua velocidade.
São multiblocos, e precisam ser prismas retangulares com pelo menos 1 armazenamento de crafting.

CPUs de crafting são compostas por:

*   (Obrigatório) [Armazenamentos de crafting](../items-blocks-machines/crafting_cpu_multiblock.md), disponíveis em todos os tamanhos padrão de célula (1k, 4k, 16k, 64k, 256k). Eles armazenam os ingredientes e
    ingredientes intermediários envolvidos no craft, então quanto maiores ou mais armazenamentos houver, maior o trabalho suportado.
*   (Opcional) <ItemLink id="crafting_accelerator" />s, que fazem o sistema enviar mais lotes de ingredientes dos pattern providers.
    Isso permite, por exemplo, que um pattern provider cercado por 6 molecular assemblers envie ingredientes para (e use) todos ao mesmo tempo em vez de só um.
*   (Opcional) <ItemLink id="crafting_monitor" />s, exibem o trabalho que a CPU está processando no momento. Podem ser coloridos via <ItemLink id="color_applicator" />.
*   (Opcional) <ItemLink id="crafting_unit" />s, preenchem espaço para fazer a CPU um prisma retangular.

Cada CPU de crafting processa 1 solicitação ou trabalho, então se você quer pedir um processador de cálculo e 256 pedras lisas ao mesmo tempo, precisa de 2 multiblocos de CPU.

Podem ser configuradas para aceitar pedidos de jogadores, de automação (export buses e interfaces), ou ambos.

# Pattern Providers

<Row>
<BlockImage id="pattern_provider" scale="4" />

<BlockImage id="pattern_provider" p:push_direction="up" scale="4" />

<GameScene zoom="4" background="transparent">
  <ImportStructure src="../assets/blocks/cable_pattern_provider.snbt" />
</GameScene>
</Row>

<ItemLink id="pattern_provider" />s são a principal forma como seu sistema de autocrafting interage com o mundo. Eles empurram os ingredientes em
seus [padrões](../items-blocks-machines/patterns.md) para inventários adjacentes, e itens podem ser inseridos neles para serem inseridos na rede. Frequentemente
um canal pode ser economizado ao enviar a saída de uma máquina de volta para um pattern provider próximo (geralmente o que empurrou os ingredientes)
em vez de usar um <ItemLink id="import_bus" /> para puxar a saída da máquina para a rede.

Importante, como eles empurram os ingredientes diretamente do [armazenamento de crafting](../items-blocks-machines/crafting_cpu_multiblock.md#crafting-storage) em uma CPU,
eles nunca realmente contêm os ingredientes no inventário, então você não pode puxar itens deles. Você precisa que o provider empurre
para outro inventário (como um barril) e então puxar daí.

Também importante, o provider tem que empurrar TODOS os ingredientes de uma vez, não pode empurrar lotes parciais. Isso é útil
para explorar.

Pattern providers têm uma interação especial com interfaces em [subredes](../ae2-mechanics/subnetworks.md): se a interface estiver sem modificações (nada nos slots de solicitação)
o provider vai pular a interface completamente e empurrar direto para o [armazenamento](../ae2-mechanics/import-export-storage.md) da subrede,
pulando a interface sem preencher com lotes de receita e, mais importante, não inserindo o próximo lote até que haja espaço no armazenamento.

Múltiplos pattern providers com padrões idênticos são suportados e funcionam em paralelo.

Pattern providers tentarão distribuir seus lotes igualmente para todas as suas faces, usando assim todas as máquinas conectadas em paralelo.

## Variantes

Pattern Providers vêm em 3 variantes: normal, direcional e plano. Isso afeta a quais lados eles empurram
ingredientes, recebem itens e dão conexão de rede.

*   Pattern providers normais empurram ingredientes para todos os lados, recebem entradas de todos os lados, e, como a maioria das máquinas AE2, agem
    como cabo conectando rede em todos os lados.

*   Pattern providers direcionais são feitos usando um <ItemLink id="certus_quartz_wrench" /> num pattern provider normal para mudar sua
    direção. Eles apenas empurram ingredientes para o lado selecionado, recebem entradas de todos os lados, e especificamente não fornecem conexão de rede
    no lado selecionado. Isso permite empurrar para máquinas AE2 sem conectar redes, caso você queira fazer uma subrede.

*   Pattern providers planos são uma [subparte de cabo](../ae2-mechanics/cable-subparts.md), e assim vários podem ser colocados no mesmo cabo, permitindo setups compactos.
    Eles agem de forma similar ao lado selecionado em um pattern provider direcional, fornecendo padrões, recebendo entradas e não
    fornecendo conexão de rede na sua face.

Pattern providers podem ser trocados entre normal e plano em uma grade de crafting.

## Configurações

Pattern providers têm vários modos:

*   **Modo de bloqueio** impede que o provider empurre um novo lote de ingredientes se já houver
    ingredientes na máquina.
*   **Bloquear crafting** pode travar o provider sob várias condições de redstone, ou até que o resultado do
    craft anterior seja inserido naquele padrão específico.
*   O provider pode ser mostrado ou ocultado em <ItemLink id="pattern_access_terminal" />s.

## Prioridade

Prioridades podem ser definidas clicando na chave inglesa no canto superior direito da interface gráfica. No caso de vários [padrões](../items-blocks-machines/patterns.md)
para o mesmo item, padrões em providers com prioridade mais alta serão usados em vez dos de providers com prioridade mais baixa,
a menos que a rede não tenha os ingredientes para o padrão de prioridade mais alta.

# Molecular Assemblers

<BlockImage id="molecular_assembler" scale="4" />

O <ItemLink id="molecular_assembler" /> recebe itens inseridos nele e executa a operação definida por um <ItemLink id="pattern_provider" /> adjacente,
ou o <ItemLink id="crafting_pattern" />, <ItemLink id="smithing_table_pattern" /> ou <ItemLink id="stonecutting_pattern" /> inseridos,
então empurra o resultado para inventários adjacentes.

Seu uso principal é ao lado de um <ItemLink id="pattern_provider" />. Pattern providers têm comportamento especial nesse caso,
e enviarão informações sobre o padrão relevante junto com os ingredientes para os assemblers adjacentes. Como os assemblers ejetam automaticamente os resultados dos
crafts para inventários adjacentes (e assim para os slots de retorno do pattern provider), um assembler num pattern provider
é tudo que é preciso para automatizar padrões de crafting.

<GameScene zoom="4" background="transparent">
<ImportStructure src="../assets/assemblies/assembler_tower.snbt" />
<IsometricCamera yaw="195" pitch="30" />
</GameScene>
