Beispiel #1
0
    def generatePet(self):
        self.loadModel('phase_4/models/char/TT_pets-mod')
        self.loadAnims({'toBeg': 'phase_5/models/char/TT_pets-intoBeg',
         'beg': 'phase_5/models/char/TT_pets-beg',
         'fromBeg': 'phase_5/models/char/TT_pets-begOut',
         'backflip': 'phase_5/models/char/TT_pets-backflip',
         'dance': 'phase_5/models/char/TT_pets-heal',
         'toDig': 'phase_5/models/char/TT_pets-intoDig',
         'dig': 'phase_5/models/char/TT_pets-dig',
         'fromDig': 'phase_5/models/char/TT_pets-digToNeutral',
         'disappear': 'phase_5/models/char/TT_pets-disappear',
         'eat': 'phase_5.5/models/char/TT_pets-eat',
         'jump': 'phase_5/models/char/TT_pets-jump',
         'neutral': 'phase_4/models/char/TT_pets-neutral',
         'neutralHappy': 'phase_4/models/char/TT_pets-neutralHappy',
         'neutralSad': 'phase_4/models/char/TT_pets-neutral_sad',
         'toPet': 'phase_5.5/models/char/TT_pets-petin',
         'pet': 'phase_5.5/models/char/TT_pets-petloop',
         'fromPet': 'phase_5.5/models/char/TT_pets-petend',
         'playDead': 'phase_5/models/char/TT_pets-playdead',
         'fromPlayDead': 'phase_5/models/char/TT_pets-deadend',
         'reappear': 'phase_5/models/char/TT_pets-reappear',
         'run': 'phase_5.5/models/char/TT_pets-run',
         'rollover': 'phase_5/models/char/TT_pets-rollover',
         'walkSad': 'phase_5.5/models/char/TT_pets-sadwalk',
         'speak': 'phase_5/models/char/TT_pets-speak',
         'swallow': 'phase_5.5/models/char/TT_pets-swallow',
         'swim': 'phase_5.5/models/char/TT_pets-swim',
         'toBall': 'phase_5.5/models/char/TT_pets-toBall',
         'walk': 'phase_5.5/models/char/TT_pets-walk',
         'walkHappy': 'phase_5.5/models/char/TT_pets-walkHappy'})
        self.setHeight(2)
        color = None
        colorIndex = self.style[5]
        color = AllPetColors[colorIndex]
        self.color = color
        bodyType = self.style[4]
        body = self.find('**/body')
        tex = loader.loadTexture(BodyTextures[BodyTypes[bodyType]])
        tex.setMinfilter(Texture.FTLinear)
        tex.setMagfilter(Texture.FTLinear)
        body.setTexture(tex, 1)
        body.setColor(color)
        leftFoot = self.find('**/leftFoot')
        rightFoot = self.find('**/rightFoot')
        texName = getFootTexture(bodyType)
        tex = loader.loadTexture(texName)
        tex.setMinfilter(Texture.FTLinear)
        tex.setMagfilter(Texture.FTLinear)
        leftFoot.setTexture(tex, 1)
        rightFoot.setTexture(tex, 1)
        leftFoot.setColor(color)
        rightFoot.setColor(color)
        for part in HeadParts + EarParts + NoseParts + TailParts:
            self.find('**/' + part).stash()

        colorScale = ColorScales[self.style[6]]
        partColor = self.amplifyColor(color, colorScale)
        headIndex = self.style[0]
        if headIndex != -1:
            head = self.find('**/@@' + HeadParts[headIndex])
            head.setColor(partColor)
            head.unstash()
        earsIndex = self.style[1]
        if earsIndex != -1:
            ears = self.find('**/@@' + EarParts[earsIndex])
            ears.setColor(partColor)
            texName = getEarTexture(bodyType, EarParts[earsIndex])
            if texName:
                tex = loader.loadTexture(texName)
                tex.setMinfilter(Texture.FTLinear)
                tex.setMagfilter(Texture.FTLinear)
                ears.setTexture(tex, 1)
            ears.unstash()
        noseIndex = self.style[2]
        if noseIndex != -1:
            nose = self.find('**/@@' + NoseParts[noseIndex])
            nose.setColor(partColor)
            nose.unstash()
        tailIndex = self.style[3]
        if tailIndex != -1:
            tail = self.find('**/@@' + TailParts[tailIndex])
            tail.setColor(partColor)
            texName = TailTextures[TailParts[tailIndex]]
            if texName:
                if BodyTypes[bodyType] == 'giraffe':
                    texName = GiraffeTail
                elif BodyTypes[bodyType] == 'leopard':
                    texName = LeopardTail
                tex = loader.loadTexture(texName)
                tex.setMinfilter(Texture.FTLinear)
                tex.setMagfilter(Texture.FTLinear)
                tail.setTexture(tex, 1)
            tail.unstash()
        if not self.forGui:
            self.drawInFront('eyeWhites', 'body', 1)
            self.drawInFront('rightPupil', 'eyeWhites', 2)
            self.drawInFront('leftPupil', 'eyeWhites', 2)
            self.drawInFront('rightHighlight', 'rightPupil', 3)
            self.drawInFront('leftHighlight', 'leftPupil', 3)
        else:
            self.drawInFront('eyeWhites', 'body', -2)
            self.drawInFront('rightPupil', 'eyeWhites', -2)
            self.drawInFront('leftPupil', 'eyeWhites', -2)
            self.find('**/rightPupil').adjustAllPriorities(1)
            self.find('**/leftPupil').adjustAllPriorities(1)
        eyes = self.style[7]
        eyeColor = PetEyeColors[eyes]
        self.eyes = self.find('**/eyeWhites')
        self.rightPupil = self.find('**/rightPupil')
        self.leftPupil = self.find('**/leftPupil')
        self.rightHighlight = self.find('**/rightHighlight')
        self.leftHighlight = self.find('**/leftHighlight')
        self.rightBrow = self.find('**/rightBrow')
        self.leftBrow = self.find('**/leftBrow')
        self.eyes.setColor(1, 1, 1, 1)
        self.rightPupil.setColor(eyeColor, 2)
        self.leftPupil.setColor(eyeColor, 2)
        self.rightHighlight.setColor(1, 1, 1, 1)
        self.leftHighlight.setColor(1, 1, 1, 1)
        self.rightBrow.setColor(0, 0, 0, 1)
        self.leftBrow.setColor(0, 0, 0, 1)
        self.eyes.setTwoSided(1, 1)
        self.rightPupil.setTwoSided(1, 1)
        self.leftPupil.setTwoSided(1, 1)
        self.rightHighlight.setTwoSided(1, 1)
        self.leftHighlight.setTwoSided(1, 1)
        self.rightBrow.setTwoSided(1, 1)
        self.leftBrow.setTwoSided(1, 1)
        if self.forGui:
            self.rightHighlight.hide()
            self.leftHighlight.hide()
        if self.style[8]:
            self.eyesOpenTexture = loader.loadTexture('phase_4/maps/BeanEyeBoys2.jpg', 'phase_4/maps/BeanEyeBoys2_a.rgb')
            self.eyesClosedTexture = loader.loadTexture('phase_4/maps/BeanEyeBoysBlink.jpg', 'phase_4/maps/BeanEyeBoysBlink_a.rgb')
        else:
            self.eyesOpenTexture = loader.loadTexture('phase_4/maps/BeanEyeGirlsNew.jpg', 'phase_4/maps/BeanEyeGirlsNew_a.rgb')
            self.eyesClosedTexture = loader.loadTexture('phase_4/maps/BeanEyeGirlsBlinkNew.jpg', 'phase_4/maps/BeanEyeGirlsBlinkNew_a.rgb')
        self.eyesOpenTexture.setMinfilter(Texture.FTLinear)
        self.eyesOpenTexture.setMagfilter(Texture.FTLinear)
        self.eyesClosedTexture.setMinfilter(Texture.FTLinear)
        self.eyesClosedTexture.setMagfilter(Texture.FTLinear)
        self.eyesOpen()
        return None
