Files
PixelDefense/scripts/extract_common.py

65 lines
1.5 KiB
Python

class ExtractFileWriter:
indent_width = 4
indent_level = 0
indention = ""
def __init__(self, name):
self.name = name.upper()
def indent(self):
self.indent_level += self.indent_width
self.indention = " " * self.indent_level
def unindent(self):
self.indent_level -= self.indent_width
self.indention = " " * self.indent_level
def header_guard_start(self):
print(f"#ifndef {self.name}")
print(f"#define {self.name}")
print()
def header_guard_stop(self):
print(f"#endif // {self.name}")
def include(self, header):
print(f"${self.indention}#include {header}")
def enum_start(self, name):
print(f"{self.indention}typedef enum {name} {{")
self.indent()
def enum_stop(self, name):
self.unindent()
print(f"}} {name};")
print()
def enum_list(self, name, enums):
self.enum_start(name)
for enum in enums:
print(f"{self.indention}{enum},")
self.enum_stop(name)
def enum_dict(self, name, enums):
self.enum_start(name)
for enum, v in enums.items():
print(f"{self.indention}{enum} = {v},")
self.enum_stop(name)
def output(self, out):
print(f"{self.indention}{out}", end="")
def output_line(self):
print()
def only_output(self, out):
print(out, end="")
def block_start(self):
print(f"{{")
self.indent()
def block_end(self):
self.unindent()
print(f"{self.indention}}}")