Dictify Dungeon Rando options

This commit is contained in:
Mike A. Trethewey
2020-02-15 06:55:10 -08:00
parent 20396e4798
commit bba2058a5b
2 changed files with 80 additions and 69 deletions

View File

@@ -14,76 +14,73 @@ def dungeon_page(parent):
mscbLabel = Label(mcsbshuffleFrame, text="Shuffle: ") mscbLabel = Label(mcsbshuffleFrame, text="Shuffle: ")
mscbLabel.pack(side=LEFT) mscbLabel.pack(side=LEFT)
myDict = {
## Map Shuffle ## Map Shuffle
key = "mapshuffle" "mapshuffle": {
self.widgets[key] = widgets.make_widget( "type": "checkbox",
self, "label": {
"checkbox", "text": "Maps"
mcsbshuffleFrame, }
"Maps", },
None
)
self.widgets[key].pack(side=LEFT)
## Compass Shuffle ## Compass Shuffle
key = "compassshuffle" "compassshuffle": {
self.widgets[key] = widgets.make_widget( "type": "checkbox",
self, "label": {
"checkbox", "text": "Compasses"
mcsbshuffleFrame, }
"Compasses", },
None
)
self.widgets[key].pack(side=LEFT)
## Small Key Shuffle ## Small Key Shuffle
key = "smallkeyshuffle" "smallkeyshuffle": {
self.widgets[key] = widgets.make_widget( "type": "checkbox",
self, "label": {
"checkbox", "text": "Small Keys"
mcsbshuffleFrame, }
"Small Keys", },
None
)
self.widgets[key].pack(side=LEFT)
## Big Key Shuffle ## Big Key Shuffle
key = "bigkeyshuffle" "bigkeyshuffle": {
self.widgets[key] = widgets.make_widget( "type": "checkbox",
self, "label": {
"checkbox", "text": "Small Keys"
mcsbshuffleFrame, }
"Big Keys", }
None }
)
dictWidgets = widgets.make_widgets_from_dict(self, myDict, mcsbshuffleFrame)
for key in dictWidgets:
self.widgets[key] = dictWidgets[key]
self.widgets[key].pack(side=LEFT) self.widgets[key].pack(side=LEFT)
## Dungeon Door Shuffle myDict = {
key = "dungeondoorshuffle" "dungeondoorshuffle": {
self.widgets[key] = widgets.make_widget( "type": "selectbox",
self, "label": {
"selectbox", "text": "Dungeon Door Shuffle"
self, },
"Dungeon Door Shuffle", "packAttrs": {
None, "label": { "side": LEFT },
{"label": {"side": LEFT}, "selectbox": {"side": RIGHT}, "default": "Basic"}, "selectbox": {"side": RIGHT},
{ "default": "Basic"
},
"options": {
"Vanilla": "vanilla", "Vanilla": "vanilla",
"Basic": "basic", "Basic": "basic",
"Crossed": "crossed" "Crossed": "crossed"
} }
) },
self.widgets[key].pack(anchor=W) ## Experiemental features
"experimental": {
"type": "checkbox",
"label": {
"text": "Enable Experimental Features"
}
}
}
# Experimental features dictWidgets = widgets.make_widgets_from_dict(self, myDict, self)
key = "experimental"
self.widgets[key] = widgets.make_widget( for key in dictWidgets:
self, self.widgets[key] = dictWidgets[key]
"checkbox",
self,
"Enable Experimental Features",
None
)
self.widgets[key].pack(anchor=W) self.widgets[key].pack(anchor=W)
return self return self

View File

@@ -117,3 +117,17 @@ def make_widget(self, type, parent, label, storageVar=None, packAttrs=dict(), op
thisStorageVar = StringVar() thisStorageVar = StringVar()
widget = make_textbox(self, parent, label, thisStorageVar, packAttrs) widget = make_textbox(self, parent, label, thisStorageVar, packAttrs)
return widget 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