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