import { useEffect, useRef } from 'react' import './LoadingChunks.css' export default ({ regionFiles = [] as string[], stateMap = {} as Record, displayText = false, playerChunk = null as null | { x: number, z: number } }) => { // visualize downloading chunks const regionNumbers = regionFiles.map(x => x.split('.').slice(1, 3).map(Number)) const minX = Math.min(...regionNumbers.map(([x]) => x)) const maxX = Math.max(...regionNumbers.map(([x]) => x)) const minZ = Math.min(...regionNumbers.map(([, z]) => z)) const maxZ = Math.max(...regionNumbers.map(([, z]) => z)) const xChunks = maxX - minX + 1 const zChunks = maxZ - minZ + 1 return
{Array.from({ length: xChunks * zChunks }).map((_, i) => { const x = minX + i % xChunks const z = minZ + Math.floor(i / xChunks) const file = `r.${x}.${z}.mca` const state = stateMap[file] if (!regionFiles.includes(file)) return
return })}
} const Chunk = ({ x, z, state, displayText, currentPlayer }) => { const text = displayText ? `${x},${z}` : undefined return
{/* green dot */} {currentPlayer &&
} {text}
}