mirror of
https://github.com/Sneed-Group/Poodletooth-iLand
synced 2024-12-27 05:32:41 -06:00
65 lines
2.6 KiB
Python
65 lines
2.6 KiB
Python
|
from pandac.PandaModules import *
|
||
|
from direct.interval.IntervalGlobal import *
|
||
|
import DistributedCCharBase
|
||
|
import DistributedDonald
|
||
|
from direct.directnotify import DirectNotifyGlobal
|
||
|
from direct.fsm import ClassicFSM, State
|
||
|
from direct.fsm import State
|
||
|
import CharStateDatas
|
||
|
import CCharChatter
|
||
|
from toontown.toonbase import ToontownGlobals
|
||
|
from toontown.toonbase import TTLocalizer
|
||
|
from toontown.hood import GSHood
|
||
|
|
||
|
class DistributedFrankenDonald(DistributedDonald.DistributedDonald):
|
||
|
notify = DirectNotifyGlobal.directNotify.newCategory('DistributedFrankenDonald')
|
||
|
|
||
|
def __init__(self, cr):
|
||
|
try:
|
||
|
self.DistributedFrankenDonald_initialized
|
||
|
except:
|
||
|
self.DistributedFrankenDonald_initialized = 1
|
||
|
DistributedCCharBase.DistributedCCharBase.__init__(self, cr, TTLocalizer.FrankenDonald, 'fd')
|
||
|
self.fsm = ClassicFSM.ClassicFSM(self.getName(), [State.State('Off', self.enterOff, self.exitOff, ['Neutral']), State.State('Neutral', self.enterNeutral, self.exitNeutral, ['Walk']), State.State('Walk', self.enterWalk, self.exitWalk, ['Neutral'])], 'Off', 'Off')
|
||
|
self.fsm.enterInitialState()
|
||
|
self.nametag.setText(TTLocalizer.Donald)
|
||
|
self.handleHolidays()
|
||
|
|
||
|
def disable(self):
|
||
|
self.fsm.requestFinalState()
|
||
|
DistributedCCharBase.DistributedCCharBase.disable(self)
|
||
|
del self.neutralDoneEvent
|
||
|
del self.neutral
|
||
|
del self.walkDoneEvent
|
||
|
del self.walk
|
||
|
self.fsm.requestFinalState()
|
||
|
|
||
|
def generate(self):
|
||
|
DistributedCCharBase.DistributedCCharBase.generate(self, self.diffPath)
|
||
|
name = self.getName()
|
||
|
self.neutralDoneEvent = self.taskName(name + '-neutral-done')
|
||
|
self.neutral = CharStateDatas.CharNeutralState(self.neutralDoneEvent, self)
|
||
|
self.walkDoneEvent = self.taskName(name + '-walk-done')
|
||
|
if self.diffPath == None:
|
||
|
self.walk = CharStateDatas.CharWalkState(self.walkDoneEvent, self)
|
||
|
else:
|
||
|
self.walk = CharStateDatas.CharWalkState(self.walkDoneEvent, self, self.diffPath)
|
||
|
self.fsm.request('Neutral')
|
||
|
return
|
||
|
|
||
|
def enterNeutral(self):
|
||
|
self.notify.debug('Neutral ' + self.getName() + '...')
|
||
|
self.neutral.enter()
|
||
|
self.acceptOnce(self.neutralDoneEvent, self.__decideNextState)
|
||
|
|
||
|
def enterWalk(self):
|
||
|
self.notify.debug('Walking ' + self.getName() + '...')
|
||
|
self.walk.enter()
|
||
|
self.acceptOnce(self.walkDoneEvent, self.__decideNextState)
|
||
|
|
||
|
def __decideNextState(self, doneStatus):
|
||
|
self.fsm.request('Neutral')
|
||
|
|
||
|
def walkSpeed(self):
|
||
|
return ToontownGlobals.FrankenDonaldSpeed
|