continue;
}
- //if (mapCornerChunks.Any(chks => chks == null)) {
- //Logger.Warning("mapCornerChunks A.W.O.L. near : X{0} Y{1} Z{2} - ", localX, localY, localZ);
- //continue;
- //}
-
float slopeBoost = 1f;
- int leftTop, rightTop, leftBot;
-
- int up_X = localX;
- int low_X = localX + 1;
- int left_Z = localZ;
- int right_Z = localZ + 1;
+ int northH, northWestH, westH;
- //topX = GameMath.Mod(topX, chunkSize + 1);
- //leftZ = GameMath.Mod(leftZ, chunkSize + 1);
+ int north_X = localX + 1;
+ int north_Z = localZ;
+ int west_X = localX;
+ int west_Z = localZ + 1;
+ int northWest_X = localX;
+ int northWest_Z = localZ;
- leftTop = Math.Sign(localY - (overlapHeightmap[up_X, left_Z] == 0 ? avgOverlap_Y : overlapHeightmap[up_X, left_Z]));
- rightTop = Math.Sign(localY - (overlapHeightmap[up_X, right_Z]== 0 ? avgOverlap_Y : overlapHeightmap[up_X, right_Z]));
- leftBot = Math.Sign(localY - (overlapHeightmap[low_X, left_Z]== 0 ? avgOverlap_Y : overlapHeightmap[low_X, left_Z]));
+
+ northH = Math.Sign(localY - (overlapHeightmap[north_X, north_Z] == 0 ? avgOverlap_Y : overlapHeightmap[north_X, north_Z]));
+ northWestH = Math.Sign(localY - (overlapHeightmap[northWest_X, northWest_Z] == 0 ? avgOverlap_Y : overlapHeightmap[northWest_X, northWest_Z]));
+ westH = Math.Sign(localY - (overlapHeightmap[west_X, west_Z] == 0 ? avgOverlap_Y : overlapHeightmap[west_X, west_Z]));
- float slopeness = (leftTop + rightTop + leftBot);
+ float slopeness = (northH + northWestH + westH);
if (slopeness > 0) slopeBoost = 1.2f;
if (slopeness < 0) slopeBoost = 0.8f;