def makeSign(topStr, signStr, textId):
     top = self.geom.find('**/' + topStr)
     sign = top.find('**/' + signStr)
     locator = top.find('**/sign_origin')
     signText = DirectGui.OnscreenText(
         text=TextEncoder.upper(
             TTLocalizer.GlobalStreetNames[textId][-1]),
         font=ToontownGlobals.getSuitFont(),
         scale=TTLocalizer.BCHQLsignText,
         fg=(0, 0, 0, 1),
         parent=sign)
     signText.setPosHpr(locator, 0, -0.1, -0.25, 0, 0, 0)
     signText.setDepthWrite(0)
示例#2
0
 def enterPlayground(self, requestStatus):
     self.playgroundClass = GZPlayground
     SafeZoneLoader.enterPlayground(self, requestStatus)
     top = self.geom.find('**/linktunnel_bosshq_10000_DNARoot')
     sign = top.find('**/Sign_5')
     sign.node().setEffect(DecalEffect.make())
     locator = top.find('**/sign_origin')
     signText = DirectGui.OnscreenText(text=TextEncoder.upper(TTLocalizer.BossbotHQ[(-1)]), font=ToontownGlobals.getSuitFont(), scale=TTLocalizer.GZSZLsignText, fg=(0,
                                                                                                                                                                     0,
                                                                                                                                                                     0,
                                                                                                                                                                     1), mayChange=False, parent=sign)
     signText.setPosHpr(locator, 0, 0, -0.3, 0, 0, 0)
     signText.setDepthWrite(0)
示例#3
0
    def setupEndSection(self, index):
        # Used to compensate for scaling of Cog tunnel sign's
        # original aspect ratio of 1125x813 to a uniform ratio,
        # scale z by factor of 0.7227
        aspectSF = 0.7227
        self.endSectionNP = NodePath('EndSection')
        self.endSectionNP.reparentTo(self.game.assetMgr.world)
        self.endSectionNP.setX(self.incrementX)

        # Creating the wall
        self.endWall = self.game.assetMgr.startingWall.copyTo(
            self.endSectionNP)
        self.endWall.setPos(100, 0, 4)
        self.endWall.setScale(0.8)
        # Creating the arrow
        self.endArrow = self.game.assetMgr.arrow.copyTo(self.endSectionNP)
        self.endArrow.setPos(6, 1.5, 12.76)
        # Creating the exitElevator
        self.exitElevator = self.game.assetMgr.exitElevator.copyTo(
            self.endSectionNP)
        self.exitElevator.setPos(52, -2, 12.7)
        # Elevator EXIT sign
        cogSignModel = loader.loadModel(
            'phase_4/models/props/sign_sellBotHeadHQ')
        cogSign = cogSignModel.find('**/sign_sellBotHeadHQ')
        cogSignSF = 23
        elevatorSignSF = 15
        sideDoor = self.exitElevator.find('**/doorway2')
        sdSign = cogSign.copyTo(sideDoor)
        sdSign.setPosHprScale(0, 1.9, 15, 0, 0, 0, elevatorSignSF,
                              elevatorSignSF, elevatorSignSF * aspectSF)
        sdSign.node().setEffect(DecalEffect.make())
        sdText = DirectGui.OnscreenText(
            text=TTLocalizer.TwoDGameElevatorExit,
            font=ToontownGlobals.getSuitFont(),
            pos=(0, -0.34),
            scale=0.15,
            # required for DecalEffect (must be a GeomNode, not a TextNode)
            mayChange=False,
            parent=sdSign)
        sdText.setDepthWrite(0)

        # We create a section for the end section because it has a spawnPoint.
        # Creating a section makes it easier to handle that without repeating code.
        self.sectionNPList.append(self.endSectionNP)
        # Emulating the info what setupSections() in DistributedTwoDGameAI would have sent.
        endSectionInfo = ('end', [], [], [0], [])
        endSection = TwoDSection.TwoDSection(index, endSectionInfo,
                                             self.endSectionNP, self)
        self.sections.append(endSection)
        self.incrementX += endSection.length
示例#4
0
 def makeSign(topStr, signStr, textId):
     top = self.geom.find("**/" + topStr)
     sign = top.find("**/" + signStr)
     #sign.node().setEffect(DecalEffect.make())
     locator = top.find("**/sign_origin")
     signText = DirectGui.OnscreenText(
         text=TextEncoder.upper(
             TTLocalizer.GlobalStreetNames[textId][-1]),
         font=ToontownGlobals.getSuitFont(),
         scale=TTLocalizer.BCHQLmakeSign,
         fg=(0, 0, 0, 1),
         parent=sign)
     signText.setPosHpr(locator, 0, -0.1, -0.25, 0, 0, 0)
     signText.setDepthOffset(1)
示例#5
0
    def loadPlaceGeom(self, zoneId):

        self.notify.info("loadPlaceGeom: %s" % zoneId)

        # We shoud not look at the last 2 digits to match against these constants
        zoneId = (zoneId - (zoneId % 100))

        if zoneId == ToontownGlobals.CashbotHQ:
            self.geom = loader.loadModel(self.cogHQExteriorModelPath)

            # Rename the link tunnels so they will hook up properly
            ddLinkTunnel = self.geom.find("**/LinkTunnel1")
            ddLinkTunnel.setName("linktunnel_dl_9252_DNARoot")

            # Put a handy sign on the link tunnel
            locator = self.geom.find('**/sign_origin')
            backgroundGeom = self.geom.find('**/EntranceFrameFront')
            #backgroundGeom.node().setEffect(DecalEffect.make())
            signText = DirectGui.OnscreenText(
                text=TTLocalizer.DonaldsDreamland[-1],
                font=ToontownGlobals.getSuitFont(),
                scale=3,
                fg=(0.87, 0.87, 0.87, 1),
                # required for DecalEffect (must be a GeomNode, not a TextNode)
                mayChange=False,
                parent=backgroundGeom)
            signText.setPosHpr(locator, 0, 0, 0, 0, 0, 0)
            signText.setDepthOffset(1)

        elif zoneId == ToontownGlobals.CashbotLobby:
            if ConfigVariableBool('want-qa-regression', 0).getValue():
                self.notify.info('QA-REGRESSION: COGHQ: Visit CashbotLobby')

            self.geom = loader.loadModel(self.cogHQLobbyModelPath)

        # Note: the factory interior has a dynamically allocated zone but
        # that is ok because we do not need to load any models - they all
        # get loaded by the distributed object

        else:
            self.notify.warning("loadPlaceGeom: unclassified zone %s" % zoneId)

        # Flatten the geom a bit
        if self.geom:
            self.geom.flattenStrong()

        CogHQLoader.CogHQLoader.loadPlaceGeom(self, zoneId)
示例#6
0
 def doEnterZone(self, newZoneId):
     Street.Street.doEnterZone(self, newZoneId)
     top = render.find('**/linktunnel_bosshq_10000_DNARoot')
     if top.isEmpty():
         return
     sign = top.find('**/Sign_5')
     sign.node().setEffect(DecalEffect.make())
     locator = top.find('**/sign_origin')
     signText = DirectGui.OnscreenText(text=TextEncoder.upper(
         TTLocalizer.BossbotHQ[-1]),
                                       font=ToontownGlobals.getSuitFont(),
                                       scale=TTLocalizer.GZSZLsignText,
                                       fg=(0, 0, 0, 1),
                                       mayChange=False,
                                       parent=sign)
     signText.setPosHpr(locator, 0, 0, -0.3, 0, 0, 0)
     signText.setDepthWrite(0)
