From 6dad7bc9dd559fb4caab769a08b0c60f8a1cb6ca Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Fri, 27 Dec 2024 00:48:36 +0100 Subject: [PATCH] http improvements, fixed link --- src/application/types.ts | 2 +- src/components/screens/Characters.vue | 2 +- src/composables/gameComposable.ts | 11 ++++++----- src/composables/zoneComposable.ts | 6 +++--- src/storage/assetStorage.ts | 2 +- 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/application/types.ts b/src/application/types.ts index 16ee39a..a8a148e 100644 --- a/src/application/types.ts +++ b/src/application/types.ts @@ -18,7 +18,7 @@ export type AssetDataT = { originX?: number originY?: number isAnimated?: boolean - frameCount?: number + frameRate?: number frameWidth?: number frameHeight?: number frameRate?: number diff --git a/src/components/screens/Characters.vue b/src/components/screens/Characters.vue index dd8c052..d3a96ab 100644 --- a/src/components/screens/Characters.vue +++ b/src/components/screens/Characters.vue @@ -79,7 +79,7 @@ v-for="hair in characterHairs" class="relative flex justify-center items-center bg-gray default-border w-[18px] h-[18px] p-2 rounded-sm hover:bg-gray-500 hover:border-gray-400 focus-visible:outline-none focus-visible:border-gray-300 focus-visible:bg-gray-500 has-[:checked]:bg-cyan has-[:checked]:border-transparent" > - Hair sprite + Hair sprite diff --git a/src/composables/gameComposable.ts b/src/composables/gameComposable.ts index de51969..f5f5787 100644 --- a/src/composables/gameComposable.ts +++ b/src/composables/gameComposable.ts @@ -1,4 +1,4 @@ -import type { AssetDataT, Sprite } from '@/application/types' +import type { AssetDataT, HttpResponse, Sprite, SpriteAction } from '@/application/types' import { useGameStore } from '@/stores/gameStore' import { AssetStorage } from '@/storage/assetStorage' import config from '@/application/config' @@ -59,8 +59,10 @@ export async function loadTexture(scene: Phaser.Scene, assetData: AssetDataT): P export async function loadSpriteTextures(scene: Phaser.Scene, sprite: Sprite) { if (!sprite) return - const sprite_actions = await fetch(config.server_endpoint + '/assets/list_sprite_actions/' + sprite?.id).then((response) => response.json()) - for await (const sprite_action of sprite_actions) { + // @TODO: Fix this + const sprite_actions: HttpResponse = await fetch(config.server_endpoint + '/assets/list_sprite_actions/' + sprite?.id).then((response) => response.json()) + + for await (const sprite_action of sprite_actions.data ?? []) { await loadTexture(scene, { key: sprite_action.key, data: sprite_action.data, @@ -72,7 +74,6 @@ export async function loadSpriteTextures(scene: Phaser.Scene, sprite: Sprite) { frameWidth: sprite_action.frameWidth, frameHeight: sprite_action.frameHeight, frameRate: sprite_action.frameRate, - frameCount: sprite_action.frameCount } as AssetDataT) // If the sprite is not animated, skip @@ -87,7 +88,7 @@ export async function loadSpriteTextures(scene: Phaser.Scene, sprite: Sprite) { scene.anims.create({ key: sprite_action.key, frameRate: sprite_action.frameRate, - frames: scene.anims.generateFrameNumbers(sprite_action.key, { start: 0, end: sprite_action.frameCount! - 1 }), + frames: scene.anims.generateFrameNumbers(sprite_action.key, { start: 0, end: sprite_action.frameRate! - 1 }), repeat: -1 }) } diff --git a/src/composables/zoneComposable.ts b/src/composables/zoneComposable.ts index c033397..310bb45 100644 --- a/src/composables/zoneComposable.ts +++ b/src/composables/zoneComposable.ts @@ -3,7 +3,7 @@ import Tilemap = Phaser.Tilemaps.Tilemap import TilemapLayer = Phaser.Tilemaps.TilemapLayer import Tileset = Phaser.Tilemaps.Tileset import Tile = Phaser.Tilemaps.Tile -import type { AssetDataT, Zone as ZoneT } from '@/application/types' +import type { AssetDataT, HttpResponse, Zone as ZoneT } from '@/application/types' import { loadTexture } from '@/composables/gameComposable' export function getTile(layer: TilemapLayer | Tilemap, x: number, y: number): Tile | undefined { @@ -86,10 +86,10 @@ export function FlattenZoneArray(tiles: string[][]) { export async function loadZoneTilesIntoScene(zone: ZoneT, scene: Phaser.Scene) { // Fetch the list of tiles from the server - const tileArray: AssetDataT[] = await fetch(config.server_endpoint + '/assets/list_tiles/' + zone.id).then((response) => response.json()) + const tileArray: HttpResponse = await fetch(config.server_endpoint + '/assets/list_tiles/' + zone.id).then((response) => response.json()) // Load each tile into the scene - for (const tile of tileArray) { + for (const tile of tileArray.data ?? []) { await loadTexture(scene, tile) } } diff --git a/src/storage/assetStorage.ts b/src/storage/assetStorage.ts index 6733d92..1e44814 100644 --- a/src/storage/assetStorage.ts +++ b/src/storage/assetStorage.ts @@ -36,7 +36,7 @@ export class AssetStorage { frameWidth: asset.frameWidth, frameHeight: asset.frameHeight, frameRate: asset.frameRate, - frameCount: asset.frameCount + frameRate: asset.frameRate }) } catch (error) { console.error(`Failed to add asset ${asset.key}:`, error)