@@ -25,7 +28,11 @@
import ViewScoreStatus from '~/components/viewer/ViewScoreStatus.vue';
import { useViewerStore } from '~/composables/store/viewer';
-const { toggleBackpack, toggleSearch } = useViewerStore();
+const { toggleBackpack, toggleSearch, toggleProjectMenu } = useViewerStore();
-
+
diff --git a/components/viewer/modal/ViewProjectMenu.vue b/components/viewer/modal/ViewProjectMenu.vue
new file mode 100644
index 0000000..b01b1a1
--- /dev/null
+++ b/components/viewer/modal/ViewProjectMenu.vue
@@ -0,0 +1,76 @@
+
+
+
+
Default Files
+
+
+
+ Loading...
+
+
Loading ...
+
+
+
Load File
+
+
+
+
+
+
+
+
diff --git a/composables/store/project.ts b/composables/store/project.ts
index ac58e26..5761fdd 100644
--- a/composables/store/project.ts
+++ b/composables/store/project.ts
@@ -78,6 +78,7 @@ export const useProjectStore = defineStore('project', () => {
};
const unloadProject = () => {
project.value = null;
+ selected.value = {};
};
const setSelected = (id: string, isSelected: boolean) => {
diff --git a/composables/store/viewer.ts b/composables/store/viewer.ts
index 9d4128a..15f06c0 100644
--- a/composables/store/viewer.ts
+++ b/composables/store/viewer.ts
@@ -1,8 +1,37 @@
import { defineStore, storeToRefs } from 'pinia';
+import { ViewerProjectList } from '~/composables/viewer';
+
export const useViewerStore = defineStore('viewer', () => {
const isBackpackVisible = ref
(false);
const isSearchVisible = ref(false);
+ const isProjectMenuVisible = ref(false);
+
+ const viewerProjectList = ref({
+ items: [
+ {
+ remoteFileUrl:
+ 'https://raw.githubusercontent.com/ltouroumov/worm-cyoa-v6-fork/master/extract-v6.0.json',
+ title: "Worm V6.0 (Pixel's Version)",
+ },
+ {
+ remoteFileUrl:
+ 'https://raw.githubusercontent.com/ltouroumov/worm-cyoa-v6-fork/master/extract-v6.1.json',
+ title: "Worm V6.1 (Pixel's Version)",
+ },
+ {
+ remoteFileUrl:
+ 'https://raw.githubusercontent.com/ltouroumov/worm-cyoa-v6-fork/master/project-v17.json',
+ title: "Worm V6 (Lt's Fork)",
+ },
+ {
+ remoteFileUrl:
+ 'https://raw.githubusercontent.com/ltouroumov/pathfinder-cyoa/main/project-v0.json',
+ title: 'Pathfinder CYOA (WIP by Lt Ouroumov)',
+ },
+ // Add more projects...
+ ],
+ });
const toggleBackpack = (set?: boolean) => {
isBackpackVisible.value = set ?? !isBackpackVisible.value;
@@ -12,11 +41,18 @@ export const useViewerStore = defineStore('viewer', () => {
isSearchVisible.value = set ?? !isSearchVisible.value;
};
+ const toggleProjectMenu = (set?: boolean) => {
+ isProjectMenuVisible.value = set ?? !isProjectMenuVisible.value;
+ };
+
return {
isBackpackVisible,
isSearchVisible,
+ isProjectMenuVisible,
+ viewerProjectList,
toggleBackpack,
toggleSearch,
+ toggleProjectMenu,
};
});
diff --git a/composables/viewer.ts b/composables/viewer.ts
new file mode 100644
index 0000000..17b928a
--- /dev/null
+++ b/composables/viewer.ts
@@ -0,0 +1,8 @@
+export type ViewerProject = {
+ remoteFileUrl: string;
+ title: string;
+};
+
+export type ViewerProjectList = {
+ items: ViewerProject[];
+};
diff --git a/pages/index.vue b/pages/index.vue
index 59e08fe..c00e644 100644
--- a/pages/index.vue
+++ b/pages/index.vue
@@ -13,87 +13,36 @@
+
+
+ Project Menu
+
+
+
+
+