From 9d91e5f34db78167bffcac761f2e63ec385d8fd0 Mon Sep 17 00:00:00 2001 From: milan Date: Tue, 18 Oct 2022 09:02:11 +0200 Subject: [PATCH] initial engine definition --- engine.toml | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 engine.toml diff --git a/engine.toml b/engine.toml new file mode 100644 index 0000000..40b1487 --- /dev/null +++ b/engine.toml @@ -0,0 +1,73 @@ +[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)