forked from noxious/client
#366 : Add storage logic to asset manager
This commit is contained in:
parent
7097eb1580
commit
2d7d598c94
@ -64,21 +64,21 @@ if (selectedCharacterHair.value) {
|
|||||||
characterSpriteId.value = selectedCharacterHair.value.sprite?.id
|
characterSpriteId.value = selectedCharacterHair.value.sprite?.id
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeCharacterHair() {
|
async function removeCharacterHair() {
|
||||||
if (!selectedCharacterHair.value) return
|
if (!selectedCharacterHair.value) return
|
||||||
|
|
||||||
socketManager.emit(SocketEvent.GM_CHARACTERHAIR_REMOVE, { id: selectedCharacterHair.value.id }, (response: boolean) => {
|
socketManager.emit(SocketEvent.GM_CHARACTERHAIR_REMOVE, { id: selectedCharacterHair.value.id }, async (response: boolean) => {
|
||||||
if (!response) {
|
if (!response) {
|
||||||
console.error('Failed to remove character hair')
|
console.error('Failed to remove character hair')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadCache('character_hair', new CharacterHairStorage())
|
await downloadCache('character_hair', new CharacterHairStorage())
|
||||||
refreshCharacterHairList()
|
await refreshCharacterHairList()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function refreshCharacterHairList(unsetSelectedCharacterHair = true) {
|
async function refreshCharacterHairList(unsetSelectedCharacterHair = true) {
|
||||||
socketManager.emit(SocketEvent.GM_CHARACTERHAIR_LIST, {}, (response: CharacterHair[]) => {
|
socketManager.emit(SocketEvent.GM_CHARACTERHAIR_LIST, {}, (response: CharacterHair[]) => {
|
||||||
assetManagerStore.setCharacterHairList(response)
|
assetManagerStore.setCharacterHairList(response)
|
||||||
|
|
||||||
@ -88,7 +88,7 @@ function refreshCharacterHairList(unsetSelectedCharacterHair = true) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveCharacterHair() {
|
async function saveCharacterHair() {
|
||||||
const characterHairData = {
|
const characterHairData = {
|
||||||
id: selectedCharacterHair.value!.id,
|
id: selectedCharacterHair.value!.id,
|
||||||
name: characterName.value,
|
name: characterName.value,
|
||||||
@ -97,14 +97,14 @@ function saveCharacterHair() {
|
|||||||
spriteId: characterSpriteId.value
|
spriteId: characterSpriteId.value
|
||||||
}
|
}
|
||||||
|
|
||||||
socketManager.emit(SocketEvent.GM_CHARACTERHAIR_UPDATE, characterHairData, (response: boolean) => {
|
socketManager.emit(SocketEvent.GM_CHARACTERHAIR_UPDATE, characterHairData, async (response: boolean) => {
|
||||||
if (!response) {
|
if (!response) {
|
||||||
console.error('Failed to save character type')
|
console.error('Failed to save character type')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadCache('character_hair', new CharacterHairStorage())
|
await downloadCache('character_hair', new CharacterHairStorage())
|
||||||
refreshCharacterHairList(false)
|
await refreshCharacterHairList(false)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,21 +73,21 @@ if (selectedCharacterType.value) {
|
|||||||
characterSpriteId.value = selectedCharacterType.value.sprite?.id
|
characterSpriteId.value = selectedCharacterType.value.sprite?.id
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeCharacterType() {
|
async function removeCharacterType() {
|
||||||
if (!selectedCharacterType.value) return
|
if (!selectedCharacterType.value) return
|
||||||
|
|
||||||
socketManager.emit(SocketEvent.GM_CHARACTERTYPE_REMOVE, { id: selectedCharacterType.value.id }, (response: boolean) => {
|
socketManager.emit(SocketEvent.GM_CHARACTERTYPE_REMOVE, { id: selectedCharacterType.value.id }, async (response: boolean) => {
|
||||||
if (!response) {
|
if (!response) {
|
||||||
console.error('Failed to remove character type')
|
console.error('Failed to remove character type')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadCache('character_types', new CharacterTypeStorage())
|
await downloadCache('character_types', new CharacterTypeStorage())
|
||||||
refreshCharacterTypeList()
|
await refreshCharacterTypeList()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function refreshCharacterTypeList(unsetSelectedCharacterType = true) {
|
async function refreshCharacterTypeList(unsetSelectedCharacterType = true) {
|
||||||
socketManager.emit(SocketEvent.GM_CHARACTERTYPE_LIST, {}, (response: CharacterType[]) => {
|
socketManager.emit(SocketEvent.GM_CHARACTERTYPE_LIST, {}, (response: CharacterType[]) => {
|
||||||
assetManagerStore.setCharacterTypeList(response)
|
assetManagerStore.setCharacterTypeList(response)
|
||||||
|
|
||||||
@ -97,7 +97,7 @@ function refreshCharacterTypeList(unsetSelectedCharacterType = true) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveCharacterType() {
|
async function saveCharacterType() {
|
||||||
const characterTypeData = {
|
const characterTypeData = {
|
||||||
id: selectedCharacterType.value!.id,
|
id: selectedCharacterType.value!.id,
|
||||||
name: characterName.value,
|
name: characterName.value,
|
||||||
@ -107,14 +107,14 @@ function saveCharacterType() {
|
|||||||
spriteId: characterSpriteId.value
|
spriteId: characterSpriteId.value
|
||||||
}
|
}
|
||||||
|
|
||||||
socketManager.emit(SocketEvent.GM_CHARACTERTYPE_UPDATE, characterTypeData, (response: boolean) => {
|
socketManager.emit(SocketEvent.GM_CHARACTERTYPE_UPDATE, characterTypeData, async (response: boolean) => {
|
||||||
if (!response) {
|
if (!response) {
|
||||||
console.error('Failed to save character type')
|
console.error('Failed to save character type')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadCache('character_types', new CharacterTypeStorage())
|
await downloadCache('character_types', new CharacterTypeStorage())
|
||||||
refreshCharacterTypeList(false)
|
await refreshCharacterTypeList(false)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ import type { MapObject } from '@/application/types'
|
|||||||
import { downloadCache } from '@/application/utilities'
|
import { downloadCache } from '@/application/utilities'
|
||||||
import ChipsInput from '@/components/forms/ChipsInput.vue'
|
import ChipsInput from '@/components/forms/ChipsInput.vue'
|
||||||
import { socketManager } from '@/managers/SocketManager'
|
import { socketManager } from '@/managers/SocketManager'
|
||||||
import { CharacterTypeStorage, MapObjectStorage } from '@/storage/storages'
|
import { MapObjectStorage } from '@/storage/storages'
|
||||||
import { useAssetManagerStore } from '@/stores/assetManagerStore'
|
import { useAssetManagerStore } from '@/stores/assetManagerStore'
|
||||||
import { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue'
|
import { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue'
|
||||||
|
|
||||||
@ -81,7 +81,6 @@ const mapObjectFrameHeight = ref(0)
|
|||||||
const imageRef = ref<HTMLImageElement | null>(null)
|
const imageRef = ref<HTMLImageElement | null>(null)
|
||||||
const isDragging = ref(false)
|
const isDragging = ref(false)
|
||||||
const draggedPointIndex = ref(-1)
|
const draggedPointIndex = ref(-1)
|
||||||
const mapObjectStorage = new MapObjectStorage()
|
|
||||||
|
|
||||||
if (!selectedMapObject.value) {
|
if (!selectedMapObject.value) {
|
||||||
console.error('No map mapObject selected')
|
console.error('No map mapObject selected')
|
||||||
@ -98,21 +97,20 @@ if (selectedMapObject.value) {
|
|||||||
mapObjectFrameHeight.value = selectedMapObject.value.frameHeight
|
mapObjectFrameHeight.value = selectedMapObject.value.frameHeight
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeObject() {
|
async function removeObject() {
|
||||||
if (!selectedMapObject.value) return
|
if (!selectedMapObject.value) return
|
||||||
|
socketManager.emit(SocketEvent.GM_MAPOBJECT_REMOVE, { mapObjectId: selectedMapObject.value.id }, async (response: boolean) => {
|
||||||
socketManager.emit(SocketEvent.GM_MAPOBJECT_REMOVE, { mapObject: selectedMapObject.value.id }, (response: boolean) => {
|
|
||||||
if (!response) {
|
if (!response) {
|
||||||
console.error('Failed to remove mapObject')
|
console.error('Failed to remove mapObject')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadCache('map_object', new MapObjectStorage())
|
await downloadCache('map_objects', new MapObjectStorage())
|
||||||
refreshObjectList()
|
await refreshObjectList()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function refreshObjectList(unsetSelectedMapObject = true) {
|
async function refreshObjectList(unsetSelectedMapObject = true) {
|
||||||
socketManager.emit(SocketEvent.GM_MAPOBJECT_LIST, {}, (response: MapObject[]) => {
|
socketManager.emit(SocketEvent.GM_MAPOBJECT_LIST, {}, (response: MapObject[]) => {
|
||||||
assetManagerStore.setMapObjectList(response)
|
assetManagerStore.setMapObjectList(response)
|
||||||
|
|
||||||
@ -122,7 +120,7 @@ function refreshObjectList(unsetSelectedMapObject = true) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveObject() {
|
async function saveObject() {
|
||||||
if (!selectedMapObject.value) {
|
if (!selectedMapObject.value) {
|
||||||
console.error('No mapObject selected')
|
console.error('No mapObject selected')
|
||||||
return
|
return
|
||||||
@ -141,14 +139,14 @@ function saveObject() {
|
|||||||
frameWidth: mapObjectFrameWidth.value,
|
frameWidth: mapObjectFrameWidth.value,
|
||||||
frameHeight: mapObjectFrameHeight.value
|
frameHeight: mapObjectFrameHeight.value
|
||||||
},
|
},
|
||||||
(response: boolean) => {
|
async (response: boolean) => {
|
||||||
if (!response) {
|
if (!response) {
|
||||||
console.error('Failed to save mapObject')
|
console.error('Failed to save mapObject')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadCache('map_object', new MapObjectStorage())
|
await downloadCache('map_objects', new MapObjectStorage())
|
||||||
refreshObjectList(false)
|
await refreshObjectList(false)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -97,31 +97,31 @@ if (selectedSprite.value) {
|
|||||||
spriteActions.value = sortSpriteActions(selectedSprite.value.spriteActions)
|
spriteActions.value = sortSpriteActions(selectedSprite.value.spriteActions)
|
||||||
}
|
}
|
||||||
|
|
||||||
function deleteSprite() {
|
async function deleteSprite() {
|
||||||
socketManager.emit(SocketEvent.GM_SPRITE_DELETE, { id: selectedSprite.value?.id }, (response: boolean) => {
|
socketManager.emit(SocketEvent.GM_SPRITE_DELETE, { id: selectedSprite.value?.id }, async (response: boolean) => {
|
||||||
if (!response) {
|
if (!response) {
|
||||||
console.error('Failed to delete sprite')
|
console.error('Failed to delete sprite')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadCache('sprite', new SpriteStorage())
|
await downloadCache('sprite', new SpriteStorage())
|
||||||
refreshSpriteList()
|
await refreshSpriteList()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function copySprite() {
|
async function copySprite() {
|
||||||
socketManager.emit(SocketEvent.GM_SPRITE_COPY, { id: selectedSprite.value?.id }, (response: boolean) => {
|
socketManager.emit(SocketEvent.GM_SPRITE_COPY, { id: selectedSprite.value?.id }, async (response: boolean) => {
|
||||||
if (!response) {
|
if (!response) {
|
||||||
console.error('Failed to copy sprite')
|
console.error('Failed to copy sprite')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadCache('sprite', new SpriteStorage())
|
await downloadCache('sprite', new SpriteStorage())
|
||||||
refreshSpriteList(false)
|
await refreshSpriteList(false)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function refreshSpriteList(unsetSelectedSprite = true) {
|
async function refreshSpriteList(unsetSelectedSprite = true) {
|
||||||
socketManager.emit(SocketEvent.GM_SPRITE_LIST, {}, (response: Sprite[]) => {
|
socketManager.emit(SocketEvent.GM_SPRITE_LIST, {}, (response: Sprite[]) => {
|
||||||
assetManagerStore.setSpriteList(response)
|
assetManagerStore.setSpriteList(response)
|
||||||
|
|
||||||
@ -131,7 +131,7 @@ function refreshSpriteList(unsetSelectedSprite = true) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveSprite() {
|
async function saveSprite() {
|
||||||
if (!selectedSprite.value) {
|
if (!selectedSprite.value) {
|
||||||
console.error('No sprite selected')
|
console.error('No sprite selected')
|
||||||
return
|
return
|
||||||
@ -154,14 +154,14 @@ function saveSprite() {
|
|||||||
}) ?? []
|
}) ?? []
|
||||||
}
|
}
|
||||||
|
|
||||||
socketManager.emit(SocketEvent.GM_SPRITE_UPDATE, updatedSprite, (response: boolean) => {
|
socketManager.emit(SocketEvent.GM_SPRITE_UPDATE, updatedSprite, async (response: boolean) => {
|
||||||
if (!response) {
|
if (!response) {
|
||||||
console.error('Failed to save sprite')
|
console.error('Failed to save sprite')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadCache('sprite', new SpriteStorage())
|
await downloadCache('sprite', new SpriteStorage())
|
||||||
refreshSpriteList(false)
|
await refreshSpriteList(false)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,12 +62,12 @@ async function deleteTile() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadCache('tile', new TileStorage())
|
await downloadCache('tiles', new TileStorage())
|
||||||
refreshTileList()
|
await refreshTileList()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function refreshTileList(unsetSelectedTile = true) {
|
async function refreshTileList(unsetSelectedTile = true) {
|
||||||
socketManager.emit(SocketEvent.GM_TILE_LIST, {}, (response: Tile[]) => {
|
socketManager.emit(SocketEvent.GM_TILE_LIST, {}, (response: Tile[]) => {
|
||||||
assetManagerStore.setTileList(response)
|
assetManagerStore.setTileList(response)
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ function refreshTileList(unsetSelectedTile = true) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveTile() {
|
async function saveTile() {
|
||||||
if (!selectedTile.value) {
|
if (!selectedTile.value) {
|
||||||
console.error('No tile selected')
|
console.error('No tile selected')
|
||||||
return
|
return
|
||||||
@ -90,14 +90,14 @@ function saveTile() {
|
|||||||
name: tileName.value,
|
name: tileName.value,
|
||||||
tags: tileTags.value
|
tags: tileTags.value
|
||||||
},
|
},
|
||||||
(response: boolean) => {
|
async (response: boolean) => {
|
||||||
if (!response) {
|
if (!response) {
|
||||||
console.error('Failed to save tile')
|
console.error('Failed to save tile')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadCache('tile', new TileStorage())
|
await downloadCache('tiles', new TileStorage())
|
||||||
refreshTileList(false)
|
await refreshTileList(false)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,7 @@ import { SocketEvent } from '@/application/enums'
|
|||||||
import { socketManager } from '@/managers/SocketManager'
|
import { socketManager } from '@/managers/SocketManager'
|
||||||
import 'phaser'
|
import 'phaser'
|
||||||
import type { Map as MapT } from '@/application/types'
|
import type { Map as MapT } from '@/application/types'
|
||||||
|
import { downloadCache } from '@/application/utilities'
|
||||||
import Map from '@/components/gameMaster/mapEditor/Map.vue'
|
import Map from '@/components/gameMaster/mapEditor/Map.vue'
|
||||||
import MapList from '@/components/gameMaster/mapEditor/partials/MapList.vue'
|
import MapList from '@/components/gameMaster/mapEditor/partials/MapList.vue'
|
||||||
import MapObjectList from '@/components/gameMaster/mapEditor/partials/MapObjectList.vue'
|
import MapObjectList from '@/components/gameMaster/mapEditor/partials/MapObjectList.vue'
|
||||||
@ -35,7 +36,6 @@ import { loadAllTileTextures } from '@/services/mapService'
|
|||||||
import { CharacterHairStorage, MapStorage } from '@/storage/storages'
|
import { CharacterHairStorage, MapStorage } from '@/storage/storages'
|
||||||
import { Game, Scene } from 'phavuer'
|
import { Game, Scene } from 'phavuer'
|
||||||
import { ref, toRaw, useTemplateRef } from 'vue'
|
import { ref, toRaw, useTemplateRef } from 'vue'
|
||||||
import {downloadCache} from "@/application/utilities";
|
|
||||||
|
|
||||||
const mapStorage = new MapStorage()
|
const mapStorage = new MapStorage()
|
||||||
const mapEditor = useMapEditorComposable()
|
const mapEditor = useMapEditorComposable()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user