forked from MagicBane/Server
Debug code added
This commit is contained in:
@@ -136,38 +136,42 @@ public class Terrain {
|
|||||||
|
|
||||||
public float getInterpolatedTerrainHeight(Vector2f terrainLoc) {
|
public float getInterpolatedTerrainHeight(Vector2f terrainLoc) {
|
||||||
|
|
||||||
float interpolatedHeight;
|
try {
|
||||||
|
float interpolatedHeight;
|
||||||
|
|
||||||
Vector2f terrain_cell = getTerrainCell(terrainLoc);
|
Vector2f terrain_cell = getTerrainCell(terrainLoc);
|
||||||
|
|
||||||
int gridX = (int) Math.floor(terrain_cell.x);
|
int gridX = (int) Math.floor(terrain_cell.x);
|
||||||
int gridY = (int) Math.floor(terrain_cell.y);
|
int gridY = (int) Math.floor(terrain_cell.y);
|
||||||
|
|
||||||
float offsetX = terrain_cell.x % 1;
|
float offsetX = terrain_cell.x % 1;
|
||||||
float offsetY = terrain_cell.y % 1;
|
float offsetY = terrain_cell.y % 1;
|
||||||
|
|
||||||
//get 4 surrounding vertices from the pixel array.
|
//get 4 surrounding vertices from the pixel array.
|
||||||
|
|
||||||
float topLeftHeight;
|
float topLeftHeight;
|
||||||
float topRightHeight;
|
float topRightHeight;
|
||||||
float bottomLeftHeight;
|
float bottomLeftHeight;
|
||||||
float bottomRightHeight;
|
float bottomRightHeight;
|
||||||
|
|
||||||
topLeftHeight = terrain_pixel_data[gridX][gridY];
|
topLeftHeight = terrain_pixel_data[gridX][gridY];
|
||||||
topRightHeight = terrain_pixel_data[gridX + 1][gridY];
|
topRightHeight = terrain_pixel_data[gridX + 1][gridY];
|
||||||
bottomLeftHeight = terrain_pixel_data[gridX][gridY + 1];
|
bottomLeftHeight = terrain_pixel_data[gridX][gridY + 1];
|
||||||
bottomRightHeight = terrain_pixel_data[gridX + 1][gridY + 1];
|
bottomRightHeight = terrain_pixel_data[gridX + 1][gridY + 1];
|
||||||
|
|
||||||
// Interpolate between the 4 vertices
|
// Interpolate between the 4 vertices
|
||||||
|
|
||||||
interpolatedHeight = topLeftHeight * (1 - offsetX) * (1 - offsetY);
|
interpolatedHeight = topLeftHeight * (1 - offsetX) * (1 - offsetY);
|
||||||
interpolatedHeight += topRightHeight * (1 - offsetY) * (offsetX);
|
interpolatedHeight += topRightHeight * (1 - offsetY) * (offsetX);
|
||||||
interpolatedHeight += (bottomLeftHeight * (1 - offsetX) * offsetY);
|
interpolatedHeight += (bottomLeftHeight * (1 - offsetX) * offsetY);
|
||||||
interpolatedHeight += (bottomRightHeight * offsetY * offsetX);
|
interpolatedHeight += (bottomRightHeight * offsetY * offsetX);
|
||||||
|
|
||||||
interpolatedHeight *= this.terrain_scale; // Scale height
|
interpolatedHeight *= this.terrain_scale; // Scale height
|
||||||
|
|
||||||
return interpolatedHeight;
|
return interpolatedHeight;
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public float terrainBlend(Vector2f terrainLoc) {
|
public float terrainBlend(Vector2f terrainLoc) {
|
||||||
|
|||||||
Reference in New Issue
Block a user