'use strict'; const path = require('path'); const { pathToFileURL } = require('url'); const SHEET_WIDTH = 1536; const SHEET_HEIGHT = 1872; const CELL_WIDTH = 192; const CELL_HEIGHT = 208; const SHEET_URL = pathToFileURL(path.join(__dirname, 'maple', 'spritesheet.webp')).href; function cell(row, col, facingBasis) { return { sheetUrl: SHEET_URL, sheetWidth: SHEET_WIDTH, sheetHeight: SHEET_HEIGHT, frameX: col * CELL_WIDTH, frameY: row * CELL_HEIGHT, frameWidth: CELL_WIDTH, frameHeight: CELL_HEIGHT, facingBasis: facingBasis || 'left' }; } function rowFrames(row, startCol, count, facingBasis) { const frames = []; for (let index = 0; index < count; index += 1) { frames.push(cell(row, startCol + index, facingBasis)); } return frames; } module.exports = { width: 48, height: 52, clips: { idle0: { fps: 1.4, frames: rowFrames(0, 0, 6, 'left') }, idle1: { fps: 1.4, frames: rowFrames(6, 0, 6, 'left') }, idle2: { fps: 1.4, frames: rowFrames(7, 0, 6, 'left') }, idle3: { fps: 1.4, frames: rowFrames(8, 0, 6, 'left') }, walkRight: { fps: 4.4, frames: rowFrames(1, 0, 8, 'right') }, walkLeft: { fps: 4.4, frames: rowFrames(2, 0, 8, 'left') }, inspectLeft: { fps: 2.2, frames: rowFrames(3, 0, 4, 'left') }, inspectRight: { fps: 2.2, frames: rowFrames(3, 0, 4, 'left') }, pounceLeft: { fps: 4, frames: rowFrames(4, 0, 5, 'left') }, pounceRight: { fps: 4, frames: rowFrames(4, 0, 5, 'left') }, sleep: { fps: 1, frames: [ cell(5, 3, 'left') ] }, sleepWakeLeft: { fps: 2.6, frames: rowFrames(5, 4, 3, 'left'), nextClip: 'idle0' }, sleepWakeRight: { fps: 2.6, frames: rowFrames(5, 4, 3, 'left'), nextClip: 'idle0' }, transitionIdleWalkLeft: { fps: 3, frames: rowFrames(2, 0, 3, 'left'), nextClip: 'walkLeft' }, transitionIdleWalkRight: { fps: 3, frames: rowFrames(1, 0, 3, 'right'), nextClip: 'walkRight' }, transitionIdleSleep: { fps: 2.8, frames: rowFrames(5, 0, 4, 'left'), nextClip: 'sleep' } }, transitions: { 'idle0->walkLeft': 'transitionIdleWalkLeft', 'idle1->walkLeft': 'transitionIdleWalkLeft', 'idle2->walkLeft': 'transitionIdleWalkLeft', 'idle3->walkLeft': 'transitionIdleWalkLeft', 'idle0->walkRight': 'transitionIdleWalkRight', 'idle1->walkRight': 'transitionIdleWalkRight', 'idle2->walkRight': 'transitionIdleWalkRight', 'idle3->walkRight': 'transitionIdleWalkRight', 'idle0->sleep': 'transitionIdleSleep', 'idle1->sleep': 'transitionIdleSleep', 'idle2->sleep': 'transitionIdleSleep', 'idle3->sleep': 'transitionIdleSleep', 'inspectLeft->walkLeft': 'transitionIdleWalkLeft', 'inspectRight->walkRight': 'transitionIdleWalkRight', 'sleep->idle0': 'sleepWakeLeft', 'sleep->idle1': 'sleepWakeLeft', 'sleep->idle2': 'sleepWakeLeft', 'sleep->idle3': 'sleepWakeLeft', 'sleep->walkLeft': 'sleepWakeLeft', 'sleep->walkRight': 'sleepWakeRight', 'sleep->inspectLeft': 'sleepWakeLeft', 'sleep->inspectRight': 'sleepWakeRight', 'sleep->pounceLeft': 'sleepWakeLeft', 'sleep->pounceRight': 'sleepWakeRight' } };