diff --git a/direct/src/leveleditor/LevelEditor.py b/direct/src/leveleditor/LevelEditor.py index e4cfbcf4ff..b29adc4a74 100644 --- a/direct/src/leveleditor/LevelEditor.py +++ b/direct/src/leveleditor/LevelEditor.py @@ -463,8 +463,8 @@ class LevelEditor(NodePath, PandaObject): self.accept('createNewLevelGroup', self.createNewLevelGroup) self.accept('setNodePathName', self.setNodePathName) self.accept('manipulateObjectCleanup', self.updateSelectedPose) - #self.accept('SGESelectNodePath', self.selectNodePath) - self.accept('SGESelectNodePath', self.flashNodePath) + self.accept('SGESelectNodePath', self.selectNodePath) + #self.accept('SGESelectNodePath', self.flashNodePath) self.accept('SGEFlashNodePath', self.flashNodePath) self.accept('SGEIsolateNodePath', self.isolateNodePath) self.accept('SGEToggle VizNodePath', self.toggleNodePathViz) @@ -671,8 +671,7 @@ class LevelEditor(NodePath, PandaObject): self.direct.select(dnaRoot) def getDNARoot(self, aNodePath): - if ((aNodePath.node() == render.node()) | - (aNodePath.node() == hidden.node())): + if not aNodePath.hasParent(): return 0 name = aNodePath.getName() if (name[-8:] == '_DNARoot'): @@ -1757,8 +1756,6 @@ class LevelEditor(NodePath, PandaObject): def addFlatBuilding(self, buildingType): # Create new building newDNAFlatBuilding = DNAFlatBuilding(buildingType + '_DNARoot') - newDNAFlatBuilding = DNAFlatBuilding(buildingType) - # Select walls if buildingType == 'random20': selectedType = self.selectBuildingType('twenty') @@ -1766,7 +1763,6 @@ class LevelEditor(NodePath, PandaObject): selectedType = self.selectBuildingType('thirty') else: selectedType = buildingType - if selectedType == 'toonTenTen': self.setBuildingHeight(20.0) newDNAFlatBuilding.add(self.createWall(10.0)) @@ -1795,21 +1791,17 @@ class LevelEditor(NodePath, PandaObject): newDNAFlatBuilding.add(self.createWall(10.0)) elif selectedType == 'toonThirty': newDNAFlatBuilding.add(self.createWall(30.0)) - # Pick a style for this building self.setRandomBuildingStyle(newDNAFlatBuilding) - # Initialize its position and hpr newDNAFlatBuilding.setPos(VBase3(0)) newDNAFlatBuilding.setHpr(VBase3(0)) - # Now place new building in the world self.addDNAGroupTypeMethod(newDNAFlatBuilding,buildingType, self.addFlatBuilding) def addLandmark(self, landmarkType): newDNALandmarkBuilding = DNALandmarkBuilding(landmarkType + '_DNARoot') - newDNALandmarkBuilding = DNALandmarkBuilding(landmarkType) newDNALandmarkBuilding.setCode(self.getDNACode(landmarkType)) newDNALandmarkBuilding.setPos(VBase3(0)) newDNALandmarkBuilding.setHpr(VBase3(0)) @@ -1828,7 +1820,6 @@ class LevelEditor(NodePath, PandaObject): def addProp(self, newPropType): newDNAProp = DNAProp(newPropType + '_DNARoot') - newDNAProp = DNAProp(newPropType) newDNAProp.setCode(self.getDNACode(newPropType)) newDNAProp.setPos(VBase3(0)) newDNAProp.setHpr(VBase3(0)) @@ -1838,7 +1829,6 @@ class LevelEditor(NodePath, PandaObject): def addStreetModule(self, streetType): newDNAStreet = DNAStreet(streetType + '_DNARoot') - newDNAStreet = DNAStreet(streetType) newDNAStreet.setCode(self.getDNACode(streetType)) newDNAStreet.setPos(VBase3(0)) newDNAStreet.setHpr(VBase3(0)) @@ -2534,6 +2524,8 @@ class LevelEditor(NodePath, PandaObject): if not(groupClass.eq(DNAGroup.getClassType())): dnaGroup.setPos(aNodePath.getPos()) dnaGroup.setHpr(aNodePath.getHpr()) + if (groupClass.eq(DNAProp.getClassType())): + dnaGroup.setScale(aNodePath.getScale()) def updateDoorTextureNum(self, doorTextureNumber): self.updateObjDoorTexture(self.targetDNAObject, doorTextureNumber) @@ -3255,6 +3247,8 @@ class LevelEditorPanel(Pmw.MegaToplevel): self.levelEditor.addLandmark(self.landmarkType) def setPropType(self,name): + import pdb + pdb.set_trace() self.propType = 'prop_' + name def addProp(self): @@ -3278,6 +3272,11 @@ class LevelEditorPanel(Pmw.MegaToplevel): int(colorVec[1] * 255.0), int(colorVec[2] * 255.0), 255]) + self.colorEntry['resetValue'] = ( + [int(colorVec[0] * 255.0), + int(colorVec[1] * 255.0), + int(colorVec[2] * 255.0), + 255]) def updateSelectedObjColor(self, color): obj = self.levelEditor.targetDNAObject diff --git a/direct/src/leveleditor/PieMenu.py b/direct/src/leveleditor/PieMenu.py index 638ce4e4ad..18044c2660 100644 --- a/direct/src/leveleditor/PieMenu.py +++ b/direct/src/leveleditor/PieMenu.py @@ -8,8 +8,9 @@ class PieMenu(NodePath, PandaObject): self.assign(hidden.attachNewNode(NamedNode('PieMenu'))) # Attach the menu self.menu = menu - # Try to flatten the menu - menu.flattenStrong() + # Try to flatten the menu (note, flattenStrong is too strong + # for texture text + menu.flattenMedium() self.menu.reparentTo(self) # Initialize instance variables self.direct = direct diff --git a/direct/src/tkwidgets/VectorWidgets.py b/direct/src/tkwidgets/VectorWidgets.py index 73c0be9c54..4f3c65aac8 100644 --- a/direct/src/tkwidgets/VectorWidgets.py +++ b/direct/src/tkwidgets/VectorWidgets.py @@ -21,6 +21,7 @@ class VectorEntry(Pmw.MegaWidget): optiondefs = ( ('dim', DEFAULT_DIM, INITOPT), ('initialValue', DEFAULT_VALUE, INITOPT), + ('resetValue', DEFAULT_VALUE, None), ('label_width', 12, None), ('command', None, None), ('entryWidth', 8, self._updateEntryWidth), @@ -40,6 +41,7 @@ class VectorEntry(Pmw.MegaWidget): # Initialize value # Make sure its a list (and as a byproduct, make a distinct copy) self._value = list(self['initialValue']) + self['resetValue'] = self['initialValue'] self._floaters = None self.entryFormat = '%.2f' @@ -211,7 +213,7 @@ class VectorEntry(Pmw.MegaWidget): self['command'](self._value) def reset(self): - self.set(self['initialValue']) + self.set(self['resetValue']) def addMenuItem(self, label = '', command = None): self.menu.add_command(label = label, command = command)