示例#7
0
 def setMintId(self, mintId):
     self.mintId = mintId
     mintId2originId = {ToontownGlobals.Zones.CashbotMintIntA: 1,
      ToontownGlobals.Zones.CashbotMintIntB: 2,
      ToontownGlobals.Zones.CashbotMintIntC: 0}
     originId = mintId2originId[self.mintId]
     geom = self.cr.playGame.hood.loader.geom
     locator = geom.find('**/elevator_origin_%s' % originId)
     if locator:
         self.elevatorModel.setPosHpr(locator, 0, 0, 0, 0, 0, 0)
     else:
         self.notify.error('No origin found for originId: %s' % originId)
     locator = geom.find('**/elevator_signorigin_%s' % originId)
     backgroundGeom = geom.find('**/ElevatorFrameFront_%d' % originId)
     backgroundGeom.node().setEffect(DecalEffect.make())
     signText = DirectGui.OnscreenText(text=TextEncoder.upper(TTLocalizer.GlobalStreetNames[mintId][-1]), font=ToontownGlobals.getSuitFont(), scale=TTLocalizer.DMEEsignText, fg=(0.87, 0.87, 0.87, 1), mayChange=False, parent=backgroundGeom)
     signText.setPosHpr(locator, 0, 0, 0, 0, 0, 0)
     signText.setDepthWrite(0)
 def setEntranceId(self, entranceId):
     self.entranceId = entranceId
     geom = self.cr.playGame.hood.loader.geom
     locator = geom.find('**/elevator_origin_%s' % entranceId)
     if locator:
         self.elevatorModel.setPosHpr(locator, 0, 0, 0, 0, 0, 0)
     else:
         self.notify.error('No origin found for originId: %s' % entranceId)
     entranceId2zoneId = {0: ToontownGlobals.LawbotStageIntA,
      1: ToontownGlobals.LawbotStageIntB,
      2: ToontownGlobals.LawbotStageIntC,
      3: ToontownGlobals.LawbotStageIntD}
     self.intZoneId = entranceId2zoneId[entranceId]
     locator = geom.find('**/elevator_signorigin_%s' % entranceId)
     backgroundGeom = geom.find('**/ElevatorFrameFront_%d' % entranceId)
     backgroundGeom.node().setEffect(DecalEffect.make())
     signText = DirectGui.OnscreenText(text=TextEncoder.upper(TTLocalizer.GlobalStreetNames[self.intZoneId][-1]), font=ToontownGlobals.getSuitFont(), scale=2, fg=(0.87, 0.87, 0.87, 1), mayChange=False, parent=backgroundGeom)
     signText.setPosHpr(locator, 0, 0, 0, 0, 0, 0)
     signText.setDepthWrite(0)
 def loadPlaceGeom(self, zoneId):
     self.notify.info('loadPlaceGeom: %s' % zoneId)
     zoneId = zoneId - zoneId % 100
     if zoneId == ToontownGlobals.CashbotHQ:
         self.geom = loader.loadModel(self.cogHQExteriorModelPath)
         ddLinkTunnel = self.geom.find('**/LinkTunnel1')
         ddLinkTunnel.setName('linktunnel_dl_9252_DNARoot')
         locator = self.geom.find('**/sign_origin')
         backgroundGeom = self.geom.find('**/EntranceFrameFront')
         backgroundGeom.node().setEffect(DecalEffect.make())
         signText = DirectGui.OnscreenText(text=TTLocalizer.DonaldsDreamland[-1], font=ToontownGlobals.getSuitFont(), scale=3, fg=(0.87, 0.87, 0.87, 1), mayChange=False, parent=backgroundGeom)
         signText.setPosHpr(locator, 0, 0, 0, 0, 0, 0)
         signText.setDepthWrite(0)
     elif zoneId == ToontownGlobals.CashbotLobby:
         if config.GetBool('want-qa-regression', 0):
             self.notify.info('QA-REGRESSION: COGHQ: Visit CashbotLobby')
         self.geom = loader.loadModel(self.cogHQLobbyModelPath)
     else:
         self.notify.warning('loadPlaceGeom: unclassified zone %s' % zoneId)
     CogHQLoader.CogHQLoader.loadPlaceGeom(self, zoneId)
