*** empty log message ***

This commit is contained in:
Roger Hughston 2005-05-23 22:12:38 +00:00
parent 010cfe3e2b
commit e7cd96bf9d
22 changed files with 151 additions and 124 deletions

View File

@ -1,7 +1,7 @@
"""Actor module: contains the Actor class"""
from direct.showbase.PandaObject import *
from pandac import LODNode
from pandac.PandaModules import LODNode
import types
class Actor(PandaObject, NodePath):
@ -355,7 +355,7 @@ class Actor(PandaObject, NodePath):
If one is not supplied as an argument, make one
"""
if (node == None):
lod = LODNode.LODNode("lod")
lod = LODNode("lod")
self.__LODNode = self.__geomNode.attachNewNode(lod)
else:
self.__LODNode = self.__geomNode.attachNewNode(node)
@ -505,7 +505,6 @@ class Actor(PandaObject, NodePath):
currently-playing anim, but this was confusing and could lead
to the wrong anim's play rate getting set. Better to insist
on this parameter.
NOTE: sets play rate on all LODs"""
for control in self.getAnimControls(animName, partName):
control.setPlayRate(rate)

View File

@ -39,3 +39,5 @@ class DistributedActor(DistributedNode.DistributedNode, Actor.Actor):
Actor.Actor.delete(self)
def loop(self, animName, restart=1, partName=None,fromFrame=None, toFrame=None):
return Actor.Actor.loop(self,animName,restart,partName,fromFrame,toFrame);

View File

@ -523,7 +523,7 @@ class GravityWalker(DirectObject.DirectObject):
# rotMat is the rotation matrix corresponding to
# our previous heading.
rotMat=Mat3.rotateMatNormaxis(self.avatarNodePath.getH(), Vec3.up())
step=rotMat.xform(self.vel) + (self.priorParent * dt)
step=(self.priorParent * dt) + rotMat.xform(self.vel)
self.avatarNodePath.setFluidPos(Point3(
self.avatarNodePath.getPos()+step))
if 0:

View File

@ -18,7 +18,7 @@ from direct.showbase.ShowBaseGlobal import *
from direct.directnotify import DirectNotifyGlobal
from direct.showbase import DirectObject
from pandac import PhysicsManager
from pandac.PandaModules import PhysicsManager
import math
#import LineStream

View File

@ -17,7 +17,7 @@ animations based on control events.
from direct.showbase.ShowBaseGlobal import *
from direct.directnotify import DirectNotifyGlobal
from pandac import PhysicsManager
from pandac.PandaModules import PhysicsManager
import math
import PhysicsWalker

View File

@ -1,7 +1,7 @@
from direct.showbase.PandaObject import *
from direct.directtools.DirectGeometry import *
from pandac import NodePath
from pandac.PandaModules import NodePath
class Mopath(PandaObject):

View File

@ -411,6 +411,8 @@ class ClientRepository(ConnectionRepository.ConnectionRepository):
return distObj
def generateWithRequiredOtherFields(self, dclass, doId, di, parentId = None, zoneId = None):
print "---------------------------"
print doId
if self.doId2do.has_key(doId):
# ...it is in our dictionary.
# Just update it.

View File

@ -152,7 +152,6 @@ class ConnectionRepository(DoInterestManager, CConnectionRepository):
if classDef == None:
className = dclass.getName()
classDef = dcImports.get(className)
if classDef is None:
self.notify.info("No class definition for %s." % (className))
else:
@ -161,11 +160,15 @@ class ConnectionRepository(DoInterestManager, CConnectionRepository):
self.notify.error("Module %s does not define class %s." % (className, className))
classDef = getattr(classDef, className)
if type(classDef) not in (types.ClassType, types.TypeType):
self.notify.error("Symbol %s is not a class name." % (className))
else:
# rhh this seems to fail with new system not sure why ?
#print "---classname " +className
#print type(classDef)
#print types.ClassType
#if type(classDef) != types.ClassType:
# self.notify.error("Symbol %s is not a class name." % (className))
#else:
# dclass.setClassDef(classDef)
dclass.setClassDef(classDef)
self.dclassesByName[className] = dclass
if number >= 0:
self.dclassesByNumber[number] = dclass

View File

