Example #1
0
class Button():
    
    def __init__(self, id, model, nodeName):
        
        nodeRegEx = "**/" + nodeName
        
        self.nodeName = nodeName
        self.nodePath = model.find(nodeRegEx)
        self.node = self.nodePath.node()
        
        self.node.setIntoCollideMask(BitMask32.bit(1))
        self.node.setTag('ID', id)
        self.node.setTag('nodeId', nodeName)
        
        self.lighting = None
        
    def mouseHoverIn(self):
        
        if self.lighting != None:
            self.lighting.pause()

        self.lighting = LerpColorScaleInterval(self.nodePath, 0.1, Vec4(0.1,0.1,0.1,2), blendType ='noBlend')
        self.lighting.start()
        
    def mouseHoverOut(self):
        
        self.lighting = LerpColorScaleInterval(self.nodePath, 1.5, Vec4(0.5,0.5,0.5,1), blendType ='easeOut')
        self.lighting.start()       
Example #2
0
 def hide(self, start=True):
     self.npc.actor.setTransparency(True)
     ds = S.ch_anim['death_speed']
     interval = LerpColorScaleInterval(self.npc.actor, 1 / ds / 7,
                                                     (1, 1, 1, 0))
     if not start:
         return interval
     interval.start()
class DistributedDayTimeManager(DistributedWeatherMGR):
    notify = directNotify.newCategory('DistributedDayTimeManager')
    
    def __init__(self, cr):
        DistributedWeatherMGR.__init__(self, cr)
        self.cr = cr
        self.hood = base.cr.playGame.hood
        self.interval = 2
        self.hour2sky = {
            0: 'night',
            1: 'night',
            2: 'night',
            3: 'night',
            4: 'night',
            5: 'night',
            6: 'mml',
            7: 'mml',
            8: 'day',
            9: 'day',
            10: 'day',
            11: 'day',
            12: 'day',
            13: 'day',
            14: 'day',
            15: 'day',
            16: 'day',
            17: 'mml',
            18: 'mml',
            19: 'mml',
            20: 'night',
            21: 'night',
            22: 'night',
            23: 'night'
        }

    def generate(self):
        DistributedWeatherMGR.generate(self)
        
    def announceGenerate(self):
        DistributedWeatherMGR.announceGenerate(self)

    def setSky(self, sky):
        self.hood.skyTransition(str(sky))
    
    def update(self, currentHour):
        self.currSeq = LerpColorScaleInterval(render, self.interval, DayTimeGlobals.COLORS[
            0 if currentHour == 23 else currentHour + 1], DayTimeGlobals.COLORS[currentHour])
        
        self.currSeq.start()
        
        # update the sky
        self.setSky(self.hour2sky[currentHour])

    def delete(self):
        self.currSeq.finish()
        DistributedWeatherMGR.delete(self)
        render.setColorScale(Vec4(1, 1, 1, 1))
Example #4
0
 def show(self):
     ds = S.ch_anim['death_speed']
     interval = LerpColorScaleInterval(self.npc.actor, 1 / ds / 7,
                                                     (1, 1, 1, 1))
     def callback():
         self.npc.actor.setTransparency(False)
     interval.setDoneEvent('body_showed')
     base.acceptOnce('body_showed', callback)
     interval.start()
Example #5
0
class DistributedWeatherCycle(DistributedObject):
    notify = DirectNotifyGlobal.directNotify.newCategory(
        'DistributedWeatherCycle')

    def __init__(self, cr):
        DistributedObject.__init__(self, cr)
        self.fsm = ClassicFSM(self.__class__.__name__, [
            State('off', self.enterOff, self.exitOff, ['morning']),
            State('morning', self.enterMorning, self.exitMorning,
                  ['afternoon']),
            State('afternoon', self.enterAfternoon, self.exitAfternoon,
                  ['evening']),
            State('evening', self.enterEvening, self.exitEvening,
                  ['midnight']),
            State('midnight', self.enterMidnight, self.exitMidnight,
                  ['morning'])
        ], 'off', 'off')
        self.fsm.enterInitialState()
        self.__interval = None

    def setState(self, state):
        self.fsm.request(state)

    def getState(self):
        return self.fsm.getCurrentState()._State__name

    def setDuration(self, duration):
        self.duration = duration

    def getDuration(self):
        return self.duration

    def enterOff(self):
        pass

    def exitOff(self):
        pass

    def enterMorning(self):
        self.__interval = LerpColorScaleInterval(
            render,
            self.getDuration(),
            WeatherGlobals.cycleColors[0],
            startColorScale=render.getColorScale())
        self.__interval.start()

    def exitMorning(self):
        if not self.__interval:
            return
        self.__interval.finish()
        self.__interval = None

    def enterAfternoon(self):
        self.__interval = LerpColorScaleInterval(
            render,
            self.getDuration(),
            WeatherGlobals.cycleColors[1],
            startColorScale=render.getColorScale())
        self.__interval.start()

    def exitAfternoon(self):
        if not self.__interval:
            return
        self.__interval.finish()
        self.__interval = None

    def enterEvening(self):
        self.__interval = LerpColorScaleInterval(
            render,
            self.getDuration(),
            WeatherGlobals.cycleColors[2],
            startColorScale=render.getColorScale())
        self.__interval.start()

    def exitEvening(self):
        if not self.__interval:
            return
        self.__interval.finish()
        self.__interval = None

    def enterMidnight(self):
        self.__interval = LerpColorScaleInterval(
            render,
            self.getDuration(),
            WeatherGlobals.cycleColors[3],
            startColorScale=render.getColorScale())
        self.__interval.start()

    def exitMidnight(self):
        if not self.__interval:
            return
        self.__interval.finish()
        self.__interval = None
Example #6
0
 def lightsOff(self):
     
     delighting = LerpColorScaleInterval(self.model, 0.1, Vec4(0.5,0.5,0.5,1), blendType ='easeOut')
     delighting.start()
     
     self.ywn.tooltip.clearText()
Example #7
0
 def lightsOn(self):
     
     lighting = LerpColorScaleInterval(self.model, 0.1, Vec4(5,5,5,1), blendType ='easeIn')
     lighting.start()
     
     self.updateTooltip()