示例#10
0
    def enterPlayground(self, requestStatus):
        """
        """
        self.playgroundClass = GZPlayground
        SafeZoneLoader.enterPlayground(self, requestStatus)

        # add the bbhq sign
        top = self.geom.find("**/linktunnel_bosshq_10000_DNARoot")
        sign = top.find("**/Sign_5")
        sign.node().setEffect(DecalEffect.make())
        locator = top.find("**/sign_origin")
        signText = DirectGui.OnscreenText(
            text=TextEncoder.upper(TTLocalizer.BossbotHQ[-1]),
            font=ToontownGlobals.getSuitFont(),
            scale=TTLocalizer.GSZLbossbotSignScale,
            fg=(0, 0, 0, 1),
            # required for DecalEffect (must be a GeomNode, not a TextNode)
            mayChange=False,
            parent=sign)
        signText.setPosHpr(locator, 0, 0, -0.3, 0, 0, 0)
        signText.setDepthWrite(0)
 def setupEndSection(self, index):
     aspectSF = 0.7227
     self.endSectionNP = NodePath('EndSection')
     self.endSectionNP.reparentTo(self.game.assetMgr.world)
     self.endSectionNP.setX(self.incrementX)
     self.endWall = self.game.assetMgr.startingWall.copyTo(
         self.endSectionNP)
     self.endWall.setPos(100, 0, 4)
     self.endWall.setScale(0.8)
     self.endArrow = self.game.assetMgr.arrow.copyTo(self.endSectionNP)
     self.endArrow.setPos(6, 1.5, 12.76)
     self.exitElevator = self.game.assetMgr.exitElevator.copyTo(
         self.endSectionNP)
     self.exitElevator.setPos(52, -2, 12.7)
     cogSignModel = loader.loadModel(
         'phase_4/models/props/sign_sellBotHeadHQ')
     cogSign = cogSignModel.find('**/sign_sellBotHeadHQ')
     cogSignSF = 23
     elevatorSignSF = 15
     sideDoor = self.exitElevator.find('**/doorway2')
     sdSign = cogSign.copyTo(sideDoor)
     sdSign.setPosHprScale(0, 1.9, 15, 0, 0, 0, elevatorSignSF,
                           elevatorSignSF, elevatorSignSF * aspectSF)
     sdSign.node().setEffect(DecalEffect.make())
     sdText = DirectGui.OnscreenText(text=TTLocalizer.TwoDGameElevatorExit,
                                     font=ToontownGlobals.getSuitFont(),
                                     pos=(0, -0.34),
                                     scale=0.15,
                                     mayChange=False,
                                     parent=sdSign)
     sdText.setDepthWrite(0)
     self.sectionNPList.append(self.endSectionNP)
     endSectionInfo = ('end', [], [], [0], [])
     endSection = TwoDSection.TwoDSection(index, endSectionInfo,
                                          self.endSectionNP, self)
     self.sections.append(endSection)
     self.incrementX += endSection.length
    def loadPlaceGeom(self, zoneId):
        self.notify.info("loadPlaceGeom: %s" % zoneId)

        # We shoud not look at the last 2 digits to match against these constants
        zoneId = (zoneId - (zoneId %100))

        if zoneId == ToontownGlobals.SellbotHQ:
            self.geom = loader.loadModel(self.cogHQExteriorModelPath)

            # Rename the link tunnels so they will hook up properly
            dgLinkTunnel = self.geom.find("**/Tunnel1")
            dgLinkTunnel.setName("linktunnel_dg_5316_DNARoot")
            factoryLinkTunnel = self.geom.find("**/Tunnel2")
            factoryLinkTunnel.setName("linktunnel_sellhq_11200_DNARoot")

            # Put handy signs on the link tunnels
            cogSignModel = loader.loadModel(
                'phase_4/models/props/sign_sellBotHeadHQ')
            cogSign = cogSignModel.find('**/sign_sellBotHeadHQ')
            cogSignSF = 23

            # To Daisys Garden
            dgSign = cogSign.copyTo(dgLinkTunnel)
            dgSign.setPosHprScale(
                0.00, -291.5, 29,
                180.00, 0.00, 0.00,
                cogSignSF, cogSignSF, cogSignSF * aspectSF)
            dgSign.node().setEffect(DecalEffect.make())
            dgText = DirectGui.OnscreenText(
                text = TTLocalizer.DaisyGardens[-1],
                font = ToontownGlobals.getSuitFont(),
                pos = (0,-0.3), scale = TTLocalizer.SCLdgSign,
                # required for DecalEffect (must be a GeomNode, not a TextNode)
                mayChange=False,
                parent = dgSign)
            dgText.setDepthWrite(0)

            # To Factory
            factorySign = cogSign.copyTo(factoryLinkTunnel)
            factorySign.setPosHprScale(
                148.625, -155, 27,
                -90.00, 0.00, 0.00,
                cogSignSF, cogSignSF, cogSignSF * aspectSF)
            # Make text a decal
            factorySign.node().setEffect(DecalEffect.make())
            factoryTypeText = DirectGui.OnscreenText(
                text = TTLocalizer.Sellbot,
                font = ToontownGlobals.getSuitFont(),
                pos = (0,-0.25), scale = .075,
                # required for DecalEffect (must be a GeomNode, not a TextNode)
                mayChange=False,
                parent = factorySign)
            factoryTypeText.setDepthWrite(0)
            factoryText = DirectGui.OnscreenText(
                text = TTLocalizer.Factory,
                font = ToontownGlobals.getSuitFont(),
                pos = (0,-0.34), scale = .12,
                # required for DecalEffect (must be a GeomNode, not a TextNode)
                mayChange=False,
                parent = factorySign)
            factoryText.setDepthWrite(0)

            doors = self.geom.find("**/doors")
            door0 = doors.find("**/door_0")
            door1 = doors.find("**/door_1")
            door2 = doors.find("**/door_2")
            door3 = doors.find("**/door_3")

            index = 0
            for door in [door0, door1, door2, door3]:
                doorFrame = door.find("**/doorDoubleFlat/+GeomNode")
                door.find("**/doorFrameHoleLeft").wrtReparentTo(doorFrame)
                door.find("**/doorFrameHoleRight").wrtReparentTo(doorFrame)
                doorFrame.node().setEffect(DecalEffect.make())
                index += 1
        elif zoneId == ToontownGlobals.SellbotFactoryExt:
            self.geom = loader.loadModel(self.factoryExteriorModelPath)
            factoryLinkTunnel = self.geom.find("**/tunnel_group2")
            factoryLinkTunnel.setName("linktunnel_sellhq_11000_DNARoot")
            factoryLinkTunnel.find("**/tunnel_sphere").setName("tunnel_trigger")

            # Put handy signs on the link tunnels
            cogSignModel = loader.loadModel(
                'phase_4/models/props/sign_sellBotHeadHQ')
            cogSign = cogSignModel.find('**/sign_sellBotHeadHQ')
            cogSignSF = 23
            elevatorSignSF = 15

            # To Daisys Garden
            hqSign = cogSign.copyTo(factoryLinkTunnel)
            hqSign.setPosHprScale(
                0.0, -353, 27.5,
                -180.00, 0.00, 0.00,
                cogSignSF, cogSignSF, cogSignSF * aspectSF)
            hqSign.node().setEffect(DecalEffect.make())
            hqTypeText = DirectGui.OnscreenText(
                text = TTLocalizer.Sellbot,
                font = ToontownGlobals.getSuitFont(),
                pos = (0,-0.25), scale = .075,
                # required for DecalEffect (must be a GeomNode, not a TextNode)
                mayChange=False,
                parent = hqSign)
            hqTypeText.setDepthWrite(0)
            hqText = DirectGui.OnscreenText(
                text = TTLocalizer.Headquarters,
                font = ToontownGlobals.getSuitFont(),
                pos = (0,-0.34), scale = 0.1,
                # required for DecalEffect (must be a GeomNode, not a TextNode)
                mayChange=False,
                parent = hqSign)
            hqText.setDepthWrite(0)

            # Factory Front Entrance
            frontDoor = self.geom.find("**/doorway1")
            fdSign = cogSign.copyTo(frontDoor)
            fdSign.setPosHprScale(
                62.74, -87.99, 17.26,
                2.72, 0.00, 0.00,
                elevatorSignSF, elevatorSignSF, elevatorSignSF * aspectSF)
            fdSign.node().setEffect(DecalEffect.make())
            fdTypeText = DirectGui.OnscreenText(
                text = TTLocalizer.Factory,
                font = ToontownGlobals.getSuitFont(),
                pos = (0,-0.25), scale = TTLocalizer.SCLfdSign,
                # required for DecalEffect (must be a GeomNode, not a TextNode)
                mayChange=False,
                parent = fdSign)
            fdTypeText.setDepthWrite(0)
            fdText = DirectGui.OnscreenText(
                text = TTLocalizer.SellbotFrontEntrance,
                font = ToontownGlobals.getSuitFont(),
                pos = (0,-0.34), scale = TTLocalizer.SCLdgSign,
                # required for DecalEffect (must be a GeomNode, not a TextNode)
                mayChange=False,
                parent = fdSign)
            fdText.setDepthWrite(0)

            # Factory Side Entrance
            sideDoor = self.geom.find("**/doorway2")
            sdSign = cogSign.copyTo(sideDoor)
            sdSign.setPosHprScale(
                -164.78, 26.28, 17.25,
                -89.89, 0.00, 0.00,
                elevatorSignSF, elevatorSignSF, elevatorSignSF * aspectSF)
            sdSign.node().setEffect(DecalEffect.make())
            sdTypeText = DirectGui.OnscreenText(
                text = TTLocalizer.Factory,
                font = ToontownGlobals.getSuitFont(),
                pos = (0,-0.25), scale = .075,
                # required for DecalEffect (must be a GeomNode, not a TextNode)
                mayChange=False,
                parent = sdSign)
            sdTypeText.setDepthWrite(0)
            sdText = DirectGui.OnscreenText(
                text = TTLocalizer.SellbotSideEntrance,
                font = ToontownGlobals.getSuitFont(),
                pos = (0,-0.34), scale = 0.1,
                # required for DecalEffect (must be a GeomNode, not a TextNode)
                mayChange=False,
                parent = sdSign)
            sdText.setDepthWrite(0)
        elif zoneId == ToontownGlobals.SellbotLobby:
            self.geom = loader.loadModel(self.cogHQLobbyModelPath)

            front = self.geom.find("**/frontWall")
            front.node().setEffect(DecalEffect.make())

            door = self.geom.find("**/door_0")
            parent = door.getParent()
            door.wrtReparentTo(front)
            doorFrame = door.find("**/doorDoubleFlat/+GeomNode")
            door.find("**/doorFrameHoleLeft").wrtReparentTo(doorFrame)
            door.find("**/doorFrameHoleRight").wrtReparentTo(doorFrame)
            doorFrame.node().setEffect(DecalEffect.make())

            door.find("**/leftDoor").wrtReparentTo(parent)
            door.find("**/rightDoor").wrtReparentTo(parent)
        else:
            # Note: the factory interior has a dynamically allocated zone but
            # that is ok because we do not need to load any models - they all
            # get loaded by the distributed object
            self.notify.warning("loadPlaceGeom: unclassified zone %s" % zoneId)

        CogHQLoader.CogHQLoader.loadPlaceGeom(self, zoneId)
