import config from '@/config' import Tilemap = Phaser.Tilemaps.Tilemap import TilemapLayer = Phaser.Tilemaps.TilemapLayer import Tileset = Phaser.Tilemaps.Tileset export function getTile(x: number, y: number, layer: Phaser.Tilemaps.TilemapLayer): Phaser.Tilemaps.Tile | undefined { const tile: Phaser.Tilemaps.Tile = layer.getTileAtWorldXY(x, y) if (!tile) return undefined return tile } export function tileToWorldX(layer: Phaser.Tilemaps.TilemapLayer, pos_x: number) { const worldPoint = layer.tileToWorldX(pos_x) return worldPoint + config.tile_size.y } export function tileToWorldY(layer: Phaser.Tilemaps.TilemapLayer, pos_y: number) { return layer.tileToWorldY(pos_y) } export function tileToWorldXY(layer: Phaser.Tilemaps.TilemapLayer, pos_x: number, pos_y: number) { const worldPoint = layer.tileToWorldXY(pos_x, pos_y) const position_x = worldPoint.x + config.tile_size.y const position_y = worldPoint.y return { position_x, position_y } } export function placeTile(zone: Tilemap, layer: TilemapLayer, x: number, y: number, tileName: string) { const tileImg = zone.getTileset(tileName) as Tileset if (!tileImg) return layer.putTileAt(tileImg.firstgid, x, y) } export function getTiles(zone: Tilemap): string[][] { const tiles = [] for (let y = 0; y < zone.height; y++) { const row = [] for (let x = 0; x < zone.width; x++) { const tile = zone.getTileAt(x, y) row.push(!tile?.index ? 'blank_tile' : zone.tilesets[tile.index].name) } tiles.push(row) } return tiles } export function generateTilemap(scene: Phaser.Scene, width: number, height: number) {}