예제 #1
0
 def __init__(self,
              serialNum,
              model,
              triggerRadius,
              triggerOffset=(0, 0, 0),
              animate=True,
              animDuration=0.2,
              instanceModel=True,
              name='CogdoGameGatherable'):
     NodePath.__init__(self, '%s-%d' % (name, serialNum))
     self.serialNum = serialNum
     self._animate = animate
     if instanceModel:
         model.instanceTo(self)
         self._model = self
     else:
         self._model = model
         self._model.reparentTo(self)
         self._model.setPosHpr(0, 0, 0, 0, 0, 0)
     self._animDuration = animDuration
     self._animSeq = None
     self._initCollisions(triggerRadius, triggerOffset)
     self._update = None
     self._wasPickedUp = False
     return
예제 #2
0
    def __init__( self, *args, **kwargs ):
        colour = kwargs.pop( 'colour', (1, 1, 1, .2) )
        p3d.SingleTask.__init__( self, *args, **kwargs )

        # Create a card maker
        cm = CardMaker( self.name )
        cm.setFrame( 0, 1, 0, 1 )
        
        # Init the node path, wrapping the card maker to make a rectangle
        NodePath.__init__( self, cm.generate() )
        self.setColor( colour )
        self.setTransparency( 1 )
        self.reparentTo( self.root2d )
        self.hide()
        
        # Create the rectangle border
        ls = LineSegs()
        ls.moveTo( 0, 0, 0 )
        ls.drawTo( 1, 0, 0 )
        ls.drawTo( 1, 0, 1 )
        ls.drawTo( 0, 0, 1 )
        ls.drawTo( 0, 0, 0 )
        
        # Attach border to rectangle
        self.attachNewNode( ls.create() )
 def __init__(self, moveTrack, tOffset, posScale = 1.0):
     NodePath.__init__(self)
     self.assign(hidden.attachNewNode(base.localAvatar.uniqueName('ring')))
     self.setMoveTrack(moveTrack)
     self.setTOffset(tOffset)
     self.setPosScale(posScale)
     self.setT(0.0)
예제 #4
0
    def __init__(self, *args, **kwargs):
        NodePath.__init__(self, *args, **kwargs)
        DirectObject.__init__(self)

        self.scale_signal = Signal()

        self.reset()
예제 #5
0
 def __init__(self, game, id, x, y):
     NodePath.__init__(self, 'dropNode%s' % id)
     self.game = game
     self.id = id
     self.reparentTo(hidden)
     self.setPos(x, y, 0)
     shadow = loader.loadModel('phase_3/models/props/square_drop_shadow')
     shadow.setZ(0.2)
     shadow.setBin('ground', 10)
     shadow.setColor(1, 1, 1, 1)
     shadow.reparentTo(self)
     self.shadow = shadow
     drop = CogdoUtil.loadMazeModel('cabinetSmFalling')
     roll = random.randint(-15, 15)
     drop.setHpr(0, 0, roll)
     drop.setZ(Globals.DropHeight)
     self.collTube = CollisionTube(0, 0, 0, 0, 0, 4,
                                   Globals.DropCollisionRadius)
     self.collTube.setTangible(0)
     name = Globals.DropCollisionName
     self.collNode = CollisionNode(name)
     self.collNode.addSolid(self.collTube)
     self.collNodePath = drop.attachNewNode(self.collNode)
     self.collNodePath.hide()
     self.collNodePath.setTag('isFalling', str('True'))
     drop.reparentTo(self)
     self.drop = drop
     self._dropSfx = base.cogdoGameAudioMgr.createSfxIval('drop',
                                                          volume=0.6)
예제 #6
0
    def __init__(self, config, heights, voxels, X, Y, size, chunk_len, tex,
                 water_tex):

        NodePath.__init__(self, 'ChunkModel')
        self.centerX = X
        self.centerY = Y
        self.config = config
        self.heights = heights
        self.tex = tex
        self.water_tex = water_tex
        self.size = size
        self.chunk_len = chunk_len
        self.size_voxel = self.size / self.chunk_len
        if self.size_voxel < 1:
            self.size_voxel = 1
        self.size2 = self.size / 2
        self.start_x = self.centerX - self.size2
        self.start_y = self.centerY - self.size2

        self.voxels = voxels

        self.v_format = GeomVertexFormat.getV3n3t2()
        self.v_data = GeomVertexData('chunk', self.v_format, Geom.UHStatic)

        self.create()
예제 #7
0
 def __init__(self, fishManager, myData, index, trophy=0):
     NodePath.__init__(self, '%s_%d' % (myData['name'], index))
     self.trophy = trophy
     self.myData = myData
     if not self.trophy:
         self.fishManager = fishManager
         self.index = index
         self.fsm = FishFSM(self)
         self.weight = random.randint(self.myData['weightRange'][0], self.myData['weightRange'][1])
     else:
         self.weight = trophy
     self.adjustedScale = (self.myData['scaleRange'][1] - self.myData['scaleRange'][0]) * (self.weight - self.myData['weightRange'][0]) / (self.myData['weightRange'][1] - self.myData['weightRange'][0]) + self.myData['scaleRange'][0]
     self.initActor()
     if not self.trophy:
         self.initVariables()
         self.initFishStatusIcon()
         if FishingGlobals.wantDebugCollisionVisuals:
             self.initCollisions()
     self.avoidingFish = False
     self.biteBubbleEffect = None
     self.idleBubbleEffect = None
     self.fightBubbleEffect = None
     self.behaviorNameToFunction = {'straight': self.performStraightBehavior,'sineStraight': self.performSineStraightBehavior,'erratic': self.performErraticBehavior}
     self.sineDtAccumulator = 0.0
     self.erraticDtAccumulator = 0.0
     self.myZ = 0.0
     if not self.trophy:
         self.setLightOff()
     return
