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

# Autocrafteo

### El Importante

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

El autocrafteo es una de las funciones principales de AE2. En lugar de tener que craftear manualmente el número correcto de cada sub-ingrediente
y trabajar duro como una especie de *plebeyo*, puedes pedirle a tu sistema ME que lo haga por ti. O craftear ítems automáticamente y exportarlos a algún lugar.
O mantener automáticamente ciertas cantidades de ítems en stock a través de un comportamiento emergente inteligente. También funciona con fluidos, y, si tienes
ciertos addons para tipos de materiales de mods extra, como gases de Mekanism, esos materiales también. Es bastante genial.

Es un tema bastante complejo, así que prepárate y vamos allá.

Una configuración de autocrafteo consiste en 3 cosas:
- La cosa que envía la solicitud de crafteo
- La CPU de crafteo
- El <ItemLink id="pattern_provider" />.

Aquí está lo que sucede:

1.  Algo crea una solicitud de crafteo. Esto puedes ser tú en la terminal haciendo clic en algo autocrafteable,
    o un bus de exportación o interfaz con una tarjeta de crafteo solicitando uno de los ítems que están configurados para exportar/mantener en stock.

* (**IMPORTANTE:** usa lo que tengas asignado a "seleccionar bloque" (usualmente clic central del ratón) para solicitar crafteos de algo que ya tienes en stock, esto puede entrar en conflicto con mods de ordenamiento de inventario),

2.  El sistema ME calcula los ingredientes requeridos y los pasos de crafteo previos para cumplir la solicitud, y los almacena en la CPU de crafteo seleccionada.

3.  El <ItemLink id="pattern_provider" /> con el [patrón](../items-blocks-machines/patterns.md) relevante empuja los ingredientes especificados en el patrón a cualquier inventario adyacente.
    En el caso de una receta de mesa de crafteo (un "patrón de crafteo") esto será un <ItemLink id="molecular_assembler" />.
    En el caso de una receta que no es de crafteo (un "patrón de procesamiento") esto será algún otro bloque o máquina o una configuración elaborada controlada por redstone.

4.  El resultado del crafteo es devuelto al sistema de alguna manera, ya sea por bus de importación, interfaz, o empujando el resultado de vuelta a un proveedor de patrones.
    **Nota que debe ocurrir un evento de "ítem entrando al sistema", no puedes simplemente enviar el resultado por tubería a un cofre con un <ItemLink id="storage_bus" /> en él.**

5.  Si ese crafteo es un prerrequisito para otro crafteo en la solicitud, los ítems se almacenan en esa CPU de crafteo y luego se usan en ese crafteo.

## Recetas Recursivas

<ItemImage id="minecraft:netherite_upgrade_smithing_template" scale="4" />

Una cosa que el algoritmo de autocrafteo *no puede* manejar son las recetas recursivas. Por ejemplo, recetas de duplicación como
"1 polvo de redstone = 2 polvos de redstone", al arrojar redstone en una pila de maná de Botania. Otro ejemplo serían las plantillas de herrería
en Minecraft vanilla. Sin embargo, hay [una forma de manejar estas recetas.](../example-setups/recursive-crafting-setup.md)

# Patrones

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

Los patrones se hacen en una <ItemLink id="pattern_encoding_terminal" /> a partir de patrones en blanco.

Hay varios tipos diferentes de patrones para cosas diferentes:

* Los <ItemLink id="crafting_pattern" /> codifican recetas hechas por una mesa de crafteo. Pueden ponerse directamente en un <ItemLink id="molecular_assembler" /> para hacer que
    craftee el resultado siempre que se le den los ingredientes, pero su uso principal es en un <ItemLink id="pattern_provider" /> junto a un ensamblador molecular.
    Los proveedores de patrones tienen un comportamiento especial en este caso, y enviarán el patrón relevante junto con los ingredientes a los ensambladores adyacentes.
    Dado que los ensambladores auto-expulsan los resultados de los crafteos a los inventarios adyacentes, un ensamblador en un proveedor de patrones es todo lo que se necesita para automatizar patrones de crafteo.

***

* Los <ItemLink id="smithing_table_pattern" /> son muy similares a los patrones de crafteo, pero codifican recetas de mesa de herrería. También son automatizados por un proveedor
    de patrones y un ensamblador molecular, y funcionan exactamente de la misma manera. De hecho, los patrones de crafteo, herrería y cortapiedras pueden ser
    usados en la misma configuración.

***

* Los <ItemLink id="stonecutting_pattern" /> son muy similares a los patrones de crafteo, pero codifican recetas de cortapiedras. También son automatizados por un proveedor
    de patrones y un ensamblador molecular, y funcionan exactamente de la misma manera. De hecho, los patrones de crafteo, herrería y cortapiedras pueden ser
    usados en la misma configuración.

