from pandac.PandaModules import TransparencyAttrib from direct.gui.DirectGui import * from pandac.PandaModules import TextNode from pandac.PandaModules import AmbientLight, Spotlight, PerspectiveLens, Fog from pandac import PandaModules as P from direct.task.Task import Task # Custom imports from camera import Camera, EdgeScreenTracker from terrain import Terrain from obstacles import SphereObstacle from containers import ContainerSquare from steerVec import SteerVec import character as C # CollisionTraverser for Plants base.cTrav = P.CollisionTraverser('CollisionTraverser of scene.py') plantNode = P.NodePath( 'plantNode') # All plants are parented to one node for flattening plantNode.reparentTo(render) class Sea: def __init__(self): sea = loader.loadModel("models/sea1.egg") sea.reparentTo(render) sea.setScale(2000, 2000, 100) class Scene(DirectObject): def __init__(self): """Initialise the scene."""
import random, os # Panda imports import pandac.PandaModules as P from direct.task.Task import Task from pandac.PandaModules import PNMImage # Custom imports # FIXME: Should collisionmasks and SphereObstacles be set here or in scene.py? # scene.py could access the terrain collision model and list of trees through # Terrain and set the collision masks, add SphereObstacles. import character as C from perlin import greenNoise from vehicle import cTrav as vehicleCTrav from vehicle import obstacleMASK, offMASK, obstacleHandler from obstacles import SphereObstacle # Initialise a CollisionTraverser for this module cTrav = P.CollisionTraverser('Global CollisionTraverser of terrain.py') # Setup a task to traverse the CollisionTraverser def traverse(task): if len(taskMgr.getTasksNamed("Tree step task")) == 0: # FIXME: This assumes that all Terrain objects will be added at the # very beginning of the simulation. (Any that are added after this task # returns 'done' will not benefit from a collision traverser for # trees). Give each Terrain object its own collision traverser and task # which it can stop when it no longer needs it? return Task.done else: cTrav.traverse(render) return Task.cont