From 43f0b73309f2401c25e6d3354eac176a48232521 Mon Sep 17 00:00:00 2001
From: Dennis Postma <dennis@directonline.io>
Date: Mon, 22 Jul 2024 00:40:47 +0200
Subject: [PATCH] Refractor character component (WIP)

---
 src/components/sprites/Character.vue | 57 ++++------------------------
 src/components/sprites/MapEntity.vue |  1 -
 src/components/sprites/NPC.vue       |  1 -
 src/components/sprites/Sprite.vue    |  0
 4 files changed, 8 insertions(+), 51 deletions(-)
 delete mode 100644 src/components/sprites/MapEntity.vue
 delete mode 100644 src/components/sprites/NPC.vue
 delete mode 100644 src/components/sprites/Sprite.vue

diff --git a/src/components/sprites/Character.vue b/src/components/sprites/Character.vue
index 6754e7b..1b90958 100644
--- a/src/components/sprites/Character.vue
+++ b/src/components/sprites/Character.vue
@@ -21,61 +21,20 @@
 </template>
 
 <script lang="ts" setup>
-import { Container, Rectangle, Sprite, Text, useScene } from 'phavuer'
-import { onBeforeMount, onBeforeUnmount, onMounted, ref } from 'vue'
-import { useGameStore } from '@/stores/game'
+import { Container, Rectangle, Sprite, Text } from 'phavuer'
 import { type Character as CharacterT } from '@/types'
-import { getTile, tileToWorldX, tileToWorldXY, tileToWorldY } from '@/services/zone'
+import { tileToWorldX, tileToWorldY } from '@/services/zone'
 
-const gameStore = useGameStore()
+interface Props {
+  layer: Phaser.Tilemaps.TilemapLayer
+  character?: CharacterT
+}
 
-const props = defineProps({
-  layer: Phaser.Tilemaps.TilemapLayer,
-  character: Object as () => CharacterT
+const props = withDefaults(defineProps<Props>(), {
+  character: undefined
 })
 
-const scene = useScene()
-const isSelf = props.character?.id === gameStore.character?.id
-
 const createText = (text: Phaser.GameObjects.Text) => {
   text.setLetterSpacing(1.5)
 }
-
-onBeforeMount(() => {
-  if (isSelf) setupSelf()
-})
-
-function setupSelf() {
-  scene.input.on(Phaser.Input.Events.POINTER_UP, onPointerClick)
-}
-
-function onPointerClick(pointer: Phaser.Input.Pointer) {
-  if (!isSelf || gameStore.isMovingCamera) return
-
-  const px = scene.cameras.main.worldView.x + pointer.x
-  const py = scene.cameras.main.worldView.y + pointer.y
-
-  const pointer_tile = getTile(px, py, props.layer) as Phaser.Tilemaps.Tile
-  if (!pointer_tile) {
-    return
-  }
-
-  gameStore.connection?.emit('character:move', { position_x: pointer_tile.x, position_y: pointer_tile.y })
-
-  // Directions for player sprite + animations
-  if (px < 0 && py > 0) {
-    console.log('down left')
-  } else if (px < 0 && py < 0) {
-    console.log('top left')
-  } else if (px > 0 && py > 0) {
-    console.log('down right')
-  } else if (px > 0 && py < 0) {
-    console.log('top right')
-  }
-}
-
-onBeforeUnmount(() => {
-  if (!isSelf) return
-  scene.input.off(Phaser.Input.Events.POINTER_UP, onPointerClick)
-})
 </script>
diff --git a/src/components/sprites/MapEntity.vue b/src/components/sprites/MapEntity.vue
deleted file mode 100644
index cc340bc..0000000
--- a/src/components/sprites/MapEntity.vue
+++ /dev/null
@@ -1 +0,0 @@
-<template></template>
diff --git a/src/components/sprites/NPC.vue b/src/components/sprites/NPC.vue
deleted file mode 100644
index cc340bc..0000000
--- a/src/components/sprites/NPC.vue
+++ /dev/null
@@ -1 +0,0 @@
-<template></template>
diff --git a/src/components/sprites/Sprite.vue b/src/components/sprites/Sprite.vue
deleted file mode 100644
index e69de29..0000000