summaryrefslogtreecommitdiff
path: root/scripts/template.gd
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/template.gd')
-rw-r--r--scripts/template.gd30
1 files changed, 30 insertions, 0 deletions
diff --git a/scripts/template.gd b/scripts/template.gd
new file mode 100644
index 0000000..6e1affc
--- /dev/null
+++ b/scripts/template.gd
@@ -0,0 +1,30 @@
+extends Node
+
+var data = null
+var regex = null
+
+func _init(path):
+ var file = File.new()
+ file.open(path, File.READ)
+ var content = file.get_as_text()
+ file.close()
+ self.data = parse_json(content)
+ self.regex = RegEx.new()
+ self.regex.compile("/(.*?)/")
+
+func replace_all(base, values):
+ var mtch = self.regex.search(base)
+ while mtch != null:
+ var key = mtch.get_string(1)
+ var replace = ""
+ if values.has(key):
+ var from = values[key]
+ if typeof(from) == TYPE_DICTIONARY:
+ replace = from[from.keys()[randi() % from.size()]]
+ elif typeof(from) == TYPE_ARRAY:
+ replace = from[randi() % from.size()]
+ else:
+ replace = str(from)
+ base = self.regex.sub(base, replace)
+ mtch = self.regex.search(base)
+ return base \ No newline at end of file