예제 #1
0
    def __init__(self, doneEvent, moveOn = 1):
        StateData.__init__(self, doneEvent)
        self.fsm = ClassicFSM('quietZone',
                        [State('off',
                        self.enterOff,
                        self.exitOff,
                        ['waitForQuietZoneResponse']),

                        State('waitForQuietZoneResponse',
                        self.enterWaitForQuietZoneResponse,
                        self.exitWaitForQuietZoneResponse,
                        ['waitForSetZoneResponse']),

                        State('waitForSetZoneResponse',
                        self.enterWaitForSetZoneResponse,
                        self.exitWaitForSetZoneResponse,
                        ['waitForSetZoneComplete']),

                        State('waitForSetZoneComplete',
                        self.enterWaitForSetZoneComplete,
                        self.exitWaitForSetZoneComplete,
                        ['off'])],
                        'off', 'off')
        self.fsm.enterInitialState()
        self.moveOn = moveOn
 def __init__(self, parentFSM, doneEvent):
     self.parentFSM = parentFSM
     StateData.__init__(self, doneEvent)
     self.fsm = ClassicFSM('ShtickerBook', [
         State('off', self.enterOff, self.exitOff),
         State('optionPage', self.enterOptionPage, self.exitOptionPage,
               ['districtPage', 'off']),
         State('districtPage', self.enterDistrictPage,
               self.exitDistrictPage, ['optionPage', 'questPage', 'off']),
         State('questPage', self.enterQuestPage, self.exitQuestPage,
               ['inventoryPage', 'districtPage', 'off']),
         State('inventoryPage', self.enterInventoryPage,
               self.exitInventoryPage, ['mapPage', 'questPage', 'off']),
         State('mapPage', self.enterMapPage, self.exitMapPage,
               ['inventoryPage', 'off']),
         State('releaseNotesPage', self.enterReleaseNotesPage,
               self.exitReleaseNotesPage, ['mapPage', 'off']),
         State('adminPage', self.enterAdminPage, self.exitAdminPage,
               ['mapPage', 'namePage', 'off']),
         State('namePage', self.enterNamePage, self.exitNamePage,
               ['adminPage', 'off'])
     ], 'off', 'off')
     if base.localAvatar.getAdminToken() > -1:
         self.fsm.getStateNamed('mapPage').addTransition('adminPage')
     self.fsm.enterInitialState()
     self.entered = 0
     self.parentFSM.getStateNamed('shtickerBook').addChild(self.fsm)
예제 #3
0
    def __init__(self, parentFSM, doneEvent):
        StateData.__init__(self, "playGameDone")
        self.doneEvent = doneEvent
        self.fsm = ClassicFSM('World', [State('off', self.enterOff, self.exitOff, ['quietZone']),
                State('quietZone', self.enterQuietZone, self.exitQuietZone, ['TTHood',
                    'BRHood', 'DLHood', 'MLHood', 'DGHood', 'DDHood', 'MGHood', 'CTCHood', 'CTHood']),
                State('TTHood', self.enterTTHood, self.exitTTHood, ['quietZone']),
                State('BRHood', self.enterBRHood, self.exitBRHood, ['quietZone']),
                State('DLHood', self.enterDLHood, self.exitDLHood, ['quietZone']),
                State('MLHood', self.enterMLHood, self.exitMLHood, ['quietZone']),
                State('DGHood', self.enterDGHood, self.exitDGHood, ['quietZone']),
                State('DDHood', self.enterDDHood, self.exitDDHood, ['quietZone']),
                State('MGHood', self.enterMGHood, self.exitMGHood, ['quietZone']),
                State('CTCHood', self.enterCTCHood, self.exitCTCHood, ['quietZone']),
                State('CTHood', self.enterCTHood, self.exitCTHood, ['quietZone'])],
                'off', 'off')
        self.fsm.enterInitialState()

        self.parentFSM = parentFSM
        self.parentFSM.getStateNamed('playGame').addChild(self.fsm)

        self.hoodDoneEvent = 'hoodDone'
        self.hood = None
        self.quietZoneDoneEvent = uniqueName('quietZoneDone')
        self.quietZoneStateData = None
        self.place = None
        self.lastHood = None
        self.suitManager = None
