*** empty log message ***

This commit is contained in:
Joe Shochet 2001-09-17 17:12:13 +00:00
parent 7eea241bdb
commit d80d57919a
1 changed files with 58 additions and 15 deletions

View File

@ -237,6 +237,7 @@ except NameError:
# Precompute class types for type comparisons
DNA_CORNICE = DNACornice.getClassType()
DNA_DOOR = DNADoor.getClassType()
DNA_FLAT_DOOR = DNAFlatDoor.getClassType()
DNA_FLAT_BUILDING = DNAFlatBuilding.getClassType()
DNA_NODE = DNANode.getClassType()
DNA_GROUP = DNAGroup.getClassType()
@ -1460,7 +1461,7 @@ class LevelEditor(NodePath, PandaObject):
newDNALandmarkBuilding.setCode(landmarkType)
newDNALandmarkBuilding.setPos(VBase3(0))
newDNALandmarkBuilding.setHpr(VBase3(0))
newDNADoor = self.createDoor()
newDNADoor = self.createDoor('landmark_door')
newDNALandmarkBuilding.add(newDNADoor)
# Now place new landmark building in the world
self.initDNANode(newDNALandmarkBuilding)
@ -1498,12 +1499,15 @@ class LevelEditor(NodePath, PandaObject):
newDNACornice.setColor(self.getCurrent('cornice_color'))
return newDNACornice
def createDoor(self):
def createDoor(self, type):
if not (self.getCurrent('door_texture')):
doorStyles = self.styleManager.attributeDictionary['door_texture'].getList()[:-1]
defaultDoorStyle = doorStyles[randint(0, len(doorStyles) - 1)]
self.setCurrent('door_texture', defaultDoorStyle)
newDNADoor = DNADoor('door')
if (type == 'landmark_door'):
newDNADoor = DNADoor('door')
elif (type == 'door'):
newDNADoor = DNAFlatDoor('door')
newDNADoor.setCode(self.getCurrent('door_texture'))
newDNADoor.setColor(self.getCurrent('door_color'))
return newDNADoor
@ -1562,7 +1566,7 @@ class LevelEditor(NodePath, PandaObject):
def removeDoor(self, door, parent):
self.setCurrent('door_color', door.getColor())
DNARemoveChildOfClass(parent, DNA_DOOR)
DNARemoveChildOfClass(parent, DNA_FLAT_DOOR)
def removeWindows(self, windows, parent):
# And record number of windows
@ -1601,7 +1605,7 @@ class LevelEditor(NodePath, PandaObject):
self.DNATarget = wall
self.DNATargetParent = dnaObject
elif string.find(menuMode,'door') >= 0:
self.DNATarget = DNAGetChildOfClass(wall, DNA_DOOR)
self.DNATarget = DNAGetChildOfClass(wall, DNA_FLAT_DOOR)
self.DNATargetParent = wall
elif string.find(menuMode, 'window') >= 0:
self.DNATarget = DNAGetChildOfClass(wall, DNA_WINDOWS)
@ -1753,8 +1757,6 @@ class LevelEditor(NodePath, PandaObject):
menuMode = 'door_orientation'
else:
menuMode = 'door_texture'
# MRM: Temp for now
menuMode = 'window_texture'
else:
# Do window operations
if direct.fControl:
@ -1776,6 +1778,7 @@ class LevelEditor(NodePath, PandaObject):
if ((objClass.eq(DNA_WALL)) or
(objClass.eq(DNA_WINDOWS)) or
(objClass.eq(DNA_DOOR)) or
(objClass.eq(DNA_FLAT_DOOR)) or
(objClass.eq(DNA_CORNICE)) or
(objClass.eq(DNA_PROP))
):
@ -1813,9 +1816,9 @@ class LevelEditor(NodePath, PandaObject):
elif (type == 'sign'):
self.DNATarget = self.createSign()
elif (type == 'landmark_door'):
self.DNATarget = self.createDoor()
self.DNATarget = self.createDoor('landmark_door')
elif (type == 'door'):
self.DNATarget = self.createDoor()
self.DNATarget = self.createDoor('door')
elif (type == 'windows'):
# Make sure window_count n.e. 0
if self.getCurrent('window_count') == 0:
@ -1881,6 +1884,7 @@ class LevelEditor(NodePath, PandaObject):
if ((objClass.eq(DNA_WALL)) or
(objClass.eq(DNA_WINDOWS)) or
(objClass.eq(DNA_DOOR)) or
(objClass.eq(DNA_FLAT_DOOR)) or
(objClass.eq(DNA_CORNICE)) or
(objClass.eq(DNA_PROP)) or
(objClass.eq(DNA_SIGN)) or
@ -2458,6 +2462,8 @@ class LevelEditor(NodePath, PandaObject):
tag = 'window_color:'
elif classType.eq(DNA_DOOR):
tag = 'door_color:'
elif classType.eq(DNA_FLAT_DOOR):
tag = 'door_color:'
elif classType.eq(DNA_CORNICE):
tag = 'cornice_color:'
elif classType.eq(DNA_PROP):
@ -2718,7 +2724,7 @@ class LevelEditor(NodePath, PandaObject):
marker.setColor(0,0,1)
marker.setScale(0.5)
elif (type == DNASuitPoint.SIDEDOORPOINT):
marker.setColor(0,0.2,0.4)
marker.setColor(0,0.6,0.2)
marker.setScale(0.5)
# Highlight if necessary
if suitPoint in self.visitedPoints:
@ -2747,6 +2753,7 @@ class LevelEditor(NodePath, PandaObject):
# Make a new dna edge
if DNAClassEqual(self.DNAParent, DNA_VIS_GROUP):
zoneId = self.DNAParent.getName()
suitEdge = DNASuitEdge(
self.startSuitPoint, self.endSuitPoint, zoneId)
DNASTORE.storeSuitEdge(suitEdge)
@ -2763,7 +2770,28 @@ class LevelEditor(NodePath, PandaObject):
self.point2edgeDict[point].append(suitEdge)
else:
self.point2edgeDict[point] = [suitEdge]
# If this is a building point, you need edges in both directions
# so just make the other edge automatically
if ((self.startSuitPoint.getPointType() == DNASuitPoint.FRONTDOORPOINT)
or (self.startSuitPoint.getPointType() == DNASuitPoint.SIDEDOORPOINT)):
suitEdge = DNASuitEdge(
self.endSuitPoint, self.startSuitPoint, zoneId)
DNASTORE.storeSuitEdge(suitEdge)
# Add edge to the current vis group so it can be written out
self.DNAParent.addSuitEdge(suitEdge)
# Draw a line to represent the edge
edgeLine = self.drawSuitEdge(suitEdge, self.NPParent)
# Store the line in a dict so we can hide/show them
self.edgeDict[suitEdge] = edgeLine
for point in [self.startSuitPoint, self.endSuitPoint]:
if self.point2edgeDict.has_key(point):
self.point2edgeDict[point].append(suitEdge)
else:
self.point2edgeDict[point] = [suitEdge]
print 'Added dnaSuitEdge to zone: ' + zoneId
else:
print 'Error: DNAParent is not a dnaVisGroup. Did not add edge'
@ -2822,7 +2850,7 @@ class LevelEditor(NodePath, PandaObject):
elif (type == DNASuitPoint.FRONTDOORPOINT):
marker.setColor(0,0,1)
elif (type == DNASuitPoint.SIDEDOORPOINT):
marker.setColor(0,0.2,0.4)
marker.setColor(0,0.6,0.2)
for edge in self.edgeDict.values():
edge.clearColor()
self.visitedPoints = []
@ -3014,6 +3042,9 @@ class LevelEditor(NodePath, PandaObject):
block=block[2:block.find(':')]
print ("associate point with building: " + str(block))
self.selectedSuitPoint.setLandmarkBuildingIndex(int(block))
marker = self.pointDict[self.selectedSuitPoint]
marker.setColor(1,0,0,1)
marker.setScale(1.0)
def findHighestLandmarkBlock(self, dnaRoot, npRoot):
npc=npRoot.findAllMatches("**/*:toon_landmark_*")
@ -3111,7 +3142,8 @@ class LevelEditor(NodePath, PandaObject):
# Get the suit point for this lb
for point, marker in self.pointDict.items():
if (point.getPointType() == DNASuitPoint.FRONTDOORPOINT):
if ((point.getPointType() == DNASuitPoint.FRONTDOORPOINT)
or (point.getPointType() == DNASuitPoint.SIDEDOORPOINT)):
lbIndex = point.getLandmarkBuildingIndex()
if (lbIndex == int(block)):
marker.setColor(1,0,0,1)
@ -3129,6 +3161,9 @@ class LevelEditor(NodePath, PandaObject):
if (point.getPointType() == DNASuitPoint.FRONTDOORPOINT):
marker.setColor(0,0,1,1)
marker.setScale(0.5)
elif (point.getPointType() == DNASuitPoint.SIDEDOORPOINT):
marker.setColor(0,0.6,0.2,1)
marker.setScale(0.5)
self.showLandmarkBlockToggleGroup=None
def pdbBreak(self):
@ -3670,7 +3705,7 @@ class LevelStyleManager:
windows.add(awning)
# Add a door if necessary
if style['door_texture']:
door = DNADoor()
door = DNAFlatDoor()
# Set the door's attributes
door.setCode(style['door_texture'])
door.setColor(style['door_color'])
@ -3715,7 +3750,11 @@ class LevelStyleManager:
color = child.getColor()
print ('door_color: Vec4(%.3f, %.3f, %.3f, 1.0)' %
(color[0], color[1], color[2]))
# MRM: Check for awnings here
elif DNAClassEqual(child, DNA_FLAT_DOOR):
print 'door_texture: ' + child.getCode()
color = child.getColor()
print ('door_color: Vec4(%.3f, %.3f, %.3f, 1.0)' %
(color[0], color[1], color[2]))
elif DNAClassEqual(child, DNA_CORNICE):
print 'cornice_texture: ' + child.getCode()
color = child.getColor()
@ -4325,6 +4364,9 @@ class DNAWallStyle:
elif DNAClassEqual(child, DNA_DOOR):
self.door_texture = child.getCode()
self.door_color = child.getColor()
elif DNAClassEqual(child, DNA_FLAT_DOOR):
self.door_texture = child.getCode()
self.door_color = child.getColor()
# MRM: Check for awnings here
elif DNAClassEqual(child, DNA_CORNICE):
self.cornice_texture = child.getCode()
@ -5454,6 +5496,7 @@ class LevelEditorPanel(Pmw.MegaToplevel):
if ((objClass.eq(DNA_WALL)) or
(objClass.eq(DNA_WINDOWS)) or
(objClass.eq(DNA_DOOR)) or
(objClass.eq(DNA_FLAT_DOOR)) or
(objClass.eq(DNA_CORNICE)) or
(objClass.eq(DNA_PROP)) or
(objClass.eq(DNA_SIGN)) or