import { CANVAS_CONFIG } from '../constants/canvas'; export function getChunkCoordinates(x: number, y: number, chunkSize = CANVAS_CONFIG.DEFAULT_CHUNK_SIZE) { return { chunkX: Math.floor(x / chunkSize), chunkY: Math.floor(y / chunkSize), }; } export function getPixelKey(x: number, y: number): string { return `${x},${y}`; } export function parsePixelKey(key: string): { x: number; y: number } { const [x, y] = key.split(',').map(Number); return { x, y }; } export function getChunkKey(chunkX: number, chunkY: number): string { return `${chunkX},${chunkY}`; } export function parseChunkKey(key: string): { chunkX: number; chunkY: number } { const [chunkX, chunkY] = key.split(',').map(Number); return { chunkX, chunkY }; } export function getChunkBounds(chunkX: number, chunkY: number, chunkSize = CANVAS_CONFIG.DEFAULT_CHUNK_SIZE) { return { minX: chunkX * chunkSize, minY: chunkY * chunkSize, maxX: (chunkX + 1) * chunkSize - 1, maxY: (chunkY + 1) * chunkSize - 1, }; } export function isValidColor(color: string): boolean { const hexRegex = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/; return hexRegex.test(color); } export function clampCoordinate(value: number, min: number, max: number): number { return Math.max(min, Math.min(max, value)); }