***

* Los <ItemLink id="processing_pattern" /> son de donde proviene mucha de la flexibilidad en el autocrafteo. Son el tipo más generalizado, simplemente
    diciendo "si un proveedor de patrones empuja estos ingredientes a inventarios adyacentes, el sistema ME recibirá estos ítems en algún punto en el
    futuro cercano o lejano". Son la forma en que autocraftearás con casi cualquier máquina de mod, u hornos y similares. Debido a que son tan
    generales en uso y no les importa lo que pase entre empujar los ingredientes y recibir el resultado, puedes hacer cosas realmente locas, como ingresar
    los ingredientes en una cadena de producción de fábrica compleja entera que ordenará cosas, tomará otros ingredientes de granjas de producción infinita,
    imprimirá la totalidad del guion de la película Bee Movie, al sistema ME no le importa siempre y cuando obtenga el resultado que el patrón especifica. De hecho,
    ni siquiera le importa si los ingredientes están relacionados de alguna manera con el resultado. Podrías decirle "1 tablones de cerezo = 1 estrella del nether" y tener
    tu granja de wither matando un wither al recibir unos tablones de cerezo y funcionaría.

Múltiples <ItemLink id="pattern_provider" />s con patrones idénticos son soportados y funcionan en paralelo. Adicionalmente, puedes tener un patrón que diga,
por ejemplo, 8 adoquines = 8 piedras en lugar de 1 adoquín = 1 piedra, y el proveedor de patrones insertará 8 adoquines en
tu configuración de fundición en cada operación en lugar de uno a la vez.

## La Forma Más General de "Patrón"

De hecho hay una forma aún más "general" de "patrón" que un patrón de procesamiento. Un <ItemLink id="level_emitter" /> con una tarjeta de crafteo puede configurarse
para emitir una señal de redstone para craftear algo. Este "patrón" no define, ni siquiera se preocupa por los ingredientes.
Todo lo que dice es "Si emites redstone desde este emisor de niveles, el sistema ME recibirá este ítem en algún punto en el
futuro cercano o lejano". Esto se usa usualmente para activar y desactivar granjas infinitas que no requieren ingredientes de entrada,
o para activar un sistema que maneja recetas recursivas (que el autocrafteo estándar no puede entender) como, por ejemplo, "1 adoquín = 2 adoquines"
si tienes una máquina que duplica adoquines.

# La CPU de Crafteo

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

Las CPUs de crafteo gestionan las solicitudes/trabajos de crafteo. Almacenan los ingredientes intermedios mientras los trabajos de crafteo con múltiples pasos están
llevándose a cabo, y afectan qué tan grandes pueden ser los trabajos, y hasta cierto punto qué tan rápido se completan. Son multibloques, y
deben ser prismas rectangulares con al menos 1 almacenamiento de crafteo.

Las CPUs de crafteo están hechas de:

* (Requerido) [Almacenamientos de crafteo](../items-blocks-machines/crafting_cpu_multiblock.md), disponibles en todos los tamaños de célula estándar (1k, 4k, 16k, 64k, 256k). Almacenan los ingredientes e
    ingredientes intermedios involucrados en un crafteo, por lo que se requieren almacenamientos más grandes o en mayor cantidad para que la CPU maneje trabajos de crafteo
    con más ingredientes.
* (Opcional) <ItemLink id="crafting_accelerator" />, hacen que el sistema envíe lotes de ingredientes desde los proveedores de patrones más a menudo.
    Esto permite, digamos, que un proveedor de patrones rodeado por 6 ensambladores moleculares envíe ingredientes a (y por lo tanto use) los 6 a la vez en lugar de solo uno.
* (Opcional) <ItemLink id="crafting_monitor" />, muestran el trabajo que la CPU está manejando en el momento. Pueden colorearse vía un <ItemLink id="color_applicator" />
* (Opcional) <ItemLink id="crafting_unit" />, simplemente llenan espacio para hacer que la CPU sea un prisma rectangular.

Cada CPU de crafteo maneja 1 solicitud o trabajo, así que si quieres solicitar tanto un procesador de cálculo como 256 piedras lisas a la vez, necesitas 2 multibloques de CPU.

Pueden configurarse para manejar solicitudes de jugadores, automatización (buses de exportación e interfaces), o ambos.

# Proveedores de Patrones

<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>

Los <ItemLink id="pattern_provider" /> son la forma principal en la que tu sistema de autocrafteo interactúa con el mundo. Empujan los ingredientes en
sus [patrones](../items-blocks-machines/patterns.md) a inventarios adyacentes, y los ítems pueden insertarse en ellos para insertarlos en la red. A menudo
se puede ahorrar un canal enviando por tubería la salida de una máquina de vuelta a un proveedor de patrones cercano (a menudo el que empujó los ingredientes)
en lugar de usar un <ItemLink id="import_bus" /> para jalar la salida de la máquina hacia la red.

