X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=blender%2Fio_mspgl%2Fdatafile.py;h=6ed3ea4575a3b63ff32de414d8fc7fbaaa2dcbee;hb=42ae18b7a9dc13a72bf421e564f02829d4bdd5be;hp=42ff454b4ccff69ab8d433629d973ddced83e744;hpb=907a2aced4b7d70af6be0625632ba373c458f197;p=libs%2Fgl.git diff --git a/blender/io_mspgl/datafile.py b/blender/io_mspgl/datafile.py index 42ff454b..6ed3ea45 100644 --- a/blender/io_mspgl/datafile.py +++ b/blender/io_mspgl/datafile.py @@ -12,6 +12,11 @@ class Statement: for a in self.args: if type(a)==float: s += " {:#.6g}".format(a) + elif type(a)==bool: + if a: + s += " true" + else: + s += " false" elif type(a)==str: s += ' "{}"'.format(a) elif type(a)==Resource: @@ -39,8 +44,9 @@ class Token: class Resource: - def __init__(self, name): + def __init__(self, name, keyword): self.name = name + self.keyword = keyword self.statements = [] self.references = [] @@ -77,3 +83,20 @@ class Resource: refs += [e for e in r.collect_references() if e not in refs] refs += [e for e in self.references if e not in refs] return refs + + def write_to_file(self, fn): + with open(fn, "w") as out_file: + for s in self.statements: + s.write_to_file(out_file) + + def write_collection(self, fn, *, exclude_self=False, filter=None): + items = self.collect_references() + if not exclude_self: + items.append(self) + with open(fn, "w") as out_file: + for i in items: + if filter and not filter(i): + continue + st = Statement(i.keyword, i.name) + st.sub = i.statements + st.write_to_file(out_file)