aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
diff options
context:
space:
mode:
authorMoulberry <jjenour@student.unimelb.edu.au>2022-03-03 11:03:58 +0800
committerGitHub <noreply@github.com>2022-03-03 11:03:58 +0800
commit7c6d37b2eb758a13b342b906f0aef88b940bc52a (patch)
tree9602a014425b859e3aba98f31f93d6de04521356 /src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
parentb11742988dec635b5c5da7c2363803cbfafb37b1 (diff)
parentdb59eba3fd9121c7c0a88363994876c5b582c08c (diff)
downloadnotenoughupdates-7c6d37b2eb758a13b342b906f0aef88b940bc52a.tar.gz
notenoughupdates-7c6d37b2eb758a13b342b906f0aef88b940bc52a.tar.bz2
notenoughupdates-7c6d37b2eb758a13b342b906f0aef88b940bc52a.zip
Merge pull request #248 from NotEnoughUpdates/master
NEU 2.1 🙂
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.java3051
1 files changed, 1720 insertions, 1331 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 7876776b..9b5f62e3 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java
@@ -2,33 +2,24 @@ package io.github.moulberry.notenoughupdates.util;
import com.google.common.base.Splitter;
import com.google.common.collect.Lists;
-import com.google.common.collect.Multimap;
import com.google.gson.*;
-import com.mojang.authlib.Agent;
-import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
-import com.mojang.authlib.yggdrasil.YggdrasilUserAuthentication;
import io.github.moulberry.notenoughupdates.NotEnoughUpdates;
import io.github.moulberry.notenoughupdates.miscfeatures.SlotLocking;
-import io.github.moulberry.notenoughupdates.util.TexLoc;
-import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.audio.PositionedSoundRecord;
-import net.minecraft.client.audio.SoundHandler;
+import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.gui.inventory.GuiContainer;
-import net.minecraft.client.renderer.*;
+import net.minecraft.client.renderer.GlStateManager;
+import net.minecraft.client.renderer.RenderHelper;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.WorldRenderer;
import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
import net.minecraft.client.renderer.entity.RenderItem;
-import net.minecraft.client.renderer.texture.DynamicTexture;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.client.resources.model.IBakedModel;
-import net.minecraft.enchantment.Enchantment;
-import net.minecraft.enchantment.EnchantmentHelper;
-import net.minecraft.entity.EnumCreatureAttribute;
-import net.minecraft.entity.ai.attributes.AttributeModifier;
-import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.event.ClickEvent;
import net.minecraft.event.HoverEvent;
import net.minecraft.init.Items;
@@ -38,1341 +29,1739 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.nbt.NBTTagString;
-import net.minecraft.potion.Potion;
-import net.minecraft.server.MinecraftServer;
+import net.minecraft.network.play.client.C0DPacketCloseWindow;
import net.minecraft.util.*;
import net.minecraftforge.fml.common.Loader;
import org.lwjgl.BufferUtils;
-import org.lwjgl.input.Keyboard;
+import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL14;
-import org.lwjgl.util.glu.Project;
-import javax.swing.*;
-import java.awt.*;
+import java.awt.Color;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.net.Proxy;
import java.nio.FloatBuffer;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.util.*;
-import java.util.List;
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 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 <T> ArrayList<T> createList(T... values) {
- ArrayList<T> list = new ArrayList<>();
- for(T value : values)list.add(value);
- 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 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.<String>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 e) {}
- }
- 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 e) {}
- }
- if(field != null) {
- field.setAccessible(true);
- try {
- return field.get(o);
- } catch(IllegalAccessException e) {
- }
- }
- 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", "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.DARK_RED+EnumChatFormatting.BOLD.toString()+"SUPREME",
- EnumChatFormatting.AQUA+EnumChatFormatting.BOLD.toString()+"DIVINE",
-
- };
- public static final HashMap<String, String> rarityArrMap = new HashMap<>();
- static {
- rarityArrMap.put("COMMON", rarityArrC[0]);
- rarityArrMap.put("UNCOMMON", rarityArrC[1]);
- rarityArrMap.put("RARE", rarityArrC[2]);
- rarityArrMap.put("EPIC", rarityArrC[3]);
- rarityArrMap.put("LEGENDARY", rarityArrC[4]);
- rarityArrMap.put("MYTHIC", rarityArrC[5]);
- rarityArrMap.put("SPECIAL", rarityArrC[6]);
- rarityArrMap.put("VERY SPECIAL", rarityArrC[7]);
- rarityArrMap.put("SUPREME", rarityArrC[8]);
- rarityArrMap.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 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 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;