74 lines
2.1 KiB
TOML
74 lines
2.1 KiB
TOML
[room]
|
|
id = 1
|
|
spaces = [] # a room must have at least one space
|
|
|
|
[space]
|
|
id = 2
|
|
size = [2, 4]
|
|
doors = [] # a space has at least one entrance and one exit to other spaces either within the same room or from/to another room
|
|
modules = [] # a space may have modules
|
|
|
|
[passage]
|
|
id = 3
|
|
exit = 4 # the exit door of this passage
|
|
entry = 5 # the entry door of this passage
|
|
type = "portal" # elevator, moving platform, etc.
|
|
|
|
[door]
|
|
id = 4
|
|
passage = 3
|
|
|
|
[module]
|
|
name = "Module A"
|
|
size = [1, 1]
|
|
position = [0, 1]
|
|
rotation = 90
|
|
types = [] # a module must have at least one type
|
|
difficulty = 3
|
|
time-estimation = 342 # estimated amount of seconds to complete this puzzle
|
|
requirements = [] # a module may have requirements
|
|
|
|
[[types]]
|
|
description = "dexterity"
|
|
[[types]]
|
|
description = "precision"
|
|
[[types]]
|
|
description = "combination"
|
|
[[types]]
|
|
description = "iteration"
|
|
|
|
[[requirements]]
|
|
name = "minimum space"
|
|
[[requirements]]
|
|
name = "connected module" # in the same room as another module
|
|
module = "Module B"
|
|
[[requirements]]
|
|
name = "object" # an object is required to be posessed
|
|
provided = false # whether this module provides this object itself
|
|
[[requirements]]
|
|
name = "space around" # space that is not directly occupied by the module but must be available
|
|
[[requirements]]
|
|
name = "facing" # must be facing another module
|
|
module = "Module B"
|
|
type = "exact" # exact: exactly opposite of, raycast: must be visible from
|
|
[[requirements]]
|
|
name = "minimum space size"
|
|
|
|
[object]
|
|
name = "Object A"
|
|
properties = [] # an object may have properties
|
|
|
|
[[properties]]
|
|
name = "interactable" # this object can be interacted with
|
|
[[properties]]
|
|
name = "connected object" # connected to another object in some way
|
|
object = "Object B"
|
|
[[properties]]
|
|
name = "constrained" # the movement of this object is constrained in some way (e.g. a button that only moves a few centimeters in a single direction)
|
|
type = "position" # rotation, aim
|
|
[[properties]]
|
|
name = "bound to room" # this object is bound to a room and will disappear when leaving it
|
|
room = 1
|
|
[[properties]]
|
|
name = "tracked" # this object's position is tracked (mutually exclusive with "bound to room" since the physical tracked object cannot disappear)
|