Beispiel #2
0
    def generatePet(self):
        self.loadModel('phase_4/models/char/TT_pets-mod')
        self.loadAnims({
            'toBeg': 'phase_5/models/char/TT_pets-intoBeg',
            'beg': 'phase_5/models/char/TT_pets-beg',
            'fromBeg': 'phase_5/models/char/TT_pets-begOut',
            'backflip': 'phase_5/models/char/TT_pets-backflip',
            'dance': 'phase_5/models/char/TT_pets-heal',
            'toDig': 'phase_5/models/char/TT_pets-intoDig',
            'dig': 'phase_5/models/char/TT_pets-dig',
            'fromDig': 'phase_5/models/char/TT_pets-digToNeutral',
            'disappear': 'phase_5/models/char/TT_pets-disappear',
            'eat': 'phase_5.5/models/char/TT_pets-eat',
            'jump': 'phase_5/models/char/TT_pets-jump',
            'neutral': 'phase_4/models/char/TT_pets-neutral',
            'neutralHappy': 'phase_4/models/char/TT_pets-neutralHappy',
            'neutralSad': 'phase_4/models/char/TT_pets-neutral_sad',
            'toPet': 'phase_5.5/models/char/TT_pets-petin',
            'pet': 'phase_5.5/models/char/TT_pets-petloop',
            'fromPet': 'phase_5.5/models/char/TT_pets-petend',
            'playDead': 'phase_5/models/char/TT_pets-playdead',
            'fromPlayDead': 'phase_5/models/char/TT_pets-deadend',
            'reappear': 'phase_5/models/char/TT_pets-reappear',
            'run': 'phase_5.5/models/char/TT_pets-run',
            'rollover': 'phase_5/models/char/TT_pets-rollover',
            'walkSad': 'phase_5.5/models/char/TT_pets-sadwalk',
            'speak': 'phase_5/models/char/TT_pets-speak',
            'swallow': 'phase_5.5/models/char/TT_pets-swallow',
            'swim': 'phase_5.5/models/char/TT_pets-swim',
            'toBall': 'phase_5.5/models/char/TT_pets-toBall',
            'walk': 'phase_5.5/models/char/TT_pets-walk',
            'walkHappy': 'phase_5.5/models/char/TT_pets-walkHappy'
        })
        self.setHeight(2)
        color = None
        colorIndex = self.style[5]
        color = AllPetColors[colorIndex]
        self.color = color
        bodyType = self.style[4]
        body = self.find('**/body')
        tex = loader.loadTexture(BodyTextures[BodyTypes[bodyType]])
        tex.setMinfilter(Texture.FTLinear)
        tex.setMagfilter(Texture.FTLinear)
        body.setTexture(tex, 1)
        body.setColor(color)
        leftFoot = self.find('**/leftFoot')
        rightFoot = self.find('**/rightFoot')
        texName = getFootTexture(bodyType)
        tex = loader.loadTexture(texName)
        tex.setMinfilter(Texture.FTLinear)
        tex.setMagfilter(Texture.FTLinear)
        leftFoot.setTexture(tex, 1)
        rightFoot.setTexture(tex, 1)
        leftFoot.setColor(color)
        rightFoot.setColor(color)
        for part in HeadParts + EarParts + NoseParts + TailParts:
            self.find('**/' + part).stash()

        colorScale = ColorScales[self.style[6]]
        partColor = self.amplifyColor(color, colorScale)
        headIndex = self.style[0]
        if headIndex != -1:
            head = self.find('**/@@' + HeadParts[headIndex])
            head.setColor(partColor)
            head.unstash()
        earsIndex = self.style[1]
        if earsIndex != -1:
            ears = self.find('**/@@' + EarParts[earsIndex])
            ears.setColor(partColor)
            texName = getEarTexture(bodyType, EarParts[earsIndex])
            if texName:
                tex = loader.loadTexture(texName)
                tex.setMinfilter(Texture.FTLinear)
                tex.setMagfilter(Texture.FTLinear)
                ears.setTexture(tex, 1)
            ears.unstash()
        noseIndex = self.style[2]
        if noseIndex != -1:
            nose = self.find('**/@@' + NoseParts[noseIndex])
            nose.setColor(partColor)
            nose.unstash()
        tailIndex = self.style[3]
        if tailIndex != -1:
            tail = self.find('**/@@' + TailParts[tailIndex])
            tail.setColor(partColor)
            texName = TailTextures[TailParts[tailIndex]]
            if texName:
                if BodyTypes[bodyType] == 'giraffe':
                    texName = GiraffeTail
                elif BodyTypes[bodyType] == 'leopard':
                    texName = LeopardTail
                tex = loader.loadTexture(texName)
                tex.setMinfilter(Texture.FTLinear)
                tex.setMagfilter(Texture.FTLinear)
                tail.setTexture(tex, 1)
            tail.unstash()
        if not self.forGui:
            self.drawInFront('eyeWhites', 'body', 1)
            self.drawInFront('rightPupil', 'eyeWhites', 2)
            self.drawInFront('leftPupil', 'eyeWhites', 2)
            self.drawInFront('rightHighlight', 'rightPupil', 3)
            self.drawInFront('leftHighlight', 'leftPupil', 3)
        else:
            self.drawInFront('eyeWhites', 'body', -2)
            self.drawInFront('rightPupil', 'eyeWhites', -2)
            self.drawInFront('leftPupil', 'eyeWhites', -2)
            self.find('**/rightPupil').adjustAllPriorities(1)
            self.find('**/leftPupil').adjustAllPriorities(1)
        eyes = self.style[7]
        eyeColor = PetEyeColors[eyes]
        self.eyes = self.find('**/eyeWhites')
        self.rightPupil = self.find('**/rightPupil')
        self.leftPupil = self.find('**/leftPupil')
        self.rightHighlight = self.find('**/rightHighlight')
        self.leftHighlight = self.find('**/leftHighlight')
        self.rightBrow = self.find('**/rightBrow')
        self.leftBrow = self.find('**/leftBrow')
        self.eyes.setColor(1, 1, 1, 1)
        self.rightPupil.setColor(eyeColor, 2)
        self.leftPupil.setColor(eyeColor, 2)
        self.rightHighlight.setColor(1, 1, 1, 1)
        self.leftHighlight.setColor(1, 1, 1, 1)
        self.rightBrow.setColor(0, 0, 0, 1)
        self.leftBrow.setColor(0, 0, 0, 1)
        self.eyes.setTwoSided(1, 1)
        self.rightPupil.setTwoSided(1, 1)
        self.leftPupil.setTwoSided(1, 1)
        self.rightHighlight.setTwoSided(1, 1)
        self.leftHighlight.setTwoSided(1, 1)
        self.rightBrow.setTwoSided(1, 1)
        self.leftBrow.setTwoSided(1, 1)
        if self.forGui:
            self.rightHighlight.hide()
            self.leftHighlight.hide()
        if self.style[8]:
            self.eyesOpenTexture = loader.loadTexture(
                'phase_4/maps/BeanEyeBoys2.jpg',
                'phase_4/maps/BeanEyeBoys2_a.rgb')
            self.eyesClosedTexture = loader.loadTexture(
                'phase_4/maps/BeanEyeBoysBlink.jpg',
                'phase_4/maps/BeanEyeBoysBlink_a.rgb')
        else:
            self.eyesOpenTexture = loader.loadTexture(
                'phase_4/maps/BeanEyeGirlsNew.jpg',
                'phase_4/maps/BeanEyeGirlsNew_a.rgb')
            self.eyesClosedTexture = loader.loadTexture(
                'phase_4/maps/BeanEyeGirlsBlinkNew.jpg',
                'phase_4/maps/BeanEyeGirlsBlinkNew_a.rgb')
        self.eyesOpenTexture.setMinfilter(Texture.FTLinear)
        self.eyesOpenTexture.setMagfilter(Texture.FTLinear)
        self.eyesClosedTexture.setMinfilter(Texture.FTLinear)
        self.eyesClosedTexture.setMagfilter(Texture.FTLinear)
        self.eyesOpen()
        return None
