コード例 #1
0
 def attachHostNameToSign(self, locator):
     if self.hostName == '':
         return
     nameText = TextNode('nameText')
     nameText.setCardAsMargin(0.1, 0.1, 0.1, 0.1)
     nameText.setCardDecal(True)
     nameText.setCardColor(1.0, 1.0, 1.0, 0.0)
     r = 232.0 / 255.0
     g = 169.0 / 255.0
     b = 23.0 / 255.0
     nameText.setTextColor(r, g, b, 1)
     nameText.setAlign(nameText.ACenter)
     nameText.setFont(ToontownGlobals.getBuildingNametagFont())
     nameText.setShadowColor(0, 0, 0, 1)
     nameText.setBin('fixed')
     if TTLocalizer.BuildingNametagShadow:
         nameText.setShadow(*TTLocalizer.BuildingNametagShadow)
     nameWordWrap = 11.0
     nameText.setWordwrap(nameWordWrap)
     scaleMult = 0.48
     houseName = self.hostName
     nameText.setText(houseName)
     textWidth = nameText.getWidth()
     xScale = 1.0 * scaleMult
     if textWidth > nameWordWrap:
         xScale = nameWordWrap / textWidth * scaleMult
     sign_origin = locator
     namePlate = sign_origin.attachNewNode(nameText)
     namePlate.setDepthWrite(0)
     namePlate.setPos(0, 0, 0)
     namePlate.setScale(xScale)
コード例 #2
0
 def setupNametag(self):
     if self.nametag == None:
         self.nametag = NametagGroup()
         self.nametag.setFont(ToontownGlobals.getBuildingNametagFont())
         if TTLocalizer.BuildingNametagShadow:
             self.nametag.setShadow(*TTLocalizer.BuildingNametagShadow)
         self.nametag.setContents(Nametag.CName)
         self.nametag.setColorCode(NametagGroup.CCSuitBuilding)
         self.nametag.setActive(0)
         self.nametag.setAvatar(self.getElevatorModel())
         name = self.cr.playGame.dnaStore.getTitleFromBlockNumber(self.bldg.block)
         if not name:
             name = TTLocalizer.CogsInc
         else:
             name += TTLocalizer.CogsIncExt
         self.nametag.setName(name)
         self.nametag.manage(base.marginManager)
コード例 #3
0
 def __setupNametag(self):
     if self.nametag:
         self.clearNametag()
     if self.name == '':
         houseName = ''
     else:
         houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(self.name)
     self.nametag = NametagGroup()
     self.nametag.setFont(ToontownGlobals.getBuildingNametagFont())
     if TTLocalizer.BuildingNametagShadow:
         self.nametag.setShadow(*TTLocalizer.BuildingNametagShadow)
     self.nametag.setContents(Nametag.CName)
     self.nametag.setColorCode(NametagGroup.CCHouseBuilding)
     self.nametag.setActive(0)
     self.nametag.setAvatar(self.house)
     self.nametag.setObjectCode(self.doId)
     self.nametag.setName(houseName)
     self.nametag.manage(base.marginManager)
コード例 #4
0
 def __setupNamePlateCustom(self):
     self.notify.debug('__setupNamePlateCustom')
     if self.namePlate:
         self.namePlate.removeNode()
         del self.namePlate
         self.namePlate = None
     nameText = TextNode('nameText')
     nameText.setCardAsMargin(0.1, 0.1, 0.1, 0.1)
     nameText.setCardDecal(True)
     nameText.setCardColor(1.0, 1.0, 1.0, 0.0)
     r = self.randomGenerator.random()
     g = self.randomGenerator.random()
     b = self.randomGenerator.random()
     nameText.setTextColor(r, g, b, 1)
     nameText.setAlign(nameText.ACenter)
     nameText.setFont(ToontownGlobals.getBuildingNametagFont())
     nameText.setShadowColor(0, 0, 0, 1)
     nameText.setBin('fixed')
     if TTLocalizer.BuildingNametagShadow:
         nameText.setShadow(*TTLocalizer.BuildingNametagShadow)
     nameText.setWordwrap(16.0)
     xScale = 1.0
     numLines = 0
     if self.name == '':
         return
     else:
         houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(
             self.name)
     nameText.setText(houseName)
     self.nameText = nameText
     textHeight = nameText.getHeight() - 2
     textWidth = nameText.getWidth()
     xScale = 1.0
     if textWidth > 16:
         xScale = 16.0 / textWidth
     sign_origin = self.house.find('**/sign_origin')
     pos = sign_origin.getPos()
     sign_origin.setPosHpr(pos[0], pos[1], pos[2] + 0.15 * textHeight, 90,
                           0, 0)
     self.namePlate = sign_origin.attachNewNode(self.nameText)
     self.namePlate.setDepthWrite(0)
     self.namePlate.setPos(0, -0.05, 0)
     self.namePlate.setScale(xScale)
     return nameText