예제 #4
0
 def __init__(self, book, parentFSM):
     self.book = book
     self.parentFSM = parentFSM
     StateData.__init__(self, 'optionPageDone')
     self.fsm = ClassicFSM('OptionPage', [State('off', self.enterOff, self.exitOff), State('basePage', self.enterBasePage, self.exitBasePage), State('displayPage', self.enterDisplayPage, self.exitDisplayPage)], 'off', 'off')
     self.fsm.enterInitialState()
     self.parentFSM.getStateNamed('optionPage').addChild(self.fsm)
예제 #5
0
 def __init__(self, hood, parentFSMState, doneEvent):
     StateData.__init__(self, doneEvent)
     self.hood = hood
     self.parentFSMState = parentFSMState
     self.fsm = ClassicFSM('safeZoneLoader', [
         State('off', self.enterOff, self.exitOff),
         State('playground', self.enterPlayground, self.exitPlayground,
               ['quietZone']),
         State('toonInterior', self.enterToonInterior,
               self.exitToonInterior, ['quietZone']),
         State('quietZone', self.enterQuietZone, self.exitQuietZone,
               ['playground', 'toonInterior'])
     ], 'off', 'off')
     self.placeDoneEvent = 'placeDone'
     self.place = None
     self.playground = None
     self.battleMusic = None
     self.invasionMusic = None
     self.invasionMusicFiles = None
     self.interiorMusic = None
     self.bossBattleMusic = None
     self.music = None
     self.tournamentMusic = None
     self.linkTunnels = []
     self.szHolidayDNAFile = None
     self.animatedFish = None
     return
예제 #6
0
 def __init__(self, doneEvent, moveOn = 1):
     StateData.__init__(self, doneEvent)
     self.fsm = ClassicFSM('quietZone', [State('off', self.enterOff, self.exitOff, ['waitForQuietZoneResponse']),
      State('waitForQuietZoneResponse', self.enterWaitForQuietZoneResponse, self.exitWaitForQuietZoneResponse, ['waitForSetZoneResponse']),
      State('waitForSetZoneResponse', self.enterWaitForSetZoneResponse, self.exitWaitForSetZoneResponse, ['waitForSetZoneComplete']),
      State('waitForSetZoneComplete', self.enterWaitForSetZoneComplete, self.exitWaitForSetZoneComplete, ['off'])], 'off', 'off')
     self.fsm.enterInitialState()
     self.moveOn = moveOn
예제 #7
0
 def __init__(self, doneEvent):
     StateData.__init__(self, doneEvent)
     self.fsm = ClassicFSM('Walk', [
         State('off', self.enterOff, self.exitOff, ['walking', 'deadWalking']),
         State('walking', self.enterWalking, self.exitWalking),
         State('deadWalking', self.enterDeadWalking, self.exitDeadWalking)],
         'off', 'off')
     self.fsm.enterInitialState()
 def __init__(self, loader, doneEvent):
     StateData.__init__(self, doneEvent)
     self.loader = loader
     self.zoneId = None
     self.track = None
     self.firstPerson = FirstPerson()
     self.lastBookPage = 'mapPage'
     self.useFirstPerson = config.GetBool('want-firstperson-battle')
     return
예제 #9
0
 def __init__(self, book, parentFSM):
     self.book = book
     self.parentFSM = parentFSM
     StateData.__init__(self, 'adminPageDone')
     self.fsm = ClassicFSM('AdminPage', [State('off', self.enterOff, self.exitOff),
      State('basePage', self.enterBasePage, self.exitBasePage),
      State('kickSection', self.enterKickSection, self.exitKickSection),
      State('sysMsgSection', self.enterSysMsgSection, self.exitSysMsgSection)], 'off', 'off')
     self.fsm.enterInitialState()
     self.parentFSM.getStateNamed('adminPage').addChild(self.fsm)
예제 #10
0
 def __init__(self, brain):
     StateData.__init__(self, 'behaviorDone')
     self.brain = brain
     self.goon = self.brain.goon
     self.suit = self.goon
     self.battle = self.goon.dispatch
     self.bspLoader = self.goon.cEntity.getLoader()
     self.air = self.goon.air
     self.behaviorStartTime = 0
     self.avIds = self.goon.dispatch.getAvatars()