示例#13
0
    def loadPlaceGeom(self, zoneId):
        self.notify.info('loadPlaceGeom: %s' % zoneId)
        zoneId = zoneId - zoneId % 100
        if zoneId == ToontownGlobals.SellbotHQ:
            self.geom = loader.loadModel(self.cogHQExteriorModelPath)
            dgLinkTunnel = self.geom.find('**/Tunnel1')
            dgLinkTunnel.setName('linktunnel_dg_5316_DNARoot')
            factoryLinkTunnel = self.geom.find('**/Tunnel2')
            factoryLinkTunnel.setName('linktunnel_sellhq_11200_DNARoot')
            cogSignModel = loader.loadModel(
                'phase_4/models/props/sign_sellBotHeadHQ')
            cogSign = cogSignModel.find('**/sign_sellBotHeadHQ')
            cogSignSF = 23
            dgSign = cogSign.copyTo(dgLinkTunnel)
            dgSign.setPosHprScale(0.0, -291.5, 29, 180.0, 0.0, 0.0, cogSignSF,
                                  cogSignSF, cogSignSF * aspectSF)
            dgSign.node().setEffect(DecalEffect.make())
            dgText = DirectGui.OnscreenText(
                text=TTLocalizer.DaisyGardens[(-1)],
                font=ToontownGlobals.getSuitFont(),
                pos=(0, -0.3),
                scale=TTLocalizer.SCHQLdgText,
                mayChange=False,
                parent=dgSign)
            dgText.setDepthWrite(0)
            factorySign = cogSign.copyTo(factoryLinkTunnel)
            factorySign.setPosHprScale(148.625, -155, 27, -90.0, 0.0, 0.0,
                                       cogSignSF, cogSignSF,
                                       cogSignSF * aspectSF)
            factorySign.node().setEffect(DecalEffect.make())
            factoryTypeText = DirectGui.OnscreenText(
                text=TTLocalizer.Sellbot,
                font=ToontownGlobals.getSuitFont(),
                pos=TTLocalizer.SellbotFactoryPosPart1,
                scale=TTLocalizer.SellbotFactoryScalePart1,
                mayChange=False,
                parent=factorySign)
            factoryTypeText.setDepthWrite(0)
            factoryText = DirectGui.OnscreenText(
                text=TTLocalizer.Factory,
                font=ToontownGlobals.getSuitFont(),
                pos=TTLocalizer.SellbotFactoryPosPart2,
                scale=TTLocalizer.SellbotFactoryScalePart2,
                mayChange=False,
                parent=factorySign)
            factoryText.setDepthWrite(0)
            doors = self.geom.find('**/doors')
            door0 = doors.find('**/door_0')
            door1 = doors.find('**/door_1')
            door2 = doors.find('**/door_2')
            door3 = doors.find('**/door_3')
            index = 0
            for door in [door0, door1, door2, door3]:
                doorFrame = door.find('**/doorDoubleFlat/+GeomNode')
                door.find('**/doorFrameHoleLeft').wrtReparentTo(doorFrame)
                door.find('**/doorFrameHoleRight').wrtReparentTo(doorFrame)
                doorFrame.node().setEffect(DecalEffect.make())
                index += 1

            if self.factGeom:
                self.factGeom.removeNode()
            self.factGeom = loader.loadModel(self.factoryExteriorModelPath)
            self.factGeom.setPos(504.997, -200, -24)
            self.factGeom.setHpr(-90, 0, 0)
            self.factGeom.setScale(0.859913)
            self.factGeom.find('**/tunnel_group2').removeNode()
            for x in xrange(5):
                x += 1
                spotlight = self.geom.find('**/Spot' + str(x))
                startTime = 6.9
                midTime = 6.9
                endTime = 6.9
                if x == 1:
                    startTime == 7.9
                    midTime = 5.9
                else:
                    if x == 5:
                        startTime == 5.9
                        midTime == 7.9
                spotlightSeq = Sequence(
                    spotlight.hprInterval(startTime, (0, 0, -6.9),
                                          blendType='easeInOut'),
                    spotlight.hprInterval(midTime, (0, 0, 6.9),
                                          blendType='easeInOut'),
                    spotlight.hprInterval(endTime, (0, 0, 0),
                                          blendType='easeInOut'))
                spotlightSeq.loop()
                self.spotlightSeqs.append(spotlightSeq)

        else:
            if zoneId == ToontownGlobals.SellbotFactoryExt:
                self.geom = loader.loadModel(self.factoryExteriorModelPath)
                factoryLinkTunnel = self.geom.find('**/tunnel_group2')
                factoryLinkTunnel.setName('linktunnel_sellhq_11000_DNARoot')
                factoryLinkTunnel.find('**/tunnel_sphere').setName(
                    'tunnel_trigger')
                cogSignModel = loader.loadModel(
                    'phase_4/models/props/sign_sellBotHeadHQ')
                cogSign = cogSignModel.find('**/sign_sellBotHeadHQ')
                cogSignSF = 23
                elevatorSignSF = 15
                hqSign = cogSign.copyTo(factoryLinkTunnel)
                hqSign.setPosHprScale(0.0, -353, 27.5, -180.0, 0.0, 0.0,
                                      cogSignSF, cogSignSF,
                                      cogSignSF * aspectSF)
                hqSign.node().setEffect(DecalEffect.make())
                hqTypeText = DirectGui.OnscreenText(
                    text=TTLocalizer.Sellbot,
                    font=ToontownGlobals.getSuitFont(),
                    pos=(0, -0.25),
                    scale=0.075,
                    mayChange=False,
                    parent=hqSign)
                hqTypeText.setDepthWrite(0)
                hqText = DirectGui.OnscreenText(
                    text=TTLocalizer.Headquarters,
                    font=ToontownGlobals.getSuitFont(),
                    pos=(0, -0.34),
                    scale=0.1,
                    mayChange=False,
                    parent=hqSign)
                hqText.setDepthWrite(0)
                frontDoor = self.geom.find('**/doorway1')
                fdSign = cogSign.copyTo(frontDoor)
                fdSign.setPosHprScale(62.74, -87.99, 17.26, 2.72, 0.0, 0.0,
                                      elevatorSignSF, elevatorSignSF,
                                      elevatorSignSF * aspectSF)
                fdSign.node().setEffect(DecalEffect.make())
                fdTypeText = DirectGui.OnscreenText(
                    text=TTLocalizer.Factory,
                    font=ToontownGlobals.getSuitFont(),
                    pos=(0, -0.25),
                    scale=TTLocalizer.SCHQLfdTypeText,
                    mayChange=False,
                    parent=fdSign)
                fdTypeText.setDepthWrite(0)
                fdText = DirectGui.OnscreenText(
                    text=TTLocalizer.SellbotFrontEntrance,
                    font=ToontownGlobals.getSuitFont(),
                    pos=(0, -0.34),
                    scale=TTLocalizer.SCHQLdgText,
                    mayChange=False,
                    parent=fdSign)
                fdText.setDepthWrite(0)
                sideDoor = self.geom.find('**/doorway2')
                sdSign = cogSign.copyTo(sideDoor)
                sdSign.setPosHprScale(-164.78, 26.28, 17.25, -89.89, 0.0, 0.0,
                                      elevatorSignSF, elevatorSignSF,
                                      elevatorSignSF * aspectSF)
                sdSign.node().setEffect(DecalEffect.make())
                sdTypeText = DirectGui.OnscreenText(
                    text=TTLocalizer.Factory,
                    font=ToontownGlobals.getSuitFont(),
                    pos=(0, -0.25),
                    scale=0.075,
                    mayChange=False,
                    parent=sdSign)
                sdTypeText.setDepthWrite(0)
                sdText = DirectGui.OnscreenText(
                    text=TTLocalizer.SellbotSideEntrance,
                    font=ToontownGlobals.getSuitFont(),
                    pos=(0, -0.34),
                    scale=0.1,
                    mayChange=False,
                    parent=sdSign)
                sdText.setDepthWrite(0)
                self.factGeom = loader.loadModel(self.cogHQExteriorModelPath)
                self.factGeom.setPos(-175, -615, 0)
                self.factGeom.setHpr(90, 0, 0)
                self.factGeom.find('**/Terrain').removeNode()
                self.factGeom.find('**/Props').removeNode()
                self.factGeom.find('**/Tunnels').removeNode()
            else:
                if zoneId == ToontownGlobals.SellbotLobby:
                    if config.GetBool('want-qa-regression', 0):
                        self.notify.info(
                            'QA-REGRESSION: COGHQ: Visit SellbotLobby')
                    self.geom = loader.loadModel(self.cogHQLobbyModelPath)
                    front = self.geom.find('**/frontWall')
                    front.node().setEffect(DecalEffect.make())
                    door = self.geom.find('**/door_0')
                    parent = door.getParent()
                    door.wrtReparentTo(front)
                    doorFrame = door.find('**/doorDoubleFlat/+GeomNode')
                    door.find('**/doorFrameHoleLeft').wrtReparentTo(doorFrame)
                    door.find('**/doorFrameHoleRight').wrtReparentTo(doorFrame)
                    doorFrame.node().setEffect(DecalEffect.make())
                    door.find('**/leftDoor').wrtReparentTo(parent)
                    door.find('**/rightDoor').wrtReparentTo(parent)
                else:
                    if zoneId == ToontownGlobals.SellbotWestWing:
                        self.geom = loader.loadModel(self.westWingModelPath)
                        self.geom.find('**/groundCollision').setZ(0.96)
                    else:
                        self.notify.warning(
                            'loadPlaceGeom: unclassified zone %s' % zoneId)
        CogHQLoader.CogHQLoader.loadPlaceGeom(self, zoneId)