コード例 #5
0
 def __setupNametag(self):
     if self.nametag:
         self.clearNametag()
     if self.name == '':
         houseName = ''
     else:
         houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(
             self.name)
     self.nametag = NametagGroup()
     self.nametag.setFont(ToontownGlobals.getBuildingNametagFont())
     if TTLocalizer.BuildingNametagShadow:
         self.nametag.setShadow(*TTLocalizer.BuildingNametagShadow)
     self.nametag.setContents(Nametag.CName)
     self.nametag.setColorCode(NametagGroup.CCHouseBuilding)
     self.nametag.setActive(0)
     self.nametag.setAvatar(self.house)
     self.nametag.setObjectCode(self.doId)
     self.nametag.setName(houseName)
     self.nametag.manage(base.marginManager)
コード例 #6
0
 def __setupNamePlateCustom(self):
     self.notify.debug('__setupNamePlateCustom')
     if self.namePlate:
         self.namePlate.removeNode()
         del self.namePlate
         self.namePlate = None
     nameText = TextNode('nameText')
     nameText.setCardAsMargin(0.1, 0.1, 0.1, 0.1)
     nameText.setCardDecal(True)
     nameText.setCardColor(1.0, 1.0, 1.0, 0.0)
     r = self.randomGenerator.random()
     g = self.randomGenerator.random()
     b = self.randomGenerator.random()
     nameText.setTextColor(r, g, b, 1)
     nameText.setAlign(nameText.ACenter)
     nameText.setFont(ToontownGlobals.getBuildingNametagFont())
     nameText.setShadowColor(0, 0, 0, 1)
     nameText.setBin('fixed')
     if TTLocalizer.BuildingNametagShadow:
         nameText.setShadow(*TTLocalizer.BuildingNametagShadow)
     nameText.setWordwrap(16.0)
     xScale = 1.0
     numLines = 0
     if self.name == '':
         return
     else:
         houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(self.name)
     nameText.setText(houseName)
     self.nameText = nameText
     textHeight = nameText.getHeight() - 2
     textWidth = nameText.getWidth()
     xScale = 1.0
     if textWidth > 16:
         xScale = 16.0 / textWidth
     sign_origin = self.house.find('**/sign_origin')
     pos = sign_origin.getPos()
     sign_origin.setPosHpr(pos[0], pos[1], pos[2] + 0.15 * textHeight, 90, 0, 0)
     self.namePlate = sign_origin.attachNewNode(self.nameText)
     self.namePlate.setDepthWrite(0)
     self.namePlate.setPos(0, -0.05, 0)
     self.namePlate.setScale(xScale)
     return nameText
コード例 #7
0
 def __setupFloorMat(self, changeColor=True):
     if self.floorMat:
         self.floorMat.removeNode()
         del self.floorMat
         self.floorMat = None
     mat = self.house.find('**/mat')
     if changeColor:
         mat.setColor(0.4, 0.357, 0.259, 1.0)
     color = HouseGlobals.houseColors[self.housePosInd]
     matText = TextNode('matText')
     matText.setTextColor(color[0], color[1], color[2], 1)
     matText.setAlign(matText.ACenter)
     matText.setFont(ToontownGlobals.getBuildingNametagFont())
     matText.setShadowColor(0, 0, 0, 1)
     matText.setBin('fixed')
     if TTLocalizer.BuildingNametagShadow:
         matText.setShadow(*TTLocalizer.BuildingNametagShadow)
     matText.setWordwrap(10.0)
     xScale = 1.0
     numLines = 0
     if self.name == '':
         return
     else:
         houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(
             self.name)
     matText.setText(houseName)
     self.matText = matText
     textHeight = matText.getHeight() - 2
     textWidth = matText.getWidth()
     xScale = 1.0
     if textWidth > 8:
         xScale = 8.0 / textWidth
     mat_origin = self.house.find('**/mat_origin')
     pos = mat_origin.getPos()
     mat_origin.setPosHpr(pos[0] - 0.15 * textHeight, pos[1], pos[2], 90,
                          -90, 0)
     self.floorMat = mat_origin.attachNewNode(self.matText)
     self.floorMat.setDepthWrite(0)
     self.floorMat.setPos(0, -.025, 0)
     self.floorMat.setScale(0.45 * xScale)
     return