예제 #8
0
 def __init__(self, sx, sy, z, length):
     maker = CardMaker('land')
     NodePath.__init__(self, maker.generate())
     #self.landNP = render.attachNewNode(maker.generate())
     self.setHpr(0, -90, 0)
     self.setPos(sx, sy, z)
     self.setScale(length, 0, length)
예제 #9
0
    def __init__(self,
                 world,
                 name,
                 length,
                 tex,
                 leafModel,
                 leafTex,
                 pos=Vec3(0, 0, 0),
                 numIterations=11,
                 numCopies=6,
                 vecList=[Vec3(0, 0, 1),
                          Vec3(1, 0, 0),
                          Vec3(0, -1, 0)]):

        NodePath.__init__(self, name)

        self.world = world
        self.gui = self.world.gui
        self.bodydata = GeomVertexData("body vertices", treeform,
                                       Geom.UHStatic)
        self.length = length
        self.pos = pos
        self.numIterations = numIterations
        self.numCopies = numCopies
        self.vecList = vecList
        self.tex = tex
        self.leafModel = leafModel
        self.leafTex = leafTex
        make_fractal_tree(self.bodydata, self, self.length)
        self.setTexture(self.tex, 1)
        self.flattenStrong()
예제 #10
0
 def __init__(self, 
                 modelStanding, 
                 modelAnimationDict, 
                 turnRate, 
                 speed, 
                 agentList, 
                 massKg, 
                 collisionMask, 
                 name="",
                 collisionHandler = None,
                 collisionTraverser = None):
     NodePath.__init__(self, ActorNode(name + " actor node"))
     self.name = name
     
     self.actor = Actor()
     self.actor.loadModel(modelStanding)
     self.actor.loadAnims(modelAnimationDict)
 
     self.loop = self.actor.loop
     self.stop = self.actor.stop
     self.pose = self.actor.pose
     
     self.turnRate = turnRate
     self.speed = speed
     self.agentList = agentList
     self.massKg = massKg
     self.collisionMask = collisionMask
     
     if self.actor not in agentList:
         self.agentList.append(self.actor)    
         
     self.actor.reparentTo(self)
     
     self.__setupCollisionHandling(collisionHandler, collisionTraverser)
    def __init__(self, cogMenu, dept):
        NodePath.__init__(self, 'CogMenuBar-%s' % dept)

        self.dept = dept
        self.deptIndex = CogDisguiseGlobals.dept2deptIndex(self.dept)

        icons = loader.loadModel('phase_3/models/gui/cog_icons')
        self.icon = icons.find(ICON_NODES[self.deptIndex]).copyTo(self)
        self.icon.setColor(ICON_COLORS[self.deptIndex])
        self.icon.setScale(0.07)
        self.icon.setX(-0.25)
        icons.removeNode()

        self.progressBar = DirectWaitBar(
            parent=self,
            relief=DirectGuiGlobals.SUNKEN,
            frameSize=(-1, 1, -0.15, 0.15),
            borderWidth=(0.02, 0.02),
            scale=0.20,
            frameColor=(DisguisePage.DeptColors[self.deptIndex][0] * 0.7,
                        DisguisePage.DeptColors[self.deptIndex][1] * 0.7,
                        DisguisePage.DeptColors[self.deptIndex][2] * 0.7, 1),
            barColor=(DisguisePage.DeptColors[self.deptIndex][0],
                      DisguisePage.DeptColors[self.deptIndex][1],
                      DisguisePage.DeptColors[self.deptIndex][2], 1),
            text='0/0 ' +
            TTLocalizer.RewardPanelMeritBarLabels[self.deptIndex],
            text_scale=TTLocalizer.RPmeritBarLabels,
            text_fg=(0, 0, 0, 1),
            text_align=TextNode.ALeft,
            text_pos=(-0.96, -0.05))

        self.reparentTo(cogMenu)
 def generate(self):
     DistributedInteractive.DistributedInteractive.generate(self)
     NodePath.__init__(self, 'DistributedFishingSpot')
     self.setInteractOptions(proximityText=PLocalizer.InteractFishingSpot,
                             sphereScale=8,
                             diskRadius=8)
     self.setAllowInteract(True)