示例#14
0
 def loadPlaceGeom(self, zoneId):
     self.notify.info('loadPlaceGeom: %s' % zoneId)
     zoneId -= zoneId % 100
     if zoneId == ToontownGlobals.SellbotHQ:
         self.geom = loader.loadModel(self.cogHQExteriorModelPath)
         dgLinkTunnel = self.geom.find('**/Tunnel1')
         dgLinkTunnel.setName('linktunnel_dg_5316_DNARoot')
         factoryLinkTunnel = self.geom.find('**/Tunnel2')
         factoryLinkTunnel.setName('linktunnel_sellhq_11200_DNARoot')
         cogSignModel = loader.loadModel(
             'phase_4/models/props/sign_sellBotHeadHQ')
         cogSign = cogSignModel.find('**/sign_sellBotHeadHQ')
         cogSign.flattenStrong()
         cogSignModel.removeNode()
         cogSignSF = 23
         dgSign = cogSign.copyTo(dgLinkTunnel)
         dgSign.setPosHprScale(0.0, -291.5, 29, 180.0, 0.0, 0.0, cogSignSF,
                               cogSignSF, cogSignSF * aspectSF)
         dgSign.node().setEffect(DecalEffect.make())
         dgText = DirectGui.OnscreenText(text=TTLocalizer.DaisyGardens[-1],
                                         font=ToontownGlobals.getSuitFont(),
                                         pos=(0, -0.3),
                                         scale=TTLocalizer.SCHQLdgText,
                                         mayChange=False,
                                         parent=dgSign)
         dgText.setDepthWrite(0)
         dgText.flattenStrong()
         factorySign = cogSign.copyTo(factoryLinkTunnel)
         factorySign.setPosHprScale(148.625, -155, 27, -90.0, 0.0, 0.0,
                                    cogSignSF, cogSignSF,
                                    cogSignSF * aspectSF)
         factorySign.node().setEffect(DecalEffect.make())
         factoryTypeText = DirectGui.OnscreenText(
             text=TTLocalizer.Sellbot,
             font=ToontownGlobals.getSuitFont(),
             pos=TTLocalizer.SellbotFactoryPosPart1,
             scale=TTLocalizer.SellbotFactoryScalePart1,
             mayChange=False,
             parent=factorySign)
         factoryTypeText.setDepthWrite(0)
         factoryTypeText.flattenStrong()
         factoryText = DirectGui.OnscreenText(
             text=TTLocalizer.Factory,
             font=ToontownGlobals.getSuitFont(),
             pos=TTLocalizer.SellbotFactoryPosPart2,
             scale=TTLocalizer.SellbotFactoryScalePart2,
             mayChange=False,
             parent=factorySign)
         factoryText.setDepthWrite(0)
         factoryText.flattenStrong()
         doors = self.geom.find('**/doors')
         door0 = doors.find('**/door_0')
         door1 = doors.find('**/door_1')
         door2 = doors.find('**/door_2')
         door3 = doors.find('**/door_3')
         for door in [door0, door1, door2, door3]:
             doorFrame = door.find('**/doorDoubleFlat/+GeomNode')
             door.find('**/doorFrameHoleLeft').wrtReparentTo(doorFrame)
             door.find('**/doorFrameHoleRight').wrtReparentTo(doorFrame)
             doorTrigger = door.find('**/door_trigger*')
             doorTrigger.setY(doorTrigger.getY() - 1.5)
             doorFrame.node().setEffect(DecalEffect.make())
             doorFrame.flattenStrong()
             door.flattenMedium()
         cogSign.removeNode()
         self.geom.flattenMedium()
     elif zoneId == ToontownGlobals.SellbotFactoryExt:
         self.geom = loader.loadModel(self.factoryExteriorModelPath)
         factoryLinkTunnel = self.geom.find('**/tunnel_group2')
         factoryLinkTunnel.setName('linktunnel_sellhq_11000_DNARoot')
         factoryLinkTunnel.find('**/tunnel_sphere').setName(
             'tunnel_trigger')
         cogSignModel = loader.loadModel(
             'phase_4/models/props/sign_sellBotHeadHQ')
         cogSign = cogSignModel.find('**/sign_sellBotHeadHQ')
         cogSign.flattenStrong()
         cogSignModel.removeNode()
         cogSignSF = 23
         elevatorSignSF = 15
         hqSign = cogSign.copyTo(factoryLinkTunnel)
         hqSign.setPosHprScale(0.0, -353, 27.5, -180.0, 0.0, 0.0, cogSignSF,
                               cogSignSF, cogSignSF * aspectSF)
         hqSign.node().setEffect(DecalEffect.make())
         hqTypeText = DirectGui.OnscreenText(
             text=TTLocalizer.Sellbot,
             font=ToontownGlobals.getSuitFont(),
             pos=(0, -0.25),
             scale=0.075,
             mayChange=False,
             parent=hqSign)
         hqTypeText.setDepthWrite(0)
         hqTypeText.flattenStrong()
         hqText = DirectGui.OnscreenText(text=TTLocalizer.Headquarters,
                                         font=ToontownGlobals.getSuitFont(),
                                         pos=(0, -0.34),
                                         scale=0.1,
                                         mayChange=False,
                                         parent=hqSign)
         hqText.setDepthWrite(0)
         hqText.flattenStrong()
         frontDoor = self.geom.find('**/doorway1')
         fdSign = cogSign.copyTo(frontDoor)
         fdSign.setPosHprScale(62.74, -87.99, 17.26, 2.72, 0.0, 0.0,
                               elevatorSignSF, elevatorSignSF,
                               elevatorSignSF * aspectSF)
         fdSign.node().setEffect(DecalEffect.make())
         fdTypeText = DirectGui.OnscreenText(
             text=TTLocalizer.Factory,
             font=ToontownGlobals.getSuitFont(),
             pos=(0, -0.25),
             scale=TTLocalizer.SCHQLfdTypeText,
             mayChange=False,
             parent=fdSign)
         fdTypeText.setDepthWrite(0)
         fdTypeText.flattenStrong()
         fdText = DirectGui.OnscreenText(
             text=TTLocalizer.SellbotFrontEntrance,
             font=ToontownGlobals.getSuitFont(),
             pos=(0, -0.34),
             scale=TTLocalizer.SCHQLdgText,
             mayChange=False,
             parent=fdSign)
         fdText.setDepthWrite(0)
         fdText.flattenStrong()
         sideDoor = self.geom.find('**/doorway2')
         sdSign = cogSign.copyTo(sideDoor)
         sdSign.setPosHprScale(-164.78, 26.28, 17.25, -89.89, 0.0, 0.0,
                               elevatorSignSF, elevatorSignSF,
                               elevatorSignSF * aspectSF)
         sdSign.node().setEffect(DecalEffect.make())
         sdTypeText = DirectGui.OnscreenText(
             text=TTLocalizer.Factory,
             font=ToontownGlobals.getSuitFont(),
             pos=(0, -0.25),
             scale=0.075,
             mayChange=False,
             parent=sdSign)
         sdTypeText.setDepthWrite(0)
         sdTypeText.flattenStrong()
         sdText = DirectGui.OnscreenText(
             text=TTLocalizer.SellbotSideEntrance,
             font=ToontownGlobals.getSuitFont(),
             pos=(0, -0.34),
             scale=0.1,
             mayChange=False,
             parent=sdSign)
         sdText.setDepthWrite(0)
         sdText.flattenStrong()
         cogSign.removeNode()
         self.geom.flattenMedium()
     elif zoneId == ToontownGlobals.SellbotLobby:
         if config.GetBool('want-qa-regression', 0):
             self.notify.info('QA-REGRESSION: COGHQ: Visit SellbotLobby')
         self.geom = loader.loadModel(self.cogHQLobbyModelPath)
         front = self.geom.find('**/frontWall')
         front.node().setEffect(DecalEffect.make())
         door = self.geom.find('**/door_0')
         parent = door.getParent()
         door.wrtReparentTo(front)
         doorFrame = door.find('**/doorDoubleFlat/+GeomNode')
         door.find('**/doorFrameHoleLeft').wrtReparentTo(doorFrame)
         door.find('**/doorFrameHoleRight').wrtReparentTo(doorFrame)
         doorFrame.node().setEffect(DecalEffect.make())
         door.find('**/leftDoor').wrtReparentTo(parent)
         door.find('**/rightDoor').wrtReparentTo(parent)
         self.geom.flattenStrong()
     else:
         self.notify.warning('loadPlaceGeom: unclassified zone %s' % zoneId)
     CogHQLoader.CogHQLoader.loadPlaceGeom(self, zoneId)