コード例 #8
0
 def __setupFloorMat(self, changeColor = True):
     if self.floorMat:
         self.floorMat.removeNode()
         del self.floorMat
         self.floorMat = None
     mat = self.house.find('**/mat')
     if changeColor:
         mat.setColor(0.4, 0.357, 0.259, 1.0)
     color = HouseGlobals.houseColors[self.housePosInd]
     matText = TextNode('matText')
     matText.setTextColor(color[0], color[1], color[2], 1)
     matText.setAlign(matText.ACenter)
     matText.setFont(ToontownGlobals.getBuildingNametagFont())
     matText.setShadowColor(0, 0, 0, 1)
     matText.setBin('fixed')
     if TTLocalizer.BuildingNametagShadow:
         matText.setShadow(*TTLocalizer.BuildingNametagShadow)
     matText.setWordwrap(10.0)
     xScale = 1.0
     numLines = 0
     if self.name == '':
         return
     else:
         houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(self.name)
     matText.setText(houseName)
     self.matText = matText
     textHeight = matText.getHeight() - 2
     textWidth = matText.getWidth()
     xScale = 1.0
     if textWidth > 8:
         xScale = 8.0 / textWidth
     mat_origin = self.house.find('**/mat_origin')
     pos = mat_origin.getPos()
     mat_origin.setPosHpr(pos[0] - 0.15 * textHeight, pos[1], pos[2], 90, -90, 0)
     self.floorMat = mat_origin.attachNewNode(self.matText)
     self.floorMat.setDepthWrite(0)
     self.floorMat.setPos(0, -.025, 0)
     self.floorMat.setScale(0.45 * xScale)
     return
コード例 #9
0
    def load(self, loadModels=1, arenaModel='partyCatchTree'):
        self.notify.info('load()')
        DistributedPartyCatchActivity.notify.debug('PartyCatch: load')
        self.activityFSM = CatchActivityFSM(self)
        if __dev__:
            for o in xrange(3):
                print {
                    0: 'SPOTS PER PLAYER',
                    1: 'DROPS PER MINUTE PER SPOT DURING NORMAL DROP PERIOD',
                    2: 'DROPS PER MINUTE PER PLAYER DURING NORMAL DROP PERIOD'
                }[o]
                for i in xrange(1, self.FallRateCap_Players + 10):
                    self.defineConstants(forceNumPlayers=i)
                    numDropLocations = self.DropRows * self.DropColumns
                    numDropsPerMin = 60.0 / self.DropPeriod
                    if o == 0:
                        spotsPerPlayer = numDropLocations / float(i)
                        print '%2d PLAYERS: %s' % (i, spotsPerPlayer)
                    elif o == 1:
                        numDropsPerMinPerSpot = numDropsPerMin / numDropLocations
                        print '%2d PLAYERS: %s' % (i, numDropsPerMinPerSpot)
                    elif i > 0:
                        numDropsPerMinPerPlayer = numDropsPerMin / i
                        print '%2d PLAYERS: %s' % (i, numDropsPerMinPerPlayer)

        self.defineConstants()
        self.treesAndFence = loader.loadModel('phase_13/models/parties/%s' %
                                              arenaModel)
        self.treesAndFence.setScale(0.9)
        self.treesAndFence.find('**/fence_floor').setPos(0.0, 0.0, 0.1)
        self.treesAndFence.reparentTo(self.root)
        ground = self.treesAndFence.find('**/groundPlane')
        ground.setBin('ground', 1)
        DistributedPartyActivity.load(self)
        exitText = TextNode('PartyCatchExitText')
        exitText.setCardAsMargin(0.1, 0.1, 0.1, 0.1)
        exitText.setCardDecal(True)
        exitText.setCardColor(1.0, 1.0, 1.0, 0.0)
        exitText.setText(TTLocalizer.PartyCatchActivityExit)
        exitText.setTextColor(0.0, 8.0, 0.0, 0.9)
        exitText.setAlign(exitText.ACenter)
        exitText.setFont(ToontownGlobals.getBuildingNametagFont())
        exitText.setShadowColor(0, 0, 0, 1)
        exitText.setBin('fixed')
        if TTLocalizer.BuildingNametagShadow:
            exitText.setShadow(*TTLocalizer.BuildingNametagShadow)
        exitTextLoc = self.treesAndFence.find('**/loc_exitSignText')
        exitTextNp = exitTextLoc.attachNewNode(exitText)
        exitTextNp.setDepthWrite(0)
        exitTextNp.setScale(4)
        exitTextNp.setZ(-.5)
        self.sign.reparentTo(self.treesAndFence.find('**/loc_eventSign'))
        self.sign.wrtReparentTo(self.root)
        self.avatarNodePath = NodePath('PartyCatchAvatarNodePath')
        self.avatarNodePath.reparentTo(self.root)
        self._avatarNodePathParentToken = 3
        base.cr.parentMgr.registerParent(self._avatarNodePathParentToken,
                                         self.avatarNodePath)
        self.toonSDs = {}
        self.dropShadow = loader.loadModelOnce(
            'phase_3/models/props/drop_shadow')
        self.dropObjModels = {}
        if loadModels:
            self.__loadDropModels()
        self.sndGoodCatch = base.loadSfx(
            'phase_4/audio/sfx/SZ_DD_treasure.ogg')
        self.sndOof = base.loadSfx('phase_4/audio/sfx/MG_cannon_hit_dirt.ogg')
        self.sndAnvilLand = base.loadSfx(
            'phase_4/audio/sfx/AA_drop_anvil_miss.ogg')
        self.sndPerfect = base.loadSfx('phase_4/audio/sfx/ring_perfect.ogg')
        self.__textGen = TextNode('partyCatchActivity')
        self.__textGen.setFont(ToontownGlobals.getSignFont())
        self.__textGen.setAlign(TextNode.ACenter)
        self.activityFSM.request('Idle')
