Ver Fonte

Added distance-sorting of water tiles to determine water height

Tankernn há 8 anos atrás
pai
commit
f60ebcfe33

+ 3 - 1
src/main/java/eu/tankernn/gameEngine/renderEngine/water/WaterMaster.java

@@ -14,6 +14,7 @@ import eu.tankernn.gameEngine.loader.Loader;
 import eu.tankernn.gameEngine.loader.textures.Texture;
 import eu.tankernn.gameEngine.renderEngine.MasterRenderer;
 import eu.tankernn.gameEngine.renderEngine.Scene;
+import eu.tankernn.gameEngine.util.DistanceSorter;
 import eu.tankernn.gameEngine.util.ICamera;
 
 public class WaterMaster {
@@ -31,7 +32,8 @@ public class WaterMaster {
 	}
 	
 	public void renderBuffers(MasterRenderer renderer, Scene scene) {
-		float waterHeight = waterTiles.get(0).getHeight(); //TODO Using only the first watertile is BAD
+		DistanceSorter.sort(waterTiles, scene.getCamera());
+		float waterHeight = waterTiles.get(0).getHeight();
 		GL11.glEnable(GL30.GL_CLIP_DISTANCE0);
 		
 		// Reflection

+ 10 - 1
src/main/java/eu/tankernn/gameEngine/renderEngine/water/WaterTile.java

@@ -1,6 +1,10 @@
 package eu.tankernn.gameEngine.renderEngine.water;
 
-public class WaterTile {
+import org.lwjgl.util.vector.Vector3f;
+
+import eu.tankernn.gameEngine.util.IPositionable;
+
+public class WaterTile implements IPositionable {
 	
 	private float height;
 	private float x, z;
@@ -28,5 +32,10 @@ public class WaterTile {
 	public float getSize() {
 		return size;
 	}
+
+	@Override
+	public Vector3f getPosition() {
+		return new Vector3f(x, height, z);
+	}
 	
 }