예제 #11
0
 def __init__(self, book, parentFSM):
     self.book = book
     self.parentFSM = parentFSM
     StateData.__init__(self, 'optionPageDone')
     self.fsm = ClassicFSM('OptionPage', [
         State('off', self.enterOff, self.exitOff),
         State('basePage', self.enterBasePage, self.exitBasePage),
         State('displayPage', self.enterDisplayPage, self.exitDisplayPage)
     ], 'off', 'off')
     self.fsm.enterInitialState()
     self.parentFSM.getStateNamed('optionPage').addChild(self.fsm)
예제 #12
0
	def __init__(self, book, parentFSM):
		self.book = book
		self.parentFSM = parentFSM
		StateData.__init__(self, 'adminPageDone')
		self.fsm = ClassicFSM('AdminPage', [State('off', self.enterOff, self.exitOff),
			State('basePage', self.enterBasePage, self.exitBasePage),
			State('kickSection', self.enterKickSection, self.exitKickSection),
			State('sysMsgSection', self.enterSysMsgSection, self.exitSysMsgSection)],
			'off', 'off')
		self.fsm.enterInitialState()
		self.parentFSM.getStateNamed('adminPage').addChild(self.fsm)
    def __init__(self, book, parentFSM):
        self.book = book
        self.parentFSM = parentFSM
        StateData.__init__(self, 'namePageDone')
        self.fsm = ClassicFSM('NamePage', [
            State('off', self.enterOff, self.exitOff),
            State('basePage', self.enterBasePage, self.exitBasePage)
        ], 'off', 'off')
        self.fsm.enterInitialState()
        self.parentFSM.getStateNamed('namePage').addChild(self.fsm)
        self.nameServ = base.cr.nameServicesManager
        self.baseRequestIndex = 0
        self.requestsPerCluster = 5

        # GUI elements
        self.requestsContainer = {}
        self.loadingLabel = None
        self.selectedName = None
        self.nameButtons = []
        self.avId2NameData = {}

        geom = CIGlobals.getDefaultBtnGeom()
        self.acceptBtn = DirectButton(
            geom=geom,
            text_scale=0.04,
            relief=None,
            scale=0.5,
            text="Accept",
            pos=(0.5, posY, 0),
            text_pos=(0, -0.01),
            command=self.acceptName,
        )
        self.acceptBtn.hide()
        self.declineBtn = DirectButton(
            geom=geom,
            text_scale=0.04,
            relief=None,
            scale=0.5,
            text="Decline",
            pos=(0.75, posY, 0),
            text_pos=(0, -0.01),
            command=self.declineName,
        )
        self.declineBtn.hide()
        self.avIdLbl = OnscreenText(text="",
                                    scale=0.08,
                                    pos=(0.3, 0, 0.5),
                                    align=TextNode.ACenter)
        self.avIdLbl.hide()
        self.accIdLbl = OnscreenText(text="",
                                     scale=0.08,
                                     pos=(0.3, 0, 0.3),
                                     align=TextNode.ACenter)
        self.accIdLbl.hide()
예제 #14
0
 def __init__(self, barDur = BAR_MOVE_DURATION, fov = None):
     StateData.__init__(self, doneEvent = 'cutsceneBarsDown')
     self.topBar = None
     self.btmBar = None
     self.ival = None
     self.barDur = barDur
     self.origFov = CIGlobals.DefaultCameraFov
     if not fov:
         self.fov = CIGlobals.DefaultCameraFov
     else:
         self.fov = fov
     self.load()
예제 #15
0
 def __init__(self, parentFSM):
     StateData.__init__(self, "avChooseDone")
     self.avChooseFSM = ClassicFSM('avChoose', [State('getToonData', self.enterGetToonData, self.exitGetToonData),
                             State('avChoose', self.enterAvChoose, self.exitAvChoose),
                             State('waitForToonDelResponse', self.enterWaitForToonDelResponse,
                                 self.exitWaitForToonDelResponse),
                             State('off', self.enterOff, self.exitOff)], 'off', 'off')
     self.avChooseFSM.enterInitialState()
     self.parentFSM = parentFSM
     self.parentFSM.getStateNamed('avChoose').addChild(self.avChooseFSM)
     self.pickAToon = None
     self.setAvatarsNone()
