def __init__(self, name, filename, app=None, gui_thread=False): Piavca.TimeCallback.__init__(self, name) self.app = app self.gui_thread = gui_thread self.frame = None self.camera_pos = Piavca.Vec() self.camera_pitch = 0.0 self.camera_yaw = 0.0 loadDefaults() self.scripts = {} self.currentscript = {} self.starttimes = {} if pymediapresent or pyaudiopresent: self.soundEngine = SoundEngine() else: self.soundEngine = None inputfile = open(filename, "r") lines = inputfile.readlines() inputfile.close() gui_list = [] for line in lines: line = line.strip() commentpos = line.find("#") if commentpos >= 0: line = line[:commentpos] line = line.split() print line if len(line) <= 0: continue if line[0] == "soundpack": if len(line) == 2: spackname = line[1] else: spackname = line[2] if self.soundEngine != None: self.soundEngine.loadSounds(spackname) else: print "could not load sound packs as audio playback is not supported, please install pyaudio or pymedia" elif line[0] == "expressions": importExpressionNames(line[1]) elif line[0] == "joints": importJointNames(line[1]) elif line[0] == "avatar": print "avatar", line[1] print "start loading avatar" avatar = Piavca.Avatar(line[1]) print "finished loading avatar" i = 2 while i < len(line): if line[i] == "position" or line[i] == "pos": pos = Piavca.Vec(float(line[i + 1]), float(line[i + 2]), float(line[i + 3])) avatar.setRootPosition(pos) i = i + 3 elif line[i] == "rotation" or line[i] == "rot": angle = Piavca.degToRad(float(line[i + 1])) axis = Piavca.Vec(float(line[i + 2]), float(line[i + 3]), float(line[i + 4])) avatar.setRootOrientation(Piavca.Quat(angle, axis)) i = i + 4 i += 1 elif line[0] == "motionpack": if len(line) == 2: mpackname = line[1] else: mpackname = line[2] print "motionpack", mpackname MotionFile.readMotionFile(mpackname) elif line[0] == "script": if len(line) == 2: spackname = line[1] else: spackname = line[2] print "script pack", spackname self.loadScripts(spackname) elif line[0] == "camera": if line[1] == "position": self.camera_pos = Piavca.Vec(float(line[2]), float(line[3]), float(line[4])) elif line[1] == "vert_angle": self.camera_pitch = Piavca.degToRad(float(line[2])) elif line[1] == "horiz_angle": self.camera_yaw = Piavca.degToRad(float(line[2])) #elif line[1] == "rotation": # s self.camera_ori = Piavca.Quat(float(line[2]), Piavca.Vec(float(line[3], float(line[4], lfloat(ine[5])) elif line[0] == "GUI": print "gui" gui_list.append(line[1]) elif line[0] == "gui": print "gui" gui_list.append(line[1]) for gui_name in gui_list: self.GUI(gui_name) self.thisown = 0 Piavca.Core.getCore().registerCallback(self)