diff --git a/src/projectzombie/display/DisplayRenderUI.java b/src/projectzombie/display/DisplayRenderUI.java index 5d1a56a..83d95fc 100644 --- a/src/projectzombie/display/DisplayRenderUI.java +++ b/src/projectzombie/display/DisplayRenderUI.java @@ -15,16 +15,19 @@ public class DisplayRenderUI { public static boolean showFPS = false; public static boolean showPos = false; + public static int guiScale = 2; public static void render() { + double s = GlHelpers.getScale() / 10.0; + // Get some text settings Vec2d text_size = new Vec2d(0.5, 0.5); // Render the fps if(showFPS) { GlHelpers.pushMatrix(); - GlHelpers.translate2(-9.5, 9.5); + GlHelpers.translate2(-10*s + 0.5, 10*s - 0.5); GlHelpers.color3(1, 1, 0); Text.render("FPS: " + DisplayStatsEventHandler.fps, text_size); GlHelpers.popMatrix(); @@ -47,7 +50,7 @@ public class DisplayRenderUI // Render the position if(showPos) { GlHelpers.pushMatrix(); - GlHelpers.translate2(-9.5, 9); + GlHelpers.translate2(-10*s + 0.5, 10*s - 1); GlHelpers.color3(1, 1, 0); Text.render("x: " + (int) player.pos.x + ", y: " + (int) player.pos.y, text_size); GlHelpers.color3(1, 1, 1); @@ -61,7 +64,7 @@ public class DisplayRenderUI TextureReference health_bg = Textures.UI_HEALTH_BG; GlHelpers.pushMatrix(); - GlHelpers.translate2(-2, -9); + GlHelpers.translate2(-2*s, -9*s); GlHelpers.begin(); health_bg.texCoord(0, 1); GlHelpers.vertex2(-8, 1); @@ -83,7 +86,7 @@ public class DisplayRenderUI TextureReference gunlevel_tex = Textures.UI_GUN_LEVEL; TextureReference deflevel_tex = Textures.UI_DEFENCE_LEVEL; - GlHelpers.translate2(-9.5, -9); + GlHelpers.translate2(-9.5*s, -9*s); GlHelpers.begin(); ammo_tex.texCoord(0, 1); GlHelpers.vertex2(0, 0); ammo_tex.texCoord(0, 0); GlHelpers.vertex2(0, 2); @@ -109,7 +112,7 @@ public class DisplayRenderUI GlHelpers.popMatrix(); GlHelpers.pushMatrix(); - GlHelpers.translate2(-8.5, -9.25); + GlHelpers.translate2(-8.5*s, -9.25*s); Text.render(Integer.toString(player.ammo), text_size); GlHelpers.translate2(0, 3); Text.render(Integer.toString(player.gun_level), text_size); @@ -121,7 +124,7 @@ public class DisplayRenderUI TextureReference slots_tex = Textures.UI_ITEM_SLOTS; GlHelpers.pushMatrix(); - GlHelpers.translate2(3, -9.5); + GlHelpers.translate2(3*s, -9.5*s); GlHelpers.begin(); slots_tex.texCoord(0, 1); GlHelpers.vertex2(12, 2); @@ -147,7 +150,7 @@ public class DisplayRenderUI Inventory player_inv = player.getInventory(); GlHelpers.pushMatrix(); - GlHelpers.translate2(3.12, -9.5); + GlHelpers.translate2(3.12*s, -9.5*s); // Render the players inventory for(int i=0;i<6;i++) @@ -172,7 +175,8 @@ public class DisplayRenderUI if(!item_active.isEmpty()) { GlHelpers.pushMatrix(); - GlHelpers.translate2(3.2, -7.25); + GlHelpers.translate2(3.12*s, -9.5*s); + GlHelpers.translate2(-0.08, 2.24); Text.render(item_active.item.getName(item_active.meta), text_size); GlHelpers.popMatrix(); } diff --git a/src/projectzombie/input/CursorPosCallback.java b/src/projectzombie/input/CursorPosCallback.java index da2d1f9..1e7a2d1 100644 --- a/src/projectzombie/input/CursorPosCallback.java +++ b/src/projectzombie/input/CursorPosCallback.java @@ -9,8 +9,10 @@ import projectzombie.util.math.vec.Vec2d; public class CursorPosCallback implements GLFWCursorPosCallbackI { @Override - public void invoke(long window, double x, double y) { + public void invoke(long window, double x, double y) + { Main.menu.input.mousePos(new Vec2d(x, y)); + Main.window.setMouseVisibility(!Main.menu.keepMouse); InputMode.Controller = false; @@ -20,8 +22,10 @@ public class CursorPosCallback implements GLFWCursorPosCallbackI int wx = Main.window.getWidth(); int wy = Main.window.getHeight(); - x = x / wx - 0.5; - y = y / wy - 0.5; + + x = (x / wx - 0.5); + y = (y / wy - 0.5); + Main.menu.input.camera(true, x * 60); GLFW.glfwSetCursorPos(window, wx / 2, wy / 2); } diff --git a/src/projectzombie/mainloop/MainloopEnd.java b/src/projectzombie/mainloop/MainloopEnd.java new file mode 100644 index 0000000..c385c09 --- /dev/null +++ b/src/projectzombie/mainloop/MainloopEnd.java @@ -0,0 +1,5 @@ +package projectzombie.mainloop; + +public interface MainloopEnd { + public void end(); +} diff --git a/src/projectzombie/menu/MenuSettings.java b/src/projectzombie/menu/MenuSettings.java index e980253..9558222 100644 --- a/src/projectzombie/menu/MenuSettings.java +++ b/src/projectzombie/menu/MenuSettings.java @@ -52,6 +52,14 @@ public class MenuSettings extends Menu button.setText("Render Distance: "+Chunk.RENDER_DISTANCE); })); + group.add(new ButtonSetting("GUI Scale: " + DisplayRenderUI.guiScale, button -> { + DisplayRenderUI.guiScale += 1; + if(DisplayRenderUI.guiScale > 4) { + DisplayRenderUI.guiScale = 1; + } + button.setText("GUI Scale: " + DisplayRenderUI.guiScale); + })); + /*group.add(new ButtonSetting("Dynamic Lighting: " + (LightingManager.lightingMode == 0 ? "Fast" : "Fancy"), button -> { diff --git a/src/projectzombie/menu/gui/Button.java b/src/projectzombie/menu/gui/Button.java index c18fcd8..c830ec9 100644 --- a/src/projectzombie/menu/gui/Button.java +++ b/src/projectzombie/menu/gui/Button.java @@ -102,6 +102,9 @@ public class Button implements GUIComponent, GUISelectable double mx = pos.x / Main.window.getWidth() * 20 - 10; double my = pos.y / Main.window.getHeight() * 20 - 10; + mx = mx * GlHelpers.getScale() / 10; + my = my * GlHelpers.getScale() / 10; + double m = 3; double w = textSize.x * m * 8 / GlHelpers.getAspectRatio(); double h = textSize.x * m / 2; diff --git a/src/projectzombie/menu/gui/Overlay.java b/src/projectzombie/menu/gui/Overlay.java index 53fcea6..5a86239 100644 --- a/src/projectzombie/menu/gui/Overlay.java +++ b/src/projectzombie/menu/gui/Overlay.java @@ -19,13 +19,14 @@ public class Overlay implements GUIComponent @Override public void render(Vec2d mousePos) { + int s = GlHelpers.getScale(); GlHelpers.disableTexture2d(); GlHelpers.color4(color.x, color.y, color.z, color.m); GlHelpers.begin(); - GlHelpers.vertex3(-10, -10, 0); - GlHelpers.vertex3(-10, 10, 0); - GlHelpers.vertex3(10, 10, 0); - GlHelpers.vertex3(10, -10, 0); + GlHelpers.vertex3(-s, -s, 0); + GlHelpers.vertex3(-s, s, 0); + GlHelpers.vertex3(s, s, 0); + GlHelpers.vertex3(s, -s, 0); GlHelpers.end(); GlHelpers.color4(1, 1, 1, 1); GlHelpers.enableTexture2d(); diff --git a/src/projectzombie/settings/Settings.java b/src/projectzombie/settings/Settings.java index e863551..5055443 100644 --- a/src/projectzombie/settings/Settings.java +++ b/src/projectzombie/settings/Settings.java @@ -35,6 +35,12 @@ public class Settings implements IBdfClassManager } else { DisplayRenderUI.showPos = false; } + + if(nl.get("gui_scale").getType() == BdfTypes.INTEGER) { + DisplayRenderUI.guiScale = nl.get("gui_scale").getInteger(); + } else { + DisplayRenderUI.guiScale = 2; + } } @Override @@ -43,6 +49,7 @@ public class Settings implements IBdfClassManager nl.set("render_distance", BdfObject.withInteger(Chunk.RENDER_DISTANCE)); nl.set("show_fps", BdfObject.withBoolean(DisplayRenderUI.showFPS)); nl.set("show_pos", BdfObject.withBoolean(DisplayRenderUI.showPos)); + nl.set("gui_scale", BdfObject.withInteger(DisplayRenderUI.guiScale)); } public static void init() { diff --git a/src/projectzombie/tiles/TileLadder.java b/src/projectzombie/tiles/TileLadder.java index 4a799a8..7deadd4 100644 --- a/src/projectzombie/tiles/TileLadder.java +++ b/src/projectzombie/tiles/TileLadder.java @@ -16,6 +16,7 @@ public class TileLadder extends TileVertical this.tileHitbox = 0.3; this.unbreakable = true; this.emitsLight = true; + this.passNaturalLight = false; } @Override diff --git a/src/projectzombie/tiles/TileRock.java b/src/projectzombie/tiles/TileRock.java index 84234f3..89d0df9 100644 --- a/src/projectzombie/tiles/TileRock.java +++ b/src/projectzombie/tiles/TileRock.java @@ -18,7 +18,7 @@ public class TileRock extends TileVertical @Override public double getLightDissipation(TileState state) { - return 1/2.0; + return 1/8.0; } } diff --git a/src/projectzombie/tiles/TileTree.java b/src/projectzombie/tiles/TileTree.java index f370d28..f305073 100644 --- a/src/projectzombie/tiles/TileTree.java +++ b/src/projectzombie/tiles/TileTree.java @@ -17,7 +17,7 @@ public class TileTree extends TileVertical @Override public double getLightDissipation(TileState state) { - return 1/2.0; + return 1/8.0; } diff --git a/src/projectzombie/util/gl/GlHelpers.java b/src/projectzombie/util/gl/GlHelpers.java index f0c49f4..65ff339 100644 --- a/src/projectzombie/util/gl/GlHelpers.java +++ b/src/projectzombie/util/gl/GlHelpers.java @@ -20,6 +20,7 @@ import static org.lwjgl.opengl.GL11.glVertex2d; import static org.lwjgl.opengl.GL11.glVertex3d; import projectzombie.Main; +import projectzombie.display.DisplayRenderUI; public class GlHelpers { @@ -47,13 +48,23 @@ public class GlHelpers glEnd(); } + public static int getScale() { + if(DisplayRenderUI.guiScale == 1) return 6; + if(DisplayRenderUI.guiScale == 2) return 10; + if(DisplayRenderUI.guiScale == 3) return 14; + if(DisplayRenderUI.guiScale == 4) return 18; + return 0; + } + public static void vertex3(double x, double y, double z) { - glVertex3d(x/10, y/10, z/10); + int s = getScale(); + glVertex3d(x/s, y/s, z/s); } public static void vertex2(double x, double y) { double aspect_ratio = getAspectRatio(); - glVertex2d(x/10/aspect_ratio, y/10); + int s = getScale(); + glVertex2d(x/s/aspect_ratio, y/s); } public static void color3(double r, double g, double b) { @@ -69,11 +80,13 @@ public class GlHelpers } public static void translate3(double x, double y, double z) { - glTranslated(x/10, y/10, z/10); + int s = getScale(); + glTranslated(x/s, y/s, z/s); } public static void translate2(double x, double y) { - glTranslated(x/10, y/10, 0); + int s = getScale(); + glTranslated(x/s, y/s, 0); } public static void disableCullFace() { diff --git a/src/projectzombie/util/math/range/Range2i.java b/src/projectzombie/util/math/range/Range2i.java index 4790730..f9a9a32 100644 --- a/src/projectzombie/util/math/range/Range2i.java +++ b/src/projectzombie/util/math/range/Range2i.java @@ -10,4 +10,8 @@ public class Range2i this.mx = mx; this.my = my; } + + public int maxValue() { + return mx * my; + } } diff --git a/src/projectzombie/util/math/range/Range3i.java b/src/projectzombie/util/math/range/Range3i.java index aea0fdc..58bae15 100644 --- a/src/projectzombie/util/math/range/Range3i.java +++ b/src/projectzombie/util/math/range/Range3i.java @@ -12,4 +12,8 @@ public class Range3i this.my = my; this.mz = mz; } + + public int maxValue() { + return mx * my * mz; + } } diff --git a/src/projectzombie/util/math/range/Range4i.java b/src/projectzombie/util/math/range/Range4i.java index 12b908b..9a04e9a 100644 --- a/src/projectzombie/util/math/range/Range4i.java +++ b/src/projectzombie/util/math/range/Range4i.java @@ -14,4 +14,8 @@ public class Range4i this.mz = mz; this.mm = mm; } + + public int maxValue() { + return mx * my * mz * mm; + } }