More work on the character editor, the skill browser mostly works now

This commit is contained in:
cncfanatics
2010-09-06 10:31:23 +02:00
parent 37c5554945
commit 41ffd048ac
6 changed files with 76 additions and 11 deletions

View File

@@ -1,3 +1,4 @@
from controller.market import Market
from controller.fit import Fit
from controller.attribute import Attribute
from controller.character import Character

View File

@@ -18,6 +18,7 @@
#===============================================================================
import eos.db
import eos.types
class Character():
instance = None
@@ -29,4 +30,18 @@ class Character():
return cls.instance
def getCharacterList(self):
map(lambda c: c.name, eos.db.getCharacterList())
baseChars = [eos.types.Character.getAll0(), eos.types.Character.getAll5()]
# Flush incase all0 & all5 weren't in the db yet
eos.db.saveddata_session.flush()
return map(lambda c: (c.ID, c.name), eos.db.getCharacterList())
def getSkillGroups(self):
marketGroup = eos.db.getMarketGroup(150)
return map(lambda mg: (mg.ID, mg.name), marketGroup.children)
def getSkills(self, groupID):
marketGroup = eos.db.getMarketGroup(groupID)
skills = []
for skill in marketGroup.items:
skills.append((skill.ID, skill.name))
return skills

2
eos

Submodule eos updated: b557bb7ec5...bd22e5b149

View File

@@ -19,6 +19,7 @@
import wx
from gui import bitmapLoader
import controller
class CharacterEditor (wx.Dialog):
def __init__(self, parent):
@@ -30,7 +31,16 @@ class CharacterEditor (wx.Dialog):
mainSizer = wx.BoxSizer(wx.VERTICAL)
navSizer = wx.BoxSizer(wx.HORIZONTAL)
self.skillTreeChoice = wx.Choice(self, wx.ID_ANY)
cChar = controller.Character.getInstance()
charList = cChar.getCharacterList()
choices = []
self.charIDs = []
for ID, name in charList:
choices.append(name)
self.charIDs.append(ID)
self.skillTreeChoice = wx.Choice(self, wx.ID_ANY, choices=choices)
navSizer.Add(self.skillTreeChoice, 1, wx.ALL | wx.EXPAND, 5)
buttons = (("new", wx.ART_NEW),
@@ -57,13 +67,13 @@ class CharacterEditor (wx.Dialog):
self.viewsNBContainer = wx.Notebook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0)
sview = SkillTreeView(self.viewsNBContainer)
iview = ImplantsTreeView(self.viewsNBContainer)
aview = APIView(self.viewsNBContainer)
self.sview = SkillTreeView(self.viewsNBContainer)
self.iview = ImplantsTreeView(self.viewsNBContainer)
self.aview = APIView(self.viewsNBContainer)
self.viewsNBContainer.AddPage(sview, "Skills")
self.viewsNBContainer.AddPage(iview, "Implants")
self.viewsNBContainer.AddPage(aview, "API")
self.viewsNBContainer.AddPage(self.sview, "Skills")
self.viewsNBContainer.AddPage(self.iview, "Implants")
self.viewsNBContainer.AddPage(self.aview, "API")
mainSizer.Add(self.viewsNBContainer, 1, wx.EXPAND | wx.ALL, 5)
@@ -94,10 +104,14 @@ class CharacterEditor (wx.Dialog):
def registerEvents(self):
self.Bind(wx.EVT_CLOSE, self.closeEvent)
self.skillTreeChoice.Bind(wx.EVT_CHOICE, self.charChanged)
def closeEvent(self, event):
pass
def charChanged(self, event):
pass
class NewCharacter (wx.Dialog):
def __init__(self, parent):
wx.Dialog.__init__ (self, parent, id=wx.ID_ANY, title=u"Create new character", pos=wx.DefaultPosition, size=wx.Size(344, 89), style=wx.DEFAULT_DIALOG_STYLE)
@@ -133,12 +147,48 @@ class SkillTreeView (wx.Panel):
pmainSizer = wx.BoxSizer(wx.VERTICAL)
self.SkillTreeCtrl = wx.TreeCtrl(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TR_DEFAULT_STYLE)
self.SkillTreeCtrl = wx.TreeCtrl(self, wx.ID_ANY, style=wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT)
pmainSizer.Add(self.SkillTreeCtrl, 1, wx.EXPAND | wx.ALL, 5)
self.root = self.SkillTreeCtrl.AddRoot("Skills")
self.imageList = wx.ImageList(16, 16)
self.SkillTreeCtrl.SetImageList(self.imageList)
self.skillBookImageId = self.imageList.Add(bitmapLoader.getBitmap("skill_small", "icons"))
self.populateSkillTree()
self.SkillTreeCtrl.Bind(wx.EVT_TREE_ITEM_EXPANDING, self.expandLookup)
self.SetSizer(pmainSizer)
self.Layout()
def populateSkillTree(self):
cChar = controller.Character.getInstance()
groups = cChar.getSkillGroups()
imageId = self.skillBookImageId
root = self.root
tree = self.SkillTreeCtrl
for id, name in groups:
childId = tree.AppendItem(root, name, imageId, data=wx.TreeItemData(id))
tree.AppendItem(childId, "dummy")
self.SkillTreeCtrl.SortChildren(root)
def expandLookup(self, event):
root = event.Item
child, cookie = self.SkillTreeCtrl.GetFirstChild(root)
if self.SkillTreeCtrl.GetItemText(child) == "dummy":
self.SkillTreeCtrl.Delete(child)
#Get the real intrestin' stuff
cChar = controller.Character.getInstance()
for id, name in cChar.getSkills(self.SkillTreeCtrl.GetPyData(root)):
iconId = self.skillBookImageId
self.SkillTreeCtrl.AppendItem(root, name, iconId, data=wx.TreeItemData(id))
self.SkillTreeCtrl.SortChildren(root)
class ImplantsTreeView (wx.Panel):
def __init__(self, parent):
wx.Panel.__init__ (self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.Size(500, 300), style=wx.TAB_TRAVERSAL)

View File

@@ -21,7 +21,6 @@ import wx
from gui import bitmapLoader
from gui.mainMenuBar import MainMenuBar
from gui.additionsPane import AdditionsPane
from gui.mainToolBar import MainToolBar
from gui.marketBrowser import MarketBrowser
from gui.multiSwitch import MultiSwitch
from gui.statsPane import StatsPane

BIN
icons/skill_small.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B