Close
    Search Buscar

    Pulsos de 0 tick

    Quien soy
    Judit Llordes
    @juditllordes
    Autor y referencias

    Un pulso de 0 tick es un pulso de redstone, que se enciende y apaga con un solo tick de juego. Esto es posible, porque las actualizaciones de bloque se calculan una a la vez en un orden determinado, incluso si ocurren en el mismo tick del juego. Para comprender la tecnología de 0 ticks, primero hay que reconocer que solo porque dos cosas suceden en el mismo tick del juego, no suceden al mismo tiempo. Siempre hay una cosa que sucede primero y otra que sucede en segundo lugar.



    Contenido

    • 1 Problemas con el orden de actualización del bloque
    • 2 Por qué son útiles las prioridades de los mosaicos
      • 2.1 Encadenamiento de repetidores y comparadores
    • 3 Por qué es útil retraer el orden de eventos de bloque
      • 3.1 Encadenamiento de pistones
    • 4 efectos de pistón extraños de Test137e29 (1.8 y anteriores)
      • 4.1 Tirando de un pistón extendido:
      • 4.2 Empujar un pistón mientras se extiende:
      • 4.3 Pistones con múltiples cabezas:
    • 5 Cómo reaccionan los pistones a pulsos de 0 tick

    Problemas con el orden de actualización del bloque

    Para muchos bloques, el orden de actualización del bloque dependerá de la ubicación y, por lo tanto, parecerá aleatorio para la mayoría de los seres humanos. Pero hay ciertos eventos activados por redstone, que esperan de manera confiable a que casi todos los demás bloques se actualicen primero, lo que se puede usar para compensar el orden de actualización que de otro modo sería aleatorio. Sin embargo, debe mencionarse que a veces las cosas en la tecnología de 0 ticks pueden parecer completamente absurdas y extrañas, debido a la constante aleatoriedad introducida por el orden de actualización.


    Por qué son útiles las prioridades de los mosaicos

    El azul es de entrada. El bloque rojo obtiene una salida de pulso de 0 tick. Este generador de 0 ticks fue descubierto por primera vez por test137e29.


    Los repetidores y comparadores se actualizan en la fase de tic-tac de un gametick, lo que significa que tienden a disparar antes en un gametick en comparación con los generadores de 0-tick puramente basados ​​en pistones. Los comparadores también (casi) siempre se actualizarán después de los repetidores, lo que significa que uno puede garantizar salidas de una línea antes que otra usando un repetidor en la línea que necesita actualizarse primero y luego usar un comparador para actualizar la línea que necesita salir más tarde.


    Este generador de 0 ticks funciona de la siguiente manera: Cuando se enciende la palanca, primero habrá un retraso de 1 tick tanto del repetidor como del comparador. Después de ese retraso de 1 tick, el repetidor y el comparador se activan en el mismo tick de juego: Primero, el repetidor se actualizará, porque tienen una prioridad de tick más baja que los comparadores. La redstone de salida será alimentada por el repetidor, y todo lo que esté conectado al bloque de salida rojo alimentará y programará sus propios eventos de bloques o mosaicos. El comparador esperará con la actualización hasta que se actualice toda la redstone de salida que ha sido activada por el repetidor. Solo después de que se resuelva todo lo conectado al repetidor, el comparador se activará y activará un pistón, que interrumpirá la señal de redstone. Por lo tanto, el polvo de piedra roja conectado a la salida se activará y desactivará en 1 tic del juego. Casi todos los componentes de redstone, con la excepción de los pistones que habrían sido alimentados por cuasi-conectividad, reaccionarán a este pulso de 0 tick, ya que la diferencia en la prioridad de tick de mosaico asegurará que la salida reaccione antes que el pistion dentro del generador de 0 tick. .


    Encadenando repetidores y comparadores

    Como se mencionó anteriormente, en cada juego marque primero todos los repetidores se actualizarán, y luego, todos los comparadores se actualizarán. Sin embargo, todavía queda la siguiente pregunta: si dos repetidores se actualizan dentro del mismo juego, ¿cuál se actualiza primero? La respuesta a esa pregunta es: El repetidor que recibió por primera vez su entrada hace 2 tics, también saldrá primero. Esto hace que los repetidores y comparadores sean aún más útiles, ya que se pueden hacer las siguientes cosas:


    Si se mueve la palanca de la imagen de la derecha, los bloques de hierro y los bloques técnicos conectados a ellos se actualizarán en el orden que se muestra numéricamente en la imagen. Los bloques 1 y 2, por supuesto, se actualizarán antes del 3 y 4, porque hay repetidores activándolos, en lugar de comparadores. Sin embargo también está garantizado que el bloque 1 se activará antes que el bloque 2, porque el repetidor que activa el bloque 1 se activará antes que el repetidor que activa el bloque 2, ya que el primer repetidor es activado por un repetidor, mientras que el segundo repetidor es activado por un comparador. Por razones similares, también se garantiza que el bloque 3 se active antes que el bloque 4. Incluso es posible hacer cadenas más largas de repetidores y comparadores para obtener más de 4 actualizaciones en un orden confiable.

    Por qué es útil retraer el orden de eventos de bloque

    Un pistón en un estado defectuoso.


    Cuando un pistón se extiende y se desactiva y actualiza, programará un evento de bloque al final de la lista de eventos de bloque, y el pistón no comenzará a retraerse hasta que se haya procesado su evento de bloque. Los eventos de bloque de pistón pueden hacer que otros pistones programen eventos de bloque, que se colocarán al final de la lista, por lo que se puede minupular el orden en el que están programados los eventos de bloque para que se elimine una fuente de energía después de que se active la fuente de energía en el gametick.

    Un pistón esperará a que se procesen fases anteriores de un gametick, como mosaicos, y eventos de bloque anteriores antes de que se haya procesado su evento de bloque. Cuando se ejecuta un evento de bloque de pistion, este girará solo, y si se extiende o si hay un pistón rígido programado para retraerse, el bloque que está enfrente de él en el bloque 36. El bloque 36 no puede emitir señales de redstone y tampoco puede cortar. líneas de redstone, por lo que el componente de redstone se puede alimentar sin cortar una línea de polvo de redstone, o se puede quitar una fuente de energía girando el bloque que está alimentando una fuente de redstone o permitiendo una conexión entre una fuente de energía y la salida en el bloque 36.


    Este es un generador de pulsos que alimenta directamente un bloque, mostrado por primera vez por Defanive en YouTube. También corta la señal mediante una retracción del pistón, lo que hace que el pulso de 0 tick sea lo suficientemente largo como para hacer que todos los bloques técnicos reaccionen a él, independientemente de la dirección o posición.

    En este generador de pulsos de 0 ticks, el polvo de redstone se activará y el bloque sólido, así como la actualización de cualquier bloque dentro del rango de actualización de polvo de redstone, la programación de mosaicos y / o eventos de bloque conectados a la salida, así como la programación de un evento de bloque. para un pistón en la parte superior. Todos los mosaicos se ejecutarán y luego ocurrirá la etapa de evento de bloque. El pistón en la parte superior comenzará a extenderse, lo que convertirá el bloque de piedra roja en el bloque 36, lo que hace que el pistón inferior se apague y actualice el pistón inferior. Esto programará un evento de bloqueo para que el pistón inferior se retraiga al final de la lista. Cuando se ejecuta el evento de bloqueo del pistón inferior, comenzará a retraerse, lo que eliminará la fuente de alimentación del pistón superior y actualizará el pistón superior, que programará un evento de bloqueo de retracción al final de la lista. Cuando se ejecuta el evento de bloqueo del pistón superior, el pistón termina inmediatamente su extensión y comienza a retraerse, lo que hace que el bloque de piedra roja caiga instantáneamente. Este dispositivo hará otras cosas después de esto, pero son irrelevantes en lo que respecta a la generación de pulsos de 0 ticks.

    Se pueden encadenar múltiples generadores de pulsos de tic cero, y si el generador usa bloques de piedra roja, la señal puede tomarse usando polvo de piedra roja. Esto fue mostrado por primera vez por pi314159265358978.

    Encadenamiento de pistones

    Debido a que los eventos de bloque de pistón siempre se agregan al final de la lista, pistones. El objetivo de encadenar pistones en un generador de 0 ticks es ejecutar eventos de bloque de extensión antes de que se retire la fuente de energía, o eventos de bloque de retracción antes de agregar la fuente de energía, porque si se ejecuta un bloque de pistón programado, pero la fuente de energía es inconsistente con lo que el evento de bloqueo está tratando de hacer, el pistón no responderá. Aunque hay no hay tal cosa como bloquear grupos de eventos, puede resultar útil pensar que los eventos de bloque de pistón están en grupos. Los eventos de bloque programados por mosaicos, las entradas de los jugadores o la fase de entidad del juego anterior se pueden considerar en un primer grupo, y los eventos de bloque programados por el grupo 1, los eventos de bloque se pueden considerar en el grupo 1, y los eventos de bloque programados por el bloque del grupo 2 los eventos se pueden considerar en el grupo 3, y así sucesivamente. El orden de los eventos de bloque en un grupo se basa en cuándo se determinan los eventos de bloque en función del orden en el que se programaron, por lo que se debe tener cuidado al usar el polvo de redstone ya que es de ubicación. La programación del evento de bloque que cambia la fuente de energía en un grupo después de lo cual se programan los eventos de bloque en la salida asegurará que cualquier construcción de 0 ticks no sea de ubicación.

    El generador de 0 ticks que se muestra a la derecha hace uso de cadenas de actualización de pistón. Cuando se reduce la potencia de la línea de redstone superior, el pistón impulsado directamente por la línea de redstone no se corta. Esto programará un evento de bloqueo solo para este pistón. Cuando se ejecuta el evento de bloqueo para este pistón, actualizará el pistón con brote junto a él, programando un evento de bloqueo, mientras que al mismo tiempo descorte el cable de piedra roja, lo que programará un evento de bloqueo para el pistón en la salida. Una vez programados estos dos eventos de bloque, ambos se ejecutarán. El pistón en la salida comenzará a extenderse y el pistón en el medio se retraerá, lo que actualizará el pistón que sostiene el bloque de piedra roja. Después de que ambos eventos de bloque se ejecuten, solo entonces se ejecutará el evento de bloque asociado con el pistón de bloque de piedra roja. Esto hará que dicho pistón se retraiga, quitando la energía de la línea de redstone y programando otro evento de bloqueo para el pistón desactualizado. Este evento de bloqueo ocurrirá cuando el pistón aún se esté extendiendo, por lo que el pistón terminará instantáneamente de extenderse y comenzará a retraerse.


    Los generadores de 0 ticks que involucran pistones se utilizan ampliamente porque es fácil de controlar cuándo suceden los pulsos de 0 ticks producidos por ellos y cuánto duran.

    Efectos de pistón extraños de Test137e29 (1.8 y anteriores)

    Mientras un pistón está en su estado defectuoso, la base del pistón se puede mover. Esto se puede utilizar para crear los siguientes efectos inesperados.

    Tirando de un pistón extendido:

    Si la palanca de la imagen está apagada, el pistón de la izquierda podrá tirar del pistón de la derecha, aunque el pistón de la derecha esté extendido y se supone que no se puede mover. Esto funciona de la siguiente manera:

    .

    .

    Cuando se apaga la palanca, primero habrá un retraso de un tick r del repetidor y el comparador, antes de que suceda cualquier otra cosa. Luego, dentro de un juego, marque las siguientes actualizaciones:

    .

    .

    .

    Primero, el repetidor se apagará, porque los repetidores siempre se actualizan antes que los comparadores. Esto hará que el pistón de la izquierda se convierta en su estado defectuoso.

    .

    .

    Después de eso, el comparador se apagará y el pistón de la derecha se convertirá en su estado defectuoso.

    .

    .

    Ahora, dado que no hay nada más que actualizar, los pistones, que están en estado de falla, comenzarán a retraerse. Sin embargo, dado que el pistón de la izquierda se transformó primero en su estado de falla, también se retraerá primero (es realmente sorprendente lo inuitivo y confiable que es el orden de actualización de las retracciones del pistón). Cuando el pistón de la izquierda se retrae, intentará tirar del pistón de la derecha, que todavía está en su estado defectuoso. Dado que la base del pistón de un pistón en un estado de falla es móvil, el pistón de la izquierda tirará con éxito del pistón de la derecha.

    Empujando un pistón, mientras se extiende:

    El comparador en el medio es realmente innecesario con esta configuración precisa.

    Si a un pistón se le da un pulso de tic cero, el pistón estará en un estado muy similar al estado de falla, después de que se apague el pulso de tic cero. La única diferencia será que no hay una cabeza de pistón delante de él, sino el bloque 36 de una cabeza de pistón que se extiende. En este otro estado de falla, la base del pistón también es móvil. El artilugio de la derecha usará esto para empujar y extender un pistón al mismo tiempo. Esto da como resultado un bloque 36 de una cabeza de pistón que se extiende, que no está conectada a ningún pistón. El bloque 36 ignorará el hecho de que no hay base de pistón, pero después de 3 tics de juego, una vez que el bloque 36 se convierta en una cabeza de pistón, la cabeza de pistón se dará cuenta de que no tiene base de pistón y se borrará a sí misma.

    Pistones con múltiples cabezas:

    Creando un pistón con dos cabezas usando tiempos comparador-repetidor.

    Si se mueve un pistón, mientras se extiende, y se empuja otro pistón en su posición en menos de 3 tics de juego, entonces la cabeza de pistón del primer pistón no se borrará, porque reconoce que está conectada a una base de pistón, sin comprobar si ese pistón está orientado en la misma dirección que la cabeza del pistón. Esto significa que se pueden obtener muchas configuraciones extrañas, como pistones con múltiples cabezas.

    Cómo reaccionan los pistones a los pulsos de 0 tick

    Si un pistón pegajoso se convierte de su estado de falla a su estado de retracción, mientras que un bloque 36 que resultó de una extensión del pistón (y no de una retracción) está frente al pistón pegajoso, y si ese bloque 36 se mueve en la dirección en la que el pistón pegajoso el pistón está mirando, entonces ese bloque 36 se convertirá instantáneamente en su forma de bloque en su destino. Lo que esto significa en la práctica es que si un pistón pegajoso recibe un pulso de 1 tick, el bloque frente a su cara terminará su extensión después de un tick, en lugar de los 3 tics habituales. Lo que esto significa en relación con 0 pulsos de tick es que si un pistón pegajoso recibe un 0 pulsos de tick, el bloque frente a su cara terminará su extensión en 0 ticks, lo que significa que se teletransporta instantáneamente. Sin embargo, esto solo se aplica a pistones pegajosos. Si un pistón normal recibe un pulso de 0 tick, el bloque frente a su cara necesitará 3 tics para viajar al siguiente bloque.



    Añade un comentario de Pulsos de 0 tick
    ¡Comentario enviado con éxito! Lo revisaremos en las próximas horas.