示例#15
0
    def loadPlaceGeom(self, zoneId):
        self.notify.info('loadPlaceGeom: %s' % zoneId)
        zoneId = zoneId - zoneId % 100
        if zoneId == ToontownGlobals.SellbotHQ:
            self.geom = loader.loadModel(self.cogHQExteriorModelPath)
            factoryExteriorPOV = loader.loadModel(
                'phase_9/models/cogHQ/SellbotFactoryExterior')
            factoryExteriorPOV.reparentTo(self.geom)
            factoryExteriorPOV.setPosHpr(400.62, -139.52, 15.22, 272.73, 0, 0)
            factoryExteriorPOV.setScale(0.5)
            dgLinkTunnel = self.geom.find('**/Tunnel1')
            dgLinkTunnel.setName('linktunnel_dg_5316_DNARoot')
            factoryLinkTunnel = self.geom.find('**/Tunnel2')
            factoryLinkTunnel.setName('linktunnel_sellhq_11200_DNARoot')
            cogSignModel = loader.loadModel(
                'phase_4/models/props/sign_sellBotHeadHQ')
            cogSign = cogSignModel.find('**/sign_sellBotHeadHQ').copyTo(
                NodePath())
            cogSign.flattenStrong()
            cogSignModel.removeNode()
            cogSignSF = 23
            dgSign = cogSign.copyTo(dgLinkTunnel)
            dgSign.setPosHprScale(0.0, -291.5, 29, 180.0, 0.0, 0.0, cogSignSF,
                                  cogSignSF, cogSignSF * aspectSF)
            dgSign.node().setEffect(DecalEffect.make())
            dgText = DirectGui.OnscreenText(text=TTLocalizer.DaisyGardens[-1],
                                            font=ToontownGlobals.getSuitFont(),
                                            pos=(0, -0.3),
                                            scale=TTLocalizer.SCHQLdgText,
                                            mayChange=False,
                                            parent=dgSign)
            dgText.setDepthWrite(0)
            dgText.flattenStrong()
            factorySign = cogSign.copyTo(factoryLinkTunnel)
            factorySign.setPosHprScale(148.625, -155, 27, -90.0, 0.0, 0.0,
                                       cogSignSF, cogSignSF,
                                       cogSignSF * aspectSF)
            factorySign.node().setEffect(DecalEffect.make())
            factoryTypeText = DirectGui.OnscreenText(
                text=TTLocalizer.Sellbot,
                font=ToontownGlobals.getSuitFont(),
                pos=TTLocalizer.SellbotFactoryPosPart1,
                scale=TTLocalizer.SellbotFactoryScalePart1,
                mayChange=False,
                parent=factorySign)
            factoryTypeText.setDepthWrite(0)
            factoryTypeText.flattenStrong()
            factoryText = DirectGui.OnscreenText(
                text=TTLocalizer.Factory,
                font=ToontownGlobals.getSuitFont(),
                pos=TTLocalizer.SellbotFactoryPosPart2,
                scale=TTLocalizer.SellbotFactoryScalePart2,
                mayChange=False,
                parent=factorySign)
            factoryText.setDepthWrite(0)
            factoryText.flattenStrong()
            doors = self.geom.find('**/doors')
            door0 = doors.find('**/door_0')
            door1 = doors.find('**/door_1')
            door2 = doors.find('**/door_2')
            door3 = doors.find('**/door_3')
            for door in [door0, door1, door2, door3]:
                doorFrame = door.find('**/doorDoubleFlat/+GeomNode')
                door.find('**/doorFrameHoleLeft').wrtReparentTo(doorFrame)
                door.find('**/doorFrameHoleRight').wrtReparentTo(doorFrame)
                doorTrigger = door.find('**/door_trigger*')
                doorTrigger.setY(doorTrigger.getY() - 1.5)
                doorFrame.node().setEffect(DecalEffect.make())
                doorFrame.flattenStrong()
                door.flattenMedium()

            self.botcam1 = Actor(
                'phase_9/models/char/BotCam-zero.bam',
                {'botcamneutral': 'phase_9/models/char/BotCam-neutral.bam'})
            self.bossroom = Actor('phase_9/models/cogHQ/BossRoomPOV.bam')
            self.botcam1.reparentTo(self.geom)
            self.botcam1.setPos(-0.01, -39.3, 24)
            self.botcam1.loop('botcamneutral')
            self.bossroom.reparentTo(self.geom)
            self.bossroom.setPos(42, 25, 298)
            self.bossroom.setScale(0.1)
            self.spotLights = self.geom.find('**/SpotLights')
            self.spot1Sequence = Sequence(
                LerpHprInterval(self.spotLights.find('**/Spot1'),
                                7,
                                Vec3(0, 1, 10),
                                startHpr=Vec3(0, 1, -5)),
                LerpHprInterval(self.spotLights.find('**/Spot1'),
                                7,
                                Vec3(0, 1, -5),
                                startHpr=Vec3(0, 1, 10)))
            self.spot2Sequence = Sequence(
                LerpHprInterval(self.spotLights.find('**/Spot2'),
                                7,
                                Vec3(0, 1, 10),
                                startHpr=Vec3(0, 1, -5)),
                LerpHprInterval(self.spotLights.find('**/Spot2'),
                                7,
                                Vec3(0, 1, -5),
                                startHpr=Vec3(0, 1, 10)))
            self.spot3Sequence = Sequence(
                LerpHprInterval(self.spotLights.find('**/Spot3'),
                                7,
                                Vec3(0, 1, 10),
                                startHpr=Vec3(0, 1, -5)),
                LerpHprInterval(self.spotLights.find('**/Spot3'),
                                7,
                                Vec3(0, 1, -5),
                                startHpr=Vec3(0, 1, 10)))
            self.spot4Sequence = Sequence(
                LerpHprInterval(self.spotLights.find('**/Spot4'),
                                7,
                                Vec3(0, 1, 10),
                                startHpr=Vec3(0, 1, -5)),
                LerpHprInterval(self.spotLights.find('**/Spot4'),
                                7,
                                Vec3(0, 1, -5),
                                startHpr=Vec3(0, 1, 10)))
            self.spot5Sequence = Sequence(
                LerpHprInterval(self.spotLights.find('**/Spot5'),
                                7,
                                Vec3(0, 1, 10),
                                startHpr=Vec3(0, 1, -5)),
                LerpHprInterval(self.spotLights.find('**/Spot5'),
                                7,
                                Vec3(0, 1, -5),
                                startHpr=Vec3(0, 1, 10)))
            self.spot6Sequence = Sequence(
                LerpHprInterval(self.spotLights.find('**/Spot6'),
                                7,
                                Vec3(0, 1, 10),
                                startHpr=Vec3(0, 1, -5)),
                LerpHprInterval(self.spotLights.find('**/Spot6'),
                                7,
                                Vec3(0, 1, -5),
                                startHpr=Vec3(0, 1, 10)))
            self.spot1Sequence.loop()
            self.spot2Sequence.loop()
            self.spot3Sequence.loop()
            self.spot4Sequence.loop()
            self.spot5Sequence.loop()
            self.spot6Sequence.loop()
            cogSign.removeNode()
            self.geom.flattenMedium()
        elif zoneId == ToontownGlobals.SellbotFactoryExt:
            self.geom = loader.loadModel(self.factoryExteriorModelPath)
            factoryLinkTunnel = self.geom.find('**/tunnel_group2')
            factoryLinkTunnel.setName('linktunnel_sellhq_11000_DNARoot')
            factoryLinkTunnel.find('**/tunnel_sphere').setName(
                'tunnel_trigger')
            junkyardPOV = loader.loadModel(
                'phase_9/models/cogHQ/SellbotHQExterior')
            junkyardPOV.reparentTo(self.geom)
            junkyardPOV.setPos(-200, -635, 0)
            junkyardPOV.setH(-275)
            junkyardPOV.setScale(0.5)
            cogSignModel = loader.loadModel(
                'phase_4/models/props/sign_sellBotHeadHQ')
            cogSign = cogSignModel.find('**/sign_sellBotHeadHQ').copyTo(
                NodePath())
            cogSign.flattenStrong()
            cogSignModel.removeNode()
            cogSignSF = 23
            elevatorSignSF = 15
            hqSign = cogSign.copyTo(factoryLinkTunnel)
            hqSign.setPosHprScale(0.0, -353, 27.5, -180.0, 0.0, 0.0, cogSignSF,
                                  cogSignSF, cogSignSF * aspectSF)
            hqSign.node().setEffect(DecalEffect.make())
            hqTypeText = DirectGui.OnscreenText(
                text=TTLocalizer.Sellbot,
                font=ToontownGlobals.getSuitFont(),
                pos=(0, -0.25),
                scale=0.075,
                mayChange=False,
                parent=hqSign)
            hqTypeText.setDepthWrite(0)
            hqTypeText.flattenStrong()
            hqText = DirectGui.OnscreenText(text=TTLocalizer.Headquarters,
                                            font=ToontownGlobals.getSuitFont(),
                                            pos=(0, -0.34),
                                            scale=0.1,
                                            mayChange=False,
                                            parent=hqSign)
            hqText.setDepthWrite(0)
            hqText.flattenStrong()
            frontDoor = self.geom.find('**/doorway1')
            fdSign = cogSign.copyTo(frontDoor)
            fdSign.setPosHprScale(62.74, -87.99, 17.26, 2.72, 0.0, 0.0,
                                  elevatorSignSF, elevatorSignSF,
                                  elevatorSignSF * aspectSF)
            fdSign.node().setEffect(DecalEffect.make())
            fdTypeText = DirectGui.OnscreenText(
                text=TTLocalizer.Factory,
                font=ToontownGlobals.getSuitFont(),
                pos=(0, -0.25),
                scale=TTLocalizer.SCHQLfdTypeText,
                mayChange=False,
                parent=fdSign)
            fdTypeText.setDepthWrite(0)
            fdTypeText.flattenStrong()
            fdText = DirectGui.OnscreenText(
                text=TTLocalizer.SellbotFrontEntrance,
                font=ToontownGlobals.getSuitFont(),
                pos=(0, -0.34),
                scale=TTLocalizer.SCHQLdgText,
                mayChange=False,
                parent=fdSign)
            fdText.setDepthWrite(0)
            fdText.flattenStrong()
            sideDoor = self.geom.find('**/doorway2')
            sdSign = cogSign.copyTo(sideDoor)
            sdSign.setPosHprScale(-164.78, 26.28, 17.25, -89.89, 0.0, 0.0,
                                  elevatorSignSF, elevatorSignSF,
                                  elevatorSignSF * aspectSF)
            sdSign.node().setEffect(DecalEffect.make())
            sdTypeText = DirectGui.OnscreenText(
                text=TTLocalizer.Factory,
                font=ToontownGlobals.getSuitFont(),
                pos=(0, -0.25),
                scale=0.075,
                mayChange=False,
                parent=sdSign)
            sdTypeText.setDepthWrite(0)
            sdTypeText.flattenStrong()
            sdText = DirectGui.OnscreenText(
                text=TTLocalizer.SellbotSideEntrance,
                font=ToontownGlobals.getSuitFont(),
                pos=(0, -0.34),
                scale=0.1,
                mayChange=False,
                parent=sdSign)
            sdText.setDepthWrite(0)
            sdText.flattenStrong()
            cogSign.removeNode()
            self.geom.flattenMedium()
        elif zoneId == ToontownGlobals.SellbotLobby:
            if base.config.GetBool('want-qa-regression', 0):
                self.notify.info('QA-REGRESSION: COGHQ: Visit SellbotLobby')
            self.geom = loader.loadModel(self.cogHQLobbyModelPath)
            front = self.geom.find('**/frontWall')
            front.node().setEffect(DecalEffect.make())
            door = self.geom.find('**/door_0')
            parent = door.getParent()
            door.wrtReparentTo(front)
            doorFrame = door.find('**/doorDoubleFlat/+GeomNode')
            door.find('**/doorFrameHoleLeft').wrtReparentTo(doorFrame)
            door.find('**/doorFrameHoleRight').wrtReparentTo(doorFrame)
            doorFrame.node().setEffect(DecalEffect.make())
            door.find('**/leftDoor').wrtReparentTo(parent)
            door.find('**/rightDoor').wrtReparentTo(parent)
            self.geom.flattenStrong()
        else:
            self.notify.warning('loadPlaceGeom: unclassified zone %s' % zoneId)
        CogHQLoader.CogHQLoader.loadPlaceGeom(self, zoneId)