예제 #13
0
파일: camera.py 프로젝트: LBdN/labs
 def __init__( self, 
               name='camera', 
               pos=Vec3( 0, 0, 0 ), 
               targetPos=Vec3( 0, 0, 0 ),
               style=CAM_DEFAULT_STYLE ):
     self.zoomLevel = 2
     self.defaultPos = pos
     self.style = style
     # Use Panda's default camera
     if self.style & CAM_USE_DEFAULT:
         self.cam = getBase().cam
         #self.camNode = getBase().camNode
     # Otherwise create a new one
     else:
         # Create camera
         self.cam = NodePath( PCamera( name ) )
         # Create lens
         lens = PerspectiveLens()
         lens.setAspectRatio( 800.0 / 300.0 )
         self.cam.node().setLens( lens )
     # Wrap the camera in this node path class
     NodePath.__init__( self, self.cam )
     # Create camera styles
     if self.style & CAM_VIEWPORT_AXES:
         self.axes = self.Axes()
         self.axes.reparentTo( pixel2d )
     # Create camera target
     self.target = self.Target( pos=targetPos )
     self.Reset()
    def __init__(self, description, needed, icon):
        NodePath.__init__(self, 'objective-%s' % id(self))

        self.needed = needed
        self.visible = False

        self.fadeInTrack = None
        self.fadeOutTrack = None

        gui = loader.loadModel(
            'phase_5/models/cogdominium/tt_m_gui_csa_flyThru')
        self.background = gui.find('**/*background').copyTo(self)
        self.background.setScale(2.5)
        gui.removeNode()

        self.icon = icon.copyTo(self.background)
        self.icon.setScale(0.08)
        self.icon.setPos(-0.167, 0, -0.002)

        text = TextNode('challenge')
        text.setText('Challenge')
        text.setFont(ToontownGlobals.getSignFont())
        text.setTextColor(0.95, 0.95, 0, 1)
        self.objText = self.background.attachNewNode(text)
        self.objText.setScale(0.03)
        self.objText.setPos(-0.04, 0.0, 0.02)

        text = TextNode('description')
        text.setText(description)
        text.setFont(ToontownGlobals.getSignFont())
        text.setTextColor(0.95, 0.95, 0, 1)
        text.setAlign(TextNode.ACenter)
        self.objText = self.background.attachNewNode(text)
        self.objText.setScale(0.015)
        self.objText.setPos(0.048, 0.0, -0.009)

        self.progressBar = DirectWaitBar(guiId='ChallengeProgressBar',
                                         parent=self.background,
                                         frameSize=(-0.11, 0.11, -0.007,
                                                    0.007),
                                         pos=(0.048, 0, -0.0338),
                                         text='')
        self.progressBar['range'] = needed

        self.progressText = DirectLabel(
            guiId='ChallengeProgressText',
            parent=self.progressBar,
            relief=None,
            pos=(0, 0, -0.0048),
            text='',
            textMayChange=1,
            text_scale=0.014,
            text_fg=(0.03, 0.83, 0, 1),
            text_align=TextNode.ACenter,
            text_font=ToontownGlobals.getSignFont())

        self.updateProgress(0)

        self.reparentTo(base.a2dBottomLeft)
        self.stash()
예제 #15
0
    def __init__(self, phone, doneEvent=None):
        NodePath.__init__(self, aspect2d.attachNewNode('CatalogGUI'))
        DirectObject.__init__(self)

        CatalogGlobals.CatalogNodePath.find('**/CATALOG_GUI_BKGD').copyTo(self)
        self.setScale(CatalogGlobals.CatalogBKGDScale)

        self.phone = phone
        self.doneEvent = doneEvent

        self.arrowButtons = {}
        self.createArrowButtons()

        self.currentTab = None
        self.tabButtons = {}
        self.createTabButtons()

        self.radioButtons = []
        # self.createRadioButtons()

        self.activePage = 0
        self.gifting = -1

        guiItems = loader.loadModel('phase_5.5/models/gui/catalog_gui')
        hangupGui = guiItems.find('**/hangup')
        hangupRolloverGui = guiItems.find('**/hangup_rollover')
        self.hangup = DirectButton(self, relief=None, pos=(2.28, 0, -1.3),
                                   image=[hangupGui, hangupRolloverGui, hangupRolloverGui, hangupGui],
                                   text=['', TTLocalizer.CatalogHangUp, TTLocalizer.CatalogHangUp],
                                   text_fg=Vec4(1), text_scale=0.07, text_pos=(0.0, 0.14),
                                   command=self.hangUp)
        guiItems.removeNode()
 def __init__(self, cr, proximityText):
     NodePath.__init__(self, self.__class__.__name__)
     DistributedInteractive.__init__(self, cr)
     self.holiday = ''
     self.interactRadius = 10
     self.interactMode = 0
     self.proximityText = proximityText
예제 #17
0
    def __init__(self, trackGroup, ringModel, posScale, colorIndices):
        NodePath.__init__(self)
        self.assign(hidden.attachNewNode(\
            base.localAvatar.uniqueName('ring-group')))

        self.__period = trackGroup.period
        self.__reverseFlag = trackGroup.reverseFlag
        self.__tOffset = trackGroup.tOffset
        self.__numRings = len(trackGroup.tracks)

        self.__rings = []
        self.__ringModels = []
        for i in range(0,self.__numRings):
            track = trackGroup.tracks[i]
            tOffset = trackGroup.trackTOffsets[i]
            ring = Ring.Ring(track,
                             tOffset,
                             posScale)
            ring.reparentTo(self)

            model = ringModel.copyTo(ring)
            model.setColor(RingGameGlobals.ringColors[colorIndices[i]][1])

            self.__rings.append(ring)
            self.__ringModels.append(model)
예제 #18
0
파일: geometry.py 프로젝트: LBdN/labs
    def __init__(self, width=1, depth=1, height=1, origin=Point3(0, 0, 0)):

        # Create vetex data format
        gvf = GeomVertexFormat.getV3n3()
        gvd = GeomVertexData("vertexData", gvf, Geom.UHStatic)

        # Create vetex writers for each type of data we are going to store
        gvwV = GeomVertexWriter(gvd, "vertex")
        gvwN = GeomVertexWriter(gvd, "normal")

        # Write out all points
        for p in GetPointsForBox(width, depth, height):
            gvwV.addData3f(Point3(p) - origin)

        # Write out all the normals
        for n in ((-1, 0, 0), (1, 0, 0), (0, -1, 0), (0, 1, 0), (0, 0, -1), (0, 0, 1)):
            for i in range(4):
                gvwN.addData3f(n)

        geom = Geom(gvd)
        for i in range(0, gvwV.getWriteRow(), 4):

            # Create and add both triangles
            geom.addPrimitive(GetGeomTriangle(i, i + 1, i + 2))
            geom.addPrimitive(GetGeomTriangle(i, i + 2, i + 3))

        # Init the node path, wrapping the box
        geomNode = GeomNode("box")
        geomNode.addGeom(geom)
        NodePath.__init__(self, geomNode)
