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)
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)
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
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)
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)
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)
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)
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)
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)
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)
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)
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)