예제 #16
0
 def __init__(self, parentFSM):
     StateData.__init__(self, 'avChooseDone')
     self.avChooseFSM = ClassicFSM('avChoose', [State('getToonData', self.enterGetToonData, self.exitGetToonData),
      State('avChoose', self.enterAvChoose, self.exitAvChoose),
      State('waitForToonDelResponse', self.enterWaitForToonDelResponse, self.exitWaitForToonDelResponse),
      State('off', self.enterOff, self.exitOff)], 'off', 'off')
     self.avChooseFSM.enterInitialState()
     self.parentFSM = parentFSM
     self.parentFSM.getStateNamed('avChoose').addChild(self.avChooseFSM)
     self.pickAToon = None
     self.setAvatarsNone()
     return
예제 #17
0
 def __init__(self, parentFSM, doneEvent, dnaStore, hoodId):
     StateData.__init__(self, doneEvent)
     self.parentFSM = parentFSM
     self.doneEvent = doneEvent
     self.dnaStore = dnaStore
     self.hoodId = hoodId
     self.id = None
     self.titleText = None
     self.suitFog = None
     self.suitLight = None
     self.suitLightColor = (0.4, 0.4, 0.4, 1)
     self.suitFogData = [(0.3, 0.3, 0.3), 0.0025]
     self.titleColor = (1, 1, 1, 1)
     return
예제 #18
0
 def __init__(self, loader, doneEvent):
     StateData.__init__(self, doneEvent)
     self.loader = loader
     self.zoneId = None
     self.track = None
     self.interior = False
     self.firstPerson = FirstPerson()
     self.snowEffect = SnowEffect(self)
     self.lastBookPage = 2
     self.useFirstPerson = config.GetBool('want-firstperson-battle')
     self.lampLights = []
     self.lampLightColor = VBase4(255 / 255.0, 255 / 255.0, 218 / 255.0,
                                  1.0)
     return
예제 #19
0
 def __init__(self, hood, parentFSMState, doneEvent):
     self.hood = hood
     self.parentFSMState = parentFSMState
     StateData.__init__(self, doneEvent)
     self.fsm = ClassicFSM('TownLoader', [State('start', self.enterStart, self.exitStart, ['quietZone', 'street']),
      State('street', self.enterStreet, self.exitStreet, ['quietZone']),
      State('toonInterior', self.enterToonInterior, self.exitToonInterior, ['quietZone']),
      State('quietZone', self.enterQuietZone, self.exitQuietZone, ['street', 'toonInterior']),
      State('final', self.enterFinal, self.exitFinal, ['start'])], 'start', 'final')
     self.branchZone = None
     self.canonicalBranchZone = None
     self.placeDoneEvent = 'placeDone'
     self.linkTunnels = []
     return
예제 #20
0
파일: Hood.py 프로젝트: coginvasion/src
 def __init__(self, parentFSM, doneEvent, dnaStore, hoodId):
     StateData.__init__(self, doneEvent)
     self.parentFSM = parentFSM
     self.doneEvent = doneEvent
     self.dnaStore = dnaStore
     self.hoodId = hoodId
     self.id = None
     self.titleText = None
     self.suitFog = None
     self.suitLight = None
     self.suitLightColor = (0.4, 0.4, 0.4, 1)
     self.suitFogData = [(0.3, 0.3, 0.3), 0.0025]
     self.titleColor = (1, 1, 1, 1)
     return
예제 #21
0
 def __init__(self, parentFSM, doneEvent):
     self.parentFSM = parentFSM
     StateData.__init__(self, doneEvent)
     self.fsm = ClassicFSM('ShtickerBook', [State('off', self.enterOff, self.exitOff),
      State('optionPage', self.enterOptionPage, self.exitOptionPage, ['districtPage', 'off']),
      State('districtPage', self.enterDistrictPage, self.exitDistrictPage, ['optionPage', 'questPage', 'off']),
      State('questPage', self.enterQuestPage, self.exitQuestPage, ['inventoryPage', 'districtPage', 'off']),
      State('inventoryPage', self.enterInventoryPage, self.exitInventoryPage, ['mapPage', 'questPage', 'off']),
      State('mapPage', self.enterMapPage, self.exitMapPage, ['releaseNotesPage', 'inventoryPage', 'off']),
      State('releaseNotesPage', self.enterReleaseNotesPage, self.exitReleaseNotesPage, ['mapPage', 'off']),
      State('adminPage', self.enterAdminPage, self.exitAdminPage, ['releaseNotesPage', 'off'])], 'off', 'off')
     if base.localAvatar.getAdminToken() > -1:
         self.fsm.getStateNamed('releaseNotesPage').addTransition('adminPage')
     self.fsm.enterInitialState()
     self.entered = 0
     self.parentFSM.getStateNamed('shtickerBook').addChild(self.fsm)
