Revision: 685
http://python-ogre.svn.sourceforge.net/python-ogre/?rev=685&view=rev
Author: andy_miller
Date: 2008-08-05 07:25:40 +0000 (Tue, 05 Aug 2008)
Log Message:
-----------
PCZ Portal Demo now works!!!
Modified Paths:
--------------
trunk/python-ogre/demos/ogrepcz/Demo_PCZ01.py
trunk/python-ogre/demos/ogrepcz/RoomObject.py
Modified: trunk/python-ogre/demos/ogrepcz/Demo_PCZ01.py
===================================================================
--- trunk/python-ogre/demos/ogrepcz/Demo_PCZ01.py 2008-08-05 03:02:16 UTC (rev 684)
+++ trunk/python-ogre/demos/ogrepcz/Demo_PCZ01.py 2008-08-05 07:25:40 UTC (rev 685)
@@ -29,25 +29,22 @@
import RoomObject
-Global_buildingNode = None #pcz.PCZSceneNode()
class PCZTestFrameListener ( sf.FrameListener):
- def __init__(self, renderWindow, sceneManager,camera ):
+ def __init__(self, renderWindow, sceneManager,camera,app ):
sf.FrameListener.__init__(self, renderWindow, camera)
self.moveSpeed = 15.0
self.targetMO =0
+ self.app=app
self.buildingTranslate = ogre.Vector3()
- print "\n\n** :", sceneManager
- self.raySceneQuery= sceneManager.createRayQuery(ogre.Ray(camera.getPosition(),
- ogre.Vector3.NEGATIVE_UNIT_Y))
+ self.raySceneQuery= app.raySceneQuery
- print "\n\n** :", sceneManager, "\n", self.raySceneQuery
self.camera = camera
- self.pczCameraParentNode = pcz.castAsPCZSceneNode(self.camera.getParentSceneNode())
+# self.pczCameraParentNode = pcz.castAsPCZSceneNode(self.camera.getParentSceneNode())
- def moveCamera( self ):
+ def _moveCamera( self ):
# Make all the spatial changes to the camera's scene node
# Note that YAW direction is around a fixed axis (freelook style) rather than a natural YAW
#(e.g. airplane)
@@ -55,17 +52,17 @@
self.camera.getParentSceneNode().pitch(self.rotationY)
self.camera.getParentSceneNode().yaw(self.rotationX, ogre.Node.TS_WORLD)
- Global_buildingNode.translate(self.buildingTranslate, ogre.Node.TS_LOCAL)
+ self.app.buildingNode.translate(self.buildingTranslate, ogre.Node.TS_LOCAL)
def frameRenderingQueued( self, evt ):
if sf.FrameListener.frameRenderingQueued( self, evt ) == False:
return False
self.buildingTranslate = ogre.Vector3(0,0,0)
- if self.Keyboard.isKeyDown( ois.KC_LBRACKET ):
- self.buildingTranslate = ogre.Vector3(0,-10,0)
- if self.Keyboard.isKeyDown( ois.KC_RBRACKET ):
- self.buildingTranslate = ogre.Vector3(0,10,0)
+# if self.Keyboard.isKeyDown( ois.KC_LBRACKET ):
+# self.buildingTranslate = ogre.Vector3(0,-10,0)
+# if self.Keyboard.isKeyDown( ois.KC_RBRACKET ):
+# self.buildingTranslate = ogre.Vector3(0,10,0)
if self.Keyboard.isKeyDown( ois.KC_LSHIFT ) or self.Keyboard.isKeyDown( ois.KC_RSHIFT ):
self.moveSpeed = 150
else:
@@ -77,11 +74,9 @@
updateRay.setOrigin(self.camera.getParentSceneNode().getPosition())
updateRay.setDirection(self.camera.getParentSceneNode().getOrientation()*ogre.Vector3.NEGATIVE_UNIT_Z)
self.raySceneQuery.setRay(updateRay)
- zone = self.pczCameraParentNode.getHomeZone()
- pcz.castAsPCZRaySceneQuery(self.raySceneQuery).setStartZone(zone)
- pcz.castAsPCZRaySceneQuery(self.raySceneQuery).setExcludeNode(self.camera.getParentSceneNode())
- rq = self.raySceneQuery.castAsRaySceneQuery()
-# print "RAYQUERY", rq
+ zone = self.camera.getParentNode().getHomeZone()
+ self.raySceneQuery.setStartZone(zone)
+ self.raySceneQuery.setExcludeNode(self.camera.getParentSceneNode())
for queryResult in self.raySceneQuery.execute(): #
mo = queryResult.movable
if self.targetMO != mo:
@@ -91,32 +86,6 @@
self.targetMO.getParentSceneNode().showBoundingBox(True)
return True
-# class TerrainListener(sf.FrameListener):
-# def __init__(self, renderWindow, camera, sceneManager):
-# sf.FrameListener.__init__(self, renderWindow, camera)
-# self.sceneManager = sceneManager
-# self.moveSpeed = 50.0
-#
-# self.raySceneQuery = sceneManager.createRayQuery(ogre.Ray(camera.getPosition(),
-# ogre.Vector3.NEGATIVE_UNIT_Y))
-# self.camera = camera
-# #self.camera.setPosition (self.camera.getPosition() + ogre.Vector3(0.0, 10.0, 0.0))
-#
-# def frameStarted(self, frameEvent):
-# # clamp to terrain
-# updateRay = ogre.Ray()
-# updateRay.setOrigin (self.camera.getPosition() + ogre.Vector3(0.0, 10.0, 0.0))
-# updateRay.setDirection (ogre.Vector3.NEGATIVE_UNIT_Y)
-# self.raySceneQuery.Ray = updateRay
-# for queryResult in self.raySceneQuery.execute():
-# if queryResult.worldFragment is not None:
-# pos = self.camera.getPosition()
-# self.camera.setPosition (pos.x, pos.y - queryResult.distance + 15.0, pos.z)
-# break
-#
-# return sf.FrameListener.frameStarted(self, frameEvent)
-
-
class PCZTestApplication (sf.Application):
def __del__(self):
del self.raySceneQuery
@@ -126,7 +95,6 @@
# Create the SceneManager, in this case a generic one
self.sceneManager = self.root.createSceneManager("PCZSceneManager", "PCZSceneManager")
- print "\n****:", self.sceneManager
# initialize the scene manager using terrain as default zone
zoneTypeName = "ZoneType_Default"
self.pczSM = pcz.castAsPCZSceneManager( self.sceneManager ) # store this for future reference
@@ -134,7 +102,7 @@
#self.sceneManager.showBoundingBoxes(True)
def _createFrameListener( self ):
- self.frameListener= PCZTestFrameListener(self.renderWindow, self.sceneManager,self.camera)
+ self.frameListener= PCZTestFrameListener(self.renderWindow, self.sceneManager,self.camera, self)
self.root.addFrameListener(self.frameListener)
def _createCamera(self):
@@ -163,7 +131,7 @@
self.pczSM.setZoneGeometry( zoneName, pcz.castAsPCZSceneNode(self.sceneManager.getRootSceneNode()), terrain_cfg )
# create aab portal(s) around the terrain
- corners =[None]*2
+ corners =[0]*2
aabb = ogre.AxisAlignedBox()
# make portal from terrain to default
@@ -237,7 +205,7 @@
# create a terrain zone
terrain_cfg = "terrain.cfg"
zoneName ="Terrain1_Zone"
- terrainZone = self.createTerrainZone(zoneName, terrain_cfg)
+ self.terrainZone = self.createTerrainZone(zoneName, terrain_cfg)
# # /* # Create another terrain zone
# # terrain_cfg = "terrain.cfg"
@@ -300,29 +268,29 @@
# create test buildinig
roomObj = RoomObject.RoomObject()
- Global_buildingNode = roomObj.createTestBuilding(self.sceneManager, "1")
- Global_buildingNode.setPosition(500, 165, 570)
+ self.buildingNode = roomObj.createTestBuilding(self.sceneManager, "1")
+ self.buildingNode.setPosition(500, 165, 570)
#ogre.Radian r = Radian(3.1416/7.0)
- #Global_buildingNode.rotate(ogre.Vector3.UNIT_Y, r)
+ #self.buildingNode.rotate(ogre.Vector3.UNIT_Y, r)
-# # create another test buildinig
-# roomObj2 = RoomObject.RoomObject()
-# Global_buildingNode = roomObj2.createTestBuilding(self.sceneManager, String("2"))
-# Global_buildingNode.setPosition(400, 165, 570)
+ # create another test buildinig
+ roomObj2 = RoomObject.RoomObject()
+ self.buildingNode = roomObj2.createTestBuilding(self.sceneManager, "2")
+ self.buildingNode.setPosition(400, 165, 570)
#ogre.Radian r = Radian(3.1416/7.0)
- #Global_buildingNode.rotate(ogre.Vector3.UNIT_Y, r)
+ #self.buildingNode.rotate(ogre.Vector3.UNIT_Y, r)
# Position camera in the center of the building
- self.cameraNode.setPosition(Global_buildingNode.getPosition())
+ self.cameraNode.setPosition(self.buildingNode.getPosition())
# Look back along -Z
self.camera.lookAt(self.cameraNode._getDerivedPosition() + ogre.Vector3(0,0,-300))
# Update bounds for camera
self.cameraNode._updateBounds()
-# # create the ray scene query
-# self.raySceneQuery = self.sceneManager.createRayQuery(
-# Ray(self.camera.getParentNode().getPosition(), ogre.Vector3.NEGATIVE_UNIT_Z))
-# self.raySceneQuery.setSortByDistance(True, 5)
+ # create the ray scene query
+ self.raySceneQuery = self.sceneManager.createRayQuery(
+ ogre.Ray(self.camera.getParentNode().getPosition(), ogre.Vector3.NEGATIVE_UNIT_Z))
+ self.raySceneQuery.setSortByDistance(True, 5)
Modified: trunk/python-ogre/demos/ogrepcz/RoomObject.py
===================================================================
--- trunk/python-ogre/demos/ogrepcz/RoomObject.py 2008-08-05 03:02:16 UTC (rev 684)
+++ trunk/python-ogre/demos/ogrepcz/RoomObject.py 2008-08-05 07:25:40 UTC (rev 685)
@@ -33,24 +33,22 @@
def createTestBuilding(self, scene,name):
self.count+=1
- pczSM = pcz.castAsPCZSceneManager(scene )
-
## set points to building exterior size
self.createPoints(ogre.Vector3(60.0, 40.0, 60.0), ogre.Vector3(4.0, 10.0, 4.0))
## create the building exterior
- exterior = pczSM.createEntity( name + "_building_exterior", "building_exterior.mesh" )
+ exterior = scene.createEntity( name + "_building_exterior", "building_exterior.mesh" )
## make the enclosure a child node of the root scene node
- exteriorNode = pcz.castAsPCZSceneNode(scene.getRootSceneNode()).createChildSceneNode(name +"_building_exterior_node", ogre.Vector3( 0, 0, 0 ) )
+ exteriorNode = scene.getRootSceneNode().createChildSceneNode(name +"_building_exterior_node", ogre.Vector3( 0, 0, 0 ) )
exteriorNode.attachObject(exterior)
- pczSM.addPCZSceneNode(exteriorNode, pczSM.getDefaultZone())
+ scene.addPCZSceneNode(exteriorNode, scene.getDefaultZone())
## create portals for the building exterior
self.createPortals(scene,
exterior,
exteriorNode,
- pczSM.getDefaultZone(),
+ scene.getDefaultZone(),
DOOR_FRONT|DOOR_BACK|DOOR_LEFT|DOOR_RIGHT,
True)
@@ -58,18 +56,18 @@
self.createPoints(ogre.Vector3(20.0, 10.0, 20.0), ogre.Vector3(4.0, 10.0, 4.0))
## create an interior room
- room = pczSM.createEntity( name +"_room1", "room_nzpz.mesh" )
+ room = scene.createEntity( name +"_room1", "room_nzpz.mesh" )
## add the room as a child node to the enclosure node
- roomNode = pcz.castAsPCZSceneNode(exteriorNode).createChildSceneNode( name +"_room1_node", ogre.Vector3( 0.0, 0.0, 20.0 ) )
+ roomNode = exteriorNode.createChildSceneNode( name +"_room1_node", ogre.Vector3( 0.0, 0.0, 20.0 ) )
roomNode.attachObject(room)
## room needs it's own zone
zoneType = "ZoneType_Default"
zoneName = name +"_room1_zone"
- newZone = pczSM.createZone(zoneType, zoneName)
+ newZone = scene.createZone(zoneType, zoneName)
newZone.setEnclosureNode(roomNode)
- pczSM.addPCZSceneNode(roomNode, newZone)
+ scene.addPCZSceneNode(roomNode, newZone)
## create portals for the room
self.createPortals(scene,
@@ -80,17 +78,17 @@
False)
## create another interior room
- room = pczSM.createEntity( name +"_room2", "room_nxpxnypynzpz.mesh" )
+ room = scene.createEntity( name +"_room2", "room_nxpxnypynzpz.mesh" )
## add the room as a child node to the enclosure node
- roomNode = pcz.castAsPCZSceneNode(exteriorNode).createChildSceneNode( name +"_room2_node", ogre.Vector3( 0.0, 0.0, 0.0 ) )
+ roomNode = exteriorNode.createChildSceneNode( name +"_room2_node", ogre.Vector3( 0.0, 0.0, 0.0 ) )
roomNode.attachObject(room)
## room needs it's own zone
zoneName = name +"_room2_zone"
- newZone = pczSM.createZone(zoneType, zoneName)
+ newZone = scene.createZone(zoneType, zoneName)
newZone.setEnclosureNode(roomNode)
- pczSM.addPCZSceneNode(roomNode, newZone)
+ scene.addPCZSceneNode(roomNode, newZone)
## create portals for the room
self.createPortals(scene,
@@ -101,17 +99,17 @@
False)
## create another interior room
- room = pczSM.createEntity( name +"_room3", "room_nzpz.mesh" )
+ room = scene.createEntity( name +"_room3", "room_nzpz.mesh" )
## add the room as a child node to the enclosure node
- roomNode = pcz.castAsPCZSceneNode(exteriorNode).createChildSceneNode( name +"_room3_node", ogre.Vector3( 0.0, 0.0, -20.0 ) )
+ roomNode = exteriorNode.createChildSceneNode( name +"_room3_node", ogre.Vector3( 0.0, 0.0, -20.0 ) )
roomNode.attachObject(room)
## room needs it's own zone
zoneName = name +"_room3_zone"
- newZone = pczSM.createZone(zoneType, zoneName)
+ newZone = scene.createZone(zoneType, zoneName)
newZone.setEnclosureNode(roomNode)
- pczSM.addPCZSceneNode(roomNode, newZone)
+ scene.addPCZSceneNode(roomNode, newZone)
## create portals for the room
self.createPortals(scene,
@@ -122,17 +120,17 @@
False)
## create another interior room
- room = pczSM.createEntity( name +"_room4", "room_nxpx.mesh" )
+ room = scene.createEntity( name +"_room4", "room_nxpx.mesh" )
## add the room as a child node to the enclosure node
- roomNode = pcz.castAsPCZSceneNode(exteriorNode).createChildSceneNode( name +"_room4_node", ogre.Vector3( -20.0, 0.0, 0.0 ) )
+ roomNode = exteriorNode.createChildSceneNode( name +"_room4_node", ogre.Vector3( -20.0, 0.0, 0.0 ) )
roomNode.attachObject(room)
## room needs it's own zone
zoneName = name +"_room4_zone"
- newZone = pczSM.createZone(zoneType, zoneName)
+ newZone = scene.createZone(zoneType, zoneName)
newZone.setEnclosureNode(roomNode)
- pczSM.addPCZSceneNode(roomNode, newZone)
+ scene.addPCZSceneNode(roomNode, newZone)
## create portals for the room
self.createPortals(scene,
@@ -143,17 +141,17 @@
False)
## create another interior room
- room = pczSM.createEntity( name +"_room5", "room_nxpx.mesh" )
+ room = scene.createEntity( name +"_room5", "room_nxpx.mesh" )
## add the room as a child node to the enclosure node
- roomNode = pcz.castAsPCZSceneNode(exteriorNode).createChildSceneNode( name +"_room5_node", ogre.Vector3( 20.0, 0.0, 0.0 ) )
+ roomNode = exteriorNode.createChildSceneNode( name +"_room5_node", ogre.Vector3( 20.0, 0.0, 0.0 ) )
roomNode.attachObject(room)
## room needs it's own zone
zoneName = name +"_room5_zone"
- newZone = pczSM.createZone(zoneType, zoneName)
+ newZone = scene.createZone(zoneType, zoneName)
newZone.setEnclosureNode(roomNode)
- pczSM.addPCZSceneNode(roomNode, newZone)
+ scene.addPCZSceneNode(roomNode, newZone)
## create portals for the room
self.createPortals(scene,
@@ -164,17 +162,17 @@
False)
## create another interior room
- room = pczSM.createEntity( name +"_room6", "room_ny.mesh" )
+ room = scene.createEntity( name +"_room6", "room_ny.mesh" )
## add the room as a child node to the enclosure node
- roomNode = pcz.castAsPCZSceneNode(exteriorNode).createChildSceneNode( name +"_room6_node", ogre.Vector3( 0.0, 10.0, 0.0 ) )
+ roomNode = exteriorNode.createChildSceneNode( name +"_room6_node", ogre.Vector3( 0.0, 10.0, 0.0 ) )
roomNode.attachObject(room)
## room needs it's own zone
zoneName = name +"_room6_zone"
- newZone = pczSM.createZone(zoneType, zoneName)
+ newZone = scene.createZone(zoneType, zoneName)
newZone.setEnclosureNode(roomNode)
- pczSM.addPCZSceneNode(roomNode, newZone)
+ scene.addPCZSceneNode(roomNode, newZone)
## create portals for the room
self.createPortals(scene,
@@ -185,17 +183,17 @@
False)
## create another interior room
- room = pczSM.createEntity( name +"_room7", "room_py.mesh" )
+ room = scene.createEntity( name +"_room7", "room_py.mesh" )
## add the room as a child node to the enclosure node
- roomNode = pcz.castAsPCZSceneNode(exteriorNode).createChildSceneNode( name +"_room7_node", ogre.Vector3( 0.0, -50.0, 0.0 ) )
+ roomNode = exteriorNode.createChildSceneNode( name +"_room7_node", ogre.Vector3( 0.0, -50.0, 0.0 ) )
roomNode.attachObject(room)
## room needs it's own zone
zoneName = name +"_room7_zone"
- newZone = pczSM.createZone(zoneType, zoneName)
+ newZone = scene.createZone(zoneType, zoneName)
newZone.setEnclosureNode(roomNode)
- pczSM.addPCZSceneNode(roomNode, newZone)
+ scene.addPCZSceneNode(roomNode, newZone)
## create portals for the room
self.createPortals(scene,
@@ -209,17 +207,17 @@
self.createPoints(ogre.Vector3(20.0, 40.0, 20.0), ogre.Vector3(4.0, 10.0, 4.0))
## create another interior room
- room = pczSM.createEntity( name +"_room8", "room_nypy_4y.mesh" )
+ room = scene.createEntity( name +"_room8", "room_nypy_4y.mesh" )
## add the room as a child node to the enclosure node
- roomNode = pcz.castAsPCZSceneNode(exteriorNode).createChildSceneNode( name +"_room8_node", ogre.Vector3( 0.0, -25.0, 0.0 ) )
+ roomNode = exteriorNode.createChildSceneNode( name +"_room8_node", ogre.Vector3( 0.0, -25.0, 0.0 ) )
roomNode.attachObject(room)
## room needs it's own zone
zoneName = name +"_room8_zone"
- newZone = pczSM.createZone(zoneType, zoneName)
+ newZone = scene.createZone(zoneType, zoneName)
newZone.setEnclosureNode(roomNode)
- pczSM.addPCZSceneNode(roomNode, newZone)
+ scene.addPCZSceneNode(roomNode, newZone)
## create portals for the room
self.createPortals(scene,
@@ -231,7 +229,7 @@
## resolve portal zone pointers
- pczSM.connectPortalsToTargetZonesByLocation()
+ scene.connectPortalsToTargetZonesByLocation()
return exteriorNode
@@ -264,7 +262,6 @@
return
else:
self.initMaterial=True
-
matptr = ogre.MaterialManager.getSingleton().create(mat, "General")
matptr.setReceiveShadows(False)
matptr.getTechnique(0).setLightingEnabled(True)
@@ -474,9 +471,7 @@
## Create portals for every door
def createPortals(self, scene, room, roomNode, zone, doorFlags, isEnclosure):
-
corners=[ogre.Vector3] * 4
-
if (isEnclosure):
if(doorFlags & DOOR_FRONT):
## set the corners to the front door corners
@@ -486,7 +481,7 @@
corners[3] = self.points[11]
## create the portal
portalName = room.getName() + "_FrontDoorPortal"
- p = pcz.castAsPCZSceneManager(scene).createPortal(portalName)
+ p = scene.createPortal(portalName)
p.setCorners(corners)
## associate the portal with the roomnode
p.setNode(roomNode)
@@ -503,7 +498,7 @@
corners[3] = self.points[12]
## create the portal
portalName = room.getName() + "_BackDoorPortal"
- p = pcz.castAsPCZSceneManager(scene).createPortal(portalName)
+ p = scene.createPortal(portalName)
p.setCorners(corners)
## associate the portal with the roomnode
p.setNode(roomNode)
@@ -520,7 +515,7 @@
corners[3] = self.points[19]
## create the portal
portalName = room.getName() + "_TopDoorPortal"
- p = pcz.castAsPCZSceneManager(scene).createPortal(portalName)
+ p = scene.createPortal(portalName)
p.setCorners(corners)
## associate the portal with the roomnode
p.setNode(roomNode)
@@ -537,7 +532,7 @@
corners[3] = self.points[20]
## create the portal
portalName = room.getName() + "_BottomDoorPortal"
- p = pcz.castAsPCZSceneManager(scene).createPortal(portalName)
+ p = scene.createPortal(portalName)
p.setCorners(corners)
## associate the portal with the roomnode
p.setNode(roomNode)
@@ -554,7 +549,7 @@
corners[3] = self.points[24]
## create the portal
portalName = room.getName() + "_LeftDoorPortal"
- p = pcz.castAsPCZSceneManager(scene).createPortal(portalName)
+ p = scene.createPortal(portalName)
p.setCorners(corners)
## associate the portal with the roomnode
p.setNode(roomNode)
@@ -571,7 +566,7 @@
corners[3] = self.points[31]
## create the portal
portalName = room.getName() + "_RightDoorPortal"
- p = pcz.castAsPCZSceneManager(scene).createPortal(portalName)
+ p = scene.createPortal(portalName)
p.setCorners(corners)
## associate the portal with the roomnode
p.setNode(roomNode)
@@ -588,7 +583,7 @@
corners[3] = self.points[8]
## create the portal
portalName = room.getName() + "_FrontDoorPortal"
- p = pcz.castAsPCZSceneManager(scene).createPortal(portalName)
+ p = scene.createPortal(portalName)
p.setCorners(corners)
## associate the portal with the roomnode
p.setNode(roomNode)
@@ -605,7 +600,7 @@
corners[3] = self.points[15]
## create the portal
portalName = room.getName() + "_BackDoorPortal"
- p = pcz.castAsPCZSceneManager(scene).createPortal(portalName)
+ p = scene.createPortal(portalName)
p.setCorners(corners)
## associate the portal with the roomnode
p.setNode(roomNode)
@@ -622,7 +617,7 @@
corners[3] = self.points[16]
## create the portal
portalName = room.getName() + "_TopDoorPortal"
- p = pcz.castAsPCZSceneManager(scene).createPortal(portalName)
+ p = scene.createPortal(portalName)
p.setCorners(corners)
## associate the portal with the roomnode
p.setNode(roomNode)
@@ -639,7 +634,7 @@
corners[3] = self.points[23]
## create the portal
portalName = room.getName() + "_BottomDoorPortal"
- p = pcz.castAsPCZSceneManager(scene).createPortal(portalName)
+ p = scene.createPortal(portalName)
p.setCorners(corners)
## associate the portal with the roomnode
p.setNode(roomNode)
@@ -656,7 +651,7 @@
corners[3] = self.points[27]
## create the portal
portalName = room.getName() + "_LeftDoorPortal"
- p = pcz.castAsPCZSceneManager(scene).createPortal(portalName)
+ p = scene.createPortal(portalName)
p.setCorners(corners)
## associate the portal with the roomnode
p.setNode(roomNode)
@@ -673,7 +668,7 @@
corners[3] = self.points[28]
## create the portal
portalName = room.getName() + "_RightDoorPortal"
- p = pcz.castAsPCZSceneManager(scene).createPortal(portalName)
+ p = scene.createPortal(portalName)
p.setCorners(corners)
## associate the portal with the roomnode
p.setNode(roomNode)
@@ -681,4 +676,4 @@
zone._addPortal(p)
## update derived values for the portal
p.updateDerivedValues()
-
+
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|