示例#16
0
    def gotAllRooms(self):
        self.notify.debug('countryClub %s: got all rooms' % self.doId)
        if self.roomWatcher:
            self.roomWatcher.destroy()
            self.roomWatcher = None
        self.geom = render.attachNewNode('countryClub%s' % self.doId)
        for doId in self.roomDoIds:
            room = base.cr.doId2do.get(doId)
            if room is None:
                continue
            room.setCountryClub(self)
            roomName = CountryClubRoomSpecs.BossbotCountryClubRoomId2RoomName[
                room.roomId]
            if roomName == 'BossbotCountryClubKartRoom_Battle00':
                floorNum = self.floorNum
                signOrigin = room.getGeom().find('**/sign_origin')
                floorName = TTLocalizer.CountryClubFloorNum2Name[floorNum + 1]
                text = TextEncoder.upper(floorName)
                font = ToontownGlobals.getSuitFont()
                scale = TTLocalizer.BCHQLsignText
                fg = (0, 0, 0, 1)
                signText = DirectGui.OnscreenText(text=text,
                                                  font=font,
                                                  scale=scale,
                                                  fg=fg,
                                                  parent=signOrigin)
                signText.setPosHpr(signOrigin, -0.675, 0, -0.9, -90, 0, 0)
                signText.setDepthWrite(0)
            self.rooms.append(room)

        self.notify.info(
            'countryClubId %s, floor %s, %s' %
            (self.countryClubId, self.floorNum, self.rooms[0].avIdList))
        rng = self.layout.getRng()
        numRooms = self.layout.getNumRooms()
        for i, room in enumerate(self.rooms):
            if i == 0:
                room.getGeom().reparentTo(self.geom)
            else:
                room.attachTo(self.hallways[i - 1], rng)
            self.allRooms.append(room)
            self.listenForFloorEvents(room)
            if i < numRooms - 1:
                hallway = CountryClubRoom.CountryClubRoom(
                    self.layout.getHallwayModel(i))
                hallway.attachTo(room, rng)
                hallway.setRoomNum(i * 2 + 1)
                hallway.initFloorCollisions()
                hallway.enter()
                self.hallways.append(hallway)
                self.allRooms.append(hallway)
                self.listenForFloorEvents(hallway)

        def handleCameraRayFloorCollision(collEntry, self=self):
            name = collEntry.getIntoNode().getName()
            self.notify.debug('camera floor ray collided with: %s' % name)
            prefix = CountryClubRoom.CountryClubRoom.FloorCollPrefix
            prefixLen = len(prefix)
            if name[:prefixLen] == prefix:
                try:
                    roomNum = int(name[prefixLen:])
                except:
                    DistributedLevel.notify.warning(
                        'Invalid zone floor collision node: %s' % name)
                else:
                    self.camEnterRoom(roomNum)

        self.accept('on-floor', handleCameraRayFloorCollision)
        if bboard.has('countryClubRoom'):
            self.warpToRoom(bboard.get('countryClubRoom'))
        firstSetZoneDoneEvent = self.cr.getNextSetZoneDoneEvent()

        def handleFirstSetZoneDone():
            self.notify.debug('countryClubHandleFirstSetZoneDone')
            self.accept('takingScreenshot', self.handleScreenshot)
            base.transitions.irisIn()
            bboard.post(DistributedCountryClub.ReadyPost, self)

        self.acceptOnce(firstSetZoneDoneEvent, handleFirstSetZoneDone)
        zoneList = [OTPGlobals.UberZone, self.zoneId]
        for room in self.rooms:
            zoneList.extend(room.zoneIds)

        base.cr.sendSetZoneMsg(self.zoneId, zoneList)
        return
    def loadPlaceGeom(self, zoneId):
        self.notify.info('loadPlaceGeom: %s' % zoneId)
        zoneId = zoneId - zoneId % 100
        if zoneId == ToontownGlobals.SellbotHQ:
            self.geom = loader.loadModel(self.cogHQExteriorModelPath)
            dgLinkTunnel = self.geom.find('**/Tunnel1')
            dgLinkTunnel.setName('linktunnel_dg_5316_DNARoot')
            factoryLinkTunnel = self.geom.find('**/Tunnel2')
            factoryLinkTunnel.setName('linktunnel_sellhq_11200_DNARoot')
            cogSignModel = loader.loadModel(
                'phase_4/models/props/sign_sellBotHeadHQ')
            cogSign = cogSignModel.find('**/sign_sellBotHeadHQ')
            cogSignSF = 23
            dgSign = cogSign.copyTo(dgLinkTunnel)
            dgSign.setPosHprScale(0.0, -291.5, 29, 180.0, 0.0, 0.0, cogSignSF,
                                  cogSignSF, cogSignSF * aspectSF)
            dgSign.node().setEffect(DecalEffect.make())
            dgText = DirectGui.OnscreenText(text=TTLocalizer.DaisyGardens[-1],
                                            font=ToontownGlobals.getSuitFont(),
                                            pos=(0, -0.3),
                                            scale=TTLocalizer.SCHQLdgText,
                                            mayChange=False,
                                            parent=dgSign)
            dgText.setDepthWrite(0)
            factorySign = cogSign.copyTo(factoryLinkTunnel)
            factorySign.setPosHprScale(148.625, -155, 27, -90.0, 0.0, 0.0,
                                       cogSignSF, cogSignSF,
                                       cogSignSF * aspectSF)
            factorySign.node().setEffect(DecalEffect.make())
            factoryTypeText = DirectGui.OnscreenText(
                text=TTLocalizer.Sellbot,
                font=ToontownGlobals.getSuitFont(),
                pos=(0, -0.25),
                scale=0.075,
                mayChange=False,
                parent=factorySign)
            factoryTypeText.setDepthWrite(0)
            factoryText = DirectGui.OnscreenText(
                text=TTLocalizer.Factory,
                font=ToontownGlobals.getSuitFont(),
                pos=(0, -0.34),
                scale=0.12,
                mayChange=False,
                parent=factorySign)
            factoryText.setDepthWrite(0)
            doors = self.geom.find('**/doors')
            door0 = doors.find('**/door_0')
            door1 = doors.find('**/door_1')
            door2 = doors.find('**/door_2')
            door3 = doors.find('**/door_3')
            index = 0
            for door in [door0, door1, door2, door3]:
                doorFrame = door.find('**/doorDoubleFlat/+GeomNode')
                door.find('**/doorFrameHoleLeft').wrtReparentTo(doorFrame)
                door.find('**/doorFrameHoleRight').wrtReparentTo(doorFrame)
                doorFrame.node().setEffect(DecalEffect.make())
                index += 1

            self.vpBodyModel = loader.loadModel(
                'phase_9/models/char/sellbotBoss-torso-zero')
            self.vpBodyModel.reparentTo(self.geom)
            self.vpBodyModel.setPos(30.8499, -160.209, -17.5944)
            self.vpBodyModel.setHpr(30, 20, 325)

            self.vpHeadModel = loader.loadModel(
                'phase_9/models/char/sellbotBoss-head-zero')
            self.vpHeadModel.reparentTo(self.vpBodyModel)
            self.vpHeadModel.setPos(0, 0, 8)
            self.vpHeadModel.setHpr(90, 0, 270)

            self.vpTreadsModel = loader.loadModel(
                'phase_9/models/char/bossCog-treads')
            self.vpTreadsModel.reparentTo(self.geom)
            self.vpTreadsModel.setPos(-20, -165.209, -13.8944)
            self.vpTreadsModel.setHpr(70, 20, 130)

            self.vpLegsModel = loader.loadModel(
                'phase_9/models/char/bossCog-legs-zero')
            self.vpLegsModel.reparentTo(self.vpTreadsModel)

            self.gearModel1 = loader.loadModel(
                'phase_9/models/cogHQ/FactoryGearB')
            self.gearModel1.reparentTo(self.geom)
            self.gearModel1.setScale(10)
            self.gearModel1.setPos(45, -183, -13)
            self.gearModel1.setHpr(290, 35, 0)

            self.gearModel2 = loader.loadModel(
                'phase_9/models/cogHQ/FactoryGearB')
            self.gearModel2.reparentTo(self.geom)
            self.gearModel2.setScale(5)
            self.gearModel2.setPos(45, -195, -15.5)
            self.gearModel2.setHpr(316, 35, 0)

            self.trainModel = loader.loadModel(
                'phase_10/models/cogHQ/CashBotLocomotive')
            self.trainModel.reparentTo(self.geom)
            self.trainModel.setPos(-35, -205, -20)
            self.trainModel.setScale(0.4)
            self.trainModel.setHpr(80, 330, 0)

            self.trainLight = self.trainModel.find('**/LMBigLtBeam')
            self.trainLightPiece = self.trainModel.find('**/LMBigLight')
            self.applyNewTrainLightTask()

            self.trainCarModel = loader.loadModel(
                'phase_10/models/cogHQ/CashBotBoxCar')
            self.trainCarModel.reparentTo(self.geom)
            self.trainCarModel.setPos(-10, -229, -13)
            self.trainCarModel.setScale(0.4)
            self.trainCarModel.setHpr(0, 20, 0)

            self.trainTankModel = loader.loadModel(
                'phase_10/models/cogHQ/CashBotTankCar')
            self.trainTankModel.reparentTo(self.geom)
            self.trainTankModel.setPos(80.874, -130.546, 4)
            self.trainTankModel.setScale(0.4)
            self.trainTankModel.setHpr(70, 70, 20)

            self.cashMoneyModel = loader.loadModel(
                'phase_10/models/cogHQ/DoubleMoneyStack')
            self.cashMoneyModel.reparentTo(self.geom)
            self.cashMoneyModel.setPos(21, -206, -19.594)
            self.cashMoneyModel.setHpr(67, 0, 0)

            self.cashMoneyLegalFeesModel = loader.loadModel(
                'phase_11/models/lawbotHQ/LB_paper_big_stacks2')
            self.cashMoneyLegalFeesModel.reparentTo(self.geom)
            self.cashMoneyLegalFeesModel.setPos(-10, -207, -19.594)
            self.cashMoneyLegalFeesModel.setHpr(243, 0, 0)

            self.golfKartModel = loader.loadModel(
                'phase_12/models/bossbotHQ/Coggolf_cart3')
            self.golfKartModel.reparentTo(self.geom)
            self.golfKartModel.setPos(7, -196, -19.594)
            self.golfKartModel.setHpr(149, 0, 0)

            self.banquetTableModel = loader.loadModel(
                'phase_12/models/bossbotHQ/BanquetTableChairs')
            self.banquetTableModel.reparentTo(self.geom)
            self.banquetTableModel.setPos(0, -176, -19.594)
            self.banquetTableModel.setHpr(97, 0, 0)

        elif zoneId == ToontownGlobals.SellbotFactoryExt:
            self.geom = loader.loadModel(self.factoryExteriorModelPath)
            factoryLinkTunnel = self.geom.find('**/tunnel_group2')
            factoryLinkTunnel.setName('linktunnel_sellhq_11000_DNARoot')
            factoryLinkTunnel.find('**/tunnel_sphere').setName(
                'tunnel_trigger')
            cogSignModel = loader.loadModel(
                'phase_4/models/props/sign_sellBotHeadHQ')
            cogSign = cogSignModel.find('**/sign_sellBotHeadHQ')
            cogSignSF = 23
            elevatorSignSF = 15
            hqSign = cogSign.copyTo(factoryLinkTunnel)
            hqSign.setPosHprScale(0.0, -353, 27.5, -180.0, 0.0, 0.0, cogSignSF,
                                  cogSignSF, cogSignSF * aspectSF)
            hqSign.node().setEffect(DecalEffect.make())
            hqTypeText = DirectGui.OnscreenText(
                text=TTLocalizer.Sellbot,
                font=ToontownGlobals.getSuitFont(),
                pos=(0, -0.25),
                scale=0.075,
                mayChange=False,
                parent=hqSign)
            hqTypeText.setDepthWrite(0)
            hqText = DirectGui.OnscreenText(text=TTLocalizer.Headquarters,
                                            font=ToontownGlobals.getSuitFont(),
                                            pos=(0, -0.34),
                                            scale=0.1,
                                            mayChange=False,
                                            parent=hqSign)
            hqText.setDepthWrite(0)
            frontDoor = self.geom.find('**/doorway1')
            fdSign = cogSign.copyTo(frontDoor)
            fdSign.setPosHprScale(62.74, -87.99, 17.26, 2.72, 0.0, 0.0,
                                  elevatorSignSF, elevatorSignSF,
                                  elevatorSignSF * aspectSF)
            fdSign.node().setEffect(DecalEffect.make())
            fdTypeText = DirectGui.OnscreenText(
                text=TTLocalizer.Factory,
                font=ToontownGlobals.getSuitFont(),
                pos=(0, -0.25),
                scale=TTLocalizer.SCHQLfdTypeText,
                mayChange=False,
                parent=fdSign)
            fdTypeText.setDepthWrite(0)
            fdText = DirectGui.OnscreenText(
                text=TTLocalizer.SellbotFrontEntrance,
                font=ToontownGlobals.getSuitFont(),
                pos=(0, -0.34),
                scale=TTLocalizer.SCHQLdgText,
                mayChange=False,
                parent=fdSign)
            fdText.setDepthWrite(0)
            sideDoor = self.geom.find('**/doorway2')
            sdSign = cogSign.copyTo(sideDoor)
            sdSign.setPosHprScale(-164.78, 26.28, 17.25, -89.89, 0.0, 0.0,
                                  elevatorSignSF, elevatorSignSF,
                                  elevatorSignSF * aspectSF)
            sdSign.node().setEffect(DecalEffect.make())
            sdTypeText = DirectGui.OnscreenText(
                text=TTLocalizer.Factory,
                font=ToontownGlobals.getSuitFont(),
                pos=(0, -0.25),
                scale=0.075,
                mayChange=False,
                parent=sdSign)
            sdTypeText.setDepthWrite(0)
            sdText = DirectGui.OnscreenText(
                text=TTLocalizer.SellbotSideEntrance,
                font=ToontownGlobals.getSuitFont(),
                pos=(0, -0.34),
                scale=0.1,
                mayChange=False,
                parent=sdSign)
            sdText.setDepthWrite(0)
        elif zoneId == ToontownGlobals.SellbotLobby:
            if base.config.GetBool('want-qa-regression', 0):
                self.notify.info('QA-REGRESSION: COGHQ: Visit SellbotLobby')
            self.geom = loader.loadModel(self.cogHQLobbyModelPath)
            front = self.geom.find('**/frontWall')
            front.node().setEffect(DecalEffect.make())
            door = self.geom.find('**/door_0')
            parent = door.getParent()
            door.wrtReparentTo(front)
            doorFrame = door.find('**/doorDoubleFlat/+GeomNode')
            door.find('**/doorFrameHoleLeft').wrtReparentTo(doorFrame)
            door.find('**/doorFrameHoleRight').wrtReparentTo(doorFrame)
            doorFrame.node().setEffect(DecalEffect.make())
            door.find('**/leftDoor').wrtReparentTo(parent)
            door.find('**/rightDoor').wrtReparentTo(parent)
        else:
            self.notify.warning('loadPlaceGeom: unclassified zone %s' % zoneId)
        CogHQLoader.CogHQLoader.loadPlaceGeom(self, zoneId)