@nichathan-gaming/map-generator
Version:
Creates and generates a 2 dimensional array with various path generation functions.
30 lines (26 loc) • 1.05 kB
JavaScript
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;