From a4052ffee8bc7c6c8a69eba5120b5c6c2d951b0f Mon Sep 17 00:00:00 2001 From: Leonardo Bishop Date: Tue, 12 Mar 2024 19:18:52 +0000 Subject: Add items --- components/base/ItemStack/ItemStackModal.vue | 19 ++++++- components/base/ItemStack/ItemStackPicker.vue | 3 +- components/editor/EditorSidebar.vue | 16 +++++- components/editor/EditorSidebarItem.vue | 66 ++++++++++++++++++++++ .../editor/task/EditorTaskConfigurationRow.vue | 2 +- components/header/PageHeader.vue | 56 ++++++++++++++++++ data/questItemDefinitions.json | 52 +++++++++++++++++ data/testData.json | 9 +++ layouts/editor.vue | 4 +- lib/questsLoader.ts | 12 ++++ pages/category/[id].vue | 53 +---------------- pages/item/[id].vue | 52 +++++++++++++++++ pages/quest/[id].vue | 57 ++----------------- stores/session.ts | 57 ++++++++++++++----- 14 files changed, 334 insertions(+), 124 deletions(-) create mode 100644 components/editor/EditorSidebarItem.vue create mode 100644 components/header/PageHeader.vue create mode 100644 data/questItemDefinitions.json create mode 100644 pages/item/[id].vue diff --git a/components/base/ItemStack/ItemStackModal.vue b/components/base/ItemStack/ItemStackModal.vue index 7cf4db9..865c054 100644 --- a/components/base/ItemStack/ItemStackModal.vue +++ b/components/base/ItemStack/ItemStackModal.vue @@ -3,12 +3,11 @@ import { computed, ref } from 'vue'; import materials from '@/lib/materials'; const model = defineModel(); - const emit = defineEmits(['confirm']); - const props = defineProps<{ value: any }>(); +const session = useSessionStore(); //TODO unshitify const value = ref(props.value); @@ -42,6 +41,17 @@ const selectedType = ref( const noTypeSelected = computed(() => selectedType.value === ''); const noValue = computed(() => !isQuestItem.value && !isItemStack.value && !isMaterial.value); +const selectedQuestItem = computed({ + get() { + return value.value?.['quest-item']; + }, + set(newValue: string) { + value.value = {} + value.value['quest-item'] = newValue; + } +}) +const knownQuestItems = computed(() => { return session.session.items.map((item) => item.id) }); + const setSelectedType = (type: string) => { if (type === 'questitem') { value.value = {}; @@ -98,6 +108,11 @@ const confirm = () => { +
+ + +
diff --git a/components/base/ItemStack/ItemStackPicker.vue b/components/base/ItemStack/ItemStackPicker.vue index bb0b84d..2dc35d3 100644 --- a/components/base/ItemStack/ItemStackPicker.vue +++ b/components/base/ItemStack/ItemStackPicker.vue @@ -49,7 +49,8 @@ const update = (newValue: any) => {