예제 #19
0
파일: geometry.py 프로젝트: LBdN/labs
    def __init__(self, width=1, depth=1, height=1, thickness=1.0, origin=Point3(0, 0, 0)):
        def __Get3dPoint(pt, origin, axis):
            p = Point3(pt.x, pt.y, 0) - origin
            return RotatePoint3(p, Vec3(0, 0, 1), axis)

        # Create line segments
        self.ls = LineSegs()
        self.ls.setThickness(thickness)

        # axes = [Vec3(1, 0, 0), Vec3(0, 1, 0), Vec3(0, 0, 1), Vec3(1, 0, 0), Vec3(0, 1, 0), Vec3(0, 0, 1)]
        # origins = [origin, origin, origin, origin + Point3(0, 0, -1), origin + Point3(0, 0, -1), origin + Point3(0, 0, 1)]
        axes = [Vec3(1, 0, 0), Vec3(0, 1, 0), Vec3(-1, 0, 0), Vec3(0, -1, 0)]
        origins = [origin, origin, origin, origin]
        for m in range(len(axes)):

            # Get the points for square, append the first one to the end to
            # complete the square
            pts = GetPointsForSquare2(width, height)
            pts.append(pts[0])
            for i in range(len(pts) - 1):

                # Get the distance a third of the way along the edge
                dist = (pts[i + 1] - pts[i]) / 3

                # Draw one square
                self.ls.moveTo(__Get3dPoint(pts[i], origins[m], axes[m]))
                self.ls.drawTo(__Get3dPoint(pts[i] + dist, origins[m], axes[m]))
                self.ls.moveTo(__Get3dPoint(pts[i] + dist + dist, origins[m], axes[m]))
                self.ls.drawTo(__Get3dPoint(pts[i + 1], origins[m], axes[m]))

        # Init the node path, wrapping the lines
        node = self.ls.create()
        NodePath.__init__(self, node)
 def __init__(self, fishManager, myData, index, trophy = 0):
     NodePath.__init__(self, '%s_%d' % (myData['name'], index))
     self.trophy = trophy
     self.myData = myData
     if not self.trophy:
         self.fishManager = fishManager
         self.index = index
         self.fsm = FishFSM(self)
         self.weight = random.randint(self.myData['weightRange'][0], self.myData['weightRange'][1])
     else:
         self.weight = trophy
     self.adjustedScale = (self.myData['scaleRange'][1] - self.myData['scaleRange'][0]) * (self.weight - self.myData['weightRange'][0]) / (self.myData['weightRange'][1] - self.myData['weightRange'][0]) + self.myData['scaleRange'][0]
     self.initActor()
     if not self.trophy:
         self.initVariables()
         self.initFishStatusIcon()
         if FishingGlobals.wantDebugCollisionVisuals:
             self.initCollisions()
         
     
     self.avoidingFish = False
     self.biteBubbleEffect = None
     self.idleBubbleEffect = None
     self.fightBubbleEffect = None
     self.behaviorNameToFunction = {
         'straight': self.performStraightBehavior,
         'sineStraight': self.performSineStraightBehavior,
         'erratic': self.performErraticBehavior }
     self.sineDtAccumulator = 0.0
     self.erraticDtAccumulator = 0.0
     self.myZ = 0.0
     if not self.trophy:
         self.setLightOff()
예제 #21
0
 def __init__(self, game, id, x, y):
     NodePath.__init__(self, 'dropNode%s' % id)
     self.game = game
     self.id = id
     self.reparentTo(hidden)
     self.setPos(x, y, 0)
     shadow = loader.loadModel('phase_3/models/props/square_drop_shadow')
     shadow.setZ(0.2)
     shadow.setBin('ground', 10)
     shadow.setColor(1, 1, 1, 1)
     shadow.reparentTo(self)
     self.shadow = shadow
     drop = CogdoUtil.loadMazeModel('cabinetSmFalling')
     roll = random.randint(-15, 15)
     drop.setHpr(0, 0, roll)
     drop.setZ(Globals.DropHeight)
     self.collTube = CollisionTube(0, 0, 0, 0, 0, 4, Globals.DropCollisionRadius)
     self.collTube.setTangible(0)
     name = Globals.DropCollisionName
     self.collNode = CollisionNode(name)
     self.collNode.addSolid(self.collTube)
     self.collNodePath = drop.attachNewNode(self.collNode)
     self.collNodePath.hide()
     self.collNodePath.setTag('isFalling', str('True'))
     drop.reparentTo(self)
     self.drop = drop
     self._dropSfx = base.cogdoGameAudioMgr.createSfxIval('drop', volume=0.6)
    def __init__(self, cogMenu, dept):
        NodePath.__init__(self, 'CogMenuBar-%s' % dept)

        self.dept = dept
        self.deptIndex = CogDisguiseGlobals.dept2deptIndex(self.dept)

        icons = loader.loadModel('phase_3/models/gui/cog_icons')
        self.icon = icons.find(ICON_NODES[self.deptIndex]).copyTo(self)
        self.icon.setColor(ICON_COLORS[self.deptIndex])
        self.icon.setScale(0.07)
        self.icon.setX(-0.25)
        icons.removeNode()

        self.progressBar = DirectWaitBar(parent=self, relief=DirectGuiGlobals.SUNKEN,
                                         frameSize=(-1, 1, -0.15, 0.15),
                                         borderWidth=(0.02, 0.02),
                                         scale=0.20,
                                         frameColor=(DisguisePage.DeptColors[self.deptIndex][0] * 0.7,
                                                     DisguisePage.DeptColors[self.deptIndex][1] * 0.7,
                                                     DisguisePage.DeptColors[self.deptIndex][2] * 0.7,
                                                     1),
                                         barColor=(DisguisePage.DeptColors[self.deptIndex][0],
                                                   DisguisePage.DeptColors[self.deptIndex][1],
                                                   DisguisePage.DeptColors[self.deptIndex][2],
                                                   1),
                                         text='0/0 ' + TTLocalizer.RewardPanelMeritBarLabels[self.deptIndex],
                                         text_scale=TTLocalizer.RPmeritBarLabels, text_fg=(0, 0, 0, 1),
                                         text_align=TextNode.ALeft, text_pos=(-0.96, -0.05))

        self.reparentTo(cogMenu)