コード例 #10
0
    def load(self, loadModels=1, arenaModel="partyCatchTree"):
        self.notify.info("load()")
        DistributedPartyCatchActivity.notify.debug("PartyCatch: load")
        self.activityFSM = CatchActivityFSM(self)
        if __dev__:
            for o in xrange(3):
                print {
                    0: "SPOTS PER PLAYER",
                    1: "DROPS PER MINUTE PER SPOT DURING NORMAL DROP PERIOD",
                    2: "DROPS PER MINUTE PER PLAYER DURING NORMAL DROP PERIOD",
                }[o]
                for i in xrange(1, self.FallRateCap_Players + 10):
                    self.defineConstants(forceNumPlayers=i)
                    numDropLocations = self.DropRows * self.DropColumns
                    numDropsPerMin = 60.0 / self.DropPeriod
                    if o == 0:
                        spotsPerPlayer = numDropLocations / float(i)
                        print "%2d PLAYERS: %s" % (i, spotsPerPlayer)
                    elif o == 1:
                        numDropsPerMinPerSpot = numDropsPerMin / numDropLocations
                        print "%2d PLAYERS: %s" % (i, numDropsPerMinPerSpot)
                    elif i > 0:
                        numDropsPerMinPerPlayer = numDropsPerMin / i
                        print "%2d PLAYERS: %s" % (i, numDropsPerMinPerPlayer)

        self.defineConstants()
        self.treesAndFence = loader.loadModel("phase_13/models/parties/%s" % arenaModel)
        self.treesAndFence.setScale(0.9)
        self.treesAndFence.find("**/fence_floor").setPos(0.0, 0.0, 0.1)
        self.treesAndFence.reparentTo(self.root)
        ground = self.treesAndFence.find("**/groundPlane")
        ground.setBin("ground", 1)
        DistributedPartyActivity.load(self)
        exitText = TextNode("PartyCatchExitText")
        exitText.setCardAsMargin(0.1, 0.1, 0.1, 0.1)
        exitText.setCardDecal(True)
        exitText.setCardColor(1.0, 1.0, 1.0, 0.0)
        exitText.setText(TTLocalizer.PartyCatchActivityExit)
        exitText.setTextColor(0.0, 8.0, 0.0, 0.9)
        exitText.setAlign(exitText.ACenter)
        exitText.setFont(ToontownGlobals.getBuildingNametagFont())
        exitText.setShadowColor(0, 0, 0, 1)
        exitText.setBin("fixed")
        if TTLocalizer.BuildingNametagShadow:
            exitText.setShadow(*TTLocalizer.BuildingNametagShadow)
        exitTextLoc = self.treesAndFence.find("**/loc_exitSignText")
        exitTextNp = exitTextLoc.attachNewNode(exitText)
        exitTextNp.setDepthWrite(0)
        exitTextNp.setScale(4)
        exitTextNp.setZ(-0.5)
        self.sign.reparentTo(self.treesAndFence.find("**/loc_eventSign"))
        self.sign.wrtReparentTo(self.root)
        self.avatarNodePath = NodePath("PartyCatchAvatarNodePath")
        self.avatarNodePath.reparentTo(self.root)
        self._avatarNodePathParentToken = 3
        base.cr.parentMgr.registerParent(self._avatarNodePathParentToken, self.avatarNodePath)
        self.toonSDs = {}
        self.dropShadow = loader.loadModelOnce("phase_3/models/props/drop_shadow")
        self.dropObjModels = {}
        if loadModels:
            self.__loadDropModels()
        self.sndGoodCatch = base.loadSfx("phase_4/audio/sfx/SZ_DD_treasure.ogg")
        self.sndOof = base.loadSfx("phase_4/audio/sfx/MG_cannon_hit_dirt.ogg")
        self.sndAnvilLand = base.loadSfx("phase_4/audio/sfx/AA_drop_anvil_miss.ogg")
        self.sndPerfect = base.loadSfx("phase_4/audio/sfx/ring_perfect.ogg")
        self.__textGen = TextNode("partyCatchActivity")
        self.__textGen.setFont(ToontownGlobals.getSignFont())
        self.__textGen.setAlign(TextNode.ACenter)
        self.activityFSM.request("Idle")