UNPKG

@nichathan-gaming/map-generator

Version:

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

25 lines (22 loc) 1.14 kB
import assertIndex from "../helpers/assertIndex.js"; import getConnectedIndexes from "../helpers/getConnectedIndexes.js"; import mapGenerator from "../mapGenerator.js"; import { assertArray, assertInstanceOf } from "@nichathan-gaming/assertions"; /** * Gets new indexes based on the given index for Prims * @param {mapGenerator} map The current game map element * @param {[number, number]} searchIndex The index to use for new indexes * @param {T} baseValue A value that denotes a part of the map that cannot be walked on * @param {(a, b)=>boolean} equalityFunction A function to determine if 2 elements are equal * @returns {[number, number][]} A shuffled array of new indexes */ const getNewIndexes = (map, searchIndex, currentLocations, baseValue) => { assertInstanceOf(map, mapGenerator); assertIndex(searchIndex); assertArray(currentLocations); map.assertBasicType(baseValue); return getConnectedIndexes(map, searchIndex).filter(el=>{ return !currentLocations.includes(el) && !map.isValueAtIndexEqualToValue(el, baseValue); }); }; export default getNewIndexes;