예제 #23
0
 def __init__(self, moveTrack, tOffset, posScale=1.0):
     NodePath.__init__(self)
     self.assign(hidden.attachNewNode(base.localAvatar.uniqueName('ring')))
     self.setMoveTrack(moveTrack)
     self.setTOffset(tOffset)
     self.setPosScale(posScale)
     self.setT(0.0)
 def __init__(self, cr, proximityText):
     NodePath.__init__(self, self.__class__.__name__)
     DistributedInteractive.__init__(self, cr)
     self.holiday = ""
     self.interactRadius = 10
     self.interactMode = 0
     self.proximityText = proximityText
 def __init__(self, name, parent, nailModel):
     self.config = RepairGlobals.Hammering
     NodePath.__init__(self, name)
     FSM.FSM.__init__(self, 'Nail_%sFSM' % name)
     self.reparentTo(parent)
     self.nailModel = nailModel
     self._initVars()
     self._initVisuals()
예제 #26
0
 def __init__(self, name, parent, nailModel):
     self.config = RepairGlobals.Hammering
     NodePath.__init__(self, name)
     FSM.FSM.__init__(self, 'Nail_%sFSM' % name)
     self.reparentTo(parent)
     self.nailModel = nailModel
     self._initVars()
     self._initVisuals()
예제 #27
0
 def __init__(self, name, size, body_tex=None, leaf_tex=None):
     NodePath.__init__(self, name)
     self.name = name
     self.size = size
     self.body_tex = body_tex
     self.leaf_tex = leaf_tex
     self.make()
     self.flattenStrong()
 def __init__(self,table=None,mask=None):
     """
     @keyword table: filename of a table texture. See table_template.psd. Either
                     paint anywhere inside the mask for a complete background
                     or turn off the pads and spinner and paint in the table circle
                     for just a table texture that will have spinners and pads
                     put on top of it.
     @type mask: str
     @keyword mask: filename of a mask texture of the non-Jam-o-Drum area. probably
                    jod_mask.png that comes with the Jam-o-Drum library.
     @type mask: str
     """
     NodePath.__init__(self,"JamoDrum")
     
     totalHeight = max(1.0,math.sqrt(2)/4.0+SPINNER_RADIUS)*2
     
     cm = CardMaker("card")
     cm.setFrame(-1,1,-1,1)
     self.tableCard = self.attachNewNode(cm.generate())
     self.tableCard.setP(-90)
     self.tableCard.setScale(4.0/3.0)
     self.tableCard.setLightOff()
     self.tableCard.setBin("background",0)
     self.tableCard.setDepthTest(0)
     self.tableCard.setDepthWrite(0)
     self.tableCard.hide()
     
     if (table):
         self.setTableTexture(loader.loadTexture(table))
                    
     
     if (mask):
         cm = CardMaker("JOD Mask")
         cm.setFrame(-4.0/3.0,4.0/3.0,-4.0/3.0,4.0/3.0)
         self.mask = aspect2d.attachNewNode(cm.generate())
         #self.mask.setP(-90)
         self.mask.setTexture(loader.loadTexture(mask),1)
         self.mask.setTransparency(1)
         self.mask.setDepthTest(0)
     else:
         self.mask = None
     
     self.stations = []
     for i in range(4):
         station = Station(self,i)
         station.reparentTo(self)
         self.stations.append(station)
     
     self.reparentTo(render)
     base.disableMouse()
     self.lens = OrthographicLens()
     self.lens.setFilmSize(totalHeight*base.getAspectRatio(),totalHeight)
     base.cam.node().setLens(self.lens)
     camera.setPosHpr(0,0,10.0, 0,-90,0)
     base.setBackgroundColor(0,0,0)
     
     self.audio3d = Audio3DManager(base.sfxManagerList[0],self)
     self.audio3d.setDropOffFactor(0)
예제 #29
0
 def __init__(self, gameObject, type):
     NodePath.__init__(self, 'FishingLure_%s' % type)
     self.gameObject = gameObject
     self.type = type
     self.initLureModel()
     if FishingGlobals.wantDebugCollisionVisuals:
         self.initCollision()
     self.initLureHelpText()
     self.setLightOff()
