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 @@