diff --git a/gui/randomize/enemizer.py b/gui/randomize/enemizer.py index 73990baa..3a8dbd80 100644 --- a/gui/randomize/enemizer.py +++ b/gui/randomize/enemizer.py @@ -1,5 +1,5 @@ import os -from tkinter import ttk, filedialog, IntVar, StringVar, Button, Checkbutton, Entry, Frame, Label, LabelFrame, OptionMenu, N, E, W, LEFT, RIGHT, X +from tkinter import ttk, filedialog, IntVar, StringVar, Button, Checkbutton, Entry, Frame, Label, LabelFrame, OptionMenu, N, E, W, LEFT, RIGHT, BOTTOM, X import gui.widgets as widgets import json import os @@ -17,15 +17,28 @@ def enemizer_page(parent,settings): self.frames["checkboxes"] = Frame(self) self.frames["checkboxes"].pack(anchor=W) - with open(os.path.join("resources","app","gui","randomize","enemizer","checkboxes.json")) as checkboxes: - myDict = json.load(checkboxes) - dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["checkboxes"]) - for key in dictWidgets: - self.widgets[key] = dictWidgets[key] - self.widgets[key].pack(anchor=W) + self.frames["selectOptionsFrame"] = Frame(self) + self.frames["leftEnemizerFrame"] = Frame(self.frames["selectOptionsFrame"]) + self.frames["rightEnemizerFrame"] = Frame(self.frames["selectOptionsFrame"]) + self.frames["bottomEnemizerFrame"] = Frame(self) + self.frames["selectOptionsFrame"].pack(fill=X) + self.frames["leftEnemizerFrame"].pack(side=LEFT) + self.frames["rightEnemizerFrame"].pack(side=RIGHT) + self.frames["bottomEnemizerFrame"].pack(fill=X) + + with open(os.path.join("resources","app","gui","randomize","enemizer","widgets.json")) as widgetDefns: + myDict = json.load(widgetDefns) + for framename,theseWidgets in myDict.items(): + dictWidgets = widgets.make_widgets_from_dict(self, theseWidgets, self.frames[framename]) + for key in dictWidgets: + self.widgets[key] = dictWidgets[key] + packAttrs = {"anchor":E} + if self.widgets[key].type == "checkbox": + packAttrs["anchor"] = W + self.widgets[key].pack(packAttrs) ## Enemizer CLI Path - enemizerPathFrame = Frame(self) + enemizerPathFrame = Frame(self.frames["bottomEnemizerFrame"]) enemizerCLIlabel = Label(enemizerPathFrame, text="EnemizerCLI path: ") enemizerCLIlabel.pack(side=LEFT) self.enemizerCLIpathVar = StringVar(value=settings["enemizercli"]) @@ -40,23 +53,4 @@ def enemizer_page(parent,settings): enemizerCLIbrowseButton.pack(side=LEFT) enemizerPathFrame.pack(fill=X) - self.frames["leftEnemizerFrame"] = Frame(self) - self.frames["rightEnemizerFrame"] = Frame(self) - self.frames["leftEnemizerFrame"].pack(side=LEFT, anchor=N) - self.frames["rightEnemizerFrame"].pack(side=RIGHT, anchor=N) - - with open(os.path.join("resources","app","gui","randomize","enemizer","leftEnemizerFrame.json")) as leftEnemizerFrameItems: - myDict = json.load(leftEnemizerFrameItems) - dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["leftEnemizerFrame"]) - for key in dictWidgets: - self.widgets[key] = dictWidgets[key] - self.widgets[key].pack(anchor=E) - - with open(os.path.join("resources","app","gui","randomize","enemizer","rightEnemizerFrame.json")) as rightEnemizerFrameItems: - myDict = json.load(rightEnemizerFrameItems) - dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["rightEnemizerFrame"]) - for key in dictWidgets: - self.widgets[key] = dictWidgets[key] - self.widgets[key].pack(anchor=E) - return self,settings diff --git a/resources/app/gui/randomize/enemizer/checkboxes.json b/resources/app/gui/randomize/enemizer/checkboxes.json deleted file mode 100644 index 6f01079b..00000000 --- a/resources/app/gui/randomize/enemizer/checkboxes.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "potshuffle": { - "type": "checkbox", - "label": { - "text": "Pot Shuffle" - } - } -} diff --git a/resources/app/gui/randomize/enemizer/leftEnemizerFrame.json b/resources/app/gui/randomize/enemizer/leftEnemizerFrame.json deleted file mode 100644 index 0c54605d..00000000 --- a/resources/app/gui/randomize/enemizer/leftEnemizerFrame.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "enemyshuffle": { - "type": "selectbox", - "label": { - "text": "Enemy Shuffle" - }, - "managerAttrs": { - "label": { - "side": "left" - }, - "selectbox": { - "side": "right" - } - }, - "options": { - "Vanilla": "none", - "Shuffled": "shuffled", - "Chaos": "chaos" - } - }, - "bossshuffle": { - "type": "selectbox", - "label": { - "text": "Boss Shuffle" - }, - "managerAttrs": { - "label": { - "side": "left" - }, - "selectbox": { - "side": "right" - } - }, - "options": { - "Vanilla": "none", - "Basic": "basic", - "Shuffled": "shuffled", - "Chaos": "chaos" - } - } -} diff --git a/resources/app/gui/randomize/enemizer/rightEnemizerFrame.json b/resources/app/gui/randomize/enemizer/rightEnemizerFrame.json deleted file mode 100644 index 4e3629b6..00000000 --- a/resources/app/gui/randomize/enemizer/rightEnemizerFrame.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "enemydamage": { - "type": "selectbox", - "label": { - "text": "Enemy Damage" - }, - "managerAttrs": { - "label": { - "side": "left" - }, - "selectbox": { - "side": "right" - } - }, - "options": { - "Vanilla": "default", - "Shuffled": "shuffled", - "Chaos": "chaos" - } - }, - "enemyhealth": { - "type": "selectbox", - "label": { - "text": "Enemy Health" - }, - "managerAttrs": { - "label": { - "side": "left" - }, - "selectbox": { - "side": "right" - } - }, - "options": { - "Vanilla": "default", - "Easy": "easy", - "Normal": "normal", - "Hard": "hard", - "Expert": "expert" - } - } -} diff --git a/resources/app/gui/randomize/enemizer/widgets.json b/resources/app/gui/randomize/enemizer/widgets.json new file mode 100644 index 00000000..4095ab5b --- /dev/null +++ b/resources/app/gui/randomize/enemizer/widgets.json @@ -0,0 +1,93 @@ +{ + "checkboxes": { + "potshuffle": { + "type": "checkbox", + "label": { + "text": "Pot Shuffle" + } + } + }, + "leftEnemizerFrame": { + "enemyshuffle": { + "type": "selectbox", + "label": { + "text": "Enemy Shuffle" + }, + "managerAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + } + }, + "options": { + "Vanilla": "none", + "Shuffled": "shuffled", + "Chaos": "chaos" + } + }, + "bossshuffle": { + "type": "selectbox", + "label": { + "text": "Boss Shuffle" + }, + "managerAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + } + }, + "options": { + "Vanilla": "none", + "Basic": "basic", + "Shuffled": "shuffled", + "Chaos": "chaos" + } + } + }, + "rightEnemizerFrame": { + "enemydamage": { + "type": "selectbox", + "label": { + "text": "Enemy Damage" + }, + "managerAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + } + }, + "options": { + "Vanilla": "default", + "Shuffled": "shuffled", + "Chaos": "chaos" + } + }, + "enemyhealth": { + "type": "selectbox", + "label": { + "text": "Enemy Health" + }, + "managerAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + } + }, + "options": { + "Vanilla": "default", + "Easy": "easy", + "Normal": "normal", + "Hard": "hard", + "Expert": "expert" + } + } + } +} \ No newline at end of file