2.6 KiB
PATTERN
A board built from a grid of fixed-size tiles arranged in multiple layers. Used in flying minigames such as the dragon-rider on Smokręt (Reksio i Wehikuł Czasu) and the broomstick (Reksio i Czarodzieje) — most likely to store the scrolling level map. Analysis of this type is still ongoing.
Fields
GRIDX
INTEGER GRIDX
Width of a single tile in pixels.
GRIDY
INTEGER GRIDY
Height of a single tile in pixels.
HEIGHT
INTEGER HEIGHT
Board height.
LAYERS
INTEGER LAYERS
Number of layers.
PRIORITY
INTEGER PRIORITY
Board render priority (Z position).
TOCANVAS
BOOL TOCANVAS
Whether the board is drawn on the canvas.
VISIBLE
BOOL VISIBLE
Whether the board is visible.
WIDTH
INTEGER WIDTH
Board width.
Methods
ADD
void ADD(STRING tileId, INTEGER posX, INTEGER posY, STRING animoName, [INTEGER layer])
Places a graphic onto the board.
Parameters
tileId— tile identifier.posX,posY— tile coordinates.animoName— name of theANIMOvariable to display in the tile.layer— (optional) layer number.
Examples
PATBOARD^ADD(["E"+_I_],VARX,VARY,VARSTRING0,0);
PATTERNFOREST^ADD([VARSTRING0+"_"+_I_],VARINT1,VARINT2,VARSTRING1,VARINT3);
GETGRAPHICSAT
STRING GETGRAPHICSAT(INTEGER posX, INTEGER posY, BOOL onlyVisible, BOOL ignoreAlpha, INTEGER minZ, [INTEGER maxZ])
Returns the name of the tile at the given point. Behaves analogously to CANVAS_OBSERVER.GETGRAPHICSAT, but limited to this board's tiles.
Parameters
posX,posY— query point coordinates.onlyVisible— ifTRUE, only visible tiles are considered.ignoreAlpha— ifTRUE, only the tile's rectangle is tested; ifFALSE, the pixel's alpha channel is also checked.minZ— minimum layer.maxZ— (optional) maximum layer.
Returns: STRING — tile name or "NULL".
Examples
PATTERNMASKKRET^GETGRAPHICSAT([ANNKRET^GETCENTERX()+20],ANNKRET^GETCENTERY(),TRUE,FALSE,0,1);
PATTERNFIRE^GETGRAPHICSAT(ANNCOLLUP^GETCENTERX(),ANNCOLLUP^GETCENTERY(),FALSE,FALSE,0);
MOVE
void MOVE(INTEGER offsetX, INTEGER offsetY)
Moves the board by the given X/Y offsets.
Parameters
offsetX,offsetY— translation vector.
Examples
PATBOARD^MOVE(0,-3000);
PATTERNBKG^MOVE(VARINT0,0);
Signals
ONINIT
Fired when the object is initialised.
ONSIGNAL
Fired when a signal arrives (see Events and signals).