summaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorGeorgios Andreadis <G.Andreadis@student.tudelft.nl>2017-11-10 10:26:59 +0100
committerGitHub <noreply@github.com>2017-11-10 10:26:59 +0100
commitf67bcd2043a416d16431b905de2470ac6005550e (patch)
treefcf84736defa9742f5384ed51f32f5615cd70001 /src/util
parent46137ff8dafa045a376549527df6098e10782420 (diff)
parent319696f82257cc90e06c3a47d17758f8975eb9d0 (diff)
Merge pull request #58 from atlarge-research/chore/bithound
Bithound integration
Diffstat (limited to 'src/util')
-rw-r--r--src/util/tile-calculations.js24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/util/tile-calculations.js b/src/util/tile-calculations.js
index 9a1dc1c0..95886eeb 100644
--- a/src/util/tile-calculations.js
+++ b/src/util/tile-calculations.js
@@ -1,12 +1,16 @@
export function deriveWallLocations(tiles) {
+ const { verticalWalls, horizontalWalls } = getWallSegments(tiles);
+ return mergeWallSegments(verticalWalls, horizontalWalls);
+}
+
+function getWallSegments(tiles) {
const verticalWalls = {};
const horizontalWalls = {};
- // Determine wall segments
-
tiles.forEach(tile => {
const x = tile.positionX,
y = tile.positionY;
+
for (let dX = -1; dX <= 1; dX++) {
for (let dY = -1; dY <= 1; dY++) {
if (Math.abs(dX) === Math.abs(dY)) {
@@ -14,14 +18,15 @@ export function deriveWallLocations(tiles) {
}
let doInsert = true;
- tiles.forEach(otherTile => {
+ for (let tileIndex in tiles) {
if (
- otherTile.positionX === x + dX &&
- otherTile.positionY === y + dY
+ tiles[tileIndex].positionX === x + dX &&
+ tiles[tileIndex].positionY === y + dY
) {
doInsert = false;
+ break;
}
- });
+ }
if (!doInsert) {
continue;
}
@@ -59,10 +64,13 @@ export function deriveWallLocations(tiles) {
}
});
- // Merge walls into longer segments
+ return { verticalWalls, horizontalWalls };
+}
+function mergeWallSegments(vertical, horizontal) {
const result = [];
- const walls = [verticalWalls, horizontalWalls];
+ const walls = [vertical, horizontal];
+
for (let i = 0; i < 2; i++) {
const wallList = walls[i];
for (let a in wallList) {