aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java3159
1 files changed, 1712 insertions, 1447 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java b/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
index 6fde1054..9b5f62e3 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
@@ -52,1451 +52,1716 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Utils {
- public static boolean hasEffectOverride = false;
- public static boolean disableCustomDungColours = false;
- private static final LinkedList<Integer> guiScales = new LinkedList<>();
- private static ScaledResolution lastScale = new ScaledResolution(Minecraft.getMinecraft());
- //Labymod compatibility
- private static final FloatBuffer projectionMatrixOld = BufferUtils.createFloatBuffer(16);
- private static final FloatBuffer modelviewMatrixOld = BufferUtils.createFloatBuffer(16);
-
- public static <T> ArrayList<T> createList(T... values) {
- ArrayList<T> list = new ArrayList<>();
- Collections.addAll(list, values);
- return list;
- }
-
- 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 boolean getHasEffectOverride() {
- return hasEffectOverride;
- }
-
- public static void drawItemStackWithoutGlint(ItemStack stack, int x, int y) {
- RenderItem itemRender = Minecraft.getMinecraft().getRenderItem();
-
- disableCustomDungColours = true;
- RenderHelper.enableGUIStandardItemLighting();
- itemRender.zLevel = -145; //Negates the z-offset of the below method.
- hasEffectOverride = true;
- try {
- itemRender.renderItemAndEffectIntoGUI(stack, x, y);
- } catch (Exception e) {
- e.printStackTrace();
- } //Catch exceptions to ensure that hasEffectOverride is set back to false.
- itemRender.renderItemOverlayIntoGUI(Minecraft.getMinecraft().fontRendererObj, stack, x, y, null);
- hasEffectOverride = false;
- itemRender.zLevel = 0;
- RenderHelper.disableStandardItemLighting();
- disableCustomDungColours = false;
- }
-
- public static void drawItemStackWithText(ItemStack stack, int x, int y, String text) {
- if (stack == null) return;
-
- RenderItem itemRender = Minecraft.getMinecraft().getRenderItem();
-
- disableCustomDungColours = true;
- RenderHelper.enableGUIStandardItemLighting();
- itemRender.zLevel = -145; //Negates the z-offset of the below method.
- itemRender.renderItemAndEffectIntoGUI(stack, x, y);
- itemRender.renderItemOverlayIntoGUI(Minecraft.getMinecraft().fontRendererObj, stack, x, y, text);
- itemRender.zLevel = 0;
- RenderHelper.disableStandardItemLighting();
- disableCustomDungColours = false;
- }
-
- public static void drawItemStack(ItemStack stack, int x, int y) {
- if (stack == null) return;
-
- drawItemStackWithText(stack, x, y, null);
- }
-
- private static final EnumChatFormatting[] rainbow = new EnumChatFormatting[]{
- EnumChatFormatting.RED,
- EnumChatFormatting.GOLD,
- EnumChatFormatting.YELLOW,
- EnumChatFormatting.GREEN,
- EnumChatFormatting.AQUA,
- EnumChatFormatting.LIGHT_PURPLE,
- EnumChatFormatting.DARK_PURPLE
- };
-
- public static String chromaString(String str) {
- return chromaString(str, 0, false);
- }
-
- private static final Pattern CHROMA_REPLACE_PATTERN = Pattern.compile("\u00a7z(.+?)(?=\u00a7|$)");
-
- public static String chromaStringByColourCode(String str) {
- if (str.contains("\u00a7z")) {
- Matcher matcher = CHROMA_REPLACE_PATTERN.matcher(str);
-
- StringBuffer sb = new StringBuffer();
-
- while (matcher.find()) {
- matcher.appendReplacement(sb,
- Utils.chromaString(matcher.group(1))
- .replace("\\", "\\\\")
- .replace("$", "\\$")
- );
- }
- matcher.appendTail(sb);
-
- str = sb.toString();
- }
- return str;
- }
-
- private static long startTime = 0;
-
- public static String chromaString(String str, float offset, boolean bold) {
- str = cleanColour(str);
-
- long currentTimeMillis = System.currentTimeMillis();
- if (startTime == 0) startTime = currentTimeMillis;
-
- int chromaSpeed = NotEnoughUpdates.INSTANCE.config.misc.chromaSpeed;
- if (chromaSpeed < 10) chromaSpeed = 10;
- if (chromaSpeed > 5000) chromaSpeed = 5000;
-
- StringBuilder rainbowText = new StringBuilder();
- int len = 0;
- for (int i = 0; i < str.length(); i++) {
- char c = str.charAt(i);
- int index = ((int) (offset + len / 12f - (currentTimeMillis - startTime) / chromaSpeed)) % rainbow.length;
- len += Minecraft.getMinecraft().fontRendererObj.getCharWidth(c);
- if (bold) len++;
-
- if (index < 0) index += rainbow.length;
- rainbowText.append(rainbow[index]);
- if (bold) rainbowText.append(EnumChatFormatting.BOLD);
- rainbowText.append(c);
- }
- return rainbowText.toString();
- }
-
- private static final char[] c = new char[]{'k', 'm', 'b', 't'};
-
- public static String shortNumberFormat(double n, int iteration) {
- double d = ((long) n / 100) / 10.0;
- boolean isRound = (d * 10) % 10 == 0;
- return (d < 1000 ?
- ((d > 99.9 || isRound || (!isRound && d > 9.99) ?
- (int) d * 10 / 10 : d + ""
- ) + "" + c[iteration])
- : shortNumberFormat(d, iteration + 1));
- }
-
- public static String trimIgnoreColour(String str) {
- return trimIgnoreColourStart(trimIgnoreColourEnd(str));
- }
-
- public static String trimIgnoreColourStart(String str) {
- str = str.trim();
- boolean colourCodeLast = false;
- StringBuilder colours = new StringBuilder();
- for (int i = 0; i < str.length(); i++) {
- char c = str.charAt(i);
- if (colourCodeLast) {
- colours.append('\u00a7').append(c);
- colourCodeLast = false;
- continue;
- }
- if (c == '\u00A7') {
- colourCodeLast = true;
- } else if (c != ' ') {
- return colours.append(str.substring(i)).toString();
- }
- }
-
- return "";
- }
-
- public static String trimIgnoreColourEnd(String str) {
- str = str.trim();
- for (int i = str.length() - 1; i >= 0; i--) {
- char c = str.charAt(i);
- if (c == ' ') {
- continue;
- } else if (i > 0 && str.charAt(i - 1) == '\u00a7') {
- i--;
- continue;
- }
-
- return str.substring(0, i + 1);
- }
-
- return "";
- }
-
- public static List<String> getRawTooltip(ItemStack stack) {
- List<String> list = Lists.newArrayList();
- String s = stack.getDisplayName();
-
- if (stack.hasDisplayName()) {
- s = EnumChatFormatting.ITALIC + s;
- }
-
- s = s + EnumChatFormatting.RESET;
-
- if (!stack.hasDisplayName() && stack.getItem() == Items.filled_map) {
- s = s + " #" + stack.getItemDamage();
- }
-
- list.add(s);
-
- if (stack.hasTagCompound()) {
- if (stack.getTagCompound().hasKey("display", 10)) {
- NBTTagCompound nbttagcompound = stack.getTagCompound().getCompoundTag("display");
-
- if (nbttagcompound.hasKey("color", 3)) {
- list.add(EnumChatFormatting.ITALIC + StatCollector.translateToLocal("item.dyed"));
- }
-
- if (nbttagcompound.getTagId("Lore") == 9) {
- NBTTagList nbttaglist1 = nbttagcompound.getTagList("Lore", 8);
-
- if (nbttaglist1.tagCount() > 0) {
- for (int j1 = 0; j1 < nbttaglist1.tagCount(); ++j1) {
- list.add(EnumChatFormatting.DARK_PURPLE + "" + EnumChatFormatting.ITALIC + nbttaglist1.getStringTagAt(j1));
- }
- }
- }
- }
- }
-
- return list;
- }
-
- public static String floatToString(float f, int decimals) {
- if (decimals <= 0) {
- return String.valueOf(Math.round(f));
- } else {
- return String.format("%." + decimals + "f", f + 0.00001f);
- }
- }
-
- public static void drawItemStackLinear(ItemStack stack, int x, int y) {
- if (stack == null) return;
-
- RenderItem itemRender = Minecraft.getMinecraft().getRenderItem();
-
- RenderHelper.enableGUIStandardItemLighting();
- itemRender.zLevel = -145; //Negates the z-offset of the below method.
-
- IBakedModel ibakedmodel = itemRender.getItemModelMesher().getItemModel(stack);
- GlStateManager.pushMatrix();
- Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.locationBlocksTexture);
- Minecraft.getMinecraft().getTextureManager().getTexture(TextureMap.locationBlocksTexture).setBlurMipmap(true, true);
- GlStateManager.enableRescaleNormal();
- GlStateManager.enableAlpha();
- GlStateManager.alphaFunc(516, 0.1F);
- GlStateManager.enableBlend();
- GlStateManager.blendFunc(770, 771);
- GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
- setupGuiTransform(x, y, ibakedmodel.isGui3d());
- ibakedmodel = net.minecraftforge.client.ForgeHooksClient.handleCameraTransforms(ibakedmodel, ItemCameraTransforms.TransformType.GUI);
- itemRender.renderItem(stack, ibakedmodel);
- GlStateManager.disableAlpha();
- GlStateManager.disableRescaleNormal();
- GlStateManager.disableLighting();
- GlStateManager.popMatrix();
- Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.locationBlocksTexture);
- Minecraft.getMinecraft().getTextureManager().getTexture(TextureMap.locationBlocksTexture).restoreLastBlurMipmap();
-
- itemRender.renderItemOverlays(Minecraft.getMinecraft().fontRendererObj, stack, x, y);
- itemRender.zLevel = 0;
- RenderHelper.disableStandardItemLighting();
- }
-
- private static void setupGuiTransform(int xPosition, int yPosition, boolean isGui3d) {
- GlStateManager.translate((float) xPosition, (float) yPosition, 5);
- GlStateManager.translate(8.0F, 8.0F, 0.0F);
- GlStateManager.scale(1.0F, 1.0F, -1.0F);
- GlStateManager.scale(0.5F, 0.5F, 0.5F);
-
- if (isGui3d) {
- GlStateManager.scale(40.0F, 40.0F, 40.0F);
- GlStateManager.rotate(210.0F, 1.0F, 0.0F, 0.0F);
- GlStateManager.rotate(-135.0F, 0.0F, 1.0F, 0.0F);
- GlStateManager.enableLighting();
- } else {
- GlStateManager.scale(64.0F, 64.0F, 64.0F);
- GlStateManager.rotate(180.0F, 1.0F, 0.0F, 0.0F);
- GlStateManager.disableLighting();
- }
- }
-
- public static Method getMethod(Class<?> clazz, Class<?>[] params, String... methodNames) {
- for (String methodName : methodNames) {
- try {
- return clazz.getDeclaredMethod(methodName, params);
- } catch (Exception ignored) {}
- }
- return null;
- }
-
- public static Object getField(Class<?> clazz, Object o, String... fieldNames) {
- Field field = null;
- for (String fieldName : fieldNames) {
- try {
- field = clazz.getDeclaredField(fieldName);
- break;
- } catch (Exception ignored) {}
- }
- if (field != null) {
- field.setAccessible(true);
- try {
- return field.get(o);
- } catch (IllegalAccessException ignored) {}
- }
- return null;
- }
-
- public static Slot getSlotUnderMouse(GuiContainer container) {
- Slot slot = (Slot) getField(GuiContainer.class, container, "theSlot", "field_147006_u");
- if (slot == null) {
- slot = SlotLocking.getInstance().getRealSlot();
- }
- return slot;
- }
-
- 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 String cleanColour(String in) {
- return in.replaceAll("(?i)\\u00A7.", "");
- }
-
- public static String cleanColourNotModifiers(String in) {
- return in.replaceAll("(?i)\\u00A7[0-9a-f]", "");
- }
-
- public static String fixBrokenAPIColour(String in) {
- return in.replaceAll("(?i)\\u00C2(\\u00A7.)", "$1");
- }
-
- public static String prettyCase(String str) {
- return str.substring(0, 1).toUpperCase() + str.substring(1).toLowerCase();
- }
-
- public static String[] rarityArr = new String[]{
- "COMMON", "UNCOMMON", "RARE", "EPIC", "LEGENDARY", "MYTHIC", "SPECIAL", "VERY SPECIAL", "SUPREME", "^^ THAT ONE IS DIVINE ^^"//, "DIVINE"
- };
-
- public static String[] rarityArrC = new String[]{
- EnumChatFormatting.WHITE + EnumChatFormatting.BOLD.toString() + "COMMON",
- EnumChatFormatting.GREEN + EnumChatFormatting.BOLD.toString() + "UNCOMMON",
- EnumChatFormatting.BLUE + EnumChatFormatting.BOLD.toString() + "RARE",
- EnumChatFormatting.DARK_PURPLE + EnumChatFormatting.BOLD.toString() + "EPIC",
- EnumChatFormatting.GOLD + EnumChatFormatting.BOLD.toString() + "LEGENDARY",
- EnumChatFormatting.LIGHT_PURPLE + EnumChatFormatting.BOLD.toString() + "MYTHIC",
- EnumChatFormatting.RED + EnumChatFormatting.BOLD.toString() + "SPECIAL",
- EnumChatFormatting.RED + EnumChatFormatting.BOLD.toString() + "VERY SPECIAL",
- EnumChatFormatting.AQUA + EnumChatFormatting.BOLD.toString() + "DIVINE",
- EnumChatFormatting.AQUA + EnumChatFormatting.BOLD.toString() + "DIVINE",
- //EnumChatFormatting.AQUA+EnumChatFormatting.BOLD.toString()+"DIVINE",
-
- };
- public static final HashMap<String, String> rarityArrMap = new HashMap<String, String>() {{
- put("COMMON", rarityArrC[0]);
- put("UNCOMMON", rarityArrC[1]);
- put("RARE", rarityArrC[2]);
- put("EPIC", rarityArrC[3]);
- put("LEGENDARY", rarityArrC[4]);
- put("MYTHIC", rarityArrC[5]);
- put("SPECIAL", rarityArrC[6]);
- put("VERY SPECIAL", rarityArrC[7]);
- put("DIVINE", rarityArrC[8]);
- // put("DIVINE", rarityArrC[9]);
- }};
-
- public static String getRarityFromInt(int rarity) {
- if (rarity < 0 || rarity >= rarityArr.length) {
- return rarityArr[0];
- }
- return rarityArr[rarity];
- }
-
- public static int checkItemTypePet(List<String> lore) {
- for (int i = lore.size() - 1; i >= 0; i--) {
- String line = Utils.cleanColour(lore.get(i));
- for (int i1 = 0; i1 < rarityArr.length; i1++) {
- if (line.equals(rarityArr[i1])) {
- return i1;
- }
- }
- }
- return -1;
- }
-
- public static int checkItemType(JsonArray lore, boolean contains, String... typeMatches) {
- for (int i = lore.size() - 1; i >= 0; i--) {
- String line = lore.get(i).getAsString();
-
- int returnType = checkItemType(line, contains, typeMatches);
- if (returnType != -1) {
- return returnType;
- }
- }
- return -1;
- }
-
- public static int checkItemType(String[] lore, boolean contains, String... typeMatches) {
- for (int i = lore.length - 1; i >= 0; i--) {
- String line = lore[i];
-
- int returnType = checkItemType(line, contains, typeMatches);
- if (returnType != -1) {
- return returnType;
- }
- }
- return -1;
- }
-
- public static int checkItemType(List<String> lore, boolean contains, String... typeMatches) {
- for (int i = lore.size() - 1; i >= 0; i--) {
- String line = lore.get(i);
-
- int returnType = checkItemType(line, contains, typeMatches);
- if (returnType != -1) {
- return returnType;
- }
- }
- return -1;
- }
-
- private static int checkItemType(String line, boolean contains, String... typeMatches) {
- for (String rarity : rarityArr) {
- for (int j = 0; j < typeMatches.length; j++) {
- if (contains) {
- if (line.trim().contains(rarity + " " + typeMatches[j])) {
- return j;
- } else if (line.trim().contains(rarity + " DUNGEON " + typeMatches[j])) {
- return j;
- }
- } else {
- if (line.trim().endsWith(rarity + " " + typeMatches[j])) {
- return j;
- } else if (line.trim().endsWith(rarity + " DUNGEON " + typeMatches[j])) {
- return j;
- }
- }
- }
- }
- return -1;
- }
-
- public static float round(float value, int precision) {
- int scale = (int) Math.pow(10, precision);
- return (float) Math.round(value * scale) / scale;
- }
-
- public static void playPressSound() {
- playSound(new ResourceLocation("gui.button.press"), true);
- }
-
- public static void playSound(ResourceLocation sound, boolean gui) {
- if (NotEnoughUpdates.INSTANCE.config.misc.guiButtonClicks || !gui) {
- Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.create(sound, 1.0F));
- }
- }
-
- public static String cleanDuplicateColourCodes(String line) {
- StringBuilder sb = new StringBuilder();
- char currentColourCode = 'r';
- boolean sectionSymbolLast = false;
- for (char c : line.toCharArray()) {
- if ((int) c > 50000) continue;
-
- if (c == '\u00a7') {
- sectionSymbolLast = true;
- } else {
- if (sectionSymbolLast) {
- if (currentColourCode != c) {
- sb.append('\u00a7');
- sb.append(c);
- currentColourCode = c;
- }
- sectionSymbolLast = false;
- } else {
- sb.append(c);
- }
- }
- }
- return sb.toString();
- }
-
- 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();
- GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA);
- 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 drawTexturedRectNoBlend(float x, float y, float width, float height, float uMin, float uMax, float vMin, float vMax, int filter) {
- GlStateManager.enableTexture2D();
-
- 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);
- }
-
- public static ItemStack createItemStack(Item item, String displayname, String... lore) {
- return createItemStack(item, displayname, 0, lore);
- }
-
- public static ItemStack createItemStack(Item item, String displayname, int damage, String... lore) {
- ItemStack stack = new ItemStack(item, 1, damage);
- NBTTagCompound tag = new NBTTagCompound();
- NBTTagCompound display = new NBTTagCompound();
- NBTTagList Lore = new NBTTagList();
-
- for (String line : lore) {
- Lore.appendTag(new NBTTagString(line));
- }
-
- display.setString("Name", displayname);
- display.setTag("Lore", Lore);
-
- tag.setTag("display", display);
- tag.setInteger("HideFlags", 254);
-
- stack.setTagCompound(tag);
-
- return stack;
- }
-
- public static ItemStack editItemStackInfo(ItemStack itemStack, String displayName, boolean disableNeuToolTips, String... lore) {
- NBTTagCompound tag = itemStack.getTagCompound();
- NBTTagCompound display = tag.getCompoundTag("display");
- NBTTagList Lore = new NBTTagList();
-
- for (String line : lore) {
- Lore.appendTag(new NBTTagString(line));
- }
-
- display.setString("Name", displayName);
- display.setTag("Lore", Lore);
-
- tag.setTag("display", display);
- tag.setInteger("HideFlags", 254);
- if (disableNeuToolTips) {
- tag.setBoolean("disableNeuTooltip", true);
- }
-
- itemStack.setTagCompound(tag);
-
- return itemStack;
- }
-
- public static ItemStack createSkull(String displayName, String uuid, String value){
- ItemStack render = new ItemStack(Items.skull, 1, 3);
- NBTTagCompound tag = new NBTTagCompound();
- NBTTagCompound skullOwner = new NBTTagCompound();
- NBTTagCompound properties = new NBTTagCompound();
- NBTTagList textures = new NBTTagList();
- NBTTagCompound textures_0 = new NBTTagCompound();
- NBTTagCompound display = new NBTTagCompound();
-
- skullOwner.setString("Id", uuid);
- skullOwner.setString("Name", uuid);
-
- textures_0.setString("Value", value);
- textures.appendTag(textures_0);
-
- display.setString("Name", displayName);
- tag.setTag("display",display);
-
- properties.setTag("textures", textures);
- skullOwner.setTag("Properties", properties);
- tag.setTag("SkullOwner", skullOwner);
- render.setTagCompound(tag);
- return render;
- }
-
- public static void drawStringF(String str, FontRenderer fr, float x, float y, boolean shadow, int colour) {
- fr.drawString(str, x, y, colour, shadow);
- }
-
- public static int getCharVertLen(char c) {
- if ("acegmnopqrsuvwxyz".indexOf(c) >= 0) {
- return 5;
- } else {
- return 7;
- }
- }
-
- public static float getVerticalHeight(String str) {
- str = cleanColour(str);
- float height = 0;
- for (int i = 0; i < str.length(); i++) {
- char c = str.charAt(i);
- int charHeight = getCharVertLen(c);
- height += charHeight + 1.5f;
- }
- return height;
- }
-
- public static void drawStringVertical(String str, FontRenderer fr, float x, float y, boolean shadow, int colour) {
- String format = FontRenderer.getFormatFromString(str);
- str = cleanColour(str);
- for (int i = 0; i < str.length(); i++) {
- char c = str.charAt(i);
-
- int charHeight = getCharVertLen(c);
- int charWidth = fr.getCharWidth(c);
- fr.drawString(format + c, x + (5 - charWidth) / 2f, y - 7 + charHeight, colour, shadow);
-
- y += charHeight + 1.5f;
- }
- }
-
- public static void renderShadowedString(String str, float x, float y, int maxLength) {
- int strLen = Minecraft.getMinecraft().fontRendererObj.getStringWidth(str);
- float factor;
- if (maxLength < 0) {
- factor = 1;
- } else {
- factor = maxLength / (float) strLen;
- factor = Math.min(1, factor);
- }
-
- for (int xOff = -2; xOff <= 2; xOff++) {
- for (int yOff = -2; yOff <= 2; yOff++) {
- if (Math.abs(xOff) != Math.abs(yOff)) {
- Utils.drawStringCenteredScaledMaxWidth(Utils.cleanColourNotModifiers(str), Minecraft.getMinecraft().fontRendererObj,
- x + xOff / 2f * factor, y + 4 + yOff / 2f * factor, false, maxLength,
- new Color(0, 0, 0, 200 / Math.max(Math.abs(xOff), Math.abs(yOff))).getRGB());
- }
- }
- }
-
- GlStateManager.color(1, 1, 1, 1);
- Utils.drawStringCenteredScaledMaxWidth(str, Minecraft.getMinecraft().fontRendererObj,
- x, y + 4, false, maxLength, 4210752);
- }
-
- public static void renderAlignedString(String first, String second, float x, float y, int length) {
- FontRenderer fontRendererObj = Minecraft.getMinecraft().fontRendererObj;
- if (fontRendererObj.getStringWidth(first + " " + second) >= length) {
- renderShadowedString(first + " " + second, x + length / 2f, y, length);
- } else {
- for (int xOff = -2; xOff <= 2; xOff++) {
- for (int yOff = -2; yOff <= 2; yOff++) {
- if (Math.abs(xOff) != Math.abs(yOff)) {
- fontRendererObj.drawString(Utils.cleanColourNotModifiers(first),
- x + xOff / 2f, y + yOff / 2f,
- new Color(0, 0, 0, 200 / Math.max(Math.abs(xOff), Math.abs(yOff))).getRGB(), false);
- }
- }
- }
-
- int secondLen = fontRendererObj.getStringWidth(second);
- GlStateManager.color(1, 1, 1, 1);
- fontRendererObj.drawString(first, x, y, 4210752, false);
- for (int xOff = -2; xOff <= 2; xOff++) {
- for (int yOff = -2; yOff <= 2; yOff++) {
- if (Math.abs(xOff) != Math.abs(yOff)) {
- fontRendererObj.drawString(Utils.cleanColourNotModifiers(second),
- x + length - secondLen + xOff / 2f, y + yOff / 2f,
- new Color(0, 0, 0, 200 / Math.max(Math.abs(xOff), Math.abs(yOff))).getRGB(), false);
- }
- }
- }
-
- GlStateManager.color(1, 1, 1, 1);
- fontRendererObj.drawString(second, x + length - secondLen, y, 4210752, false);
- }
- }
-
- 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 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 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 drawStringRightAligned(String str, FontRenderer fr, float x, float y , boolean shadow, int colour, float factor) {
- drawStringScaled(str, fr, x - fr.getStringWidth(str) * factor, y, shadow, colour, factor);
- }
-
- public static void drawStringScaledMax(String str, FontRenderer fr, float x, float y, boolean shadow, int colour, float factor, int len) {
- int strLen = fr.getStringWidth(str);
- float f = len / (float) strLen;
- factor = Math.min(factor, f);
-
- GlStateManager.scale(factor, factor, 1);
- fr.drawString(str, x / factor, y / factor, colour, shadow);
- GlStateManager.scale(1 / factor, 1 / factor, 1);
- }
-
- public static void drawStringCenteredScaledMaxWidth(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);
- int newLen = Math.min(strLen, len);
-
- float fontHeight = 8 * factor;
-
- drawStringScaled(str, fr, x - newLen / 2, y - fontHeight / 2, shadow, colour, factor);
- }
-
- public static Matrix4f createProjectionMatrix(int width, int height) {
- Matrix4f projMatrix = new Matrix4f();
- projMatrix.setIdentity();
- projMatrix.m00 = 2.0F / (float) width;
- projMatrix.m11 = 2.0F / (float) (-height);
- projMatrix.m22 = -0.0020001999F;
- projMatrix.m33 = 1.0F;
- projMatrix.m03 = -1.0F;
- projMatrix.m13 = 1.0F;
- projMatrix.m23 = -1.0001999F;
- return projMatrix;
- }
-
- 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 / 2, y - fontHeight / 2, shadow, colour, factor);
- }
-
- public static void drawStringCenteredYScaled(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, y - fontHeight / 2, shadow, colour, factor);
- }
-
- public static void drawStringCenteredYScaledMaxWidth(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);
- float fontHeight = 8 * factor;
-
- drawStringScaled(str, fr, x, y - fontHeight / 2, shadow, colour, factor);
- }
-
- public static int renderStringTrimWidth(String str, FontRenderer fr, boolean shadow, int x, int y, int len, int colour, int maxLines) {
- return renderStringTrimWidth(str, fr, shadow, x, y, len, colour, maxLines, 1);
- }
-
- public static int renderStringTrimWidth(String str, FontRenderer fr, boolean shadow, int x, int y, int len, int colour, int maxLines, float scale) {
- len = (int) (len / scale);
-
- int yOff = 0;
- String excess;
- String trimmed = trimToWidth(str, len);
-
- String colourCodes = "";
- Pattern pattern = Pattern.compile("\\u00A7.");
- Matcher matcher = pattern.matcher(trimmed);
- while (matcher.find()) {
- colourCodes += matcher.group();
- }
-
- boolean firstLine = true;
- int trimmedCharacters = trimmed.length();
- int lines = 0;
- while ((lines++ < maxLines) || maxLines < 0) {
- if (trimmed.length() == str.length()) {
- drawStringScaled(trimmed, fr, x, y + yOff, shadow, colour, scale);
- //fr.drawString(trimmed, x, y + yOff, colour, shadow);
- break;
- } else if (trimmed.isEmpty()) {
- yOff -= 12 * scale;
- break;
- } else {
- if (firstLine) {
- drawStringScaled(trimmed, fr, x, y + yOff, shadow, colour, scale);
- firstLine = false;
- } else {
- if (trimmed.startsWith(" ")) {
- trimmed = trimmed.substring(1);
- }
- drawStringScaled(colourCodes + trimmed, fr, x, y + yOff, shadow, colour, scale);
- }
-
- excess = str.substring(trimmedCharacters);
- trimmed = trimToWidth(excess, len);
- trimmedCharacters += trimmed.length();
- yOff += 12 * scale;
- }
- }
- return yOff;
- }
-
- public static String trimToWidth(String str, int len) {
- FontRenderer fr = Minecraft.getMinecraft().fontRendererObj;
- String trim = fr.trimStringToWidth(str, len);
-
- if (str.length() != trim.length() && !trim.endsWith(" ")) {
- char next = str.charAt(trim.length());
- if (next != ' ') {
- String[] split = trim.split(" ");