mirror of
https://github.com/Sneed-Group/Poodletooth-iLand
synced 2024-12-26 05:02:31 -06:00
67 lines
2.1 KiB
Python
67 lines
2.1 KiB
Python
"""
|
|
Palette for Prototyping
|
|
"""
|
|
import os
|
|
import imp
|
|
import types
|
|
|
|
from ObjectPaletteBase import *
|
|
|
|
class ProtoPaletteBase(ObjectPaletteBase):
|
|
def __init__(self):
|
|
ObjectPaletteBase.__init__(self)
|
|
# self.dirname should be defined in inherited class
|
|
assert self.dirname
|
|
|
|
def addItems(self):
|
|
if type(protoData) == types.DictType:
|
|
for key in protoData.keys():
|
|
if type(protoData[key]) == types.DictType:
|
|
self.add(key, parent)
|
|
self.addItems(protoData[key], key)
|
|
else:
|
|
self.add(protoData[key], parent)
|
|
|
|
def populate(self):
|
|
moduleName = 'protoPaletteData'
|
|
try:
|
|
file, pathname, description = imp.find_module(moduleName, [self.dirname])
|
|
module = imp.load_module(moduleName, file, pathname, description)
|
|
self.data = module.protoData
|
|
self.dataStruct = module.protoDataStruct
|
|
except:
|
|
print "protoPaletteData doesn't exist"
|
|
return
|
|
|
|
#self.addItems()
|
|
|
|
def saveProtoDataStruct(self, f):
|
|
if not f:
|
|
return
|
|
|
|
for key in self.dataStruct.keys():
|
|
f.write("\t'%s':'%s',\n"%(key, self.dataStruct[key]))
|
|
|
|
def saveProtoData(self, f):
|
|
if not f:
|
|
return
|
|
|
|
for key in self.data.keys():
|
|
if isinstance(self.data[key], ObjectBase):
|
|
f.write("\t'%s':ObjectBase(name='%s', model='%s', anims=%s, actor=%s),\n"%(key, self.data[key].name, self.data[key].model, self.data[key].anims, self.data[key].actor))
|
|
else:
|
|
f.write("\t'%s':ObjectGen(name='%s'),\n"%(key, self.data[key].name))
|
|
|
|
def saveToFile(self):
|
|
try:
|
|
f = open(self.dirname + '/protoPaletteData.py', 'w')
|
|
f.write("from direct.leveleditor.ObjectPaletteBase import *\n\n")
|
|
f.write("protoData = {\n")
|
|
self.saveProtoData(f)
|
|
f.write("}\n")
|
|
f.write("protoDataStruct = {\n")
|
|
self.saveProtoDataStruct(f)
|
|
f.write("}\n")
|
|
f.close()
|
|
except:
|
|
pass
|