Document groups and special node fields
This commit is contained in:
parent
6579b56974
commit
9b1768b51a
85
CODE_DOCUMENTATIION.md
Normal file
85
CODE_DOCUMENTATIION.md
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
# Code Documentation for Lazarr!
|
||||||
|
This file documents the code of this game.
|
||||||
|
This file is still in WIP.
|
||||||
|
|
||||||
|
## Function reference
|
||||||
|
TODO
|
||||||
|
|
||||||
|
## Node special fields reference
|
||||||
|
This is a list of special fields for node definitions that Lazarr! recognizes:
|
||||||
|
|
||||||
|
* `_lzr_active`: If the node has an 'active' counterpart, this contains the
|
||||||
|
itemstring of that 'active' counterpart.
|
||||||
|
Used by blocks that interact with laser
|
||||||
|
* `_lzr_inactive`: If the node has an 'inactive' counterpart, this contains the
|
||||||
|
itemstring of that 'inactive' counterpart.
|
||||||
|
Used by blocks that interact with laser
|
||||||
|
* `_lzr_on_toggle(pos, node)`: Function is called when a special
|
||||||
|
tool is used on this node.
|
||||||
|
`pos` is node position and `node` is node table
|
||||||
|
* `_lzr_unlock(pos, node)`: Function is called on chests to unlock it.
|
||||||
|
`pos` is node position and `node` is node table
|
||||||
|
* `_lzr_send_treasure(pos, node)`: Function is called on open chests
|
||||||
|
with treasure to start an animation that "sends" the treasure into
|
||||||
|
the sky. Used when a level is completed.
|
||||||
|
`pos` is node position and `node` is node table
|
||||||
|
|
||||||
|
## Node groups reference
|
||||||
|
This is a reference of all groups used for nodes.
|
||||||
|
|
||||||
|
### Digging groups
|
||||||
|
* `breakable=1`: Node is breakable with Ultra Pickaxe
|
||||||
|
* `punchdig=1`: Node breaks when punched
|
||||||
|
* `takable=1`: Node can be taken by player to be placed somewhere else
|
||||||
|
|
||||||
|
### Gameplay groups
|
||||||
|
* `rotatable`: Node is rotatable by hook item
|
||||||
|
* `1`: Always rotatable
|
||||||
|
* `2`: Rotatable if takable, or if in editor/menu
|
||||||
|
* `3`: Rotatable in editor/menu only
|
||||||
|
* `laser_destroys`: Node is destroyed when a laser touches it
|
||||||
|
* `1`: Immediate destruction
|
||||||
|
* `2`: Node catches fire first, then is destroyed.
|
||||||
|
`_lzr_active` must contain the name of the burning variant.
|
||||||
|
The burning variant in turn must have `_lzr_inactive`
|
||||||
|
* `flammable=1`: Node catches fire from neighboring burning blocks
|
||||||
|
|
||||||
|
### Laser node groups
|
||||||
|
* `laser=X`: Node is a laser (X=bitmask of active laser axes)
|
||||||
|
(not including blocks that *contain* a laser like an active mirror)
|
||||||
|
* `laser_block=1`: Node interacts with laser
|
||||||
|
|
||||||
|
#### Laser blocks
|
||||||
|
Group rating 1 is for the inactive state, group rating 2 is for the active state.
|
||||||
|
|
||||||
|
* `emitter`: Emitter
|
||||||
|
* `detector`: Detector
|
||||||
|
* `crystal`: Crystal
|
||||||
|
* `mirror`: Mirror (normal)
|
||||||
|
* `transmissive_mirror`: Transmissive Mirror
|
||||||
|
* `crate`: Crate
|
||||||
|
|
||||||
|
### Misc. categorization groups
|
||||||
|
* `treasure=1`: Treasure
|
||||||
|
* `teleporter`: Teleporter
|
||||||
|
* `1`: Off
|
||||||
|
* `2`: On
|
||||||
|
* `chest`: Chest
|
||||||
|
* `1`: closed, unlocked
|
||||||
|
* `2`: closed, locked
|
||||||
|
* `3`: open, empty
|
||||||
|
* `4`: open, with treasure
|
||||||
|
* `chest_closed=1`: Closed chest
|
||||||
|
* `chest_open=1`: Open chest
|
||||||
|
* `water=3`: Water
|
||||||
|
* `liquid=3`: Node is a liquid in a semantic sense
|
||||||
|
* `pane=1`: Pane (flat window-like block)
|
||||||
|
* `stair=1`: Stair
|
||||||
|
* `slab=1`: Slab
|
||||||
|
|
||||||
|
## Item groups reference
|
||||||
|
This is a reference of groups for all items that are not nodes.
|
||||||
|
|
||||||
|
* `pickaxe=1`: Pickaxe
|
||||||
|
* `bucket=1`: Bucket
|
||||||
|
* `cheat_item=1`: Item is not supposed to be used in normal gameplay (e.g. for editor)
|
Loading…
x
Reference in New Issue
Block a user