예제 #30
0
    def __init__(self, table=None, mask=None):
        """
        @keyword table: filename of a table texture. See table_template.psd. Either
                        paint anywhere inside the mask for a complete background
                        or turn off the pads and spinner and paint in the table circle
                        for just a table texture that will have spinners and pads
                        put on top of it.
        @type mask: str
        @keyword mask: filename of a mask texture of the non-Jam-o-Drum area. probably
                       jod_mask.png that comes with the Jam-o-Drum library.
        @type mask: str
        """
        NodePath.__init__(self, "JamoDrum")

        totalHeight = max(1.0, math.sqrt(2) / 4.0 + SPINNER_RADIUS) * 2

        cm = CardMaker("card")
        cm.setFrame(-1, 1, -1, 1)
        self.tableCard = self.attachNewNode(cm.generate())
        self.tableCard.setP(-90)
        self.tableCard.setScale(4.0 / 3.0)
        self.tableCard.setLightOff()
        self.tableCard.setBin("background", 0)
        self.tableCard.setDepthTest(0)
        self.tableCard.setDepthWrite(0)
        self.tableCard.hide()

        if (table):
            self.setTableTexture(loader.loadTexture(table))

        if (mask):
            cm = CardMaker("JOD Mask")
            cm.setFrame(-4.0 / 3.0, 4.0 / 3.0, -4.0 / 3.0, 4.0 / 3.0)
            self.mask = aspect2d.attachNewNode(cm.generate())
            #self.mask.setP(-90)
            self.mask.setTexture(loader.loadTexture(mask), 1)
            self.mask.setTransparency(1)
            self.mask.setDepthTest(0)
        else:
            self.mask = None

        self.stations = []
        for i in range(4):
            station = Station(self, i)
            station.reparentTo(self)
            self.stations.append(station)

        self.reparentTo(render)
        base.disableMouse()
        self.lens = OrthographicLens()
        self.lens.setFilmSize(totalHeight * base.getAspectRatio(), totalHeight)
        base.cam.node().setLens(self.lens)
        camera.setPosHpr(0, 0, 10.0, 0, -90, 0)
        base.setBackgroundColor(0, 0, 0)

        self.audio3d = Audio3DManager(base.sfxManagerList[0], self)
        self.audio3d.setDropOffFactor(0)
예제 #31
0
 def __init__(self, config, world):
     NodePath.__init__(self, 'ForestNode')
     self.config = config
     self.world = world
     self.added = []
     self.trees = {}
     self.trees_in_node = 10
     self.mutex = self.world.mutex_repaint
     self.flatten_node = NodePath('flatten_nodes')
예제 #32
0
    def __init__(self, parent, category, pageNum):
        NodePath.__init__(self, parent.attachNewNode(category))

        self.parent = parent
        self.pageNum = pageNum
        self.category = category
        self.catalogItems = []
        self.itemFrames = []
        self.textNode = None
예제 #33
0
    def __init__(self, parent, category, pageNum):
        NodePath.__init__(self, parent.attachNewNode(category))

        self.parent = parent
        self.pageNum = pageNum
        self.category = category
        self.catalogItems = []
        self.itemFrames = []
        self.textNode = None
예제 #34
0
 def __init__(self, serialNum, model):
     NodePath.__init__(self, 'CogdoMazeWaterCooler-%i' % serialNum)
     self.serialNum = serialNum
     self._model = model
     self._model.reparentTo(self)
     self._model.setPosHpr(0, 0, 0, 0, 0, 0)
     self._initCollisions()
     self._initArrow()
     self._update = None
     self.__startUpdateTask()
    def __init__(self, gameObject, type):
        NodePath.__init__(self, "FishingLure_%s" % type)
        self.gameObject = gameObject
        self.type = type
        self.initLureModel()
        if FishingGlobals.wantDebugCollisionVisuals:
            self.initCollision()

        self.initLureHelpText()
        self.setLightOff()
예제 #36
0
    def __init__(self, parent, nodeName, clickEvent):
        NodePath.__init__(self, parent.attachNewNode(nodeName))

        self.clickEvent = clickEvent

        self.normalNode = CatalogGlobals.CatalogNodePath.find('**/arrow_UP_'+nodeName).copyTo(self)
        self.clickedNode = CatalogGlobals.CatalogNodePath.find('**/arrow_DN_'+nodeName).copyTo(self)
        self.hoverNode = CatalogGlobals.CatalogNodePath.find('**/arrow_OVR_'+nodeName).copyTo(self)

        self.arrowButton = DirectButton(parent=self, relief=None, image=(self.normalNode, self.clickedNode, self.hoverNode), command=self.clickEvent)
예제 #37
0
파일: geometry.py 프로젝트: LBdN/labs
    def __init__(self, start, end, thickness=1.0):

        # Create line segments
        ls = LineSegs()
        ls.setThickness(thickness)
        ls.drawTo(Point3(start))
        ls.drawTo(Point3(end))

        # Init the node path, wrapping the lines
        NodePath.__init__(self, ls.create())
예제 #38
0
 def __init__(self, air, name=None):
     # Be careful not to create multiple NodePath objects
     try:
         self.DistributedNodeAI_initialized
     except:
         self.DistributedNodeAI_initialized = 1
         DistributedObjectAI.DistributedObjectAI.__init__(self, air)
         if name is None:
             name = self.__class__.__name__
         NodePath.__init__(self, name)
         self.gridParent = None
 def __init__(self, position, ID=-1):
     NodePath.__init__(self, "Waypoint " + str(ID))
     self.setPos(render, position)
     self.texture = loader.loadTexture("textures/blue.jpg")
     self.costToThisNode = 0
     self.visited = False
     self.neighbors = []
     self.ID = ID
     self.previousWaypoint = None
     torusModel = "models/Torus/Torus.egg"
     self.torus = loader.loadModel(torusModel)
예제 #40
0
    def __init__(self):
        NodePath.__init__(self, 'CogMenu')

        self.sellbotBar = CogMenuBar(self, 's')
        self.cashbotBar = CogMenuBar(self, 'm')
        self.lawbotBar = CogMenuBar(self, 'l')
        self.bossbotBar = CogMenuBar(self, 'c')

        self.sellbotBar.setX(-0.502)
        self.lawbotBar.setX(0.502)
        self.bossbotBar.setX(1)
