def enterMode( self, modeName, forceUpdate = 0 ): #print "enterMode - current %s, new %s, terrainMode %s" % (self.modeName, modeName, self.terrainModeName ) if (self.modeName == modeName) and (not forceUpdate): return t = WorldEditor.tool() oldTool = t if t != None and modeName != "Object": if self.itemTool.functor.script.selection.size: self.itemTool.functor.script.selection.rem( self.itemTool.functor.script.selection ) self.itemTool.functor.script.selUpdate() WorldEditor.popTool() # Remove the project or height module if we're coming out of project or height mode if self.modeName in ("Project", "Height"): self.modeStack.pop() self.modeName = self.modeStack[ len( self.modeStack ) - 1 ] WorldEditor.pop() if ( modeName == "TerrainTexture" ): WorldEditor.pushTool( self.alphaTool ) self.terrainModeName = modeName elif ( modeName == "TerrainHeight" ): WorldEditor.pushTool( self.heightTool ) self.terrainModeName = modeName elif ( modeName == "TerrainFilter" ): WorldEditor.pushTool( self.filterTool ) self.terrainModeName = modeName elif ( modeName == "TerrainHoleCut" ): WorldEditor.pushTool( self.holeTool ) self.terrainModeName = modeName elif ( modeName == "Terrain" ): self.modeName = modeName self.enterMode( self.terrainModeName ) self.modeStack.append( modeName ) return elif ( modeName == "Object" ): WorldEditor.pushTool( self.itemTool ) self.modeStack.append( modeName ) elif ( modeName == "Project" ): WorldEditor.push( "ProjectModule" ) self.modeStack.append( modeName ) elif ( modeName == "Height" ): WorldEditor.push( "HeightModule" ) self.modeStack.append( modeName ) else: WorldEditor.addCommentaryMsg( "%s mode not yet implemented" % modeName, 1 ) self.enterChunkVizMode() WorldEditor.addCommentaryMsg( "entered " + modeName + " mode" ) self.modeName = modeName newTool = WorldEditor.tool() if oldTool != None and oldTool != newTool: oldTool.endUsing() if newTool != None: newTool.beginUsing()