From 21a99f11d464aabcf742bb72795bde9dd77f4ef3 Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Mon, 1 Jul 2024 00:39:07 +0200 Subject: [PATCH] =?UTF-8?q?=E2=95=AD=E2=88=A9=E2=95=AE(=20=E2=80=A2=CC=80?= =?UTF-8?q?=5F=E2=80=A2=CC=81=20)=E2=95=AD=E2=88=A9=E2=95=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../utilities/zoneEditor/ZoneEditor.vue | 27 ++++++++++++----- src/screens/Game.vue | 30 ++++++++----------- src/screens/Login.vue | 7 +++++ src/stores/assets.ts | 11 +++++++ 4 files changed, 50 insertions(+), 25 deletions(-) diff --git a/src/components/utilities/zoneEditor/ZoneEditor.vue b/src/components/utilities/zoneEditor/ZoneEditor.vue index c2bf6de..3cb2e4a 100644 --- a/src/components/utilities/zoneEditor/ZoneEditor.vue +++ b/src/components/utilities/zoneEditor/ZoneEditor.vue @@ -21,7 +21,7 @@ import config from '@/config' import Tileset = Phaser.Tilemaps.Tileset import TilemapLayer = Phaser.Tilemaps.TilemapLayer import { Container, TilemapLayer as TilemapLayerC, useScene, Image } from 'phavuer' -import { onBeforeMount, onBeforeUnmount, onMounted } from 'vue' +import { onBeforeMount, onBeforeUnmount, onMounted, toRaw } from 'vue' import Controls from '@/components/utilities/Controls.vue' import { useSocketStore } from '@/stores/socket' import Toolbar from '@/components/utilities/zoneEditor/Toolbar.vue' @@ -51,15 +51,23 @@ const zoneData = new Phaser.Tilemaps.MapData({ const zone = new Phaser.Tilemaps.Tilemap(scene, zoneData) let tilesetImages: Tileset[] = []; -assetStore.assets.forEach((asset) => { + +toRaw(assetStore.assets).forEach((asset) => { if (asset.group !== 'tiles') { return } - tilesetImages.push(zone.addTilesetImage(asset.key) as Tileset) + console.log(asset) + // tilesetImages.push(zone.addTilesetImage(asset.key) as Tileset) }) -const tiles = zone.createBlankLayer('tiles', tilesetImages, 0, config.tile_size.y) as TilemapLayer +/** + * @TODO BUG : in the map. somehow always the latest tileset is used instead of the correct one. + */ +const t1 = zone.addTilesetImage('tile_1.png') as Tileset +const t2 = zone.addTilesetImage('tile_2.png') as Tileset +const t3 = zone.addTilesetImage('tile_3.png') as Tileset +const tiles = zone.createBlankLayer('tiles', [t1,t2,t3], 0, config.tile_size.y) as TilemapLayer const exampleTilesArray = Array.from({ length: zoneEditorStore.width }, () => Array.from({ length: zoneEditorStore.height }, () => 'tile_0.png')) onMounted(() => {}) @@ -74,13 +82,16 @@ const centerY = (zone.height * zone.tileHeight) / 2 const centerX = (zone.width * zone.tileWidth) / 2 scene.cameras.main.centerOn(centerX, centerY) -function placeTile(x: number, y: number, tileType: string) { - const tileset = map.getTileset(tileType); - layer.putTileAt(tileset.firstgid, x, y); +function placeTile(layer: TilemapLayer, x: number, y: number, tileType: string) { + let tilesett = zone.getTileset(tileType) as Tileset; + console.log(tilesett) + layer.putTileAt(tilesett.firstgid, x, y); } +placeTile(tiles, 0, 0, 'tile_1.png') + onBeforeMount(() => { - exampleTilesArray.forEach((row, y) => row.forEach((tile, x) => tiles.putTileAt(tile, x, y))) + // exampleTilesArray.forEach((row, y) => row.forEach((tile, x) => placeTile(tiles, x, y, 'tile_2.png'))) socket.connection.emit('gm:zone_editor:zone:request', { zoneId: socket.character.zoneId }) }) diff --git a/src/screens/Game.vue b/src/screens/Game.vue index a8ed1ea..1314832 100644 --- a/src/screens/Game.vue +++ b/src/screens/Game.vue @@ -26,17 +26,17 @@