예제 #41
0
 def __init__(self, parent, pos = None, scale = None):
     NodePath.__init__(self, 'DinerStatusIndicator')
     if parent:
         self.reparentTo(parent)
     if pos:
         self.setPos(pos)
     if scale:
         self.setScale(scale)
     self.loadAssets()
     FSM.FSM.__init__(self, 'DinerStatusIndicator')
     self.activeIval = None
예제 #42
0
 def __init__(self, air, name=None):
     # Be careful not to create multiple NodePath objects
     try:
         self.DistributedNodeAI_initialized
     except:
         self.DistributedNodeAI_initialized = 1
         DistributedObjectAI.DistributedObjectAI.__init__(self, air)
         if name is None:
             name = self.__class__.__name__
         NodePath.__init__(self, name)
         self.gridParent = None
 def __init__(self, position, ID = -1):
     NodePath.__init__(self, "Waypoint " + str(ID))
     self.setPos(render, position)
     self.texture = loader.loadTexture("textures/blue.jpg")
     self.costToThisNode = 0
     self.visited = False
     self.neighbors = []
     self.ID = ID
     self.previousWaypoint = None
     torusModel = "models/Torus/Torus.egg"
     self.torus = loader.loadModel(torusModel)
예제 #44
0
 def __init__(self, serialNum, model):
     NodePath.__init__(self, 'CogdoMazeWaterCooler-%i' % serialNum)
     self.serialNum = serialNum
     self._model = model
     self._model.reparentTo(self)
     self._model.setPosHpr(0, 0, 0, 0, 0, 0)
     self._initCollisions()
     self._initArrow()
     self._update = None
     self.__startUpdateTask()
     return
    def __init__(self, phone, doneEvent=None):
        NodePath.__init__(self, aspect2d.attachNewNode('CatalogGUI'))
        DirectObject.__init__(self)

        CatalogGlobals.CatalogNodePath.find('**/CATALOG_GUI_BKGD').copyTo(self)
        self.setScale(CatalogGlobals.CatalogBKGDScale)

        self.phone = phone
        self.doneEvent = doneEvent

        self.arrowButtons = {}
        self.createArrowButtons()

        self.currentTab = None
        self.tabButtons = {}
        self.createTabButtons()

        self.radioButtons = []
        # self.createRadioButtons()

        self.activePage = 0
        self.gifting = -1

        guiItems = loader.loadModel('phase_5.5/models/gui/catalog_gui')
        hangupGui = guiItems.find('**/hangup')
        hangupRolloverGui = guiItems.find('**/hangup_rollover')
        self.hangup = DirectButton(
            self,
            relief=None,
            pos=(2.28, 0, -1.3),
            image=[hangupGui, hangupRolloverGui, hangupRolloverGui, hangupGui],
            text=['', TTLocalizer.CatalogHangUp, TTLocalizer.CatalogHangUp],
            text_fg=Vec4(1),
            text_scale=0.07,
            text_pos=(0.0, 0.14),
            command=self.hangUp)
        guiItems.removeNode()

        jarGui = loader.loadModel('phase_3.5/models/gui/jar_gui')
        self.moneyDisplay = DirectLabel(
            parent=self,
            relief=None,
            pos=(2.28, 0, -0.9),
            scale=0.8,
            text=str(base.localAvatar.getMoney()),
            text_scale=0.18,
            text_fg=(0.95, 0.95, 0, 1),
            text_shadow=(0, 0, 0, 1),
            text_pos=(0, -0.1, 0),
            image=jarGui.find('**/Jar'),
            text_font=ToontownGlobals.getSignFont())

        jarGui.removeNode()
        return
예제 #46
0
 def __init__(self, x, y, z, moleField, index):
     NodePath.__init__(self, 'MoleHill-%d' % index)
     self.moleField = moleField
     self.index = index
     self.loadModel()
     self.setPos(x, y, z)
     self.schedule = []
     self.popIval = None
     self.downIval = None
     self.popupNum = 0
     self.hillType = None
     self.isUp = 0
 def __init__(self, parent, pos = None, scale = None):
     NodePath.__init__(self, 'DinerStatusIndicator')
     if parent:
         self.reparentTo(parent)
     if pos:
         self.setPos(pos)
     if scale:
         self.setScale(scale)
     self.loadAssets()
     FSM.FSM.__init__(self, 'DinerStatusIndicator')
     self.activeIval = None
     return
예제 #48
0
 def __init__(self, x, y, z, moleField, index):
     NodePath.__init__(self, 'MoleHill-%d' % index)
     self.moleField = moleField
     self.index = index
     self.loadModel()
     self.setPos(x, y, z)
     self.schedule = []
     self.popIval = None
     self.downIval = None
     self.popupNum = 0
     self.hillType = None
     self.isUp = 0
예제 #49
0
    def __init__(self, air, name = None):
        try:
            self.DistributedNodeAI_initialized
        except:
            self.DistributedNodeAI_initialized = 1
            DistributedObjectAI.DistributedObjectAI.__init__(self, air)
            if name is None:
                name = self.__class__.__name__
            NodePath.__init__(self, name)
            self.gridParent = None

        return
예제 #50
0
    def __init__(self, cr):
        try:
            self.DistributedNode_initialized
        except:
            self.DistributedNode_initialized = 1
            self.gotStringParentToken = 0
            DistributedObject.DistributedObject.__init__(self, cr)
            if not self.this:
                NodePath.__init__(self, "DistributedNode")

            # initialize gridParent
            self.gridParent = None
