From ab97e27f2729d28be4c8518043e03b391777c9ef Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Sat, 23 Nov 2024 16:47:41 +0100 Subject: [PATCH] Moved game components into a new folder, working proof of concept hair customisation --- src/assets/scss/main.scss | 2 +- .../{sprites => game/character}/Character.vue | 13 +++- .../game/character/partials/ChatBubble.vue | 0 src/components/{ => game}/zone/Characters.vue | 2 +- src/components/{ => game}/zone/Zone.vue | 6 +- .../{ => game}/zone/ZoneObjects.vue | 2 +- src/components/{ => game}/zone/ZoneTiles.vue | 0 .../{ => game}/zone/partials/ZoneObject.vue | 0 src/components/gui/Chat.vue | 4 +- src/components/screens/Characters.vue | 66 ++++++++++++++----- src/components/screens/Game.vue | 2 +- 11 files changed, 68 insertions(+), 29 deletions(-) rename src/components/{sprites => game/character}/Character.vue (94%) create mode 100644 src/components/game/character/partials/ChatBubble.vue rename src/components/{ => game}/zone/Characters.vue (83%) rename src/components/{ => game}/zone/Zone.vue (92%) rename src/components/{ => game}/zone/ZoneObjects.vue (80%) rename src/components/{ => game}/zone/ZoneTiles.vue (100%) rename src/components/{ => game}/zone/partials/ZoneObject.vue (100%) diff --git a/src/assets/scss/main.scss b/src/assets/scss/main.scss index 2203ec7..728a60b 100644 --- a/src/assets/scss/main.scss +++ b/src/assets/scss/main.scss @@ -67,7 +67,7 @@ input { } &[type='number']::-webkit-inner-spin-button, &[type='number']::-webkit-outer-spin-button, - &[type='radio']{ + &[type='radio'] { -webkit-appearance: none; } } diff --git a/src/components/sprites/Character.vue b/src/components/game/character/Character.vue similarity index 94% rename from src/components/sprites/Character.vue rename to src/components/game/character/Character.vue index 17df8c4..1b5bf1a 100644 --- a/src/components/sprites/Character.vue +++ b/src/components/game/character/Character.vue @@ -12,6 +12,8 @@ + + @@ -22,7 +24,7 @@ import { type Sprite as SpriteT, type ZoneCharacter } from '@/types' import { useGameStore } from '@/stores/gameStore' import { useZoneStore } from '@/stores/zoneStore' import { watch, computed, ref, onMounted, onUnmounted } from 'vue' -import { Container, refObj, RoundRectangle, Sprite, Text, useGame, useScene } from 'phavuer' +import { Container, Image, refObj, RoundRectangle, Sprite, Text, useGame, useScene } from 'phavuer' import { calculateIsometricDepth, tileToWorldX, tileToWorldY } from '@/composables/zoneComposable' import { loadSpriteTextures } from '@/composables/gameComposable' @@ -31,7 +33,6 @@ enum Direction { NEGATIVE, UNCHANGED } - const props = defineProps<{ layer: Phaser.Tilemaps.TilemapLayer zoneCharacter: ZoneCharacter @@ -181,6 +182,14 @@ watch( watch(() => props.zoneCharacter, updateSprite) + +// Hair demo +loadSpriteTextures(scene, props.zoneCharacter.character.hair?.sprite as SpriteT) + .then(() => {}) + .catch((error) => { + console.error('Error loading texture:', error) + }) + loadSpriteTextures(scene, props.zoneCharacter.character.characterType?.sprite as SpriteT) .then(() => { charSprite.value!.setTexture(charTexture.value) diff --git a/src/components/game/character/partials/ChatBubble.vue b/src/components/game/character/partials/ChatBubble.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/components/zone/Characters.vue b/src/components/game/zone/Characters.vue similarity index 83% rename from src/components/zone/Characters.vue rename to src/components/game/zone/Characters.vue index 7b6ecb2..c144d09 100644 --- a/src/components/zone/Characters.vue +++ b/src/components/game/zone/Characters.vue @@ -3,7 +3,7 @@