示例#1
0
文件: Suit.py 项目: zurgeg/Doomsday
 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)
示例#2
0
文件: Suit.py 项目: Teku16/Doomsday
 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)
示例#3
0
文件: Avatar.py 项目: zurgeg/Doomsday
 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)
示例#4
0
文件: Suit.py 项目: Teku16/Doomsday
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)
            
示例#5
0
文件: Suit.py 项目: zurgeg/Doomsday
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)