From d85bf4846bac1ecc44cf036c84d7caee4caa2f2d Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Fri, 21 Feb 2025 02:02:36 +0100 Subject: [PATCH] Character hair refactor, enhancements --- package-lock.json | 6 +-- src/application/types.ts | 2 + src/components/game/character/Character.vue | 2 +- .../game/character/partials/CharacterHair.vue | 44 +++++++++---------- .../partials/sprite/SpriteDetails.vue | 17 +++++++ src/components/screens/Characters.vue | 2 +- 6 files changed, 44 insertions(+), 29 deletions(-) diff --git a/package-lock.json b/package-lock.json index 378a27e..6af7af8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4618,9 +4618,9 @@ } }, "node_modules/postcss": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", - "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", "funding": [ { "type": "opencollective", diff --git a/src/application/types.ts b/src/application/types.ts index 989dd01..3e1aa29 100644 --- a/src/application/types.ts +++ b/src/application/types.ts @@ -210,6 +210,8 @@ export enum CharacterEquipmentSlotType { export type Sprite = { id: string name: string + width: number | null + height: number | null createdAt: Date updatedAt: Date spriteActions: SpriteAction[] diff --git a/src/components/game/character/Character.vue b/src/components/game/character/Character.vue index 62bd819..b674369 100644 --- a/src/components/game/character/Character.vue +++ b/src/components/game/character/Character.vue @@ -2,7 +2,7 @@ - + diff --git a/src/components/game/character/partials/CharacterHair.vue b/src/components/game/character/partials/CharacterHair.vue index 12f6dfd..a2da561 100644 --- a/src/components/game/character/partials/CharacterHair.vue +++ b/src/components/game/character/partials/CharacterHair.vue @@ -1,49 +1,39 @@ diff --git a/src/components/gameMaster/assetManager/partials/sprite/SpriteDetails.vue b/src/components/gameMaster/assetManager/partials/sprite/SpriteDetails.vue index 6bf4d28..452acfa 100644 --- a/src/components/gameMaster/assetManager/partials/sprite/SpriteDetails.vue +++ b/src/components/gameMaster/assetManager/partials/sprite/SpriteDetails.vue @@ -7,6 +7,15 @@ +
+ + +
+
+ + +
+
@@ -84,6 +93,8 @@ const assetManagerStore = useAssetManagerStore() const selectedSprite = computed(() => assetManagerStore.selectedSprite) const spriteName = ref('') +const spriteWidth = ref(0) +const spriteHeight = ref(0) const spriteActions = ref([]) const isModalOpen = ref(false) const selectedAction = ref(null) @@ -94,6 +105,8 @@ if (!selectedSprite.value) { if (selectedSprite.value) { spriteName.value = selectedSprite.value.name + spriteWidth.value = selectedSprite.value.width + spriteHeight.value = selectedSprite.value.height spriteActions.value = sortSpriteActions(selectedSprite.value.spriteActions) } @@ -140,6 +153,8 @@ async function saveSprite() { const updatedSprite = { id: selectedSprite.value.id, name: spriteName.value, + width: spriteWidth.value, + height: spriteHeight.value, spriteActions: spriteActions.value?.map((action) => { return { @@ -217,6 +232,8 @@ function handleTempOffsetChange(action: SpriteAction, index: number, offset: { x watch(selectedSprite, (sprite: Sprite | null) => { if (!sprite) return spriteName.value = sprite.name + spriteWidth.value = sprite.width + spriteHeight.value = sprite.height spriteActions.value = sortSpriteActions(sprite.spriteActions) }) diff --git a/src/components/screens/Characters.vue b/src/components/screens/Characters.vue index 9b18973..846fa72 100644 --- a/src/components/screens/Characters.vue +++ b/src/components/screens/Characters.vue @@ -74,7 +74,7 @@ v-for="hair in filteredHairs" class="relative flex justify-center items-center bg-gray default-border w-[18px] h-[18px] p-2 rounded-sm hover:bg-gray-500 hover:border-gray-400 focus-visible:outline-none focus-visible:border-gray-300 focus-visible:bg-gray-500 has-[:checked]:bg-cyan has-[:checked]:border-transparent" > - Hair sprite + Hair sprite