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)
## Map Shuffle myDict = {
key = "mapshuffle" ## Map Shuffle
self.widgets[key] = widgets.make_widget( "mapshuffle": {
self, "type": "checkbox",
"checkbox", "label": {
mcsbshuffleFrame, "text": "Maps"
"Maps", }
None },
) ## Compass Shuffle
self.widgets[key].pack(side=LEFT) "compassshuffle": {
"type": "checkbox",
## Compass Shuffle "label": {
key = "compassshuffle" "text": "Compasses"
self.widgets[key] = widgets.make_widget( }
self, },
"checkbox", ## Small Key Shuffle
mcsbshuffleFrame, "smallkeyshuffle": {
"Compasses", "type": "checkbox",
None "label": {
) "text": "Small Keys"
self.widgets[key].pack(side=LEFT) }
},
## Small Key Shuffle ## Big Key Shuffle
key = "smallkeyshuffle" "bigkeyshuffle": {
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
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"
} }
) }
self.widgets[key].pack(anchor=W)
# Experimental features dictWidgets = widgets.make_widgets_from_dict(self, myDict, mcsbshuffleFrame)
key = "experimental"
self.widgets[key] = widgets.make_widget( for key in dictWidgets:
self, self.widgets[key] = dictWidgets[key]
"checkbox", self.widgets[key].pack(side=LEFT)
self,
"Enable Experimental Features", myDict = {
None "dungeondoorshuffle": {
) "type": "selectbox",
self.widgets[key].pack(anchor=W) "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 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