aboutsummaryrefslogtreecommitdiffstats
path: root/src/stores/session.ts
diff options
context:
space:
mode:
authorLeonardo Bishop <me@leonardobishop.com>2024-03-10 00:13:25 +0000
committerLeonardo Bishop <me@leonardobishop.com>2024-03-10 00:13:25 +0000
commit9a11e0f4a38297006b89cc7bb2a60734111582e0 (patch)
tree5ebddde79e67b659714b5dbdbfcea289f06a4ae5 /src/stores/session.ts
parent817478f3cf357fc09778d9dc3cf67a667e21f042 (diff)
Migrate to nuxt
Diffstat (limited to 'src/stores/session.ts')
-rw-r--r--src/stores/session.ts171
1 files changed, 0 insertions, 171 deletions
diff --git a/src/stores/session.ts b/src/stores/session.ts
deleted file mode 100644
index 1cc8dc7..0000000
--- a/src/stores/session.ts
+++ /dev/null
@@ -1,171 +0,0 @@
-import { defineStore } from 'pinia'
-
-export interface EditorQuest {
- id: string;
- display: {
- name: string;
- lore: {
- normal: string[];
- started: string[];
- }
- type: string;
- }
- tasks: { [key: string]: EditorTask };
- rewards: string[];
- startCommands?: string[];
- startString?: string[];
- rewardString?: string[];
- placeholders?: { [key: string]: string };
- options: {
- category: string;
- requirements: string[];
- permissionRequired: boolean;
- cancellable: boolean;
- countsTowardsLimit: boolean;
- repeatable: boolean;
- cooldown: {
- enabled: boolean;
- time: number;
- }
- timeLimit: {
- enabled: boolean;
- time: number;
- }
- sortOrder: number;
- autostart: boolean;
- completedDisplay?: string;
- cooldownDisplay?: string;
- permissionDisplay?: string;
- lockedDisplay?: string;
- }
-}
-
-export interface EditorTask {
- id: string;
- config: {
- type: string;
- [key: string]: any;
- }
-}
-
-export interface EditorCategory {
- id: string;
- display: {
- name: string;
- lore: string[];
- type: string;
- }
- permissionRequired: string;
-}
-
-export interface TaskDefinition {
- description: string;
- configuration: {
- [key: string]: {
- type: string | string[];
- description: string;
- default?: any;
- required?: boolean;
- note?: string;
- }
- }
-}
-
-export const useSessionStore = defineStore('session', {
- state: () => ({
- sessionType: '',
- session: {
- quests: [] as EditorQuest[],
- categories: [] as EditorCategory[],
- taskDefinitions: {} as { [key: string]: TaskDefinition },
- },
- editor: {
- selected: {
- type: '' as 'Quest' | 'Category' | null,
- id: '' as string | null,
- }
- }
- }),
- getters: {
- getSessionType(): string {
- return this.sessionType
- },
- getQuests(): EditorQuest[] {
- return this.session.quests
- },
- getCategories(): EditorCategory[] {
- return this.session.categories
- },
- getQuestById: (state) => (id: string) => {
- if (!id) return null;
- return state.session.quests.find(quest => quest.id === id)
- },
- getCategoryById: (state) => (id: string) => {
- if (!id) return null;
- return state.session.categories.find(quest => quest.id === id)
- },
- getQuestsInCategory: (state) => (id: string) => {
- if (!id) return [];
- return state.session.quests.filter(quest => quest.options.category === id)
- },
- getTaskDefinitions: (state) => {
- return state.session.taskDefinitions
- },
- getTaskDefinitionByTaskType: (state) => (type: string) => {
- return state.session.taskDefinitions[type]
- },
- getKnownTaskTypes: (state) => () => {
- return Object.keys(state.session.taskDefinitions)
- }
- // getEditorCategories: (state) => {
- // return state.editor.categories
- // }
- },
- actions: {
- setSessionType(type: string) {
- this.sessionType = type
- },
- setQuests(quests: EditorQuest[]) {
- this.session.quests = quests
- },
- setCategories(categories: EditorCategory[]) {
- this.session.categories = categories
- },
- // updateEditorCategories() {
- // const categories: { [key: string]: { quests: string[] } } = {}
- // this.session.categories.forEach(category => {
- // categories[category.id] = { quests: [] }
- // })
- // this.session.quests.forEach(quest => {
- // categories[quest.options.category].quests.push(quest.id)
- // })
- // this.editor.categories = categories;
- // },
- setEditorSelected(type: 'Quest' | 'Category' | null, id: string | null) {
- this.editor.selected.type = type
- this.editor.selected.id = id
- },
- setTaskDefinitions(definitions: { [key: string]: TaskDefinition }) {
- this.session.taskDefinitions = definitions
- },
- changeQuestId(oldId: string, newId: string) {
- const quest = this.getQuestById(oldId);
- if (!quest) return;
-
- quest.id = newId
- },
- deleteQuest(id: string) {
- const index = this.session.quests.findIndex(quest => quest.id === id)
- if (index === -1) return;
- this.session.quests.splice(index, 1)
- },
- duplicateQuest(id: string, newQuestId: string) {
- const quest = this.getQuestById(id);
- if (!quest) return;
-
- const newQuest = JSON.parse(JSON.stringify(quest));
- newQuest.id = newQuestId;
- this.session.quests.push(newQuest);
- }
- }
-});