Remove duplicate function

This commit is contained in:
Idrees Hassan
2025-10-26 18:03:15 -04:00
parent fe497a4020
commit 938b139298
8 changed files with 92 additions and 155 deletions

View File

@@ -14,7 +14,8 @@ import {
isMobile,
log,
debug,
error
error,
getLayer
} from './shared.js';
import {
SPRITE,
@@ -802,21 +803,6 @@ Promise.all([
save();
}
/**
* @param {string[][]} array
* @param {number} sprite
* @param {number} [width]
* @returns {string[][]}
*/
function getLayer(array, sprite, width = SPRITE_WIDTH) {
// From an array of a horizontal sprite sheet, get the layer for a specific sprite
const layer = [];
for (let y = 0; y < width; y++) {
layer.push(array[y].slice(sprite * width, (sprite + 1) * width));
}
return layer;
}
/**
* Update the birds location from the start to the target location on a parabolic path
* @param {number} speed The speed of the bird along the path
@@ -874,7 +860,6 @@ Promise.all([
}
function focusOnGround() {
console.log("Focusing on ground");
focusedElement = null;
focusedBounds = { left: 0, right: window.innerWidth, top: getSafeWindowHeight() };
flyTo(Math.random() * window.innerWidth, 0);

View File

@@ -1,4 +1,4 @@
import { Directions } from './shared.js';
import { Directions, getLayer } from './shared.js';
import Layer from './layer.js';
import Frame from './frame.js';
import Anim from './anim.js';
@@ -41,16 +41,16 @@ export class Birb {
// Build layers from sprite sheet
this.layers = {
base: new Layer(this.getLayer(spriteSheet, 0)),
down: new Layer(this.getLayer(spriteSheet, 1)),
heartOne: new Layer(this.getLayer(spriteSheet, 2)),
heartTwo: new Layer(this.getLayer(spriteSheet, 3)),
heartThree: new Layer(this.getLayer(spriteSheet, 4)),
tuftBase: new Layer(this.getLayer(spriteSheet, 5), "tuft"),
tuftDown: new Layer(this.getLayer(spriteSheet, 6), "tuft"),
wingsUp: new Layer(this.getLayer(spriteSheet, 7)),
wingsDown: new Layer(this.getLayer(spriteSheet, 8)),
happyEye: new Layer(this.getLayer(spriteSheet, 9)),
base: new Layer(getLayer(spriteSheet, 0, this.spriteWidth)),
down: new Layer(getLayer(spriteSheet, 1, this.spriteWidth)),
heartOne: new Layer(getLayer(spriteSheet, 2, this.spriteWidth)),
heartTwo: new Layer(getLayer(spriteSheet, 3, this.spriteWidth)),
heartThree: new Layer(getLayer(spriteSheet, 4, this.spriteWidth)),
tuftBase: new Layer(getLayer(spriteSheet, 5, this.spriteWidth), "tuft"),
tuftDown: new Layer(getLayer(spriteSheet, 6, this.spriteWidth), "tuft"),
wingsUp: new Layer(getLayer(spriteSheet, 7, this.spriteWidth)),
wingsDown: new Layer(getLayer(spriteSheet, 8, this.spriteWidth)),
happyEye: new Layer(getLayer(spriteSheet, 9, this.spriteWidth)),
};
// Build frames from layers
@@ -130,21 +130,6 @@ export class Birb {
return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species);
}
/**
* Get a layer from the sprite sheet array
* @param {string[][]} array
* @param {number} sprite
* @returns {string[][]}
*/
getLayer(array, sprite) {
// From an array of a horizontal sprite sheet, get the layer for a specific sprite
const layer = [];
for (let y = 0; y < this.spriteWidth; y++) {
layer.push(array[y].slice(sprite * this.spriteWidth, (sprite + 1) * this.spriteWidth));
}
return layer;
}
/**
* @returns {AnimationType} The current animation key
*/

View File

@@ -3,7 +3,8 @@ import {
makeElement,
onClick,
makeDraggable,
makeClosable
makeClosable,
error
} from './shared.js';
export const MENU_ID = "birb-menu";
@@ -124,7 +125,7 @@ export function switchMenuItems(menuItems, updateLocationCallback) {
}
const content = menu.querySelector(".birb-window-content");
if (!content) {
console.error("Birb: Content not found");
error("Birb: Content not found");
return;
}
content.innerHTML = "";

View File

@@ -79,7 +79,7 @@ export function makeDraggable(element, parent = true, callback = () => { }) {
let elementToMove = parent ? element.parentElement : element;
if (!elementToMove) {
console.error("Birb: Parent element not found");
error("Birb: Parent element not found");
return;
}
@@ -166,4 +166,20 @@ export function debug() {
export function error() {
console.error("Birb: ", ...arguments);
}
/**
* Get a layer from a sprite sheet array
* @param {string[][]} spriteSheet The sprite sheet pixel array
* @param {number} spriteIndex The sprite index
* @param {number} width The width of each sprite
* @returns {string[][]}
*/
export function getLayer(spriteSheet, spriteIndex, width) {
// From an array of a horizontal sprite sheet, get the layer for a specific sprite
const layer = [];
for (let y = 0; y < width; y++) {
layer.push(spriteSheet[y].slice(spriteIndex * width, (spriteIndex + 1) * width));
}
return layer;
}