From 6134cf70582762b8ac3d8b2b3af673895fe1a442 Mon Sep 17 00:00:00 2001 From: "Mike A. Trethewey" Date: Sat, 22 Feb 2020 00:54:35 -0800 Subject: [PATCH] Condense Item Rando options --- gui/randomize/item.py | 29 +- .../app/gui/randomize/item/checkboxes.json | 8 - .../app/gui/randomize/item/leftItemFrame.json | 132 --------- .../gui/randomize/item/rightItemFrame.json | 124 -------- resources/app/gui/randomize/item/widgets.json | 266 ++++++++++++++++++ 5 files changed, 276 insertions(+), 283 deletions(-) delete mode 100644 resources/app/gui/randomize/item/checkboxes.json delete mode 100644 resources/app/gui/randomize/item/leftItemFrame.json delete mode 100644 resources/app/gui/randomize/item/rightItemFrame.json create mode 100644 resources/app/gui/randomize/item/widgets.json diff --git a/gui/randomize/item.py b/gui/randomize/item.py index 57609b1d..f962d574 100644 --- a/gui/randomize/item.py +++ b/gui/randomize/item.py @@ -15,30 +15,21 @@ def item_page(parent): self.frames["checkboxes"] = Frame(self) self.frames["checkboxes"].pack(anchor=W) - with open(os.path.join("resources","app","gui","randomize","item","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["leftItemFrame"] = Frame(self) self.frames["rightItemFrame"] = Frame(self) self.frames["leftItemFrame"].pack(side=LEFT) self.frames["rightItemFrame"].pack(side=RIGHT) - with open(os.path.join("resources","app","gui","randomize","item","leftItemFrame.json")) as leftItemFrameItems: - myDict = json.load(leftItemFrameItems) - dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["leftItemFrame"]) - for key in dictWidgets: - self.widgets[key] = dictWidgets[key] - self.widgets[key].pack(anchor=E) - - with open(os.path.join("resources","app","gui","randomize","item","rightItemFrame.json")) as rightItemFrameItems: - myDict = json.load(rightItemFrameItems) - dictWidgets = widgets.make_widgets_from_dict(self, myDict, self.frames["rightItemFrame"]) - for key in dictWidgets: - self.widgets[key] = dictWidgets[key] - self.widgets[key].pack(anchor=E) + with open(os.path.join("resources","app","gui","randomize","item","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) return self diff --git a/resources/app/gui/randomize/item/checkboxes.json b/resources/app/gui/randomize/item/checkboxes.json deleted file mode 100644 index e75b2daf..00000000 --- a/resources/app/gui/randomize/item/checkboxes.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "retro": { - "type": "checkbox", - "label": { - "text": "Retro mode (universal keys)" - } - } -} diff --git a/resources/app/gui/randomize/item/leftItemFrame.json b/resources/app/gui/randomize/item/leftItemFrame.json deleted file mode 100644 index 85e8eed0..00000000 --- a/resources/app/gui/randomize/item/leftItemFrame.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "worldstate": { - "type": "selectbox", - "label": { - "text": "World State" - }, - "managerAttrs": { - "label": { - "side": "left" - }, - "selectbox": { - "side": "right" - }, - "default": "Open" - }, - "options": { - "Standard": "standard", - "Open": "open", - "Inverted": "inverted" - } - }, - "logiclevel": { - "type": "selectbox", - "label": { - "text": "Logic Level" - }, - "managerAttrs": { - "label": { - "side": "left" - }, - "selectbox": { - "side": "right" - } - }, - "options": { - "No Glitches": "noglitches", - "Minor Glitches": "minorglitches", - "No Logic": "nologic" - } - }, - "goal": { - "type": "selectbox", - "label": { - "text": "Goal" - }, - "managerAttrs": { - "label": { - "side": "left" - }, - "selectbox": { - "side": "right" - } - }, - "options": { - "Defeat Ganon": "ganon", - "Master Sword Pedestal": "pedestal", - "All Dungeons": "dungeons", - "Triforce Hunt": "triforcehunt", - "Crystals": "crystals" - } - }, - "crystals_gt": { - "type": "selectbox", - "label": { - "text": "Crystals to open GT" - }, - "managerAttrs": { - "label": { - "side": "left" - }, - "selectbox": { - "side": "right" - } - }, - "options": { - "0": "0", - "1": "1", - "2": "2", - "3": "3", - "4": "4", - "5": "5", - "6": "6", - "7": "7", - "Random": "random" - } - }, - "crystals_ganon": { - "type": "selectbox", - "label": { - "text": "Crystals to harm Ganon" - }, - "managerAttrs": { - "label": { - "side": "left" - }, - "selectbox": { - "side": "right" - } - }, - "options": { - "0": "0", - "1": "1", - "2": "2", - "3": "3", - "4": "4", - "5": "5", - "6": "6", - "7": "7", - "Random": "random" - } - }, - "weapons": { - "type": "selectbox", - "label": { - "text": "Weapons" - }, - "managerAttrs": { - "label": { - "side": "left" - }, - "selectbox": { - "side": "right" - } - }, - "options": { - "Randomized": "random", - "Assured": "assured", - "Swordless": "swordless", - "Vanilla": "vanilla" - } - } -} diff --git a/resources/app/gui/randomize/item/rightItemFrame.json b/resources/app/gui/randomize/item/rightItemFrame.json deleted file mode 100644 index 0a1b6fff..00000000 --- a/resources/app/gui/randomize/item/rightItemFrame.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "itempool": { - "type": "selectbox", - "label": { - "text": "Item Pool" - }, - "managerAttrs": { - "label": { - "side": "left" - }, - "selectbox": { - "side": "right" - } - }, - "options": { - "Normal": "normal", - "Hard": "hard", - "Expert": "expert" - } - }, - "itemfunction": { - "type": "selectbox", - "label": { - "text": "Item Functionality" - }, - "managerAttrs": { - "label": { - "side": "left" - }, - "selectbox": { - "side": "right" - } - }, - "options": { - "Normal": "normal", - "Hard": "hard", - "Expert": "expert" - } - }, - "timer": { - "type": "selectbox", - "label": { - "text": "Timer Setting" - }, - "managerAttrs": { - "label": { - "side": "left" - }, - "selectbox": { - "side": "right" - } - }, - "options": { - "No Timer": "none", - "Stopwatch": "display", - "Timed": "timed", - "Timed OHKO": "timed-ohko", - "OHKO": "ohko", - "Timed Countdown": "timed-countdown" - } - }, - "progressives": { - "type": "selectbox", - "label": { - "text": "Progressive Items" - }, - "managerAttrs": { - "label": { - "side": "left" - }, - "selectbox": { - "side": "right" - } - }, - "options": { - "On": "on", - "Off": "off", - "Random": "random" - } - }, - "accessibility": { - "type": "selectbox", - "label": { - "text": "Accessibility" - }, - "managerAttrs": { - "label": { - "side": "left" - }, - "selectbox": { - "side": "right" - } - }, - "options": { - "100% Inventory": "items", - "100% Locations": "locations", - "Beatable": "none" - } - }, - "sortingalgo": { - "type": "selectbox", - "label": { - "text": "Item Sorting" - }, - "managerAttrs": { - "label": { - "side": "left" - }, - "selectbox": { - "side": "right" - }, - "default": "Balanced" - }, - "options": { - "Freshness": "freshness", - "Flood": "flood", - "VT8.21": "vt21", - "VT8.22": "vt22", - "VT8.25": "vt25", - "VT8.26": "vt26", - "Balanced": "balanced" - } - } -} diff --git a/resources/app/gui/randomize/item/widgets.json b/resources/app/gui/randomize/item/widgets.json new file mode 100644 index 00000000..0c427418 --- /dev/null +++ b/resources/app/gui/randomize/item/widgets.json @@ -0,0 +1,266 @@ +{ + "checkboxes": { + "retro": { + "type": "checkbox", + "label": { + "text": "Retro mode (universal keys)" + } + } + }, + "leftItemFrame": { + "worldstate": { + "type": "selectbox", + "label": { + "text": "World State" + }, + "managerAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + }, + "default": "Open" + }, + "options": { + "Standard": "standard", + "Open": "open", + "Inverted": "inverted" + } + }, + "logiclevel": { + "type": "selectbox", + "label": { + "text": "Logic Level" + }, + "managerAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + } + }, + "options": { + "No Glitches": "noglitches", + "Minor Glitches": "minorglitches", + "No Logic": "nologic" + } + }, + "goal": { + "type": "selectbox", + "label": { + "text": "Goal" + }, + "managerAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + } + }, + "options": { + "Defeat Ganon": "ganon", + "Master Sword Pedestal": "pedestal", + "All Dungeons": "dungeons", + "Triforce Hunt": "triforcehunt", + "Crystals": "crystals" + } + }, + "crystals_gt": { + "type": "selectbox", + "label": { + "text": "Crystals to open GT" + }, + "managerAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + } + }, + "options": { + "0": "0", + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7", + "Random": "random" + } + }, + "crystals_ganon": { + "type": "selectbox", + "label": { + "text": "Crystals to harm Ganon" + }, + "managerAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + } + }, + "options": { + "0": "0", + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7", + "Random": "random" + } + }, + "weapons": { + "type": "selectbox", + "label": { + "text": "Weapons" + }, + "managerAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + } + }, + "options": { + "Randomized": "random", + "Assured": "assured", + "Swordless": "swordless", + "Vanilla": "vanilla" + } + } + }, + "rightItemFrame": { + "itempool": { + "type": "selectbox", + "label": { + "text": "Item Pool" + }, + "managerAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + } + }, + "options": { + "Normal": "normal", + "Hard": "hard", + "Expert": "expert" + } + }, + "itemfunction": { + "type": "selectbox", + "label": { + "text": "Item Functionality" + }, + "managerAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + } + }, + "options": { + "Normal": "normal", + "Hard": "hard", + "Expert": "expert" + } + }, + "timer": { + "type": "selectbox", + "label": { + "text": "Timer Setting" + }, + "managerAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + } + }, + "options": { + "No Timer": "none", + "Stopwatch": "display", + "Timed": "timed", + "Timed OHKO": "timed-ohko", + "OHKO": "ohko", + "Timed Countdown": "timed-countdown" + } + }, + "progressives": { + "type": "selectbox", + "label": { + "text": "Progressive Items" + }, + "managerAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + } + }, + "options": { + "On": "on", + "Off": "off", + "Random": "random" + } + }, + "accessibility": { + "type": "selectbox", + "label": { + "text": "Accessibility" + }, + "managerAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + } + }, + "options": { + "100% Inventory": "items", + "100% Locations": "locations", + "Beatable": "none" + } + }, + "sortingalgo": { + "type": "selectbox", + "label": { + "text": "Item Sorting" + }, + "managerAttrs": { + "label": { + "side": "left" + }, + "selectbox": { + "side": "right" + }, + "default": "Balanced" + }, + "options": { + "Freshness": "freshness", + "Flood": "flood", + "VT8.21": "vt21", + "VT8.22": "vt22", + "VT8.25": "vt25", + "VT8.26": "vt26", + "Balanced": "balanced" + } + } + } +}