예제 #51
0
    def __init__(self, cr):
        try:
            self.DistributedNode_initialized
        except:
            self.DistributedNode_initialized = 1
            self.gotStringParentToken = 0
            DistributedObject.DistributedObject.__init__(self, cr)
            if not self.this:
                NodePath.__init__(self, 'DistributedNode')
            self.gridParent = None

        return
예제 #52
0
    def __init__(self, air, name=None):
        try:
            self.DistributedNodeAI_initialized
        except:
            self.DistributedNodeAI_initialized = 1
            DistributedObjectAI.DistributedObjectAI.__init__(self, air)
            if name is None:
                name = self.__class__.__name__
            NodePath.__init__(self, name)
            self.gridParent = None

        return
예제 #53
0
파일: axis.py 프로젝트: LBdN/labs
 def __init__( self, name, vector, colour, planar=False, default=False ):
     NodePath.__init__( self, name )
     self.name          = name
     self.vector        = vector
     self.colour        = colour
     self.planar        = planar
     self.default       = default
     self.highlited     = False
     self.selected      = False
     self.size          = 1
     self.geoms         = []
     self.collNodes     = []
     self.collNodePaths = []
예제 #54
0
 def __init__(self, x, y, z, moleField, index):
     """Construct the mole hill."""
     NodePath.__init__(self, 'MoleHill-%d' % index)
     self.moleField = moleField
     self.index = index
     self.loadModel()
     self.setPos(x, y, z)
     self.schedule = []
     self.popIval = None
     self.downIval = None
     self.popupNum = 0  # how many times has this hill popped up
     self.hillType = None
     self.isUp = 0
예제 #55
0
    def __init__(self, catalogGui, nodeName, clickEvent):
        NodePath.__init__(self, catalogGui.attachNewNode(nodeName))

        self.active = False
        self.activePage = 0
        self.catalogGui = catalogGui
        self.catalogItemPages = []
        self.otherTabs = []
        self.clickEvent = clickEvent

        self.clickedNode = CatalogGlobals.CatalogNodePath.find('**/'+nodeName+'_DN').copyTo(self)
        self.hoverNode = CatalogGlobals.CatalogNodePath.find('**/'+nodeName+'_OVR').copyTo(self)

        self.tabButton = DirectButton(parent=self, relief=None, image=(self.clickedNode, self.clickedNode, self.hoverNode), command=self.tabClicked)
예제 #56
0
    def __init__(self, parent, nodeName, clickEvent):
        NodePath.__init__(self, parent.attachNewNode(nodeName))

        self.radioButtons = []
        self.clickEvent = clickEvent

        self.normalNode = CatalogGlobals.CatalogNodePath.find('**/'+nodeName+'_UP').copyTo(self)
        self.clickedNode = CatalogGlobals.CatalogNodePath.find('**/'+nodeName+'_DN').copyTo(self)
        self.hoverNode = CatalogGlobals.CatalogNodePath.find('**/'+nodeName+'_OVR').copyTo(self)

        self.statusIndicator = CatalogGlobals.CatalogNodePath.find('**/'+nodeName+'Radio_ON').copyTo(self)
        self.statusIndicator.hide()

        self.radioButton = DirectButton(parent=self, relief=None, image=(self.normalNode, self.clickedNode, self.hoverNode), command=self.enable)
예제 #57
0
파일: geometry.py 프로젝트: LBdN/labs
    def __init__(self, radius=1.0, height=1.0, numSegs=16, degrees=360, axis=Vec3(0, 0, 1), origin=Point3(0, 0, 0)):

        # Create vetex data format
        gvf = GeomVertexFormat.getV3n3()
        gvd = GeomVertexData("vertexData", gvf, Geom.UHStatic)

        # Create vetex writers for each type of data we are going to store
        gvwV = GeomVertexWriter(gvd, "vertex")
        gvwN = GeomVertexWriter(gvd, "normal")

        # Get the points for an arc
        points = GetPointsForArc(degrees, numSegs, True)
        for i in range(len(points) - 1):

            # Rotate the points around the desired axis
            p1 = Point3(points[i][0], points[i][1], 0) * radius
            p1 = RotatePoint3(p1, Vec3(0, 0, 1), axis) - origin
            p2 = Point3(points[i + 1][0], points[i + 1][1], 0) * radius
            p2 = RotatePoint3(p2, Vec3(0, 0, 1), axis) - origin

            cross = (p2 - axis).cross(p1 - axis)
            cross.normalize()

            gvwV.addData3f(p1)
            gvwV.addData3f(axis * height - origin)
            gvwV.addData3f(p2)
            gvwN.addData3f(cross)
            gvwN.addData3f(cross)
            gvwN.addData3f(cross)

            # Base
            gvwV.addData3f(p2)
            gvwV.addData3f(Point3(0, 0, 0) - origin)
            gvwV.addData3f(p1)
            gvwN.addData3f(-axis)
            gvwN.addData3f(-axis)
            gvwN.addData3f(-axis)

        geom = Geom(gvd)
        for i in range(0, gvwV.getWriteRow(), 3):

            # Create and add triangle
            geom.addPrimitive(GetGeomTriangle(i, i + 1, i + 2))

        # Init the node path, wrapping the box
        geomNode = GeomNode("cone")
        geomNode.addGeom(geom)
        NodePath.__init__(self, geomNode)
예제 #58
0
 def __init__( self, name, *args, **kwargs ):
     NodePath.__init__( self, name )
     p3d.SingleTask.__init__( self, name, *args, **kwargs )
     
     self.attachedNps = []
     self.dragging = False
     self.local = True
     self.planar = False
     self.size = 1
     
     self.axes = []
     
     # Set this node up to be drawn over everything else
     self.setBin( 'fixed', 40 )
     self.setDepthTest( False )
     self.setDepthWrite( False )