diff --git a/src/components/utilities/assetManager/partials/sprite/SpriteDetails.vue b/src/components/utilities/assetManager/partials/sprite/SpriteDetails.vue
index 00b21f0..fa96b1a 100644
--- a/src/components/utilities/assetManager/partials/sprite/SpriteDetails.vue
+++ b/src/components/utilities/assetManager/partials/sprite/SpriteDetails.vue
@@ -20,7 +20,7 @@
{{ image.name }}
@@ -64,6 +64,10 @@
+
+
+
![]()
+
@@ -84,7 +88,12 @@ const assetManagerStore = useAssetManagerStore()
const selectedSprite = computed(() => assetManagerStore.selectedSprite)
const spriteName = ref('')
-const spriteImages = ref([])
+
+type uploadSpriteImage = SpriteImage & {
+ base64?: string
+}
+
+const spriteImages = ref([])
if (!selectedSprite.value) {
console.error('No sprite selected')
@@ -95,6 +104,18 @@ if (selectedSprite.value) {
spriteImages.value = selectedSprite.value.spriteImages
}
+function handleImageUpload(event: Event, image: uploadSpriteImage) {
+ const file = (event.target as HTMLInputElement).files?.[0]
+ if (!file) return
+
+ const reader = new FileReader()
+ reader.onload = (e) => {
+ const base64String = e.target?.result as string
+ image.base64 = base64String.split(',')[1] // Remove the data:image/png;base64, prefix
+ }
+ reader.readAsDataURL(file)
+}
+
function removeSprite() {
gameStore.connection?.emit('gm:sprite:remove', { sprite: selectedSprite.value?.id }, (response: boolean) => {
if (!response) {