From 0abc0e62d60156fd1602fd0044866af9488c1064 Mon Sep 17 00:00:00 2001 From: Kara Alexandra Date: Sat, 8 Mar 2025 20:46:14 -0600 Subject: [PATCH] Add preset dropdown --- src/components/PresetPicker.vue | 95 ++++++++++++++++++++++++++++++++ src/components/SettingPicker.vue | 5 ++ src/data/presets.yaml | 20 +++++++ src/views/GenerateView.vue | 22 ++++++++ 4 files changed, 142 insertions(+) create mode 100644 src/components/PresetPicker.vue create mode 100644 src/data/presets.yaml diff --git a/src/components/PresetPicker.vue b/src/components/PresetPicker.vue new file mode 100644 index 0000000..7400258 --- /dev/null +++ b/src/components/PresetPicker.vue @@ -0,0 +1,95 @@ + + + diff --git a/src/components/SettingPicker.vue b/src/components/SettingPicker.vue index 6ef6169..3d8d81b 100644 --- a/src/components/SettingPicker.vue +++ b/src/components/SettingPicker.vue @@ -20,6 +20,11 @@ export default defineComponent({ color: "primary", generator: null, }, + watch: { + modelValue(newValue, oldValue) { + this.selected = newValue; + }, + }, computed: { settings() { var generatorValue = generatorSettings[this.generator][this.name] diff --git a/src/data/presets.yaml b/src/data/presets.yaml new file mode 100644 index 0000000..76813ef --- /dev/null +++ b/src/data/presets.yaml @@ -0,0 +1,20 @@ +base: + default: + display: Default + boots: + display: Boots + boots: starting + crosskeys: + display: CrossKeys + goal: fast_ganon + entrance_shuffle: crossed + small_keys: wild + big_keys: wild + maps: wild + compasses: wild + boots: pseudoboots + super_quick: + display: Super Quick + weapons: assured + goal: fast_ganon + crystals_ganon: 0 diff --git a/src/views/GenerateView.vue b/src/views/GenerateView.vue index 5aa597f..27a6828 100644 --- a/src/views/GenerateView.vue +++ b/src/views/GenerateView.vue @@ -3,10 +3,12 @@ import { defineComponent } from "vue"; import axios from "axios"; +import PresetPicker from "@/components/PresetPicker.vue"; import SettingPicker from "@/components/SettingPicker.vue"; export default defineComponent({ components: { + PresetPicker, SettingPicker, }, data() { @@ -17,6 +19,14 @@ export default defineComponent({ mounted() { document.title = "ALttPRandomizer"; }, + watch: { + set: { + handler(newValue, oldValue) { + this.$refs.preset.settingChanged(newValue); + }, + deep: true, + } + }, methods: { async generate(race) { const settings = { @@ -35,6 +45,13 @@ export default defineComponent({ console.log(error); }); }, + presetSelected(preset) { + for (const setting of Object.keys(this.set)) { + if (preset[setting] != undefined) { + this.set[setting] = preset[setting]; + } + } + }, }, }); @@ -45,6 +62,11 @@ export default defineComponent({ Generate Seed