aboutsummaryrefslogtreecommitdiff
path: root/reqs.toml
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-10-18 14:37:21 +0200
committerLoek Le Blansch <loek@pipeframe.xyz>2024-10-18 14:37:21 +0200
commit69f8fcfb593641174b3a83049ad4acc1abf1a102 (patch)
tree270d22cded77e3a1e5773626c891e327219c833f /reqs.toml
parent4a40378f58160212c0c1c42552a1301e3a498037 (diff)
add scripting design documentation
Diffstat (limited to 'reqs.toml')
-rw-r--r--reqs.toml33
1 files changed, 33 insertions, 0 deletions
diff --git a/reqs.toml b/reqs.toml
index ed0b451..a83208e 100644
--- a/reqs.toml
+++ b/reqs.toml
@@ -84,3 +84,36 @@ Windows.
# TODO: library documentation as quality factor?
# TODO: modularity over less libraries? (i.e. why don't we just SDL2 everything?)
+[script:interface]
+type = 'system'
+priority = 'must'
+description = '''
+There is a base \codeinline{Script} class that has empty default
+implementations for functions that may be implemented by the game programmer.
+'''
+
+[script:user-class]
+type = 'system'
+priority = 'must'
+description = '''
+The game programmer implements scripts by creating classes derived from the
+\codeinline{Script} class.
+'''
+
+[script:direct-instance]
+type = 'system'
+priority = 'must'
+description = '''
+Unless explicitly changed by the game programmer, derived script classes cannot
+be instantiated directly, and must be instantiated by the component manager.
+'''
+
+[script:direct-run]
+type = 'system'
+priority = 'must'
+description = '''
+Unless explicitly changed by the game programmer, methods on instances of
+\codeinline{Script} (and derivative) classes cannot be called directly, and
+must be called by the script system.
+'''
+