Beispiel #3
0
    def generatePet(self):
        """
        create a pet from dna
        """
        self.loadModel('phase_4/models/char/TT_pets-mod')
        self.loadAnims({
            'toBeg': 'phase_5/models/char/TT_pets-intoBeg',
            'beg': 'phase_5/models/char/TT_pets-beg',
            'fromBeg': 'phase_5/models/char/TT_pets-begOut',
            'backflip': 'phase_5/models/char/TT_pets-backflip',
            'dance': 'phase_5/models/char/TT_pets-heal',
            'toDig': 'phase_5/models/char/TT_pets-intoDig',
            'dig': 'phase_5/models/char/TT_pets-dig',
            'fromDig': 'phase_5/models/char/TT_pets-digToNeutral',
            'disappear': 'phase_5/models/char/TT_pets-disappear',
            'eat': 'phase_5.5/models/char/TT_pets-eat',
            'jump': 'phase_5/models/char/TT_pets-jump',
            'neutral': 'phase_4/models/char/TT_pets-neutral',
            'neutralHappy': 'phase_4/models/char/TT_pets-neutralHappy',
            'neutralSad': 'phase_4/models/char/TT_pets-neutral_sad',
            'toPet': 'phase_5.5/models/char/TT_pets-petin',
            'pet': 'phase_5.5/models/char/TT_pets-petloop',
            'fromPet': 'phase_5.5/models/char/TT_pets-petend',
            'playDead': 'phase_5/models/char/TT_pets-playdead',
            'fromPlayDead': 'phase_5/models/char/TT_pets-deadend',
            'reappear': 'phase_5/models/char/TT_pets-reappear',
            'run': 'phase_5.5/models/char/TT_pets-run',
            'rollover': 'phase_5/models/char/TT_pets-rollover',
            'walkSad': 'phase_5.5/models/char/TT_pets-sadwalk',
            'speak': 'phase_5/models/char/TT_pets-speak',
            'swallow': 'phase_5.5/models/char/TT_pets-swallow',
            'swim': 'phase_5.5/models/char/TT_pets-swim',
            'toBall': 'phase_5.5/models/char/TT_pets-toBall',
            'walk': 'phase_5.5/models/char/TT_pets-walk',
            'walkHappy': 'phase_5.5/models/char/TT_pets-walkHappy',
        })
        self.setHeight(2)
        # name is set by user or subclass

        # determine the color
        color = None
        colorIndex = self.style[5]
        color = AllPetColors[colorIndex]
        # remember this for blinks
        self.color = color

        # set the body and foot texture
        bodyType = self.style[4]
        assert (bodyType < len(BodyTypes))
        body = self.find("**/body")
        tex = loader.loadTexture(BodyTextures[BodyTypes[bodyType]])
        tex.setMinfilter(Texture.FTLinear)
        tex.setMagfilter(Texture.FTLinear)
        body.setTexture(tex, 1)
        body.setColor(color)

        # set the appropriate foot texture
        leftFoot = self.find("**/leftFoot")
        rightFoot = self.find("**/rightFoot")
        texName = getFootTexture(bodyType)
        tex = loader.loadTexture(texName)
        tex.setMinfilter(Texture.FTLinear)
        tex.setMagfilter(Texture.FTLinear)
        leftFoot.setTexture(tex, 1)
        rightFoot.setTexture(tex, 1)
        leftFoot.setColor(color)
        rightFoot.setColor(color)

        # stash all parts
        for part in HeadParts + EarParts + NoseParts + TailParts:
            self.find("**/" + part).stash()

        #
        # unstash the appropriate parts
        #

        # scale the color slightly to accent misc. body parts
        colorScale = ColorScales[self.style[6]]
        partColor = self.amplifyColor(color, colorScale)

        headIndex = self.style[0]
        # if we have a head decoration
        if headIndex != -1:
            assert (headIndex < len(HeadParts))
            head = self.find("**/@@" + HeadParts[headIndex])
            head.setColor(partColor)
            head.unstash()

        earsIndex = self.style[1]
        # if we have ears
        if earsIndex != -1:
            assert (earsIndex < len(EarParts))
            ears = self.find("**/@@" + EarParts[earsIndex])
            ears.setColor(partColor)
            texName = getEarTexture(bodyType, EarParts[earsIndex])
            if texName:
                tex = loader.loadTexture(texName)
                tex.setMinfilter(Texture.FTLinear)
                tex.setMagfilter(Texture.FTLinear)
                ears.setTexture(tex, 1)
            ears.unstash()

        noseIndex = self.style[2]
        # if we have a nose
        if noseIndex != -1:
            assert (noseIndex < len(NoseParts))
            nose = self.find("**/@@" + NoseParts[noseIndex])
            nose.setColor(partColor)
            nose.unstash()

        tailIndex = self.style[3]
        # if we have a tail
        if tailIndex != -1:
            assert (tailIndex < len(TailParts))
            tail = self.find("**/@@" + TailParts[tailIndex])
            tail.setColor(partColor)
            texName = TailTextures[TailParts[tailIndex]]
            if texName:
                # check to see if we have a special tail texture
                if BodyTypes[bodyType] == 'giraffe':
                    texName = GiraffeTail
                elif BodyTypes[bodyType] == 'leopard':
                    texName = LeopardTail
                tex = loader.loadTexture(texName)
                tex.setMinfilter(Texture.FTLinear)
                tex.setMagfilter(Texture.FTLinear)
                tail.setTexture(tex, 1)
            tail.unstash()

        # Reorder the eyes so they don't do any Z-fighting with the
        # head or with each other.
        if not self.forGui:
            # In the 3-D world, we can fix the eyes by putting them
            # all in the fixed bin.
            self.drawInFront("eyeWhites", "body", 1)
            self.drawInFront("rightPupil", "eyeWhites", 2)
            self.drawInFront("leftPupil", "eyeWhites", 2)
            self.drawInFront("rightHighlight", "rightPupil", 3)
            self.drawInFront("leftHighlight", "leftPupil", 3)
        else:
            # In the 2-D panel, we have to reparent them.  This also
            # means we have to elevate the priorities on the pupils so
            # they don't inherit the wrong texture from above.
            self.drawInFront("eyeWhites", "body", -2)
            self.drawInFront("rightPupil", "eyeWhites", -2)
            self.drawInFront("leftPupil", "eyeWhites", -2)
            self.find('**/rightPupil').adjustAllPriorities(1)
            self.find('**/leftPupil').adjustAllPriorities(1)

        # set eye color
        eyes = self.style[7]
        eyeColor = PetEyeColors[eyes]
        self.eyes = self.find("**/eyeWhites")
        self.rightPupil = self.find("**/rightPupil")
        self.leftPupil = self.find("**/leftPupil")
        self.rightHighlight = self.find("**/rightHighlight")
        self.leftHighlight = self.find("**/leftHighlight")
        self.rightBrow = self.find("**/rightBrow")
        self.leftBrow = self.find("**/leftBrow")

        self.eyes.setColor(1, 1, 1, 1)
        # we need to increase priority on eyeColor so pupils show
        self.rightPupil.setColor(eyeColor, 2)
        self.leftPupil.setColor(eyeColor, 2)
        self.rightHighlight.setColor(1, 1, 1, 1)
        self.leftHighlight.setColor(1, 1, 1, 1)
        self.rightBrow.setColor(0, 0, 0, 1)
        self.leftBrow.setColor(0, 0, 0, 1)

        self.eyes.setTwoSided(1, 1)
        self.rightPupil.setTwoSided(1, 1)
        self.leftPupil.setTwoSided(1, 1)
        self.rightHighlight.setTwoSided(1, 1)
        self.leftHighlight.setTwoSided(1, 1)
        self.rightBrow.setTwoSided(1, 1)
        self.leftBrow.setTwoSided(1, 1)

        if self.forGui:
            # HACK: highlights look awful in the GUI
            # There is probably a way to make them look better
            # but for know. Bye bye...
            self.rightHighlight.hide()
            self.leftHighlight.hide()

        # set eye texture based on gender
        if self.style[8]:
            self.eyesOpenTexture = loader.loadTexture(
                'phase_4/maps/BeanEyeBoys2.jpg',
                'phase_4/maps/BeanEyeBoys2_a.rgb')
            self.eyesClosedTexture = loader.loadTexture(
                'phase_4/maps/BeanEyeBoysBlink.jpg',
                'phase_4/maps/BeanEyeBoysBlink_a.rgb',
            )
        else:
            self.eyesOpenTexture = loader.loadTexture(
                'phase_4/maps/BeanEyeGirlsNew.jpg',
                'phase_4/maps/BeanEyeGirlsNew_a.rgb',
            )
            self.eyesClosedTexture = loader.loadTexture(
                'phase_4/maps/BeanEyeGirlsBlinkNew.jpg',
                'phase_4/maps/BeanEyeGirlsBlinkNew_a.rgb')

        self.eyesOpenTexture.setMinfilter(Texture.FTLinear)
        self.eyesOpenTexture.setMagfilter(Texture.FTLinear)

        self.eyesClosedTexture.setMinfilter(Texture.FTLinear)
        self.eyesClosedTexture.setMagfilter(Texture.FTLinear)
        self.eyesOpen()