예제 #22
0
    def __init__(self, book, title, doneEvent='%s-done', wantHeader=True):
        StateData.__init__(self, doneEvent % title)
        self.notify = directNotify.newCategory(title)
        self.book = book
        self.title = title
        self.icon = None
        self.iconScale = 1
        self.iconColor = (1, 1, 1, 1)
        self.tabButton = None

        # The actual header that displays the title.
        self.header = None
        self.wantHeader = wantHeader

        # The required access level(s) to view this page.
        self.restriction = []
예제 #23
0
파일: Shop.py 프로젝트: coginvasion/src
 def __init__(self, distShop, doneEvent):
     StateData.__init__(self, doneEvent)
     self.distShop = distShop
     self.destroyEvent = self.distShop.destroyEvent
     self.origHealth = None
     self.avMoney = base.localAvatar.getMoney()
     self.healCooldownDoneSoundPath = 'phase_3.5/audio/sfx/tt_s_gui_sbk_cdrSuccess.mp3'
     self.healCooldownDoneSfx = None
     self.newHealth = None
     self.pages = 1
     self.window = None
     self.upgradesPurchased = False
     self.originalSupply = {}
     self.healCooldowns = {}
     self.newHealCooldowns = {}
     self.acceptOnce(self.destroyEvent, self.destroy)
     return
예제 #24
0
    def __init__(self, parentFSM, doneEvent, dnaStore, hoodId):
        StateData.__init__(self, doneEvent)
        self.parentFSM = parentFSM
        self.doneEvent = doneEvent
        self.dnaStore = dnaStore
        self.hoodId = hoodId
        self.abbr = ""
        self.id = None
        self.titleText = None
        self.suitFog = None
        self.suitLight = None
        self.suitLightColor = (0.4, 0.4, 0.4, 1)
        self.suitFogData = [(0.3, 0.3, 0.3), 0.0025]
        self.titleColor = (1, 1, 1, 1)

        self.wantLighting = True

        self.olc = ZoneUtil.getOutdoorLightingConfig(self.hoodId)

        return
예제 #25
0
 def __init__(self, hood, parentFSMState, doneEvent):
     StateData.__init__(self, doneEvent)
     self.hood = hood
     self.parentFSMState = parentFSMState
     self.fsm = ClassicFSM('safeZoneLoader', [State('off', self.enterOff, self.exitOff),
      State('playground', self.enterPlayground, self.exitPlayground, ['quietZone']),
      State('toonInterior', self.enterToonInterior, self.exitToonInterior, ['quietZone']),
      State('quietZone', self.enterQuietZone, self.exitQuietZone, ['playground', 'toonInterior'])], 'off', 'off')
     self.placeDoneEvent = 'placeDone'
     self.place = None
     self.playground = None
     self.battleMusic = None
     self.invasionMusic = None
     self.invasionMusicFiles = None
     self.interiorMusic = None
     self.bossBattleMusic = None
     self.music = None
     self.tournamentMusic = None
     self.linkTunnels = []
     return
 def __init__(self,
              distShop,
              doneEvent,
              wantTurretCount=0,
              wantFullShop=False):
     StateData.__init__(self, doneEvent)
     self.distShop = distShop
     self.origHealth = None
     self.avMoney = base.localAvatar.getMoney()
     self.healCooldownDoneSoundPath = 'phase_3.5/audio/sfx/tt_s_gui_sbk_cdrSuccess.ogg'
     self.healCooldownDoneSfx = None
     self.requestedHp = None
     self.pages = 1
     self.window = None
     self.upgradesPurchased = False
     self.originalSupply = {}
     self.wantTurretCount = wantTurretCount
     self.wantFullShop = wantFullShop
     self.healCooldowns = {}
     self.newHealCooldowns = {}
     return
