Dictify Dungeon Rando options
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user