Ir al contenido

Ejecuta Pilas

Ejecuta Pilas

En Wired Code: effect.call_stacks

Ejecuta las pilas que hay en los furnis que elijas, como si fueran una continuación de la actual.

Es la forma de reutilizar trabajo. Si tienes una secuencia que se usa desde cinco sitios distintos —arrancar la partida, repartir premios, limpiar el tablero—, la montas una sola vez en su baldosa y todas las demás la llaman.

La ventaja frente a copiar la pila cinco veces es evidente el día que hay que cambiarla: se toca en un sitio.

A diferencia de las señales, aquí no se anuncia nada: se ejecutan exactamente las pilas de los furnis que le des como fuente —los que marques a mano, o los del selector, los de la señal o el desencadenante—, y ninguna otra.

La pila llamada no comprueba sus condiciones. El sistema evalúa sus selectores y sus complementos, pero se salta las condiciones y va derecho a los efectos. Es la trampa más cara de esta pieza: si pones una condición en la pila llamada creyendo que la protege, no protege nada. Las condiciones tienen que estar en la pila que llama.

La pila llamada hereda el contexto de la que llama. Ve el mismo causante —tanto el usuario como el furni—, el mismo equipo, el mismo usuario clicado o alcanzado y la misma señal. Así que dentro puedes usar fuentes como “Usar furni desencadenante” o “Usar usuarios de señal” y apuntan a lo que disparó la pila de origen. Si esa pila nació de Transacción Completada o de Transacción Fallida, la pila llamada también lee las variables de la transacción, y la que llama las conserva al volver.

Lo único que no se hereda es la selección: la pila llamada evalúa sus propios selectores desde cero, que es justo lo que la hace reutilizable. Si necesitas que la pila llamada trabaje sobre furnis concretos, pásaselos con una señal: aquí la fuente decide qué pilas se ejecutan, no sobre qué actúan.

Ventana de configuración de Ejecuta Pilas

Seleccionar la fuente de furnis, dentro de Mostrar opciones avanzadas: de dónde salen los furnis cuyas pilas se ejecutan. De fábrica es Usar furnis seleccionados, y entonces los picas uno a uno en la sala; también puede ser Usar furnis de Selector, Usar furnis de Señal o Usar furni desencadenante, y se ejecutan las pilas que haya en esos furnis.

Una rutina de inicio compartida:

Pila A (sin causante)
│
├─ Efecto: A cero
│ ├─ Elige Furni ............................. Balón clásico · Portón
│ └─ Elige el criterio a programar ........... Estado actual · Dirección actual · Posición actual
│
├─ Efecto: Control de Contador
│ ├─ Elige Furni ............................. Contador Wired Pequeño
│ └─ Opciones ................................ Iniciar
│
└─ Efecto: Mensaje
├─ ¿Cuál es el mensaje? .................... "¡Nueva partida!"
└─ Toda la sala
Pila B
│
├─ Causante: Click en Furni
│ └─ Elige Furni ............................. Interruptor de Suelo 1
│
└─ Efecto: Ejecuta Pilas
└─ Elige Furni ............................. la baldosa de la Pila A

La pila llamada no necesita causante. Es la clave de este efecto: una pila con solo condiciones y efectos no se ejecuta nunca por su cuenta, y es exactamente lo que quieres para una rutina que solo debe correr cuando alguien la llama.

Se ejecuta al final de la pila. Como todos los efectos que llaman a otras pilas, el sistema lo coloca en la última tanda —solo Escribir en Registro va después—, para que lo que hace la pila actual esté terminado antes de que arranque la siguiente.

La pila llamada no puede llamar a otra. Sus propios Ejecuta Pilas se saltan, así que A → B → C se queda en B, y con esta pieza sola no hay forma de montar un círculo A → B → A. Si necesitas encadenar más de un salto, que la segunda pila avise con Enviar Señal, que sí sale desde una pila llamada. Eso sí: en cuanto sales de esta pieza —por una señal, o por un causante que se dispare con lo que hagan los efectos— vuelves a poder cerrar un bucle, así que repasa el camino.

No confundir con Enviar Señal. Esto llama a pilas concretas; la señal avisa a todas las que estén escuchando, las conozcas o no.