changed certain coordinate variables to hold arrays of an exact length

This commit is contained in:
AloeSapling 2025-08-28 14:59:24 +02:00
parent 622a32bf9d
commit 3a110135ee
3 changed files with 7 additions and 6 deletions

View file

@ -6,7 +6,7 @@ import { generateUUID } from "./utils";
// Typescript / Javascript for the "createTemplates" window
let selectedFile: File | undefined
let tilePixel: {tile: number[], pixel: number[]}
let tilePixel: {tile: [number, number], pixel: [number, number]}
/**Closes this window
* @since 0.1.0-overhaul
@ -20,7 +20,7 @@ function close(){
* @since 0.1.0-overhaul
* @version 2.0
*/
function getCoords(): number[] | undefined{
function getCoords(): [number, number, number, number] | undefined{
// This code will currently take values from the *last* selected pixel
// If the user deselects a pixel, there will still be data which might cause confusion
@ -49,8 +49,8 @@ function setCoords(){
const coordsContainer = document.querySelector("#bm-create-template #coords-container");
if(!coordsContainer){ return }
// If coords is undefined or its length less than 4
if(!coords || coords.length < 4){
// If coords is undefined
if(!coords){
// Then the player hadn't clicked on a pixel or a different error occured
charity.lib.sonner.toast.error("Click on a pixel first")
return;
@ -146,7 +146,7 @@ function getNewTemplateData(): TBlueMarbleTemplate | undefined{
const dataURL = URL.createObjectURL(selectedFile);
return {
coords: coords,
coords: coords as [number, number, number, number],
enabled: true,
uuid: generateUUID(),
name: (nameInput as HTMLInputElement).value,

View file

@ -54,6 +54,7 @@ function flyToTemplate(idx: number){
// Convert to Px and Py used in mercator's functions
const mercatorPixelsX = coordsArr[0]*1000+coordsArr[2]; // Tx * 1000 + Px
const mercatorPixelsY = coordsArr[1]*1000+coordsArr[3]; // Ty * 1000 + Px
const lngLatBounds = charity.game.mercator.pixelsToLatLon(mercatorPixelsX, mercatorPixelsY, zoom);
if(!lngLatBounds){ return };
charity.game.map.flyTo({center: lngLatBounds, zoom: 9}) // Fly to the template's position

View file

@ -74,7 +74,7 @@ export const CharityJSON = z.object({
*/
export const BlueMarbleTemplate = z.object({
name: z.string().optional(), // Name of the template
coords: z.array(z.number()), // 4 element array containing the location of the template
coords: z.array(z.number()).length(4), // 4 element array containing the location of the template
authorID: z.number().optional(), // Numerical ID of the author, taken from wplace
enabled: z.boolean(),
urlLink: z.string().optional(), // Link to the template image's file data