Dictify Dungeon Rando options
This commit is contained in:
@@ -14,76 +14,73 @@ def dungeon_page(parent):
|
||||
mscbLabel = Label(mcsbshuffleFrame, text="Shuffle: ")
|
||||
mscbLabel.pack(side=LEFT)
|
||||
|
||||
## Map Shuffle
|
||||
key = "mapshuffle"
|
||||
self.widgets[key] = widgets.make_widget(
|
||||
self,
|
||||
"checkbox",
|
||||
mcsbshuffleFrame,
|
||||
"Maps",
|
||||
None
|
||||
)
|
||||
self.widgets[key].pack(side=LEFT)
|
||||
|
||||
## Compass Shuffle
|
||||
key = "compassshuffle"
|
||||
self.widgets[key] = widgets.make_widget(
|
||||
self,
|
||||
"checkbox",
|
||||
mcsbshuffleFrame,
|
||||
"Compasses",
|
||||
None
|
||||
)
|
||||
self.widgets[key].pack(side=LEFT)
|
||||
|
||||
## Small Key Shuffle
|
||||
key = "smallkeyshuffle"
|
||||
self.widgets[key] = widgets.make_widget(
|
||||
self,
|
||||
"checkbox",
|
||||
mcsbshuffleFrame,
|
||||
"Small Keys",
|
||||
None
|
||||
)
|
||||
self.widgets[key].pack(side=LEFT)
|
||||
|
||||
## Big Key Shuffle
|
||||
key = "bigkeyshuffle"
|
||||
self.widgets[key] = widgets.make_widget(
|
||||
self,
|
||||
"checkbox",
|
||||
mcsbshuffleFrame,
|
||||
"Big Keys",
|
||||
None
|
||||
)
|
||||
self.widgets[key].pack(side=LEFT)
|
||||
|
||||
## Dungeon Door Shuffle
|
||||
key = "dungeondoorshuffle"
|
||||
self.widgets[key] = widgets.make_widget(
|
||||
self,
|
||||
"selectbox",
|
||||
self,
|
||||
"Dungeon Door Shuffle",
|
||||
None,
|
||||
{"label": {"side": LEFT}, "selectbox": {"side": RIGHT}, "default": "Basic"},
|
||||
{
|
||||
"Vanilla": "vanilla",
|
||||
"Basic": "basic",
|
||||
"Crossed": "crossed"
|
||||
myDict = {
|
||||
## Map Shuffle
|
||||
"mapshuffle": {
|
||||
"type": "checkbox",
|
||||
"label": {
|
||||
"text": "Maps"
|
||||
}
|
||||
},
|
||||
## Compass Shuffle
|
||||
"compassshuffle": {
|
||||
"type": "checkbox",
|
||||
"label": {
|
||||
"text": "Compasses"
|
||||
}
|
||||
},
|
||||
## Small Key Shuffle
|
||||
"smallkeyshuffle": {
|
||||
"type": "checkbox",
|
||||
"label": {
|
||||
"text": "Small Keys"
|
||||
}
|
||||
},
|
||||
## Big Key Shuffle
|
||||
"bigkeyshuffle": {
|
||||
"type": "checkbox",
|
||||
"label": {
|
||||
"text": "Small Keys"
|
||||
}
|
||||
}
|
||||
)
|
||||
self.widgets[key].pack(anchor=W)
|
||||
}
|
||||
|
||||
# Experimental features
|
||||
key = "experimental"
|
||||
self.widgets[key] = widgets.make_widget(
|
||||
self,
|
||||
"checkbox",
|
||||
self,
|
||||
"Enable Experimental Features",
|
||||
None
|
||||
)
|
||||
self.widgets[key].pack(anchor=W)
|
||||
dictWidgets = widgets.make_widgets_from_dict(self, myDict, mcsbshuffleFrame)
|
||||
|
||||
for key in dictWidgets:
|
||||
self.widgets[key] = dictWidgets[key]
|
||||
self.widgets[key].pack(side=LEFT)
|
||||
|
||||
myDict = {
|
||||
"dungeondoorshuffle": {
|
||||
"type": "selectbox",
|
||||
"label": {
|
||||
"text": "Dungeon Door Shuffle"
|
||||
},
|
||||
"packAttrs": {
|
||||
"label": { "side": LEFT },
|
||||
"selectbox": {"side": RIGHT},
|
||||
"default": "Basic"
|
||||
},
|
||||
"options": {
|
||||
"Vanilla": "vanilla",
|
||||
"Basic": "basic",
|
||||
"Crossed": "crossed"
|
||||
}
|
||||
},
|
||||
## Experiemental features
|
||||
"experimental": {
|
||||
"type": "checkbox",
|
||||
"label": {
|
||||
"text": "Enable Experimental Features"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dictWidgets = widgets.make_widgets_from_dict(self, myDict, self)
|
||||
|
||||
for key in dictWidgets:
|
||||
self.widgets[key] = dictWidgets[key]
|
||||
self.widgets[key].pack(anchor=W)
|
||||
|
||||
return self
|
||||
|
||||
@@ -117,3 +117,17 @@ def make_widget(self, type, parent, label, storageVar=None, packAttrs=dict(), op
|
||||
thisStorageVar = StringVar()
|
||||
widget = make_textbox(self, parent, label, thisStorageVar, packAttrs)
|
||||
return widget
|
||||
|
||||
def make_widget_from_dict(self, defn, parent):
|
||||
type = defn["type"] if "type" in defn else None
|
||||
label = defn["label"]["text"] if "label" in defn and "text" in defn["label"] else ""
|
||||
packAttrs = defn["packAttrs"] if "packAttrs" in defn else None
|
||||
options = defn["options"] if "options" in defn else None
|
||||
widget = make_widget(self, type, parent, label, None, packAttrs, options)
|
||||
return widget
|
||||
|
||||
def make_widgets_from_dict(self, defns, parent):
|
||||
widgets = {}
|
||||
for key,defn in defns.items():
|
||||
widgets[key] = make_widget_from_dict(self, defn, parent)
|
||||
return widgets
|
||||
|
||||
Reference in New Issue
Block a user