Conveyor

From Wiki of ZZT
Revision as of 09:01, 26 December 2025 by RT-55J (talk | contribs) (→‎Draw Procedure: Clarification/correction)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Conveyor
ZZT-OOP nameClockwise
Internal ID16 (0x10)
Character#char 47 / (0x2F)
CategoryItem
Stats
Default cycle3
Other traits
Effect on movementWall, Conveyance
Destructible?no
Uses ZZT-OOP color names?Yes
Conveyor
ZZT-OOP nameClockwise
Internal ID17 (0x11)
Character#char 92 \ (0x5C)
CategoryItem
Stats
Default cycle2
Other traits
Effect on movementWall, Conveyance
Destructible?no
Uses ZZT-OOP color names?Yes

Conveyors, referred to internally as clockwise and counter, are devices that move any pushable element in their 8 adjacent tiles around in a circle (with the direction depending on their type). Conveyors can be used to make one-way passages that object can still pass through, to make movement awkward, or for other purposes.

Despite moving pushable objects, conveyors do not actually push them. This means, for instance, that if you have a line of boulders exiting a tunnel of conveyors, that the boulders will go no further than the farthest-most adjacent tile of the last conveyor. Conversely, this also means that it is possible for the player to push a row of boulders against the direction of conveyor movement (at least, until the player itself comes into contact with the conveyors).

Conveyors do not work on on sliders.

Bugs

Conveyors have two main bugs. One is a visual glitch that prevents an element from being drawn under certain circumstances. Another is a glitch that can cause stats to swap order, which can even delete the player under certain circumstances (!!).

A detailed explanation of these glitches can be found in this forum post.

TODO: Bring the information from that forum post over to this here wiki.

Draw Procedure

Clockwise and counter-clockwise conveyors display the same sequence of characters, but in the opposite order:

Character CW CCW
#char 179 (0xB3) 0 3
#char 47 / (0x2F) 1 2
#char 196 (0xC4) 2 1
#char 92 \ (0x5C) 3 0

Conveyors are redrawn in their tick function, but their animation rate is tied to the default cycle value of their elements (either cycle 2 or cycle 3). This means that cycle 1 conveyors will not appear to move any faster, and that other non-standard cycle values might appear stuttery or skip animation frames.