diff options
Diffstat (limited to 'src/main/java/com/thatgravyboat/skyblockhud/Utils.java')
-rw-r--r-- | src/main/java/com/thatgravyboat/skyblockhud/Utils.java | 772 |
1 files changed, 389 insertions, 383 deletions
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/Utils.java b/src/main/java/com/thatgravyboat/skyblockhud/Utils.java index c52af7c..9f6712c 100644 --- a/src/main/java/com/thatgravyboat/skyblockhud/Utils.java +++ b/src/main/java/com/thatgravyboat/skyblockhud/Utils.java @@ -22,404 +22,410 @@ import org.lwjgl.opengl.GL14; public class Utils { - private static LinkedList<Integer> guiScales = new LinkedList<>(); - private static ScaledResolution lastScale = new ScaledResolution( - Minecraft.getMinecraft() - ); - //Labymod compatibility - private static FloatBuffer projectionMatrixOld = BufferUtils.createFloatBuffer( - 16 - ); - private static FloatBuffer modelviewMatrixOld = BufferUtils.createFloatBuffer( - 16 - ); - - public static String removeColor(String input) { - return input.replaceAll("(?i)\\u00A7.", ""); - } - - public static String removeWhiteSpaceAndRemoveWord( - String input, - String replace - ) { - return input.toLowerCase().replace(" ", "").replace(replace, ""); - } - - public static boolean isPlayerHoldingRedstone(EntityPlayerSP player) { - if (!SkyblockHud.config.main.requireRedstone) return true; - ArrayList<Item> redstoneItems = new ArrayList<>( - Arrays.asList( - Items.redstone, - Items.repeater, - Items.comparator, - Item.getByNameOrId("minecraft:redstone_torch") - ) + private static LinkedList<Integer> guiScales = new LinkedList<>(); + private static ScaledResolution lastScale = new ScaledResolution( + Minecraft.getMinecraft() ); - if (player.getHeldItem() != null) return redstoneItems.contains( - player.getHeldItem().getItem() + //Labymod compatibility + private static FloatBuffer projectionMatrixOld = BufferUtils.createFloatBuffer( + 16 ); - return false; - } - - public static boolean inRangeInclusive(int value, int min, int max) { - return value <= max && value >= min; - } - - public static int whatRomanNumeral(String roman) { - switch (roman.toLowerCase()) { - case "i": - return 1; - case "ii": - return 2; - case "iii": - return 3; - case "iv": - return 4; - case "v": - return 5; - case "vi": - return 6; - case "vii": - return 7; - case "viii": - return 8; - case "ix": - return 9; - case "x": - return 10; - default: - return 0; + private static FloatBuffer modelviewMatrixOld = BufferUtils.createFloatBuffer( + 16 + ); + + public static String removeColor(String input) { + return input.replaceAll("(?i)\\u00A7.", ""); } - } - - public static String intToRomanNumeral(int i) { - switch (i) { - case 1: - return "I"; - case 2: - return "II"; - case 3: - return "III"; - case 4: - return "IV"; - case 5: - return "V"; - case 6: - return "VI"; - case 7: - return "VII"; - case 8: - return "VIII"; - case 9: - return "IX"; - case 10: - return "X"; - default: - return ""; + + public static String removeWhiteSpaceAndRemoveWord( + String input, + String replace + ) { + return input.toLowerCase().replace(" ", "").replace(replace, ""); } - } - - public static boolean overlayShouldRender( - RenderGameOverlayEvent.ElementType type, - boolean... booleans - ) { - return overlayShouldRender( - false, - type, - RenderGameOverlayEvent.ElementType.HOTBAR, - booleans - ); - } - - public static boolean overlayShouldRender( - boolean hideOnf3, - RenderGameOverlayEvent.ElementType type, - RenderGameOverlayEvent.ElementType checkType, - boolean... booleans - ) { - Minecraft mc = Minecraft.getMinecraft(); - boolean shouldRender; - if (booleans.length > 1) { - for (boolean aBoolean : booleans) if (!aBoolean) return false; - shouldRender = true; - } else shouldRender = booleans.length != 1 || booleans[0]; - if (hideOnf3) { - if ( - mc.gameSettings.showDebugInfo || - ( - mc.gameSettings.keyBindPlayerList.isKeyDown() && - ( - !mc.isIntegratedServerRunning() || - mc.thePlayer.sendQueue.getPlayerInfoMap().size() > 1 - ) - ) - ) { + + public static boolean isPlayerHoldingRedstone(EntityPlayerSP player) { + if (!SkyblockHud.config.main.requireRedstone) return true; + ArrayList<Item> redstoneItems = new ArrayList<>( + Arrays.asList( + Items.redstone, + Items.repeater, + Items.comparator, + Item.getByNameOrId("minecraft:redstone_torch") + ) + ); + if (player.getHeldItem() != null) return redstoneItems.contains( + player.getHeldItem().getItem() + ); return false; - } } - return ( - shouldRender && - ((type == null && Loader.isModLoaded("labymod")) || type == checkType) - ); - } - - public static void drawStringScaledMaxWidth( - String str, - FontRenderer fr, - float x, - float y, - boolean shadow, - int len, - int colour - ) { - int strLen = fr.getStringWidth(str); - float factor = len / (float) strLen; - factor = Math.min(1, factor); - - drawStringScaled(str, fr, x, y, shadow, colour, factor); - } - - public static void drawStringScaled( - String str, - FontRenderer fr, - float x, - float y, - boolean shadow, - int colour, - float factor - ) { - GlStateManager.scale(factor, factor, 1); - fr.drawString(str, x / factor, y / factor, colour, shadow); - GlStateManager.scale(1 / factor, 1 / factor, 1); - } - - public static void drawStringCenteredScaled( - String str, - FontRenderer fr, - float x, - float y, - boolean shadow, - int len, - int colour - ) { - int strLen = fr.getStringWidth(str); - float factor = len / (float) strLen; - float fontHeight = 8 * factor; - - drawStringScaled( - str, - fr, - x - len / 2f, - y - fontHeight / 2f, - shadow, - colour, - factor - ); - } - - public static void drawTexturedRect( - float x, - float y, - float width, - float height, - float uMin, - float uMax, - float vMin, - float vMax, - int filter - ) { - GlStateManager.enableTexture2D(); - GlStateManager.enableBlend(); - GL14.glBlendFuncSeparate( - GL11.GL_SRC_ALPHA, - GL11.GL_ONE_MINUS_SRC_ALPHA, - GL11.GL_ONE, - GL11.GL_ONE_MINUS_SRC_ALPHA - ); - GL11.glTexParameteri( - GL11.GL_TEXTURE_2D, - GL11.GL_TEXTURE_MIN_FILTER, - filter - ); - GL11.glTexParameteri( - GL11.GL_TEXTURE_2D, - GL11.GL_TEXTURE_MAG_FILTER, - filter - ); + public static boolean inRangeInclusive(int value, int min, int max) { + return value <= max && value >= min; + } - Tessellator tessellator = Tessellator.getInstance(); - WorldRenderer worldrenderer = tessellator.getWorldRenderer(); - worldrenderer.begin(7, DefaultVertexFormats.POSITION_TEX); - worldrenderer.pos(x, y + height, 0.0D).tex(uMin, vMax).endVertex(); - worldrenderer.pos(x + width, y + height, 0.0D).tex(uMax, vMax).endVertex(); - worldrenderer.pos(x + width, y, 0.0D).tex(uMax, vMin).endVertex(); - worldrenderer.pos(x, y, 0.0D).tex(uMin, vMin).endVertex(); - tessellator.draw(); - - GL11.glTexParameteri( - GL11.GL_TEXTURE_2D, - GL11.GL_TEXTURE_MIN_FILTER, - GL11.GL_NEAREST - ); - GL11.glTexParameteri( - GL11.GL_TEXTURE_2D, - GL11.GL_TEXTURE_MAG_FILTER, - GL11.GL_NEAREST - ); + public static int whatRomanNumeral(String roman) { + switch (roman.toLowerCase()) { + case "i": + return 1; + case "ii": + return 2; + case "iii": + return 3; + case "iv": + return 4; + case "v": + return 5; + case "vi": + return 6; + case "vii": + return 7; + case "viii": + return 8; + case "ix": + return 9; + case "x": + return 10; + default: + return 0; + } + } - GlStateManager.disableBlend(); - } - - public static void drawTexturedRect( - float x, - float y, - float width, - float height - ) { - drawTexturedRect(x, y, width, height, 0, 1, 0, 1); - } - - public static void drawTexturedRect( - float x, - float y, - float width, - float height, - int filter - ) { - drawTexturedRect(x, y, width, height, 0, 1, 0, 1, filter); - } - - public static void drawTexturedRect( - float x, - float y, - float width, - float height, - float uMin, - float uMax, - float vMin, - float vMax - ) { - drawTexturedRect( - x, - y, - width, - height, - uMin, - uMax, - vMin, - vMax, - GL11.GL_LINEAR - ); - } - - public static void resetGuiScale() { - guiScales.clear(); - } - - public static ScaledResolution peekGuiScale() { - return lastScale; - } - - public static ScaledResolution pushGuiScale(int scale) { - if (guiScales.size() == 0) { - if (Loader.isModLoaded("labymod")) { - GL11.glGetFloat(GL11.GL_PROJECTION_MATRIX, projectionMatrixOld); - GL11.glGetFloat(GL11.GL_MODELVIEW_MATRIX, modelviewMatrixOld); - } + public static String intToRomanNumeral(int i) { + switch (i) { + case 1: + return "I"; + case 2: + return "II"; + case 3: + return "III"; + case 4: + return "IV"; + case 5: + return "V"; + case 6: + return "VI"; + case 7: + return "VII"; + case 8: + return "VIII"; + case 9: + return "IX"; + case 10: + return "X"; + default: + return ""; + } + } + + public static boolean overlayShouldRender( + RenderGameOverlayEvent.ElementType type, + boolean... booleans + ) { + return overlayShouldRender( + false, + type, + RenderGameOverlayEvent.ElementType.HOTBAR, + booleans + ); + } + + public static boolean overlayShouldRender( + boolean hideOnf3, + RenderGameOverlayEvent.ElementType type, + RenderGameOverlayEvent.ElementType checkType, + boolean... booleans + ) { + Minecraft mc = Minecraft.getMinecraft(); + boolean shouldRender; + if (booleans.length > 1) { + for (boolean aBoolean : booleans) if (!aBoolean) return false; + shouldRender = true; + } else shouldRender = booleans.length != 1 || booleans[0]; + if (hideOnf3) { + if ( + mc.gameSettings.showDebugInfo || + ( + mc.gameSettings.keyBindPlayerList.isKeyDown() && + ( + !mc.isIntegratedServerRunning() || + mc.thePlayer.sendQueue.getPlayerInfoMap().size() > 1 + ) + ) + ) { + return false; + } + } + return ( + shouldRender && + ( + (type == null && Loader.isModLoaded("labymod")) || + type == checkType + ) + ); } - if (scale < 0) { - if (guiScales.size() > 0) { - guiScales.pop(); - } - } else { - if (scale == 0) { - guiScales.push(Minecraft.getMinecraft().gameSettings.guiScale); - } else { - guiScales.push(scale); - } + public static void drawStringScaledMaxWidth( + String str, + FontRenderer fr, + float x, + float y, + boolean shadow, + int len, + int colour + ) { + int strLen = fr.getStringWidth(str); + float factor = len / (float) strLen; + factor = Math.min(1, factor); + + drawStringScaled(str, fr, x, y, shadow, colour, factor); } - int newScale = guiScales.size() > 0 - ? Math.max(0, Math.min(4, guiScales.peek())) - : Minecraft.getMinecraft().gameSettings.guiScale; - if (newScale == 0) newScale = - Minecraft.getMinecraft().gameSettings.guiScale; + public static void drawStringScaled( + String str, + FontRenderer fr, + float x, + float y, + boolean shadow, + int colour, + float factor + ) { + GlStateManager.scale(factor, factor, 1); + fr.drawString(str, x / factor, y / factor, colour, shadow); + GlStateManager.scale(1 / factor, 1 / factor, 1); + } - int oldScale = Minecraft.getMinecraft().gameSettings.guiScale; - Minecraft.getMinecraft().gameSettings.guiScale = newScale; - ScaledResolution scaledresolution = new ScaledResolution( - Minecraft.getMinecraft() - ); - Minecraft.getMinecraft().gameSettings.guiScale = oldScale; - - if (guiScales.size() > 0) { - GlStateManager.viewport( - 0, - 0, - Minecraft.getMinecraft().displayWidth, - Minecraft.getMinecraft().displayHeight - ); - GlStateManager.matrixMode(GL11.GL_PROJECTION); - GlStateManager.loadIdentity(); - GlStateManager.ortho( - 0.0D, - scaledresolution.getScaledWidth_double(), - scaledresolution.getScaledHeight_double(), - 0.0D, - 1000.0D, - 3000.0D - ); - GlStateManager.matrixMode(GL11.GL_MODELVIEW); - GlStateManager.loadIdentity(); - GlStateManager.translate(0.0F, 0.0F, -2000.0F); - } else { - if ( - Loader.isModLoaded("labymod") && - projectionMatrixOld.limit() > 0 && - modelviewMatrixOld.limit() > 0 - ) { - GlStateManager.matrixMode(GL11.GL_PROJECTION); - GL11.glLoadMatrix(projectionMatrixOld); - GlStateManager.matrixMode(GL11.GL_MODELVIEW); - GL11.glLoadMatrix(modelviewMatrixOld); - } else { - GlStateManager.matrixMode(GL11.GL_PROJECTION); - GlStateManager.loadIdentity(); - GlStateManager.ortho( - 0.0D, - scaledresolution.getScaledWidth_double(), - scaledresolution.getScaledHeight_double(), - 0.0D, - 1000.0D, - 3000.0D + public static void drawStringCenteredScaled( + String str, + FontRenderer fr, + float x, + float y, + boolean shadow, + int len, + int colour + ) { + int strLen = fr.getStringWidth(str); + float factor = len / (float) strLen; + float fontHeight = 8 * factor; + + drawStringScaled( + str, + fr, + x - len / 2f, + y - fontHeight / 2f, + shadow, + colour, + factor ); - GlStateManager.matrixMode(GL11.GL_MODELVIEW); - GlStateManager.loadIdentity(); - GlStateManager.translate(0.0F, 0.0F, -2000.0F); - } } - lastScale = scaledresolution; - return scaledresolution; - } - - public static void drawStringCentered( - String str, - FontRenderer fr, - float x, - float y, - boolean shadow, - int colour - ) { - int strLen = fr.getStringWidth(str); - - float x2 = x - strLen / 2f; - float y2 = y - fr.FONT_HEIGHT / 2f; - - GL11.glTranslatef(x2, y2, 0); - fr.drawString(str, 0, 0, colour, shadow); - GL11.glTranslatef(-x2, -y2, 0); - } + public static void drawTexturedRect( + float x, + float y, + float width, + float height, + float uMin, + float uMax, + float vMin, + float vMax, + int filter + ) { + GlStateManager.enableTexture2D(); + GlStateManager.enableBlend(); + GL14.glBlendFuncSeparate( + GL11.GL_SRC_ALPHA, + GL11.GL_ONE_MINUS_SRC_ALPHA, + GL11.GL_ONE, + GL11.GL_ONE_MINUS_SRC_ALPHA + ); + + GL11.glTexParameteri( + GL11.GL_TEXTURE_2D, + GL11.GL_TEXTURE_MIN_FILTER, + filter + ); + GL11.glTexParameteri( + GL11.GL_TEXTURE_2D, + GL11.GL_TEXTURE_MAG_FILTER, + filter + ); + + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + worldrenderer.begin(7, DefaultVertexFormats.POSITION_TEX); + worldrenderer.pos(x, y + height, 0.0D).tex(uMin, vMax).endVertex(); + worldrenderer + .pos(x + width, y + height, 0.0D) + .tex(uMax, vMax) + .endVertex(); + worldrenderer.pos(x + width, y, 0.0D).tex(uMax, vMin).endVertex(); + worldrenderer.pos(x, y, 0.0D).tex(uMin, vMin).endVertex(); + tessellator.draw(); + + GL11.glTexParameteri( + GL11.GL_TEXTURE_2D, + GL11.GL_TEXTURE_MIN_FILTER, + GL11.GL_NEAREST + ); + GL11.glTexParameteri( + GL11.GL_TEXTURE_2D, + GL11.GL_TEXTURE_MAG_FILTER, + GL11.GL_NEAREST + ); + + GlStateManager.disableBlend(); + } + + public static void drawTexturedRect( + float x, + float y, + float width, + float height + ) { + drawTexturedRect(x, y, width, height, 0, 1, 0, 1); + } + + public static void drawTexturedRect( + float x, + float y, + float width, + float height, + int filter + ) { + drawTexturedRect(x, y, width, height, 0, 1, 0, 1, filter); + } + + public static void drawTexturedRect( + float x, + float y, + float width, + float height, + float uMin, + float uMax, + float vMin, + float vMax + ) { + drawTexturedRect( + x, + y, + width, + height, + uMin, + uMax, + vMin, + vMax, + GL11.GL_LINEAR + ); + } + + public static void resetGuiScale() { + guiScales.clear(); + } + + public static ScaledResolution peekGuiScale() { + return lastScale; + } + + public static ScaledResolution pushGuiScale(int scale) { + if (guiScales.size() == 0) { + if (Loader.isModLoaded("labymod")) { + GL11.glGetFloat(GL11.GL_PROJECTION_MATRIX, projectionMatrixOld); + GL11.glGetFloat(GL11.GL_MODELVIEW_MATRIX, modelviewMatrixOld); + } + } + + if (scale < 0) { + if (guiScales.size() > 0) { + guiScales.pop(); + } + } else { + if (scale == 0) { + guiScales.push(Minecraft.getMinecraft().gameSettings.guiScale); + } else { + guiScales.push(scale); + } + } + + int newScale = guiScales.size() > 0 + ? Math.max(0, Math.min(4, guiScales.peek())) + : Minecraft.getMinecraft().gameSettings.guiScale; + if (newScale == 0) newScale = + Minecraft.getMinecraft().gameSettings.guiScale; + + int oldScale = Minecraft.getMinecraft().gameSettings.guiScale; + Minecraft.getMinecraft().gameSettings.guiScale = newScale; + ScaledResolution scaledresolution = new ScaledResolution( + Minecraft.getMinecraft() + ); + Minecraft.getMinecraft().gameSettings.guiScale = oldScale; + + if (guiScales.size() > 0) { + GlStateManager.viewport( + 0, + 0, + Minecraft.getMinecraft().displayWidth, + Minecraft.getMinecraft().displayHeight + ); + GlStateManager.matrixMode(GL11.GL_PROJECTION); + GlStateManager.loadIdentity(); + GlStateManager.ortho( + 0.0D, + scaledresolution.getScaledWidth_double(), + scaledresolution.getScaledHeight_double(), + 0.0D, + 1000.0D, + 3000.0D + ); + GlStateManager.matrixMode(GL11.GL_MODELVIEW); + GlStateManager.loadIdentity(); + GlStateManager.translate(0.0F, 0.0F, -2000.0F); + } else { + if ( + Loader.isModLoaded("labymod") && + projectionMatrixOld.limit() > 0 && + modelviewMatrixOld.limit() > 0 + ) { + GlStateManager.matrixMode(GL11.GL_PROJECTION); + GL11.glLoadMatrix(projectionMatrixOld); + GlStateManager.matrixMode(GL11.GL_MODELVIEW); + GL11.glLoadMatrix(modelviewMatrixOld); + } else { + GlStateManager.matrixMode(GL11.GL_PROJECTION); + GlStateManager.loadIdentity(); + GlStateManager.ortho( + 0.0D, + scaledresolution.getScaledWidth_double(), + scaledresolution.getScaledHeight_double(), + 0.0D, + 1000.0D, + 3000.0D + ); + GlStateManager.matrixMode(GL11.GL_MODELVIEW); + GlStateManager.loadIdentity(); + GlStateManager.translate(0.0F, 0.0F, -2000.0F); + } + } + + lastScale = scaledresolution; + return scaledresolution; + } + + public static void drawStringCentered( + String str, + FontRenderer fr, + float x, + float y, + boolean shadow, + int colour + ) { + int strLen = fr.getStringWidth(str); + + float x2 = x - strLen / 2f; + float y2 = y - fr.FONT_HEIGHT / 2f; + + GL11.glTranslatef(x2, y2, 0); + fr.drawString(str, 0, 0, colour, shadow); + GL11.glTranslatef(-x2, -y2, 0); + } } |