@ -23,36 +23,36 @@ class DistributedSmoothNodeAI(DistributedNodeAI.DistributedNodeAI,
# These have their FFI functions exposed for efficiency
def setSmH(self, h, t):
self.private__overloaded_setH_ptrNodePath_float(h)
self.setH(h)
def setSmZ(self, z, t):
self.private__overloaded_setZ_ptrNodePath_float(z)
self.setZ(z)
def setSmXY(self, x, y, t):
self.private__overloaded_setX_ptrNodePath_float(x)
self.private__overloaded_setY_ptrNodePath_float(y)
self.setX(x)
self.setY(y)
def setSmXZ(self, x, z, t):
self.private__overloaded_setX_ptrNodePath_float(x)
self.private__overloaded_setZ_ptrNodePath_float(z)
self.setX(x)
self.setZ(z)
def setSmPos(self, x, y, z, t):
self.private__overloaded_setPos_ptrNodePath_float_float_float(x,y,z)
self.setPos(x,y,z)
def setSmHpr(self, h, p, r, t):
self.private__overloaded_setHpr_ptrNodePath_float_float_float(h,p,r)
self.setHpr(h,p,r)
def setSmXYH(self, x, y, h, t):
self.private__overloaded_setX_ptrNodePath_float(x)
self.private__overloaded_setY_ptrNodePath_float(y)
self.private__overloaded_setH_ptrNodePath_float(h)
self.setX(x)
self.setY(y)
self.setH(h)
def setSmXYZH(self, x, y, z, h, t):
self.private__overloaded_setPos_ptrNodePath_float_float_float(x,y,z)
self.private__overloaded_setH_ptrNodePath_float(h)
self.setPos(x,y,z)
self.setH(h)
def setSmPosHpr(self, x, y, z, h, p, r, t):
self.private__overloaded_setPosHpr_ptrNodePath_float_float_float_float_float_float(x,y,z,h,p,r)
self.setPosHpr(x,y,z,h,p,r)
def clearSmoothing(self, bogus = None):
pass
@ -60,16 +60,16 @@ class DistributedSmoothNodeAI(DistributedNodeAI.DistributedNodeAI,
# Do we use these on the AIx?
def setComponentX(self, x):
self.private__overloaded_setX_ptrNodePath_float(x)
self.setX(x)
def setComponentY(self, y):
self.private__overloaded_setY_ptrNodePath_float(y)
self.setY(y)
def setComponentZ(self, z):
self.private__overloaded_setZ_ptrNodePath_float(z)
self.setZ(z)
def setComponentH(self, h):
self.private__overloaded_setH_ptrNodePath_float(h)
self.setH(h)
def setComponentP(self, p):
self.private__overloaded_setP_ptrNodePath_float(p)
self.setP(p)
def setComponentR(self, r):
self.private__overloaded_setR_ptrNodePath_float(r)
self.setR(r)
def setComponentT(self, t):
pass

View File

@ -5,7 +5,6 @@
from pandac.PandaModules import *
# Import the type numbers
from pandac.DCSubatomicType import *
class PyDatagram(Datagram):

View File

@ -5,7 +5,6 @@
from pandac.PandaModules import *
# Import the type numbers
from pandac.DCSubatomicType import *
class PyDatagramIterator(DatagramIterator):

View File

@ -0,0 +1 @@
from PandaModules import *

View File

@ -1,4 +1,4 @@
try:
from libpiratesModules import *
from libpirates import *
except ImportError , e:
print " ** Warning * Failed to load -->", e

View File

@ -9,7 +9,8 @@ from IndirectInterval import *
from MopathInterval import *
from ParticleInterval import *
from SoundInterval import *
from pandac.WaitInterval import *
#from pandac.WaitInterval import *
from pandac.PandaModules import *
from ProjectileInterval import *
from MetaInterval import *
from IntervalManager import *

View File

@ -1,4 +1,5 @@
from pandac.PandaModules import *
from pandac import PandaModules
from direct.directnotify.DirectNotifyGlobal import *
from direct.showbase import EventManager
import Interval
@ -12,29 +13,47 @@ class IntervalManager(CIntervalManager):
# the Python extensions is to add support for Python-based
# intervals (like MetaIntervals).
if PandaModules.__dict__.has_key("Dtool_PyNavtiveInterface"):
def __init__(self, globalPtr = 0):
# Pass globalPtr == 1 to the constructor to trick it into
# "constructing" a Python wrapper around the global
# CIntervalManager object.
##self.cObj = CIntervalManager.getGlobalPtr()
##Dtool_BarrowThisRefrence(self,self.cObj)
##self.dd = self
if globalPtr:
self.cObj = CIntervalManager.getGlobalPtr()
Dtool_BarrowThisRefrence(self,self.cObj)
self.dd = self
else:
CIntervalManager.__init__(self)
self.eventQueue = EventQueue()
self.MyEventmanager = EventManager.EventManager(self.eventQueue)
self.setEventQueue(self.eventQueue)
self.ivals = []
self.removedIvals = {}
else: ## the old interface
def __init__(self, globalPtr = 0):
# Pass globalPtr == 1 to the constructor to trick it into
# "constructing" a Python wrapper around the global
# CIntervalManager object.
if globalPtr:
#CIntervalManager.__init__(self, None)
cObj = CIntervalManager.getGlobalPtr()
self.this = cObj.this
self.userManagesMemory = 0
else:
CIntervalManager.__init__(self)
# Set up a custom event queue for handling C++ events from
# intervals.
self.eventQueue = EventQueue()
self.eventManager = EventManager.EventManager(self.eventQueue)
self.MyEventmanager = EventManager.EventManager(self.eventQueue)
self.setEventQueue(self.eventQueue)
self.ivals = []
self.removedIvals = {}
def addInterval(self, interval):
index = self.addCInterval(interval, 1)
self.__storeInterval(interval, index)
@ -55,7 +74,6 @@ class IntervalManager(CIntervalManager):
def finishIntervalsMatching(self, pattern):
count = 0
maxIndex = self.getMaxIndex()
for index in range(maxIndex):
ival = self.getCInterval(index)
@ -77,7 +95,6 @@ class IntervalManager(CIntervalManager):
def step(self):
# This method should be called once per frame to perform all
# of the per-frame processing on the active intervals.
# Call C++ step, then do the Python stuff.
CIntervalManager.step(self)
self.__doPythonCallbacks()
@ -86,7 +103,6 @@ class IntervalManager(CIntervalManager):
# This method should be called during an emergency cleanup
# operation, to automatically pause or finish all active
# intervals tagged with autoPause or autoFinish set true.
# Call C++ interrupt, then do the Python stuff.
CIntervalManager.interrupt(self)
self.__doPythonCallbacks()
@ -94,7 +110,6 @@ class IntervalManager(CIntervalManager):
def __doPythonCallbacks(self):
# This method does all of the required Python post-processing
# after performing some C++-level action.
# It is important to call all of the python callbacks on the
# just-removed intervals before we call any of the callbacks
# on the still-running intervals.
@ -118,7 +133,7 @@ class IntervalManager(CIntervalManager):
# C++. We use a custom event queue so we can service all of
# these immediately, rather than waiting for the global event
# queue to be serviced (which might not be till next frame).
self.eventManager.doEvents()
self.MyEventmanager.doEvents()
def __storeInterval(self, interval, index):
@ -127,8 +142,9 @@ class IntervalManager(CIntervalManager):
assert(self.ivals[index] == None or self.ivals[index] == interval)
self.ivals[index] = interval
def __repr__(self):
return self.__str__()
#def __repr__(self):
# return self.__str__()
# The global IntervalManager object.
ivalMgr = IntervalManager(1)

View File

@ -325,6 +325,7 @@ class MetaInterval(CMetaInterval):
# with all of their associated Python callbacks:
def setManager(self, manager):
rogerroger
self.__manager = manager
CMetaInterval.setManager(self, manager)

View File

@ -2,7 +2,7 @@ from pandac.PandaModules import *
from direct.showbase.DirectObject import *
from direct.showbase.PhysicsManagerGlobal import *
from pandac import ForceNode
#from pandac import ForceNode
from direct.directnotify import DirectNotifyGlobal
import sys
@ -18,7 +18,7 @@ class ForceGroup(DirectObject):
else:
self.name = name
self.node = ForceNode.ForceNode(self.name)
self.node = ForceNode(self.name)
self.nodePath = NodePath(self.node)
self.fEnabled = 0

View File

@ -1,4 +1,4 @@
"""ParticleManagerGlobal module: contains the global particle system manager"""
from pandac import ParticleSystemManager
from pandac.PandaModules import ParticleSystemManager
particleMgr = ParticleSystemManager.ParticleSystemManager()
particleMgr = ParticleSystemManager()

View File

@ -2,33 +2,36 @@ from pandac.PandaModules import *
from ParticleManagerGlobal import *
from direct.showbase.PhysicsManagerGlobal import *
from pandac import ParticleSystem
from pandac import BaseParticleFactory
from pandac import PointParticleFactory
from pandac import ZSpinParticleFactory
from pandac.PandaModules import ParticleSystem
from pandac.PandaModules import BaseParticleFactory
from pandac.PandaModules import PointParticleFactory
from pandac.PandaModules import ZSpinParticleFactory
#import OrientedParticleFactory
from pandac import BaseParticleRenderer
from pandac import PointParticleRenderer
from pandac import LineParticleRenderer
from pandac import GeomParticleRenderer
from pandac import SparkleParticleRenderer
from pandac import SpriteParticleRenderer
from pandac import BaseParticleEmitter
from pandac import BoxEmitter
from pandac import DiscEmitter
from pandac import LineEmitter
from pandac import PointEmitter
from pandac import RectangleEmitter
from pandac import RingEmitter
from pandac import SphereSurfaceEmitter
from pandac import SphereVolumeEmitter
from pandac import TangentRingEmitter
from pandac.PandaModules import BaseParticleRenderer
from pandac.PandaModules import PointParticleRenderer
from pandac.PandaModules import LineParticleRenderer
from pandac.PandaModules import GeomParticleRenderer
from pandac.PandaModules import SparkleParticleRenderer
#from pandac.PandaModules import SpriteParticleRenderer
from pandac.PandaModules import BaseParticleEmitter
from pandac.PandaModules import BoxEmitter
from pandac.PandaModules import DiscEmitter
from pandac.PandaModules import LineEmitter
from pandac.PandaModules import PointEmitter
from pandac.PandaModules import RectangleEmitter
from pandac.PandaModules import RingEmitter
from pandac.PandaModules import SphereSurfaceEmitter
from pandac.PandaModules import SphereVolumeEmitter
from pandac.PandaModules import TangentRingEmitter
import SpriteParticleRendererExt
import string
import os
from direct.directnotify import DirectNotifyGlobal
import sys
class Particles(ParticleSystem.ParticleSystem):
class Particles(ParticleSystem):
notify = DirectNotifyGlobal.directNotify.newCategory('Particles')
id = 1
@ -39,7 +42,7 @@ class Particles(ParticleSystem.ParticleSystem):
Particles.id += 1
else:
self.name = name
ParticleSystem.ParticleSystem.__init__(self, poolSize)
ParticleSystem.__init__(self, poolSize)
# self.setBirthRate(0.02)
# self.setLitterSize(10)
# self.setLitterSpread(0)
@ -102,16 +105,16 @@ class Particles(ParticleSystem.ParticleSystem):
self.factory = None
self.factoryType = type
if (type == "PointParticleFactory"):
self.factory = PointParticleFactory.PointParticleFactory()
self.factory = PointParticleFactory()
elif (type == "ZSpinParticleFactory"):
self.factory = ZSpinParticleFactory.ZSpinParticleFactory()
self.factory = ZSpinParticleFactory()
elif (type == "OrientedParticleFactory"):
self.factory = OrientedParticleFactory.OrientedParticleFactory()
self.factory = OrientedParticleFactory()
else:
print "unknown factory type: %s" % type
return None
self.factory.setLifespanBase(0.5)
ParticleSystem.ParticleSystem.setFactory(self, self.factory)
ParticleSystem.setFactory(self, self.factory)
def setRenderer(self, type):
if (self.rendererType == type):
@ -120,12 +123,12 @@ class Particles(ParticleSystem.ParticleSystem):
self.renderer = None
self.rendererType = type
if (type == "PointParticleRenderer"):
self.renderer = PointParticleRenderer.PointParticleRenderer()
self.renderer = PointParticleRenderer()
self.renderer.setPointSize(1.0)
elif (type == "LineParticleRenderer"):
self.renderer = LineParticleRenderer.LineParticleRenderer()
self.renderer = LineParticleRenderer()
elif (type == "GeomParticleRenderer"):
self.renderer = GeomParticleRenderer.GeomParticleRenderer()
self.renderer = GeomParticleRenderer()
# This was moved here because we do not want to download
# the direct tools with toontown.
if __dev__:
@ -134,11 +137,11 @@ class Particles(ParticleSystem.ParticleSystem):
bbox = DirectSelection.DirectBoundingBox(npath)
self.renderer.setGeomNode(bbox.lines.node())
elif (type == "SparkleParticleRenderer"):
self.renderer = SparkleParticleRenderer.SparkleParticleRenderer()
self.renderer = SparkleParticleRenderer()
elif (type == "SpriteParticleRenderer"):
self.renderer = SpriteParticleRenderer.SpriteParticleRenderer()
self.renderer = SpriteParticleRendererExt.SpriteParticleRendererExt()
if (self.renderer.getSourceType() ==
SpriteParticleRenderer.SpriteParticleRenderer.STTexture):
SpriteParticleRendererExt.SpriteParticleRendererExt.STTexture):
# Use current default texture
# See sourceTextureName SpriteParticleRenderer-extensions.py
self.renderer.setTextureFromFile()
@ -149,7 +152,7 @@ class Particles(ParticleSystem.ParticleSystem):
else:
print "unknown renderer type: %s" % type
return None
ParticleSystem.ParticleSystem.setRenderer(self, self.renderer)
ParticleSystem.setRenderer(self, self.renderer)
def setEmitter(self, type):
"""setEmitter(type)"""
@ -159,28 +162,28 @@ class Particles(ParticleSystem.ParticleSystem):
self.emitter = None
self.emitterType = type
if (type == "BoxEmitter"):
self.emitter = BoxEmitter.BoxEmitter()
self.emitter = BoxEmitter()
elif (type == "DiscEmitter"):
self.emitter = DiscEmitter.DiscEmitter()
self.emitter = DiscEmitter()
elif (type == "LineEmitter"):
self.emitter = LineEmitter.LineEmitter()
self.emitter = LineEmitter()
elif (type == "PointEmitter"):
self.emitter = PointEmitter.PointEmitter()
self.emitter = PointEmitter()
elif (type == "RectangleEmitter"):
self.emitter = RectangleEmitter.RectangleEmitter()
self.emitter = RectangleEmitter()
elif (type == "RingEmitter"):
self.emitter = RingEmitter.RingEmitter()
self.emitter = RingEmitter()
elif (type == "SphereSurfaceEmitter"):
self.emitter = SphereSurfaceEmitter.SphereSurfaceEmitter()
self.emitter = SphereSurfaceEmitter()
elif (type == "SphereVolumeEmitter"):
self.emitter = SphereVolumeEmitter.SphereVolumeEmitter()
self.emitter = SphereVolumeEmitter()
self.emitter.setRadius(1.0)
elif (type == "TangentRingEmitter"):
self.emitter = TangentRingEmitter.TangentRingEmitter()
self.emitter = TangentRingEmitter()
else:
print "unknown emitter type: %s" % type
return None
ParticleSystem.ParticleSystem.setEmitter(self, self.emitter)
ParticleSystem.setEmitter(self, self.emitter)
def addForce(self, force):
if (force.isLinear()):
@ -344,7 +347,7 @@ class Particles(ParticleSystem.ParticleSystem):
elif (self.rendererType == "SpriteParticleRenderer"):
file.write('# Sprite parameters\n')
if (self.renderer.getSourceType() ==
SpriteParticleRenderer.SpriteParticleRenderer.STTexture):
SpriteParticleRendererExt.SpriteParticleRendererExt.STTexture):
tex = self.renderer.getTexture()
file.write(targ + '.renderer.setTexture(loader.loadTexture(\'' + tex.getName() + '\'))\n')
else:

View File

@ -1,4 +1,4 @@
"""PhysicsManagerGlobal module: contains the global physics manager"""
from pandac import PhysicsManager
from pandac.PandaModules import PhysicsManager
physicsMgr = PhysicsManager.PhysicsManager()
physicsMgr = PhysicsManager()

View File

@ -1,7 +1,7 @@
"""RandomNumGen module: contains the RandomNumGen class"""
from direct.directnotify import DirectNotifyGlobal
from pandac import Mersenne
from pandac.PandaModules import Mersenne
def randHash(num):
""" this returns a random 16-bit integer, given a seed integer.

View File

@ -16,7 +16,8 @@ from EventManagerGlobal import *
from PythonUtil import *
from direct.particles.ParticleManagerGlobal import *
from PhysicsManagerGlobal import *
from direct.interval.IntervalManager import ivalMgr
#from direct.interval.IntervalManager import ivalMgr
from direct.interval import IntervalManager
from InputStateGlobal import inputState
from direct.task import Task
@ -99,7 +100,7 @@ class ShowBase(DirectObject.DirectObject):
# If the aspect ratio is 0 or None, it means to infer the
# aspect ratio from the window size.
self.aspectRatio = ConfigVariableDouble('aspect-ratio', 0)
self.aspectRatio = ConfigVariableDouble('aspect-ratio', 0).getValue()
self.windowType = self.config.GetString('window-type', 'onscreen')
self.requireWindow = self.config.GetBool('require-window', 1)
@ -1145,7 +1146,7 @@ class ShowBase(DirectObject.DirectObject):
def ivalLoop(self, state):
# Execute all intervals in the global ivalMgr.
ivalMgr.step()
IntervalManager.ivalMgr.step()
return Task.cont
def shadowCollisionLoop(self, state):