Library mod containing various extra features and fixes.
Logic Steps is a simple library for Patch Steps that adds some extra functionality, namely logic flow control.
Takes two properties, cond
and thenSteps
. cond
is evaluated as a regular JS expression (meaning it can be literally anything as long as it returns a truthy/falsy value), if cond
ends up being truthy, thenSteps
is executed. Else, nothing happens and the step is skipped.
[
{
"type": "IF",
"cond": "1 + 1 == 2",
"thenSteps": [
{
"type": "SET_KEY",
"index": "a",
"content": 1
}
]
}
]
FUNCTION
allows you to define a set of steps to be executed at some later point. Takes two properties, name
and body
.
CALL
allows you to call a previously defined function. Takes a single property; the function name.
[
{
"type": "FUNCTION",
"name": "SET_A_TO_TRUE",
"body": [
{
"type": "SET_KEY",
"index": "a",
"content": 1
}
]
},
{
"type": "CALL",
"name": "SET_A_TO_TRUE"
}
]
LABEL
allows you to define a label to jump to.
GOTO
allows you to jump to a label defined anywhere in your steps.
Both steps take only one property; name
, which is the label name.
[
{
"type": "DEBUG",
"value": true
},
{
"type": "COMMENT",
"value": "This always runs!"
},
{
"type": "GOTO",
"name": "SKIP_GOODBYE"
},
{
"type": "COMMENT",
"value": "Goodbye! This shouldn't run!"
},
{
"type": "LABEL",
"name": "SKIP_GOODBYE"
},
{
"type": "COMMENT",
"value": "We just skipped the goodbye log!"
}
]
The above steps will log the following to the console:
This always runs!
We just skipped the goodbye log!
Doesn't take any properties. Simply logs all steps to the console if debug mode is enabled.
[
{
"type": "DEBUG",
"value": true
},
{
"type": "PRINT_STEPS"
}
]