69 lines
1.6 KiB
TypeScript
69 lines
1.6 KiB
TypeScript
import { ref } from 'vue'
|
|
import { defineStore } from 'pinia'
|
|
import type { Tile, Object, Sprite, CharacterType } from '@/types'
|
|
|
|
export const useAssetManagerStore = defineStore('assetManager', () => {
|
|
const tileList = ref<Tile[]>([])
|
|
const selectedTile = ref<Tile | null>(null)
|
|
|
|
const objectList = ref<Object[]>([])
|
|
const selectedObject = ref<Object | null>(null)
|
|
|
|
const spriteList = ref<Sprite[]>([])
|
|
const selectedSprite = ref<Sprite | null>(null)
|
|
|
|
const characterTypeList = ref<CharacterType[]>([])
|
|
const selectedCharacterType = ref<CharacterType | null>(null)
|
|
|
|
function setTileList(tiles: Tile[]) {
|
|
tileList.value = tiles
|
|
}
|
|
|
|
function setSelectedTile(tile: Tile | null) {
|
|
selectedTile.value = tile
|
|
}
|
|
|
|
function setObjectList(objects: Object[]) {
|
|
objectList.value = objects
|
|
}
|
|
|
|
function setSelectedObject(object: Object | null) {
|
|
selectedObject.value = object
|
|
}
|
|
|
|
function setSpriteList(sprites: Sprite[]) {
|
|
spriteList.value = sprites
|
|
}
|
|
|
|
function setSelectedSprite(sprite: Sprite | null) {
|
|
selectedSprite.value = sprite
|
|
}
|
|
|
|
function setCharacterTypeList(characterTypes: CharacterType[]) {
|
|
characterTypeList.value = characterTypes
|
|
}
|
|
|
|
function setSelectedCharacterType(characterType: CharacterType | null) {
|
|
selectedCharacterType.value = characterType
|
|
}
|
|
|
|
return {
|
|
tileList,
|
|
selectedTile,
|
|
objectList,
|
|
selectedObject,
|
|
spriteList,
|
|
selectedSprite,
|
|
characterTypeList,
|
|
selectedCharacterType,
|
|
setTileList,
|
|
setSelectedTile,
|
|
setObjectList,
|
|
setCharacterTypeList,
|
|
setSelectedObject,
|
|
setSpriteList,
|
|
setSelectedSprite,
|
|
setSelectedCharacterType
|
|
}
|
|
})
|