def createNpcToonHead(self, toNpcId): npcInfo = NPCToons.NPCToonDict[toNpcId] dnaList = npcInfo[2] gender = npcInfo[3] if dnaList == 'r': dnaList = NPCToons.getRandomDNA(toNpcId, gender) dna = ToonDNA.ToonDNA() dna.newToonFromProperties(*dnaList) head = ToonHead.ToonHead() head.setupHead(dna, forGui=1) self.fitGeometry(head, fFlip=1) return head
def createNPCToonHead(self, NPCID, dimension=0.5): NPCInfo = NPCToons.NPCToonDict[NPCID] dnaList = NPCInfo[2] gender = NPCInfo[3] if dnaList == 'r': dnaList = NPCToons.getRandomDNA(NPCID, gender) dna = ToonDNA.ToonDNA() dna.newToonFromProperties(*dnaList) head = ToonHead.ToonHead() head.setupHead(dna, forGui=1) self.fitGeometry(head, fFlip=1, dimension=dimension) return head
def createNpcToonHead(self, toNpcId, questId=0): npcInfo = NPCToons.NPCToonDict[toNpcId] dnaList = npcInfo[2] if dnaList == 'r': seed = base.localAvatar.doId + questId gender = 'm' if seed % 2 == 0 else 'f' dnaList = NPCToons.getRandomDNA(seed, gender) dna = ToonDNA.ToonDNA() dna.newToonFromProperties(*dnaList) head = ToonHead.ToonHead() head.setupHead(dna, forGui=1) self.fitGeometry(head, fFlip=1) return head
def createNPCToonHead(self, NPCID, dimension=0.5): NPCInfo = NPCToons.NPCToonDict[NPCID] dnaList = NPCInfo[2] gender = NPCInfo[3] if dnaList == 'r': dnaList = NPCToons.getRandomDNA(NPCID, gender) dna = ToonDNA.ToonDNA() dna.newToonFromProperties(*dnaList) head = ToonHead.ToonHead() head.setupHead(dna, forGui=1) self.fitGeometry(head, fFlip=1, dimension=dimension) '''if NPCID == 91917: LaughingManGlobals.addHeadEffect(head, book=True)''' return head
def updateDNA(self, description): # Create dna if isinstance(description, ToonDNA.ToonDNA): dna = description else: dna = ToonDNA.ToonDNA() if (isinstance(description, list) or isinstance(description, tuple)): # Assume it is a property list dna.newToonFromProperties(*description) elif isinstance(description, Datagram): # Create dna straight from datagram dna.makeFromNetString(description) elif isinstance(description, bytes): # Assume it is a server string description # Convert to datagram then create dna dna.makeFromNetString(self.convertServerDNAString(description)) elif isinstance(description, int): # Assume it is an NPC id npcInfo = NPCToons.NPCToonDict[description] properties = npcInfo[2] if properties == 'r': gender = npcInfo[3] properties = NPCToons.getRandomDNA(description, gender) dna.newToonFromProperties(*properties) else: if random() < 0.5: gender = 'm' else: gender = 'f' dna.newToonRandom(gender=gender) if not self.style: # New toon, need to initialize style self.setDNA(dna) else: # Just jump straight to the update function self.updateToonDNA(dna, fForce=1)