Finish up most of the pattern editor except for copying
This commit is contained in:
@@ -41,10 +41,11 @@ class DmgPatternEditorDlg (wx.Dialog):
|
|||||||
self.choices = cDP.getDamagePatternList()
|
self.choices = cDP.getDamagePatternList()
|
||||||
self.choices.sort(key=lambda p: p.name)
|
self.choices.sort(key=lambda p: p.name)
|
||||||
self.ccDmgPattern = wx.Choice(self, choices=map(lambda p: p.name, self.choices))
|
self.ccDmgPattern = wx.Choice(self, choices=map(lambda p: p.name, self.choices))
|
||||||
|
self.ccDmgPattern.Bind(wx.EVT_CHOICE, self.patternChanged)
|
||||||
self.ccDmgPattern.SetSelection(0)
|
self.ccDmgPattern.SetSelection(0)
|
||||||
|
|
||||||
self.namePicker = wx.TextCtrl(self, style=wx.TE_PROCESS_ENTER)
|
self.namePicker = wx.TextCtrl(self, style=wx.TE_PROCESS_ENTER)
|
||||||
self.characterRename.Bind(wx.EVT_TEXT_ENTER, self.processRename)
|
self.namePicker.Bind(wx.EVT_TEXT_ENTER, self.processRename)
|
||||||
self.namePicker.Hide()
|
self.namePicker.Hide()
|
||||||
|
|
||||||
self.btnSave = wx.Button(self, wx.ID_SAVE)
|
self.btnSave = wx.Button(self, wx.ID_SAVE)
|
||||||
@@ -93,8 +94,8 @@ class DmgPatternEditorDlg (wx.Dialog):
|
|||||||
width = -1
|
width = -1
|
||||||
defSize = wx.Size(width,-1)
|
defSize = wx.Size(width,-1)
|
||||||
|
|
||||||
self.editEM = IntCtrl(self, wx.ID_ANY, 0, wx.DefaultPosition, defSize, wx.TE_RIGHT)
|
self.editEm = IntCtrl(self, wx.ID_ANY, 0, wx.DefaultPosition, defSize, wx.TE_RIGHT)
|
||||||
dmgeditSizer.Add(self.editEM, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
|
dmgeditSizer.Add(self.editEm, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
|
||||||
|
|
||||||
self.bmpEM = wx.StaticBitmap(self, wx.ID_ANY, self.embitmap)
|
self.bmpEM = wx.StaticBitmap(self, wx.ID_ANY, self.embitmap)
|
||||||
dmgeditSizer.Add(self.bmpEM, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)
|
dmgeditSizer.Add(self.bmpEM, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)
|
||||||
@@ -102,11 +103,11 @@ class DmgPatternEditorDlg (wx.Dialog):
|
|||||||
self.bmpTHERM = wx.StaticBitmap(self, wx.ID_ANY, self.thermbitmap)
|
self.bmpTHERM = wx.StaticBitmap(self, wx.ID_ANY, self.thermbitmap)
|
||||||
dmgeditSizer.Add(self.bmpTHERM, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5)
|
dmgeditSizer.Add(self.bmpTHERM, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5)
|
||||||
|
|
||||||
self.editTHERM = IntCtrl(self, wx.ID_ANY, 0, wx.DefaultPosition, defSize, 0)
|
self.editThermal = IntCtrl(self, wx.ID_ANY, 0, wx.DefaultPosition, defSize, 0)
|
||||||
dmgeditSizer.Add(self.editTHERM, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
|
dmgeditSizer.Add(self.editThermal, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
|
||||||
|
|
||||||
self.editKIN = IntCtrl(self, wx.ID_ANY, 0, wx.DefaultPosition, defSize, wx.TE_RIGHT)
|
self.editKinetic = IntCtrl(self, wx.ID_ANY, 0, wx.DefaultPosition, defSize, wx.TE_RIGHT)
|
||||||
dmgeditSizer.Add(self.editKIN, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
|
dmgeditSizer.Add(self.editKinetic, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
|
||||||
|
|
||||||
self.bmpKIN = wx.StaticBitmap(self, wx.ID_ANY, self.kinbitmap)
|
self.bmpKIN = wx.StaticBitmap(self, wx.ID_ANY, self.kinbitmap)
|
||||||
dmgeditSizer.Add(self.bmpKIN, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)
|
dmgeditSizer.Add(self.bmpKIN, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)
|
||||||
@@ -114,8 +115,8 @@ class DmgPatternEditorDlg (wx.Dialog):
|
|||||||
self.bmpEXP = wx.StaticBitmap(self, wx.ID_ANY, self.expbitmap)
|
self.bmpEXP = wx.StaticBitmap(self, wx.ID_ANY, self.expbitmap)
|
||||||
dmgeditSizer.Add(self.bmpEXP, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5)
|
dmgeditSizer.Add(self.bmpEXP, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5)
|
||||||
|
|
||||||
self.editEXP = IntCtrl(self, wx.ID_ANY, 0, wx.DefaultPosition, defSize, 0)
|
self.editExplosive = IntCtrl(self, wx.ID_ANY, 0, wx.DefaultPosition, defSize, 0)
|
||||||
dmgeditSizer.Add(self.editEXP, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
|
dmgeditSizer.Add(self.editExplosive, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
|
||||||
|
|
||||||
contentSizer.Add(dmgeditSizer, 1, wx.EXPAND | wx.ALL, 5)
|
contentSizer.Add(dmgeditSizer, 1, wx.EXPAND | wx.ALL, 5)
|
||||||
self.slfooter = wx.StaticLine(self)
|
self.slfooter = wx.StaticLine(self)
|
||||||
@@ -147,25 +148,24 @@ class DmgPatternEditorDlg (wx.Dialog):
|
|||||||
|
|
||||||
|
|
||||||
self.Layout()
|
self.Layout()
|
||||||
self.ValuesUpdated()
|
|
||||||
bsize = self.GetBestSize()
|
bsize = self.GetBestSize()
|
||||||
self.SetSize((-1,bsize.height))
|
self.SetSize((-1,bsize.height))
|
||||||
|
|
||||||
self.editEM.SetLimited(True)
|
self.editEm.SetLimited(True)
|
||||||
self.editTHERM.SetLimited(True)
|
self.editThermal.SetLimited(True)
|
||||||
self.editKIN.SetLimited(True)
|
self.editKinetic.SetLimited(True)
|
||||||
self.editEXP.SetLimited(True)
|
self.editExplosive.SetLimited(True)
|
||||||
|
|
||||||
|
|
||||||
self.editEM.SetMin(0)
|
self.editEm.SetMin(0)
|
||||||
self.editTHERM.SetMin(0)
|
self.editThermal.SetMin(0)
|
||||||
self.editKIN.SetMin(0)
|
self.editKinetic.SetMin(0)
|
||||||
self.editEXP.SetMin(0)
|
self.editExplosive.SetMin(0)
|
||||||
|
|
||||||
self.editEM.SetMax(99999)
|
self.editEm.SetMax(99999)
|
||||||
self.editTHERM.SetMax(99999)
|
self.editThermal.SetMax(99999)
|
||||||
self.editKIN.SetMax(99999)
|
self.editKinetic.SetMax(99999)
|
||||||
self.editEXP.SetMax(99999)
|
self.editExplosive.SetMax(99999)
|
||||||
|
|
||||||
|
|
||||||
self.new.Bind(wx.EVT_BUTTON, self.newPattern)
|
self.new.Bind(wx.EVT_BUTTON, self.newPattern)
|
||||||
@@ -173,19 +173,22 @@ class DmgPatternEditorDlg (wx.Dialog):
|
|||||||
self.delete.Bind(wx.EVT_BUTTON, self.deletePattern)
|
self.delete.Bind(wx.EVT_BUTTON, self.deletePattern)
|
||||||
self.copy.Bind(wx.EVT_BUTTON, self.copyPattern)
|
self.copy.Bind(wx.EVT_BUTTON, self.copyPattern)
|
||||||
|
|
||||||
self.editEM.Bind(wx.EVT_TEXT, self.ValuesUpdated)
|
self.editEm.Bind(wx.EVT_TEXT, self.ValuesUpdated)
|
||||||
self.editTHERM.Bind(wx.EVT_TEXT, self.ValuesUpdated)
|
self.editThermal.Bind(wx.EVT_TEXT, self.ValuesUpdated)
|
||||||
self.editKIN.Bind(wx.EVT_TEXT, self.ValuesUpdated)
|
self.editKinetic.Bind(wx.EVT_TEXT, self.ValuesUpdated)
|
||||||
self.editEXP.Bind(wx.EVT_TEXT, self.ValuesUpdated)
|
self.editExplosive.Bind(wx.EVT_TEXT, self.ValuesUpdated)
|
||||||
|
|
||||||
if self.choices[0].name == "Uniform":
|
self.patternChanged()
|
||||||
self.restrict()
|
|
||||||
|
|
||||||
def ValuesUpdated(self, event=None):
|
def ValuesUpdated(self, event=None):
|
||||||
self._EM = self.editEM.GetValue()
|
if self.block:
|
||||||
self._THERM = self.editTHERM.GetValue()
|
return
|
||||||
self._KIN = self.editKIN.GetValue()
|
|
||||||
self._EXP = self.editEXP.GetValue()
|
p = self.getActivePattern()
|
||||||
|
p.emAmount = self._EM = self.editEm.GetValue()
|
||||||
|
p.thermalAmount = self._THERM = self.editThermal.GetValue()
|
||||||
|
p.kineticAmount = self._KIN = self.editKinetic.GetValue()
|
||||||
|
p.explosiveAmount = self._EXP = self.editExplosive.GetValue()
|
||||||
total = self._EM + self._THERM + self._KIN + self._EXP
|
total = self._EM + self._THERM + self._KIN + self._EXP
|
||||||
format = "EM: % 3d%% THERM: % 3d%% KIN: % 3d%% EXP: % 3d%%"
|
format = "EM: % 3d%% THERM: % 3d%% KIN: % 3d%% EXP: % 3d%%"
|
||||||
if total > 0:
|
if total > 0:
|
||||||
@@ -201,25 +204,42 @@ class DmgPatternEditorDlg (wx.Dialog):
|
|||||||
if event is not None:
|
if event is not None:
|
||||||
event.Skip()
|
event.Skip()
|
||||||
|
|
||||||
|
service.DamagePattern.getInstance().saveChanges(p)
|
||||||
|
|
||||||
def restrict(self):
|
def restrict(self):
|
||||||
self.editEM.Enable(False)
|
self.editEm.Enable(False)
|
||||||
self.editEXP.Enable(False)
|
self.editExplosive.Enable(False)
|
||||||
self.editKIN.Enable(False)
|
self.editKinetic.Enable(False)
|
||||||
self.editTHERM.Enable(False)
|
self.editThermal.Enable(False)
|
||||||
self.rename.Enable(False)
|
self.rename.Enable(False)
|
||||||
self.delete.Enable(False)
|
self.delete.Enable(False)
|
||||||
|
|
||||||
def unrestrict(self):
|
def unrestrict(self):
|
||||||
self.editEM.Enable()
|
self.editEm.Enable()
|
||||||
self.editEXP.Enable()
|
self.editExplosive.Enable()
|
||||||
self.editKIN.Enable()
|
self.editKinetic.Enable()
|
||||||
self.editTHERM.Enable()
|
self.editThermal.Enable()
|
||||||
self.rename.Enable()
|
self.rename.Enable()
|
||||||
self.delete.Enable()
|
self.delete.Enable()
|
||||||
|
|
||||||
def getActivePattern(self):
|
def getActivePattern(self):
|
||||||
return self.choices[self.ccDmgPattern.GetSelection()]
|
return self.choices[self.ccDmgPattern.GetSelection()]
|
||||||
|
|
||||||
|
def patternChanged(self, event=None):
|
||||||
|
p = self.getActivePattern()
|
||||||
|
if p.name == "Uniform":
|
||||||
|
self.restrict()
|
||||||
|
else:
|
||||||
|
self.unrestrict()
|
||||||
|
|
||||||
|
self.block = True
|
||||||
|
for field in ("em", "thermal", "kinetic", "explosive"):
|
||||||
|
edit = getattr(self, "edit%s" % field.capitalize())
|
||||||
|
amount = getattr(p, "%sAmount" % field)
|
||||||
|
edit.SetValue(amount)
|
||||||
|
|
||||||
|
self.block = False
|
||||||
|
|
||||||
def newPattern(self,event):
|
def newPattern(self,event):
|
||||||
cDP = service.DamagePattern.getInstance()
|
cDP = service.DamagePattern.getInstance()
|
||||||
p = cDP.newPattern()
|
p = cDP.newPattern()
|
||||||
@@ -228,6 +248,7 @@ class DmgPatternEditorDlg (wx.Dialog):
|
|||||||
self.ccDmgPattern.SetSelection(id)
|
self.ccDmgPattern.SetSelection(id)
|
||||||
self.btnSave.SetLabel("Create")
|
self.btnSave.SetLabel("Create")
|
||||||
self.renamePattern()
|
self.renamePattern()
|
||||||
|
self.patternChanged()
|
||||||
|
|
||||||
def renamePattern(self,event=None):
|
def renamePattern(self,event=None):
|
||||||
if event is not None:
|
if event is not None:
|
||||||
@@ -237,6 +258,7 @@ class DmgPatternEditorDlg (wx.Dialog):
|
|||||||
self.namePicker.Show()
|
self.namePicker.Show()
|
||||||
self.headerSizer.Replace(self.ccDmgPattern, self.namePicker)
|
self.headerSizer.Replace(self.ccDmgPattern, self.namePicker)
|
||||||
self.namePicker.SetFocus()
|
self.namePicker.SetFocus()
|
||||||
|
self.namePicker.SetValue(self.getActivePattern().name)
|
||||||
|
|
||||||
for btn in (self.new, self.rename, self.delete, self.copy):
|
for btn in (self.new, self.rename, self.delete, self.copy):
|
||||||
btn.Hide()
|
btn.Hide()
|
||||||
@@ -248,7 +270,8 @@ class DmgPatternEditorDlg (wx.Dialog):
|
|||||||
|
|
||||||
def processRename(self, event):
|
def processRename(self, event):
|
||||||
cDP = service.DamagePattern.getInstance()
|
cDP = service.DamagePattern.getInstance()
|
||||||
cDP.renamePattern(self.getActivePattern(), self.namePicker.GetLineText(0))
|
newName = self.namePicker.GetLineText(0)
|
||||||
|
cDP.renamePattern(self.getActivePattern(), newName)
|
||||||
|
|
||||||
self.headerSizer.Replace(self.namePicker, self.ccDmgPattern)
|
self.headerSizer.Replace(self.namePicker, self.ccDmgPattern)
|
||||||
self.ccDmgPattern.Show()
|
self.ccDmgPattern.Show()
|
||||||
@@ -259,12 +282,22 @@ class DmgPatternEditorDlg (wx.Dialog):
|
|||||||
self.headerSizer.Add(btn, 0, wx.ALIGN_CENTER_VERTICAL)
|
self.headerSizer.Add(btn, 0, wx.ALIGN_CENTER_VERTICAL)
|
||||||
btn.Show()
|
btn.Show()
|
||||||
|
|
||||||
|
sel = self.ccDmgPattern.GetSelection()
|
||||||
|
self.ccDmgPattern.Delete(sel)
|
||||||
|
self.ccDmgPattern.Insert(newName, sel)
|
||||||
|
self.ccDmgPattern.SetSelection(sel)
|
||||||
|
|
||||||
def copyPattern(self,event):
|
def copyPattern(self,event):
|
||||||
event.Skip()
|
event.Skip()
|
||||||
|
|
||||||
def deletePattern(self,event):
|
def deletePattern(self,event):
|
||||||
event.Skip()
|
cDP = service.DamagePattern.getInstance()
|
||||||
|
sel = self.ccDmgPattern.GetSelection()
|
||||||
|
cDP.deletePattern(self.getActivePattern())
|
||||||
|
self.ccDmgPattern.Delete(sel)
|
||||||
|
self.ccDmgPattern.SetSelection(max(0, sel - 1))
|
||||||
|
del self.choices[sel]
|
||||||
|
self.patternChanged()
|
||||||
|
|
||||||
def __del__( self ):
|
def __del__( self ):
|
||||||
pass
|
pass
|
||||||
|
|||||||
@@ -54,3 +54,9 @@ class DamagePattern():
|
|||||||
def renamePattern(self, p, newName):
|
def renamePattern(self, p, newName):
|
||||||
p.name = newName
|
p.name = newName
|
||||||
eos.db.save(p)
|
eos.db.save(p)
|
||||||
|
|
||||||
|
def deletePattern(self, p):
|
||||||
|
eos.db.remove(p)
|
||||||
|
|
||||||
|
def saveChanges(self, p):
|
||||||
|
eos.db.save(p)
|
||||||
|
|||||||
Reference in New Issue
Block a user