De notar, dado que empujan los ingredientes directamente desde el [almacenamiento de crafteo](../items-blocks-machines/crafting_cpu_multiblock.md#crafting-storage) en una CPU de crafteo,
nunca contienen realmente los ingredientes en su inventario, así que no puedes extraer con tuberías desde ellos. Tienes que hacer que el proveedor empuje
a otro inventario (como un barril) y luego extraer con tubería desde ese.

También de notar, el proveedor tiene que empujar TODOS los ingredientes a la vez, no puede empujar medios lotes. Esto es útil
para explotar.

Los proveedores de patrones tienen una interacción especial con interfaces en [subredes](../ae2-mechanics/subnetworks.md): si la interfaz no está modificada (nada en las ranuras de solicitud)
el proveedor se saltará la interfaz completamente y empujará directamente al [almacenamiento](../ae2-mechanics/import-export-storage.md) de esa subred,
saltándose la interfaz y no llenándola con lotes de recetas, y más importante, no insertando el siguiente lote hasta que haya espacio en el almacenamiento.

Múltiples proveedores de patrones con patrones idénticos son soportados y funcionan en paralelo.

Los proveedores de patrones intentarán distribuir (round-robin) sus lotes a todas sus caras, usando así todas las máquinas adjuntas en paralelo.

## Variantes

Los Proveedores de Patrones vienen en 3 variantes diferentes: normal, direccional, y plano. Esto afecta a qué lados específicos empujan
ingredientes, de cuáles reciben ítems, y a cuáles proveen conexión de red.

* Los proveedores de patrones normales empujan ingredientes a todos los lados, reciben entradas de todos los lados, y, como la mayoría de máquinas de AE2, actúan
    como un cable proveyendo conexión de red a todos los lados.

* Los proveedores de patrones direccionales se hacen usando una <ItemLink id="certus_quartz_wrench" /> en un proveedor de patrones normal para cambiar su
    dirección. Solo empujan ingredientes al lado seleccionado, reciben entradas de todos los lados, y específicamente no proveen una conexión de red
    en el lado seleccionado. Esto les permite empujar a máquinas de AE2 sin conectar redes, si quieres hacer una subred.

* Los proveedores de patrones planos son una [subparte de cable](../ae2-mechanics/cable-subparts.md), y por lo tanto múltiples pueden colocarse en el mismo cable, permitiendo configuraciones compactas.
    Actúan similar al lado seleccionado en un proveedor de patrones direccional, proveyendo patrones, recibiendo entradas, y no
    proveyendo una conexión de red en su cara.

Los proveedores de patrones pueden intercambiarse entre normal y plano en una cuadrícula de crafteo.

## Configuraciones

Los proveedores de patrones tienen una variedad de modos:

* **Modo de Bloqueo** detiene al proveedor de empujar un nuevo lote de ingredientes si ya hay
    ingredientes en la máquina.
* **Bloquear Crafteo** puede bloquear el proveedor bajo varias condiciones de redstone, o hasta que el resultado del
    crafteo previo sea insertado en ese proveedor de patrones específico.
* El proveedor puede mostrarse u ocultarse en las <ItemLink id="pattern_access_terminal" />.

## Prioridad

Las prioridades pueden establecerse haciendo clic en la llave inglesa en la parte superior derecha de la GUI. En el caso de varios [patrones](../items-blocks-machines/patterns.md)
para el mismo ítem, los patrones en proveedores con mayor prioridad serán usados sobre patrones en proveedores con menor prioridad,
a menos que la red no tenga los ingredientes para el patrón de mayor prioridad.

# Ensambladores Moleculares

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

El <ItemLink id="molecular_assembler" /> toma ítems ingresados en él y lleva a cabo la operación definida por un <ItemLink id="pattern_provider" /> adyacente,
o el <ItemLink id="crafting_pattern" />, <ItemLink id="smithing_table_pattern" />, o <ItemLink id="stonecutting_pattern" /> insertado,
luego empuja el resultado a inventarios adyacentes.

Su uso principal es junto a un <ItemLink id="pattern_provider" />. Los proveedores de patrones tienen un comportamiento especial en este caso,
y enviarán información sobre el patrón relevante junto con los ingredientes a los ensambladores adyacentes. Dado que los ensambladores auto-expulsan los resultados de los
crafteos a inventarios adyacentes (y por lo tanto a las ranuras de retorno del proveedor de patrones), un ensamblador en un proveedor de patrones
es todo lo que se necesita para automatizar patrones de crafteo.

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