diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/PacketHandler.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/PacketHandler.java index c5234016e..a5d94d78f 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/PacketHandler.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/PacketHandler.java @@ -526,7 +526,7 @@ public class PacketHandler { } connection.getPlayer().setSpawnConfirmed(true); connection.getRenderProperties().getController().getCameraMovement().setRotation(pkg.getRotation()); - connection.getRenderProperties().getController().setPlayerPos(new Vec3(pkg.getLocation())); + connection.getRenderProperties().getController().setPlayerPosition(new Vec3(pkg.getLocation())); } public void handle(PacketAttachEntity pkg) { diff --git a/src/main/java/de/bixilon/minosoft/render/OpenGLWindow.java b/src/main/java/de/bixilon/minosoft/render/OpenGLWindow.java index 9ebe65cf4..5dfb1dda3 100644 --- a/src/main/java/de/bixilon/minosoft/render/OpenGLWindow.java +++ b/src/main/java/de/bixilon/minosoft/render/OpenGLWindow.java @@ -74,7 +74,7 @@ public class OpenGLWindow { } try (MemoryStack stack = stackPush()) { - IntBuffer pWidth = stack.mallocInt(1); + IntBuffer pWidth = stack.mallocInt(1); IntBuffer pHeight = stack.mallocInt(1); glfwGetWindowSize(windowId, pWidth, pHeight); @@ -173,6 +173,8 @@ public class OpenGLWindow { lastFrame = currentFrame; setupPerspective(); + + glfwSetWindowTitle(windowId, String.format("Minosoft game window (%s FPS)", 1/deltaTime)); return deltaTime; } diff --git a/src/main/java/de/bixilon/minosoft/render/movement/CollisionHandler.java b/src/main/java/de/bixilon/minosoft/render/movement/CollisionHandler.java index ba8324344..237218962 100644 --- a/src/main/java/de/bixilon/minosoft/render/movement/CollisionHandler.java +++ b/src/main/java/de/bixilon/minosoft/render/movement/CollisionHandler.java @@ -17,7 +17,6 @@ import de.bixilon.minosoft.data.mappings.versions.VersionMapping; import de.bixilon.minosoft.data.world.BlockPosition; import de.bixilon.minosoft.data.world.World; import de.bixilon.minosoft.protocol.network.Connection; -import de.bixilon.minosoft.render.blockModels.BlockModelLoader; import de.bixilon.minosoft.render.utility.AdditionalMath; import de.bixilon.minosoft.render.utility.Vec3; @@ -33,42 +32,42 @@ public class CollisionHandler { } public void handleCollisions() { - if (isPositionValid(controller.playerPos)) { + if (isPositionValid(controller.playerPosition)) { // the player currently isn't colliding with with anything so the player Position does not have to be adjusted return; } xAxisCollision(); yAxisCollision(); zAxisCollision(); - if (!isPositionValid(controller.playerPos)) { - controller.playerPos.x = controller.oldPos.x; - controller.playerPos.z = controller.oldPos.z; + if (!isPositionValid(controller.playerPosition)) { + controller.playerPosition.x = controller.oldPosition.x; + controller.playerPosition.z = controller.oldPosition.z; } } private void xAxisCollision() { - double deltaX = controller.playerPos.x - controller.oldPos.x; + double deltaX = controller.playerPosition.x - controller.oldPosition.x; if (deltaX == 0) { return; } - Vec3 testPos = controller.oldPos.copy().add(deltaX, 0, 0); + Vec3 testPos = controller.oldPosition.copy().add(deltaX, 0, 0); if (isPositionValid(testPos)) { return; } - controller.playerPos.x = controller.oldPos.x; + controller.playerPosition.x = controller.oldPosition.x; controller.playerVelocity.x = 0; } private void yAxisCollision() { - double deltaY = controller.playerPos.y - controller.oldPos.y; + double deltaY = controller.playerPosition.y - controller.oldPosition.y; if (deltaY == 0) { return; } - Vec3 testPos = controller.oldPos.copy().add(0, deltaY, 0); + Vec3 testPos = controller.oldPosition.copy().add(0, deltaY, 0); if (isPositionValid(testPos)) { return; } - controller.playerPos.y = controller.oldPos.y; + controller.playerPosition.y = controller.oldPosition.y; controller.playerVelocity.y = 0; if (deltaY < 0) { @@ -77,15 +76,15 @@ public class CollisionHandler { } private void zAxisCollision() { - double deltaZ = controller.playerPos.z - controller.oldPos.z; + double deltaZ = controller.playerPosition.z - controller.oldPosition.z; if (deltaZ == 0) { return; } - Vec3 testPos = controller.oldPos.copy().add(0, 0, deltaZ); + Vec3 testPos = controller.oldPosition.copy().add(0, 0, deltaZ); if (isPositionValid(testPos)) { return; } - controller.playerPos.z = controller.oldPos.z; + controller.playerPosition.z = controller.oldPosition.z; controller.playerVelocity.z = 0; } diff --git a/src/main/java/de/bixilon/minosoft/render/movement/PlayerController.java b/src/main/java/de/bixilon/minosoft/render/movement/PlayerController.java index c30728ba8..ccfed0b28 100644 --- a/src/main/java/de/bixilon/minosoft/render/movement/PlayerController.java +++ b/src/main/java/de/bixilon/minosoft/render/movement/PlayerController.java @@ -27,10 +27,10 @@ public class PlayerController { private static final float gravity = 13; private final Connection connection; - public Vec3 oldPos; + public Vec3 oldPosition; CameraMovement cameraMovement; PlayerMovement playerMovement; - Vec3 playerPos = new Vec3(); // the feet position of the player + Vec3 playerPosition = new Vec3(); // the feet position of the player Vec3 playerVelocity = new Vec3(); private boolean onGround; private boolean enableGravity; @@ -51,10 +51,10 @@ public class PlayerController { } if (GameWindow.paused) { cameraMovement.loop(); - glTranslated(-playerPos.x, -(playerPos.y + playerHeight - 0.2f), -playerPos.z); + glTranslated(-playerPosition.x, -(playerPosition.y + playerHeight - 0.2f), -playerPosition.z); return; } - oldPos = playerPos.copy(); + oldPosition = playerPosition.copy(); GameModes gameMode = connection.getPlayer().getGameMode(); enableGravity = gameMode != GameModes.CREATIVE && gameMode != GameModes.SPECTATOR; @@ -64,12 +64,12 @@ public class PlayerController { applyVelocity(deltaTime); if (gameMode == GameModes.SPECTATOR) { - glTranslated(-playerPos.x, -(playerPos.y + playerHeight - 0.2f), -playerPos.z); + glTranslated(-playerPosition.x, -(playerPosition.y + playerHeight - 0.2f), -playerPosition.z); return; } handleCollisions(connection.getPlayer().getWorld()); - glTranslated(-playerPos.x, -(playerPos.y + playerHeight - 0.2f), -playerPos.z); + glTranslated(-playerPosition.x, -(playerPosition.y + playerHeight - 0.2f), -playerPosition.z); } private void handleCollisions(World world) { @@ -85,16 +85,12 @@ public class PlayerController { return enableGravity; } - public Vec3 getPlayerPos() { - return playerPos; + public Vec3 getPlayerPosition() { + return playerPosition; } - public void setPlayerPos(Vec3 playerPos) { - this.playerPos = playerPos; - } - - private void applyVelocity(float deltaTime) { - playerPos.add(Vec3.mul(playerVelocity, deltaTime)); + public void setPlayerPosition(Vec3 playerPosition) { + this.playerPosition = playerPosition; } private void handleGravity(float deltaTime) { @@ -129,4 +125,8 @@ public class PlayerController { public float getPlayerHeight() { return playerHeight; } + + private void applyVelocity(float deltaTime) { + playerPosition.add(Vec3.mul(playerVelocity, deltaTime)); + } } diff --git a/src/main/java/de/bixilon/minosoft/render/movement/PlayerMovement.java b/src/main/java/de/bixilon/minosoft/render/movement/PlayerMovement.java index 2a4b99f77..7e5471b83 100644 --- a/src/main/java/de/bixilon/minosoft/render/movement/PlayerMovement.java +++ b/src/main/java/de/bixilon/minosoft/render/movement/PlayerMovement.java @@ -25,7 +25,7 @@ public class PlayerMovement { private final Connection connection; private Vec3 cameraFront; - private Vec3 playerPos; + private Vec3 playerPosition; public PlayerMovement(Connection connection) { this.connection = connection; @@ -35,26 +35,26 @@ public class PlayerMovement { float cameraSpeed = FLY_SPEED / deltaTime; if (glfwGetKey(GameWindow.getOpenGLWindow().getWindowId(), GLFW_KEY_W) == GLFW_PRESS) { - playerPos.add(Vec3.mul(cameraFront, -cameraSpeed * deltaTime)); + playerPosition.add(Vec3.mul(cameraFront, -cameraSpeed * deltaTime)); } if (glfwGetKey(GameWindow.getOpenGLWindow().getWindowId(), GLFW_KEY_S) == GLFW_PRESS) { - playerPos.add(Vec3.mul(cameraFront, cameraSpeed * deltaTime)); + playerPosition.add(Vec3.mul(cameraFront, cameraSpeed * deltaTime)); } if (glfwGetKey(GameWindow.getOpenGLWindow().getWindowId(), GLFW_KEY_A) == GLFW_PRESS) { - playerPos.add(Vec3.mul(Vec3.cross(CAMERA_UP, cameraFront), -cameraSpeed * deltaTime)); + playerPosition.add(Vec3.mul(Vec3.cross(CAMERA_UP, cameraFront), -cameraSpeed * deltaTime)); } if (glfwGetKey(GameWindow.getOpenGLWindow().getWindowId(), GLFW_KEY_D) == GLFW_PRESS) { - playerPos.add(Vec3.mul(Vec3.cross(CAMERA_UP, cameraFront), cameraSpeed * deltaTime)); + playerPosition.add(Vec3.mul(Vec3.cross(CAMERA_UP, cameraFront), cameraSpeed * deltaTime)); } if (glfwGetKey(GameWindow.getOpenGLWindow().getWindowId(), GLFW_KEY_LEFT_SHIFT) == GLFW_PRESS) { if (!connection.getRenderProperties().getController().isGravityEnabled()) { - playerPos.add(0, -cameraSpeed * deltaTime, 0); + playerPosition.add(0, -cameraSpeed * deltaTime, 0); } } if (glfwGetKey(GameWindow.getOpenGLWindow().getWindowId(), GLFW_KEY_SPACE) == GLFW_PRESS) { if (!connection.getRenderProperties().getController().isGravityEnabled()) { - playerPos.add(0, cameraSpeed * deltaTime, 0); + playerPosition.add(0, cameraSpeed * deltaTime, 0); } if (connection.getRenderProperties().getController().isOnGround()) { connection.getRenderProperties().getController().jump(); @@ -64,7 +64,11 @@ public class PlayerMovement { public void loop(float deltaTime) { cameraFront = connection.getRenderProperties().getController().getCameraMovement().getCameraFront(); - playerPos = connection.getRenderProperties().getController().getPlayerPos(); + playerPosition = connection.getRenderProperties().getController().getPlayerPosition(); processInput(deltaTime); } + + public void setPlayerPosition(Vec3 playerPosition) { + this.playerPosition = playerPosition; + } }