diff options
Diffstat (limited to 'scripts/template.gd')
| -rw-r--r-- | scripts/template.gd | 30 |
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 |
