forked from MagicBane/Server
cell count cached
This commit is contained in:
@@ -56,6 +56,8 @@ public class HeightMap {
|
|||||||
public float bucketWidthY;
|
public float bucketWidthY;
|
||||||
public float seaLevel = 0;
|
public float seaLevel = 0;
|
||||||
public int[][] pixelColorValues;
|
public int[][] pixelColorValues;
|
||||||
|
public int bucketCountX;
|
||||||
|
public int bucketCountY;
|
||||||
|
|
||||||
public float zone_minBlend;
|
public float zone_minBlend;
|
||||||
public float zone_maxBlend;
|
public float zone_maxBlend;
|
||||||
@@ -95,13 +97,11 @@ public class HeightMap {
|
|||||||
|
|
||||||
// Calculate the data we do not load from table
|
// Calculate the data we do not load from table
|
||||||
|
|
||||||
float numOfBucketsX = this.heightmapImage.getWidth() - 1;
|
bucketCountX = this.heightmapImage.getWidth() - 1;
|
||||||
float calculatedWidthX = this.fullExtentsX / numOfBucketsX;
|
this.bucketWidthX = this.fullExtentsX / bucketCountX;
|
||||||
this.bucketWidthX = calculatedWidthX;
|
|
||||||
|
|
||||||
float numOfBucketsY = this.heightmapImage.getHeight() - 1;
|
bucketCountY = this.heightmapImage.getHeight() - 1;
|
||||||
float calculatedWidthY = this.fullExtentsY / numOfBucketsY;
|
this.bucketWidthY = this.fullExtentsY / bucketCountY;
|
||||||
this.bucketWidthY = calculatedWidthY;
|
|
||||||
|
|
||||||
// Generate pixel array from image data
|
// Generate pixel array from image data
|
||||||
|
|
||||||
@@ -325,23 +325,17 @@ public class HeightMap {
|
|||||||
|
|
||||||
public Vector2f getGridSquare(Vector2f zoneLoc) {
|
public Vector2f getGridSquare(Vector2f zoneLoc) {
|
||||||
|
|
||||||
// Clamp values.
|
|
||||||
|
|
||||||
if (zoneLoc.x < 0)
|
|
||||||
zoneLoc.setX(0);
|
|
||||||
|
|
||||||
if (zoneLoc.x >= this.fullExtentsX)
|
|
||||||
zoneLoc.setX(this.fullExtentsX);
|
|
||||||
|
|
||||||
if (zoneLoc.y < 0)
|
|
||||||
zoneLoc.setY(0);
|
|
||||||
|
|
||||||
if (zoneLoc.y > this.fullExtentsY)
|
|
||||||
zoneLoc.setY(this.fullExtentsY);
|
|
||||||
|
|
||||||
float xBucket = (zoneLoc.x / this.bucketWidthX);
|
float xBucket = (zoneLoc.x / this.bucketWidthX);
|
||||||
float yBucket = (zoneLoc.y / this.bucketWidthY);
|
float yBucket = (zoneLoc.y / this.bucketWidthY);
|
||||||
|
|
||||||
|
// Standing on the pole
|
||||||
|
|
||||||
|
if (xBucket == this.bucketCountX)
|
||||||
|
xBucket--;
|
||||||
|
|
||||||
|
if (yBucket == this.bucketCountY)
|
||||||
|
yBucket--;
|
||||||
|
|
||||||
return new Vector2f(xBucket, yBucket);
|
return new Vector2f(xBucket, yBucket);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user