예제 #27
0
 def __init__(self, doneEvent):
     StateData.__init__(self, doneEvent)
     self.fsm = ClassicFSM('World', [
         State('off', self.enterOff, self.exitOff, ['quietZone']),
         State(
             'quietZone', self.enterQuietZone, self.exitQuietZone,
             ['TTHood', 'BRHood', 'DLHood', 'MLHood', 'DGHood', 'DDHood']),
         State('TTHood', self.enterTTHood, self.exitTTHood, ['quietZone']),
         State('BRHood', self.enterBRHood, self.exitBRHood, ['quietZone']),
         State('DLHood', self.enterDLHood, self.exitDLHood, ['quietZone']),
         State('MLHood', self.enterMLHood, self.exitMLHood, ['quietZone']),
         State('DGHood', self.enterDGHood, self.exitDGHood, ['quietZone']),
         State('DDHood', self.enterDDHood, self.exitDDHood, ['quietZone'])
     ], 'off', 'off')
     self.fsm.enterInitialState()
     self.hoodDoneEvent = 'hoodDone'
     self.hood = None
     self.quietZoneDoneEvent = uniqueName('quietZoneDone')
     self.quietZoneStateData = None
     self.place = None
     self.lastHood = None
예제 #28
0
 def __init__(self, hood, parentFSMState, doneEvent):
     self.hood = hood
     self.parentFSMState = parentFSMState
     StateData.__init__(self, doneEvent)
     self.fsm = ClassicFSM('TownLoader', [
         State('start', self.enterStart, self.exitStart,
               ['quietZone', 'street']),
         State('street', self.enterStreet, self.exitStreet, ['quietZone']),
         State('toonInterior', self.enterToonInterior,
               self.exitToonInterior, ['quietZone']),
         State('suitInterior', self.enterSuitInterior,
               self.exitSuitInterior, ['quietZone']),
         State('quietZone', self.enterQuietZone, self.exitQuietZone,
               ['street', 'toonInterior', 'suitInterior']),
         State('final', self.enterFinal, self.exitFinal, ['start'])
     ], 'start', 'final')
     self.branchZone = None
     self.canonicalBranchZone = None
     self.placeDoneEvent = 'placeDone'
     self.linkTunnels = []
     self.place = None
     return
 def __init__(self, hood, parentFSMState, doneEvent):
     StateData.__init__(self, doneEvent)
     self.hood = hood
     self.parentFSMState = parentFSMState
     self.fsm = ClassicFSM('safeZoneLoader', [
         State('off', self.enterOff, self.exitOff),
         State('playground', self.enterPlayground, self.exitPlayground,
               ['quietZone']),
         State('toonInterior', self.enterToonInterior,
               self.exitToonInterior, ['quietZone']),
         State('quietZone', self.enterQuietZone, self.exitQuietZone,
               ['playground', 'toonInterior'])
     ], 'off', 'off')
     self.placeDoneEvent = 'placeDone'
     self.place = None
     self.playground = None
     self.nodeList = []
     self.linkTunnels = []
     self.szHolidayDNAFile = None
     self.animatedFish = None
     self.safeZoneSong = ''
     self.interiorSong = ''
     return
예제 #30
0
파일: Walk.py 프로젝트: coginvasion/src
 def __init__(self, doneEvent):
     StateData.__init__(self, doneEvent)
     self.fsm = ClassicFSM('Walk', [State('off', self.enterOff, self.exitOff, ['walking', 'deadWalking']), State('walking', self.enterWalking, self.exitWalking), State('deadWalking', self.enterDeadWalking, self.exitDeadWalking)], 'off', 'off')
     self.fsm.enterInitialState()
예제 #31
0
 def __init__(self, doneEvent, suit, target):
     StateData.__init__(self, doneEvent)
     self.suit = suit
     self.target = target
     self.currentAttack = None
     return
 def __init__(self, doneEvent, suit, target):
     StateData.__init__(self, doneEvent)
     self.suit = suit
     self.target = target
     self.currentAttack = None
     return
예제 #33
0
 def __init__(self, distShop, doneEvent):
     StateData.__init__(self, doneEvent)
     self.distShop = distShop
     self.avMoney = base.localAvatar.getMoney()
     self.pages = 1
     self.window = None
예제 #34
0
 def __init__(self, doneEvent):
     DirectObject.__init__(self)
     StateData.__init__(self, doneEvent)
     self.__isLoaded = False
예제 #35
0
파일: Place.py 프로젝트: coginvasion/src
 def __init__(self, loader, doneEvent):
     StateData.__init__(self, doneEvent)
     self.loader = loader
     self.zoneId = None
     self.track = None
     return