UNPKG

@nichathan-gaming/map-generator

Version:

Creates and generates a 2 dimensional array with various path generation functions.

30 lines (26 loc) 1.05 kB
import mapGenerator from "../mapGenerator.js"; import shuffle from "./shuffle.js"; import assertIndex from "./assertIndex.js"; import { assertInstanceOf } from "@nichathan-gaming/assertions"; /** * Gets new indexes based on the given index. * [index[0] + 1, index[1]], * [index[0] - 1, index[1]], * [index[0], index[1] + 1], * [index[0], index[1] - 1] * @param {mapGenerator} map The current game map element * @param {[number, number]} searchIndex The index to use for new indexes * @returns {[number, number][]} A shuffled array of new indexes */ const getConnectedIndexes = (map, searchIndex) => { assertInstanceOf(map, mapGenerator); assertIndex(searchIndex); const shuffledIndexes = shuffle([ [searchIndex[0] + 1, searchIndex[1]], [searchIndex[0] - 1, searchIndex[1]], [searchIndex[0], searchIndex[1] + 1], [searchIndex[0], searchIndex[1] - 1], ]); return shuffledIndexes.filter(el => map.isValidIndex(el)); }; export default getConnectedIndexes;