var west = new Vec2i(chunkPos.X - 1, chunkPos.Y);
var south = new Vec2i(chunkPos.X, chunkPos.Y - 1);
+ bool nullSouthWest = false, nullSouth = false, nullWest = false;
+
/*
For missing corners / cardinal heightmaps...
make fake heightmap dummy
*/
if (allCols.Contains(south_west)) {
- mapCornerChunks.Add(allCols[south_west]);
+ mapCornerChunks.Add(allCols[south_west]);
}
- else {
- mapCornerChunks.Add(targetColMeta);//TODO: Make mirror image - heightmap
+ else {
+ nullSouthWest = true;
+ mapCornerChunks.Add(targetColMeta);//Temporary!
}
if (allCols.Contains(south)) {
mapCornerChunks.Add(allCols[south]);
}
else {
- mapCornerChunks.Add(targetColMeta);//TODO: Make mirror image - heightmap
+ nullSouth = true;
+ mapCornerChunks.Add(targetColMeta);//Temporary!
}
if (allCols.Contains(west)) {
mapCornerChunks.Add(allCols[west]);
}
else {
- mapCornerChunks.Add(targetColMeta);//TODO: Make mirror image - heightmap
+ nullWest = true;
+ mapCornerChunks.Add(targetColMeta);//Temporary!
}
topX = GameMath.Mod(topX, chunkSize);
leftZ = GameMath.Mod(leftZ, chunkSize);
- leftTop = Math.Sign(localY - leftTopMapChunk.HeightMap[topX, leftZ]);
- rightTop = Math.Sign(localY - rightTopMapChunk.HeightMap[topX, rightZ]);
- leftBot = Math.Sign(localY - leftBotMapChunk.HeightMap[botX, leftZ]);
+ leftTop = nullSouthWest ? 0 : Math.Sign(localY - leftTopMapChunk.HeightMap[topX, leftZ]);
+ rightTop = nullSouth ? 0 : Math.Sign(localY - rightTopMapChunk.HeightMap[topX, rightZ]);
+ leftBot = nullWest ? 0 : Math.Sign(localY - leftBotMapChunk.HeightMap[botX, leftZ]);
float slopeness = (leftTop + rightTop + leftBot);