Made gridSize option to be saved, reloaded
This commit is contained in:
parent
7984eecde7
commit
d1f459cf1d
|
|
@ -14,6 +14,10 @@ class LevelEditor(LevelEditorBase):
|
|||
""" Class for Panda3D LevelEditor """
|
||||
def __init__(self):
|
||||
LevelEditorBase.__init__(self)
|
||||
|
||||
# define your own config file similar to this
|
||||
self.settingsFile = os.path.dirname(__file__) + '/LevelEditor.cfg'
|
||||
|
||||
# If you have your own ObjectPalette and ObjectHandler
|
||||
# connect them in your own LevelEditor class
|
||||
self.objectPalette = ObjectPalette()
|
||||
|
|
|
|||
|
|
@ -23,6 +23,9 @@ class LevelEditorBase(DirectObject):
|
|||
self.actionEvents = []
|
||||
self.objectMgr = ObjectMgr(self)
|
||||
self.fileMgr = FileMgr(self)
|
||||
|
||||
# define your own config file in inherited class
|
||||
self.settingsFile = None
|
||||
|
||||
def initialize(self):
|
||||
""" You should call this in your __init__ method of inherited LevelEditor class """
|
||||
|
|
@ -85,6 +88,8 @@ class LevelEditorBase(DirectObject):
|
|||
else:
|
||||
self.accept(event[0], event[1])
|
||||
|
||||
self.loadSettings()
|
||||
|
||||
def removeNodePathHook(self, nodePath):
|
||||
if nodePath is None:
|
||||
return
|
||||
|
|
@ -142,3 +147,37 @@ class LevelEditorBase(DirectObject):
|
|||
self.reset()
|
||||
self.fileMgr.loadFromFile(fileName)
|
||||
self.currentFile = fileName
|
||||
|
||||
def saveSettings(self):
|
||||
if self.settingsFile is None:
|
||||
return
|
||||
|
||||
try:
|
||||
f = open(self.settingsFile, 'w')
|
||||
f.write('gridSize %f\n'%self.ui.perspView.grid.gridSize)
|
||||
f.write('gridSpacing %f\n'%self.ui.perspView.grid.gridSpacing)
|
||||
f.close()
|
||||
except:
|
||||
pass
|
||||
|
||||
def loadSettings(self):
|
||||
if self.settingsFile is None:
|
||||
return
|
||||
|
||||
try:
|
||||
f = open(self.settingsFile, 'r')
|
||||
configLines = f.readlines()
|
||||
f.close()
|
||||
|
||||
gridSize = 100.0
|
||||
gridSpacing = 5.0
|
||||
for line in configLines:
|
||||
if line.startswith('gridSize'):
|
||||
gridSize = float(line.split()[1])
|
||||
elif line.startswith('gridSpacing'):
|
||||
gridSpacing = float(line.split()[1])
|
||||
|
||||
self.ui.updateGrids(gridSize, gridSpacing)
|
||||
except:
|
||||
pass
|
||||
|
||||
|
|
|
|||
|
|
@ -177,6 +177,26 @@ class LevelEditorUI(WxAppShell):
|
|||
gridSizeUI.ShowModal()
|
||||
gridSizeUI.Destroy()
|
||||
|
||||
def onDestroy(self, evt):
|
||||
self.editor.saveSettings()
|
||||
|
||||
def updateGrids(self, newSize, newSpacing):
|
||||
self.perspView.grid.gridSize = newSize
|
||||
self.perspView.grid.gridSpacing = newSpacing
|
||||
self.perspView.grid.updateGrid()
|
||||
|
||||
self.topView.grid.gridSize = newSize
|
||||
self.topView.grid.gridSpacing = newSpacing
|
||||
self.topView.grid.updateGrid()
|
||||
|
||||
self.frontView.grid.gridSize = newSize
|
||||
self.frontView.grid.gridSpacing = newSpacing
|
||||
self.frontView.grid.updateGrid()
|
||||
|
||||
self.leftView.grid.gridSize = newSize
|
||||
self.leftView.grid.gridSpacing = newSpacing
|
||||
self.leftView.grid.updateGrid()
|
||||
|
||||
class GridSizeUI(wx.Dialog):
|
||||
def __init__(self, parent, id, title, gridSize, gridSpacing):
|
||||
wx.Dialog.__init__(self, parent, id, title, size=(250, 240))
|
||||
|
|
@ -209,21 +229,5 @@ class GridSizeUI(wx.Dialog):
|
|||
def onApply(self, evt):
|
||||
newSize = self.gridSizeSlider.GetValue()
|
||||
newSpacing = self.gridSpacingSlider.GetValue()
|
||||
|
||||
self.parent.perspView.grid.gridSize = newSize
|
||||
self.parent.perspView.grid.gridSpacing = newSpacing
|
||||
self.parent.perspView.grid.updateGrid()
|
||||
|
||||
self.parent.topView.grid.gridSize = newSize
|
||||
self.parent.topView.grid.gridSpacing = newSpacing
|
||||
self.parent.topView.grid.updateGrid()
|
||||
|
||||
self.parent.frontView.grid.gridSize = newSize
|
||||
self.parent.frontView.grid.gridSpacing = newSpacing
|
||||
self.parent.frontView.grid.updateGrid()
|
||||
|
||||
self.parent.leftView.grid.gridSize = newSize
|
||||
self.parent.leftView.grid.gridSpacing = newSpacing
|
||||
self.parent.leftView.grid.updateGrid()
|
||||
|
||||
self.parent.updateGrids(newSize, newSpacing)
|
||||
self.Destroy()
|
||||
|
|
|
|||
Loading…
Reference in New Issue