def generate(self): if not self.isLose: animDict = self.getAnimations() self.actor = Actor(self.suit, animDict) else: self.actor = Actor( self.suit, { 'lose': loader.loadModel('phase_4/models/char/suit%s-lose.bam' % (self.suitType)) }) self.shadow = ShadowCaster(self.actor) self.shadow.initializeDropShadow() self.actor.setScale(self.scale)
def generate(self): if not self.isLose: animDict = self.getAnimations() self.actor = Actor(self.suit, animDict) else: self.actor = Actor(self.suit, {'lose' : loader.loadModel('phase_4/models/char/suit%s-lose.bam' % (self.suitType))}) self.shadow = ShadowCaster(self.actor) self.shadow.initializeDropShadow() self.actor.setScale(self.scale)
def generate(self): head = loader.loadModel('phase_3/models/char/%s-heads-%s.bam' % (self.data['Animal'], self.data['HeadType'])) torso = loader.loadModel('phase_3/models/char/%s-torso-%s.bam' % (self.data['Weight'], self.data['Gender'])) legs = loader.loadModel('phase_3/models/char/%s-legs.bam' % (self.data['Height'])) if(self.data['HeadLength'] == 'short'): self.removeOtherParts(head.findAllMatches('**/*long*'), None) else: self.removeOtherParts(head.findAllMatches('**/*short*'), None) muzzleParts = head.findAllMatches('**/*muzzle*') if(self.data['Animal'] != 'dog'): for partNum in range(0, muzzleParts.getNumPaths()): part = muzzleParts.getPath(partNum) if not 'neutral' in part.getName(): part.hide() self.removeOtherParts(legs.findAllMatches('**/boots*') + legs.findAllMatches('**/shoes'), None) torsoAnims = self.generateAnims(torso=True) legsAnims = self.generateAnims(legs=True) self.Avatar = Actor({'head' : head, 'torso' : torso, 'legs' : legs}, {'torso' : torsoAnims, 'legs' : legsAnims}) self.Avatar.attach('head', 'torso', 'def_head') self.Avatar.attach('torso', 'legs', 'joint_hips') if(self.data['Gender'] == 'girl'): femaleEyes = loader.loadTexture('phase_3/maps/eyesFemale.jpg', 'phase_3/maps/eyesFemale_a.rgb') try: self.Avatar.find('**/eyes').setTexture(femaleEyes, 1) except: pass try: self.Avatar.find('**/eyes-%s' % (self.data['HeadLength'])).setTexture(femaleEyes, 1) except: pass # Reseat pupils of old head models pupils = head.findAllMatches('**/*pupil*') for pupil in pupils: pupil.setY(0.02) self.setColor() shadow = ShadowCaster(self.Avatar) shadow.initializeDropShadow() self.Avatar.setPythonTag("AvatarInstance", self)
class Suit(DirectObject): def __init__(self, suit, scale): self.suitType = suit self.scale = scale self.isLose = False self.shadow = None def setupSuit(self, dept, handColor, isSkeleton = False, isWaiter = False): self.isLose = False if not isSkeleton: suit = loader.loadModel('phase_4/models/char/suit%s-mod.bam' % (self.suitType)) else: suit = loader.loadModel('phase_5/models/char/cog%s_robot-zero.bam' % (self.suitType)) self.scale = self.scale * 1.0173 parts = suit.findAllMatches('**/pPlane*') for partNum in range(0, parts.getNumPaths()): bb = parts.getPath(partNum) bb.setTwoSided(1) tie = suit.find('**/tie') if tie.isEmpty(): return if(dept == 'corp'): tieType = 'boss' else: tieType = dept tieTex = loader.loadTexture('phase_5/maps/cog_robot_tie_%s.jpg' % (tieType)) tieTex.setMinfilter(Texture.FTLinearMipmapLinear) tieTex.setMagfilter(Texture.FTLinear) tie.setTexture(tieTex, 1) self.suit = suit self.dept = dept if not isWaiter and not isSkeleton: self.setClothing(dept, handColor) elif isWaiter: self.setClothing('waiter', handColor) self.generateMedallion() def setupLoseSuit(self, dept, handColor, isSkeleton = False, isWaiter = False): self.isLose = True if not isSkeleton: suit = loader.loadModel('phase_4/models/char/suit%s-lose-mod.bam' % (self.suitType)) else: suit = loader.loadModel('phase_5/models/char/cog%s_robot-lose-mod.bam' % (self.suitType)) self.scale = self.scale * 1.0173 parts = suit.findAllMatches('**/pPlane*') for partNum in range(0, parts.getNumPaths()): bb = parts.getPath(partNum) bb.setTwoSided(1) tie = suit.find('**/tie') if tie.isEmpty(): return if(dept == 'corp'): tieType = 'boss' else: tieType = dept tieTex = loader.loadTexture('phase_5/maps/cog_robot_tie_%s.jpg' % (tieType)) tieTex.setMinfilter(Texture.FTLinearMipmapLinear) tieTex.setMagfilter(Texture.FTLinear) tie.setTexture(tieTex, 1) self.suit = suit self.dept = dept if not isWaiter and not isSkeleton: self.setClothing(dept, handColor) elif isWaiter: self.setClothing('waiter', handColor) def generate(self): if not self.isLose: animDict = self.getAnimations() self.actor = Actor(self.suit, animDict) else: self.actor = Actor(self.suit, {'lose' : loader.loadModel('phase_4/models/char/suit%s-lose.bam' % (self.suitType))}) self.shadow = ShadowCaster(self.actor) self.shadow.initializeDropShadow() self.actor.setScale(self.scale) def generateMedallion(self): icons = loader.loadModel('phase_3/models/gui/cog_icons.bam') chestJoint = self.suit.find('**/joint_attachMeter') medallion = icons.find('**/%sIcon' % (self.dept.title())) medallion.reparentTo(chestJoint) medallion.setPosHprScale(0.02, 0.05, 0.04, 180.0, 0.0, 0.0, 0.51, 0.51, 0.51) medallion.setColor(medallionColors[self.dept]) medallion.setName('Medallion') icons.removeNode() def getShadow(self): return self.shadow def getActor(self): return self.actor def getSuit(self): return self.suit def getAnimations(self): anims = {} for anim in suitAnims: animName = anim[1] anims[animName] = loader.loadModel('%s/suit%s-%s.bam' % (anim[0], self.suitType, animName)) return anims # Clothing Types: 0 = Sellbot, 1 = Cashbot, 2 = Lawbot, 3 = Bossbot, 4 = Waiter def setClothing(self, clothingType, handColor): clothingMatches = {'sales' : 's', 'money' : 'm', 'legal' : 'l', 'corp' : 'c', 'waiter' : 'waiter_m'} clothingParts = ['sleeve', 'blazer', 'leg'] for part in clothingParts: nodeNames = {'sleeve' : 'arms', 'leg' : 'legs', 'blazer' : 'torso'} texture = loader.loadTexture('phase_3.5/maps/%s_%s.jpg' % (clothingMatches[clothingType], part)) self.suit.find('**/%s' % (nodeNames[part])).setTexture(texture, 1) self.suit.find('**/hands').setColor(handColor)
class Suit(DirectObject): def __init__(self, suit, scale): self.suitType = suit self.scale = scale self.isLose = False self.shadow = None def setupSuit(self, dept, handColor, isSkeleton=False, isWaiter=False): self.isLose = False if not isSkeleton: suit = loader.loadModel('phase_4/models/char/suit%s-mod.bam' % (self.suitType)) else: suit = loader.loadModel( 'phase_5/models/char/cog%s_robot-zero.bam' % (self.suitType)) self.scale = self.scale * 1.0173 parts = suit.findAllMatches('**/pPlane*') for partNum in range(0, parts.getNumPaths()): bb = parts.getPath(partNum) bb.setTwoSided(1) tie = suit.find('**/tie') if tie.isEmpty(): return if (dept == 'corp'): tieType = 'boss' else: tieType = dept tieTex = loader.loadTexture('phase_5/maps/cog_robot_tie_%s.jpg' % (tieType)) tieTex.setMinfilter(Texture.FTLinearMipmapLinear) tieTex.setMagfilter(Texture.FTLinear) tie.setTexture(tieTex, 1) self.suit = suit self.dept = dept if not isWaiter and not isSkeleton: self.setClothing(dept, handColor) elif isWaiter: self.setClothing('waiter', handColor) self.generateMedallion() def setupLoseSuit(self, dept, handColor, isSkeleton=False, isWaiter=False): self.isLose = True if not isSkeleton: suit = loader.loadModel('phase_4/models/char/suit%s-lose-mod.bam' % (self.suitType)) else: suit = loader.loadModel( 'phase_5/models/char/cog%s_robot-lose-mod.bam' % (self.suitType)) self.scale = self.scale * 1.0173 parts = suit.findAllMatches('**/pPlane*') for partNum in range(0, parts.getNumPaths()): bb = parts.getPath(partNum) bb.setTwoSided(1) tie = suit.find('**/tie') if tie.isEmpty(): return if (dept == 'corp'): tieType = 'boss' else: tieType = dept tieTex = loader.loadTexture('phase_5/maps/cog_robot_tie_%s.jpg' % (tieType)) tieTex.setMinfilter(Texture.FTLinearMipmapLinear) tieTex.setMagfilter(Texture.FTLinear) tie.setTexture(tieTex, 1) self.suit = suit self.dept = dept if not isWaiter and not isSkeleton: self.setClothing(dept, handColor) elif isWaiter: self.setClothing('waiter', handColor) def generate(self): if not self.isLose: animDict = self.getAnimations() self.actor = Actor(self.suit, animDict) else: self.actor = Actor( self.suit, { 'lose': loader.loadModel('phase_4/models/char/suit%s-lose.bam' % (self.suitType)) }) self.shadow = ShadowCaster(self.actor) self.shadow.initializeDropShadow() self.actor.setScale(self.scale) def generateMedallion(self): icons = loader.loadModel('phase_3/models/gui/cog_icons.bam') chestJoint = self.suit.find('**/joint_attachMeter') medallion = icons.find('**/%sIcon' % (self.dept.title())) medallion.reparentTo(chestJoint) medallion.setPosHprScale(0.02, 0.05, 0.04, 180.0, 0.0, 0.0, 0.51, 0.51, 0.51) medallion.setColor(medallionColors[self.dept]) medallion.setName('Medallion') icons.removeNode() def getShadow(self): return self.shadow def getActor(self): return self.actor def getSuit(self): return self.suit def getAnimations(self): anims = {} for anim in suitAnims: animName = anim[1] anims[animName] = loader.loadModel( '%s/suit%s-%s.bam' % (anim[0], self.suitType, animName)) return anims # Clothing Types: 0 = Sellbot, 1 = Cashbot, 2 = Lawbot, 3 = Bossbot, 4 = Waiter def setClothing(self, clothingType, handColor): clothingMatches = { 'sales': 's', 'money': 'm', 'legal': 'l', 'corp': 'c', 'waiter': 'waiter_m' } clothingParts = ['sleeve', 'blazer', 'leg'] for part in clothingParts: nodeNames = {'sleeve': 'arms', 'leg': 'legs', 'blazer': 'torso'} texture = loader.loadTexture('phase_3.5/maps/%s_%s.jpg' % (clothingMatches[clothingType], part)) self.suit.find('**/%s' % (nodeNames[part])).setTexture(texture, 1) self.suit.find('**/hands').setColor(handColor)