small racing game im working on
Diffstat (limited to 'init_classes.py')
-rw-r--r--init_classes.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/init_classes.py b/init_classes.py
new file mode 100644
index 0000000..29d1487
--- /dev/null
+++ b/init_classes.py
@@ -0,0 +1,33 @@
+import re
+from glob import glob
+
+find_class = re.compile("class_name\s+(.+)")
+find_base = re.compile("extends\s+(.+)")
+classes = [] # { file, class name, base class name }
+
+for file in glob("**/*.gd", recursive=True):
+ with open(file, "r") as f:
+ text = f"{f.readline()}\n{f.readline()}\n{f.readline()}" # 3 lines: extend, class, tool
+ m = find_class.search(text)
+ if not m:
+ continue
+ class_name = m.groups()[0]
+ m = find_base.search(text)
+ base = m.groups()[0]
+ classes.append(
+ {"class_name": class_name, "base_class_name": base, "file": file}
+ )
+
+first = True
+print("list=[", end="")
+for c in classes:
+ if not first:
+ print(", ", end="")
+ first = False
+ print("{")
+ print(f'"base": "{c["base_class_name"]}",')
+ print(f'"class": &"{c["class_name"]}",')
+ print('"language": &"GDScript",')
+ print(f'"path": "res://{c["file"]}"')
+ print("}", end="")
+print("]")