From f29ebcc6cdf202a69f267a4dbdbfc9239929fd8a Mon Sep 17 00:00:00 2001 From: Lulonaut <67191924+Lulonaut@users.noreply.github.com> Date: Sun, 20 Mar 2022 08:47:29 +0100 Subject: dungeons and pv bingo tab (#93) --- .../assets/notenoughupdates/invbuttons/presets.json | 3 ++- .../resources/assets/notenoughupdates/pv_bingo_tab.png | Bin 0 -> 2635 bytes 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/assets/notenoughupdates/pv_bingo_tab.png (limited to 'src/main/resources') diff --git a/src/main/resources/assets/notenoughupdates/invbuttons/presets.json b/src/main/resources/assets/notenoughupdates/invbuttons/presets.json index 4184e6d4..e36f8021 100644 --- a/src/main/resources/assets/notenoughupdates/invbuttons/presets.json +++ b/src/main/resources/assets/notenoughupdates/invbuttons/presets.json @@ -2569,7 +2569,8 @@ "anchorRight": false, "anchorBottom": false, "backgroundIndex": 0, - "command": "" + "command": "joindungeon master_catacombs 7", + "icon": "DIAMOND_NECRON_HEAD" }, { "x": 151, diff --git a/src/main/resources/assets/notenoughupdates/pv_bingo_tab.png b/src/main/resources/assets/notenoughupdates/pv_bingo_tab.png new file mode 100644 index 00000000..135035cf Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/pv_bingo_tab.png differ -- cgit From 47efdd4f84cc9a29738fe16d631eb33ee716db61 Mon Sep 17 00:00:00 2001 From: DeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com> Date: Sun, 27 Mar 2022 19:12:44 +0200 Subject: New wiki in wiki renderer (#97) * partly working and pushing cuz jani * way better rendering stuff but still not perfect * finish most of wiki renderer for new wiki * JANI MY FRIEND PLEASE TEST * Windows time :sad: * fix wiki renderer * Some things I forgor * changelog * Better corrupted file handling in graph and added check for crash that I have no idea how it happened. --- Update Notes/2.1.md | 1 + .../moulberry/notenoughupdates/NEUManager.java | 12 +- .../moulberry/notenoughupdates/NEUOverlay.java | 32 ++++-- .../notenoughupdates/infopanes/HTMLInfoPane.java | 124 ++++++++++++++++++--- .../notenoughupdates/infopanes/InfoPane.java | 4 +- .../notenoughupdates/miscgui/GuiPriceGraph.java | 16 ++- .../options/seperateSections/Misc.java | 18 +-- .../assets/notenoughupdates/official-wiki.css | 1 + 8 files changed, 165 insertions(+), 43 deletions(-) create mode 100644 src/main/resources/assets/notenoughupdates/official-wiki.css (limited to 'src/main/resources') diff --git a/Update Notes/2.1.md b/Update Notes/2.1.md index 9c9fc310..1344905e 100644 --- a/Update Notes/2.1.md +++ b/Update Notes/2.1.md @@ -16,6 +16,7 @@ - [Added bingo tab in /pv](https://cdn.discordapp.com/attachments/702456294874808330/951909539383500820/unknown.png) - Lulonaut - Added wishing compass solver that shows target coordinates using two samples - CraftyOldMiner - Improved metal detector logic to solve using a single position in most cases using known locations based on Keeper coordinates - CraftyOldMiner +- Added support for official Hypixel wiki, can be toggled in /neu misc - DeDiamondPro ### **Minor Changes:** - Add built-in recipes for forge crafts - nea89 - Add Stranded Villager Trades to the item list - nea89 diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java index df31834f..abe0bdcf 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java @@ -23,6 +23,7 @@ import org.apache.commons.io.FileUtils; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.Display; +import javax.net.ssl.HttpsURLConnection; import javax.swing.JDialog; import javax.swing.JOptionPane; import java.io.*; @@ -1032,11 +1033,12 @@ public class NEUManager { } catch (IOException e) { return null; } - try ( - BufferedInputStream inStream = new BufferedInputStream(new URL( - url + "?action=raw&templates=expand").openStream()); - FileOutputStream fileOutputStream = new FileOutputStream(f) - ) { + try { + HttpsURLConnection con = (HttpsURLConnection) new URL(url + "?action=raw&templates=expand").openConnection(); + con.setRequestMethod("GET"); + con.setRequestProperty("User-Agent", "NotEnoughUpdates"); + BufferedInputStream inStream = new BufferedInputStream(con.getInputStream()); + FileOutputStream fileOutputStream = new FileOutputStream(f); byte[] dataBuffer = new byte[1024]; int bytesRead; while ((bytesRead = inStream.read(dataBuffer, 0, 1024)) != -1) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java index 5ad02f94..b7aa42d6 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java @@ -751,16 +751,27 @@ public class NEUOverlay extends Gui { public void showInfo(JsonObject item) { if (item.has("info") && item.has("infoType")) { JsonArray lore = item.get("info").getAsJsonArray(); - StringBuilder loreBuilder = new StringBuilder(); - for (int i = 0; i < lore.size(); i++) { - loreBuilder.append(lore.get(i).getAsString()); - if (i != lore.size() - 1) - loreBuilder.append("\n"); + String infoType = item.get("infoType").getAsString(); + String infoText = ""; + if (infoType.equals("WIKI_URL")) { + for (JsonElement url : lore) { + infoText = url.getAsString(); + if ( + url.getAsString().startsWith("https://wiki.hypixel.net/") && NotEnoughUpdates.INSTANCE.config.misc.wiki == 0 + || url.getAsString().startsWith("https://hypixel-skyblock.fandom.com/") && + NotEnoughUpdates.INSTANCE.config.misc.wiki == 1) break; + } + } else { + StringBuilder loreBuilder = new StringBuilder(); + for (int i = 0; i < lore.size(); i++) { + loreBuilder.append(lore.get(i).getAsString()); + if (i != lore.size() - 1) + loreBuilder.append("\n"); + } + infoText = loreBuilder.toString(); } - String infoText = loreBuilder.toString(); String internalname = item.get("internalname").getAsString(); String name = item.get("displayname").getAsString(); - String infoType = item.get("infoType").getAsString(); displayInformationPane(new TextInfoPane( this, manager, @@ -825,6 +836,10 @@ public class NEUOverlay extends Gui { if (selectedItemGroup != null) { int selectedX = Math.min(selectedItemGroupX, width - getBoxPadding() - 18 * selectedItemGroup.size()); if (mouseY > selectedItemGroupY + 17 && mouseY < selectedItemGroupY + 35) { + if (!Mouse.getEventButtonState()) { + Utils.pushGuiScale(-1); + return true; //End early if the mouse isn't pressed, but still cancel event. + } for (int i = 0; i < selectedItemGroup.size(); i++) { if (mouseX >= selectedX - 1 + 18 * i && mouseX <= selectedX + 17 + 18 * i) { JsonObject item = selectedItemGroup.get(i); @@ -1349,7 +1364,8 @@ public class NEUOverlay extends Gui { } else if (getSortMode() == SORT_MODE_PET) { return internalname.matches(petRegex) && item.get("displayname").getAsString().contains("["); } else if (getSortMode() == SORT_MODE_TOOL) { - return checkItemType(item.get("lore").getAsJsonArray(), + return checkItemType( + item.get("lore").getAsJsonArray(), "SWORD", "BOW", "AXE", diff --git a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/HTMLInfoPane.java b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/HTMLInfoPane.java index baf88457..e4098f3e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/HTMLInfoPane.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/HTMLInfoPane.java @@ -14,6 +14,7 @@ import io.github.moulberry.notenoughupdates.util.AllowEmptyHTMLTag; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.Gui; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.texture.DynamicTexture; @@ -30,10 +31,12 @@ import java.net.URL; import java.net.URLConnection; import java.nio.charset.CharsetEncoder; import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; +import java.util.regex.Pattern; public class HTMLInfoPane extends TextInfoPane { private static final WikiModel wikiModel; @@ -47,6 +50,10 @@ public class HTMLInfoPane extends TextInfoPane { private int imageHeight = 0; private int imageWidth = 0; + private float xMin = 0; + private int mouseOffset = 0; + private boolean selected = false; + private static boolean hasAttemptedDownload = false; /* @@ -61,6 +68,16 @@ public class HTMLInfoPane extends TextInfoPane { conf.addTokenTag("infobox", new IgnoreTag("infobox")); conf.addTokenTag("tabber", new IgnoreTag("tabber")); conf.addTokenTag("kbd", new HTMLTag("kbd")); + conf.addTokenTag("td", new AllowEmptyHTMLTag("td")); + conf.addTokenTag("tbody", new AllowEmptyHTMLTag("tbody")); + conf.addTokenTag("style", new AllowEmptyHTMLTag("style")); + conf.addTokenTag("article", new AllowEmptyHTMLTag("article")); + conf.addTokenTag("section", new AllowEmptyHTMLTag("section")); + conf.addTokenTag("link", new AllowEmptyHTMLTag("link")); + conf.addTokenTag("wbr", new AllowEmptyHTMLTag("wbr")); + conf.addTokenTag("dl", new AllowEmptyHTMLTag("dl")); + conf.addTokenTag("dd", new AllowEmptyHTMLTag("dd")); + conf.addTokenTag("dt", new AllowEmptyHTMLTag("dt")); wikiModel = new WikiModel(conf, "https://hypixel-skyblock.fandom.com/wiki/Special:Filepath/${image}", "https://hypixel-skyblock.fandom.com/wiki/${title}" ) { @@ -101,7 +118,7 @@ public class HTMLInfoPane extends TextInfoPane { ) { return manager.getWebFile(wikiUrl).thenApply(f -> { if (f == null) { - return new HTMLInfoPane(overlay, manager, "error", "error", "Failed to load wiki url: " + wikiUrl); + return new HTMLInfoPane(overlay, manager, "error", "error", "Failed to load wiki url: " + wikiUrl, false); } StringBuilder sb = new StringBuilder(); @@ -114,9 +131,16 @@ public class HTMLInfoPane extends TextInfoPane { sb.append(l).append("\n"); } } catch (IOException e) { - return new HTMLInfoPane(overlay, manager, "error", "error", "Failed to load wiki url: " + wikiUrl); + return new HTMLInfoPane(overlay, manager, "error", "error", "Failed to load wiki url: " + wikiUrl, false); } - return createFromWikiText(overlay, manager, name, f.getName(), sb.toString()); + return createFromWikiText( + overlay, + manager, + name, + f.getName(), + sb.toString(), + wikiUrl.startsWith("https://wiki.hypixel.net/") + ); }); } @@ -126,15 +150,37 @@ public class HTMLInfoPane extends TextInfoPane { * a more permanent solution that can be abstracted to work with arbitrary wiki codes (eg. moulberry.github.io/ * files/neu_help.html). */ + + private static final Pattern replacePattern = Pattern.compile( + "|", + Pattern.DOTALL + ); + public static HTMLInfoPane createFromWikiText( NEUOverlay overlay, NEUManager manager, String name, String filename, - String wiki + String wiki, boolean isOfficialWiki ) { - String[] split = wiki.split(""); - wiki = split[split.length - 1]; //Remove everything before infobox - wiki = wiki.split("")[0]; //Remove navbox - wiki = wiki.split("")[1].split("")[0]; // hide top bar + wiki = wiki.split("
")[0]; // hide giant bottom list + wiki = wiki.split("
")[0]; // hide small bottom category thing + wiki = replacePattern.matcher(wiki).replaceAll(""); + wiki = wiki.replaceAll( + "
", + "" + ); // hide beta box + wiki = wiki.replaceAll("

.*

", ""); // hide title + wiki = wiki.replace("src=\"/", "src=\"https://wiki.hypixel.net/"); + wiki = wiki.replace("\uD83D\uDDF8", "✓"); // replace checkmark with one that renders + wiki = wiki.replace("\uD83E\uDC10", "\u27F5"); // replace left arrow with one that renders + wiki = wiki.replace("\uD83E\uDC12", "\u27F6"); // replace right arrow with one that renders + } else { + String[] split = wiki.split(""); + wiki = split[split.length - 1]; //Remove everything before infobox + wiki = wiki.split("")[0]; //Remove navbox + wiki = wiki.split("
= barX && mouseX <= barWidth && mouseY >= barY && mouseY <= barHeight || selected; + Gui.drawRect(barX, barY, barWidth, barHeight, new Color(255, 255, 255, isHovered ? 150 : 100).getRGB()); + } } else { scrollHeight.setValue(0); @@ -435,6 +508,27 @@ public class HTMLInfoPane extends TextInfoPane { @Override public void mouseInput(int width, int height, int mouseX, int mouseY, boolean mouseDown) { + int paneWidth = (int) (width / 3 * overlay.getWidthMult()); + int rightSide = (int) (width * overlay.getInfoPaneOffsetFactor()); + int leftSide = rightSide - paneWidth; + int imageW = paneWidth - overlay.getBoxPadding() * 2; + float scaleF = IMAGE_WIDTH * ZOOM_FACTOR / (float) imageW; + float xSize = Math.min((paneWidth - overlay.getBoxPadding() * 2f) / imageWidth * scaleF, 1); + float xMax = xMin + xSize; + int barX = (int) (xMin * imageW) + leftSide + overlay.getBoxPadding(); + int barY = height - overlay.getBoxPadding() - 10; + int barWidth = (int) (xMax * imageW) + leftSide + overlay.getBoxPadding(); + int barHeight = height - overlay.getBoxPadding() - 5; + if (!mouseDown) + selected = false; + if (mouseX >= barX && mouseX <= barWidth && mouseY >= barY && mouseY <= barHeight && mouseDown || selected) { + if (!selected) + mouseOffset = mouseX - barX; + xMin = (mouseX - leftSide - overlay.getBoxPadding() / 2f - mouseOffset) / imageWidth * scaleF; + xMin = Math.max(0, xMin); + xMin = Math.min(xMin, 1 - xSize); + selected = true; + } super.mouseInput(width, height, mouseX, mouseY, mouseDown); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/InfoPane.java b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/InfoPane.java index 70d7d65b..03cb64f6 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/InfoPane.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/InfoPane.java @@ -61,10 +61,10 @@ public abstract class InfoPane extends Gui { return HTMLInfoPane.createFromWikiUrl(overlay, manager, name, infoText); case "WIKI": return CompletableFuture.completedFuture( - HTMLInfoPane.createFromWikiText(overlay, manager, name, internalName, infoText)); + HTMLInfoPane.createFromWikiText(overlay, manager, name, internalName, infoText, false)); case "HTML": return CompletableFuture.completedFuture( - new HTMLInfoPane(overlay, manager, name, internalName, infoText)); + new HTMLInfoPane(overlay, manager, name, internalName, infoText, false)); default: return CompletableFuture.completedFuture( new TextInfoPane(overlay, manager, name, infoText)); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiPriceGraph.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiPriceGraph.java index 3955b35f..63a08d41 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiPriceGraph.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiPriceGraph.java @@ -117,12 +117,11 @@ public class GuiPriceGraph extends GuiScreen { Utils.drawStringCentered("Loading...", Minecraft.getMinecraft().fontRendererObj, guiLeft + 166, guiTop + 116, false, 0xffffff00 ); - else if (dataPoints == null || dataPoints.get() == null || dataPoints.get().size() <= 1) + else if (dataPoints == null || dataPoints.get() == null || dataPoints.get().size() <= 1 || lowestValue == null) Utils.drawStringCentered("No data found.", Minecraft.getMinecraft().fontRendererObj, guiLeft + 166, guiTop + 116, false, 0xffff0000 ); else { - int graphColor = SpecialColour.specialToChromaRGB(NotEnoughUpdates.INSTANCE.config.ahGraph.graphColor); int graphColor2 = SpecialColour.specialToChromaRGB(NotEnoughUpdates.INSTANCE.config.ahGraph.graphColor2); Integer lowestDist = null; @@ -399,15 +398,17 @@ public class GuiPriceGraph extends GuiScreen { if (!file.getName().endsWith(".gz")) continue; if (file.lastModified() < System.currentTimeMillis() - NotEnoughUpdates.INSTANCE.config.ahGraph.dataRetention * 86400000L) + //noinspection ResultOfMethodCallIgnored file.delete(); } Date date = new Date(); Long epochSecond = date.toInstant().getEpochSecond(); File file = new File(dir, "prices_" + format.format(date) + ".gz"); HashMap prices = new HashMap<>(); - if (file.exists()) - prices = load(file); - if (prices == null) return; + if (file.exists()) { + HashMap tempPrices = load(file); + if (tempPrices != null) prices = tempPrices; + } for (Map.Entry item : items.entrySet()) { if (prices.containsKey(item.getKey())) { if (bazaar && item.getValue().getAsJsonObject().has("curr_buy") && item.getValue().getAsJsonObject().has( @@ -493,7 +494,10 @@ public class GuiPriceGraph extends GuiScreen { )) ) { return GSON.fromJson(reader, type); - } catch (Exception ignored) { + } catch (Exception e) { + System.out.println("Deleting " + file.getName() + " because it is probably corrupted."); + //noinspection ResultOfMethodCallIgnored + file.delete(); } } return null; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java index e872bfc0..dafbe202 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java @@ -1,13 +1,7 @@ package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; -import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigAccordionId; -import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorAccordion; -import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; -import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorButton; -import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDropdown; -import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorSlider; -import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; +import io.github.moulberry.notenoughupdates.core.config.annotations.*; public class Misc { @Expose @@ -147,4 +141,14 @@ public class Misc { @ConfigEditorBoolean public boolean disableNPCRetexturing = false; + @Expose + @ConfigOption( + name = "Wiki", + desc = "The wiki to use in the wiki renderer." + ) + @ConfigEditorDropdown(values = { + "Hypixel", + "Fandom" + }) + public int wiki = 0; } diff --git a/src/main/resources/assets/notenoughupdates/official-wiki.css b/src/main/resources/assets/notenoughupdates/official-wiki.css new file mode 100644 index 00000000..a9f82a32 --- /dev/null +++ b/src/main/resources/assets/notenoughupdates/official-wiki.css @@ -0,0 +1 @@ +.client-js .mw-dismissable-notice { display: none}.mw-dismissable-notice-close { visibility: hidden}.sitedir-ltr .mw-dismissable-notice-close { float: right}.sitedir-rtl .mw-dismissable-notice-close { float: left}.sitedir-ltr .mw-dismissable-notice-body { margin: .5em 20% .5em 5em}.sitedir-rtl .mw-dismissable-notice-body { margin: .5em 5em .5em 20%}.hlist dl,.hlist ol,.hlist ul { margin: 0; padding: 0}.hlist dl dl,.hlist ol dl,.hlist ul dl,.hlist dl ol,.hlist ol ol,.hlist ul ol,.hlist dl ul,.hlist ol ul,.hlist ul ul { display: inline}.hlist dd,.hlist dt,.hlist li { margin: 0; display: inline}ul.hlist li,.hlist>ul li,.hlist>dl li { display: inline-block; margin-right: 8px}.hlist-separated li:after { content: '•'!important; padding-left: 8px; font-size: 1em; line-height: 1}.hlist-separated :last-child:after { content: none!important}.mw-ui-button { background-color: #f8f9fa; color: #202122; display: inline-block; -moz-box-sizing: border-box; box-sizing: border-box; border: 1px solid #a2a9b1; border-radius: 2px; cursor: pointer; vertical-align: middle; font-family: inherit; font-size: 1em; font-weight: 700; line-height: 1.28571429em; text-align: center; -webkit-appearance: none}.mw-ui-button:not(.mw-ui-icon-element) { min-height: 32px; min-width: 4em; max-width: 28.75em; margin: 0; padding: 5px 12px}.mw-ui-button:not(:disabled) { -webkit-transition: background-color 100ms,color 100ms,border-color 100ms,box-shadow 100ms; transition: background-color 100ms,color 100ms,border-color 100ms,box-shadow 100ms}.mw-ui-button:not(:disabled):visited { color: #202122}.mw-ui-button:not(:disabled):hover { background-color: #fff; color: #404244; border-color: #a2a9b1}.mw-ui-button:not(:disabled):focus { color: #202122; border-color: #36c; box-shadow: inset 0 0 0 1px #36c,inset 0 0 0 2px #fff; outline-width: 0}.mw-ui-button:not(:disabled):focus::-moz-focus-inner { border-color: transparent; padding: 0}.mw-ui-button:not(:disabled):active,.mw-ui-button:not(:disabled).is-on { background-color: #c8ccd1; color: #000; border-color: #72777d; box-shadow: none}.mw-ui-button:disabled { background-color: #c8ccd1; color: #fff; border-color: #c8ccd1; cursor: default}.mw-ui-button.mw-ui-icon-element:not(.mw-ui-icon-with-label-desktop) { color: transparent!important}.mw-ui-button.mw-ui-icon-element:not(.mw-ui-icon-with-label-desktop) span { display: block; position: absolute!important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; margin: -1px; border: 0; padding: 0; overflow: hidden}@media all and (max-width: 1000px) { .mw-ui-button.mw-ui-icon-element.mw-ui-icon-with-label-desktop { color:transparent!important } .mw-ui-button.mw-ui-icon-element span { display: block; position: absolute!important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; margin: -1px; border: 0; padding: 0; overflow: hidden }}.mw-ui-button.mw-ui-quiet,.mw-ui-button.mw-ui-quiet.mw-ui-progressive,.mw-ui-button.mw-ui-quiet.mw-ui-destructive { background-color: transparent; color: #202122; border-color: transparent; font-weight: 700}.mw-ui-button.mw-ui-quiet:not(.mw-ui-icon-element),.mw-ui-button.mw-ui-quiet.mw-ui-progressive:not(.mw-ui-icon-element),.mw-ui-button.mw-ui-quiet.mw-ui-destructive:not(.mw-ui-icon-element) { min-height: 32px}input[type=checkbox]:hover+.mw-ui-button.mw-ui-quiet,input[type=checkbox]:hover+.mw-ui-button.mw-ui-quiet.mw-ui-progressive,input[type=checkbox]:hover+.mw-ui-button.mw-ui-quiet.mw-ui-destructive,.mw-ui-button.mw-ui-quiet:hover,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:hover,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:hover { background-color: rgba(0,24,73,.02745098); color: #202122; border-color: transparent}input[type=checkbox]:focus+.mw-ui-button.mw-ui-quiet,input[type=checkbox]:focus+.mw-ui-button.mw-ui-quiet.mw-ui-progressive,input[type=checkbox]:focus+.mw-ui-button.mw-ui-quiet.mw-ui-destructive,.mw-ui-button.mw-ui-quiet:focus,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:focus,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:focus { color: #202122; border-color: #36c; box-shadow: inset 0 0 0 1px #36c,inset 0 0 0 2px #fff}input[type=checkbox]:active+.mw-ui-button.mw-ui-quiet,input[type=checkbox]:active+.mw-ui-button.mw-ui-quiet.mw-ui-progressive,input[type=checkbox]:active+.mw-ui-button.mw-ui-quiet.mw-ui-destructive,.mw-ui-button.mw-ui-quiet:active,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:active,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:active { background-color: rgba(0,36,73,.08235294); color: #000; border-color: #72777d; box-shadow: none}.mw-ui-button.mw-ui-quiet:disabled,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled,.mw-ui-button.mw-ui-quiet:disabled:hover,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled:hover,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled:hover,.mw-ui-button.mw-ui-quiet:disabled:active,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled:active,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled:active { background-color: transparent; color: #72777d; border-color: transparent}.mw-ui-button.mw-ui-progressive:not(:disabled) { background-color: #36c; color: #fff; border-color: #36c}.mw-ui-button.mw-ui-progressive:not(:disabled):hover { background-color: #447ff5; border-color: #447ff5}.mw-ui-button.mw-ui-progressive:not(:disabled):focus { box-shadow: inset 0 0 0 1px #36c,inset 0 0 0 2px #fff}.mw-ui-button.mw-ui-progressive:not(:disabled):active,.mw-ui-button.mw-ui-progressive:not(:disabled).is-on { background-color: #2a4b8d; border-color: #2a4b8d; box-shadow: none}.mw-ui-button.mw-ui-progressive:disabled { background-color: #c8ccd1; color: #fff; border-color: #c8ccd1}.mw-ui-button.mw-ui-progressive.mw-ui-quiet { color: #36c; background-color: transparent; border-color: transparent}input[type=checkbox]:hover+.mw-ui-button.mw-ui-progressive.mw-ui-quiet,.mw-ui-button.mw-ui-progressive.mw-ui-quiet:hover { background-color: rgba(52,123,255,.2); border-color: transparent; color: #447ff5}input[type=checkbox]:focus+.mw-ui-button.mw-ui-progressive.mw-ui-quiet,.mw-ui-button.mw-ui-progressive.mw-ui-quiet:focus { color: #36c; border-color: #36c}input[type=checkbox]:active+.mw-ui-button.mw-ui-progressive.mw-ui-quiet,.mw-ui-button.mw-ui-progressive.mw-ui-quiet:active { color: #fff; background-color: #2a4b8d; border-color: #2a4b8d}.mw-ui-button.mw-ui-destructive:not(:disabled) { background-color: #d33; color: #fff; border-color: #d33}.mw-ui-button.mw-ui-destructive:not(:disabled):hover { background-color: #ff4242; border-color: #ff4242}.mw-ui-button.mw-ui-destructive:not(:disabled):focus { box-shadow: inset 0 0 0 1px #d33,inset 0 0 0 2px #fff}.mw-ui-button.mw-ui-destructive:not(:disabled):active,.mw-ui-button.mw-ui-destructive:not(:disabled).is-on { background-color: #b32424; border-color: #b32424; box-shadow: none}.mw-ui-button.mw-ui-destructive:disabled { background-color: #c8ccd1; color: #fff; border-color: #c8ccd1}.mw-ui-button.mw-ui-destructive.mw-ui-quiet { color: #d33; background-color: transparent; border-color: transparent}input[type=checkbox]:hover+.mw-ui-button.mw-ui-destructive.mw-ui-quiet,.mw-ui-button.mw-ui-destructive.mw-ui-quiet:hover { background-color: rgba(209,29,19,.2); border-color: transparent; color: #ff4242}input[type=checkbox]:focus+.mw-ui-button.mw-ui-destructive.mw-ui-quiet,.mw-ui-button.mw-ui-destructive.mw-ui-quiet:focus { color: #d33; border-color: #d33}input[type=checkbox]:active+.mw-ui-button.mw-ui-destructive.mw-ui-quiet,.mw-ui-button.mw-ui-destructive.mw-ui-quiet:active { color: #fff; background-color: #b32424; border-color: #b32424}.mw-ui-button.mw-ui-big { font-size: 1.3em}.mw-ui-button.mw-ui-block { display: block; width: 100%; margin-left: auto; margin-right: auto}a.mw-ui-button { text-decoration: none}a.mw-ui-button:hover,a.mw-ui-button:focus { text-decoration: none}.mw-ui-button-group>* { min-width: 48px; border-radius: 0; float: left}.mw-ui-button-group>*:first-child { border-top-left-radius: 2px; border-bottom-left-radius: 2px}.mw-ui-button-group>*:not(:first-child) { border-left: 0}.mw-ui-button-group>*:last-child { border-top-right-radius: 2px; border-bottom-right-radius: 2px}.mw-ui-button-group .is-on .button { cursor: default}.mw-ui-icon { font-size: initial; position: relative; display: inline-block; box-sizing: content-box!important; width: 1.25em; height: 1.25em; min-width: 1.25em; min-height: 1.25em; flex-basis: 1.25em; vertical-align: middle; line-height: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; -moz-appearance: none; -webkit-appearance: none; background-color: transparent; border: 0; margin: 0; padding: 0}.mw-ui-icon:before { content: ''; display: block; width: 100%; height: 100%; min-width: 1.25em; min-height: 1.25em; background-repeat: no-repeat; background-size: 1.25em 1.25em; background-position: center}.mw-ui-icon-flush-top { margin-top: -.75em}.mw-ui-icon-flush-left { margin-left: -.75em}.mw-ui-icon-flush-right { margin-right: -.75em}.mw-ui-icon-element { border-radius: 2px; padding: .75em; -webkit-transition: background-color 100ms; transition: background-color 100ms; color: transparent}.mw-ui-icon-element:focus,.mw-ui-icon-element:active,.mw-ui-icon-element:visited { color: transparent}.mw-ui-icon-element:active { background-color: rgba(0,0,0,.03)}@media(hover: hover) { .mw-ui-icon-element:not(.disabled):hover { background-color:rgba(0,0,0,.03) }}.mw-ui-icon-small { width: 1em; height: 1em; min-width: 1em; min-height: 1em; flex-basis: 1em; line-height: 1em}.mw-ui-icon-small:before { content: ''; display: block; width: 100%; height: 100%; min-width: 1em; min-height: 1em; background-repeat: no-repeat; background-size: 1em 1em; background-position: center}.mw-ui-icon-small.mw-ui-icon-element { padding: .5625em}.mw-ui-icon-small.mw-ui-icon-flush-left { margin-left: -.5625em}.mw-ui-icon-small.mw-ui-icon-flush-right { margin-right: -.5625em}.mw-ui-icon-small.mw-ui-icon-before:before { min-width: 1em; min-height: 1em; margin-right: .5625em}.mw-ui-icon-before { width: auto; max-width: 100%}.mw-ui-icon-before:before { display: inline-block; font-size: initial; width: auto; min-width: 1.25em; min-height: 1.25em; margin-right: 8px; vertical-align: middle}.mw-ui-icon-before span { vertical-align: middle}@media all and (min-width: 1000px) { .mw-ui-icon-with-label-desktop { color:#54595d; width: auto; line-height: inherit; flex-basis: auto } .mw-ui-icon-with-label-desktop:hover,.mw-ui-icon-with-label-desktop:focus,.mw-ui-icon-with-label-desktop:active,.mw-ui-icon-with-label-desktop:visited { color: #54595d; text-decoration: none } .mw-ui-icon-with-label-desktop:before { width: auto; display: inline-block; margin-right: 8px; vertical-align: text-bottom }}.minerva__tab-container { white-space: nowrap; overflow-x: auto}.minerva__tab-container .minerva__tab { font-size: .85em; margin: 0 10px 0 0; color: #54595d; font-weight: 700; padding-bottom: 6px; display: inline-block}.minerva__tab-container .minerva__tab:visited,.minerva__tab-container .minerva__tab:hover,.minerva__tab-container .minerva__tab:active,.minerva__tab-container .minerva__tab.new,.minerva__tab-container .minerva__tab.new:visited,.minerva__tab-container .minerva__tab.new:active,.minerva__tab-container .minerva__tab.new:hover { color: #54595d; text-decoration: none}.minerva__tab-container .minerva__tab:last-child { margin-right: 0}.minerva__tab-container .minerva__tab.selected { border-bottom: 2px solid #54595d}.toggle-list__list--drop-down { -webkit-transform: translateY(-8px); -ms-transform: translateY(-8px); transform: translateY(-8px); -webkit-tap-highlight-color: transparent}.minerva-animations-ready .toggle-list__list--drop-down { -webkit-transition: opacity 100ms ease-in-out,-webkit-tap-highlight-color 0s ease-in-out,transform 100ms ease-in-out,visibility 100ms ease-in-out; transition: opacity 100ms ease-in-out,-webkit-tap-highlight-color 0s ease-in-out,transform 100ms ease-in-out,visibility 100ms ease-in-out}.toggle-list__checkbox:checked~.toggle-list__list--drop-down { -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0)}.toggle-list-item { display: block; padding: .75em .875em}.toggle-list-item:hover { background: #eaecf0}.toggle-list-item__anchor { display: block; line-height: 1}.toggle-list-item__anchor:hover { text-decoration: none}.toggle-list-item__anchor:visited,.toggle-list-item__anchor:active { color: #54595d}.toggle-list-item__icon { vertical-align: middle}.toggle-list-item__label { text-align: left; color: #54595d; font-weight: 700; white-space: nowrap; vertical-align: middle; font-size: .875em}.minerva-user-menu-list { top: 100%; right: -.75em; min-width: 200px; border-radius: 2px}.minerva--history-page-action-enabled .page-actions-menu__list-item { flex-basis: auto}.minerva--history-page-action-enabled .page-actions-menu__list-item:first-child { flex-grow: 0}.page-actions-overflow-list { top: 100%; right: -.75em; border-radius: 2px}.mw-ui-icon-minerva-ellipsis:before { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg)}@media screen { @counter-style meetei { system: numeric; symbols: '\ABF0''\ABF1''\ABF2''\ABF3''\ABF4''\ABF5''\ABF6''\ABF7''\ABF8''\ABF9'; suffix: ') ' } @counter-style santali { system: numeric; symbols: '\1C50''\1C51''\1C52''\1C53''\1C54''\1C55''\1C56''\1C57''\1C58''\1C59' } ol:lang(azb) li,ol:lang(bcc) li,ol:lang(bgn) li,ol:lang(bqi) li,ol:lang(fa) li,ol:lang(glk) li,ol:lang(kk-arab) li,ol:lang(lrc) li,ol:lang(luz) li,ol:lang(mzn) li { list-style-type: persian } ol:lang(ckb) li,ol:lang(sdh) li { list-style-type: arabic-indic } ol:lang(hi) li,ol:lang(mai) li,ol:lang(mr) li,ol:lang(ne) li { list-style-type: devanagari } ol:lang(as) li,ol:lang(bn) li { list-style-type: bengali } ol:lang(mni) li { list-style-type: meetei } ol:lang(or) li { list-style-type: oriya } ol:lang(sat) li { list-style-type: santali }}div,span,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,ins,em,img,small,strike,strong,sub,sup,tt,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,input,button,select,audio,video { margin: 0; padding: 0; border: 0; font: inherit; font-size: 100%; vertical-align: baseline; background: 0 0}table,caption,tbody,tfoot,thead,tr,th,td { font-size: 100%}caption { font-weight: 700}button { border: 0; background-color: transparent; cursor: pointer}input { line-height: normal}ul { list-style: none}table { border-collapse: collapse}html,body { height: 100%}html { font-size: 100%; -webkit-text-size-adjust: none}body { background-color: transparent; color: #202122; margin: 0}main { display: block}.mw-body { border-top: 1px solid transparent; padding-bottom: 32px}.overlay-enabled,.mw-body { background-color: transparent}.header-container { border-bottom: 1px solid #c8ccd1; padding: 0 16px}.header-container.header-chrome { background-color: #eaecf0; border: 0; box-shadow: inset 0 -1px 3px rgba(0,0,0,.08)}.navigation-drawer--loading,#footer-info-lastmod { display: none}.header { display: table; width: 100%; border-spacing: 0; border-collapse: collapse; height: 3.375em; white-space: nowrap; border-top: 1px solid #c8ccd1; margin-top: -1px}.header>div,.header>.navigation-drawer { position: relative; vertical-align: middle; display: table-cell}.header>div a { display: block}.header .branding-box { width: auto; opacity: .66}.header .branding-box h1,.header .branding-box a { margin-left: 5px; font-size: 1em; text-decoration: none; color: #202122}.header .branding-box h1 span,.header .branding-box a span { line-height: 1; font-size: inherit}.header .branding-box h1 img,.header .branding-box a img { vertical-align: middle}.header .branding-box h1>*,.header .branding-box a>* { float: left}.header .branding-box h1 sup,.header .branding-box a sup { color: #54595d; display: none}.beta .header .branding-box h1 sup,.beta .header .branding-box a sup { display: initial}.header>.header-title { vertical-align: middle}#searchInput { cursor: text}.search-box,.header .search-box { display: none; width: auto}.search-box .search { background-color: #fff; background-position: left .5em center; background-repeat: no-repeat; background-size: 1.125em; -webkit-appearance: none; width: 100%; margin-top: 0; height: 2.25em; border: 1px solid #fff; border-radius: 2px; padding: 7px 0 7px 2.0625em; box-shadow: 0 1px 1px rgba(0,0,0,.05); outline: 0; -webkit-transition: border-color 250ms,box-shadow 250ms; transition: border-color 250ms,box-shadow 250ms}.client-nojs .search-box .search:focus,.search-overlay .search-box .search:focus { border-color: #36c; box-shadow: inset 0 0 0 1px #36c,0 1px 1px rgba(0,0,0,.05)}input.search::-webkit-search-decoration,input.search::-webkit-search-cancel-button,input.search::-webkit-search-results-button,input.search::-webkit-search-results-decoration { display: none}.content h2 { clear: left}.content .collapsible-heading .edit-page { visibility: hidden}.content .collapsible-heading.open-block .edit-page { visibility: visible}.content .mw-parser-output>h2,.content .section-heading { border-bottom: 1px solid #eaecf0; margin-bottom: .5em}.content .mw-parser-output>h1,.content .mw-parser-output>h2,.content .mw-parser-output>h3,.content .mw-parser-output>h4,.content .mw-parser-output>h5,.content .section-heading,.content .in-block { display: table}.content .mw-parser-output>h1 .mw-headline,.content .mw-parser-output>h2 .mw-headline,.content .mw-parser-output>h3 .mw-headline,.content .mw-parser-output>h4 .mw-headline,.content .mw-parser-output>h5 .mw-headline,.content .section-heading .mw-headline,.content .in-block .mw-headline { width: 100%}.content .mw-parser-output>h1>span,.content .mw-parser-output>h2>span,.content .mw-parser-output>h3>span,.content .mw-parser-output>h4>span,.content .mw-parser-output>h5>span,.content .section-heading>span,.content .in-block>span { display: table-cell; vertical-align: middle}.content .mw-parser-output>h1>.mw-editsection>.mw-ui-icon-element,.content .mw-parser-output>h2>.mw-editsection>.mw-ui-icon-element,.content .mw-parser-output>h3>.mw-editsection>.mw-ui-icon-element,.content .mw-parser-output>h4>.mw-editsection>.mw-ui-icon-element,.content .mw-parser-output>h5>.mw-editsection>.mw-ui-icon-element,.content .section-heading>.mw-editsection>.mw-ui-icon-element,.content .in-block>.mw-editsection>.mw-ui-icon-element { margin-top: -.75em; margin-bottom: -.75em}.client-nojs .section-heading .indicator { display: none}#page-secondary-actions { clear: both}#page-secondary-actions a { margin: 10px 2px 2px 0}#bodyContent .panel .content,.overlay .content-header,.overlay .panel,.page-list.side-list .list-thumb,.page-list li,.topic-title-list li,.site-link-list li,.drawer,.messagebox,.errorbox,.successbox,.warningbox,.list-header,.mw-revision { padding-left: 16px; padding-right: 16px}.talk-overlay .comment .comment-content,.image-list,.pre-content,#mw-content-text>form>.oo-ui-fieldLayout>.oo-ui-fieldLayout-body,#mw-content-text>form>.oo-ui-widget,.content,.post-content { margin: 0 16px}.minerva__subtitle { margin-top: 10px; margin-bottom: 10px}.minerva__subtitle:empty { margin: 0}@media all and (min-width: 720px) { .page-summary-list,.topic-title-list,.site-link-list,.overlay .panel,.list-header { padding-left:3.35em; padding-right: 3.35em }}.heading-holder { padding: 20px 0 0; position: relative}.heading-holder .tagline { color: #54595d; font-size: .85em}.page-heading { margin-bottom: 12px}.mw-ui-icon-element.disabled,.language-selector.disabled { cursor: default; opacity: .25}#page-actions { position: relative}.page-actions-menu { -moz-box-sizing: border-box; box-sizing: border-box; border-top: 1px solid #eaecf0; border-bottom: 1px solid #c8ccd1; margin-top: -1px}.page-actions-menu__list { display: flex; height: 3em; justify-content: space-between}.page-actions-menu__list-item { display: flex; justify-content: flex-end; align-items: center; min-width: 0; overflow: hidden}.page-actions-menu__list-item>a { font-weight: 500}.page-actions-menu__list-item li>*:hover { box-shadow: none}.page-actions-menu__list-item:first-child { flex-grow: 1; justify-content: flex-start; margin-left: -8px}.page-actions-menu__list-item:last-child { margin-right: -8px}.client-nojs .watch-this-article { visibility: hidden}.client-nojs .is-authenticated .watch-this-article { visibility: visible}@media all and (max-width: 320px - 1) { .client-nojs #page-actions { display:none } .client-nojs #section_0 { border: 0 }}.minerva-user-navigation { display: flex; min-width: 7em; min-height: 3.375em; height: 100%; width: 100%; align-items: center; justify-content: flex-end; position: relative}.minerva-user-navigation>*:last-child { margin-right: -.75em}.view-border-box *,.view-border-box { -moz-box-sizing: border-box; box-sizing: border-box}.client-js .mw-redirectedfrom,.printfooter,.jsonly { display: none}.client-js .jsonly { display: inherit}.hidden { display: none!important}#mw-mf-viewport { position: relative; height: 100%}#mw-mf-page-center { width: 100%; min-height: 100%; position: relative; background-color: #eaecf0}.content { position: relative; z-index: 0}.minerva-footer { border-top: solid 1px #c8ccd1; overflow: auto; padding-bottom: 6px}.client-nojs footer .indicator,.client-nojs .mw-footer .indicator { display: none}footer .hlist li:after,.mw-footer .hlist li:after { color: #36c}footer>.post-content,.mw-footer>.post-content { overflow: auto; margin-top: 42px}footer>.post-content>*,.mw-footer>.post-content>* { margin-bottom: 9px}footer>.post-content>h2,.mw-footer>.post-content>h2 { border-bottom: solid 1px #c8ccd1; padding-bottom: 10px; margin-top: 42px; font-size: 1em; font-weight: 700}footer>.post-content>h2:first-child,.mw-footer>.post-content>h2:first-child { margin-top: 0}footer>.post-content .hlist,.mw-footer>.post-content .hlist,footer>.post-content .license,.mw-footer>.post-content .license { font-size: .875em}.last-modified-bar { border-bottom: solid 1px #c8ccd1; background-color: #eaecf0; color: #72777d; padding-top: .75em; padding-bottom: .75em; font-size: .875em; -webkit-transition: background-color 250ms,color 250ms; transition: background-color 250ms,color 250ms}.last-modified-bar a,.last-modified-bar a:visited { color: #54595d}.last-modified-bar a:nth-child(1),.last-modified-bar a:visited:nth-child(1) { font-weight: 700}.last-modified-bar a.external { background-image: none; padding-right: 0}.last-modified-bar__content { align-items: center; display: -ms-flexbox; display: flex}.last-modified-bar__text { padding-right: 3.5em; padding-left: .75em; line-height: 1.65; vertical-align: middle; flex-grow: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap}@media(max-width: 720px) { .last-modified-bar__text { padding-right:1em }}@media print { .noprint,.banner-container,.header,.minerva__tab-container,.page-actions-menu,.post-content { display: none } h1,h2,h3,h4,h5,h6 { page-break-after: avoid } table,figure,img { page-break-inside: avoid } img { max-width: 100% } img.image-lazy-loaded { -webkit-animation: none!important; animation: none!important }}@media print and (max-device-width: 720px) { @page { margin:50px 0 } html { padding: 0 50px } .header-container,.header-container.header-chrome { background: #fff; box-shadow: none!important } .header { border-top: 0; display: block; height: auto; padding: 0 16px } .header .branding-box { padding-left: 0!important } .header .branding-box sup { display: none!important } .header>nav,.header>div { display: none!important } .header>.branding-box { height: auto; display: block!important; padding: 0 0 51px 50px } .header>.branding-box h1 { font-size: inherit } .header>.branding-box h1>* { float: none } .header>.branding-box h1 img { height: 41px; width: auto; vertical-align: inherit } .hatnote,.pre-content #page-actions { display: none } .pre-content { display: block; padding: 51px 0 35px } .pre-content h1 { font-size: 70px; font-weight: 400; font-style: italic; font-stretch: normal; line-height: normal; letter-spacing: normal; text-align: left; color: #000 } .pre-content .tagline { font-size: 36px } .mw-body>.content { padding-top: 55px; position: relative } .mw-body>.content:before { top: 0 } .thumbinner { width: auto!important } .thumbinner>a { width: 100% } .thumb { position: relative; padding: 58px 0!important; text-align: left; margin: 0!important } .thumb:after { bottom: 30px } .thumb:after,.mw-body>.content:before { position: absolute; left: 0; content: ''; display: block; width: 55px; height: 2px; background: #999 } .thumbcaption { margin-top: 23px!important; width: 100%; font-style: italic; font-size: 28px } [class|=mw-content] { font-size: 36px } [class|=mw-content] a { text-decoration: underline; color: #202122 } [class|=mw-content] blockquote { color: #54595d; padding: 5px 39px; font-style: italic } [class|=mw-content] .section-heading { border-bottom: 0; padding-bottom: 0; margin-bottom: 16px } [class|=mw-content] h2 { font-size: 48px } [class|=mw-content] h3 { font-size: 40px; margin-bottom: 13px } [class|=mw-content] h4,[class|=mw-content] h5,[class|=mw-content] h6 { font-size: 36px; margin-bottom: 12px } [class|=mw-content] .wikitable { font-size: 16px } [class|=mw-content] .infobox { font-size: 30px } .references .mw-cite-backlink { display: none } .references .reference-text { font-style: italic } .references a { text-decoration: none } .references .external.text { background-image: none } .printfooter { display: block; padding-top: 108px; font-size: 30px } #mw-mf-page-center>footer { border-top: solid 4px #000; padding-top: 23px; background: #fff!important } #mw-mf-page-center>footer .mw-ui-icon:before { display: none!important } #mw-mf-page-center>footer .last-modified-bar { background: 0 0!important; border: 0!important } #mw-mf-page-center>footer .last-modifier-tagline { font-size: 36px; padding-top: 0!important; padding-bottom: 16px!important } #mw-mf-page-center>footer .last-modified-bar,#mw-mf-page-center>footer .last-modified-bar a { font-weight: 700!important; color: #000!important } #mw-mf-page-center>footer .post-content { margin-top: 15px!important; display: block } #mw-mf-page-center>footer .post-content .hlist,#mw-mf-page-center>footer .post-content h2 { display: none } #mw-mf-page-center>footer .post-content .license a,#mw-mf-page-center>footer .post-content .license { font-size: 30px; color: #999; font-weight: 400 }}@font-face { font-family: raleway; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCFPrEHJA.woff2) format('woff2'); unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face { font-family: raleway; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCMPrEHJA.woff2) format('woff2'); unicode-range: U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face { font-family: raleway; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCHPrEHJA.woff2) format('woff2'); unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face { font-family: raleway; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCGPrEHJA.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: raleway; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrE.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face { font-family: neuton; font-style: italic; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBRrPtMoH62xUZCyrg2Wi_FBw.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: neuton; font-style: italic; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBRrPtMoH62xUZCyrg4Wi8.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face { font-family: neuton; font-style: normal; font-weight: 200; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKAKkvcwr4Pro.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: neuton; font-style: normal; font-weight: 200; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKAKkvfQr4.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face { font-family: neuton; font-style: normal; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKZKovcwr4Pro.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: neuton; font-style: normal; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKZKovfQr4.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face { font-family: neuton; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBTrPtMoH62xUZCwYg6Qis.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: neuton; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBTrPtMoH62xUZCz4g6.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face { font-family: neuton; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKdK0vcwr4Pro.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: neuton; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKdK0vfQr4.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face { font-family: neuton; font-style: normal; font-weight: 800; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKaK4vcwr4Pro.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: neuton; font-style: normal; font-weight: 800; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKaK4vfQr4.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@media screen and (min-width: 1000px) { .header { max-width:1250px!important }}.banner-container,.header,.page-header-bar,.overlay-header,.content,.overlay-content,.content-unstyled,.pre-content,.post-content,.last-modified-bar,#mw-content-text>form { max-width: 1250px!important}.page-Main_Page .page-heading,.page-Main_Page .pre-content { display: none!important}.page-Main_Page pre { display: none}.page-Main_Page .blocks-list { display: flex; flex-wrap: wrap; justify-content: space-evenly; list-style: none; column-gap: 20px; row-gap: 20px; padding: 0; margin: 0}.page-Main_Page .blocks-item { box-sizing: border-box; color: #ffc376; display: flex; flex: 1 0 180px; text-align: center; margin: 0!important; border: 1px solid #ecebeb; border-radius: 8px; box-shadow: 0 2px 15px rgba(175,175,175,.2); flex-flow: wrap; position: relative}.page-Main_Page .blocks-item:hover { box-shadow: 0 2px 15px rgba(231,135,27,.4)!important; cursor: pointer; top: -2px}.page-Main_Page .blocks-item>a { color: #ffc376; padding: 0 10px 15px; display: flex; flex-direction: column; flex: 1; justify-content: center; border-radius: inherit; text-decoration: none; background-color: transparent}.page-Main_Page .block-icon { background-position: top center; background-repeat: no-repeat; background-size: contain; height: 140px; margin: 0; transition: all .1s ease-in-out}.page-Main_Page .blocks-item-title { margin: 0; font-size: 22px; color: #ffc376}.page-Main_Page .blocks-item-description:not(:empty) { margin-top: 10px}.page-Main_Page .blocks-item-description { font-weight: 300; margin: 0; color: #1a1a1a}.page-Main_Page .block-icon:before { content: ""; display: block; position: relative}.page-Main_Page .blocks-item#block-accessories>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.png) 2x)}.page-Main_Page .blocks-item#block-accessories>a>.block-icon:before,.page-Main_Page .blocks-item#block-accessories:hover>a>.block-icon,.page-Main_Page .blocks-item#block-accessories>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.ro.png) 2x)}.page-Main_Page .blocks-item#block-armor>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.png) 2x)}.page-Main_Page .blocks-item#block-armor>a>.block-icon:before,.page-Main_Page .blocks-item#block-armor:hover>a>.block-icon,.page-Main_Page .blocks-item#block-armor>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.ro.png) 2x)}.page-Main_Page .blocks-item#block-collections>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.png) 2x)}.page-Main_Page .blocks-item#block-collections>a>.block-icon:before,.page-Main_Page .blocks-item#block-collections:hover>a>.block-icon,.page-Main_Page .blocks-item#block-collections>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.ro.png) 2x)}.page-Main_Page .blocks-item#block-hub>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.png) 2x)}.page-Main_Page .blocks-item#block-hub>a>.block-icon:before,.page-Main_Page .blocks-item#block-hub:hover>a>.block-icon,.page-Main_Page .blocks-item#block-hub>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.ro.png) 2x)}.page-Main_Page .blocks-item#block-fairysouls>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.png) 2x)}.page-Main_Page .blocks-item#block-fairysouls>a>.block-icon:before,.page-Main_Page .blocks-item#block-fairysouls:hover>a>.block-icon,.page-Main_Page .blocks-item#block-fairysouls>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.ro.png) 2x)}.page-Main_Page .blocks-item#block-island>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.png) 2x)}.page-Main_Page .blocks-item#block-island>a>.block-icon:before,.page-Main_Page .blocks-item#block-island:hover>a>.block-icon,.page-Main_Page .blocks-item#block-island>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.ro.png) 2x)}.page-Main_Page .blocks-item#block-locations>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.png) 2x)}.page-Main_Page .blocks-item#block-locations>a>.block-icon:before,.page-Main_Page .blocks-item#block-locations:hover>a>.block-icon,.page-Main_Page .blocks-item#block-locations>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.ro.png) 2x)}.page-Main_Page .blocks-item#block-minions>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.png) 2x)}.page-Main_Page .blocks-item#block-minions>a>.block-icon:before,.page-Main_Page .blocks-item#block-minions:hover>a>.block-icon,.page-Main_Page .blocks-item#block-minions>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.ro.png) 2x)}.page-Main_Page .blocks-item#block-pets>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.png) 2x)}.page-Main_Page .blocks-item#block-pets>a>.block-icon:before,.page-Main_Page .blocks-item#block-pets:hover>a>.block-icon,.page-Main_Page .blocks-item#block-pets>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.ro.png) 2x)}.page-Main_Page .blocks-item#block-reforging>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.png) 2x)}.page-Main_Page .blocks-item#block-reforging>a>.block-icon:before,.page-Main_Page .blocks-item#block-reforging:hover>a>.block-icon,.page-Main_Page .blocks-item#block-reforging>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.ro.png) 2x)}.page-Main_Page .blocks-item#block-skills>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.png) 2x)}.page-Main_Page .blocks-item#block-skills>a>.block-icon:before,.page-Main_Page .blocks-item#block-skills:hover>a>.block-icon,.page-Main_Page .blocks-item#block-skills>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.ro.png) 2x)}.page-Main_Page .blocks-item#block-stats>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.png) 2x)}.page-Main_Page .blocks-item#block-stats>a>.block-icon:before,.page-Main_Page .blocks-item#block-stats:hover>a>.block-icon,.page-Main_Page .blocks-item#block-stats>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.ro.png) 2x)}.page-Main_Page .blocks-item#block-weapons>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.png) 2x)}.page-Main_Page .blocks-item#block-weapons>a>.block-icon:before,.page-Main_Page .blocks-item#block-weapons:hover>a>.block-icon,.page-Main_Page .blocks-item#block-weapons>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.ro.png) 2x)}.page-Main_Page #wrapper { display: flex; flex-direction: row; column-gap: 50px; row-gap: 50px; justify-content: space-between}.page-Main_Page #wrapper #content { display: flex; flex-direction: column; row-gap: 50px}.page-Main_Page #wrapper #content #introduction { display: flex; flex-direction: row; column-gap: 25px; row-gap: 25px; align-content: center}.page-Main_Page #wrapper #content #introduction #welcome { margin: .5em 0}.page-Main_Page #wrapper #content #introduction .blocks-item { margin: 0!important}.page-Main_Page #wrapper #content #statistics .stats-list { display: flex; flex-wrap: wrap; list-style: none; justify-content: space-evenly; padding: 0; row-gap: 25px}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item { margin: 0}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon { background-position: center; background-size: contain; background-repeat: no-repeat; height: 55px; width: 55px; display: inline-block; position: relative; vertical-align: middle}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon.stats-icon-edits { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/edits.png)}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon.stats-icon-pages { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/pages.png)}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon.stats-icon-files { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/files.png)}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-item-text { vertical-align: middle; display: inline-flex; position: relative; flex-direction: column; flex-wrap: nowrap; justify-content: center; align-content: center; margin: 0 15px}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-item-text span:first-child { font-size: 20px}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-item-text span:nth-child(2) { font-size: 16px}.page-Main_Page #wrapper #content #other-game-content ul { columns: 200px auto}.page-Main_Page #wrapper #content .content-heading { height: 50px; background-color: #1f1f1f; border: 1px solid #333; border-image: url(https://wiki.hypixel.net/images/hypixel/borders/classic_border.png) 1000 1000 repeat!important; border-image-width: 35px!important; border-image-outset: 2px!important; margin: 0 0 1em; font-size: 20px; display: flex; justify-content: center; align-items: center}.page-Main_Page #wrapper #sidebar { display: flex; flex-direction: column; row-gap: 50px}.page-Main_Page #wrapper #sidebar .sidebar-heading { text-align: center; font-size: 20px}.page-Main_Page #wrapper #sidebar .sidebar-content { display: flex; flex-direction: column; flex-wrap: nowrap; row-gap: 15px; background-color: #1f1f1f; padding: 20px; border-radius: 3px; border: 1px solid #333; border-image: url(https://wiki.hypixel.net/images/hypixel/borders/square_border.png) 500 500 repeat; border-image-width: 35px!important; border-image-outset: 2px!important}.page-Main_Page #wrapper #sidebar #clock { display: none}.page-Main_Page #wrapper #sidebar #clock p { text-align: center; margin: 0}.page-Main_Page #wrapper #sidebar #clock #clock-time { font-size: 2em}.page-Main_Page #wrapper #sidebar #clock #clock-date { font-size: 1em}@media(max-width: 1000px) { #wrapper { flex-wrap:wrap }}@media(max-width: 720px) { #introduction { flex-wrap:wrap; justify-content: center } .stats-list { flex-direction: column; align-content: center }}.mw-ui-button.mw-ui-progressive { background-color: #e7871b; color: #fff; border: 1px solid #e7871b}.oo-ui-panelLayout-framed { background-color: #eaecf0!important; border-radius: 4px; border: none!important}.oo-ui-dropdownInputWidget.oo-ui-widget-enabled { background-color: transparent}ul.mw-contributions-list li { min-height: 0!important}ul.special li { min-height: 0!important}body { color: transparent; background-color: transparent; font-family: Raleway,helvetica,serif!important}#content h1,#content h2,#content h3 { font-family: Neuton,Raleway,helvetica,serif!important}html,#mw-mf-page-center,#mw-script-doc,#content,.navbox,.navbox-subgroup,.overlay.search-overlay { background-color: #fff!important}.overlay.search-overlay { background-color: #fff!important}.overlay.search-overlay .search-box { display: block!important; position: relative!important}a.external { background-image: none!important; padding-right: 0!important}.mw-body h2.list-header { margin-top: 16px}.page-heading>h1 { font-size: 1.7em!important; font-weight: 400!important; line-height: 1.3; word-wrap: break-word; word-break: break-word}.list-header { background-color: transparent; color: inherit}#toc ul { list-style: decimal}#mw-toc-heading::before { background-image: url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJsaXN0IiBjbGFzcz0ic3ZnLWlubGluZS0tZmEgZmEtbGlzdCBmYS13LTE2IiByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Ik04MCAzNjhIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2NjRhMTYgMTYgMCAwIDAgMTYgMTZoNjRhMTYgMTYgMCAwIDAgMTYtMTZ2LTY0YTE2IDE2IDAgMCAwLTE2LTE2em0wLTMyMEgxNkExNiAxNiAwIDAgMCAwIDY0djY0YTE2IDE2IDAgMCAwIDE2IDE2aDY0YTE2IDE2IDAgMCAwIDE2LTE2VjY0YTE2IDE2IDAgMCAwLTE2LTE2em0wIDE2MEgxNmExNiAxNiAwIDAgMC0xNiAxNnY2NGExNiAxNiAwIDAgMCAxNiAxNmg2NGExNiAxNiAwIDAgMCAxNi0xNnYtNjRhMTYgMTYgMCAwIDAtMTYtMTZ6bTQxNiAxNzZIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAtMzIwSDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZWODBhMTYgMTYgMCAwIDAtMTYtMTZ6bTAgMTYwSDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2eiI+PC9wYXRoPjwvc3ZnPg==); content: ""; float: left; height: 14px; left: -14px; position: relative; top: 5px; width: 14px}#footer-company { padding: 0 50px 0 0}#footer-links { display: flex; flex: 1; flex-direction: column; flex-wrap: wrap; font-size: 15px; max-height: 120px}#footer-links>li { padding: 4px 10px}#footer-logo { max-height: 64px}#footer-socials { font-size: 16px; vertical-align: top; color: gray; display: block; padding: 0 4px}#footer-socials .fab { min-width: 18px; text-align: center; vertical-align: middle}#footer-socials a:hover { color: gray!important}#footer-socials a:hover>.fa-discord { color: #7289da}#footer-socials a:hover>.fa-facebook { color: #4267b2}#footer-socials a:hover>.fa-instagram { color: #405de6}#footer-socials a:hover>.fa-tiktok { color: #000}#footer-socials a:hover>.fa-twitter { color: #1da1f2}#footer-socials a:hover>.fa-youtube { color: red}#mw-content-text>form { width: 100%!important}.branding-box { background: url(https://wiki.hypixel.net/images/hypixel-full.png) no-repeat; background-origin: content-box; background-size: contain; background-position: center; opacity: 1!important; padding: 10px 0; cursor: pointer; height: 100%}.branding-box>a { height: 100%; width: 100%}.branding-box>a>span { color: transparent}.client-nojs .search-box .search:focus { border: none; box-shadow: none}.search-overlay .search-box .search:focus { border: none; box-shadow: none}.toggle-list__toggle,#mw-mf-main-menu-button { border: none; box-shadow: none; outline: none!important}.footer { background-image: linear-gradient(to bottom,rgba(26,26,26,0.92),#1a1a1a),url(https://wiki.hypixel.net/images/artwork.png); background-position: center; background-repeat: no-repeat; background-size: cover; border-top: 1px solid #ddd; color: #fff; margin-top: 60px; padding: 30px 0; user-select: none}.footer a { color: gray!important; text-decoration: none!important; transition: .12s ease-in-out}.footer a:hover { color: #fff!important}.footer-copyright { color: gray; display: block; padding: 0 4px}.footer-inner { display: flex; flex-wrap: wrap; justify-content: space-between; margin: 0 auto; max-width: 1160px; padding: 0!important; width: 65%!important}.header { height: 71px!important; user-select: none}.header-chrome:before { background-image: radial-gradient(farthest-side at top,rgba(255,255,255,0.5),#ffffff),url(https://wiki.hypixel.net/images/artwork.png)!important; background-position: center; background-repeat: no-repeat; background-size: cover; content: ""; height: 72px; left: 0; max-width: 100%!important; position: absolute; width: 100%!important}.last-modified-bar { margin: auto; width: 90%; background-color: #eaecf0!important; border-radius: 4px}.minerva__tab.selected { border-bottom: 2px solid #e7871b!important}.mw-editform .editOptions { margin-top: 20px}.mw-ui-icon-element.cancel { height: 44px; margin: 10px; padding: 0; vertical-align: middle; width: 44px}.mw-ui-icon-element:not(.disabled):hover { background-color: rgba(0,0,0,.1)}.overlay-footer-container { display: none}.overlay.search-overlay.visible { animation-duration: .1s!important}.minerva__tab-container { display: none}.page-actions-menu,#filetoc,.warningbox { border-radius: 4px; margin-bottom: 16px; padding: 0 20px; background-color: #eaecf0; border: 1px solid #c8ccd1}.warningbox { padding: 10px 25px!important}.warningbox,#mw-clearyourcache { margin-bottom: 16px!important}.search { -webkit-appearance: none!important; background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&format=original&skin=minerva&version=1qbws); background-position: left .8em center!important; background-size: 18px!important; border: 1px solid #fff!important; border-radius: 6px!important; box-shadow: 0 0 10px #bbb!important; box-sizing: border-box!important; color: #666!important; font-family: BlinkMacSystemFont,segoe ui,helvetica,Arial,sans-serif!important; font-size: 14px!important; height: 40px!important; line-height: 1.15!important; max-width: 380px; padding-left: 40px!important; padding-right: 20px!important; transition: border .12s ease-in-out!important; width: 100%!important}.search:focus { outline: 1px solid #ffc376!important}.search-box .search { border-radius: 4px}.content kbd { border-radius: 4px}.content samp { border-radius: 4px}.content code { border-radius: 4px}.content pre { border-radius: 4px}footer { border: none!important}fieldset { margin: 10px 0}#mw-mf-page-left { box-shadow: 0 5px 17px 0 rgba(0,0,0,.24),0 0 1px #a2a9b1!important; position: absolute!important; height: max-content; border-radius: 3px; -webkit-transition: opacity 100ms ease-in-out,-webkit-tap-highlight-color 0s ease-in-out,transform 100ms ease-in-out,visibility 100ms ease-in-out!important; transition: opacity 100ms ease-in-out,-webkit-tap-highlight-color 0s ease-in-out,transform 100ms ease-in-out,visibility 100ms ease-in-out!important; top: 45px!important; left: -12px!important; transform: translate(0,-10px)!important}#mw-mf-page-left li { border: none!important}#mw-mf-page-left li:hover { background-color: #eaecf0!important}#mw-mf-page-left ul { padding-bottom: 0!important}#mw-mf-page-left ul li a { color: #54595d!important}#mw-mf-page-left ul li a:hover { box-shadow: none!important}form.search-box { display: block; width: 100%}input { outline: none}#main-menu-input:checked~#mw-mf-page-left { transform: translate(0,0)!important}.hlist { display: none}.last-modified-bar.active { background-color: #218e47!important}.wikitable>tr>th,.wikitable>tr>td,.wikitable>*>tr>th,.wikitable>*>tr>td { padding: .25em .55em!important}.suggestions { border-radius: 6px!important}.suggestions-result,.suggestions-special { padding: .5em 1em!important}.suggestions-results,.suggestions-special { border-color: #ccc!important}kbd,samp,code,pre,.page-actions-menu,#filetoc,.warningbox,.last-modified-bar { border: 1px solid #333; border-image: url(https://wiki.hypixel.net/images/hypixel/borders/classic_border.png) 1000 1000 repeat!important; border-image-width: 35px!important; border-image-outset: 2px!important}@media only screen { .oo-ui-tabOptionWidget { color: #fff!important } .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected { background-color: #212121 } .suggestions-results,.suggestions-special { background-color: #1f1f1f!important; border-color: #333!important } .suggestions-results .special-label,.suggestions-special .special-label { color: #ccc!important } .suggestions-results .suggestions-result,.suggestions-special .suggestions-result,.suggestions-results .special-query,.suggestions-special .special-query { color: #fff!important } .search { color: #ccc!important } html,body,#mw-mf-page-center,#mw-script-doc,#content,.navbox,.navbox-subgroup,.overlay.search-overlay,.oo-ui-tabSelectWidget-framed,.oo-ui-tagMultiselectWidget-handle,.mw-prefs-buttons,.mw-scribunto-message,.mw-scribunto-console-fieldset,.mw-history-compareselectedversions { background-color: transparent!important; color: #fff } .mw-rcfilters-ui-watchlistTopSectionWidget-separator { border-color: #212121!important } .mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-content-title,.mw-rcfilters-ui-filterTagMultiselectWidget-emptyFilters { color: #fff!important } .oo-ui-tabSelectWidget-framed { border-bottom-color: transparent } .oo-ui-tagMultiselectWidget-handle,.oo-ui-buttonGroupWidget,.oo-ui-dropdownWidget-handle,.oo-ui-optionWidget,.oo-ui-selectWidget,.oo-ui-optionWidget-selected { background-color: #1a1a1a!important; color: #fff!important; border-color: #212121!important } .oo-ui-optionWidget-highlighted { background-color: #212121!important } .oo-ui-optionWidget-selected { background-color: #1f1f1f!important } input,select,.oo-ui-buttonElement-button,#mw-scribunto-input,.diff-context { color: #fff!important; background-color: #1f1f1f!important; border: 1px solid #333!important } legend { color: #aaa } .content .mw-parser-output>h2 { border-bottom: 2px solid #333 } .content .mw-parser-output>h3 { border-bottom: 1px solid #333; margin-bottom: .5em } .content .section-heading { border-bottom: 1px solid #aaa } .content kbd,.content samp,.content code,.content pre,.content .toc,.content .infobox { background-color: #1f1f1f!important; border-color: #333!important } .content .infobox td { border-color: #333!important } .infobox tr { color: #fff!important } table.wikitable>tr>th,table.wikitable>tr>td { background-color: #212121; border-color: #333!important } table.wikitable>tr>th { background-color: #2b2b2b } table.wikitable>tr:nth-child(odd)>td { background: #2b2b2b } table.wikitable>*>tr>th,table.wikitable>*>tr>td { background-color: #212121; border-color: #333!important } table.wikitable>*>tr>th { background-color: #2b2b2b } table.wikitable>*>tr:nth-child(odd)>td { background: #2b2b2b } .mw-datatable>tr>th,.mw_metadata>tr>th,.mw-datatable>tr>td,.mw_metadata>tr>td { background-color: #212121!important; border-color: #333!important } .mw-datatable>tr>th,.mw_metadata>tr>th { background-color: #2b2b2b!important } .mw-datatable>*>tr>th,.mw_metadata>*>tr>th,.mw-datatable>*>tr>td,.mw_metadata>*>tr>td { background-color: #212121!important; border-color: #333!important } .mw-datatable>*>tr>th,.mw_metadata>*>tr>th { background-color: #2b2b2b!important } .footer { background-image: linear-gradient(to bottom,rgba(26,26,26,0.85),#1a1a1a),url(https://wiki.hypixel.net/images/artwork.png); border-top: 1px solid #1a1a1a } .header-chrome:before { background-image: radial-gradient(farthest-side at top,rgba(26,26,26,0.5),#1a1a1a),url(https://wiki.hypixel.net/images/artwork.png)!important } .oo-ui-iconElement-icon,.oo-ui-indicatorElement-indicator { filter: invert(1) hue-rotate(180deg) brightness(1.2) } .mw-ui-icon:not(.mw-ui-icon-wikimedia-history-invert):before { filter: invert(1) hue-rotate(180deg) brightness(1.2) } .mw-ui-icon:not(.mw-ui-icon-mf-expand-invert):before { filter: invert(1) hue-rotate(180deg) brightness(1.2) } .last-modified-bar { background-color: #1f1f1f!important } .last-modified-bar .last-modified-bar__text { color: #fff!important } .oo-ui-panelLayout-framed { background-color: #1f1f1f!important } .minerva__tab { color: #aaa!important } .mw-ui-icon-with-label-desktop:hover,.mw-ui-icon-with-label-desktop:focus,.mw-ui-icon-with-label-desktop:active,.mw-ui-icon-with-label-desktop:visited { color: #aaa!important } .page-heading>h1,.page-heading>.tagline { color: #fff!important } .toggle-list__list { color: #fff!important; background-color: #1f1f1f!important; box-shadow: 0 5px 17px 0 rgba(0,0,0,.24),0 0 1px #000!important; border: 1px solid #333 } .search { box-shadow: 0 0 10px #1f1f1f!important } .search,.page-actions-menu,#filetoc,.warningbox { background-color: #1f1f1f!important; border-color: #333!important } .toggle-list-item:hover { background: #000; color: #fff } .blocks-item-description,.mw-mf-user { color: #fff!important } .blocks-item { box-shadow: 0 2px 15px rgba(35,35,35,.5)!important; border: 1px solid #333!important; background-color: #212121 } .mw-ui-button { background-color: #1f1f1f!important; border: 1px solid #333!important; color: #fff!important } .mw-ui-button:hover { background-color: #212121!important } .mw-history-undo a,.mw-rollback-link a { background-color: #1f1f1f!important; border: 1px solid #333!important; color: #fff!important } .mw-history-undo a:hover,.mw-rollback-link a:hover { background-color: #212121!important } .toggle-list-item__label { color: #aaa!important } .page-list .info,.page-list .component { color: #aaa!important } .page-list li { border-color: #333!important } .topic-title-list .info,.topic-title-list .component { color: #aaa!important } .topic-title-list li { border-color: #333!important } .site-link-list .info,.site-link-list .component { color: #aaa!important } .site-link-list li { border-color: #333!important } .page-list.side-list .list-thumb { color: #aaa!important } .topic-title-list.side-list .list-thumb { color: #aaa!important } .site-link-list.side-list .list-thumb { color: #aaa!important } ul.mw-contributions-list li { border-color: #1f1f1f!important } ul.special li { border-color: #1f1f1f!important } .ns-special .content-header { border-color: #1f1f1f!important } .mw-prefs-buttons { border-color: #1f1f1f!important } #mw-mf-page-left { box-shadow: 0 5px 17px 0 rgba(0,0,0,.24),0 0 1px #000!important } #mw-mf-page-left ul li { background-color: #1f1f1f!important; color: #fff!important } #mw-mf-page-left ul li a { color: #aaa!important } #mw-mf-page-left li:hover { background-color: #000!important } .mw-ui-icon-element:not(.disabled):hover { background-color: rgba(0,0,0,.4) }}@media only screen and (min-width: 720px) { .header .branding-box { width:auto!important; min-width: 82px } .overlay.search-overlay .overlay-title { padding-left: 236px!important; width: 380px!important } #page-actions a { color: #fff!important } #page-actions label { color: #fff!important }}@media only screen and (max-width: 720px) { #footer-company { padding:0 0 30px; text-align: center; width: 100% } #footer-links { max-height: 100%; text-align: center } .header-chrome:before { background-image: linear-gradient(to bottom,rgba(255,255,255,0.5),#ffffff),url(https://wiki.hypixel.net/images/artwork.png)!important; height: 170px!important } .last-modified-bar { margin: 0 16px } .header-chrome:before { background-image: linear-gradient(to bottom,rgba(26,26,26,0.5),#1a1a1a),url(https://wiki.hypixel.net/images/artwork.png)!important }}@media only screen and (min-width: 1000px) { .footer-inner { padding:0; width: 90% }}@media only screen and (max-width: 1000px) { #footer-links { max-width:100% } .footer-inner { padding: 0 5%!important; width: calc(90%)!important }}.infobox { border: 15px solid #232445!important; border-image: url(https://wiki.hypixel.net/images/hypixel/borders/square_border.png) 1000 1000 repeat!important; border-image-width: 100px!important; border-image-outset: 2px!important; border-collapse: separate!important}.infobox { background-color: #f2f2f2; border-collapse: collapse; clear: both; display: table!important; float: right; margin: 0!important; margin-left: 20px!important; width: 320px; margin-bottom: 15px!important; table-layout: fixed}.infobox table { border-collapse: inherit!important}.infobox img { display: block; margin: 20px auto; max-width: 150px; height: auto}.infobox td { border-top: 1px solid #c7c7c7; padding: 2px 8px; text-align: right}.infobox td:first-of-type { font-weight: 700; text-align: left}.infobox td:last-child { float: right; width: 100%; text-align: right}.infobox tr:first-of-type>th { font-size: 16px; font-weight: 700; padding: 10px 0; text-align: center}.infobox.minor { border-image-width: 0 100px 100px 100px!important; border-width: 0 15px 15px!important; margin-top: -15px!important}.infobox tr:first-of-type>td { border-top: none}.mw-parser-output .infobox:last-of-type { margin-bottom: 15px}span.color-divine,span.color-light_blue,span.color-aqua { color: #5ff!important}span.color-black { color: #000!important}span.color-rare,span.color-blue { color: #55f!important}span.color-dark_aqua { color: #0aa!important}span.color-dark_blue { color: #00a!important}span.color-dark_gray { color: #555!important}span.color-dark_green { color: #0a0!important}span.color-epic,span.color-dark_purple { color: #a0a!important}span.color-dark_red { color: #a00!important}span.color-legendary,span.color-orange,span.color-gold { color: #fa0!important}span.color-gray { color: #aaa!important}span.color-uncommon,span.color-green { color: #5f5!important}span.color-pink,span.color-mythic,span.color-light_purple { color: #f5f!important}span.color-supreme,span.color-special,span.color-very-special,span.color-red { color: #f55!important}span.color-common,span.color-white { color: #fff!important}span.color-yellow { color: #ff5!important}.tabber__header__prev:after,.tabber__header__next:after { filter: invert(1)}:not(.infobox) .tabber__tab--active { background-color: rgba(51,102,204,.2)}:not(.infobox) .tabber__panel,:not(.infobox) .tabber__header { background-color: #1f1f1f; border: 1px solid #333}:not(.infobox) .tabber__panel { padding: 1em!important}:not(.infobox) .tabber__panel h1,:not(.infobox) .tabber__panel h2,:not(.infobox) .tabber__panel h3 { margin-top: 0}.diff-addedline .diffchange { background: #0083ff}.codeEditor-status { color: #000!important}#toctogglecheckbox:not(:checked)+.toctitle { border-bottom: 1px solid #333; margin-bottom: 10px}a.new { color: #d33!important}.contributionscores { width: 100%}.contributionscores td { text-align: center!important}.contributionscores .header { display: table-row}.contributionscores .content { width: auto}.wikiEditor-ui-toolbar { background-color: #1f1f1f!important}.wikiEditor-ui-toolbar .label:after { filter: invert(1) hue-rotate(180deg) brightness(1.2)}.wikiEditor-ui-toolbar .tabs .tab a::before { filter: invert(1) hue-rotate(180deg) brightness(1.2)}.wikiEditor-ui .wikiEditor-ui-view { border: 1px solid #54595d}.wikiEditor-ui-toolbar { box-shadow: 0 10px 9px 0 rgba(0,0,0,.1)}.wikiEditor-ui-toolbar .sections .section { border-top: none}.wikiEditor-ui-toolbar .group { border-right: none; border-left: none}.tabber__panel { overflow: visible}:not(.tabber__panel--active).tabber__panel { display: none}.tabber__section { height: auto!important; overflow: visible}.infobox td { font-size: 13px}.minecraft-inventory td { font-size: 15px!important}.content { padding: 0}.tabber__tab--active,.tabber__tab--active:visited { box-shadow: inset 0 -2px 0 0 #ffc376; border-width: 0 1px; background-color: rgba(255,195,118,.1)!important; font-weight: 700}.tabber__tab--active a:active,.tabber__tab a:visited { color: #ffc376!important}.tabber__tab:hover { box-shadow: inset 0 -2px 0 0 #ffc376; color: #ffc376; filter: brightness(1.5)}.tabber__tab a:active,.tabber__tab a:visited { color: #bdbcb9!important}.tabber__tabs { box-shadow: none!important}.tabber__tabs a:first-of-type { border-left: none}.tabber__tab { color: #36c; line-height: 30px; font-weight: 400}.tabber { margin-bottom: 5px}#mw-mf-page-left ul { list-style-type: none; padding-left: 0}#mw-mf-page-left li { margin-bottom: 0}#mw-mf-page-left ul li a { color: #aaa!important}#mw-mf-main-menu-button:hover+#mw-mf-page-left,#mw-mf-page-left:hover { visibility: visible}.mw-hypixel-right ul { padding-left: 0}.mw-hypixel-right li { margin-bottom: 0}.mw-hypixel-right a { text-decoration: none}table.mw-collapsible :first-child tr:first-child th:last-child::before { color: #ffc376!important}.infobox.minor img,.remove-img-span img { display: inline!important; margin: 0!important}.infobox.minor tr:first-of-type>th { padding: 7px; border-bottom: 1px solid #333!important}.infobox.minor tr:nth-of-type(2)>td { border-top: none}.occupants-minor,.resources-minor { text-align: left!important; font-weight: 400; padding: 5px 0 0!important}.occupants-minor:first-of-type,.resources-minor:first-of-type { border-right: 1px solid #333!important}.occupants-minor li,.resources-minor li,.materials-minor li { margin-bottom: 0!important}.occupants-minor ul,.resources-minor ul,.materials-minor ul { list-style: none!important; padding: 7px!important; font-weight: 400!important}.color-wheel-minor { border-radius: 50px; border-style: solid; border-width: 30px; height: 0; width: 0; transform: rotate(45deg)}.loot-drops-minor li { list-style-type: none; margin-bottom: 0}.gemstone-slot-minor { text-align: center!important; padding: 5px}.upgrades-low-minor { text-align: center!important; font-weight: 400!important; border-right: 1px solid #333!important}.upgrades-right-minor { padding: 2px!important; padding-top: 5px!important; text-align: center!important}.upgrades-text-minor { font-size: 15px!important; font-weight: 700!important}.attributes-minor { text-align: center!important; font-weight: 400!important; border-right: 1px #333 solid!important}.attributes-text-minor { font-size: 13px!important; font-weight: 700!important}.container-navbox { max-width: 100%; height: auto; padding: 6px; font-size: 15px; background-color: #1f1f1f; border: 1px solid #c8ccd1; border-color: #333!important; border-image: url(https://wiki.hypixel.net/images/hypixel/borders/classic_border.png) 1000 1000 repeat!important; border-image-width: 35px!important; border-image-outset: 2px!important; clear: both}.container-navbox-header { width: auto; height: 35px; padding: 10px; border-bottom: 2px solid #333; text-align: center; display: flex; flex-direction: row; align-items: center; justify-content: space-between; font-size: 18px; vertical-align: middle}.container-navbox-header p { margin: 0!important}.container-navbox-section { max-width: 100%; height: auto; border-bottom: 2px solid #333; display: flex; flex-direction: row; background-color: #1f1f1f; column-gap: 5px}.container-navbox-section:last-child { border-bottom: none}.container-navbox-group-header { width: 200px; max-height: 100%; padding: 1em; display: flex; align-items: center; background-color: #1f1f1f; font-weight: 700; white-space: pre-wrap; column-gap: 10px}.container-navbox-group { width: 100%; padding: 15px 1em}.container-navbox-group ul { columns: 220px auto}.container-navbox-group ul li { margin-bottom: 5px}.dropdown:hover .dropdown-content { visibility: visible; opacity: 1}blockquote { font-family: Raleway,helvetica,serif!important}.cata-image-loot-tabber * .tabber__tabs a::before { content: ""; width: 35px; height: 45px; background-position: center; background-repeat: no-repeat; background-size: cover}.cata-image-loot-tabber * .tabber__tabs a:nth-child(1)::before { background-image: url(https://wiki.hypixel.net/images/a/a8/SkyBlock_furniture_wood_chest_plus.png)}.cata-image-loot-tabber * .tabber__tabs a:nth-child(2)::before { background-image: url(https://wiki.hypixel.net/images/b/be/SkyBlock_furniture_gold_chest_plus.png)}.cata-image-loot-tabber * .tabber__tabs a:nth-child(3)::before { background-image: url(https://wiki.hypixel.net/images/e/e9/SkyBlock_furniture_diamond_chest_plus.png)}.cata-image-loot-tabber * .tabber__tabs a:nth-child(4)::before { background-image: url(https://wiki.hypixel.net/images/8/82/SkyBlock_furniture_emerald_chest_plus.png)}.cata-image-loot-tabber * .tabber__tabs a:nth-child(5)::before { background-image: url(https://wiki.hypixel.net/images/b/be/SkyBlock_furniture_ender_chest_plus.png)}.cata-image-loot-tabber * .tabber__tabs a:nth-child(6)::before { background-image: url(https://wiki.hypixel.net/images/b/be/SkyBlock_furniture_ender_chest_plus.png)}.boss-quote-table-quote { font-family: sans,serif; font-size: 40px; font-weight: 700; color: #f55; padding: 16px 10px; line-height: .5}.toc>ul { margin: 0 5em 0 32px!important}.toctogglecheckbox~ul { display: none}.toctogglecheckbox:not(:checked)~ul { display: block}.dialogue-headine { padding: .5em 0; line-height: 1.3; word-wrap: break-word; word-break: break-word; font-weight: 700}.content code { padding: .1em .4em}code { border-image: none!important}.mw-parser-output { display: inline-block; width: 100%; max-width: 100%}@media(min-width: 1000px) { .header-container.header-chrome { position:fixed; z-index: 2; width: 100%; top: 0; padding: 0!important } .header-container.header-chrome:before { box-shadow: 0 0 20px 10px #1a1a1a } #mw-mf-page-center,#mw-mf-page-center::before { top: 100px!important } .minerva-user-menu-list { top: 60px }}@media(max-width: 1000px) { .hypixel-site-navigation .toggle-list__toggle { padding-left:0!important; padding-right: 0!important } #hypixel-site-navigation-wrapper { padding: 0 .75em }}@media(max-width: 720px) { .header { flex-wrap:wrap!important; height: auto!important; justify-content: space-around!important } #hypixel-site-navigation-wrapper { order: 3; flex-wrap: wrap!important; row-gap: 15px; justify-content: space-around } #hypixel-site-navigation-wrapper .toggle-list__list { left: 0!important; width: 100%!important } .branding-box { width: 80px; height: 40px } .search-box { width: 100%!important; left: 0!important }}.main-menu-mask { display: none!important}#hypixel-site-navigation-wrapper { display: flex; flex-wrap: nowrap}.hypixel-site-navigation { color: #fff!important; text-shadow: 1px 1px rgba(0,0,0,.5)}.hypixel-site-navigation a { color: inherit!important}.hypixel-site-navigation .toggle-list__toggle { padding: .75em}.hypixel-site-navigation .toggle-list__toggle:hover { background-color: rgba(0,0,0,.4)}.hypixel-site-navigation .toggle-list__list { top: 100%; min-width: 200px}.hypixel-site-navigation .toggle-list__list .toggle-list-item .toggle-list-item__anchor { min-height: 20px}.toggle-list__list,.minerva-user-menu-list { border-radius: 3px}.minerva-user-navigation { width: auto!important; min-width: revert!important}.header { display: flex; justify-content: space-between; align-content: center; align-items: center; flex-direction: row; flex-wrap: nowrap}.hypixel-site-navigation>label::after { content: ""; background-image: linear-gradient(transparent,transparent),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+ZXhwYW5kPC90aXRsZT48ZyBmaWxsPSIjYTJhOWIxIj48cGF0aCBkPSJNMTcuNSA0Ljc1bC03LjUgNy41LTcuNS03LjVMMSA2LjI1bDkgOSA5LTl6Ii8+PC9nPjwvc3ZnPg==); display: inline-block; vertical-align: middle; min-width: 1em; min-height: 1em; padding: 0 0 0 20px; background-repeat: no-repeat; background-size: 1em 1em; background-position: center}#mw-mf-page-left ul li a span,.toggle-list-item__label { color: #fff!important}.mw-ui-icon-wikimedia-flag-ltr-base20:before { background-image: url(https://wiki.hypixel.net/resources/lib/ooui/themes/wikimediaui/images/icons/flag-ltr.svg)}.mw-ui-icon-wikimedia-articleRedirect-ltr-base20:before { background-image: url(https://wiki.hypixel.net/resources/lib/ooui/themes/wikimediaui/images/icons/articleRedirect-ltr.svg)}@media(max-width: 720px) { table.infobox { display:table!important } table.wikitable { display: block!important }}table.infobox { display: revert!important}.infobox ul { list-style: none}#userloginForm .mw-userlogin-rememberme { display: block!important}.mw-hp-tree { color: #5f5; margin-left: 20px}.mw-hp-tree li { margin-bottom: 0; list-style-type: disc}.mw-hp-tree li::marker { color: #fff}.mw-hp-tree ul:first-of-type { margin-top: 6px}.mw-hp-tree ul:last-of-type { margin-bottom: 6px}.mw-hp-tree-container { margin-left: 5px}.mw-hp-tree-text::after { content: "Expand"; color: #ba91ff; display: inline-block}.mw-hp-tree-text-down::after { content: "Collapse"; color: #7698ff; display: inline-block}.mw-hp-tree-anchor { cursor: pointer; user-select: none}.mw-hp-tree-nested { display: none}.mw-hp-tree-active { display: block}.mw-display-qrcode { border: 2px solid #fff}.mw-overlays-container .search-overlay { top: 71px}.mw-overlays-container .search-overlay .search-content,.mw-overlays-container .search-overlay .results { margin-left: 0!important}.mw-overlays-container .search-overlay .search-content { z-index: 4; position: relative; border: none!important}.mw-overlays-container .search-overlay .overlay-content { padding-top: 0!important; z-index: 3}.mw-overlays-container .search-overlay .overlay-header { flex-wrap: nowrap!important}.mw-overlays-container .search-overlay .overlay-title { padding-right: 15px}.mw-overlays-container .search-overlay .search { max-width: unset!important}.mw-overlays-container .search-overlay .clear { right: 5px!important}.mw-overlays-container .search-overlay .results { position: relative; box-shadow: none!important; background: 0 0!important}.mw-overlays-container .search-overlay .results ul>li { color: #fff; background: #1f1f1f; border: 1px solid #333!important; border-radius: 6px; margin: 5px 0; box-shadow: 0 0 10px #1f1f1f!important}.mw-overlays-container .search-overlay .results .list-thumb { background-color: #212121; border-radius: 6px}.mw-overlays-container .search-overlay .results .page-summary h2,.mw-overlays-container .search-overlay .results .page-summary h3 { color: #fff}@media(min-width: 720px) { .overlay-content { padding-left:236px!important } .overlay-header-container { z-index: 4!important } .search-content,.results { width: 380px!important }}@media(max-width: 720px) { div.overlay-header-container { position:relative!important; top: -71px!important } .overlay-content { padding: 0 15px } .search-content,.results { width: 100%!important }}table.sortable .headerSort { padding-right: 21px!important; position: relative}table.sortable .headerSort:after { background-image: inherit; content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-repeat: no-repeat; background-position: center right; filter: invert(100%); pointer-events: none}.warningbox>p { color: #fff; margin: .5em 0}.suggestions-special { border-radius: 6px}.mw-dismissable-notice { background-color: #1f1f1f; border-radius: 8px; border: 1px solid #333; border-image-width: 35px!important; border-image-outset: 2px!important}.mw-dismissable-notice { position: fixed; display: block; bottom: 25px; z-index: 6; width: 100%; max-width: 92%!important; box-shadow: 0 -5px 30px 20px rgba(0,0,0,.3); margin: 0!important; left: 50%; transform: translateX(-50%)}.mw-dismissable-notice-body { padding: 20px; margin: 0!important}.mw-dismissable-notice-close { padding: 20px}.banner-container { position: relative}.warningbox { color: #fff!important}#content { position: relative; z-index: 1; background-color: transparent!important}div#mw-mf-page-center::before { content: ""; position: fixed; top: 0; bottom: 0; right: 0; height: 100%; width: 100%; background-image: linear-gradient(#1a1a1a,transparent),url(https://wiki.hypixel.net/images/hypixel/background.png); background-image: linear-gradient(#1a1a1a,transparent),image-set(url(https://wiki.hypixel.net/images/hypixel/background.png) 1x,url(https://wiki.hypixel.net/images/hypixel/background-large.png) 2x); background-attachment: fixed; background-color: #1a1a1a; background-position: center; background-repeat: no-repeat; background-size: cover; opacity: .075; z-index: 0; pointer-events: none}.page-Main_Page #wrapper #content { background: 0 0!important}.last-modified-bar,.footer { position: relative}.last-modified-bar a,.last-modified-bar a:visited { color: #fff}.overlay { z-index: 2!important}.mwe-math-element { overflow: auto; display: block}#page-secondary-actions { display: none}.loot-drops-minor li { margin-bottom: 0!important}.warningbox { color: #fff}.warningbox>p { margin: .5em 0!important; font-size: 17px}.toctitle>.mw-ui-icon-minerva-listBullet { display: none}.infobox img { max-width: 100%!important}.hp-loottable td { border: 2px solid #1a1a1a!important}.hp-loottable td:last-child { color: #5f5}.is-affected-by-mf { outline: dotted 3px transparent; outline-offset: -1px; outline-color: #5ff}.is-affected-by-pl { outline: dotted 3px transparent; outline-offset: -1px; outline-color: #f5f}.is-affected-by-mf.is-affected-by-pl { outline-color: #b591b7!important}.cata-image-loot-tabber * .tabber__tabs a:nth-child(1)::before { background-image: url(https://wiki.hypixel.net/images/b/b9/SkyBlock_furniture_dungeon_wood_reward_chest.png); height: 65px}.cata-image-loot-tabber * .tabber__tabs a:nth-child(2)::before { background-image: url(https://wiki.hypixel.net/images/8/85/SkyBlock_furniture_dungeon_gold_reward_chest.png); height: 65px}.cata-image-loot-tabber * .tabber__tabs a:nth-child(3)::before { background-image: url(https://wiki.hypixel.net/images/9/98/SkyBlock_furniture_dungeon_diamond_reward_chest.png); height: 65px; width: 40px}.cata-image-loot-tabber * .tabber__tabs a:nth-child(4)::before { background-image: url(https://wiki.hypixel.net/images/e/e4/SkyBlock_furniture_dungeon_emerald_reward_chest.png); height: 65px; width: 40px}.cata-image-loot-tabber * .tabber__tabs a:nth-child(5)::before { background-image: url(https://wiki.hypixel.net/images/4/40/SkyBlock_furniture_dungeon_obsidian_reward_chest.png); height: 65px; width: 50px}.cata-image-loot-tabber * .tabber__tabs a:nth-child(6)::before { background-image: url(https://wiki.hypixel.net/images/8/87/SkyBlock_furniture_dungeon_bedrock_reward_chest.png); height: 65px; width: 55px}.diff-deletedline .diffchange { background: #988e78!important}.hide { display: none}.page-notif-box { border: 2px solid #333!important; border-left-width: 10px!important; border-radius: 6px; border-collapse: separate!important; width: 75%; background-color: #1f1f1f!important; box-shadow: 0 0 10px #1f1f1f!important; display: flex; margin: auto!important; color: #fff; font-weight: 700; margin-top: 25px!important; margin-bottom: 25px!important}.page-notif-box tr>td { border: none; padding: .25em .9em}.page-notif-box img { max-width: revert!important; flex-shrink: 0}.page-notif-box-updating,.page-notif-box-changed { border-color: #e7871b!important}.page-notif-box-no-obtain,.page-notif-box-cannot-obtain { border-color: #e30000!important}.page-notif-box-alpha { border-color: #0d6f67!important}.hp-input { height: 35px; width: 100%; border: none!important}.dungeon-calc-container td,.loot-calc-container td { border: 2px solid #1a1a1a}.dungeon-calc-button,.loot-calc-button { cursor: pointer; vertical-align: bottom; background-color: #3f7dfb!important; transition-duration: .35s; padding: 5px!important}.dungeon-calc-button:hover,.loot-calc-button:hover { background-color: #5e93fe!important}.hp-loottable td:last-child { color: #5f5}.dungeon-loottable td:last-child { color: #5f5}.listspacing li { margin-bottom: 0!important}.listspacing li:last-child { margin-bottom: 1em!important}.listdisplay li { display: inline!important}.categoryboxcontainer { max-width: 100%; height: 35px; background-color: #1f1f1f; border: 1px solid #333; padding: 3px; font-size: 15px; clear: both}.categoryboxcontainer li { display: inline-block; padding-left: 5px; padding-right: 5px; line-height: 35px}.categoryboxcontainer li:first-child { padding-left: 0; border-left: none}.categoryboxcontainer li:nth-child(2) { border-left: none}.categoryboxcontainer li:empty { display: none}.tooltiptemp { position: relative!important; display: inline-block!important; text-decoration: underline dotted; cursor: help}.tooltiptemp .tooltiptexttemp { visibility: hidden; width: 240px; background-color: #000; color: #fff; text-align: center; border: 1px #333 solid; border-radius: 6px; padding: 5px 0; position: absolute; z-index: 1; bottom: 100%!important; left: 50%!important; margin-left: -120px!important; opacity: 0; transition: opacity 1s}.tooltiptemp .tooltiptexttemp::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: #000 transparent transparent transparent}.tooltiptemp:hover .tooltiptexttemp { visibility: visible; opacity: 1}.tooltiptemp p { margin: 0}.raw-mctooltip { position: relative!important; display: inline-block!important; font-weight: 400}.raw-mctooltip:hover .raw-mctooltiptext { display: inline}.raw-mctooltiptext { display: none; font-family: minecraft,helvetica,serif; margin: 0}.content .mw-parser-output>h2 { padding: .25em 0; font-size: 1.8em; margin-top: 35px}.content .mw-parser-output>h2,.content .mw-parser-output>h3 { text-transform: uppercase; font-weight: 400}.heading-holder { padding: 0!important}.mw-body-content blockquote { background-color: #212121; border-radius: 6px; border: 1px solid #333!important; border-left-width: 5px!important; display: table}.tabber__tab { font-weight: 400!important; column-gap: 10px}.tabber__header .tabber__tab:not(.tabber__tab--active) { color: #fff}.mw-collapsible-toggle { padding-left: 5px}.tabber__header,.tabber__section,.tabber__panel { scroll-snap-type: none!important; overscroll-behavior: none!important; scroll-snap-align: none!important; overflow: hidden!important}.mw-userlogin-help { display: none}@media(min-width: 720px) { .header .branding-box { max-height:55px }}@font-face { font-family: minecraft; src: url(https://wiki.hypixel.net/fonts/minecraft.woff) format("woff")}.minecraft-inventory { -moz-user-select: none; -ms-user-select: none; -webkit-user-select: none; background-color: #c6c6c6; border: 4px solid; border-color: #fff #555 #555 #fff; border-radius: 4px; box-shadow: 0 0 0 1px #000; color: #404040; display: inline-block; font-family: minecraft,serif; font-size: 15px; font-weight: 400; padding: 2px 6px 6px; user-select: none; margin: 10px 0}.minecraft-inventory table { border-collapse: separate; margin: 0!important}.minecraft-inventory td { background: #8b8b8b no-repeat center center/32px 32px; border: 2px solid; border-color: #373737 #fff #fff #373737; box-sizing: border-box; padding: 0; position: relative; width: 36px}.minecraft-inventory td>.external { background: 0 0; padding: 0}.minecraft-inventory td>a:hover { text-decoration: none}.minecraft-inventory td:hover:after { background: #fff; content: ""; float: left; height: 100%; left: 0; opacity: .5; pointer-events: none; position: absolute; top: 0; width: 100%}.minecraft-inventory td:hover .mctooltip { display: block}.minecraft-inventory>span { padding: 2px}.minecraft-inventory tr { height: 36px}.minecraft-inventory .enchanted::before { content: ""; height: 32px; left: 0; position: absolute; top: 0; width: 32px; background-image: url(https://wiki.hypixel.net/images/minecraft/glint.webp); mix-blend-mode: color-dodge}.minecraft-inventory .enchanted::after { content: ""; height: 32px; left: 0; position: absolute; top: 0; width: 32px; background-image: url(https://wiki.hypixel.net/images/minecraft/item-spritesheet_cutout.png); background-position: inherit}.minecraft-inventory .amount { margin: 0; position: relative; z-index: 999}.minecraft-inventory .sbsprite { background-repeat: no-repeat; color: #fff; direction: rtl; display: block; text-shadow: 2px 2px #3f3f3f; background-image: url(https://wiki.hypixel.net/images/skyblock/item-spritesheet.png); height: 22px; line-height: 44px; margin: 0 5px; text-indent: -8px; width: 22px}.minecraft-inventory .mcsprite { background-repeat: no-repeat; color: #fff; direction: rtl; display: block; text-shadow: 2px 2px #3f3f3f; background-image: url(https://wiki.hypixel.net/images/minecraft/item-spritesheet.png); height: 32px; line-height: 54px; text-indent: -2px; width: 32px}.minecraft-inventory .sbpet { background-repeat: no-repeat; color: #fff; direction: rtl; display: block; text-shadow: 2px 2px #3f3f3f; background-image: url(https://wiki.hypixel.net/images/skyblock/pet-spritesheet.png); height: 22px; line-height: 44px; margin: 0 6px; text-indent: -8px; width: 20px}.mctooltip { background: rgba(16,0,16,.93); border: 2px solid; border-image: linear-gradient(to bottom,rgba(80,0,255,0.31),rgba(40,0,127,0.31)); border-image-slice: 1; border-radius: 4px; box-shadow: 0 0 0 2px rgba(16,0,16,.93); display: none; line-height: 18px; margin-left: 15px; margin-top: -30px; padding: 4px 4px 3px; position: fixed; text-indent: initial; text-shadow: 2px 2px #3f3f3f; z-index: 9999}.mctooltip>span { direction: ltr; display: block; white-space: nowrap; text-align: left}.mctooltip>span:nth-child(1):not(:last-child) { padding-bottom: 5px}.mctooltip>span:nth-child(n+2) { float: left}.mctooltip>span:nth-child(n+2):not(:last-child) { padding-right: 4px}.mctooltip>span.inline { display: inline-block!important}.mctooltip .rarity-divine { color: #5ff}.mctooltip .rarity-rare { color: #55f; text-shadow: 2px 2px #15153f}.mctooltip .rarity-epic { color: #a0a; text-shadow: 2px 2px #2a002a}.mctooltip .rarity-supreme { color: #a00; text-shadow: 2px 2px #2a0000}.mctooltip .rarity-legendary { color: #fa0; text-shadow: 2px 2px #2a2a00}.mctooltip .rarity-uncommon { color: #5f5; text-shadow: 2px 2px #153f15}.mctooltip .rarity-mythic { color: #f5f; text-shadow: 2px 2px #3f153f}.mctooltip .rarity-veryspecial { color: #f55; text-shadow: 2px 2px #3f1515}.mctooltip .rarity-special { color: #f55; text-shadow: 2px 2px #3f1515}.mctooltip .color-aqua { text-shadow: 2px 2px #153f3f}.mctooltip .color-black { text-shadow: 2px 2px #000}.mctooltip .color-blue { text-shadow: 2px 2px #15153f}.mctooltip .color-dark_aqua { text-shadow: 2px 2px #002a2a}.mctooltip .color-dark_blue { text-shadow: 2px 2px #00002a}.mctooltip .color-dark_gray { text-shadow: 2px 2px #151515}.mctooltip .color-dark_green { text-shadow: 2px 2px #002a00}.mctooltip .color-dark_purple { text-shadow: 2px 2px #2a002a}.mctooltip .color-dark_red { text-shadow: 2px 2px #2a0000}.mctooltip .color-gold { text-shadow: 2px 2px #2a2a00}.mctooltip .color-gray { text-shadow: 2px 2px #2a2a2a}.mctooltip .color-green { text-shadow: 2px 2px #153f15}.mctooltip .color-light_purple { text-shadow: 2px 2px #3f153f}.mctooltip .color-red { text-shadow: 2px 2px #3f1515}.mctooltip .color-white { text-shadow: 2px 2px #3f3f3f}.mctooltip .color-yellow { text-shadow: 2px 2px #3f3f15}.color-aqua { color: #5ff}.color-black { color: #000}.color-blue { color: #55f}.color-dark_aqua { color: #0aa}.color-dark_blue { color: #00a}.color-dark_gray { color: #555}.color-dark_green { color: #0a0}.color-dark_purple { color: #a0a}.color-dark_red { color: #a00}.color-gold { color: #fa0}.color-gray { color: #aaa}.color-green { color: #5f5}.color-light_purple { color: #f5f}.color-red { color: #f55}.color-white { color: #fff}.color-yellow { color: #ff5}.mcentity { background-image: url(https://wiki.hypixel.net/images/minecraft/entity-spritesheet.png); height: 16px; width: 16px}.mcblock { background-image: url(https://wiki.hypixel.net/images/minecraft/block-spritesheet.png); height: 16px; width: 16px}.sbspray { background-image: url(https://wiki.hypixel.net/images/skyblock/spray-spritesheet.png); height: 128px; width: 128px}.sbnpc { background-image: url(https://wiki.hypixel.net/images/skyblock/npc-spritesheet.png); height: 120px; width: 270px}.sbnpc-_56ms { background-position: 0 0}.sbnpc-adventurer { background-position: -120px 0}.sbnpc-agents { background-position: -240px 0}.sbnpc-anita { background-position: -360px 0}.sbnpc-archeologist { background-position: -480px 0}.sbnpc-armorsmith { background-position: -600px 0}.sbnpc-arthur { background-position: -720px 0}.sbnpc-artist { background-position: -840px 0}.sbnpc-artist_2 { background-position: -960px 0}.sbnpc-auction_agent_0 { background-position: -1080px 0}.sbnpc-auction_agent_1 { background-position: -1200px 0}.sbnpc-auction_agent_2 { background-position: -1320px 0}.sbnpc-auction_agent_3 { background-position: -1440px 0}.sbnpc-auction_master { background-position: -1560px 0}.sbnpc-baker { background-position: -1680px 0}.sbnpc-banker { background-position: -1800px 0}.sbnpc-bartender { background-position: -1920px 0}.sbnpc-bazaar { background-position: -2040px 0}.sbnpc-bazaar_assistant { background-position: -2160px 0}.sbnpc-beekeeper { background-position: -2280px 0}.sbnpc-bestiary { background-position: -2400px 0}.sbnpc-beth { background-position: -2520px 0}.sbnpc-blue_shark { background-position: -2640px 0}.sbnpc-bodyguard_1 { background-position: -2760px 0}.sbnpc-bodyguard_2 { background-position: 0 -270px}.sbnpc-bonzo { background-position: -120px -270px}.sbnpc-bonzo_summon_0 { background-position: -240px -270px}.sbnpc-bonzo_summon_1 { background-position: -360px -270px}.sbnpc-bonzo_summon_2 { background-position: -480px -270px}.sbnpc-bonzo_undead { background-position: -600px -270px}.sbnpc-builder { background-position: -720px -270px}.sbnpc-candidate { background-position: -840px -270px}.sbnpc-cannibal_undead { background-position: -960px -270px}.sbnpc-carpenter { background-position: -1080px -270px}.sbnpc-catacombs_blacksmith { background-position: -1200px -270px}.sbnpc-century_simon { background-position: -1320px -270px}.sbnpc-charlie { background-position: -1440px -270px}.sbnpc-clerk_election { background-position: -1560px -270px}.sbnpc-community_shop { background-position: -1680px -270px}.sbnpc-crypt_dreadlord { background-position: -1800px -270px}.sbnpc-crypt_souleater { background-position: -1920px -270px}.sbnpc-crystal_sentry { background-position: -2040px -270px}.sbnpc-dante_grey { background-position: -2160px -270px}.sbnpc-dante_statue { background-position: -2280px -270px}.sbnpc-default_lost_adventurer { background-position: -2400px -270px}.sbnpc-derp_candidate { background-position: -2520px -270px}.sbnpc-diamond_guy { background-position: -2640px -270px}.sbnpc-dictator { background-position: -2760px -270px}.sbnpc-dirt_guy { background-position: 0 -540px}.sbnpc-donpireso { background-position: -120px -540px}.sbnpc-duncan { background-position: -240px -540px}.sbnpc-dungeons_candidate { background-position: -360px -540px}.sbnpc-dungeons_hub_selector { background-position: -480px -540px}.sbnpc-dusk { background-position: -600px -540px}.sbnpc-dwarf_banker { background-position: -720px -540px}.sbnpc-dwarf_citizen_female_5 { background-position: -840px -540px}.sbnpc-dwarf_citizen_female_6 { background-position: -960px -540px}.sbnpc-dwarf_citizen_female_7 { background-position: -1080px -540px}.sbnpc-dwarf_citizen_male_1 { background-position: -1200px -540px}.sbnpc-dwarf_citizen_male_2 { background-position: -1320px -540px}.sbnpc-dwarf_citizen_male_3 { background-position: -1440px -540px}.sbnpc-dwarf_citizen_male_4 { background-position: -1560px -540px}.sbnpc-dwarf_council_female_5 { background-position: -1680px -540px}.sbnpc-dwarf_council_female_6 { background-position: -1800px -540px}.sbnpc-dwarf_council_female_7 { background-position: -1920px -540px}.sbnpc-dwarf_council_female_8 { background-position: -2040px -540px}.sbnpc-dwarf_council_male_1 { background-position: -2160px -540px}.sbnpc-dwarf_council_male_2 { background-position: -2280px -540px}.sbnpc-dwarf_council_male_3 { background-position: -2400px -540px}.sbnpc-dwarf_council_male_4 { background-position: -2520px -540px}.sbnpc-dwarf_militia_1 { background-position: -2640px -540px}.sbnpc-dwarf_militia_2 { background-position: -2760px -540px}.sbnpc-dwarf_militia_3 { background-position: 0 -810px}.sbnpc-dwarf_militia_4 { background-position: -120px -810px}.sbnpc-dwarf_militia_5 { background-position: -240px -810px}.sbnpc-dwarf_militia_6 { background-position: -360px -810px}.sbnpc-dwarf_royalguard_female_5 { background-position: -480px -810px}.sbnpc-dwarf_royalguard_female_6 { background-position: -600px -810px}.sbnpc-dwarf_royalguard_female_7 { background-position: -720px -810px}.sbnpc-dwarf_royalguard_female_8 { background-position: -840px -810px}.sbnpc-dwarf_royalguard_male_1 { background-position: -960px -810px}.sbnpc-dwarf_royalguard_male_2 { background-position: -1080px -810px}.sbnpc-dwarf_royalguard_male_3 { background-position: -1200px -810px}.sbnpc-dwarf_royalguard_male_4 { background-position: -1320px -810px}.sbnpc-economist_candidate { background-position: -1440px -810px}.sbnpc-elle { background-position: -1560px -810px}.sbnpc-emissary_female_1 { background-position: -1680px -810px}.sbnpc-emissary_female_2 { background-position: -1800px -810px}.sbnpc-emissary_female_3 { background-position: -1920px -810px}.sbnpc-emissary_male_1 { background-position: -2040px -810px}.sbnpc-emissary_male_2 { background-position: -2160px -810px}.sbnpc-emissary_male_3 { background-position: -2280px -810px}.sbnpc-end_dealer { background-position: -2400px -810px}.sbnpc-enderman_liquid_hot_magma { background-position: -2520px -810px}.sbnpc-enraged_revenant_horror { background-position: -2640px -810px}.sbnpc-entity_liquid_hot_magma { background-position: -2760px -810px}.sbnpc-event_master { background-position: 0 -1080px}.sbnpc-events_candidate { background-position: -120px -1080px}.sbnpc-fairy { background-position: -240px -1080px}.sbnpc-farm_merchant { background-position: -360px -1080px}.sbnpc-farmer { background-position: -480px -1080px}.sbnpc-farmer_jon { background-position: -600px -1080px}.sbnpc-fire_guy { background-position: -720px -1080px}.sbnpc-fish_merchant { background-position: -840px -1080px}.sbnpc-fisherman { background-position: -960px -1080px}.sbnpc-fishing_candidate { background-position: -1080px -1080px}.sbnpc-flamer_undead { background-position: -1200px -1080px}.sbnpc-forger { background-position: -1320px -1080px}.sbnpc-frank_undead { background-position: -1440px -1080px}.sbnpc-friendly_hiker { background-position: -1560px -1080px}.sbnpc-frost_undead { background-position: -1680px -1080px}.sbnpc-frosty { background-position: -1800px -1080px}.sbnpc-frozen_lost_adventurer { background-position: -1920px -1080px}.sbnpc-furry_e_boy { background-position: -2040px -1080px}.sbnpc-gatekeeper { background-position: -2160px -1080px}.sbnpc-giant_undead { background-position: -2280px -1080px}.sbnpc-goblin { background-position: -2400px -1080px}.sbnpc-goblin_armor_1 { background-position: -2520px -1080px}.sbnpc-goblin_armor_2 { background-position: -2640px -1080px}.sbnpc-goblin_armor_3 { background-position: -2760px -1080px}.sbnpc-goblin_armor_4 { background-position: 0 -1350px}.sbnpc-goblin_king_1 { background-position: -120px -1350px}.sbnpc-goblin_murderlover { background-position: -240px -1350px}.sbnpc-goblin_naked_1 { background-position: -360px -1350px}.sbnpc-goblin_naked_2 { background-position: -480px -1350px}.sbnpc-goblin_naked_3 { background-position: -600px -1350px}.sbnpc-goblin_naked_4 { background-position: -720px -1350px}.sbnpc-goblin_naked_5 { background-position: -840px -1350px}.sbnpc-gold_forger { background-position: -960px -1350px}.sbnpc-goon { background-position: -1080px -1350px}.sbnpc-grandma_wolf { background-position: -1200px -1350px}.sbnpc-great_white_shark { background-position: -1320px -1350px}.sbnpc-guber { background-position: -1440px -1350px}.sbnpc-guildford { background-position: -1560px -1350px}.sbnpc-gulliver { background-position: -1680px -1350px}.sbnpc-gustave { background-position: -1800px -1350px}.sbnpc-haymitch { background-position: -1920px -1350px}.sbnpc-hephaestus { background-position: -2040px -1350px}.sbnpc-holy_lost_adventurer { background-position: -2160px -1350px}.sbnpc-hub_selector { background-position: -2280px -1350px}.sbnpc-hungry_hiker { background-position: -2400px -1350px}.sbnpc-hunter_ava { background-position: -2520px -1350px}.sbnpc-ice_fisherman { background-position: -2640px -1350px}.sbnpc-iron_forger { background-position: -2760px -1350px}.sbnpc-jacob { background-position: 0 -1620px}.sbnpc-jake { background-position: -120px -1620px}.sbnpc-juliette { background-position: -240px -1620px}.sbnpc-kessie { background-position: -360px -1620px}.sbnpc-king_midas { background-position: -480px -1620px}.sbnpc-lapis_miner { background-position: -600px -1620px}.sbnpc-lazy_miner { background-position: -720px -1620px}.sbnpc-leech_undead { background-position: -840px -1620px}.sbnpc-lift_operator { background-position: -960px -1620px}.sbnpc-liquid_hot_magma { background-position: -1080px -1620px}.sbnpc-livid { background-position: -1200px -1620px}.sbnpc-livid_undead { background-position: -1320px -1620px}.sbnpc-lonely_philosopher { background-position: -1440px -1620px}.sbnpc-lumber_merchant { background-position: -1560px -1620px}.sbnpc-lumberjack { background-position: -1680px -1620px}.sbnpc-mason { background-position: -1800px -1620px}.sbnpc-master_tactician { background-position: -1920px -1620px}.sbnpc-mayhem_main { background-position: -2040px -1620px}.sbnpc-mayor { background-position: -2160px -1620px}.sbnpc-melancholic_viking { background-position: -2280px -1620px}.sbnpc-melody { background-position: -2400px -1620px}.sbnpc-mine_merchant { background-position: -2520px -1620px}.sbnpc-mining_candidate { background-position: -2640px -1620px}.sbnpc-minos_champion { background-position: -2760px -1620px}.sbnpc-minos_inquisitor { background-position: 0 -1890px}.sbnpc-minotaur { background-position: -120px -1890px}.sbnpc-mort { background-position: -240px -1890px}.sbnpc-mr_dead_undead { background-position: -360px -1890px}.sbnpc-mute_undead { background-position: -480px -1890px}.sbnpc-nitroholic { background-position: -600px -1890px}.sbnpc-nurse_shark { background-position: -720px -1890px}.sbnpc-old_man_garry { background-position: -840px -1890px}.sbnpc-ooze_undead { background-position: -960px -1890px}.sbnpc-ophelia { background-position: -1080px -1890px}.sbnpc-oringo { background-position: -1200px -1890px}.sbnpc-parasite_undead { background-position: -1320px -1890px}.sbnpc-pat { background-position: -1440px -1890px}.sbnpc-personal_bank_upgrader { background-position: -1560px -1890px}.sbnpc-pet_collector { background-position: -1680px -1890px}.sbnpc-pet_sitter { background-position: -1800px -1890px}.sbnpc-pets_candidate { background-position: -1920px -1890px}.sbnpc-placeholder_candidate { background-position: -2040px -1890px}.sbnpc-player_jerry { background-position: -2160px -1890px}.sbnpc-potato_king { background-position: -2280px -1890px}.sbnpc-professor { background-position: -2400px -1890px}.sbnpc-psycho_undead { background-position: -2520px -1890px}.sbnpc-putrid_undead { background-position: -2640px -1890px}.sbnpc-puzzler { background-position: -2760px -1890px}.sbnpc-rainmaker { background-position: 0 -2160px}.sbnpc-reaper_undead { background-position: -120px -2160px}.sbnpc-redstone_engineer { background-position: -240px -2160px}.sbnpc-refraction { background-position: -360px -2160px}.sbnpc-relenter { background-position: -480px -2160px}.sbnpc-revenant_horror { background-position: -600px -2160px}.sbnpc-revoker_undead { background-position: -720px -2160px}.sbnpc-rick { background-position: -840px -2160px}.sbnpc-romero_final { background-position: -960px -2160px}.sbnpc-romero_normal { background-position: -1080px -2160px}.sbnpc-sadan { background-position: -1200px -2160px}.sbnpc-salesman_christmas { background-position: -1320px -2160px}.sbnpc-salesman_easter { background-position: -1440px -2160px}.sbnpc-salesman_generic { background-position: -1560px -2160px}.sbnpc-salesman_halloween { background-position: -1680px -2160px}.sbnpc-salesman_summer { background-position: -1800px -2160px}.sbnpc-scarf_archer { background-position: -1920px -2160px}.sbnpc-scarf_mage { background-position: -2040px -2160px}.sbnpc-scarf_priest { background-position: -2160px -2160px}.sbnpc-scarf_undead { background-position: -2280px -2160px}.sbnpc-scarf_warrior { background-position: -2400px -2160px}.sbnpc-scoop { background-position: -2520px -2160px}.sbnpc-scorpius { background-position: -2640px -2160px}.sbnpc-shadow_assassin { background-position: -2760px -2160px}.sbnpc-shady_bartender { background-position: 0 -2430px}.sbnpc-shady_cousin { background-position: -120px -2430px}.sbnpc-shaggy { background-position: -240px -2430px}.sbnpc-shepherd { background-position: -360px -2430px}.sbnpc-simon_hat { background-position: -480px -2430px}.sbnpc-sirius { background-position: -600px -2430px}.sbnpc-skeletor_prime { background-position: -720px -2430px}.sbnpc-skull_undead { background-position: -840px -2430px}.sbnpc-slayer { background-position: -960px -2430px}.sbnpc-slayer_candidate { background-position: -1080px -2430px}.sbnpc-snowmaker { background-position: -1200px -2430px}.sbnpc-spirit_bear { background-position: -1320px -2430px}.sbnpc-spooky { background-position: -1440px -2430px}.sbnpc-st_jerry { background-position: -1560px -2430px}.sbnpc-sylent { background-position: -1680px -2430px}.sbnpc-tailor_assistant { background-position: -1800px -2430px}.sbnpc-tailor_owner { background-position: -1920px -2430px}.sbnpc-tammy { background-position: -2040px -2430px}.sbnpc-tear_undead { background-position: -2160px -2430px}.sbnpc-technoblade { background-position: -2280px -2430px}.sbnpc-terracotta { background-position: -2400px -2430px}.sbnpc-terry { background-position: -2520px -2430px}.sbnpc-thirty_virus { background-position: -2640px -2430px}.sbnpc-tiger_shark { background-position: -2760px -2430px}.sbnpc-timedeo { background-position: -2880px 0}.sbnpc-tomioka { background-position: -2880px -270px}.sbnpc-tony { background-position: -2880px -540px}.sbnpc-treasure_horder { background-position: -2880px -810px}.sbnpc-treasure_hunter { background-position: -2880px -1080px}.sbnpc-trevor { background-position: -2880px -1350px}.sbnpc-trinity { background-position: -2880px -1620px}.sbnpc-unstable_lost_adventurer { background-position: -2880px -1890px}.sbnpc-vader_undead { background-position: -2880px -2160px}.sbnpc-vinny { background-position: -2880px -2430px}.sbnpc-walker_undead { background-position: 0 -2700px}.sbnpc-walter { background-position: -120px -2700px}.sbnpc-weaponsmith { background-position: -240px -2700px}.sbnpc-weirdo_0 { background-position: -360px -2700px}.sbnpc-weirdo_1 { background-position: -480px -2700px}.sbnpc-weirdo_2 { background-position: -600px -2700px}.sbnpc-winona { background-position: -720px -2700px}.sbnpc-winter_banker { background-position: -840px -2700px}.sbnpc-wizard { background-position: -960px -2700px}.sbnpc-wizard_candidate { background-position: -1080px -2700px}.sbnpc-wizard_quest { background-position: -1200px -2700px}.sbnpc-wolf_shaman { background-position: -1320px -2700px}.sbnpc-wool_weaver { background-position: -1440px -2700px}.sbnpc-young_lost_adventurer { background-position: -1560px -2700px}.sbnpc-zog { background-position: -1680px -2700px}.sbnpc-zombie_commander { background-position: -1800px -2700px}.sbsprite-cobblestone_generator_10 { background-position: 0 0}.sbsprite-cobblestone_generator_11 { background-position: -22px 0}.sbsprite-danger_3_portal { background-position: -44px 0}.sbsprite-resource_regenerator_crystal { background-position: -66px 0}.sbsprite-sugar_cane_generator_12 { background-position: -88px 0}.sbsprite-cobblestone_generator_12 { background-position: -110px 0}.sbsprite-sugar_cane_generator_11 { background-position: -132px 0}.sbsprite-sugar_cane_generator_10 { background-position: -154px 0}.sbsprite-small_shelves { background-position: -176px 0}.sbsprite-bingo_talisman { background-position: -198px 0}.sbsprite-red_scarf { background-position: -220px 0}.sbsprite-wither_helmet { background-position: -242px 0}.sbsprite-glowstone_generator_11 { background-position: -264px 0}.sbsprite-glowstone_generator_10 { background-position: -286px 0}.sbsprite-fast_travel_crypt { background-position: -308px 0}.sbsprite-present_personality { background-position: -330px 0}.sbsprite-extra_large_gemstone_sack { background-position: -352px 0}.sbsprite-gold_bonzo_head { background-position: -374px 0}.sbsprite-shadow_assassin_mauve { background-position: -396px 0}.sbsprite-ender_artifact { background-position: -418px 0}.sbsprite-sheep_generator_1 { background-position: -440px 0}.sbsprite-beach_chair_plus { background-position: -462px 0}.sbsprite-sheep_generator_2 { background-position: -484px 0}.sbsprite-sheep_generator_3 { background-position: -506px 0}.sbsprite-sheep_generator_4 { background-position: -528px 0}.sbsprite-sheep_generator_5 { background-position: -550px 0}.sbsprite-sheep_generator_6 { background-position: -572px 0}.sbsprite-frozen_spider { background-position: -594px 0}.sbsprite-sheep_generator_7 { background-position: -616px 0}.sbsprite-sheep_generator_8 { background-position: -638px 0}.sbsprite-sheep_generator_9 { background-position: -660px 0}.sbsprite-nether_wart_island_crystal { background-position: -682px 0}.sbsprite-medium_fishing_sack { background-position: -704px 0}.sbsprite-gold_generator_9 { background-position: -726px 0}.sbsprite-gold_generator_7 { background-position: -748px 0}.sbsprite-gold_generator_8 { background-position: -770px 0}.sbsprite-gold_generator_5 { background-position: -792px 0}.sbsprite-penguin_10 { background-position: -814px 0}.sbsprite-diver_helmet { background-position: -836px 0}.sbsprite-gold_generator_6 { background-position: -858px 0}.sbsprite-penguin_11 { background-position: -880px 0}.sbsprite-gold_generator_3 { background-position: -902px 0}.sbsprite-gold_generator_4 { background-position: -924px 0}.sbsprite-pet_skin_sheep_purple { background-position: -946px 0}.sbsprite-gold_generator_1 { background-position: -968px 0}.sbsprite-gold_generator_2 { background-position: -990px 0}.sbsprite-jar_of_pickles { background-position: -1012px 0}.sbsprite-griffin_upgrade_stone_legendary { background-position: -1034px 0}.sbsprite-pet_skin_sheep_orange { background-position: 0 -22px}.sbsprite-talisman { background-position: -22px -22px}.sbsprite-jungle_generator_7 { background-position: -44px -22px}.sbsprite-jungle_generator_6 { background-position: -66px -22px}.sbsprite-tutti_frutti_poison { background-position: -88px -22px}.sbsprite-fishing_generator_11 { background-position: -110px -22px}.sbsprite-jungle_generator_9 { background-position: -132px -22px}.sbsprite-fishing_generator_10 { background-position: -154px -22px}.sbsprite-jungle_generator_8 { background-position: -176px -22px}.sbsprite-jungle_generator_3 { background-position: -198px -22px}.sbsprite-witch_mask { background-position: -220px -22px}.sbsprite-yellow { background-position: -242px -22px}.sbsprite-jungle_generator_2 { background-position: -264px -22px}.sbsprite-jungle_generator_5 { background-position: -286px -22px}.sbsprite-jungle_generator_4 { background-position: -308px -22px}.sbsprite-bat_person_artifact { background-position: -330px -22px}.sbsprite-cocoa_generator_11 { background-position: -352px -22px}.sbsprite-cocoa_generator_12 { background-position: -374px -22px}.sbsprite-jungle_generator_1 { background-position: -396px -22px}.sbsprite-cocoa_generator_10 { background-position: -418px -22px}.sbsprite-beheaded_horror { background-position: -440px -22px}.sbsprite-clay_generator_6 { background-position: -462px -22px}.sbsprite-clay_generator_7 { background-position: -484px -22px}.sbsprite-clay_generator_8 { background-position: -506px -22px}.sbsprite-clay_generator_9 { background-position: -528px -22px}.sbsprite-clay_generator_2 { background-position: -550px -22px}.sbsprite-clay_generator_3 { background-position: -572px -22px}.sbsprite-clay_generator_4 { background-position: -594px -22px}.sbsprite-clay_generator_5 { background-position: -616px -22px}.sbsprite-gold_livid_head { background-position: -638px -22px}.sbsprite-clay_generator_1 { background-position: -660px -22px}.sbsprite-medium_slayer_sack { background-position: -682px -22px}.sbsprite-pet_skin_wither { background-position: -704px -22px}.sbsprite-pink_frosted_donut_3 { background-position: -726px -22px}.sbsprite-pink_frosted_donut_2 { background-position: -748px -22px}.sbsprite-pink_frosted_donut_5 { background-position: -770px -22px}.sbsprite-garland { background-position: -792px -22px}.sbsprite-pink_frosted_donut_4 { background-position: -814px -22px}.sbsprite-pink_frosted_donut_7 { background-position: -836px -22px}.sbsprite-pink_frosted_donut_6 { background-position: -858px -22px}.sbsprite-pink_frosted_donut_9 { background-position: -880px -22px}.sbsprite-pink_frosted_donut_8 { background-position: -902px -22px}.sbsprite-rune_jerry { background-position: -924px -22px}.sbsprite-feather_ring { background-position: -946px -22px}.sbsprite-perfect_forge { background-position: -968px -22px}.sbsprite-bingo_relic { background-position: -990px -22px}.sbsprite-revenant_catalyst { background-position: -1012px -22px}.sbsprite-sun_2 { background-position: -1034px -22px}.sbsprite-sun_1 { background-position: 0 -44px}.sbsprite-pet_skin_tiger_twilight { background-position: -22px -44px}.sbsprite-blessing_of_life { background-position: -44px -44px}.sbsprite-plasma { background-position: -66px -44px}.sbsprite-carrot_patch { background-position: -88px -44px}.sbsprite-pink_frosted_donut_1 { background-position: -110px -44px}.sbsprite-bestiary_the_park { background-position: -132px -44px}.sbsprite-end_stone_10 { background-position: -154px -44px}.sbsprite-end_stone_11 { background-position: -176px -44px}.sbsprite-griffin_upgrade_stone_epic { background-position: -198px -44px}.sbsprite-iron_generator_10 { background-position: -220px -44px}.sbsprite-pet_skin_rock_embarrassed { background-position: -242px -44px}.sbsprite-fast_travel_barn { background-position: -264px -44px}.sbsprite-iron_generator_11 { background-position: -286px -44px}.sbsprite-iron_generator_12 { background-position: -308px -44px}.sbsprite-large_runes_sack { background-position: -330px -44px}.sbsprite-rune_redstone { background-position: -352px -44px}.sbsprite-horseman_candle { background-position: -374px -44px}.sbsprite-tepid_green_tea { background-position: -396px -44px}.sbsprite-large_agronomy_sack { background-position: -418px -44px}.sbsprite-wise_shimmer { background-position: -440px -44px}.sbsprite-maxor_the_fish { background-position: -462px -44px}.sbsprite-revenant_generator_4 { background-position: -484px -44px}.sbsprite-revenant_generator_5 { background-position: -506px -44px}.sbsprite-revenant_generator_6 { background-position: -528px -44px}.sbsprite-revenant_generator_7 { background-position: -550px -44px}.sbsprite-revenant_generator_1 { background-position: -572px -44px}.sbsprite-revenant_generator_2 { background-position: -594px -44px}.sbsprite-epoch_cake_orange { background-position: -616px -44px}.sbsprite-revenant_generator_3 { background-position: -638px -44px}.sbsprite-large_gemstone_sack { background-position: -660px -44px}.sbsprite-mender_crown { background-position: -682px -44px}.sbsprite-mummy_10 { background-position: -704px -44px}.sbsprite-revenant_generator_8 { background-position: -726px -44px}.sbsprite-revenant_generator_9 { background-position: -748px -44px}.sbsprite-mummy_11 { background-position: -770px -44px}.sbsprite-hard_stone_generator_9 { background-position: -792px -44px}.sbsprite-hard_stone_generator_8 { background-position: -814px -44px}.sbsprite-hard_stone_generator_7 { background-position: -836px -44px}.sbsprite-hard_stone_generator_6 { background-position: -858px -44px}.sbsprite-hard_stone_generator_5 { background-position: -880px -44px}.sbsprite-hard_stone_generator_4 { background-position: -902px -44px}.sbsprite-medium_talisman_bag { background-position: -924px -44px}.sbsprite-hard_stone_generator_3 { background-position: -946px -44px}.sbsprite-black_small_backpack { background-position: -968px -44px}.sbsprite-hard_stone_generator_2 { background-position: -990px -44px}.sbsprite-harp { background-position: -1012px -44px}.sbsprite-hard_stone_generator_1 { background-position: -1034px -44px}.sbsprite-pet_skin_sheep_green { background-position: 0 -66px}.sbsprite-magma_cube_generator_10 { background-position: -22px -66px}.sbsprite-fishing_crystal { background-position: -44px -66px}.sbsprite-magma_cube_generator_11 { background-position: -66px -66px}.sbsprite-rough_amber_gem { background-position: -88px -66px}.sbsprite-oak_generator_5 { background-position: -110px -66px}.sbsprite-oak_generator_4 { background-position: -132px -66px}.sbsprite-oak_generator_3 { background-position: -154px -66px}.sbsprite-oak_generator_2 { background-position: -176px -66px}.sbsprite-red_claw_ring { background-position: -198px -66px}.sbsprite-oak_generator_9 { background-position: -220px -66px}.sbsprite-oak_generator_8 { background-position: -242px -66px}.sbsprite-purple_small_backpack { background-position: -264px -66px}.sbsprite-oak_generator_7 { background-position: -286px -66px}.sbsprite-oak_generator_6 { background-position: -308px -66px}.sbsprite-picnic_set { background-position: -330px -66px}.sbsprite-oak_generator_1 { background-position: -352px -66px}.sbsprite-pet_skin_sheep_neon_red { background-position: -374px -66px}.sbsprite-hot_stuff { background-position: -396px -66px}.sbsprite-skeleton_generator_11 { background-position: -418px -66px}.sbsprite-skeleton_generator_10 { background-position: -440px -66px}.sbsprite-mayor_jerry { background-position: -462px -66px}.sbsprite-generals_armor_of_the_resistance_helmet { background-position: -484px -66px}.sbsprite-recall_potion { background-position: -506px -66px}.sbsprite-portable_builder { background-position: -528px -66px}.sbsprite-rune_ice { background-position: -550px -66px}.sbsprite-zombie_brain_mixin { background-position: -572px -66px}.sbsprite-pet_skin_rabbit_aquamarine { background-position: -594px -66px}.sbsprite-rune_music { background-position: -616px -66px}.sbsprite-magnetic_talisman { background-position: -638px -66px}.sbsprite-light_grey_jumbo_backpack { background-position: -660px -66px}.sbsprite-onyx { background-position: -682px -66px}.sbsprite-rune_fire { background-position: -704px -66px}.sbsprite-pet_skin_sheep_black { background-position: -726px -66px}.sbsprite-ice_fireplace { background-position: -748px -66px}.sbsprite-sun_personality { background-position: -770px -66px}.sbsprite-pet { background-position: -792px -66px}.sbsprite-melon_2 { background-position: -814px -66px}.sbsprite-melon_3 { background-position: -836px -66px}.sbsprite-epoch_cake_purple { background-position: -858px -66px}.sbsprite-melon_1 { background-position: -880px -66px}.sbsprite-krampus_helmet { background-position: -902px -66px}.sbsprite-coffee_table { background-position: -924px -66px}.sbsprite-necromancer_lord_helmet { background-position: -946px -66px}.sbsprite-melon_8 { background-position: -968px -66px}.sbsprite-blue_ice_hunk { background-position: -990px -66px}.sbsprite-divan_helmet { background-position: -1012px -66px}.sbsprite-melon_9 { background-position: -1034px -66px}.sbsprite-melon_6 { background-position: 0 -88px}.sbsprite-melon_7 { background-position: -22px -88px}.sbsprite-melon_4 { background-position: -44px -88px}.sbsprite-melon_5 { background-position: -66px -88px}.sbsprite-blue_candy { background-position: -88px -88px}.sbsprite-squid_hat { background-position: -110px -88px}.sbsprite-dungeon_green_support_orb { background-position: -132px -88px}.sbsprite-coin_diamond_3 { background-position: -154px -88px}.sbsprite-pink { background-position: -176px -88px}.sbsprite-coin_diamond_2 { background-position: -198px -88px}.sbsprite-repelling_candle { background-position: -220px -88px}.sbsprite-enderman_generator_11 { background-position: -242px -88px}.sbsprite-power_artifact { background-position: -264px -88px}.sbsprite-enderman_generator_10 { background-position: -286px -88px}.sbsprite-amethyst_crystal { background-position: -308px -88px}.sbsprite-crimson_essence { background-position: -330px -88px}.sbsprite-blue_small_backpack { background-position: -352px -88px}.sbsprite-grey_jumbo_backpack { background-position: -374px -88px}.sbsprite-wither_essence { background-position: -396px -88px}.sbsprite-brown_jumbo_backpack { background-position: -418px -88px}.sbsprite-archer_dungeon_ability_1 { background-position: -440px -88px}.sbsprite-crochet_tiger_plushie { background-position: -462px -88px}.sbsprite-final_destination_helmet { background-position: -484px -88px}.sbsprite-luxurious_spool { background-position: -506px -88px}.sbsprite-auto_recombobulator { background-position: -528px -88px}.sbsprite-killer_11 { background-position: -550px -88px}.sbsprite-spooky_bait { background-position: -572px -88px}.sbsprite-killer_10 { background-position: -594px -88px}.sbsprite-fast_travel_howl { background-position: -616px -88px}.sbsprite-etherwarp_conduit { background-position: -638px -88px}.sbsprite-forest_island_crystal { background-position: -660px -88px}.sbsprite-spirit_mask { background-position: -682px -88px}.sbsprite-sacks { background-position: -704px -88px}.sbsprite-obsidian_generator_10 { background-position: -726px -88px}.sbsprite-chicken_generator_10 { background-position: -748px -88px}.sbsprite-chicken_generator_12 { background-position: -770px -88px}.sbsprite-wood_singularity { background-position: -792px -88px}.sbsprite-chicken_generator_11 { background-position: -814px -88px}.sbsprite-sun_6 { background-position: -836px -88px}.sbsprite-builder_melon { background-position: -858px -88px}.sbsprite-santa_1 { background-position: -880px -88px}.sbsprite-sun_5 { background-position: -902px -88px}.sbsprite-dirt_bottle { background-position: -924px -88px}.sbsprite-sun_4 { background-position: -946px -88px}.sbsprite-handy_blood_chalice { background-position: -968px -88px}.sbsprite-sun_3 { background-position: -990px -88px}.sbsprite-sun_9 { background-position: -1012px -88px}.sbsprite-superior_fragment { background-position: -1034px -88px}.sbsprite-sun_8 { background-position: 0 -110px}.sbsprite-sun_7 { background-position: -22px -110px}.sbsprite-your_essence { background-position: -44px -110px}.sbsprite-pink_greater_backpack { background-position: -66px -110px}.sbsprite-unstable_fragment { background-position: -88px -110px}.sbsprite-obsidian_generator_11 { background-position: -110px -110px}.sbsprite-obsidian_generator_12 { background-position: -132px -110px}.sbsprite-perfect_sapphire_gem { background-position: -154px -110px}.sbsprite-gravel_generator_11 { background-position: -176px -110px}.sbsprite-gravel_generator_10 { background-position: -198px -110px}.sbsprite-candy_corn { background-position: -220px -110px}.sbsprite-mineral_talisman { background-position: -242px -110px}.sbsprite-divan_alloy { background-position: -264px -110px}.sbsprite-moil_log { background-position: -286px -110px}.sbsprite-super_magic_mushroom_soup { background-position: -308px -110px}.sbsprite-easter_basket { background-position: -330px -110px}.sbsprite-hunter_talisman { background-position: -352px -110px}.sbsprite-medium_potion_bag { background-position: -374px -110px}.sbsprite-pet_skin_megalodon_bullhead { background-position: -396px -110px}.sbsprite-broken_piggy_bank { background-position: -418px -110px}.sbsprite-mayor_technoblade { background-position: -440px -110px}.sbsprite-farming_talisman { background-position: -462px -110px}.sbsprite-flawed_sapphire_gem { background-position: -484px -110px}.sbsprite-light_blue_large_backpack { background-position: -506px -110px}.sbsprite-kindred { background-position: -528px -110px}.sbsprite-pocket_espresso_machine { background-position: -550px -110px}.sbsprite-overflux_power_orb { background-position: -572px -110px}.sbsprite-potato_spreading { background-position: -594px -110px}.sbsprite-acacia_generator_11 { background-position: -616px -110px}.sbsprite-birch_generator_6 { background-position: -638px -110px}.sbsprite-acacia_generator_10 { background-position: -660px -110px}.sbsprite-birch_generator_5 { background-position: -682px -110px}.sbsprite-birch_generator_4 { background-position: -704px -110px}.sbsprite-birch_generator_3 { background-position: -726px -110px}.sbsprite-holy_dragon_helmet { background-position: -748px -110px}.sbsprite-basketball_personality { background-position: -770px -110px}.sbsprite-birch_generator_9 { background-position: -792px -110px}.sbsprite-birch_generator_8 { background-position: -814px -110px}.sbsprite-birch_generator_7 { background-position: -836px -110px}.sbsprite-birch_generator_2 { background-position: -858px -110px}.sbsprite-birch_generator_1 { background-position: -880px -110px}.sbsprite-anubis { background-position: -902px -110px}.sbsprite-santa_8 { background-position: -924px -110px}.sbsprite-santa_9 { background-position: -946px -110px}.sbsprite-santa_6 { background-position: -968px -110px}.sbsprite-santa_7 { background-position: -990px -110px}.sbsprite-santa_4 { background-position: -1012px -110px}.sbsprite-candy_talisman { background-position: -1034px -110px}.sbsprite-santa_5 { background-position: 0 -132px}.sbsprite-santa_2 { background-position: -22px -132px}.sbsprite-santa_3 { background-position: -44px -132px}.sbsprite-small_combat_sack { background-position: -66px -132px}.sbsprite-speed_racer { background-position: -88px -132px}.sbsprite-pet_skin_parrot_blue_macaw { background-position: -110px -132px}.sbsprite-red_large_backpack { background-position: -132px -132px}.sbsprite-sea_archer_helmet { background-position: -154px -132px}.sbsprite-happy_mask { background-position: -176px -132px}.sbsprite-blue_large_backpack { background-position: -198px -132px}.sbsprite-enderman_generator_4 { background-position: -220px -132px}.sbsprite-enderman_generator_3 { background-position: -242px -132px}.sbsprite-enderman_generator_2 { background-position: -264px -132px}.sbsprite-enderman_generator_1 { background-position: -286px -132px}.sbsprite-enderman_generator_8 { background-position: -308px -132px}.sbsprite-enderman_generator_7 { background-position: -330px -132px}.sbsprite-enderman_generator_6 { background-position: -352px -132px}.sbsprite-enderman_generator_5 { background-position: -374px -132px}.sbsprite-green_candy { background-position: -396px -132px}.sbsprite-bestiary_milestone { background-position: -418px -132px}.sbsprite-colossal_exp_bottle_upgrade { background-position: -440px -132px}.sbsprite-sun_11 { background-position: -462px -132px}.sbsprite-sun_10 { background-position: -484px -132px}.sbsprite-vampire_witch_mask { background-position: -506px -132px}.sbsprite-pet_skin_sheep_yellow { background-position: -528px -132px}.sbsprite-bank_upgrade_palatial { background-position: -550px -132px}.sbsprite-flawed_ruby_gem { background-position: -572px -132px}.sbsprite-redstone_generator_9 { background-position: -594px -132px}.sbsprite-redstone_generator_7 { background-position: -616px -132px}.sbsprite-redstone_generator_8 { background-position: -638px -132px}.sbsprite-arachne_fragment { background-position: -660px -132px}.sbsprite-spider_generator_10 { background-position: -682px -132px}.sbsprite-spider_generator_11 { background-position: -704px -132px}.sbsprite-epoch_cake_red { background-position: -726px -132px}.sbsprite-orange_jumbo_backpack { background-position: -748px -132px}.sbsprite-giant_the_fish { background-position: -770px -132px}.sbsprite-minnow_bait { background-position: -792px -132px}.sbsprite-enderman_generator_9 { background-position: -814px -132px}.sbsprite-mastiff_puppy { background-position: -836px -132px}.sbsprite-talisman_enrichment_critical_damage { background-position: -858px -132px}.sbsprite-fast_travel_forge { background-position: -880px -132px}.sbsprite-goblin_omelette { background-position: -902px -132px}.sbsprite-builder_ancient_fruit { background-position: -924px -132px}.sbsprite-master_skull_tier_10 { background-position: -946px -132px}.sbsprite-hardened_wood { background-position: -968px -132px}.sbsprite-large_winter_sack { background-position: -990px -132px}.sbsprite-talisman_enrichment_intelligence { background-position: -1012px -132px}.sbsprite-snow_snowglobe { background-position: -1034px -132px}.sbsprite-summoning_eye { background-position: 0 -154px}.sbsprite-cavespider_generator_10 { background-position: -22px -154px}.sbsprite-clownfish_10 { background-position: -44px -154px}.sbsprite-cavespider_generator_11 { background-position: -66px -154px}.sbsprite-revenant_generator_12 { background-position: -88px -154px}.sbsprite-clownfish_11 { background-position: -110px -154px}.sbsprite-revenant_generator_11 { background-position: -132px -154px}.sbsprite-revenant_generator_10 { background-position: -154px -154px}.sbsprite-red_small_backpack { background-position: -176px -154px}.sbsprite-soulflow { background-position: -198px -154px}.sbsprite-farming_fortune { background-position: -220px -154px}.sbsprite-dungeon_stone_berserk { background-position: -242px -154px}.sbsprite-green_greater_backpack { background-position: -264px -154px}.sbsprite-mastiff_helmet { background-position: -286px -154px}.sbsprite-purple { background-position: -308px -154px}.sbsprite-skeleton_generator_7 { background-position: -330px -154px}.sbsprite-skeleton_generator_6 { background-position: -352px -154px}.sbsprite-skeleton_generator_9 { background-position: -374px -154px}.sbsprite-skeleton_generator_8 { background-position: -396px -154px}.sbsprite-speed_ring { background-position: -418px -154px}.sbsprite-skeleton_generator_3 { background-position: -440px -154px}.sbsprite-rabbit_hutch { background-position: -462px -154px}.sbsprite-skeleton_generator_2 { background-position: -484px -154px}.sbsprite-skeleton_generator_5 { background-position: -506px -154px}.sbsprite-minion_storage_expander { background-position: -528px -154px}.sbsprite-skeleton_generator_4 { background-position: -550px -154px}.sbsprite-werewolf_helmet { background-position: -572px -154px}.sbsprite-light_blue_small_backpack { background-position: -594px -154px}.sbsprite-skeleton_generator_1 { background-position: -616px -154px}.sbsprite-lapis_chest { background-position: -638px -154px}.sbsprite-healing_talisman { background-position: -660px -154px}.sbsprite-magma_cube_head { background-position: -682px -154px}.sbsprite-shadow_goggles { background-position: -704px -154px}.sbsprite-ice_generator_11 { background-position: -726px -154px}.sbsprite-fine_jasper_gem { background-position: -748px -154px}.sbsprite-candy_artifact { background-position: -770px -154px}.sbsprite-pet_skin_dragon_neon_blue { background-position: -792px -154px}.sbsprite-fast_travel_desert { background-position: -814px -154px}.sbsprite-rune_end { background-position: -836px -154px}.sbsprite-old_shimmer { background-position: -858px -154px}.sbsprite-skyblock_bench { background-position: -880px -154px}.sbsprite-hay_bale { background-position: -902px -154px}.sbsprite-crit_chance { background-position: -924px -154px}.sbsprite-dungeon_stone { background-position: -946px -154px}.sbsprite-artifact_potion_affinity { background-position: -968px -154px}.sbsprite-yoggie { background-position: -990px -154px}.sbsprite-starred_adaptive_helmet { background-position: -1012px -154px}.sbsprite-foraging_3_portal { background-position: -1034px -154px}.sbsprite-pet_skin_dragon_neon_red { background-position: 0 -176px}.sbsprite-ditto_skull { background-position: -22px -176px}.sbsprite-pig_generator_6 { background-position: -44px -176px}.sbsprite-redstone_generator_1 { background-position: -66px -176px}.sbsprite-pig_generator_5 { background-position: -88px -176px}.sbsprite-redstone_generator_2 { background-position: -110px -176px}.sbsprite-pig_generator_8 { background-position: -132px -176px}.sbsprite-pig_generator_7 { background-position: -154px -176px}.sbsprite-flawless_amethyst_gem { background-position: -176px -176px}.sbsprite-redstone_generator_5 { background-position: -198px -176px}.sbsprite-wither_catalyst { background-position: -220px -176px}.sbsprite-pig_generator_9 { background-position: -242px -176px}.sbsprite-redstone_generator_6 { background-position: -264px -176px}.sbsprite-cyan_jumbo_backpack { background-position: -286px -176px}.sbsprite-redstone_generator_3 { background-position: -308px -176px}.sbsprite-redstone_generator_4 { background-position: -330px -176px}.sbsprite-ice_generator_10 { background-position: -352px -176px}.sbsprite-pig_generator_2 { background-position: -374px -176px}.sbsprite-builder_lettuce { background-position: -396px -176px}.sbsprite-first_master_star { background-position: -418px -176px}.sbsprite-pig_generator_1 { background-position: -440px -176px}.sbsprite-pig_generator_4 { background-position: -462px -176px}.sbsprite-green_medium_backpack { background-position: -484px -176px}.sbsprite-pig_generator_3 { background-position: -506px -176px}.sbsprite-sugar_cane_generator_9 { background-position: -528px -176px}.sbsprite-greater_backpack { background-position: -550px -176px}.sbsprite-sugar_cane_generator_6 { background-position: -572px -176px}.sbsprite-sugar_cane_generator_5 { background-position: -594px -176px}.sbsprite-pet_skin_sheep_neon_blue { background-position: -616px -176px}.sbsprite-sugar_cane_generator_8 { background-position: -638px -176px}.sbsprite-sugar_cane_generator_7 { background-position: -660px -176px}.sbsprite-sugar_cane_generator_2 { background-position: -682px -176px}.sbsprite-sugar_cane_generator_1 { background-position: -704px -176px}.sbsprite-cauldron { background-position: -726px -176px}.sbsprite-sugar_cane_generator_4 { background-position: -748px -176px}.sbsprite-sugar_cane_generator_3 { background-position: -770px -176px}.sbsprite-wheat_island_crystal { background-position: -792px -176px}.sbsprite-boss_collection_scarf { background-position: -814px -176px}.sbsprite-deep_sea_orb { background-position: -836px -176px}.sbsprite-pet_skin_elephant_red { background-position: -858px -176px}.sbsprite-pink_large_backpack { background-position: -880px -176px}.sbsprite-gemstone_collection { background-position: -902px -176px}.sbsprite-carpentry_bench { background-position: -924px -176px}.sbsprite-pet_skin_wolf_henzo_doggo { background-position: -946px -176px}.sbsprite-sloth_11 { background-position: -968px -176px}.sbsprite-sloth_10 { background-position: -990px -176px}.sbsprite-vampire_mask { background-position: -1012px -176px}.sbsprite-reindeer_personality { background-position: -1034px -176px}.sbsprite-minos_hunter_helmet { background-position: 0 -198px}.sbsprite-catacombs_2 { background-position: -22px -198px}.sbsprite-catacombs_3 { background-position: -44px -198px}.sbsprite-catacombs_1 { background-position: -66px -198px}.sbsprite-catacombs_6 { background-position: -88px -198px}.sbsprite-small_runes_sack { background-position: -110px -198px}.sbsprite-catacombs_4 { background-position: -132px -198px}.sbsprite-catacombs_5 { background-position: -154px -198px}.sbsprite-clownfish_hat { background-position: -176px -198px}.sbsprite-fine_topaz_gem { background-position: -198px -198px}.sbsprite-beastmaster_crest_uncommon { background-position: -220px -198px}.sbsprite-superlite_motor { background-position: -242px -198px}.sbsprite-red_greater_backpack { background-position: -264px -198px}.sbsprite-hunter_ring { background-position: -286px -198px}.sbsprite-necromancer_brooch { background-position: -308px -198px}.sbsprite-spooky_shard { background-position: -330px -198px}.sbsprite-grey_medium_backpack { background-position: -352px -198px}.sbsprite-diamond_chest { background-position: -374px -198px}.sbsprite-slime_hat { background-position: -396px -198px}.sbsprite-hermit_crab_2 { background-position: -418px -198px}.sbsprite-enderman_cortex_rewriter { background-position: -440px -198px}.sbsprite-hermit_crab_1 { background-position: -462px -198px}.sbsprite-carrot_generator_11 { background-position: -484px -198px}.sbsprite-carrot_generator_12 { background-position: -506px -198px}.sbsprite-mushroom_generator_4 { background-position: -528px -198px}.sbsprite-carrot_generator_10 { background-position: -550px -198px}.sbsprite-mushroom_generator_3 { background-position: -572px -198px}.sbsprite-mushroom_generator_6 { background-position: -594px -198px}.sbsprite-mushroom_generator_5 { background-position: -616px -198px}.sbsprite-mushroom_generator_8 { background-position: -638px -198px}.sbsprite-mushroom_generator_7 { background-position: -660px -198px}.sbsprite-mushroom_generator_9 { background-position: -682px -198px}.sbsprite-diamond_professor_head { background-position: -704px -198px}.sbsprite-large_foraging_sack { background-position: -726px -198px}.sbsprite-robotron_reflector { background-position: -748px -198px}.sbsprite-wish_ultimate { background-position: -770px -198px}.sbsprite-tessellated_ender_pearl { background-position: -792px -198px}.sbsprite-pet_skin_sheep_red { background-position: -814px -198px}.sbsprite-spirit_decoy { background-position: -836px -198px}.sbsprite-stacked_pumpkins { background-position: -858px -198px}.sbsprite-medium_runes_sack { background-position: -880px -198px}.sbsprite-mushroom_generator_2 { background-position: -902px -198px}.sbsprite-young_dragon_helmet { background-position: -924px -198px}.sbsprite-mushroom_generator_1 { background-position: -946px -198px}.sbsprite-hermit_crab_6 { background-position: -968px -198px}.sbsprite-gravity_talisman { background-position: -990px -198px}.sbsprite-hermit_crab_5 { background-position: -1012px -198px}.sbsprite-hermit_crab_4 { background-position: -1034px -198px}.sbsprite-hermit_crab_3 { background-position: 0 -220px}.sbsprite-melon_10 { background-position: -22px -220px}.sbsprite-party_time_event { background-position: -44px -220px}.sbsprite-grinch_10 { background-position: -66px -220px}.sbsprite-melon_11 { background-position: -88px -220px}.sbsprite-hermit_crab_9 { background-position: -110px -220px}.sbsprite-hermit_crab_8 { background-position: -132px -220px}.sbsprite-grinch_11 { background-position: -154px -220px}.sbsprite-hermit_crab_7 { background-position: -176px -220px}.sbsprite-flower_generator_10 { background-position: -198px -220px}.sbsprite-race_giant_mushroom { background-position: -220px -220px}.sbsprite-flower_generator_11 { background-position: -242px -220px}.sbsprite-flower_generator_12 { background-position: -264px -220px}.sbsprite-redstone_chest { background-position: -286px -220px}.sbsprite-undead_catalyst { background-position: -308px -220px}.sbsprite-master_skull_tier_7 { background-position: -330px -220px}.sbsprite-reindeer_9 { background-position: -352px -220px}.sbsprite-master_skull_tier_6 { background-position: -374px -220px}.sbsprite-rune_slimy { background-position: -396px -220px}.sbsprite-master_skull_tier_9 { background-position: -418px -220px}.sbsprite-medium_shelves { background-position: -440px -220px}.sbsprite-master_skull_tier_8 { background-position: -462px -220px}.sbsprite-plasmaflux_power_orb { background-position: -484px -220px}.sbsprite-adaptive_helmet { background-position: -506px -220px}.sbsprite-pet_skin_endermite_radiant { background-position: -528px -220px}.sbsprite-master_skull_tier_1 { background-position: -550px -220px}.sbsprite-master_skull_tier_3 { background-position: -572px -220px}.sbsprite-oil_barrel { background-position: -594px -220px}.sbsprite-master_skull_tier_2 { background-position: -616px -220px}.sbsprite-master_skull_tier_5 { background-position: -638px -220px}.sbsprite-master_skull_tier_4 { background-position: -660px -220px}.sbsprite-pet_skin_guardian { background-position: -682px -220px}.sbsprite-flawless_jade_gem { background-position: -704px -220px}.sbsprite-survivor_cube { background-position: -726px -220px}.sbsprite-undead_2 { background-position: -748px -220px}.sbsprite-undead_3 { background-position: -770px -220px}.sbsprite-undead_4 { background-position: -792px -220px}.sbsprite-undead_5 { background-position: -814px -220px}.sbsprite-undead_6 { background-position: -836px -220px}.sbsprite-undead_7 { background-position: -858px -220px}.sbsprite-undead_8 { background-position: -880px -220px}.sbsprite-undead_9 { background-position: -902px -220px}.sbsprite-enchanted_book_bundle_vicious { background-position: -924px -220px}.sbsprite-endstone_chest { background-position: -946px -220px}.sbsprite-titanium_fuel_tank { background-position: -968px -220px}.sbsprite-golden_ball { background-position: -990px -220px}.sbsprite-undead_1 { background-position: -1012px -220px}.sbsprite-happy_emoji_5 { background-position: -1034px -220px}.sbsprite-reindeer_1 { background-position: 0 -242px}.sbsprite-warden_heart { background-position: -22px -242px}.sbsprite-happy_emoji_4 { background-position: -44px -242px}.sbsprite-reindeer_2 { background-position: -66px -242px}.sbsprite-happy_emoji_7 { background-position: -88px -242px}.sbsprite-reindeer_3 { background-position: -110px -242px}.sbsprite-happy_emoji_6 { background-position: -132px -242px}.sbsprite-kalhuiki_mask { background-position: -154px -242px}.sbsprite-reindeer_4 { background-position: -176px -242px}.sbsprite-happy_emoji_1 { background-position: -198px -242px}.sbsprite-reindeer_5 { background-position: -220px -242px}.sbsprite-reindeer_6 { background-position: -242px -242px}.sbsprite-happy_emoji_3 { background-position: -264px -242px}.sbsprite-reindeer_7 { background-position: -286px -242px}.sbsprite-happy_emoji_2 { background-position: -308px -242px}.sbsprite-reindeer_8 { background-position: -330px -242px}.sbsprite-happy_emoji_9 { background-position: -352px -242px}.sbsprite-festive_skeleton_personality { background-position: -374px -242px}.sbsprite-happy_emoji_8 { background-position: -396px -242px}.sbsprite-mimic_fragment { background-position: -418px -242px}.sbsprite-pet_skin_parrot_gold_macaw { background-position: -440px -242px}.sbsprite-mithril_drill_engine { background-position: -462px -242px}.sbsprite-titan_helmet { background-position: -484px -242px}.sbsprite-warden_helmet { background-position: -506px -242px}.sbsprite-nether_wart_pouch { background-position: -528px -242px}.sbsprite-red_nose { background-position: -550px -242px}.sbsprite-emerald_generator_12 { background-position: -572px -242px}.sbsprite-farming_1_portal { background-position: -594px -242px}.sbsprite-pet_skin_horse_zombie { background-position: -616px -242px}.sbsprite-devour_ring { background-position: -638px -242px}.sbsprite-mining_1_portal { background-position: -660px -242px}.sbsprite-builder_lilac_fruit { background-position: -682px -242px}.sbsprite-diamond_livid_head { background-position: -704px -242px}.sbsprite-fast_travel_dungeon_hub { background-position: -726px -242px}.sbsprite-emerald_generator_10 { background-position: -748px -242px}.sbsprite-emerald_generator_11 { background-position: -770px -242px}.sbsprite-bestiary_catacombs { background-position: -792px -242px}.sbsprite-fine_amber_gem { background-position: -814px -242px}.sbsprite-beach_ball_personality { background-position: -836px -242px}.sbsprite-cow_generator_11 { background-position: -858px -242px}.sbsprite-cow_generator_12 { background-position: -880px -242px}.sbsprite-mummy_personality { background-position: -902px -242px}.sbsprite-rune_wet { background-position: -924px -242px}.sbsprite-jumbo_backpack_upgrade { background-position: -946px -242px}.sbsprite-shadow_assassin_admiral { background-position: -968px -242px}.sbsprite-beating_heart { background-position: -990px -242px}.sbsprite-giant_tooth { background-position: -1012px -242px}.sbsprite-black_large_backpack { background-position: -1034px -242px}.sbsprite-corleonite { background-position: 0 -264px}.sbsprite-magma_cube_generator_1 { background-position: -22px -264px}.sbsprite-magma_cube_generator_5 { background-position: -44px -264px}.sbsprite-gold_candy { background-position: -66px -264px}.sbsprite-magma_cube_generator_4 { background-position: -88px -264px}.sbsprite-magma_cube_generator_3 { background-position: -110px -264px}.sbsprite-magma_cube_generator_2 { background-position: -132px -264px}.sbsprite-magma_cube_generator_9 { background-position: -154px -264px}.sbsprite-dining_table { background-position: -176px -264px}.sbsprite-magma_cube_generator_8 { background-position: -198px -264px}.sbsprite-magma_cube_generator_7 { background-position: -220px -264px}.sbsprite-magma_cube_generator_6 { background-position: -242px -264px}.sbsprite-sadan_brooch { background-position: -264px -264px}.sbsprite-birch_generator_11 { background-position: -286px -264px}.sbsprite-birch_generator_10 { background-position: -308px -264px}.sbsprite-strong_dragon_helmet { background-position: -330px -264px}.sbsprite-greater_enchanted_chest_upgrade { background-position: -352px -264px}.sbsprite-pink_frosted_donut_11 { background-position: -374px -264px}.sbsprite-molten_cube { background-position: -396px -264px}.sbsprite-pink_frosted_donut_10 { background-position: -418px -264px}.sbsprite-ultimate_carrot_candy_upgrade { background-position: -440px -264px}.sbsprite-old_baby { background-position: -462px -264px}.sbsprite-coin_lapis { background-position: -484px -264px}.sbsprite-superior_shimmer { background-position: -506px -264px}.sbsprite-diver_fragment { background-position: -528px -264px}.sbsprite-blue_greater_backpack { background-position: -550px -264px}.sbsprite-piggy_bank { background-position: -572px -264px}.sbsprite-flawed_jade_gem { background-position: -594px -264px}.sbsprite-dungeon_boss_key { background-position: -616px -264px}.sbsprite-spider_catalyst { background-position: -638px -264px}.sbsprite-shark_scale_helmet { background-position: -660px -264px}.sbsprite-ghost_book { background-position: -682px -264px}.sbsprite-titanium_alloy { background-position: -704px -264px}.sbsprite-pet_skin_enderman_slayer { background-position: -726px -264px}.sbsprite-hegemony_artifact { background-position: -748px -264px}.sbsprite-potion_affinity_talisman { background-position: -770px -264px}.sbsprite-trick_or_treat_bag { background-position: -792px -264px}.sbsprite-fake_gold_ring { background-position: -814px -264px}.sbsprite-dr_paper { background-position: -836px -264px}.sbsprite-fuel_tank { background-position: -858px -264px}.sbsprite-rough_amethyst_gem { background-position: -880px -264px}.sbsprite-flawless_sapphire_gem { background-position: -902px -264px}.sbsprite-pink_small_backpack { background-position: -924px -264px}.sbsprite-cow_generator_10 { background-position: -946px -264px}.sbsprite-mithril_infusion { background-position: -968px -264px}.sbsprite-beastmaster_crest_common { background-position: -990px -264px}.sbsprite-shiny_relic { background-position: -1012px -264px}.sbsprite-concentrated_stone { background-position: -1034px -264px}.sbsprite-sloth_personality { background-position: 0 -286px}.sbsprite-stocking { background-position: -22px -286px}.sbsprite-egg_pile { background-position: -44px -286px}.sbsprite-blessing_of_wisdom { background-position: -66px -286px}.sbsprite-happy_snowman { background-position: -88px -286px}.sbsprite-gingerbread_10 { background-position: -110px -286px}.sbsprite-gingerbread_11 { background-position: -132px -286px}.sbsprite-diamond_generator_11 { background-position: -154px -286px}.sbsprite-diamond_generator_10 { background-position: -176px -286px}.sbsprite-medium_backpack { background-position: -198px -286px}.sbsprite-rune_white_spiral { background-position: -220px -286px}.sbsprite-diamond_generator_12 { background-position: -242px -286px}.sbsprite-blacksmith_plus { background-position: -264px -286px}.sbsprite-light_blue_greater_backpack { background-position: -286px -286px}.sbsprite-watcher_eye { background-position: -308px -286px}.sbsprite-pet_skin_silverfish { background-position: -330px -286px}.sbsprite-rough_ruby_gem { background-position: -352px -286px}.sbsprite-fine_amethyst_gem { background-position: -374px -286px}.sbsprite-flawed_topaz_gem { background-position: -396px -286px}.sbsprite-spirit_bone { background-position: -418px -286px}.sbsprite-snow_blaster { background-position: -440px -286px}.sbsprite-unknown_item { background-position: -462px -286px}.sbsprite-spider_essence { background-position: -484px -286px}.sbsprite-light_bait { background-position: -506px -286px}.sbsprite-beastmaster_crest_legendary { background-position: -528px -286px}.sbsprite-mayor_diana { background-position: -550px -286px}.sbsprite-enchanted_jack_o_lantern { background-position: -572px -286px}.sbsprite-medium_foraging_sack { background-position: -594px -286px}.sbsprite-emerald_chest { background-position: -616px -286px}.sbsprite-carrot_generator_6 { background-position: -638px -286px}.sbsprite-reindeer_11 { background-position: -660px -286px}.sbsprite-carrot_generator_7 { background-position: -682px -286px}.sbsprite-reindeer_10 { background-position: -704px -286px}.sbsprite-carrot_generator_4 { background-position: -726px -286px}.sbsprite-carrot_generator_5 { background-position: -748px -286px}.sbsprite-carrot_generator_2 { background-position: -770px -286px}.sbsprite-carrot_generator_3 { background-position: -792px -286px}.sbsprite-carrot_generator_1 { background-position: -814px -286px}.sbsprite-carrot_generator_8 { background-position: -836px -286px}.sbsprite-dragon_scale { background-position: -858px -286px}.sbsprite-carrot_generator_9 { background-position: -880px -286px}.sbsprite-protector_dragon_helmet { background-position: -902px -286px}.sbsprite-rune_hearts { background-position: -924px -286px}.sbsprite-pet_skin_sheep_magenta { background-position: -946px -286px}.sbsprite-shadow_assassin_helmet { background-position: -968px -286px}.sbsprite-gemstone_gauntlet_gold { background-position: -990px -286px}.sbsprite-lucky_dice { background-position: -1012px -286px}.sbsprite-wolf_ring { background-position: -1034px -286px}.sbsprite-haunt_ability { background-position: 0 -308px}.sbsprite-undead_essence { background-position: -22px -308px}.sbsprite-bitter_ice_tea { background-position: -44px -308px}.sbsprite-beastmaster_crest_rare { background-position: -66px -308px}.sbsprite-enchanted_titanium { background-position: -88px -308px}.sbsprite-red_claw_talisman { background-position: -110px -308px}.sbsprite-intimidation_talisman { background-position: -132px -308px}.sbsprite-ice_bait { background-position: -154px -308px}.sbsprite-empty_soda_can { background-position: -176px -308px}.sbsprite-jerry_candy { background-position: -198px -308px}.sbsprite-ghast_generator_3 { background-position: -220px -308px}.sbsprite-fancy_flower_pot { background-position: -242px -308px}.sbsprite-ghast_generator_2 { background-position: -264px -308px}.sbsprite-cyan_greater_backpack { background-position: -286px -308px}.sbsprite-ghast_generator_5 { background-position: -308px -308px}.sbsprite-ghast_generator_4 { background-position: -330px -308px}.sbsprite-ghast_generator_7 { background-position: -352px -308px}.sbsprite-cold_ones { background-position: -374px -308px}.sbsprite-ghast_generator_6 { background-position: -396px -308px}.sbsprite-mega_jerry_lure { background-position: -418px -308px}.sbsprite-ghast_generator_9 { background-position: -440px -308px}.sbsprite-rune_smokey { background-position: -462px -308px}.sbsprite-ghast_generator_8 { background-position: -484px -308px}.sbsprite-healer_dungeon_ability_2 { background-position: -506px -308px}.sbsprite-healer_dungeon_ability_3 { background-position: -528px -308px}.sbsprite-ghast_generator_1 { background-position: -550px -308px}.sbsprite-brown_medium_backpack { background-position: -572px -308px}.sbsprite-healer_dungeon_ability_1 { background-position: -594px -308px}.sbsprite-ice_cream_2 { background-position: -616px -308px}.sbsprite-ice_cream_1 { background-position: -638px -308px}.sbsprite-ice_cream_4 { background-position: -660px -308px}.sbsprite-ice_cream_3 { background-position: -682px -308px}.sbsprite-ice_cream_6 { background-position: -704px -308px}.sbsprite-ice_cream_5 { background-position: -726px -308px}.sbsprite-ice_cream_8 { background-position: -748px -308px}.sbsprite-ice_cream_7 { background-position: -770px -308px}.sbsprite-ice_cream_9 { background-position: -792px -308px}.sbsprite-ice_cream_10 { background-position: -814px -308px}.sbsprite-ice_cream_11 { background-position: -836px -308px}.sbsprite-coin_iron { background-position: -858px -308px}.sbsprite-chewed_gum { background-position: -880px -308px}.sbsprite-training_weights { background-position: -902px -308px}.sbsprite-orange_large_backpack { background-position: -924px -308px}.sbsprite-campfire_talisman_24 { background-position: -946px -308px}.sbsprite-campfire_talisman_25 { background-position: -968px -308px}.sbsprite-campfire_talisman_26 { background-position: -990px -308px}.sbsprite-campfire_talisman_27 { background-position: -1012px -308px}.sbsprite-campfire_talisman_28 { background-position: -1034px -308px}.sbsprite-campfire_talisman_29 { background-position: 0 -330px}.sbsprite-candle_table { background-position: -22px -330px}.sbsprite-jingle_bells { background-position: -44px -330px}.sbsprite-lynx_talisman { background-position: -66px -330px}.sbsprite-campfire_talisman_20 { background-position: -88px -330px}.sbsprite-campfire_talisman_21 { background-position: -110px -330px}.sbsprite-campfire_talisman_22 { background-position: -132px -330px}.sbsprite-campfire_talisman_23 { background-position: -154px -330px}.sbsprite-perfect_ruby_gem { background-position: -176px -330px}.sbsprite-pet_skin_megalodon_baby { background-position: -198px -330px}.sbsprite-jungle_amulet { background-position: -220px -330px}.sbsprite-reaper_mask { background-position: -242px -330px}.sbsprite-enchanting_plus { background-position: -264px -330px}.sbsprite-catacombs_expert_ring { background-position: -286px -330px}.sbsprite-ice_knight_statue { background-position: -308px -330px}.sbsprite-bits_talisman { background-position: -330px -330px}.sbsprite-dark_orb { background-position: -352px -330px}.sbsprite-blessing_of_power { background-position: -374px -330px}.sbsprite-beastmaster_crest_epic { background-position: -396px -330px}.sbsprite-bulky_stone { background-position: -418px -330px}.sbsprite-yellow_small_backpack { background-position: -440px -330px}.sbsprite-small_potion_bag { background-position: -462px -330px}.sbsprite-green_jumbo_backpack { background-position: -484px -330px}.sbsprite-zombie_heart { background-position: -506px -330px}.sbsprite-pet_skin_black_cat_ivory { background-position: -528px -330px}.sbsprite-titanium_relic { background-position: -550px -330px}.sbsprite-fast_travel_jungle { background-position: -572px -330px}.sbsprite-pet_skin_rabbit { background-position: -594px -330px}.sbsprite-enderman_mask { background-position: -616px -330px}.sbsprite-perfect_amethyst_gem { background-position: -638px -330px}.sbsprite-boss_collection_sadan { background-position: -660px -330px}.sbsprite-blessing_of_stone { background-position: -682px -330px}.sbsprite-master_catacombs_pass_0 { background-position: -704px -330px}.sbsprite-snowman { background-position: -726px -330px}.sbsprite-candy_the_fish { background-position: -748px -330px}.sbsprite-gold_chest { background-position: -770px -330px}.sbsprite-master_catacombs_pass_6 { background-position: -792px -330px}.sbsprite-master_catacombs_pass_5 { background-position: -814px -330px}.sbsprite-master_catacombs_pass_8 { background-position: -836px -330px}.sbsprite-master_catacombs_pass_7 { background-position: -858px -330px}.sbsprite-master_catacombs_pass_2 { background-position: -880px -330px}.sbsprite-master_catacombs_pass_1 { background-position: -902px -330px}.sbsprite-master_catacombs_pass_4 { background-position: -924px -330px}.sbsprite-master_catacombs_pass_3 { background-position: -946px -330px}.sbsprite-candy_bowl { background-position: -968px -330px}.sbsprite-large_talisman_bag { background-position: -990px -330px}.sbsprite-secret_dungeon_redstone_key { background-position: -1012px -330px}.sbsprite-knockoff_cola { background-position: -1034px -330px}.sbsprite-grinch_2 { background-position: 0 -352px}.sbsprite-grinch_3 { background-position: -22px -352px}.sbsprite-grinch_4 { background-position: -44px -352px}.sbsprite-personal_bank_item { background-position: -66px -352px}.sbsprite-grinch_5 { background-position: -88px -352px}.sbsprite-grinch_6 { background-position: -110px -352px}.sbsprite-blessing_of_time { background-position: -132px -352px}.sbsprite-grinch_7 { background-position: -154px -352px}.sbsprite-grinch_8 { background-position: -176px -352px}.sbsprite-grinch_9 { background-position: -198px -352px}.sbsprite-crit_damage { background-position: -220px -352px}.sbsprite-grinch_1 { background-position: -242px -352px}.sbsprite-bunny_4 { background-position: -264px -352px}.sbsprite-bunny_3 { background-position: -286px -352px}.sbsprite-the_watchers_head { background-position: -308px -352px}.sbsprite-bunny_2 { background-position: -330px -352px}.sbsprite-bunny_1 { background-position: -352px -352px}.sbsprite-bunny_8 { background-position: -374px -352px}.sbsprite-bunny_7 { background-position: -396px -352px}.sbsprite-master_catacombs_pass_9 { background-position: -418px -352px}.sbsprite-bat_person_helmet { background-position: -440px -352px}.sbsprite-bunny_6 { background-position: -462px -352px}.sbsprite-bunny_5 { background-position: -484px -352px}.sbsprite-refined_amber { background-position: -506px -352px}.sbsprite-pet_skin_rock_derp { background-position: -528px -352px}.sbsprite-pet_skin_sheep_gray { background-position: -550px -352px}.sbsprite-flawed_amber_gem { background-position: -572px -352px}.sbsprite-pumpkin_11 { background-position: -594px -352px}.sbsprite-pumpkin_10 { background-position: -616px -352px}.sbsprite-white_small_backpack { background-position: -638px -352px}.sbsprite-blaze_hat { background-position: -660px -352px}.sbsprite-woodcutting_crystal { background-position: -682px -352px}.sbsprite-bunny_9 { background-position: -704px -352px}.sbsprite-roofed_forest_island { background-position: -726px -352px}.sbsprite-campfire_talisman_13 { background-position: -748px -352px}.sbsprite-campfire_talisman_14 { background-position: -770px -352px}.sbsprite-rune_lava { background-position: -792px -352px}.sbsprite-campfire_talisman_15 { background-position: -814px -352px}.sbsprite-campfire_talisman_16 { background-position: -836px -352px}.sbsprite-campfire_talisman_17 { background-position: -858px -352px}.sbsprite-campfire_talisman_18 { background-position: -880px -352px}.sbsprite-golden_dante_statue { background-position: -902px -352px}.sbsprite-campfire_talisman_19 { background-position: -924px -352px}.sbsprite-foraging_4_portal { background-position: -946px -352px}.sbsprite-new_year_cake_bag { background-position: -968px -352px}.sbsprite-santa_personality { background-position: -990px -352px}.sbsprite-campfire_talisman_10 { background-position: -1012px -352px}.sbsprite-campfire_talisman_11 { background-position: -1034px -352px}.sbsprite-campfire_talisman_12 { background-position: 0 -374px}.sbsprite-jerry_stone { background-position: -22px -374px}.sbsprite-cyclops_personality { background-position: -44px -374px}.sbsprite-desert_island_crystal { background-position: -66px -374px}.sbsprite-happy_emoji_personality { background-position: -88px -374px}.sbsprite-rough_sapphire_gem { background-position: -110px -374px}.sbsprite-fallen_star_hat { background-position: -132px -374px}.sbsprite-blaze_generator_10 { background-position: -154px -374px}.sbsprite-blaze_generator_11 { background-position: -176px -374px}.sbsprite-goblin_omelette_blue_cheese { background-position: -198px -374px}.sbsprite-treasure_artifact { background-position: -220px -374px}.sbsprite-hermit_crab_personality { background-position: -242px -374px}.sbsprite-orange { background-position: -264px -374px}.sbsprite-pond_island { background-position: -286px -374px}.sbsprite-fast_travel_void { background-position: -308px -374px}.sbsprite-transmission_tuner { background-position: -330px -374px}.sbsprite-bestiary_the_end { background-position: -352px -374px}.sbsprite-danger_1_portal { background-position: -374px -374px}.sbsprite-pink_jumbo_backpack { background-position: -396px -374px}.sbsprite-sea_walker_helmet { background-position: -418px -374px}.sbsprite-wise_fragment { background-position: -440px -374px}.sbsprite-jerry_talisman_golden { background-position: -462px -374px}.sbsprite-superior_baby { background-position: -484px -374px}.sbsprite-flower_bed { background-position: -506px -374px}.sbsprite-cactus_generator_1 { background-position: -528px -374px}.sbsprite-endstone_geode { background-position: -550px -374px}.sbsprite-holy_baby { background-position: -572px -374px}.sbsprite-cactus_generator_3 { background-position: -594px -374px}.sbsprite-cactus_generator_2 { background-position: -616px -374px}.sbsprite-cactus_generator_5 { background-position: -638px -374px}.sbsprite-cactus_generator_4 { background-position: -660px -374px}.sbsprite-cactus_generator_7 { background-position: -682px -374px}.sbsprite-cactus_generator_6 { background-position: -704px -374px}.sbsprite-cactus_generator_9 { background-position: -726px -374px}.sbsprite-protector_shimmer { background-position: -748px -374px}.sbsprite-cactus_generator_8 { background-position: -770px -374px}.sbsprite-rune_sparkling { background-position: -792px -374px}.sbsprite-bingo_ring { background-position: -814px -374px}.sbsprite-griffin_upgrade_stone_rare { background-position: -836px -374px}.sbsprite-chick_nest { background-position: -858px -374px}.sbsprite-solved_prism { background-position: -880px -374px}.sbsprite-king_talisman { background-position: -902px -374px}.sbsprite-treasure_ring { background-position: -924px -374px}.sbsprite-black_medium_backpack { background-position: -946px -374px}.sbsprite-surfboard { background-position: -968px -374px}.sbsprite-mithril_fuel_tank { background-position: -990px -374px}.sbsprite-fast_travel_home { background-position: -1012px -374px}.sbsprite-water_trough { background-position: -1034px -374px}.sbsprite-mayor_dante { background-position: 0 -396px}.sbsprite-cheese_fuel { background-position: -22px -396px}.sbsprite-pet_skin_lion_lioness { background-position: -44px -396px}.sbsprite-pink_bunny_personality { background-position: -66px -396px}.sbsprite-goldor_the_fish { background-position: -88px -396px}.sbsprite-speed_wither_helmet { background-position: -110px -396px}.sbsprite-pink_medium_backpack { background-position: -132px -396px}.sbsprite-mayor_derpy { background-position: -154px -396px}.sbsprite-talisman_enrichment_health { background-position: -176px -396px}.sbsprite-enderpack { background-position: -198px -396px}.sbsprite-pet_skin_rock_thinking { background-position: -220px -396px}.sbsprite-soul_fragment { background-position: -242px -396px}.sbsprite-skyblock_chair { background-position: -264px -396px}.sbsprite-mayor_paul { background-position: -286px -396px}.sbsprite-autopet_rules_2 { background-position: -308px -396px}.sbsprite-bat_talisman { background-position: -330px -396px}.sbsprite-killer_4 { background-position: -352px -396px}.sbsprite-killer_5 { background-position: -374px -396px}.sbsprite-killer_6 { background-position: -396px -396px}.sbsprite-killer_7 { background-position: -418px -396px}.sbsprite-killer_8 { background-position: -440px -396px}.sbsprite-killer_9 { background-position: -462px -396px}.sbsprite-builder_appalled_pumpkin { background-position: -484px -396px}.sbsprite-holy_shimmer { background-position: -506px -396px}.sbsprite-royal_pigeon { background-position: -528px -396px}.sbsprite-life_preserver { background-position: -550px -396px}.sbsprite-killer_1 { background-position: -572px -396px}.sbsprite-killer_2 { background-position: -594px -396px}.sbsprite-killer_3 { background-position: -616px -396px}.sbsprite-pet_skin_rock_cool { background-position: -638px -396px}.sbsprite-dingy { background-position: -660px -396px}.sbsprite-intimidation_ring { background-position: -682px -396px}.sbsprite-easter_egg_6 { background-position: -704px -396px}.sbsprite-builder_kiwi { background-position: -726px -396px}.sbsprite-easter_egg_5 { background-position: -748px -396px}.sbsprite-easter_egg_4 { background-position: -770px -396px}.sbsprite-rough_jade_gem { background-position: -792px -396px}.sbsprite-easter_egg_3 { background-position: -814px -396px}.sbsprite-easter_egg_2 { background-position: -836px -396px}.sbsprite-easter_egg_1 { background-position: -858px -396px}.sbsprite-snow_generator_11 { background-position: -880px -396px}.sbsprite-snow_generator_10 { background-position: -902px -396px}.sbsprite-easter_egg_9 { background-position: -924px -396px}.sbsprite-easter_egg_8 { background-position: -946px -396px}.sbsprite-easter_egg_7 { background-position: -968px -396px}.sbsprite-medium_gemstone_sack { background-position: -990px -396px}.sbsprite-large_enchanted_agronomy_sack { background-position: -1012px -396px}.sbsprite-blessed_fruit { background-position: -1034px -396px}.sbsprite-dungeon_stone_archer { background-position: 0 -418px}.sbsprite-arrow_swapper { background-position: -22px -418px}.sbsprite-snow_cannon { background-position: -44px -418px}.sbsprite-jerry_box_mega { background-position: -66px -418px}.sbsprite-pet_skin_sheep_brown { background-position: -88px -418px}.sbsprite-brewing_plus { background-position: -110px -418px}.sbsprite-mayor_barry { background-position: -132px -418px}.sbsprite-bat_ring { background-position: -154px -418px}.sbsprite-candle_arch { background-position: -176px -418px}.sbsprite-mithril_plate { background-position: -198px -418px}.sbsprite-carrot_bait { background-position: -220px -418px}.sbsprite-speed_artifact { background-position: -242px -418px}.sbsprite-salmon_hat { background-position: -264px -418px}.sbsprite-mini_sandcastle { background-position: -286px -418px}.sbsprite-scavenger_talisman { background-position: -308px -418px}.sbsprite-fast_travel_kuudra { background-position: -330px -418px}.sbsprite-foraging_fortune { background-position: -352px -418px}.sbsprite-bunny_personality { background-position: -374px -418px}.sbsprite-sandcastle_personality { background-position: -396px -418px}.sbsprite-undead_11 { background-position: -418px -418px}.sbsprite-magenta_jumbo_backpack { background-position: -440px -418px}.sbsprite-undead_10 { background-position: -462px -418px}.sbsprite-diamond_necron_head { background-position: -484px -418px}.sbsprite-wet_pumpkin { background-position: -506px -418px}.sbsprite-gemstone_gauntlet { background-position: -528px -418px}.sbsprite-cobblestone_generator_9 { background-position: -550px -418px}.sbsprite-cobblestone_generator_8 { background-position: -572px -418px}.sbsprite-iron_generator_1 { background-position: -594px -418px}.sbsprite-cobblestone_generator_7 { background-position: -616px -418px}.sbsprite-control_switch { background-position: -638px -418px}.sbsprite-iron_generator_2 { background-position: -660px -418px}.sbsprite-cobblestone_generator_6 { background-position: -682px -418px}.sbsprite-pumpkin_bomb { background-position: -704px -418px}.sbsprite-cobblestone_generator_5 { background-position: -726px -418px}.sbsprite-cobblestone_generator_4 { background-position: -748px -418px}.sbsprite-dwarven_tankard { background-position: -770px -418px}.sbsprite-jerry_talisman_purple { background-position: -792px -418px}.sbsprite-cobblestone_generator_3 { background-position: -814px -418px}.sbsprite-cobblestone_generator_2 { background-position: -836px -418px}.sbsprite-reindeer_plush { background-position: -858px -418px}.sbsprite-cobblestone_generator_1 { background-position: -880px -418px}.sbsprite-big_xtree { background-position: -902px -418px}.sbsprite-farming_island { background-position: -924px -418px}.sbsprite-rune_endersnake { background-position: -946px -418px}.sbsprite-rune { background-position: -968px -418px}.sbsprite-sweet_flesh { background-position: -990px -418px}.sbsprite-shark_10 { background-position: -1012px -418px}.sbsprite-shark_12 { background-position: -1034px -418px}.sbsprite-viking_tear { background-position: 0 -440px}.sbsprite-shark_11 { background-position: -22px -440px}.sbsprite-iron_generator_7 { background-position: -44px -440px}.sbsprite-iron_generator_8 { background-position: -66px -440px}.sbsprite-iron_generator_9 { background-position: -88px -440px}.sbsprite-beacon_skull { background-position: -110px -440px}.sbsprite-coin_gold_2 { background-position: -132px -440px}.sbsprite-iron_generator_3 { background-position: -154px -440px}.sbsprite-iron_generator_4 { background-position: -176px -440px}.sbsprite-sea_creature_ring { background-position: -198px -440px}.sbsprite-iron_generator_5 { background-position: -220px -440px}.sbsprite-iron_generator_6 { background-position: -242px -440px}.sbsprite-nether_warts_generator_7 { background-position: -264px -440px}.sbsprite-nether_warts_generator_8 { background-position: -286px -440px}.sbsprite-nether_warts_generator_9 { background-position: -308px -440px}.sbsprite-nether_warts_generator_3 { background-position: -330px -440px}.sbsprite-wolf_fur_mixin { background-position: -352px -440px}.sbsprite-mayor_marina { background-position: -374px -440px}.sbsprite-candy_ring { background-position: -396px -440px}.sbsprite-nether_warts_generator_4 { background-position: -418px -440px}.sbsprite-nether_warts_generator_5 { background-position: -440px -440px}.sbsprite-nether_warts_generator_6 { background-position: -462px -440px}.sbsprite-large_backpack { background-position: -484px -440px}.sbsprite-fine_sapphire_gem { background-position: -506px -440px}.sbsprite-nether_warts_generator_1 { background-position: -528px -440px}.sbsprite-nether_warts_generator_2 { background-position: -550px -440px}.sbsprite-griffin_upgrade_stone_uncommon { background-position: -572px -440px}.sbsprite-grey_greater_backpack { background-position: -594px -440px}.sbsprite-shiny_orb { background-position: -616px -440px}.sbsprite-large_enchanted_husbandry_sack { background-position: -638px -440px}.sbsprite-milk_cookies { background-position: -660px -440px}.sbsprite-spider_artifact { background-position: -682px -440px}.sbsprite-green_gift { background-position: -704px -440px}.sbsprite-fast_travel_park { background-position: -726px -440px}.sbsprite-jungle_heart { background-position: -748px -440px}.sbsprite-toil_log { background-position: -770px -440px}.sbsprite-absolute_ender_pearl { background-position: -792px -440px}.sbsprite-catacombs_pass_10 { background-position: -814px -440px}.sbsprite-protector_fragment { background-position: -836px -440px}.sbsprite-ice_generator_1 { background-position: -858px -440px}.sbsprite-ice_generator_2 { background-position: -880px -440px}.sbsprite-old_fragment { background-position: -902px -440px}.sbsprite-ice_generator_3 { background-position: -924px -440px}.sbsprite-traveling_zoo { background-position: -946px -440px}.sbsprite-ice_generator_4 { background-position: -968px -440px}.sbsprite-ice_generator_5 { background-position: -990px -440px}.sbsprite-ice_generator_6 { background-position: -1012px -440px}.sbsprite-ice_generator_7 { background-position: -1034px -440px}.sbsprite-ice_generator_8 { background-position: 0 -462px}.sbsprite-ice_generator_9 { background-position: -22px -462px}.sbsprite-lady_bug_personality { background-position: -44px -462px}.sbsprite-pet_skin_rock_laugh { background-position: -66px -462px}.sbsprite-experimentation_table { background-position: -88px -462px}.sbsprite-titanium_ore { background-position: -110px -462px}.sbsprite-blue_medium_backpack { background-position: -132px -462px}.sbsprite-ice_sofa { background-position: -154px -462px}.sbsprite-rune_lightning { background-position: -176px -462px}.sbsprite-tarantula_talisman { background-position: -198px -462px}.sbsprite-mayor_aatrox { background-position: -220px -462px}.sbsprite-race_crystal_core { background-position: -242px -462px}.sbsprite-black_cat_plush { background-position: -264px -462px}.sbsprite-small_agronomy_sack { background-position: -286px -462px}.sbsprite-magenta_greater_backpack { background-position: -308px -462px}.sbsprite-pet_skin_sheep_light_gray { background-position: -330px -462px}.sbsprite-diamond_scarf_head { background-position: -352px -462px}.sbsprite-hay_bed { background-position: -374px -462px}.sbsprite-talisman_enrichment_sea_creature_chance { background-position: -396px -462px}.sbsprite-strong_shimmer { background-position: -418px -462px}.sbsprite-shady_ring { background-position: -440px -462px}.sbsprite-dante_talisman { background-position: -462px -462px}.sbsprite-pink_bunny_1 { background-position: -484px -462px}.sbsprite-black_greater_backpack { background-position: -506px -462px}.sbsprite-builder_cactus { background-position: -528px -462px}.sbsprite-magenta_small_backpack { background-position: -550px -462px}.sbsprite-talisman_enrichment_defense { background-position: -572px -462px}.sbsprite-pink_bunny_3 { background-position: -594px -462px}.sbsprite-talisman_enrichment_magic_find { background-position: -616px -462px}.sbsprite-pink_bunny_2 { background-position: -638px -462px}.sbsprite-pink_bunny_5 { background-position: -660px -462px}.sbsprite-pink_bunny_4 { background-position: -682px -462px}.sbsprite-salmon_opal { background-position: -704px -462px}.sbsprite-pink_bunny_7 { background-position: -726px -462px}.sbsprite-pink_bunny_6 { background-position: -748px -462px}.sbsprite-pink_bunny_9 { background-position: -770px -462px}.sbsprite-pink_bunny_8 { background-position: -792px -462px}.sbsprite-refined_mithril { background-position: -814px -462px}.sbsprite-happy_emoji_10 { background-position: -836px -462px}.sbsprite-happy_emoji_11 { background-position: -858px -462px}.sbsprite-mine_talisman { background-position: -880px -462px}.sbsprite-old_dragon_helmet { background-position: -902px -462px}.sbsprite-boss_collection_livid { background-position: -924px -462px}.sbsprite-green_small_backpack { background-position: -946px -462px}.sbsprite-rune_bite { background-position: -968px -462px}.sbsprite-jungle_generator_11 { background-position: -990px -462px}.sbsprite-mega_luck { background-position: -1012px -462px}.sbsprite-jungle_generator_10 { background-position: -1034px -462px}.sbsprite-pet_skin_chicken_baby_chick { background-position: 0 -484px}.sbsprite-pile_of_cash { background-position: -22px -484px}.sbsprite-dungeoneering { background-position: -44px -484px}.sbsprite-base_griffin_upgrade_stone { background-position: -66px -484px}.sbsprite-red_tent { background-position: -88px -484px}.sbsprite-dungeon_red_support_orb { background-position: -110px -484px}.sbsprite-fast_travel_nether { background-position: -132px -484px}.sbsprite-night_vision_charm { background-position: -154px -484px}.sbsprite-zombie_grave { background-position: -176px -484px}.sbsprite-fish_bait { background-position: -198px -484px}.sbsprite-ice_lolly_personality { background-position: -220px -484px}.sbsprite-grizzly_paw { background-position: -242px -484px}.sbsprite-large_potion_bag { background-position: -264px -484px}.sbsprite-poorly_wrapped_rock { background-position: -286px -484px}.sbsprite-drill_engine { background-position: -308px -484px}.sbsprite-dark_oak_generator_10 { background-position: -330px -484px}.sbsprite-dungeon_normal_key { background-position: -352px -484px}.sbsprite-dark_oak_generator_11 { background-position: -374px -484px}.sbsprite-unstable_shimmer { background-position: -396px -484px}.sbsprite-green_egg { background-position: -418px -484px}.sbsprite-rough_topaz_gem { background-position: -440px -484px}.sbsprite-mana_flux_power_orb { background-position: -462px -484px}.sbsprite-amber_material { background-position: -484px -484px}.sbsprite-grinch_personality { background-position: -506px -484px}.sbsprite-fast_travel_crystals { background-position: -528px -484px}.sbsprite-lapis_generator_2 { background-position: -550px -484px}.sbsprite-lapis_generator_3 { background-position: -572px -484px}.sbsprite-rune_sack { background-position: -594px -484px}.sbsprite-lapis_generator_4 { background-position: -616px -484px}.sbsprite-tightly_tied_hay_bale { background-position: -638px -484px}.sbsprite-beach_ball { background-position: -660px -484px}.sbsprite-lapis_generator_5 { background-position: -682px -484px}.sbsprite-lapis_generator_10 { background-position: -704px -484px}.sbsprite-lapis_generator_12 { background-position: -726px -484px}.sbsprite-light_grey_large_backpack { background-position: -748px -484px}.sbsprite-lapis_generator_1 { background-position: -770px -484px}.sbsprite-lapis_generator_11 { background-position: -792px -484px}.sbsprite-pet_item_quick_claw { background-position: -814px -484px}.sbsprite-basketball_9 { background-position: -836px -484px}.sbsprite-deck_chair { background-position: -858px -484px}.sbsprite-lady_bug_9 { background-position: -880px -484px}.sbsprite-basketball_8 { background-position: -902px -484px}.sbsprite-lady_bug_8 { background-position: -924px -484px}.sbsprite-basketball_7 { background-position: -946px -484px}.sbsprite-basketball_6 { background-position: -968px -484px}.sbsprite-rune_pestilence { background-position: -990px -484px}.sbsprite-basketball_5 { background-position: -1012px -484px}.sbsprite-mithril_generator_12 { background-position: -1034px -484px}.sbsprite-sea_creature_talisman { background-position: 0 -506px}.sbsprite-basketball_4 { background-position: -22px -506px}.sbsprite-mithril_generator_11 { background-position: -44px -506px}.sbsprite-basketball_3 { background-position: -66px -506px}.sbsprite-mithril_generator_10 { background-position: -88px -506px}.sbsprite-basketball_2 { background-position: -110px -506px}.sbsprite-blue_egg { background-position: -132px -506px}.sbsprite-basketball_1 { background-position: -154px -506px}.sbsprite-lady_bug_1 { background-position: -176px -506px}.sbsprite-emerald_ring { background-position: -198px -506px}.sbsprite-lady_bug_3 { background-position: -220px -506px}.sbsprite-lady_bug_2 { background-position: -242px -506px}.sbsprite-lady_bug_5 { background-position: -264px -506px}.sbsprite-lapis_generator_6 { background-position: -286px -506px}.sbsprite-epoch_cake_green { background-position: -308px -506px}.sbsprite-lady_bug_4 { background-position: -330px -506px}.sbsprite-lapis_generator_7 { background-position: -352px -506px}.sbsprite-medium_husbandry_sack { background-position: -374px -506px}.sbsprite-bunny_11 { background-position: -396px -506px}.sbsprite-lady_bug_7 { background-position: -418px -506px}.sbsprite-lapis_generator_8 { background-position: -440px -506px}.sbsprite-bunny_10 { background-position: -462px -506px}.sbsprite-candy_relic { background-position: -484px -506px}.sbsprite-lady_bug_6 { background-position: -506px -506px}.sbsprite-lapis_generator_9 { background-position: -528px -506px}.sbsprite-red_jumbo_backpack { background-position: -550px -506px}.sbsprite-holy_fragment { background-position: -572px -506px}.sbsprite-ice_cream_personality { background-position: -594px -506px}.sbsprite-dungeon_blue_support_orb { background-position: -616px -506px}.sbsprite-blaze_generator_4 { background-position: -638px -506px}.sbsprite-blaze_generator_3 { background-position: -660px -506px}.sbsprite-blaze_generator_2 { background-position: -682px -506px}.sbsprite-blaze_generator_1 { background-position: -704px -506px}.sbsprite-blaze_generator_8 { background-position: -726px -506px}.sbsprite-blaze_generator_7 { background-position: -748px -506px}.sbsprite-pet_skin_whale_orca { background-position: -770px -506px}.sbsprite-blaze_generator_6 { background-position: -792px -506px}.sbsprite-blaze_generator_5 { background-position: -814px -506px}.sbsprite-deadgehog_helmet { background-position: -836px -506px}.sbsprite-volta { background-position: -858px -506px}.sbsprite-blaze_generator_9 { background-position: -880px -506px}.sbsprite-frozen_chicken { background-position: -902px -506px}.sbsprite-pet_skin_dragon_neon_purple { background-position: -924px -506px}.sbsprite-cavespider_generator_6 { background-position: -946px -506px}.sbsprite-cavespider_generator_5 { background-position: -968px -506px}.sbsprite-rune_gem { background-position: -990px -506px}.sbsprite-cavespider_generator_8 { background-position: -1012px -506px}.sbsprite-cavespider_generator_7 { background-position: -1034px -506px}.sbsprite-cavespider_generator_2 { background-position: 0 -528px}.sbsprite-cavespider_generator_1 { background-position: -22px -528px}.sbsprite-cavespider_generator_4 { background-position: -44px -528px}.sbsprite-jerry_talisman_blue { background-position: -66px -528px}.sbsprite-cavespider_generator_3 { background-position: -88px -528px}.sbsprite-speed_talisman { background-position: -110px -528px}.sbsprite-mummy_1 { background-position: -132px -528px}.sbsprite-rabbit_hat { background-position: -154px -528px}.sbsprite-bat_person_ring { background-position: -176px -528px}.sbsprite-mummy_3 { background-position: -198px -528px}.sbsprite-cavespider_generator_9 { background-position: -220px -528px}.sbsprite-mummy_2 { background-position: -242px -528px}.sbsprite-mummy_5 { background-position: -264px -528px}.sbsprite-strong_baby { background-position: -286px -528px}.sbsprite-mummy_4 { background-position: -308px -528px}.sbsprite-mummy_7 { background-position: -330px -528px}.sbsprite-mummy_6 { background-position: -352px -528px}.sbsprite-spooky_helmet { background-position: -374px -528px}.sbsprite-dining_chair { background-position: -396px -528px}.sbsprite-mummy_9 { background-position: -418px -528px}.sbsprite-mummy_8 { background-position: -440px -528px}.sbsprite-ender_relic { background-position: -462px -528px}.sbsprite-flawed_jasper_gem { background-position: -484px -528px}.sbsprite-cactus_generator_10 { background-position: -506px -528px}.sbsprite-pet_skin_silverfish_fossilized { background-position: -528px -528px}.sbsprite-cactus_generator_11 { background-position: -550px -528px}.sbsprite-cactus_generator_12 { background-position: -572px -528px}.sbsprite-dark_goggles { background-position: -594px -528px}.sbsprite-starred_bonzo_mask { background-position: -616px -528px}.sbsprite-pigs_foot { background-position: -638px -528px}.sbsprite-gemstone_mixture { background-position: -660px -528px}.sbsprite-tarantula_black_widow { background-position: -682px -528px}.sbsprite-builder_berry_bush { background-position: -704px -528px}.sbsprite-chicken_head { background-position: -726px -528px}.sbsprite-pet_skin_elephant_purple { background-position: -748px -528px}.sbsprite-cow_head { background-position: -770px -528px}.sbsprite-witch_broomstick { background-position: -792px -528px}.sbsprite-pet_skin_monkey_gorilla { background-position: -814px -528px}.sbsprite-grey_large_backpack { background-position: -836px -528px}.sbsprite-pet_skin_sheep_neon_green { background-position: -858px -528px}.sbsprite-magic_mushroom_soup { background-position: -880px -528px}.sbsprite-petrified_starfall { background-position: -902px -528px}.sbsprite-spruce_generator_9 { background-position: -924px -528px}.sbsprite-second_master_star { background-position: -946px -528px}.sbsprite-sled { background-position: -968px -528px}.sbsprite-spruce_generator_1 { background-position: -990px -528px}.sbsprite-voidling_generator_2 { background-position: -1012px -528px}.sbsprite-red { background-position: -1034px -528px}.sbsprite-spirit_wing { background-position: 0 -550px}.sbsprite-spruce_generator_2 { background-position: -22px -550px}.sbsprite-voidling_generator_1 { background-position: -44px -550px}.sbsprite-spruce_generator_3 { background-position: -66px -550px}.sbsprite-voidling_generator_4 { background-position: -88px -550px}.sbsprite-spruce_generator_4 { background-position: -110px -550px}.sbsprite-voidling_generator_3 { background-position: -132px -550px}.sbsprite-spruce_generator_5 { background-position: -154px -550px}.sbsprite-voidling_generator_6 { background-position: -176px -550px}.sbsprite-spruce_generator_6 { background-position: -198px -550px}.sbsprite-voidling_generator_5 { background-position: -220px -550px}.sbsprite-spruce_generator_7 { background-position: -242px -550px}.sbsprite-voidling_generator_8 { background-position: -264px -550px}.sbsprite-spruce_generator_8 { background-position: -286px -550px}.sbsprite-voidling_generator_7 { background-position: -308px -550px}.sbsprite-voidling_generator_9 { background-position: -330px -550px}.sbsprite-magenta_large_backpack { background-position: -352px -550px}.sbsprite-fast_travel_end { background-position: -374px -550px}.sbsprite-cow_generator_8 { background-position: -396px -550px}.sbsprite-cow_generator_9 { background-position: -418px -550px}.sbsprite-present_1 { background-position: -440px -550px}.sbsprite-topaz_crystal { background-position: -462px -550px}.sbsprite-bestiary_private_island { background-position: -484px -550px}.sbsprite-present_2 { background-position: -506px -550px}.sbsprite-present_3 { background-position: -528px -550px}.sbsprite-cow_generator_1 { background-position: -550px -550px}.sbsprite-cow_generator_2 { background-position: -572px -550px}.sbsprite-dragon_horn { background-position: -594px -550px}.sbsprite-bat_artifact { background-position: -616px -550px}.sbsprite-cow_generator_3 { background-position: -638px -550px}.sbsprite-cow_generator_4 { background-position: -660px -550px}.sbsprite-cow_generator_5 { background-position: -682px -550px}.sbsprite-cow_generator_6 { background-position: -704px -550px}.sbsprite-cow_generator_7 { background-position: -726px -550px}.sbsprite-goblin_omelette_pesto { background-position: -748px -550px}.sbsprite-farming_2_portal { background-position: -770px -550px}.sbsprite-village_talisman { background-position: -792px -550px}.sbsprite-cheetah_talisman { background-position: -814px -550px}.sbsprite-mining_2_portal { background-position: -836px -550px}.sbsprite-present_8 { background-position: -858px -550px}.sbsprite-wood_talisman { background-position: -880px -550px}.sbsprite-present_9 { background-position: -902px -550px}.sbsprite-present_4 { background-position: -924px -550px}.sbsprite-present_5 { background-position: -946px -550px}.sbsprite-present_6 { background-position: -968px -550px}.sbsprite-present_7 { background-position: -990px -550px}.sbsprite-healing_ring { background-position: -1012px -550px}.sbsprite-titanium_artifact { background-position: -1034px -550px}.sbsprite-penguin_1 { background-position: 0 -572px}.sbsprite-penguin_2 { background-position: -22px -572px}.sbsprite-ruby_crystal { background-position: -44px -572px}.sbsprite-tiki_torch { background-position: -66px -572px}.sbsprite-wheat_generator_10 { background-position: -88px -572px}.sbsprite-emerald_generator_8 { background-position: -110px -572px}.sbsprite-wheat_generator_12 { background-position: -132px -572px}.sbsprite-emerald_generator_7 { background-position: -154px -572px}.sbsprite-wheat_generator_11 { background-position: -176px -572px}.sbsprite-scarecrow { background-position: -198px -572px}.sbsprite-emerald_generator_9 { background-position: -220px -572px}.sbsprite-emerald_generator_4 { background-position: -242px -572px}.sbsprite-emerald_generator_3 { background-position: -264px -572px}.sbsprite-emerald_generator_6 { background-position: -286px -572px}.sbsprite-emerald_generator_5 { background-position: -308px -572px}.sbsprite-pet_skin_elephant_monochrome { background-position: -330px -572px}.sbsprite-emerald_generator_2 { background-position: -352px -572px}.sbsprite-emerald_generator_1 { background-position: -374px -572px}.sbsprite-flawless_topaz_gem { background-position: -396px -572px}.sbsprite-raw_soulflow { background-position: -418px -572px}.sbsprite-large_enchanted_mining_sack { background-position: -440px -572px}.sbsprite-gold_scarf_head { background-position: -462px -572px}.sbsprite-orange_medium_backpack { background-position: -484px -572px}.sbsprite-fine_jade_gem { background-position: -506px -572px}.sbsprite-white_gift { background-position: -528px -572px}.sbsprite-goblin_omelette_sunny_side { background-position: -550px -572px}.sbsprite-builder_brown_mushroom { background-position: -572px -572px}.sbsprite-giant_flesh { background-position: -594px -572px}.sbsprite-jumbo_backpack { background-position: -616px -572px}.sbsprite-eternal_flame_ring { background-position: -638px -572px}.sbsprite-wrapped_gift_for_juliette { background-position: -660px -572px}.sbsprite-enchanted_book_bundle_counter_strike { background-position: -682px -572px}.sbsprite-pet_item_toy_jerry { background-position: -704px -572px}.sbsprite-golden_plate { background-position: -726px -572px}.sbsprite-penguin_5 { background-position: -748px -572px}.sbsprite-grandfather_clock { background-position: -770px -572px}.sbsprite-penguin_6 { background-position: -792px -572px}.sbsprite-penguin_3 { background-position: -814px -572px}.sbsprite-pet_skin_elephant_orange { background-position: -836px -572px}.sbsprite-fast_travel_museum { background-position: -858px -572px}.sbsprite-penguin_4 { background-position: -880px -572px}.sbsprite-penguin_9 { background-position: -902px -572px}.sbsprite-penguin_7 { background-position: -924px -572px}.sbsprite-penguin_8 { background-position: -946px -572px}.sbsprite-light_grey_medium_backpack { background-position: -968px -572px}.sbsprite-blue_jumbo_backpack { background-position: -990px -572px}.sbsprite-cyan_small_backpack { background-position: -1012px -572px}.sbsprite-jade_crystal { background-position: -1034px -572px}.sbsprite-large_dungeon_sack { background-position: 0 -594px}.sbsprite-summoning_ring { background-position: -22px -594px}.sbsprite-dragon_essence { background-position: -44px -594px}.sbsprite-basket_of_seeds { background-position: -66px -594px}.sbsprite-bunny_jerry { background-position: -88px -594px}.sbsprite-perfect_jade_gem { background-position: -110px -594px}.sbsprite-spray_can { background-position: -132px -594px}.sbsprite-campfire_talisman_4 { background-position: -154px -594px}.sbsprite-campfire_talisman_5 { background-position: -176px -594px}.sbsprite-campfire_talisman_2 { background-position: -198px -594px}.sbsprite-campfire_talisman_3 { background-position: -220px -594px}.sbsprite-remnant_of_the_eye { background-position: -242px -594px}.sbsprite-campfire_talisman_1 { background-position: -264px -594px}.sbsprite-talisman_enrichment_critical_chance { background-position: -286px -594px}.sbsprite-ghast_head { background-position: -308px -594px}.sbsprite-white_greater_backpack { background-position: -330px -594px}.sbsprite-mayor_diaz { background-position: -352px -594px}.sbsprite-campfire_talisman_8 { background-position: -374px -594px}.sbsprite-campfire_talisman_9 { background-position: -396px -594px}.sbsprite-jaderald { background-position: -418px -594px}.sbsprite-campfire_talisman_6 { background-position: -440px -594px}.sbsprite-gold_thorn_head { background-position: -462px -594px}.sbsprite-campfire_talisman_7 { background-position: -484px -594px}.sbsprite-dark_bait { background-position: -506px -594px}.sbsprite-game_annihilator { background-position: -528px -594px}.sbsprite-purple_greater_backpack { background-position: -550px -594px}.sbsprite-bestiary_deep_caverns { background-position: -572px -594px}.sbsprite-foraging_5_portal { background-position: -594px -594px}.sbsprite-wolf_talisman { background-position: -616px -594px}.sbsprite-gold_professor_head { background-position: -638px -594px}.sbsprite-pet_skin_sheep_light_blue { background-position: -660px -594px}.sbsprite-ice_lolly_4 { background-position: -682px -594px}.sbsprite-basketball_10 { background-position: -704px -594px}.sbsprite-ice_lolly_3 { background-position: -726px -594px}.sbsprite-mineral_helmet { background-position: -748px -594px}.sbsprite-basketball_11 { background-position: -770px -594px}.sbsprite-ice_lolly_2 { background-position: -792px -594px}.sbsprite-basketball_12 { background-position: -814px -594px}.sbsprite-ice_lolly_1 { background-position: -836px -594px}.sbsprite-rock_candy { background-position: -858px -594px}.sbsprite-ice_lolly_8 { background-position: -880px -594px}.sbsprite-tarantula_generator_2 { background-position: -902px -594px}.sbsprite-ice_lolly_7 { background-position: -924px -594px}.sbsprite-tarantula_generator_1 { background-position: -946px -594px}.sbsprite-ice_lolly_6 { background-position: -968px -594px}.sbsprite-ice_lolly_5 { background-position: -990px -594px}.sbsprite-purple_egg { background-position: -1012px -594px}.sbsprite-ice_lolly_9 { background-position: -1034px -594px}.sbsprite-tarantula_generator_9 { background-position: 0 -616px}.sbsprite-tarantula_generator_8 { background-position: -22px -616px}.sbsprite-tarantula_generator_7 { background-position: -44px -616px}.sbsprite-tarantula_generator_6 { background-position: -66px -616px}.sbsprite-tarantula_generator_5 { background-position: -88px -616px}.sbsprite-tarantula_generator_4 { background-position: -110px -616px}.sbsprite-tarantula_generator_3 { background-position: -132px -616px}.sbsprite-hypixel_castle { background-position: -154px -616px}.sbsprite-rune_golden { background-position: -176px -616px}.sbsprite-wheat_generator_9 { background-position: -198px -616px}.sbsprite-ftx_3070 { background-position: -220px -616px}.sbsprite-wheat_generator_8 { background-position: -242px -616px}.sbsprite-wheat_generator_5 { background-position: -264px -616px}.sbsprite-wheat_generator_4 { background-position: -286px -616px}.sbsprite-builder_corn { background-position: -308px -616px}.sbsprite-cheap_coffee { background-position: -330px -616px}.sbsprite-wheat_generator_7 { background-position: -352px -616px}.sbsprite-wheat_generator_6 { background-position: -374px -616px}.sbsprite-mushroom_generator_11 { background-position: -396px -616px}.sbsprite-wheat_generator_1 { background-position: -418px -616px}.sbsprite-mushroom_generator_10 { background-position: -440px -616px}.sbsprite-ender_plus { background-position: -462px -616px}.sbsprite-wheat_generator_3 { background-position: -484px -616px}.sbsprite-wheat_generator_2 { background-position: -506px -616px}.sbsprite-voidling_generator_10 { background-position: -528px -616px}.sbsprite-voidling_generator_11 { background-position: -550px -616px}.sbsprite-mushroom_generator_12 { background-position: -572px -616px}.sbsprite-personal_bonus { background-position: -594px -616px}.sbsprite-flawless_amber_gem { background-position: -616px -616px}.sbsprite-rune_darkness_within { background-position: -638px -616px}.sbsprite-bag_of_cash { background-position: -660px -616px}.sbsprite-pet_skin_hound_beagle { background-position: -682px -616px}.sbsprite-pufferfish_hat { background-position: -704px -616px}.sbsprite-lime_greater_backpack { background-position: -726px -616px}.sbsprite-food_trough { background-position: -748px -616px}.sbsprite-pet_skin_yeti_grown_up { background-position: -770px -616px}.sbsprite-slime_generator_10 { background-position: -792px -616px}.sbsprite-undead_personality { background-position: -814px -616px}.sbsprite-slime_generator_11 { background-position: -836px -616px}.sbsprite-nether_wart_island { background-position: -858px -616px}.sbsprite-gravel_generator_5 { background-position: -880px -616px}.sbsprite-gravel_generator_4 { background-position: -902px -616px}.sbsprite-gravel_generator_7 { background-position: -924px -616px}.sbsprite-gravel_generator_6 { background-position: -946px -616px}.sbsprite-gravel_generator_9 { background-position: -968px -616px}.sbsprite-gravel_generator_8 { background-position: -990px -616px}.sbsprite-shiny_shard { background-position: -1012px -616px}.sbsprite-pet_skin_rabbit_rose { background-position: -1034px -616px}.sbsprite-quiver { background-position: 0 -638px}.sbsprite-rune_snake { background-position: -22px -638px}.sbsprite-bonzo_mask { background-position: -44px -638px}.sbsprite-fast_travel { background-position: -66px -638px}.sbsprite-treasurite { background-position: -88px -638px}.sbsprite-chicken_coop { background-position: -110px -638px}.sbsprite-end_portal_fumes_mixin { background-position: -132px -638px}.sbsprite-crafting_plus { background-position: -154px -638px}.sbsprite-gravel_generator_1 { background-position: -176px -638px}.sbsprite-gravel_generator_3 { background-position: -198px -638px}.sbsprite-gravel_generator_2 { background-position: -220px -638px}.sbsprite-easter_egg_11 { background-position: -242px -638px}.sbsprite-easter_egg_10 { background-position: -264px -638px}.sbsprite-protein_bar { background-position: -286px -638px}.sbsprite-hard_stone_generator_10 { background-position: -308px -638px}.sbsprite-coin_gold { background-position: -330px -638px}.sbsprite-light_blue_jumbo_backpack { background-position: -352px -638px}.sbsprite-hard_stone_generator_12 { background-position: -374px -638px}.sbsprite-hard_stone_generator_11 { background-position: -396px -638px}.sbsprite-rune_blood { background-position: -418px -638px}.sbsprite-raggedy_shark_tooth_necklace { background-position: -440px -638px}.sbsprite-pure_mithril { background-position: -462px -638px}.sbsprite-coin_emerald { background-position: -484px -638px}.sbsprite-pet_skin_black_cat_onyx { background-position: -506px -638px}.sbsprite-easter_egg_12 { background-position: -528px -638px}.sbsprite-emperor_head { background-position: -550px -638px}.sbsprite-power_wither_helmet { background-position: -572px -638px}.sbsprite-bee_11 { background-position: -594px -638px}.sbsprite-bee_10 { background-position: -616px -638px}.sbsprite-pet_skin_wolf { background-position: -638px -638px}.sbsprite-pumpkin_4 { background-position: -660px -638px}.sbsprite-pumpkin_3 { background-position: -682px -638px}.sbsprite-pumpkin_6 { background-position: -704px -638px}.sbsprite-fine_ruby_gem { background-position: -726px -638px}.sbsprite-pumpkin_5 { background-position: -748px -638px}.sbsprite-pumpkin_2 { background-position: -770px -638px}.sbsprite-electron_transmitter { background-position: -792px -638px}.sbsprite-pumpkin_1 { background-position: -814px -638px}.sbsprite-gingerbread_house { background-position: -836px -638px}.sbsprite-bee_1 { background-position: -858px -638px}.sbsprite-large_mining_sack { background-position: -880px -638px}.sbsprite-bee_2 { background-position: -902px -638px}.sbsprite-bee_3 { background-position: -924px -638px}.sbsprite-bee_4 { background-position: -946px -638px}.sbsprite-midas_jewel { background-position: -968px -638px}.sbsprite-unstable_dragon_helmet { background-position: -990px -638px}.sbsprite-vaccine_talisman { background-position: -1012px -638px}.sbsprite-whale_bait { background-position: -1034px -638px}.sbsprite-bee_9 { background-position: 0 -660px}.sbsprite-bee_5 { background-position: -22px -660px}.sbsprite-booster_cookie_box { background-position: -44px -660px}.sbsprite-perfect_topaz_gem { background-position: -66px -660px}.sbsprite-bee_6 { background-position: -88px -660px}.sbsprite-bee_7 { background-position: -110px -660px}.sbsprite-bee_8 { background-position: -132px -660px}.sbsprite-elvish_helmet { background-position: -154px -660px}.sbsprite-pumpkin_8 { background-position: -176px -660px}.sbsprite-light_grey_greater_backpack { background-position: -198px -660px}.sbsprite-pumpkin_7 { background-position: -220px -660px}.sbsprite-pumpkin_9 { background-position: -242px -660px}.sbsprite-best_weapon_rack { background-position: -264px -660px}.sbsprite-washed_up_souvenir { background-position: -286px -660px}.sbsprite-coin_diamond { background-position: -308px -660px}.sbsprite-builder_pink_berry { background-position: -330px -660px}.sbsprite-clownfish_personality { background-position: -352px -660px}.sbsprite-easter_egg_personality { background-position: -374px -660px}.sbsprite-jerry_talisman_green { background-position: -396px -660px}.sbsprite-spiked_atrocity { background-position: -418px -660px}.sbsprite-flower_generator_8 { background-position: -440px -660px}.sbsprite-flower_generator_9 { background-position: -462px -660px}.sbsprite-farmer_orb { background-position: -484px -660px}.sbsprite-flower_generator_4 { background-position: -506px -660px}.sbsprite-crypt_skull_key { background-position: -528px -660px}.sbsprite-flower_generator_5 { background-position: -550px -660px}.sbsprite-flower_generator_6 { background-position: -572px -660px}.sbsprite-flower_generator_7 { background-position: -594px -660px}.sbsprite-flower_generator_1 { background-position: -616px -660px}.sbsprite-flower_generator_2 { background-position: -638px -660px}.sbsprite-nutcracker { background-position: -660px -660px}.sbsprite-flower_generator_3 { background-position: -682px -660px}.sbsprite-scarf_studies { background-position: -704px -660px}.sbsprite-builder_apple { background-position: -726px -660px}.sbsprite-skyblock_table { background-position: -748px -660px}.sbsprite-sleeping_eye { background-position: -770px -660px}.sbsprite-spider_generator_1 { background-position: -792px -660px}.sbsprite-pet_skin_elephant_blue { background-position: -814px -660px}.sbsprite-spider_generator_2 { background-position: -836px -660px}.sbsprite-spider_generator_3 { background-position: -858px -660px}.sbsprite-shark_bait { background-position: -880px -660px}.sbsprite-spider_generator_4 { background-position: -902px -660px}.sbsprite-spider_generator_5 { background-position: -924px -660px}.sbsprite-black { background-position: -946px -660px}.sbsprite-sapphire_polished_drill_engine { background-position: -968px -660px}.sbsprite-cocoa_generator_1 { background-position: -990px -660px}.sbsprite-cocoa_generator_7 { background-position: -1012px -660px}.sbsprite-cocoa_generator_6 { background-position: -1034px -660px}.sbsprite-rune_snow { background-position: 0 -682px}.sbsprite-cocoa_generator_9 { background-position: -22px -682px}.sbsprite-cocoa_generator_8 { background-position: -44px -682px}.sbsprite-cocoa_generator_3 { background-position: -66px -682px}.sbsprite-cocoa_generator_2 { background-position: -88px -682px}.sbsprite-cocoa_generator_5 { background-position: -110px -682px}.sbsprite-cocoa_generator_4 { background-position: -132px -682px}.sbsprite-spider_generator_6 { background-position: -154px -682px}.sbsprite-spider_generator_7 { background-position: -176px -682px}.sbsprite-spider_generator_8 { background-position: -198px -682px}.sbsprite-spider_generator_9 { background-position: -220px -682px}.sbsprite-brown_large_backpack { background-position: -242px -682px}.sbsprite-flower_maelstrom { background-position: -264px -682px}.sbsprite-pumpkin_generator_12 { background-position: -286px -682px}.sbsprite-coal_generator_9 { background-position: -308px -682px}.sbsprite-diamond_thorn_head { background-position: -330px -682px}.sbsprite-ender_stone_generator_11 { background-position: -352px -682px}.sbsprite-coal_generator_8 { background-position: -374px -682px}.sbsprite-ender_stone_generator_10 { background-position: -396px -682px}.sbsprite-coal_generator_7 { background-position: -418px -682px}.sbsprite-jerry_box_blue { background-position: -440px -682px}.sbsprite-coal_generator_6 { background-position: -462px -682px}.sbsprite-coal_generator_5 { background-position: -484px -682px}.sbsprite-pumpkin_generator_11 { background-position: -506px -682px}.sbsprite-coal_generator_4 { background-position: -528px -682px}.sbsprite-pumpkin_generator_10 { background-position: -550px -682px}.sbsprite-talisman_of_space { background-position: -572px -682px}.sbsprite-talisman_enrichment_strength { background-position: -594px -682px}.sbsprite-white_jumbo_backpack { background-position: -616px -682px}.sbsprite-full_fairy_control { background-position: -638px -682px}.sbsprite-quartz_generator_9 { background-position: -660px -682px}.sbsprite-rune_wake { background-position: -682px -682px}.sbsprite-quartz_generator_8 { background-position: -704px -682px}.sbsprite-festive_jerry_personality { background-position: -726px -682px}.sbsprite-quartz_generator_5 { background-position: -748px -682px}.sbsprite-builder_berry { background-position: -770px -682px}.sbsprite-quartz_generator_4 { background-position: -792px -682px}.sbsprite-quartz_generator_7 { background-position: -814px -682px}.sbsprite-quartz_generator_6 { background-position: -836px -682px}.sbsprite-quartz_generator_1 { background-position: -858px -682px}.sbsprite-quartz_generator_3 { background-position: -880px -682px}.sbsprite-quartz_generator_2 { background-position: -902px -682px}.sbsprite-bingo_heirloom { background-position: -924px -682px}.sbsprite-dwarf_turtle_shelmet { background-position: -946px -682px}.sbsprite-wolf_paw { background-position: -968px -682px}.sbsprite-jasper_crystal { background-position: -990px -682px}.sbsprite-party_hat_crab { background-position: -1012px -682px}.sbsprite-feather_artifact { background-position: -1034px -682px}.sbsprite-coal_generator_3 { background-position: 0 -704px}.sbsprite-coal_generator_2 { background-position: -22px -704px}.sbsprite-coal_generator_1 { background-position: -44px -704px}.sbsprite-fast_travel_gold { background-position: -66px -704px}.sbsprite-crystal_hollows_crystals { background-position: -88px -704px}.sbsprite-mining_island { background-position: -110px -704px}.sbsprite-flawless_jasper_gem { background-position: -132px -704px}.sbsprite-halloween_candles { background-position: -154px -704px}.sbsprite-ascension_rope { background-position: -176px -704px}.sbsprite-brown_small_backpack { background-position: -198px -704px}.sbsprite-diver_puffer { background-position: -220px -704px}.sbsprite-melon_generator_10 { background-position: -242px -704px}.sbsprite-melon_generator_12 { background-position: -264px -704px}.sbsprite-melon_generator_11 { background-position: -286px -704px}.sbsprite-desert_island { background-position: -308px -704px}.sbsprite-green { background-position: -330px -704px}.sbsprite-crystallized_heart { background-position: -352px -704px}.sbsprite-sinful_dice { background-position: -374px -704px}.sbsprite-soulflow_supercell { background-position: -396px -704px}.sbsprite-sea_creature_artifact { background-position: -418px -704px}.sbsprite-grey_small_backpack { background-position: -440px -704px}.sbsprite-aatrox_batphone { background-position: -462px -704px}.sbsprite-clay_generator_10 { background-position: -484px -704px}.sbsprite-clay_generator_11 { background-position: -506px -704px}.sbsprite-end_stone_personality { background-position: -528px -704px}.sbsprite-builder_banana_bunch { background-position: -550px -704px}.sbsprite-danger_2_portal { background-position: -572px -704px}.sbsprite-mayor_scorpius { background-position: -594px -704px}.sbsprite-voodoo { background-position: -616px -704px}.sbsprite-jerry_box_purple { background-position: -638px -704px}.sbsprite-wither_artifact { background-position: -660px -704px}.sbsprite-skull_chest { background-position: -682px -704px}.sbsprite-pet_skin_elephant_pink { background-position: -704px -704px}.sbsprite-oak_generator_10 { background-position: -726px -704px}.sbsprite-slime_generator_1 { background-position: -748px -704px}.sbsprite-slime_generator_2 { background-position: -770px -704px}.sbsprite-frozen_blaze_icicle { background-position: -792px -704px}.sbsprite-oak_generator_11 { background-position: -814px -704px}.sbsprite-slime_generator_5 { background-position: -836px -704px}.sbsprite-slime_generator_6 { background-position: -858px -704px}.sbsprite-slime_generator_3 { background-position: -880px -704px}.sbsprite-slime_generator_4 { background-position: -902px -704px}.sbsprite-slime_generator_9 { background-position: -924px -704px}.sbsprite-slime_generator_7 { background-position: -946px -704px}.sbsprite-slime_generator_8 { background-position: -968px -704px}.sbsprite-dungeon_golden_key { background-position: -990px -704px}.sbsprite-mender_fedora { background-position: -1012px -704px}.sbsprite-pet_skin_rock_smile { background-position: -1034px -704px}.sbsprite-builder_orange { background-position: 0 -726px}.sbsprite-ghast_generator_10 { background-position: -22px -726px}.sbsprite-beach_chair { background-position: -44px -726px}.sbsprite-ghast_generator_11 { background-position: -66px -726px}.sbsprite-boss { background-position: -88px -726px}.sbsprite-race_precursor_ruins { background-position: -110px -726px}.sbsprite-perfectly_cut_fuel_tank { background-position: -132px -726px}.sbsprite-ice_essence { background-position: -154px -726px}.sbsprite-jerry_box_green { background-position: -176px -726px}.sbsprite-fireplace { background-position: -198px -726px}.sbsprite-moldy_bread { background-position: -220px -726px}.sbsprite-pet_skin_tiger_saber_tooth { background-position: -242px -726px}.sbsprite-obsidian_generator_5 { background-position: -264px -726px}.sbsprite-obsidian_generator_4 { background-position: -286px -726px}.sbsprite-obsidian_generator_7 { background-position: -308px -726px}.sbsprite-obsidian_generator_6 { background-position: -330px -726px}.sbsprite-obsidian_generator_1 { background-position: -352px -726px}.sbsprite-obsidian_generator_3 { background-position: -374px -726px}.sbsprite-foraging_1_portal { background-position: -396px -726px}.sbsprite-obsidian_generator_2 { background-position: -418px -726px}.sbsprite-dungeon_stone_tank { background-position: -440px -726px}.sbsprite-obsidian_generator_9 { background-position: -462px -726px}.sbsprite-obsidian_generator_8 { background-position: -484px -726px}.sbsprite-pet_skin_sheep_light_green { background-position: -506px -726px}.sbsprite-decayed_bat { background-position: -528px -726px}.sbsprite-pet_skin_squid_glow { background-position: -550px -726px}.sbsprite-potato_generator_4 { background-position: -572px -726px}.sbsprite-potato_generator_5 { background-position: -594px -726px}.sbsprite-potato_generator_12 { background-position: -616px -726px}.sbsprite-potato_generator_6 { background-position: -638px -726px}.sbsprite-potato_generator_11 { background-position: -660px -726px}.sbsprite-potato_generator_7 { background-position: -682px -726px}.sbsprite-potato_generator_10 { background-position: -704px -726px}.sbsprite-potato_generator_8 { background-position: -726px -726px}.sbsprite-potato_generator_9 { background-position: -748px -726px}.sbsprite-slayer_energy_drink { background-position: -770px -726px}.sbsprite-arachne_keeper_fragment { background-position: -792px -726px}.sbsprite-cat_talisman { background-position: -814px -726px}.sbsprite-large_slayer_sack { background-position: -836px -726px}.sbsprite-rune_rainbow { background-position: -858px -726px}.sbsprite-potato_generator_1 { background-position: -880px -726px}.sbsprite-potato_generator_2 { background-position: -902px -726px}.sbsprite-potato_generator_3 { background-position: -924px -726px}.sbsprite-lime_large_backpack { background-position: -946px -726px}.sbsprite-bestiary_spiders_den { background-position: -968px -726px}.sbsprite-ruby_polished_drill_engine { background-position: -990px -726px}.sbsprite-yellow_jumbo_backpack { background-position: -1012px -726px}.sbsprite-pet_skin_dolphin_snubnose { background-position: -1034px -726px}.sbsprite-spider_egg_mixin { background-position: 0 -748px}.sbsprite-pet_skin_dragon_pastel { background-position: -22px -748px}.sbsprite-honed_shark_tooth_necklace { background-position: -44px -748px}.sbsprite-bob_omb { background-position: -66px -748px}.sbsprite-dungeon_wizard_crystal { background-position: -88px -748px}.sbsprite-barn_island { background-position: -110px -748px}.sbsprite-weapon_rack { background-position: -132px -748px}.sbsprite-shadow_assassin_crimson { background-position: -154px -748px}.sbsprite-small_talisman_bag { background-position: -176px -748px}.sbsprite-medium_combat_sack { background-position: -198px -748px}.sbsprite-bonzo_statue { background-position: -220px -748px}.sbsprite-zombie_artifact { background-position: -242px -748px}.sbsprite-cheese_hunter { background-position: -264px -748px}.sbsprite-hologram { background-position: -286px -748px}.sbsprite-ultrasequencer { background-position: -308px -748px}.sbsprite-wise_dragon_helmet { background-position: -330px -748px}.sbsprite-cyan_medium_backpack { background-position: -352px -748px}.sbsprite-light_grey_small_backpack { background-position: -374px -748px}.sbsprite-catacombs_pass_5 { background-position: -396px -748px}.sbsprite-catacombs_pass_4 { background-position: -418px -748px}.sbsprite-catacombs_pass_3 { background-position: -440px -748px}.sbsprite-magma_bucket_upgrade { background-position: -462px -748px}.sbsprite-catacombs_pass_2 { background-position: -484px -748px}.sbsprite-coin_redstone { background-position: -506px -748px}.sbsprite-catacombs_pass_1 { background-position: -528px -748px}.sbsprite-hermit_crab_10 { background-position: -550px -748px}.sbsprite-catacombs_pass_0 { background-position: -572px -748px}.sbsprite-hermit_crab_11 { background-position: -594px -748px}.sbsprite-dungeon_stone_mage { background-position: -616px -748px}.sbsprite-gingerbread_personality { background-position: -638px -748px}.sbsprite-titanium_drill_engine { background-position: -660px -748px}.sbsprite-catacombs_pass_9 { background-position: -682px -748px}.sbsprite-fast_travel_dragontail { background-position: -704px -748px}.sbsprite-catacombs_pass_8 { background-position: -726px -748px}.sbsprite-catacombs_pass_7 { background-position: -748px -748px}.sbsprite-reaper_spirit { background-position: -770px -748px}.sbsprite-catacombs_pass_6 { background-position: -792px -748px}.sbsprite-armor_of_the_resistance_helmet { background-position: -814px -748px}.sbsprite-orange_small_backpack { background-position: -836px -748px}.sbsprite-bait_ring { background-position: -858px -748px}.sbsprite-luck_talisman { background-position: -880px -748px}.sbsprite-beach_ball_11 { background-position: -902px -748px}.sbsprite-beach_ball_10 { background-position: -924px -748px}.sbsprite-shark_personality { background-position: -946px -748px}.sbsprite-coal_generator_11 { background-position: -968px -748px}.sbsprite-coal_generator_12 { background-position: -990px -748px}.sbsprite-fourth_master_star { background-position: -1012px -748px}.sbsprite-water_hydra_head { background-position: -1034px -748px}.sbsprite-coal_generator_10 { background-position: 0 -770px}.sbsprite-ice_dinner_table { background-position: -22px -770px}.sbsprite-talisman_enrichment_attack_speed { background-position: -44px -770px}.sbsprite-gemstone_fuel_tank { background-position: -66px -770px}.sbsprite-green_large_backpack { background-position: -88px -770px}.sbsprite-fairy_wings_charm { background-position: -110px -770px}.sbsprite-rare_diamond { background-position: -132px -770px}.sbsprite-bunny { background-position: -154px -770px}.sbsprite-storm_the_fish { background-position: -176px -770px}.sbsprite-penguin_personality { background-position: -198px -770px}.sbsprite-shark_1 { background-position: -220px -770px}.sbsprite-shard_of_the_shredded { background-position: -242px -770px}.sbsprite-shark_2 { background-position: -264px -770px}.sbsprite-sheep_generator_11 { background-position: -286px -770px}.sbsprite-diamonite { background-position: -308px -770px}.sbsprite-prehistoric_egg { background-position: -330px -770px}.sbsprite-shark_3 { background-position: -352px -770px}.sbsprite-sheep_generator_12 { background-position: -374px -770px}.sbsprite-shark_4 { background-position: -396px -770px}.sbsprite-shark_5 { background-position: -418px -770px}.sbsprite-shark_6 { background-position: -440px -770px}.sbsprite-shark_7 { background-position: -462px -770px}.sbsprite-shark_8 { background-position: -484px -770px}.sbsprite-shark_9 { background-position: -506px -770px}.sbsprite-bbq { background-position: -528px -770px}.sbsprite-pet_skin_sheep_white { background-position: -550px -770px}.sbsprite-sheep_generator_10 { background-position: -572px -770px}.sbsprite-rune_spirit { background-position: -594px -770px}.sbsprite-aote_stone { background-position: -616px -770px}.sbsprite-french_bread { background-position: -638px -770px}.sbsprite-ember_helmet { background-position: -660px -770px}.sbsprite-large_bed { background-position: -682px -770px}.sbsprite-builder_bush { background-position: -704px -770px}.sbsprite-talisman_enrichment_ferocity { background-position: -726px -770px}.sbsprite-fire_talisman { background-position: -748px -770px}.sbsprite-purple_candy { background-position: -770px -770px}.sbsprite-spider_talisman { background-position: -792px -770px}.sbsprite-intimidation_artifact { background-position: -814px -770px}.sbsprite-large_candy_sack { background-position: -836px -770px}.sbsprite-present_10 { background-position: -858px -770px}.sbsprite-present_11 { background-position: -880px -770px}.sbsprite-beach_ball_9 { background-position: -902px -770px}.sbsprite-tarantula_generator_10 { background-position: -924px -770px}.sbsprite-beach_ball_8 { background-position: -946px -770px}.sbsprite-gold_sadan_head { background-position: -968px -770px}.sbsprite-tarantula_generator_11 { background-position: -990px -770px}.sbsprite-large_enchanted_foraging_sack { background-position: -1012px -770px}.sbsprite-warrior_dungeon_ability_1 { background-position: -1034px -770px}.sbsprite-beach_ball_5 { background-position: 0 -792px}.sbsprite-beach_ball_4 { background-position: -22px -792px}.sbsprite-beach_ball_7 { background-position: -44px -792px}.sbsprite-cracked_piggy_bank { background-position: -66px -792px}.sbsprite-beach_ball_6 { background-position: -88px -792px}.sbsprite-ice_lolly_11 { background-position: -110px -792px}.sbsprite-ice_lolly_10 { background-position: -132px -792px}.sbsprite-razor_sharp_shark_tooth_necklace { background-position: -154px -792px}.sbsprite-farm_crystal { background-position: -176px -792px}.sbsprite-bank_upgrade_luxurious { background-position: -198px -792px}.sbsprite-large_fishing_sack { background-position: -220px -792px}.sbsprite-lime_small_backpack { background-position: -242px -792px}.sbsprite-portable_wool_weaver { background-position: -264px -792px}.sbsprite-beach_ball_1 { background-position: -286px -792px}.sbsprite-beach_ball_3 { background-position: -308px -792px}.sbsprite-beach_ball_2 { background-position: -330px -792px}.sbsprite-revive_stone_orb { background-position: -352px -792px}.sbsprite-fish_hat { background-position: -374px -792px}.sbsprite-skull_personality { background-position: -396px -792px}.sbsprite-builder_onion { background-position: -418px -792px}.sbsprite-melon_generator_3 { background-position: -440px -792px}.sbsprite-zombie_generator_9 { background-position: -462px -792px}.sbsprite-melon_generator_2 { background-position: -484px -792px}.sbsprite-melon_generator_1 { background-position: -506px -792px}.sbsprite-melon_generator_7 { background-position: -528px -792px}.sbsprite-zombie_generator_5 { background-position: -550px -792px}.sbsprite-melon_generator_6 { background-position: -572px -792px}.sbsprite-zombie_generator_6 { background-position: -594px -792px}.sbsprite-melon_generator_5 { background-position: -616px -792px}.sbsprite-zombie_generator_7 { background-position: -638px -792px}.sbsprite-melon_generator_4 { background-position: -660px -792px}.sbsprite-zombie_generator_8 { background-position: -682px -792px}.sbsprite-zombie_generator_1 { background-position: -704px -792px}.sbsprite-zombie_generator_2 { background-position: -726px -792px}.sbsprite-optical_lens { background-position: -748px -792px}.sbsprite-zombie_generator_3 { background-position: -770px -792px}.sbsprite-zombie_generator_4 { background-position: -792px -792px}.sbsprite-beach_umbrella { background-position: -814px -792px}.sbsprite-diamond_atom { background-position: -836px -792px}.sbsprite-coin_talisman { background-position: -858px -792px}.sbsprite-nether_island { background-position: -880px -792px}.sbsprite-rune_couture { background-position: -902px -792px}.sbsprite-fish_affinity_talisman { background-position: -924px -792px}.sbsprite-wedding_ring_4 { background-position: -946px -792px}.sbsprite-wedding_ring_5 { background-position: -968px -792px}.sbsprite-wedding_ring_6 { background-position: -990px -792px}.sbsprite-wedding_ring_7 { background-position: -1012px -792px}.sbsprite-wedding_ring_8 { background-position: -1034px -792px}.sbsprite-large_enchanted_combat_sack { background-position: 0 -814px}.sbsprite-wedding_ring_9 { background-position: -22px -814px}.sbsprite-rune_clouds { background-position: -44px -814px}.sbsprite-perfect_amber_gem { background-position: -66px -814px}.sbsprite-precursor_gear { background-position: -88px -814px}.sbsprite-wedding_ring_2 { background-position: -110px -814px}.sbsprite-wedding_ring_3 { background-position: -132px -814px}.sbsprite-rune_enchant { background-position: -154px -814px}.sbsprite-god_potion { background-position: -176px -814px}.sbsprite-rune_magical { background-position: -198px -814px}.sbsprite-pet_skin_monkey_golden { background-position: -220px -814px}.sbsprite-spiked_bait { background-position: -242px -814px}.sbsprite-ghost_11 { background-position: -264px -814px}.sbsprite-perfect_jasper_gem { background-position: -286px -814px}.sbsprite-quartz_generator_11 { background-position: -308px -814px}.sbsprite-sandcastle_1 { background-position: -330px -814px}.sbsprite-sandcastle_2 { background-position: -352px -814px}.sbsprite-pet_skin_sheep_pink { background-position: -374px -814px}.sbsprite-premium_flesh { background-position: -396px -814px}.sbsprite-sandcastle_5 { background-position: -418px -814px}.sbsprite-blessed_bait { background-position: -440px -814px}.sbsprite-sandcastle_6 { background-position: -462px -814px}.sbsprite-sandcastle_3 { background-position: -484px -814px}.sbsprite-sandcastle_4 { background-position: -506px -814px}.sbsprite-wise_wither_helmet { background-position: -528px -814px}.sbsprite-sandcastle_9 { background-position: -550px -814px}.sbsprite-quartz_generator_10 { background-position: -572px -814px}.sbsprite-sandcastle_7 { background-position: -594px -814px}.sbsprite-sandcastle_8 { background-position: -616px -814px}.sbsprite-mayor_cole { background-position: -638px -814px}.sbsprite-fifth_master_star { background-position: -660px -814px}.sbsprite-ghost_10 { background-position: -682px -814px}.sbsprite-young_shimmer { background-position: -704px -814px}.sbsprite-minion_chair { background-position: -726px -814px}.sbsprite-pig_mask { background-position: -748px -814px}.sbsprite-hyper_catalyst_upgrade { background-position: -770px -814px}.sbsprite-potion { background-position: -792px -814px}.sbsprite-exceedingly_rare_ender_artifact_upgrader { background-position: -814px -814px}.sbsprite-refined_titanium { background-position: -836px -814px}.sbsprite-sharp_shark_tooth_necklace { background-position: -858px -814px}.sbsprite-wreath { background-position: -880px -814px}.sbsprite-melon_generator_9 { background-position: -902px -814px}.sbsprite-melon_generator_8 { background-position: -924px -814px}.sbsprite-epoch_cake_pink { background-position: -946px -814px}.sbsprite-dungeon_stone_healer { background-position: -968px -814px}.sbsprite-young_baby { background-position: -990px -814px}.sbsprite-presents { background-position: -1012px -814px}.sbsprite-dark_oak_generator_5 { background-position: -1034px -814px}.sbsprite-dark_oak_generator_6 { background-position: 0 -836px}.sbsprite-large_enchanted_fishing_sack { background-position: -22px -836px}.sbsprite-radiant_power_orb { background-position: -44px -836px}.sbsprite-dark_oak_generator_3 { background-position: -66px -836px}.sbsprite-large_husbandry_sack { background-position: -88px -836px}.sbsprite-dark_oak_generator_4 { background-position: -110px -836px}.sbsprite-dark_oak_generator_9 { background-position: -132px -836px}.sbsprite-dark_oak_generator_7 { background-position: -154px -836px}.sbsprite-dark_oak_generator_8 { background-position: -176px -836px}.sbsprite-dark_oak_generator_1 { background-position: -198px -836px}.sbsprite-dark_oak_generator_2 { background-position: -220px -836px}.sbsprite-illusion_glass { background-position: -242px -836px}.sbsprite-iron_chest { background-position: -264px -836px}.sbsprite-festive_zombie_personality { background-position: -286px -836px}.sbsprite-frozen_blaze_helmet { background-position: -308px -836px}.sbsprite-fast_travel_nest { background-position: -330px -836px}.sbsprite-brown_greater_backpack { background-position: -352px -836px}.sbsprite-red_gift { background-position: -374px -836px}.sbsprite-builder_lemon { background-position: -396px -836px}.sbsprite-rune_hot { background-position: -418px -836px}.sbsprite-small_mining_sack { background-position: -440px -836px}.sbsprite-pet_skin_jerry_green_elf { background-position: -462px -836px}.sbsprite-amber_polished_drill_engine { background-position: -484px -836px}.sbsprite-pedestal { background-position: -506px -836px}.sbsprite-red_claw_artifact { background-position: -528px -836px}.sbsprite-zombie_generator_11 { background-position: -550px -836px}.sbsprite-zombie_generator_10 { background-position: -572px -836px}.sbsprite-wither_relic { background-position: -594px -836px}.sbsprite-spider_hat { background-position: -616px -836px}.sbsprite-sludge_juice { background-position: -638px -836px}.sbsprite-precursor_eye { background-position: -660px -836px}.sbsprite-fast_travel_scarleton { background-position: -682px -836px}.sbsprite-connect_four { background-position: -704px -836px}.sbsprite-sloth_3 { background-position: -726px -836px}.sbsprite-sloth_4 { background-position: -748px -836px}.sbsprite-pet_skin_enderman { background-position: -770px -836px}.sbsprite-sloth_1 { background-position: -792px -836px}.sbsprite-sloth_2 { background-position: -814px -836px}.sbsprite-rabbit_generator_9 { background-position: -836px -836px}.sbsprite-builder_chesto_berry { background-position: -858px -836px}.sbsprite-rabbit_generator_4 { background-position: -880px -836px}.sbsprite-sloth_7 { background-position: -902px -836px}.sbsprite-rabbit_generator_3 { background-position: -924px -836px}.sbsprite-sloth_8 { background-position: -946px -836px}.sbsprite-rabbit_generator_2 { background-position: -968px -836px}.sbsprite-sloth_5 { background-position: -990px -836px}.sbsprite-rabbit_generator_1 { background-position: -1012px -836px}.sbsprite-sloth_6 { background-position: -1034px -836px}.sbsprite-rabbit_generator_8 { background-position: 0 -858px}.sbsprite-lantern { background-position: -22px -858px}.sbsprite-rabbit_generator_7 { background-position: -44px -858px}.sbsprite-rabbit_generator_6 { background-position: -66px -858px}.sbsprite-sloth_9 { background-position: -88px -858px}.sbsprite-rabbit_generator_5 { background-position: -110px -858px}.sbsprite-clownfish_8 { background-position: -132px -858px}.sbsprite-clownfish_9 { background-position: -154px -858px}.sbsprite-clownfish_6 { background-position: -176px -858px}.sbsprite-clownfish_7 { background-position: -198px -858px}.sbsprite-clownfish_4 { background-position: -220px -858px}.sbsprite-clownfish_5 { background-position: -242px -858px}.sbsprite-mender_helmet { background-position: -264px -858px}.sbsprite-clownfish_2 { background-position: -286px -858px}.sbsprite-clownfish_3 { background-position: -308px -858px}.sbsprite-enderman_hat { background-position: -330px -858px}.sbsprite-superior_dragon_helmet { background-position: -352px -858px}.sbsprite-clownfish_1 { background-position: -374px -858px}.sbsprite-reset_heart_of_the_mountain { background-position: -396px -858px}.sbsprite-lapis_crystal { background-position: -418px -858px}.sbsprite-purple_jumbo_backpack { background-position: -440px -858px}.sbsprite-purple_large_backpack { background-position: -462px -858px}.sbsprite-dragon_claw { background-position: -484px -858px}.sbsprite-potato_talisman { background-position: -506px -858px}.sbsprite-nether_warts_generator_12 { background-position: -528px -858px}.sbsprite-nether_warts_generator_11 { background-position: -550px -858px}.sbsprite-nether_warts_generator_10 { background-position: -572px -858px}.sbsprite-yellow_medium_backpack { background-position: -594px -858px}.sbsprite-acacia_generator_9 { background-position: -616px -858px}.sbsprite-arachne_crystal { background-position: -638px -858px}.sbsprite-acacia_generator_8 { background-position: -660px -858px}.sbsprite-acacia_generator_7 { background-position: -682px -858px}.sbsprite-helix { background-position: -704px -858px}.sbsprite-acacia_generator_6 { background-position: -726px -858px}.sbsprite-mutant_nether_stalk { background-position: -748px -858px}.sbsprite-acacia_generator_5 { background-position: -770px -858px}.sbsprite-acacia_generator_4 { background-position: -792px -858px}.sbsprite-acacia_generator_3 { background-position: -814px -858px}.sbsprite-acacia_generator_2 { background-position: -836px -858px}.sbsprite-acacia_generator_1 { background-position: -858px -858px}.sbsprite-orange_greater_backpack { background-position: -880px -858px}.sbsprite-boss_collection_professor { background-position: -902px -858px}.sbsprite-soulflow_engine { background-position: -924px -858px}.sbsprite-armor_showcase { background-position: -946px -858px}.sbsprite-gingerbread_2 { background-position: -968px -858px}.sbsprite-gingerbread_1 { background-position: -990px -858px}.sbsprite-gingerbread_6 { background-position: -1012px -858px}.sbsprite-gingerbread_5 { background-position: -1034px -858px}.sbsprite-gingerbread_4 { background-position: 0 -880px}.sbsprite-small_backpack { background-position: -22px -880px}.sbsprite-gingerbread_3 { background-position: -44px -880px}.sbsprite-gingerbread_9 { background-position: -66px -880px}.sbsprite-gingerbread_8 { background-position: -88px -880px}.sbsprite-gingerbread_7 { background-position: -110px -880px}.sbsprite-small_fishing_sack { background-position: -132px -880px}.sbsprite-fast_travel_castle { background-position: -154px -880px}.sbsprite-glacite_jewel { background-position: -176px -880px}.sbsprite-medium_agronomy_sack { background-position: -198px -880px}.sbsprite-mining_fortune { background-position: -220px -880px}.sbsprite-pet_item_spooky_cupcake { background-position: -242px -880px}.sbsprite-red_medium_backpack { background-position: -264px -880px}.sbsprite-third_master_star { background-position: -286px -880px}.sbsprite-pet_skin_phoenix_ice { background-position: -308px -880px}.sbsprite-golem_hat { background-position: -330px -880px}.sbsprite-ghost_personality { background-position: -352px -880px}.sbsprite-epoch_cake_yellow { background-position: -374px -880px}.sbsprite-creeper_generator_11 { background-position: -396px -880px}.sbsprite-creeper_generator_10 { background-position: -418px -880px}.sbsprite-magenta_medium_backpack { background-position: -440px -880px}.sbsprite-pet_skin_elephant_green { background-position: -462px -880px}.sbsprite-soulflow_pile { background-position: -484px -880px}.sbsprite-pumpkin_personality { background-position: -506px -880px}.sbsprite-small_slayer_sack { background-position: -528px -880px}.sbsprite-poisoned_candle { background-position: -550px -880px}.sbsprite-bestiary_crimson_isle { background-position: -572px -880px}.sbsprite-ring_potion_affinity { background-position: -594px -880px}.sbsprite-rock_gemstone { background-position: -616px -880px}.sbsprite-blood_god_crest { background-position: -638px -880px}.sbsprite-judgement_core { background-position: -660px -880px}.sbsprite-rune_tidal { background-position: -682px -880px}.sbsprite-lava_talisman { background-position: -704px -880px}.sbsprite-revived_heart { background-position: -726px -880px}.sbsprite-killer_personality { background-position: -748px -880px}.sbsprite-snow_suit_helmet { background-position: -770px -880px}.sbsprite-blobfish_hat { background-position: -792px -880px}.sbsprite-stool { background-position: -814px -880px}.sbsprite-builder_blue_corn { background-position: -836px -880px}.sbsprite-pulpous_orange_juice { background-position: -858px -880px}.sbsprite-fast_travel_drag { background-position: -880px -880px}.sbsprite-tank_dungeon_ability_2 { background-position: -902px -880px}.sbsprite-tank_dungeon_ability_1 { background-position: -924px -880px}.sbsprite-treasure_talisman { background-position: -946px -880px}.sbsprite-bookcase { background-position: -968px -880px}.sbsprite-skeletor_helmet { background-position: -990px -880px}.sbsprite-unstable_baby { background-position: -1012px -880px}.sbsprite-large_combat_sack { background-position: -1034px -880px}.sbsprite-minos_relic { background-position: 0 -902px}.sbsprite-pet_item_bubblegum { background-position: -22px -902px}.sbsprite-small_xtree { background-position: -44px -902px}.sbsprite-epoch_cake_aqua { background-position: -66px -902px}.sbsprite-wither_blood { background-position: -88px -902px}.sbsprite-egg_hunt { background-position: -110px -902px}.sbsprite-rune_fire_spiral { background-position: -132px -902px}.sbsprite-wither_goggles { background-position: -154px -902px}.sbsprite-egg_stack { background-position: -176px -902px}.sbsprite-mummy_candle { background-position: -198px -902px}.sbsprite-enchanted_book_bundle_big_brain { background-position: -220px -902px}.sbsprite-builder_beetroot { background-position: -242px -902px}.sbsprite-rabbit_generator_11 { background-position: -264px -902px}.sbsprite-rabbit_generator_10 { background-position: -286px -902px}.sbsprite-rabbit_generator_12 { background-position: -308px -902px}.sbsprite-rotten_apple { background-position: -330px -902px}.sbsprite-etherwarp_merger { background-position: -352px -902px}.sbsprite-redstone_generator_11 { background-position: -374px -902px}.sbsprite-redstone_generator_10 { background-position: -396px -902px}.sbsprite-protector_baby { background-position: -418px -902px}.sbsprite-fast_travel_deep { background-position: -440px -902px}.sbsprite-polished_pumpkin { background-position: -462px -902px}.sbsprite-redstone_generator_12 { background-position: -484px -902px}.sbsprite-tic_tac_toe { background-position: -506px -902px}.sbsprite-foraging_2_portal { background-position: -528px -902px}.sbsprite-recombobulator_3000 { background-position: -550px -902px}.sbsprite-sand_generator_7 { background-position: -572px -902px}.sbsprite-sand_generator_8 { background-position: -594px -902px}.sbsprite-sand_generator_9 { background-position: -616px -902px}.sbsprite-scarecrow_personality { background-position: -638px -902px}.sbsprite-pet_skin_sheep_aqua { background-position: -660px -902px}.sbsprite-skull_10 { background-position: -682px -902px}.sbsprite-melon_personality { background-position: -704px -902px}.sbsprite-skull_11 { background-position: -726px -902px}.sbsprite-flawed_amethyst_gem { background-position: -748px -902px}.sbsprite-revive_stone { background-position: -770px -902px}.sbsprite-creeper_generator_9 { background-position: -792px -902px}.sbsprite-creeper_generator_8 { background-position: -814px -902px}.sbsprite-potato_basket { background-position: -836px -902px}.sbsprite-diamond_essence { background-position: -858px -902px}.sbsprite-creeper_generator_7 { background-position: -880px -902px}.sbsprite-creeper_generator_6 { background-position: -902px -902px}.sbsprite-creeper_generator_5 { background-position: -924px -902px}.sbsprite-creeper_generator_4 { background-position: -946px -902px}.sbsprite-creeper_generator_3 { background-position: -968px -902px}.sbsprite-creeper_generator_2 { background-position: -990px -902px}.sbsprite-sand_generator_1 { background-position: -1012px -902px}.sbsprite-creeper_generator_1 { background-position: -1034px -902px}.sbsprite-sand_generator_2 { background-position: 0 -924px}.sbsprite-sand_generator_3 { background-position: -22px -924px}.sbsprite-sand_generator_4 { background-position: -44px -924px}.sbsprite-sand_generator_5 { background-position: -66px -924px}.sbsprite-jerry_box_golden { background-position: -88px -924px}.sbsprite-sand_generator_6 { background-position: -110px -924px}.sbsprite-seal_of_the_family { background-position: -132px -924px}.sbsprite-gemstone_chamber { background-position: -154px -924px}.sbsprite-aqua { background-position: -176px -924px}.sbsprite-ice_hunk { background-position: -198px -924px}.sbsprite-crystal_ball { background-position: -220px -924px}.sbsprite-ice_chair { background-position: -242px -924px}.sbsprite-sandcastle_11 { background-position: -264px -924px}.sbsprite-sandcastle_10 { background-position: -286px -924px}.sbsprite-furnace_plus { background-position: -308px -924px}.sbsprite-pig_generator_12 { background-position: -330px -924px}.sbsprite-pig_generator_11 { background-position: -352px -924px}.sbsprite-pig_generator_10 { background-position: -374px -924px}.sbsprite-nether_artifact { background-position: -396px -924px}.sbsprite-chicken_generator_1 { background-position: -418px -924px}.sbsprite-sniper_helmet { background-position: -440px -924px}.sbsprite-chicken_generator_4 { background-position: -462px -924px}.sbsprite-chicken_generator_5 { background-position: -484px -924px}.sbsprite-heat_core { background-position: -506px -924px}.sbsprite-chicken_generator_2 { background-position: -528px -924px}.sbsprite-wishing_compass { background-position: -550px -924px}.sbsprite-chicken_generator_3 { background-position: -572px -924px}.sbsprite-desk { background-position: -594px -924px}.sbsprite-white_large_backpack { background-position: -616px -924px}.sbsprite-hub_portal { background-position: -638px -924px}.sbsprite-spruce_generator_10 { background-position: -660px -924px}.sbsprite-spruce_generator_11 { background-position: -682px -924px}.sbsprite-chicken_generator_8 { background-position: -704px -924px}.sbsprite-mithril_generator_9 { background-position: -726px -924px}.sbsprite-scarf_thesis { background-position: -748px -924px}.sbsprite-chicken_generator_9 { background-position: -770px -924px}.sbsprite-mithril_generator_8 { background-position: -792px -924px}.sbsprite-fast_travel_da { background-position: -814px -924px}.sbsprite-chicken_generator_6 { background-position: -836px -924px}.sbsprite-mithril_generator_7 { background-position: -858px -924px}.sbsprite-zombie_ring { background-position: -880px -924px}.sbsprite-chicken_generator_7 { background-position: -902px -924px}.sbsprite-mithril_generator_6 { background-position: -924px -924px}.sbsprite-wood_chest { background-position: -946px -924px}.sbsprite-glowstone_generator_8 { background-position: -968px -924px}.sbsprite-mithril_generator_1 { background-position: -990px -924px}.sbsprite-pink_bunny_12 { background-position: -1012px -924px}.sbsprite-purple_medium_backpack { background-position: -1034px -924px}.sbsprite-glowstone_generator_7 { background-position: 0 -946px}.sbsprite-pink_bunny_11 { background-position: -22px -946px}.sbsprite-pink_bunny_10 { background-position: -44px -946px}.sbsprite-glowstone_generator_9 { background-position: -66px -946px}.sbsprite-glowstone_generator_4 { background-position: -88px -946px}.sbsprite-mithril_generator_5 { background-position: -110px -946px}.sbsprite-glowstone_generator_3 { background-position: -132px -946px}.sbsprite-mithril_generator_4 { background-position: -154px -946px}.sbsprite-glowstone_generator_6 { background-position: -176px -946px}.sbsprite-mithril_generator_3 { background-position: -198px -946px}.sbsprite-glowstone_generator_5 { background-position: -220px -946px}.sbsprite-mithril_generator_2 { background-position: -242px -946px}.sbsprite-very_official_yellow_rock { background-position: -264px -946px}.sbsprite-bat_person_talisman { background-position: -286px -946px}.sbsprite-cyan_large_backpack { background-position: -308px -946px}.sbsprite-fairy_soul { background-position: -330px -946px}.sbsprite-ghost_8 { background-position: -352px -946px}.sbsprite-ghost_9 { background-position: -374px -946px}.sbsprite-power_talisman { background-position: -396px -946px}.sbsprite-ghost_4 { background-position: -418px -946px}.sbsprite-decent_coffee { background-position: -440px -946px}.sbsprite-ghost_5 { background-position: -462px -946px}.sbsprite-ember_fragment { background-position: -484px -946px}.sbsprite-ghost_6 { background-position: -506px -946px}.sbsprite-ghost_7 { background-position: -528px -946px}.sbsprite-dull_shark_tooth_necklace { background-position: -550px -946px}.sbsprite-ghost_1 { background-position: -572px -946px}.sbsprite-ghost_2 { background-position: -594px -946px}.sbsprite-ghost_3 { background-position: -616px -946px}.sbsprite-gold_gift { background-position: -638px -946px}.sbsprite-tank_wither_helmet { background-position: -660px -946px}.sbsprite-spider_ring { background-position: -682px -946px}.sbsprite-santa_10 { background-position: -704px -946px}.sbsprite-santa_11 { background-position: -726px -946px}.sbsprite-yellow_greater_backpack { background-position: -748px -946px}.sbsprite-sapphire_crystal { background-position: -770px -946px}.sbsprite-mayor_foxy { background-position: -792px -946px}.sbsprite-starred_shadow_assassin_helmet { background-position: -814px -946px}.sbsprite-god_potion_2 { background-position: -836px -946px}.sbsprite-goblin_helmet { background-position: -858px -946px}.sbsprite-diamond_generator_5 { background-position: -880px -946px}.sbsprite-lesser_orb_of_healing { background-position: -902px -946px}.sbsprite-diamond_generator_6 { background-position: -924px -946px}.sbsprite-diamond_generator_3 { background-position: -946px -946px}.sbsprite-pet_skin_jerry_red_elf { background-position: -968px -946px}.sbsprite-diamond_generator_4 { background-position: -990px -946px}.sbsprite-lady_bug_10 { background-position: -1012px -946px}.sbsprite-diamond_generator_1 { background-position: -1034px -946px}.sbsprite-star_decorations { background-position: 0 -968px}.sbsprite-diamond_generator_2 { background-position: -22px -968px}.sbsprite-bingo_artifact { background-position: -44px -968px}.sbsprite-diamond_generator_9 { background-position: -66px -968px}.sbsprite-lady_bug_11 { background-position: -88px -968px}.sbsprite-diamond_generator_7 { background-position: -110px -968px}.sbsprite-diamond_generator_8 { background-position: -132px -968px}.sbsprite-heart_of_the_mountain { background-position: -154px -968px}.sbsprite-glowstone_generator_2 { background-position: -176px -968px}.sbsprite-glowstone_generator_1 { background-position: -198px -968px}.sbsprite-pink_donut_personality { background-position: -220px -968px}.sbsprite-artifact_of_space { background-position: -242px -968px}.sbsprite-lesser_soulflow_engine { background-position: -264px -968px}.sbsprite-mithril_crystal { background-position: -286px -968px}.sbsprite-young_fragment { background-position: -308px -968px}.sbsprite-master_catacombs_pass_10 { background-position: -330px -968px}.sbsprite-flying_bats { background-position: -352px -968px}.sbsprite-light_blue_medium_backpack { background-position: -374px -968px}.sbsprite-fast_travel_hub { background-position: -396px -968px}.sbsprite-pumpkin_generator_2 { background-position: -418px -968px}.sbsprite-pumpkin_generator_1 { background-position: -440px -968px}.sbsprite-pumpkin_generator_4 { background-position: -462px -968px}.sbsprite-end_helmet { background-position: -484px -968px}.sbsprite-pumpkin_generator_3 { background-position: -506px -968px}.sbsprite-pumpkin_generator_6 { background-position: -528px -968px}.sbsprite-titanium_talisman { background-position: -550px -968px}.sbsprite-pumpkin_generator_5 { background-position: -572px -968px}.sbsprite-reaper_gem { background-position: -594px -968px}.sbsprite-rune_zap { background-position: -616px -968px}.sbsprite-pumpkin_generator_8 { background-position: -638px -968px}.sbsprite-pumpkin_generator_7 { background-position: -660px -968px}.sbsprite-pumpkin_generator_9 { background-position: -682px -968px}.sbsprite-crooked_artifact { background-position: -704px -968px}.sbsprite-haste_ring { background-position: -726px -968px}.sbsprite-soulflow_battery { background-position: -748px -968px}.sbsprite-medium_mining_sack { background-position: -770px -968px}.sbsprite-skull_1 { background-position: -792px -968px}.sbsprite-coffin { background-position: -814px -968px}.sbsprite-chest_shelves { background-position: -836px -968px}.sbsprite-power_ring { background-position: -858px -968px}.sbsprite-white_medium_backpack { background-position: -880px -968px}.sbsprite-divan_fragment { background-position: -902px -968px}.sbsprite-skull_8 { background-position: -924px -968px}.sbsprite-gold_essence { background-position: -946px -968px}.sbsprite-skull_9 { background-position: -968px -968px}.sbsprite-skull_6 { background-position: -990px -968px}.sbsprite-skull_7 { background-position: -1012px -968px}.sbsprite-skull_4 { background-position: -1034px -968px}.sbsprite-skull_5 { background-position: 0 -990px}.sbsprite-skull_2 { background-position: -22px -990px}.sbsprite-skull_3 { background-position: -44px -990px}.sbsprite-black_jumbo_backpack { background-position: -66px -990px}.sbsprite-fast_travel_mines { background-position: -88px -990px}.sbsprite-skull_vase { background-position: -110px -990px}.sbsprite-fishing_generator_8 { background-position: -132px -990px}.sbsprite-fishing_generator_7 { background-position: -154px -990px}.sbsprite-fishing_generator_6 { background-position: -176px -990px}.sbsprite-fishing_generator_5 { background-position: -198px -990px}.sbsprite-fishing_generator_4 { background-position: -220px -990px}.sbsprite-lime_jumbo_backpack { background-position: -242px -990px}.sbsprite-fishing_generator_3 { background-position: -264px -990px}.sbsprite-fishing_generator_2 { background-position: -286px -990px}.sbsprite-fishing_generator_1 { background-position: -308px -990px}.sbsprite-fishing_generator_9 { background-position: -330px -990px}.sbsprite-yellow_large_backpack { background-position: -352px -990px}.sbsprite-amber_crystal { background-position: -374px -990px}.sbsprite-suspicious_vial { background-position: -396px -990px}.sbsprite-campfire { background-position: -418px -990px}.sbsprite-snow_generator_4 { background-position: -440px -990px}.sbsprite-snow_generator_5 { background-position: -462px -990px}.sbsprite-ring_of_space { background-position: -484px -990px}.sbsprite-snow_generator_6 { background-position: -506px -990px}.sbsprite-talisman_enrichment_walk_speed { background-position: -528px -990px}.sbsprite-snow_generator_7 { background-position: -550px -990px}.sbsprite-snow_generator_1 { background-position: -572px -990px}.sbsprite-snow_generator_2 { background-position: -594px -990px}.sbsprite-snow_generator_3 { background-position: -616px -990px}.sbsprite-lime_medium_backpack { background-position: -638px -990px}.sbsprite-end_stone_1 { background-position: -660px -990px}.sbsprite-strong_fragment { background-position: -682px -990px}.sbsprite-small_foraging_sack { background-position: -704px -990px}.sbsprite-synthetic_heart { background-position: -726px -990px}.sbsprite-end_stone_4 { background-position: -748px -990px}.sbsprite-diamond_sadan_head { background-position: -770px -990px}.sbsprite-end_stone_5 { background-position: -792px -990px}.sbsprite-end_stone_2 { background-position: -814px -990px}.sbsprite-end_stone_3 { background-position: -836px -990px}.sbsprite-diamond_bonzo_head { background-position: -858px -990px}.sbsprite-end_stone_8 { background-position: -880px -990px}.sbsprite-end_stone_9 { background-position: -902px -990px}.sbsprite-end_stone_6 { background-position: -924px -990px}.sbsprite-end_stone_7 { background-position: -946px -990px}.sbsprite-snow_generator_8 { background-position: -968px -990px}.sbsprite-snow_generator_9 { background-position: -990px -990px}.sbsprite-ender_stone_generator_4 { background-position: -1012px -990px}.sbsprite-epoch_cake_blue { background-position: -1034px -990px}.sbsprite-sand_generator_10 { background-position: 0 -1012px}.sbsprite-ender_stone_generator_3 { background-position: -22px -1012px}.sbsprite-sand_generator_11 { background-position: -44px -1012px}.sbsprite-ender_stone_generator_2 { background-position: -66px -1012px}.sbsprite-ender_stone_generator_1 { background-position: -88px -1012px}.sbsprite-pet_skin_sheep_neon_yellow { background-position: -110px -1012px}.sbsprite-fast_travel_spider { background-position: -132px -1012px}.sbsprite-pet_skin_sheep_blue { background-position: -154px -1012px}.sbsprite-epoch_cake_black { background-position: -176px -1012px}.sbsprite-wise_baby { background-position: -198px -1012px}.sbsprite-chronomatron { background-position: -220px -1012px}.sbsprite-scarf_grimoire { background-position: -242px -1012px}.sbsprite-bestiary_hub { background-position: -264px -1012px}.sbsprite-ender_stone_generator_9 { background-position: -286px -1012px}.sbsprite-ender_stone_generator_8 { background-position: -308px -1012px}.sbsprite-ender_stone_generator_7 { background-position: -330px -1012px}.sbsprite-ender_stone_generator_6 { background-position: -352px -1012px}.sbsprite-ender_stone_generator_5 { background-position: -374px -1012px}.sbsprite-small_gemstone_sack { background-position: -396px -1012px}.sbsprite-flawless_ruby_gem { background-position: -418px -1012px}.sbsprite-gold_necron_head { background-position: -440px -1012px}.sbsprite-small_husbandry_sack { background-position: -462px -1012px}.sbsprite-reaper_orb { background-position: -484px -1012px}.sbsprite-blaze_helmet { background-position: -506px -1012px}.sbsprite-bee_personality { background-position: -528px -1012px}.sbsprite-fishing { background-position: -550px -1012px}.sbsprite-titanium_ring { background-position: -572px -1012px}.sbsprite-lime { background-position: -594px -1012px}.sbsprite-feather_talisman { background-position: -616px -1012px}.sbsprite-rough_jasper_gem { background-position: -638px -1012px}.sbsprite-goblin_omelette_spicy { background-position: -660px -1012px}.sbsprite-gold_generator_11 { background-position: -682px -1012px}.sbsprite-gold_generator_10 { background-position: -704px -1012px}.sbsprite-gold_generator_12 { background-position: -726px -1012px}.sbpet-sheep_green { background-position: 0 0}.sbpet-sheep_yellow { background-position: -20px 0}.sbpet-bal { background-position: -40px 0}.sbpet-grandma_wolf { background-position: -60px 0}.sbpet-sheep_orange { background-position: -80px 0}.sbpet-sheep_red { background-position: -100px 0}.sbpet-bat { background-position: -120px 0}.sbpet-elephant_red { background-position: -140px 0}.sbpet-rabbit { background-position: -160px 0}.sbpet-megalodon_baby { background-position: -180px 0}.sbpet-silverfish { background-position: -200px 0}.sbpet-ghoul { background-position: -220px 0}.sbpet-pigman { background-position: 0 -22px}.sbpet-elephant_orange { background-position: -20px -22px}.sbpet-jerry { background-position: -40px -22px}.sbpet-sheep_neon_yellow { background-position: -60px -22px}.sbpet-rat { background-position: -80px -22px}.sbpet-tiger { background-position: -100px -22px}.sbpet-lion { background-position: -120px -22px}.sbpet-horse { background-position: -140px -22px}.sbpet-sheep_neon_green { background-position: -160px -22px}.sbpet-giraffe { background-position: -180px -22px}.sbpet-black_cat_ivory { background-position: -200px -22px}.sbpet-golden_dragon { background-position: -220px -22px}.sbpet-rock_derp { background-position: 0 -44px}.sbpet-parrot { background-position: -20px -44px}.sbpet-sheep_blue { background-position: -40px -44px}.sbpet-monkey_golden { background-position: -60px -44px}.sbpet-jellyfish { background-position: -80px -44px}.sbpet-horse_zombie { background-position: -100px -44px}.sbpet-sheep_purple { background-position: -120px -44px}.sbpet-elephant_purple { background-position: -140px -44px}.sbpet-endermite_radiant { background-position: -160px -44px}.sbpet-rock { background-position: -180px -44px}.sbpet-default { background-position: -200px -44px}.sbpet-blaze { background-position: -220px -44px}.sbpet-endermite { background-position: 0 -66px}.sbpet-megalodon_bullhead { background-position: -20px -66px}.sbpet-hound_beagle { background-position: -40px -66px}.sbpet-zombie { background-position: -60px -66px}.sbpet-guardian { background-position: -80px -66px}.sbpet-scatha { background-position: -100px -66px}.sbpet-wolf { background-position: -120px -66px}.sbpet-rabbit_aquamarine { background-position: -140px -66px}.sbpet-spirit { background-position: -160px -66px}.sbpet-hound { background-position: -180px -66px}.sbpet-dragon_neon_purple { background-position: -200px -66px}.sbpet-tiger_twilight { background-position: -220px -66px}.sbpet-sheep_light_green { background-position: 0 -88px}.sbpet-monkey_gorilla { background-position: -20px -88px}.sbpet-spider { background-position: -40px -88px}.sbpet-mithril_golem { background-position: -60px -88px}.sbpet-dolphin_snubnose { background-position: -80px -88px}.sbpet-snowman { background-position: -100px -88px}.sbpet-bee { background-position: -120px -88px}.sbpet-monkey { background-position: -140px -88px}.sbpet-jerry_red_elf { background-position: -160px -88px}.sbpet-elephant_pink { background-position: -180px -88px}.sbpet-sheep_brown { background-position: -200px -88px}.sbpet-magma_cube { background-position: -220px -88px}.sbpet-pig { background-position: 0 -110px}.sbpet-blue_whale { background-position: -20px -110px}.sbpet-skeleton { background-position: -40px -110px}.sbpet-phoenix_ice { background-position: -60px -110px}.sbpet-ammonite { background-position: -80px -110px}.sbpet-elephant_green { background-position: -100px -110px}.sbpet-armadillo { background-position: -120px -110px}.sbpet-dolphin { background-position: -140px -110px}.sbpet-turtle { background-position: -160px -110px}.sbpet-dragon_neon_red { background-position: -180px -110px}.sbpet-tiger_saber_tooth { background-position: -200px -110px}.sbpet-wither_skeleton { background-position: -220px -110px}.sbpet-parrot_blue_macaw { background-position: 0 -132px}.sbpet-ocelot { background-position: -20px -132px}.sbpet-sheep_light_gray { background-position: -40px -132px}.sbpet-elephant_blue { background-position: -60px -132px}.sbpet-chicken_baby_chick { background-position: -80px -132px}.sbpet-rock_thinking { background-position: -100px -132px}.sbpet-enderman_slayer { background-position: -120px -132px}.sbpet-ender_dragon { background-position: -140px -132px}.sbpet-rabbit_rose { background-position: -160px -132px}.sbpet-sheep_white { background-position: -180px -132px}.sbpet-silverfish_fossilized { background-position: -200px -132px}.sbpet-squid { background-position: -220px -132px}.sbpet-sheep_light_blue { background-position: 0 -154px}.sbpet-elephant { background-position: -20px -154px}.sbpet-golden_dragon_egg { background-position: -40px -154px}.sbpet-enderman { background-position: -60px -154px}.sbpet-chicken { background-position: -80px -154px}.sbpet-parrot_gold_macaw { background-position: -100px -154px}.sbpet-sheep_gray { background-position: -120px -154px}.sbpet-rock_cool { background-position: -140px -154px}.sbpet-rock_laugh { background-position: -160px -154px}.sbpet-sheep_black { background-position: -180px -154px}.sbpet-sheep_neon_blue { background-position: -200px -154px}.sbpet-rock_embarrassed { background-position: -220px -154px}.sbpet-dragon_neon_blue { background-position: 0 -176px}.sbpet-sheep { background-position: -20px -176px}.sbpet-baby_yeti { background-position: -40px -176px}.sbpet-sheep_aqua { background-position: -60px -176px}.sbpet-sheep_pink { background-position: -80px -176px}.sbpet-elephant_monochrome { background-position: -100px -176px}.sbpet-wolf_henzo_doggo { background-position: -120px -176px}.sbpet-squid_glow { background-position: -140px -176px}.sbpet-flying_fish { background-position: -160px -176px}.sbpet-griffin { background-position: -180px -176px}.sbpet-jerry_green_elf { background-position: -200px -176px}.sbpet-dragon_pastel { background-position: -220px -176px}.sbpet-sheep_neon_red { background-position: 0 -198px}.sbpet-sheep_magenta { background-position: -20px -198px}.sbpet-skeleton_horse { background-position: -40px -198px}.sbpet-megalodon { background-position: -60px -198px}.sbpet-lion_lioness { background-position: -80px -198px}.sbpet-tarantula { background-position: -100px -198px}.sbpet-yeti_grown_up { background-position: -120px -198px}.sbpet-phoenix { background-position: -140px -198px}.sbpet-golem { background-position: -160px -198px}.sbpet-black_cat { background-position: -180px -198px}.sbpet-whale_orca { background-position: -200px -198px}.sbpet-rock_smile { background-position: -220px -198px}.sbpet-wither { background-position: 0 -220px}.sbpet-black_cat_onyx { background-position: -20px -220px}.sbspray-AngryTurkey { background-position: 0 0}.sbspray-AnotherDimension { background-position: -128px 0}.sbspray-BlueArrowE { background-position: -256px 0}.sbspray-BlueArrowN { background-position: -384px 0}.sbspray-BlueArrowNE { background-position: -512px 0}.sbspray-BlueArrowNW { background-position: -640px 0}.sbspray-BlueArrowS { background-position: -768px 0}.sbspray-BlueArrowSE { background-position: -896px 0}.sbspray-BlueArrowSW { background-position: -1024px 0}.sbspray-BlueArrowW { background-position: -1152px 0}.sbspray-Bonzo { background-position: 0 -128px}.sbspray-Boom { background-position: -128px -128px}.sbspray-BunnyGG { background-position: -256px -128px}.sbspray-ChestGlow { background-position: -384px -128px}.sbspray-Chill { background-position: -512px -128px}.sbspray-Chimney { background-position: -640px -128px}.sbspray-ChocolateFeast { background-position: -768px -128px}.sbspray-ChristmasTree { background-position: -896px -128px}.sbspray-Coconut { background-position: -1024px -128px}.sbspray-Creeper { background-position: -1152px -128px}.sbspray-EasterBasket { background-position: 0 -256px}.sbspray-EasterCreeper { background-position: -128px -256px}.sbspray-EasterEggs { background-position: -256px -256px}.sbspray-Eek { background-position: -384px -256px}.sbspray-EggHunt { background-position: -512px -256px}.sbspray-EggSurprise { background-position: -640px -256px}.sbspray-Faboolous { background-position: -768px -256px}.sbspray-FarmingArrowE { background-position: -896px -256px}.sbspray-FarmingArrowN { background-position: -1024px -256px}.sbspray-FarmingArrowS { background-position: -1152px -256px}.sbspray-FarmingArrowW { background-position: 0 -384px}.sbspray-FoundU { background-position: -128px -384px}.sbspray-Garlic { background-position: -256px -384px}.sbspray-GenericArmor { background-position: -384px -384px}.sbspray-GenericBooks { background-position: -512px -384px}.sbspray-GenericFishing { background-position: -640px -384px}.sbspray-GenericMob { background-position: -768px -384px}.sbspray-GenericOres { background-position: -896px -384px}.sbspray-GenericPotions { background-position: -1024px -384px}.sbspray-GenericWeapons { background-position: -1152px -384px}.sbspray-GoldenEgg { background-position: 0 -512px}.sbspray-Heart { background-position: -128px -512px}.sbspray-Hypixel { background-position: -256px -512px}.sbspray-HypixelDark { background-position: -384px -512px}.sbspray-IceCream { background-position: -512px -512px}.sbspray-Kite { background-position: -640px -512px}.sbspray-LetUsIn { background-position: -768px -512px}.sbspray-Lifebelt { background-position: -896px -512px}.sbspray-MinionAnimals { background-position: -1024px -512px}.sbspray-MinionFarming { background-position: -1152px -512px}.sbspray-MinionForaging { background-position: 0 -640px}.sbspray-MinionMining { background-position: -128px -640px}.sbspray-MinionMisc { background-position: -256px -640px}.sbspray-MinionMonsters { background-position: -384px -640px}.sbspray-OnFire { background-position: -512px -640px}.sbspray-Porkchop { background-position: -640px -640px}.sbspray-PortalArrowE { background-position: -768px -640px}.sbspray-PortalArrowN { background-position: -896px -640px}.sbspray-PortalArrowS { background-position: -1024px -640px}.sbspray-PortalArrowW { background-position: -1152px -640px}.sbspray-Presents { background-position: 0 -768px}.sbspray-Puffer { background-position: -128px -768px}.sbspray-PuppySurprise { background-position: -256px -768px}.sbspray-RabbitCostume { background-position: -384px -768px}.sbspray-RedArrowE { background-position: -512px -768px}.sbspray-RedArrowN { background-position: -640px -768px}.sbspray-RedArrowNE { background-position: -768px -768px}.sbspray-RedArrowNW { background-position: -896px -768px}.sbspray-RedArrowS { background-position: -1024px -768px}.sbspray-RedArrowSE { background-position: -1152px -768px}.sbspray-RedArrowSW { background-position: 0 -896px}.sbspray-RedArrowW { background-position: -128px -896px}.sbspray-SandCastleH { background-position: -256px -896px}.sbspray-Sandcastle { background-position: -384px -896px}.sbspray-SantaJerry { background-position: -512px -896px}.sbspray-SantaSlips { background-position: -640px -896px}.sbspray-Sign { background-position: -768px -896px}.sbspray-SkyBlockChristmas { background-position: -896px -896px}.sbspray-SniperSnowball { background-position: -1024px -896px}.sbspray-Snowball { background-position: -1152px -896px}.sbspray-StorageArrowE { background-position: 0 -1024px}.sbspray-StorageArrowN { background-position: -128px -1024px}.sbspray-StorageArrowS { background-position: -256px -1024px}.sbspray-StorageArrowW { background-position: -384px -1024px}.sbspray-Surfing { background-position: -512px -1024px}.sbspray-TheWrongEggs { background-position: -640px -1024px}.sbspray-Trap { background-position: -768px -1024px}.sbspray-TrickOrTreat { background-position: -896px -1024px}.sbspray-UndeadJerry { background-position: -1024px -1024px}.sbspray-Volleyball { background-position: -1152px -1024px}.sbspray-Watcher { background-position: 0 -1152px}.sbspray-Whoosh { background-position: -128px -1152px}.sbspray-WitchPlease { background-position: -256px -1152px}.sbspray-Wreath { background-position: -384px -1152px}.sbspray-YellowArrowE { background-position: -512px -1152px}.sbspray-YellowArrowN { background-position: -640px -1152px}.sbspray-YellowArrowNE { background-position: -768px -1152px}.sbspray-YellowArrowNW { background-position: -896px -1152px}.sbspray-YellowArrowS { background-position: -1024px -1152px}.sbspray-YellowArrowSE { background-position: -1152px -1152px}.sbspray-YellowArrowSW { background-position: -1280px 0}.sbspray-YellowArrowW { background-position: -1280px -128px}.mcsprite-acacia_boat { background-position: 0 0}.mcsprite-acacia_button { background-position: -32px 0}.mcsprite-acacia_door { background-position: -64px 0}.mcsprite-acacia_fence { background-position: -96px 0}.mcsprite-acacia_fence_gate { background-position: -128px 0}.mcsprite-acacia_leaves { background-position: -160px 0}.mcsprite-acacia_log { background-position: -192px 0}.mcsprite-acacia_planks { background-position: -224px 0}.mcsprite-acacia_pressure_plate { background-position: -256px 0}.mcsprite-acacia_sapling { background-position: -288px 0}.mcsprite-acacia_sign { background-position: -320px 0}.mcsprite-acacia_slab { background-position: -352px 0}.mcsprite-acacia_stairs { background-position: -384px 0}.mcsprite-acacia_trapdoor { background-position: -416px 0}.mcsprite-acacia_wood { background-position: -448px 0}.mcsprite-acacia_wood_button { background-position: -480px 0}.mcsprite-acacia_wood_door { background-position: -512px 0}.mcsprite-acacia_wood_fence { background-position: -544px 0}.mcsprite-acacia_wood_fence_gate { background-position: -576px 0}.mcsprite-acacia_wood_planks { background-position: -608px 0}.mcsprite-acacia_wood_pressure_plate { background-position: -640px 0}.mcsprite-acacia_wood_sign { background-position: -672px 0}.mcsprite-acacia_wood_slab { background-position: -704px 0}.mcsprite-acacia_wood_stairs { background-position: -736px 0}.mcsprite-acacia_wood_trapdoor { background-position: -768px 0}.mcsprite-activator_rail { background-position: -800px 0}.mcsprite-adult_carrots { background-position: -832px 0}.mcsprite-adult_nether_warts { background-position: -864px 0}.mcsprite-adult_potatoes { background-position: -896px 0}.mcsprite-adult_wheat_crops { background-position: -928px 0}.mcsprite-air { background-position: -960px 0}.mcsprite-allium { background-position: -992px 0}.mcsprite-amethyst_cluster { background-position: -1024px 0}.mcsprite-amethyst_shard { background-position: -1056px 0}.mcsprite-ancient_debris { background-position: -1088px 0}.mcsprite-andesite { background-position: -1120px 0}.mcsprite-andesite_slab { background-position: -1152px 0}.mcsprite-andesite_stairs { background-position: -1184px 0}.mcsprite-andesite_wall { background-position: -1216px 0}.mcsprite-anvil { background-position: -1248px 0}.mcsprite-apple { background-position: 0 -32px}.mcsprite-armor_stand { background-position: -32px -32px}.mcsprite-arrow { background-position: -64px -32px}.mcsprite-arrow_loaded_crossbow { background-position: -96px -32px}.mcsprite-arrow_of_decay { background-position: -128px -32px}.mcsprite-arrow_of_fire_resistance { background-position: -160px -32px}.mcsprite-arrow_of_harming { background-position: -192px -32px}.mcsprite-arrow_of_healing { background-position: -224px -32px}.mcsprite-arrow_of_invisibility { background-position: -256px -32px}.mcsprite-arrow_of_leaping { background-position: -288px -32px}.mcsprite-arrow_of_luck { background-position: -320px -32px}.mcsprite-arrow_of_night_vision { background-position: -352px -32px}.mcsprite-arrow_of_poison { background-position: -384px -32px}.mcsprite-arrow_of_regeneration { background-position: -416px -32px}.mcsprite-arrow_of_slow_falling { background-position: -448px -32px}.mcsprite-arrow_of_slowness { background-position: -480px -32px}.mcsprite-arrow_of_splashing { background-position: -512px -32px}.mcsprite-arrow_of_strength { background-position: -544px -32px}.mcsprite-arrow_of_swiftness { background-position: -576px -32px}.mcsprite-arrow_of_the_turtle_master { background-position: -608px -32px}.mcsprite-arrow_of_water_breathing { background-position: -640px -32px}.mcsprite-arrow_of_weakness { background-position: -672px -32px}.mcsprite-awkward_lingering_potion { background-position: -704px -32px}.mcsprite-awkward_potion { background-position: -736px -32px}.mcsprite-awkward_splash_potion { background-position: -768px -32px}.mcsprite-axolotl_spawn_egg { background-position: -800px -32px}.mcsprite-azalea { background-position: -832px -32px}.mcsprite-azalea_leaves { background-position: -864px -32px}.mcsprite-azure_bluet { background-position: -896px -32px}.mcsprite-baked_potato { background-position: -928px -32px}.mcsprite-bamboo { background-position: -960px -32px}.mcsprite-banner { background-position: -992px -32px}.mcsprite-barrel { background-position: -1024px -32px}.mcsprite-barrier { background-position: -1056px -32px}.mcsprite-basalt { background-position: -1088px -32px}.mcsprite-bat_spawn_egg { background-position: -1120px -32px}.mcsprite-beacon { background-position: -1152px -32px}.mcsprite-bedrock { background-position: -1184px -32px}.mcsprite-bee_nest { background-position: -1216px -32px}.mcsprite-bee_spawn_egg { background-position: -1248px -32px}.mcsprite-beehive { background-position: 0 -64px}.mcsprite-beetroot { background-position: -32px -64px}.mcsprite-beetroot_seeds { background-position: -64px -64px}.mcsprite-beetroot_soup { background-position: -96px -64px}.mcsprite-beetroots { background-position: -128px -64px}.mcsprite-bell { background-position: -160px -64px}.mcsprite-big_dripleaf { background-position: -192px -64px}.mcsprite-birch_boat { background-position: -224px -64px}.mcsprite-birch_button { background-position: -256px -64px}.mcsprite-birch_door { background-position: -288px -64px}.mcsprite-birch_fence { background-position: -320px -64px}.mcsprite-birch_fence_gate { background-position: -352px -64px}.mcsprite-birch_leaves { background-position: -384px -64px}.mcsprite-birch_log { background-position: -416px -64px}.mcsprite-birch_planks { background-position: -448px -64px}.mcsprite-birch_pressure_plate { background-position: -480px -64px}.mcsprite-birch_sapling { background-position: -512px -64px}.mcsprite-birch_sign { background-position: -544px -64px}.mcsprite-birch_slab { background-position: -576px -64px}.mcsprite-birch_stairs { background-position: -608px -64px}.mcsprite-birch_trapdoor { background-position: -640px -64px}.mcsprite-birch_wood { background-position: -672px -64px}.mcsprite-birch_wood_button { background-position: -704px -64px}.mcsprite-birch_wood_door { background-position: -736px -64px}.mcsprite-birch_wood_fence { background-position: -768px -64px}.mcsprite-birch_wood_fence_gate { background-position: -800px -64px}.mcsprite-birch_wood_planks { background-position: -832px -64px}.mcsprite-birch_wood_pressure_plate { background-position: -864px -64px}.mcsprite-birch_wood_sign { background-position: -896px -64px}.mcsprite-birch_wood_slab { background-position: -928px -64px}.mcsprite-birch_wood_stairs { background-position: -960px -64px}.mcsprite-birch_wood_trapdoor { background-position: -992px -64px}.mcsprite-black_banner { background-position: -1024px -64px}.mcsprite-black_bed { background-position: -1056px -64px}.mcsprite-black_bed_lce { background-position: -1088px -64px}.mcsprite-black_candle { background-position: -1120px -64px}.mcsprite-black_carpet { background-position: -1152px -64px}.mcsprite-black_concrete { background-position: -1184px -64px}.mcsprite-black_concrete_powder { background-position: -1216px -64px}.mcsprite-black_dye { background-position: -1248px -64px}.mcsprite-black_firework_star { background-position: 0 -96px}.mcsprite-black_glazed_terracotta { background-position: -32px -96px}.mcsprite-black_shield { background-position: -64px -96px}.mcsprite-black_shulker_box { background-position: -96px -96px}.mcsprite-black_stained_glass { background-position: -128px -96px}.mcsprite-black_stained_glass_pane { background-position: -160px -96px}.mcsprite-black_terracotta { background-position: -192px -96px}.mcsprite-black_wool { background-position: -224px -96px}.mcsprite-blackstone { background-position: -256px -96px}.mcsprite-blackstone_slab { background-position: -288px -96px}.mcsprite-blackstone_stairs { background-position: -320px -96px}.mcsprite-blackstone_wall { background-position: -352px -96px}.mcsprite-blast_furnace { background-position: -384px -96px}.mcsprite-blaze_powder { background-position: -416px -96px}.mcsprite-blaze_rod { background-position: -448px -96px}.mcsprite-blaze_spawn_egg { background-position: -480px -96px}.mcsprite-block_of_amethyst { background-position: -512px -96px}.mcsprite-block_of_coal { background-position: -544px -96px}.mcsprite-block_of_copper { background-position: -576px -96px}.mcsprite-block_of_diamond { background-position: -608px -96px}.mcsprite-block_of_emerald { background-position: -640px -96px}.mcsprite-block_of_gold { background-position: -672px -96px}.mcsprite-block_of_iron { background-position: -704px -96px}.mcsprite-block_of_lapis_lazuli { background-position: -736px -96px}.mcsprite-block_of_netherite { background-position: -768px -96px}.mcsprite-block_of_quartz { background-position: -800px -96px}.mcsprite-block_of_raw_copper { background-position: -832px -96px}.mcsprite-block_of_raw_gold { background-position: -864px -96px}.mcsprite-block_of_raw_iron { background-position: -896px -96px}.mcsprite-block_of_redstone { background-position: -928px -96px}.mcsprite-blue_banner { background-position: -960px -96px}.mcsprite-blue_bed { background-position: -992px -96px}.mcsprite-blue_bed_lce { background-position: -1024px -96px}.mcsprite-blue_candle { background-position: -1056px -96px}.mcsprite-blue_carpet { background-position: -1088px -96px}.mcsprite-blue_concrete { background-position: -1120px -96px}.mcsprite-blue_concrete_powder { background-position: -1152px -96px}.mcsprite-blue_dye { background-position: -1184px -96px}.mcsprite-blue_firework_star { background-position: -1216px -96px}.mcsprite-blue_glazed_terracotta { background-position: -1248px -96px}.mcsprite-blue_ice { background-position: 0 -128px}.mcsprite-blue_orchid { background-position: -32px -128px}.mcsprite-blue_shield { background-position: -64px -128px}.mcsprite-blue_shulker_box { background-position: -96px -128px}.mcsprite-blue_stained_glass { background-position: -128px -128px}.mcsprite-blue_stained_glass_pane { background-position: -160px -128px}.mcsprite-blue_terracotta { background-position: -192px -128px}.mcsprite-blue_wool { background-position: -224px -128px}.mcsprite-bone { background-position: -256px -128px}.mcsprite-bone_block { background-position: -288px -128px}.mcsprite-bone_meal { background-position: -320px -128px}.mcsprite-book { background-position: -352px -128px}.mcsprite-book_and_quill { background-position: -384px -128px}.mcsprite-bookshelf { background-position: -416px -128px}.mcsprite-bottle_o_enchanting { background-position: -448px -128px}.mcsprite-bow { background-position: -480px -128px}.mcsprite-bowl { background-position: -512px -128px}.mcsprite-brain_coral { background-position: -544px -128px}.mcsprite-brain_coral_block { background-position: -576px -128px}.mcsprite-brain_coral_fan { background-position: -608px -128px}.mcsprite-bread { background-position: -640px -128px}.mcsprite-brewing_stand { background-position: -672px -128px}.mcsprite-brick { background-position: -704px -128px}.mcsprite-brick_slab { background-position: -736px -128px}.mcsprite-brick_slab_old { background-position: -768px -128px}.mcsprite-brick_stairs { background-position: -800px -128px}.mcsprite-brick_wall { background-position: -832px -128px}.mcsprite-bricks { background-position: -864px -128px}.mcsprite-bricks_old { background-position: -896px -128px}.mcsprite-broken_anvil { background-position: -928px -128px}.mcsprite-broken_elytra { background-position: -960px -128px}.mcsprite-brown_banner { background-position: -992px -128px}.mcsprite-brown_bed { background-position: -1024px -128px}.mcsprite-brown_bed_lce { background-position: -1056px -128px}.mcsprite-brown_candle { background-position: -1088px -128px}.mcsprite-brown_carpet { background-position: -1120px -128px}.mcsprite-brown_concrete { background-position: -1152px -128px}.mcsprite-brown_concrete_powder { background-position: -1184px -128px}.mcsprite-brown_dye { background-position: -1216px -128px}.mcsprite-brown_firework_star { background-position: -1248px -128px}.mcsprite-brown_glazed_terracotta { background-position: 0 -160px}.mcsprite-brown_mushroom { background-position: -32px -160px}.mcsprite-brown_mushroom_block { background-position: -64px -160px}.mcsprite-brown_shield { background-position: -96px -160px}.mcsprite-brown_shulker_box { background-position: -128px -160px}.mcsprite-brown_stained_glass { background-position: -160px -160px}.mcsprite-brown_stained_glass_pane { background-position: -192px -160px}.mcsprite-brown_terracotta { background-position: -224px -160px}.mcsprite-brown_wool { background-position: -256px -160px}.mcsprite-bubble_column { background-position: -288px -160px}.mcsprite-bubble_coral { background-position: -320px -160px}.mcsprite-bubble_coral_block { background-position: -352px -160px}.mcsprite-bubble_coral_fan { background-position: -384px -160px}.mcsprite-bucket { background-position: -416px -160px}.mcsprite-bucket_of_axolotl { background-position: -448px -160px}.mcsprite-bucket_of_cod { background-position: -480px -160px}.mcsprite-bucket_of_pufferfish { background-position: -512px -160px}.mcsprite-bucket_of_salmon { background-position: -544px -160px}.mcsprite-bucket_of_tropical_fish { background-position: -576px -160px}.mcsprite-budding_amethyst { background-position: -608px -160px}.mcsprite-bundle { background-position: -640px -160px}.mcsprite-buried_treasure_map { background-position: -672px -160px}.mcsprite-cactus { background-position: -704px -160px}.mcsprite-cactus_green { background-position: -736px -160px}.mcsprite-cake { background-position: -768px -160px}.mcsprite-calcite { background-position: -800px -160px}.mcsprite-campfire { background-position: -832px -160px}.mcsprite-candle { background-position: -864px -160px}.mcsprite-carrot { background-position: -896px -160px}.mcsprite-carrot_on_a_stick { background-position: -928px -160px}.mcsprite-cartography_table { background-position: -960px -160px}.mcsprite-carved_pumpkin { background-position: -992px -160px}.mcsprite-cast_fishing_rod { background-position: -1024px -160px}.mcsprite-cat_spawn_egg { background-position: -1056px -160px}.mcsprite-cauldron { background-position: -1088px -160px}.mcsprite-cave_air { background-position: -1120px -160px}.mcsprite-cave_spider_spawn_egg { background-position: -1152px -160px}.mcsprite-chain { background-position: -1184px -160px}.mcsprite-chainmail_boots { background-position: -1216px -160px}.mcsprite-chainmail_chestplate { background-position: -1248px -160px}.mcsprite-chainmail_helmet { background-position: 0 -192px}.mcsprite-chainmail_leggings { background-position: -32px -192px}.mcsprite-charcoal { background-position: -64px -192px}.mcsprite-chest { background-position: -96px -192px}.mcsprite-chicken_spawn_egg { background-position: -128px -192px}.mcsprite-chipped_anvil { background-position: -160px -192px}.mcsprite-chiseled_deepslate { background-position: -192px -192px}.mcsprite-chiseled_nether_bricks { background-position: -224px -192px}.mcsprite-chiseled_polished_blackstone { background-position: -256px -192px}.mcsprite-chiseled_quartz_block { background-position: -288px -192px}.mcsprite-chiseled_red_sandstone { background-position: -320px -192px}.mcsprite-chiseled_sandstone { background-position: -352px -192px}.mcsprite-chiseled_stone_bricks { background-position: -384px -192px}.mcsprite-chiseled_stone_bricks_monster_egg { background-position: -416px -192px}.mcsprite-chorus_flower { background-position: -448px -192px}.mcsprite-chorus_fruit { background-position: -480px -192px}.mcsprite-chorus_plant { background-position: -512px -192px}.mcsprite-clay { background-position: -544px -192px}.mcsprite-clay_ball { background-position: -576px -192px}.mcsprite-clock { background-position: -608px -192px}.mcsprite-clownfish { background-position: -640px -192px}.mcsprite-coal { background-position: -672px -192px}.mcsprite-coal_ore { background-position: -704px -192px}.mcsprite-coarse_dirt { background-position: -736px -192px}.mcsprite-cobbled_deepslate { background-position: -768px -192px}.mcsprite-cobbled_deepslate_slab { background-position: -800px -192px}.mcsprite-cobbled_deepslate_stairs { background-position: -832px -192px}.mcsprite-cobbled_deepslate_wall { background-position: -864px -192px}.mcsprite-cobblestone { background-position: -896px -192px}.mcsprite-cobblestone_monster_egg { background-position: -928px -192px}.mcsprite-cobblestone_slab { background-position: -960px -192px}.mcsprite-cobblestone_stairs { background-position: -992px -192px}.mcsprite-cobblestone_wall { background-position: -1024px -192px}.mcsprite-cobweb { background-position: -1056px -192px}.mcsprite-cocoa_beans { background-position: -1088px -192px}.mcsprite-cod_spawn_egg { background-position: -1120px -192px}.mcsprite-command_block { background-position: -1152px -192px}.mcsprite-compass { background-position: -1184px -192px}.mcsprite-composter { background-position: -1216px -192px}.mcsprite-conduit { background-position: -1248px -192px}.mcsprite-cooked_beef { background-position: 0 -224px}.mcsprite-cooked_chicken { background-position: -32px -224px}.mcsprite-cooked_cod { background-position: -64px -224px}.mcsprite-cooked_fish { background-position: -96px -224px}.mcsprite-cooked_mutton { background-position: -128px -224px}.mcsprite-cooked_porkchop { background-position: -160px -224px}.mcsprite-cooked_rabbit { background-position: -192px -224px}.mcsprite-cooked_salmon { background-position: -224px -224px}.mcsprite-cookie { background-position: -256px -224px}.mcsprite-copper_block { background-position: -288px -224px}.mcsprite-copper_ingot { background-position: -320px -224px}.mcsprite-copper_ore { background-position: -352px -224px}.mcsprite-cornflower { background-position: -384px -224px}.mcsprite-cow_spawn_egg { background-position: -416px -224px}.mcsprite-cracked_deepslate_bricks { background-position: -448px -224px}.mcsprite-cracked_deepslate_tiles { background-position: -480px -224px}.mcsprite-cracked_nether_bricks { background-position: -512px -224px}.mcsprite-cracked_polished_blackstone_bricks { background-position: -544px -224px}.mcsprite-cracked_stone_bricks { background-position: -576px -224px}.mcsprite-cracked_stone_bricks_monster_egg { background-position: -608px -224px}.mcsprite-crafting_table { background-position: -640px -224px}.mcsprite-creeper_head { background-position: -672px -224px}.mcsprite-creeper_spawn_egg { background-position: -704px -224px}.mcsprite-crimson_button { background-position: -736px -224px}.mcsprite-crimson_door { background-position: -768px -224px}.mcsprite-crimson_fence { background-position: -800px -224px}.mcsprite-crimson_fence_gate { background-position: -832px -224px}.mcsprite-crimson_fungus { background-position: -864px -224px}.mcsprite-crimson_hyphae { background-position: -896px -224px}.mcsprite-crimson_nylium { background-position: -928px -224px}.mcsprite-crimson_planks { background-position: -960px -224px}.mcsprite-crimson_pressure_plate { background-position: -992px -224px}.mcsprite-crimson_roots { background-position: -1024px -224px}.mcsprite-crimson_sign { background-position: -1056px -224px}.mcsprite-crimson_slab { background-position: -1088px -224px}.mcsprite-crimson_stairs { background-position: -1120px -224px}.mcsprite-crimson_stem { background-position: -1152px -224px}.mcsprite-crimson_trapdoor { background-position: -1184px -224px}.mcsprite-crossbow { background-position: -1216px -224px}.mcsprite-crying_obsidian { background-position: -1248px -224px}.mcsprite-cut_copper { background-position: 0 -256px}.mcsprite-cut_copper_block { background-position: -32px -256px}.mcsprite-cut_copper_slab { background-position: -64px -256px}.mcsprite-cut_copper_stairs { background-position: -96px -256px}.mcsprite-cut_red_sandstone { background-position: -128px -256px}.mcsprite-cut_red_sandstone_slab { background-position: -160px -256px}.mcsprite-cut_sandstone { background-position: -192px -256px}.mcsprite-cut_sandstone_slab { background-position: -224px -256px}.mcsprite-cyan_banner { background-position: -256px -256px}.mcsprite-cyan_bed { background-position: -288px -256px}.mcsprite-cyan_bed_lce { background-position: -320px -256px}.mcsprite-cyan_candle { background-position: -352px -256px}.mcsprite-cyan_carpet { background-position: -384px -256px}.mcsprite-cyan_concrete { background-position: -416px -256px}.mcsprite-cyan_concrete_powder { background-position: -448px -256px}.mcsprite-cyan_dye { background-position: -480px -256px}.mcsprite-cyan_firework_star { background-position: -512px -256px}.mcsprite-cyan_glazed_terracotta { background-position: -544px -256px}.mcsprite-cyan_shield { background-position: -576px -256px}.mcsprite-cyan_shulker_box { background-position: -608px -256px}.mcsprite-cyan_stained_glass { background-position: -640px -256px}.mcsprite-cyan_stained_glass_pane { background-position: -672px -256px}.mcsprite-cyan_terracotta { background-position: -704px -256px}.mcsprite-cyan_wool { background-position: -736px -256px}.mcsprite-dandelion { background-position: -768px -256px}.mcsprite-dandelion_yellow { background-position: -800px -256px}.mcsprite-dark_oak_boat { background-position: -832px -256px}.mcsprite-dark_oak_button { background-position: -864px -256px}.mcsprite-dark_oak_door { background-position: -896px -256px}.mcsprite-dark_oak_fence { background-position: -928px -256px}.mcsprite-dark_oak_fence_gate { background-position: -960px -256px}.mcsprite-dark_oak_leaves { background-position: -992px -256px}.mcsprite-dark_oak_log { background-position: -1024px -256px}.mcsprite-dark_oak_planks { background-position: -1056px -256px}.mcsprite-dark_oak_pressure_plate { background-position: -1088px -256px}.mcsprite-dark_oak_sapling { background-position: -1120px -256px}.mcsprite-dark_oak_sign { background-position: -1152px -256px}.mcsprite-dark_oak_slab { background-position: -1184px -256px}.mcsprite-dark_oak_stairs { background-position: -1216px -256px}.mcsprite-dark_oak_trapdoor { background-position: -1248px -256px}.mcsprite-dark_oak_wood { background-position: 0 -288px}.mcsprite-dark_oak_wood_button { background-position: -32px -288px}.mcsprite-dark_oak_wood_door { background-position: -64px -288px}.mcsprite-dark_oak_wood_fence { background-position: -96px -288px}.mcsprite-dark_oak_wood_fence_gate { background-position: -128px -288px}.mcsprite-dark_oak_wood_planks { background-position: -160px -288px}.mcsprite-dark_oak_wood_pressure_plate { background-position: -192px -288px}.mcsprite-dark_oak_wood_sign { background-position: -224px -288px}.mcsprite-dark_oak_wood_slab { background-position: -256px -288px}.mcsprite-dark_oak_wood_stairs { background-position: -288px -288px}.mcsprite-dark_oak_wood_trapdoor { background-position: -320px -288px}.mcsprite-dark_prismarine { background-position: -352px -288px}.mcsprite-dark_prismarine_slab { background-position: -384px -288px}.mcsprite-dark_prismarine_stairs { background-position: -416px -288px}.mcsprite-daylight_detector { background-position: -448px -288px}.mcsprite-daylight_sensor { background-position: -480px -288px}.mcsprite-dead_brain_coral { background-position: -512px -288px}.mcsprite-dead_brain_coral_block { background-position: -544px -288px}.mcsprite-dead_brain_coral_fan { background-position: -576px -288px}.mcsprite-dead_bubble_coral { background-position: -608px -288px}.mcsprite-dead_bubble_coral_block { background-position: -640px -288px}.mcsprite-dead_bubble_coral_fan { background-position: -672px -288px}.mcsprite-dead_bush { background-position: -704px -288px}.mcsprite-dead_fire_coral { background-position: -736px -288px}.mcsprite-dead_fire_coral_block { background-position: -768px -288px}.mcsprite-dead_fire_coral_fan { background-position: -800px -288px}.mcsprite-dead_horn_coral { background-position: -832px -288px}.mcsprite-dead_horn_coral_block { background-position: -864px -288px}.mcsprite-dead_horn_coral_fan { background-position: -896px -288px}.mcsprite-dead_tube_coral { background-position: -928px -288px}.mcsprite-dead_tube_coral_block { background-position: -960px -288px}.mcsprite-dead_tube_coral_fan { background-position: -992px -288px}.mcsprite-debug_stick { background-position: -1024px -288px}.mcsprite-deepslate { background-position: -1056px -288px}.mcsprite-deepslate_brick_slab { background-position: -1088px -288px}.mcsprite-deepslate_brick_stairs { background-position: -1120px -288px}.mcsprite-deepslate_brick_wall { background-position: -1152px -288px}.mcsprite-deepslate_bricks { background-position: -1184px -288px}.mcsprite-deepslate_coal_ore { background-position: -1216px -288px}.mcsprite-deepslate_copper_ore { background-position: -1248px -288px}.mcsprite-deepslate_diamond_ore { background-position: 0 -320px}.mcsprite-deepslate_emerald_ore { background-position: -32px -320px}.mcsprite-deepslate_gold_ore { background-position: -64px -320px}.mcsprite-deepslate_iron_ore { background-position: -96px -320px}.mcsprite-deepslate_lapis_lazuli_ore { background-position: -128px -320px}.mcsprite-deepslate_redstone_ore { background-position: -160px -320px}.mcsprite-deepslate_tile_slab { background-position: -192px -320px}.mcsprite-deepslate_tile_stairs { background-position: -224px -320px}.mcsprite-deepslate_tile_wall { background-position: -256px -320px}.mcsprite-deepslate_tiles { background-position: -288px -320px}.mcsprite-detector_rail { background-position: -320px -320px}.mcsprite-diamond { background-position: -352px -320px}.mcsprite-diamond_axe { background-position: -384px -320px}.mcsprite-diamond_boots { background-position: -416px -320px}.mcsprite-diamond_chestplate { background-position: -448px -320px}.mcsprite-diamond_helmet { background-position: -480px -320px}.mcsprite-diamond_hoe { background-position: -512px -320px}.mcsprite-diamond_horse_armor { background-position: -544px -320px}.mcsprite-diamond_leggings { background-position: -576px -320px}.mcsprite-diamond_ore { background-position: -608px -320px}.mcsprite-diamond_pickaxe { background-position: -640px -320px}.mcsprite-diamond_shovel { background-position: -672px -320px}.mcsprite-diamond_sword { background-position: -704px -320px}.mcsprite-diorite { background-position: -736px -320px}.mcsprite-diorite_slab { background-position: -768px -320px}.mcsprite-diorite_stairs { background-position: -800px -320px}.mcsprite-diorite_wall { background-position: -832px -320px}.mcsprite-dirt { background-position: -864px -320px}.mcsprite-dirt_path { background-position: -896px -320px}.mcsprite-dispenser { background-position: -928px -320px}.mcsprite-dolphin_spawn_egg { background-position: -960px -320px}.mcsprite-donkey_spawn_egg { background-position: -992px -320px}.mcsprite-double_smooth_stone_slab { background-position: -1024px -320px}.mcsprite-dragon_egg { background-position: -1056px -320px}.mcsprite-dragon_head { background-position: -1088px -320px}.mcsprite-dragons_breath { background-position: -1120px -320px}.mcsprite-dried_kelp { background-position: -1152px -320px}.mcsprite-dried_kelp_block { background-position: -1184px -320px}.mcsprite-dripstone_block { background-position: -1216px -320px}.mcsprite-dropper { background-position: -1248px -320px}.mcsprite-drowned_spawn_egg { background-position: 0 -352px}.mcsprite-egg { background-position: -32px -352px}.mcsprite-elder_guardian_spawn_egg { background-position: -64px -352px}.mcsprite-elytra { background-position: -96px -352px}.mcsprite-emerald { background-position: -128px -352px}.mcsprite-emerald_ore { background-position: -160px -352px}.mcsprite-empty_locator_map { background-position: -192px -352px}.mcsprite-empty_map { background-position: -224px -352px}.mcsprite-enchanted_apple { background-position: -256px -352px}.mcsprite-enchanted_book { background-position: -288px -352px}.mcsprite-enchanted_golden_apple { background-position: -320px -352px}.mcsprite-enchanting_table { background-position: -352px -352px}.mcsprite-enchantment_table { background-position: -384px -352px}.mcsprite-end_crystal { background-position: -416px -352px}.mcsprite-end_gateway { background-position: -448px -352px}.mcsprite-end_portal { background-position: -480px -352px}.mcsprite-end_portal_frame { background-position: -512px -352px}.mcsprite-end_rod { background-position: -544px -352px}.mcsprite-end_stone { background-position: -576px -352px}.mcsprite-end_stone_brick_slab { background-position: -608px -352px}.mcsprite-end_stone_brick_stairs { background-position: -640px -352px}.mcsprite-end_stone_brick_wall { background-position: -672px -352px}.mcsprite-end_stone_bricks { background-position: -704px -352px}.mcsprite-ender_chest { background-position: -736px -352px}.mcsprite-ender_pearl { background-position: -768px -352px}.mcsprite-enderman_spawn_egg { background-position: -800px -352px}.mcsprite-endermite_spawn_egg { background-position: -832px -352px}.mcsprite-evoker_spawn_egg { background-position: -864px -352px}.mcsprite-exposed_copper { background-position: -896px -352px}.mcsprite-exposed_copper_block { background-position: -928px -352px}.mcsprite-exposed_cut_copper { background-position: -960px -352px}.mcsprite-exposed_cut_copper_block { background-position: -992px -352px}.mcsprite-exposed_cut_copper_slab { background-position: -1024px -352px}.mcsprite-exposed_cut_copper_stairs { background-position: -1056px -352px}.mcsprite-eye_of_ender { background-position: -1088px -352px}.mcsprite-farmland { background-position: -1120px -352px}.mcsprite-feather { background-position: -1152px -352px}.mcsprite-fermented_spider_eye { background-position: -1184px -352px}.mcsprite-fern { background-position: -1216px -352px}.mcsprite-filled_bundle { background-position: -1248px -352px}.mcsprite-fire_charge { background-position: 0 -384px}.mcsprite-fire_coral { background-position: -32px -384px}.mcsprite-fire_coral_block { background-position: -64px -384px}.mcsprite-fire_coral_fan { background-position: -96px -384px}.mcsprite-firework_loaded_crossbow { background-position: -128px -384px}.mcsprite-firework_rocket { background-position: -160px -384px}.mcsprite-firework_star { background-position: -192px -384px}.mcsprite-fishing_rod { background-position: -224px -384px}.mcsprite-fletching_table { background-position: -256px -384px}.mcsprite-flint { background-position: -288px -384px}.mcsprite-flint_and_steel { background-position: -320px -384px}.mcsprite-flower_pot { background-position: -352px -384px}.mcsprite-flowering_azalea { background-position: -384px -384px}.mcsprite-flowering_azalea_leaves { background-position: -416px -384px}.mcsprite-flowing_lava { background-position: -448px -384px}.mcsprite-flowing_water { background-position: -480px -384px}.mcsprite-fox_spawn_egg { background-position: -512px -384px}.mcsprite-frosted_ice { background-position: -544px -384px}.mcsprite-furnace { background-position: -576px -384px}.mcsprite-ghast_spawn_egg { background-position: -608px -384px}.mcsprite-ghast_tear { background-position: -640px -384px}.mcsprite-gilded_blackstone { background-position: -672px -384px}.mcsprite-glass { background-position: -704px -384px}.mcsprite-glass_bottle { background-position: -736px -384px}.mcsprite-glass_pane { background-position: -768px -384px}.mcsprite-glistering_melon { background-position: -800px -384px}.mcsprite-glistering_melon_slice { background-position: -832px -384px}.mcsprite-glow_berries { background-position: -864px -384px}.mcsprite-glow_ink_sac { background-position: -896px -384px}.mcsprite-glow_item_frame { background-position: -928px -384px}.mcsprite-glow_lichen { background-position: -960px -384px}.mcsprite-glow_squid_spawn_egg { background-position: -992px -384px}.mcsprite-glowstone { background-position: -1024px -384px}.mcsprite-glowstone_dust { background-position: -1056px -384px}.mcsprite-goat_horn { background-position: -1088px -384px}.mcsprite-goat_spawn_egg { background-position: -1120px -384px}.mcsprite-gold_ingot { background-position: -1152px -384px}.mcsprite-gold_nugget { background-position: -1184px -384px}.mcsprite-gold_ore { background-position: -1216px -384px}.mcsprite-golden_apple { background-position: -1248px -384px}.mcsprite-golden_axe { background-position: 0 -416px}.mcsprite-golden_boots { background-position: -32px -416px}.mcsprite-golden_carrot { background-position: -64px -416px}.mcsprite-golden_chestplate { background-position: -96px -416px}.mcsprite-golden_helmet { background-position: -128px -416px}.mcsprite-golden_hoe { background-position: -160px -416px}.mcsprite-golden_horse_armor { background-position: -192px -416px}.mcsprite-golden_leggings { background-position: -224px -416px}.mcsprite-golden_pickaxe { background-position: -256px -416px}.mcsprite-golden_shovel { background-position: -288px -416px}.mcsprite-golden_sword { background-position: -320px -416px}.mcsprite-granite { background-position: -352px -416px}.mcsprite-granite_slab { background-position: -384px -416px}.mcsprite-granite_stairs { background-position: -416px -416px}.mcsprite-granite_wall { background-position: -448px -416px}.mcsprite-grass { background-position: -480px -416px}.mcsprite-grass_block { background-position: -512px -416px}.mcsprite-grass_path { background-position: -544px -416px}.mcsprite-gravel { background-position: -576px -416px}.mcsprite-gray_banner { background-position: -608px -416px}.mcsprite-gray_bed { background-position: -640px -416px}.mcsprite-gray_bed_lce { background-position: -672px -416px}.mcsprite-gray_candle { background-position: -704px -416px}.mcsprite-gray_carpet { background-position: -736px -416px}.mcsprite-gray_concrete { background-position: -768px -416px}.mcsprite-gray_concrete_powder { background-position: -800px -416px}.mcsprite-gray_dye { background-position: -832px -416px}.mcsprite-gray_firework_star { background-position: -864px -416px}.mcsprite-gray_glazed_terracotta { background-position: -896px -416px}.mcsprite-gray_shield { background-position: -928px -416px}.mcsprite-gray_shulker_box { background-position: -960px -416px}.mcsprite-gray_stained_glass { background-position: -992px -416px}.mcsprite-gray_stained_glass_pane { background-position: -1024px -416px}.mcsprite-gray_terracotta { background-position: -1056px -416px}.mcsprite-gray_wool { background-position: -1088px -416px}.mcsprite-green_banner { background-position: -1120px -416px}.mcsprite-green_bed { background-position: -1152px -416px}.mcsprite-green_bed_lce { background-position: -1184px -416px}.mcsprite-green_candle { background-position: -1216px -416px}.mcsprite-green_carpet { background-position: -1248px -416px}.mcsprite-green_concrete { background-position: 0 -448px}.mcsprite-green_concrete_powder { background-position: -32px -448px}.mcsprite-green_dye { background-position: -64px -448px}.mcsprite-green_firework_star { background-position: -96px -448px}.mcsprite-green_glazed_terracotta { background-position: -128px -448px}.mcsprite-green_shield { background-position: -160px -448px}.mcsprite-green_shulker_box { background-position: -192px -448px}.mcsprite-green_stained_glass { background-position: -224px -448px}.mcsprite-green_stained_glass_pane { background-position: -256px -448px}.mcsprite-green_terracotta { background-position: -288px -448px}.mcsprite-green_wool { background-position: -320px -448px}.mcsprite-grindstone { background-position: -352px -448px}.mcsprite-guardian_spawn_egg { background-position: -384px -448px}.mcsprite-gunpowder { background-position: -416px -448px}.mcsprite-half_filled_bundle { background-position: -448px -448px}.mcsprite-hanging_roots { background-position: -480px -448px}.mcsprite-hay_bale { background-position: -512px -448px}.mcsprite-head { background-position: -544px -448px}.mcsprite-heart_of_the_sea { background-position: -576px -448px}.mcsprite-heavy_weighted_pressure_plate { background-position: -608px -448px}.mcsprite-hoglin_spawn_egg { background-position: -640px -448px}.mcsprite-honey_block { background-position: -672px -448px}.mcsprite-honey_bottle { background-position: -704px -448px}.mcsprite-honeycomb { background-position: -736px -448px}.mcsprite-honeycomb_block { background-position: -768px -448px}.mcsprite-hopper { background-position: -800px -448px}.mcsprite-horn_coral { background-position: -832px -448px}.mcsprite-horn_coral_block { background-position: -864px -448px}.mcsprite-horn_coral_fan { background-position: -896px -448px}.mcsprite-horse_spawn_egg { background-position: -928px -448px}.mcsprite-husk_spawn_egg { background-position: -960px -448px}.mcsprite-ice { background-position: -992px -448px}.mcsprite-infested_chiseled_stone_bricks { background-position: -1024px -448px}.mcsprite-infested_cobblestone { background-position: -1056px -448px}.mcsprite-infested_cracked_stone_bricks { background-position: -1088px -448px}.mcsprite-infested_deepslate { background-position: -1120px -448px}.mcsprite-infested_mossy_stone_bricks { background-position: -1152px -448px}.mcsprite-infested_stone { background-position: -1184px -448px}.mcsprite-infested_stone_bricks { background-position: -1216px -448px}.mcsprite-ink_sac { background-position: -1248px -448px}.mcsprite-inverted_daylight_detector { background-position: 0 -480px}.mcsprite-inverted_daylight_sensor { background-position: -32px -480px}.mcsprite-invisible_bedrock { background-position: -64px -480px}.mcsprite-iron_axe { background-position: -96px -480px}.mcsprite-iron_bars { background-position: -128px -480px}.mcsprite-iron_boots { background-position: -160px -480px}.mcsprite-iron_chestplate { background-position: -192px -480px}.mcsprite-iron_door { background-position: -224px -480px}.mcsprite-iron_helmet { background-position: -256px -480px}.mcsprite-iron_hoe { background-position: -288px -480px}.mcsprite-iron_horse_armor { background-position: -320px -480px}.mcsprite-iron_ingot { background-position: -352px -480px}.mcsprite-iron_leggings { background-position: -384px -480px}.mcsprite-iron_nugget { background-position: -416px -480px}.mcsprite-iron_ore { background-position: -448px -480px}.mcsprite-iron_pickaxe { background-position: -480px -480px}.mcsprite-iron_shovel { background-position: -512px -480px}.mcsprite-iron_sword { background-position: -544px -480px}.mcsprite-iron_trapdoor { background-position: -576px -480px}.mcsprite-item_frame { background-position: -608px -480px}.mcsprite-jack_olantern { background-position: -640px -480px}.mcsprite-jigsaw { background-position: -672px -480px}.mcsprite-jigsaw_block { background-position: -704px -480px}.mcsprite-jukebox { background-position: -736px -480px}.mcsprite-jungle_boat { background-position: -768px -480px}.mcsprite-jungle_button { background-position: -800px -480px}.mcsprite-jungle_door { background-position: -832px -480px}.mcsprite-jungle_fence { background-position: -864px -480px}.mcsprite-jungle_fence_gate { background-position: -896px -480px}.mcsprite-jungle_leaves { background-position: -928px -480px}.mcsprite-jungle_log { background-position: -960px -480px}.mcsprite-jungle_planks { background-position: -992px -480px}.mcsprite-jungle_pressure_plate { background-position: -1024px -480px}.mcsprite-jungle_sapling { background-position: -1056px -480px}.mcsprite-jungle_sign { background-position: -1088px -480px}.mcsprite-jungle_slab { background-position: -1120px -480px}.mcsprite-jungle_stairs { background-position: -1152px -480px}.mcsprite-jungle_trapdoor { background-position: -1184px -480px}.mcsprite-jungle_wood { background-position: -1216px -480px}.mcsprite-jungle_wood_button { background-position: -1248px -480px}.mcsprite-jungle_wood_door { background-position: 0 -512px}.mcsprite-jungle_wood_fence { background-position: -32px -512px}.mcsprite-jungle_wood_fence_gate { background-position: -64px -512px}.mcsprite-jungle_wood_planks { background-position: -96px -512px}.mcsprite-jungle_wood_pressure_plate { background-position: -128px -512px}.mcsprite-jungle_wood_sign { background-position: -160px -512px}.mcsprite-jungle_wood_slab { background-position: -192px -512px}.mcsprite-jungle_wood_stairs { background-position: -224px -512px}.mcsprite-jungle_wood_trapdoor { background-position: -256px -512px}.mcsprite-kelp { background-position: -288px -512px}.mcsprite-knowledge_book { background-position: -320px -512px}.mcsprite-ladder { background-position: -352px -512px}.mcsprite-lantern { background-position: -384px -512px}.mcsprite-lapis_lazuli { background-position: -416px -512px}.mcsprite-lapis_lazuli_block { background-position: -448px -512px}.mcsprite-lapis_lazuli_ore { background-position: -480px -512px}.mcsprite-large_amethyst_bud { background-position: -512px -512px}.mcsprite-large_fern { background-position: -544px -512px}.mcsprite-lava { background-position: -576px -512px}.mcsprite-lava_bucket { background-position: -608px -512px}.mcsprite-lead { background-position: -640px -512px}.mcsprite-leather { background-position: -672px -512px}.mcsprite-leather_boots { background-position: -704px -512px}.mcsprite-leather_boots_black { background-position: -736px -512px}.mcsprite-leather_boots_blue { background-position: -768px -512px}.mcsprite-leather_boots_cyan { background-position: -800px -512px}.mcsprite-leather_boots_gray { background-position: -832px -512px}.mcsprite-leather_boots_green { background-position: -864px -512px}.mcsprite-leather_boots_light_blue { background-position: -896px -512px}.mcsprite-leather_boots_light_gray { background-position: -928px -512px}.mcsprite-leather_boots_lime { background-position: -960px -512px}.mcsprite-leather_boots_magenta { background-position: -992px -512px}.mcsprite-leather_boots_orange { background-position: -1024px -512px}.mcsprite-leather_boots_pink { background-position: -1056px -512px}.mcsprite-leather_boots_purple { background-position: -1088px -512px}.mcsprite-leather_boots_red { background-position: -1120px -512px}.mcsprite-leather_boots_white { background-position: -1152px -512px}.mcsprite-leather_boots_yellow { background-position: -1184px -512px}.mcsprite-leather_cap { background-position: -1216px -512px}.mcsprite-leather_cap_black { background-position: -1248px -512px}.mcsprite-leather_cap_blue { background-position: 0 -544px}.mcsprite-leather_cap_cyan { background-position: -32px -544px}.mcsprite-leather_cap_gray { background-position: -64px -544px}.mcsprite-leather_cap_green { background-position: -96px -544px}.mcsprite-leather_cap_light_blue { background-position: -128px -544px}.mcsprite-leather_cap_light_gray { background-position: -160px -544px}.mcsprite-leather_cap_lime { background-position: -192px -544px}.mcsprite-leather_cap_magenta { background-position: -224px -544px}.mcsprite-leather_cap_orange { background-position: -256px -544px}.mcsprite-leather_cap_pink { background-position: -288px -544px}.mcsprite-leather_cap_purple { background-position: -320px -544px}.mcsprite-leather_cap_red { background-position: -352px -544px}.mcsprite-leather_cap_white { background-position: -384px -544px}.mcsprite-leather_cap_yellow { background-position: -416px -544px}.mcsprite-leather_horse_armor { background-position: -448px -544px}.mcsprite-leather_pants { background-position: -480px -544px}.mcsprite-leather_pants_black { background-position: -512px -544px}.mcsprite-leather_pants_blue { background-position: -544px -544px}.mcsprite-leather_pants_cyan { background-position: -576px -544px}.mcsprite-leather_pants_gray { background-position: -608px -544px}.mcsprite-leather_pants_green { background-position: -640px -544px}.mcsprite-leather_pants_light_blue { background-position: -672px -544px}.mcsprite-leather_pants_light_gray { background-position: -704px -544px}.mcsprite-leather_pants_lime { background-position: -736px -544px}.mcsprite-leather_pants_magenta { background-position: -768px -544px}.mcsprite-leather_pants_orange { background-position: -800px -544px}.mcsprite-leather_pants_pink { background-position: -832px -544px}.mcsprite-leather_pants_purple { background-position: -864px -544px}.mcsprite-leather_pants_red { background-position: -896px -544px}.mcsprite-leather_pants_white { background-position: -928px -544px}.mcsprite-leather_pants_yellow { background-position: -960px -544px}.mcsprite-leather_tunic { background-position: -992px -544px}.mcsprite-leather_tunic_black { background-position: -1024px -544px}.mcsprite-leather_tunic_blue { background-position: -1056px -544px}.mcsprite-leather_tunic_cyan { background-position: -1088px -544px}.mcsprite-leather_tunic_gray { background-position: -1120px -544px}.mcsprite-leather_tunic_green { background-position: -1152px -544px}.mcsprite-leather_tunic_light_blue { background-position: -1184px -544px}.mcsprite-leather_tunic_light_gray { background-position: -1216px -544px}.mcsprite-leather_tunic_lime { background-position: -1248px -544px}.mcsprite-leather_tunic_magenta { background-position: 0 -576px}.mcsprite-leather_tunic_orange { background-position: -32px -576px}.mcsprite-leather_tunic_pink { background-position: -64px -576px}.mcsprite-leather_tunic_purple { background-position: -96px -576px}.mcsprite-leather_tunic_red { background-position: -128px -576px}.mcsprite-leather_tunic_white { background-position: -160px -576px}.mcsprite-leather_tunic_yellow { background-position: -192px -576px}.mcsprite-lectern { background-position: -224px -576px}.mcsprite-lever { background-position: -256px -576px}.mcsprite-light_blue_banner { background-position: -288px -576px}.mcsprite-light_blue_bed { background-position: -320px -576px}.mcsprite-light_blue_bed_lce { background-position: -352px -576px}.mcsprite-light_blue_candle { background-position: -384px -576px}.mcsprite-light_blue_carpet { background-position: -416px -576px}.mcsprite-light_blue_concrete { background-position: -448px -576px}.mcsprite-light_blue_concrete_powder { background-position: -480px -576px}.mcsprite-light_blue_dye { background-position: -512px -576px}.mcsprite-light_blue_firework_star { background-position: -544px -576px}.mcsprite-light_blue_glazed_terracotta { background-position: -576px -576px}.mcsprite-light_blue_shield { background-position: -608px -576px}.mcsprite-light_blue_shulker_box { background-position: -640px -576px}.mcsprite-light_blue_stained_glass { background-position: -672px -576px}.mcsprite-light_blue_stained_glass_pane { background-position: -704px -576px}.mcsprite-light_blue_terracotta { background-position: -736px -576px}.mcsprite-light_blue_wool { background-position: -768px -576px}.mcsprite-light_gray_banner { background-position: -800px -576px}.mcsprite-light_gray_bed { background-position: -832px -576px}.mcsprite-light_gray_bed_lce { background-position: -864px -576px}.mcsprite-light_gray_candle { background-position: -896px -576px}.mcsprite-light_gray_carpet { background-position: -928px -576px}.mcsprite-light_gray_concrete { background-position: -960px -576px}.mcsprite-light_gray_concrete_powder { background-position: -992px -576px}.mcsprite-light_gray_dye { background-position: -1024px -576px}.mcsprite-light_gray_firework_star { background-position: -1056px -576px}.mcsprite-light_gray_glazed_terracotta { background-position: -1088px -576px}.mcsprite-light_gray_shield { background-position: -1120px -576px}.mcsprite-light_gray_shulker_box { background-position: -1152px -576px}.mcsprite-light_gray_stained_glass { background-position: -1184px -576px}.mcsprite-light_gray_stained_glass_pane { background-position: -1216px -576px}.mcsprite-light_gray_terracotta { background-position: -1248px -576px}.mcsprite-light_gray_wool { background-position: 0 -608px}.mcsprite-light_negative { background-position: -32px -608px}.mcsprite-light_weighted_pressure_plate { background-position: -64px -608px}.mcsprite-lightning_rod { background-position: -96px -608px}.mcsprite-lilac { background-position: -128px -608px}.mcsprite-lily_of_the_valley { background-position: -160px -608px}.mcsprite-lily_pad { background-position: -192px -608px}.mcsprite-lime_banner { background-position: -224px -608px}.mcsprite-lime_bed { background-position: -256px -608px}.mcsprite-lime_bed_lce { background-position: -288px -608px}.mcsprite-lime_candle { background-position: -320px -608px}.mcsprite-lime_carpet { background-position: -352px -608px}.mcsprite-lime_concrete { background-position: -384px -608px}.mcsprite-lime_concrete_powder { background-position: -416px -608px}.mcsprite-lime_dye { background-position: -448px -608px}.mcsprite-lime_firework_star { background-position: -480px -608px}.mcsprite-lime_glazed_terracotta { background-position: -512px -608px}.mcsprite-lime_shield { background-position: -544px -608px}.mcsprite-lime_shulker_box { background-position: -576px -608px}.mcsprite-lime_stained_glass { background-position: -608px -608px}.mcsprite-lime_stained_glass_pane { background-position: -640px -608px}.mcsprite-lime_terracotta { background-position: -672px -608px}.mcsprite-lime_wool { background-position: -704px -608px}.mcsprite-lingering_potion_of_decay { background-position: -736px -608px}.mcsprite-lingering_potion_of_fire_resistance { background-position: -768px -608px}.mcsprite-lingering_potion_of_harming { background-position: -800px -608px}.mcsprite-lingering_potion_of_healing { background-position: -832px -608px}.mcsprite-lingering_potion_of_invisibility { background-position: -864px -608px}.mcsprite-lingering_potion_of_leaping { background-position: -896px -608px}.mcsprite-lingering_potion_of_levitation { background-position: -928px -608px}.mcsprite-lingering_potion_of_luck { background-position: -960px -608px}.mcsprite-lingering_potion_of_night_vision { background-position: -992px -608px}.mcsprite-lingering_potion_of_poison { background-position: -1024px -608px}.mcsprite-lingering_potion_of_regeneration { background-position: -1056px -608px}.mcsprite-lingering_potion_of_slow_falling { background-position: -1088px -608px}.mcsprite-lingering_potion_of_slowness { background-position: -1120px -608px}.mcsprite-lingering_potion_of_strength { background-position: -1152px -608px}.mcsprite-lingering_potion_of_swiftness { background-position: -1184px -608px}.mcsprite-lingering_potion_of_the_turtle_master { background-position: -1216px -608px}.mcsprite-lingering_potion_of_water_breathing { background-position: -1248px -608px}.mcsprite-lingering_potion_of_weakness { background-position: 0 -640px}.mcsprite-lingering_water_bottle { background-position: -32px -640px}.mcsprite-llama_spawn_egg { background-position: -64px -640px}.mcsprite-locked_map { background-position: -96px -640px}.mcsprite-lodestone { background-position: -128px -640px}.mcsprite-loom { background-position: -160px -640px}.mcsprite-magenta_banner { background-position: -192px -640px}.mcsprite-magenta_bed { background-position: -224px -640px}.mcsprite-magenta_bed_lce { background-position: -256px -640px}.mcsprite-magenta_candle { background-position: -288px -640px}.mcsprite-magenta_carpet { background-position: -320px -640px}.mcsprite-magenta_concrete { background-position: -352px -640px}.mcsprite-magenta_concrete_powder { background-position: -384px -640px}.mcsprite-magenta_dye { background-position: -416px -640px}.mcsprite-magenta_firework_star { background-position: -448px -640px}.mcsprite-magenta_glazed_terracotta { background-position: -480px -640px}.mcsprite-magenta_shield { background-position: -512px -640px}.mcsprite-magenta_shulker_box { background-position: -544px -640px}.mcsprite-magenta_stained_glass { background-position: -576px -640px}.mcsprite-magenta_stained_glass_pane { background-position: -608px -640px}.mcsprite-magenta_terracotta { background-position: -640px -640px}.mcsprite-magenta_wool { background-position: -672px -640px}.mcsprite-magma_cream { background-position: -704px -640px}.mcsprite-magma_cube_spawn_egg { background-position: -736px -640px}.mcsprite-map { background-position: -768px -640px}.mcsprite-medium_amethyst_bud { background-position: -800px -640px}.mcsprite-melon { background-position: -832px -640px}.mcsprite-melon_seeds { background-position: -864px -640px}.mcsprite-melon_slice { background-position: -896px -640px}.mcsprite-mhf_alex { background-position: -928px -640px}.mcsprite-mhf_arrowdown { background-position: -960px -640px}.mcsprite-mhf_arrowleft { background-position: -992px -640px}.mcsprite-mhf_arrowright { background-position: -1024px -640px}.mcsprite-mhf_arrowup { background-position: -1056px -640px}.mcsprite-mhf_blaze { background-position: -1088px -640px}.mcsprite-mhf_cactus { background-position: -1120px -640px}.mcsprite-mhf_cake { background-position: -1152px -640px}.mcsprite-mhf_cavespider { background-position: -1184px -640px}.mcsprite-mhf_chest { background-position: -1216px -640px}.mcsprite-mhf_chicken { background-position: -1248px -640px}.mcsprite-mhf_coconutb { background-position: 0 -672px}.mcsprite-mhf_coconutg { background-position: -32px -672px}.mcsprite-mhf_cow { background-position: -64px -672px}.mcsprite-mhf_creeper { background-position: -96px -672px}.mcsprite-mhf_enderman { background-position: -128px -672px}.mcsprite-mhf_exclamation { background-position: -160px -672px}.mcsprite-mhf_ghast { background-position: -192px -672px}.mcsprite-mhf_golem { background-position: -224px -672px}.mcsprite-mhf_herobrine { background-position: -256px -672px}.mcsprite-mhf_lavaslime { background-position: -288px -672px}.mcsprite-mhf_melon { background-position: -320px -672px}.mcsprite-mhf_mushroomcow { background-position: -352px -672px}.mcsprite-mhf_oaklog { background-position: -384px -672px}.mcsprite-mhf_ocelot { background-position: -416px -672px}.mcsprite-mhf_pig { background-position: -448px -672px}.mcsprite-mhf_pigzombie { background-position: -480px -672px}.mcsprite-mhf_present1 { background-position: -512px -672px}.mcsprite-mhf_present2 { background-position: -544px -672px}.mcsprite-mhf_pumpkin { background-position: -576px -672px}.mcsprite-mhf_question { background-position: -608px -672px}.mcsprite-mhf_sheep { background-position: -640px -672px}.mcsprite-mhf_skeleton { background-position: -672px -672px}.mcsprite-mhf_slime { background-position: -704px -672px}.mcsprite-mhf_spider { background-position: -736px -672px}.mcsprite-mhf_squid { background-position: -768px -672px}.mcsprite-mhf_steve { background-position: -800px -672px}.mcsprite-mhf_tnt { background-position: -832px -672px}.mcsprite-mhf_tnt2 { background-position: -864px -672px}.mcsprite-mhf_villager { background-position: -896px -672px}.mcsprite-mhf_wskeleton { background-position: -928px -672px}.mcsprite-mhf_zombie { background-position: -960px -672px}.mcsprite-milk_bucket { background-position: -992px -672px}.mcsprite-minecart { background-position: -1024px -672px}.mcsprite-minecart_with_chest { background-position: -1056px -672px}.mcsprite-minecart_with_command_block { background-position: -1088px -672px}.mcsprite-minecart_with_furnace { background-position: -1120px -672px}.mcsprite-minecart_with_hopper { background-position: -1152px -672px}.mcsprite-minecart_with_tnt { background-position: -1184px -672px}.mcsprite-monster_spawner { background-position: -1216px -672px}.mcsprite-mooshroom_spawn_egg { background-position: -1248px -672px}.mcsprite-moss_block { background-position: 0 -704px}.mcsprite-moss_carpet { background-position: -32px -704px}.mcsprite-moss_stone { background-position: -64px -704px}.mcsprite-mossy_cobblestone { background-position: -96px -704px}.mcsprite-mossy_cobblestone_slab { background-position: -128px -704px}.mcsprite-mossy_cobblestone_stairs { background-position: -160px -704px}.mcsprite-mossy_cobblestone_wall { background-position: -192px -704px}.mcsprite-mossy_stone_brick_slab { background-position: -224px -704px}.mcsprite-mossy_stone_brick_stairs { background-position: -256px -704px}.mcsprite-mossy_stone_brick_wall { background-position: -288px -704px}.mcsprite-mossy_stone_bricks { background-position: -320px -704px}.mcsprite-mossy_stone_bricks_monster_egg { background-position: -352px -704px}.mcsprite-mule_spawn_egg { background-position: -384px -704px}.mcsprite-mundane_lingering_potion { background-position: -416px -704px}.mcsprite-mundane_potion { background-position: -448px -704px}.mcsprite-mundane_splash_potion { background-position: -480px -704px}.mcsprite-mushroom_stem { background-position: -512px -704px}.mcsprite-mushroom_stew { background-position: -544px -704px}.mcsprite-music_disc_11 { background-position: -576px -704px}.mcsprite-music_disc_13 { background-position: -608px -704px}.mcsprite-music_disc_blocks { background-position: -640px -704px}.mcsprite-music_disc_cat { background-position: -672px -704px}.mcsprite-music_disc_chirp { background-position: -704px -704px}.mcsprite-music_disc_far { background-position: -736px -704px}.mcsprite-music_disc_mall { background-position: -768px -704px}.mcsprite-music_disc_mellohi { background-position: -800px -704px}.mcsprite-music_disc_pigstep { background-position: -832px -704px}.mcsprite-music_disc_stal { background-position: -864px -704px}.mcsprite-music_disc_strad { background-position: -896px -704px}.mcsprite-music_disc_wait { background-position: -928px -704px}.mcsprite-music_disc_ward { background-position: -960px -704px}.mcsprite-mycelium { background-position: -992px -704px}.mcsprite-name_tag { background-position: -1024px -704px}.mcsprite-nautilus_shell { background-position: -1056px -704px}.mcsprite-nether_brick { background-position: -1088px -704px}.mcsprite-nether_brick_block { background-position: -1120px -704px}.mcsprite-nether_brick_fence { background-position: -1152px -704px}.mcsprite-nether_brick_slab { background-position: -1184px -704px}.mcsprite-nether_brick_stairs { background-position: -1216px -704px}.mcsprite-nether_brick_wall { background-position: -1248px -704px}.mcsprite-nether_bricks { background-position: 0 -736px}.mcsprite-nether_gold_ore { background-position: -32px -736px}.mcsprite-nether_quartz { background-position: -64px -736px}.mcsprite-nether_quartz_ore { background-position: -96px -736px}.mcsprite-nether_sprouts { background-position: -128px -736px}.mcsprite-nether_sprouts_old { background-position: -160px -736px}.mcsprite-nether_star { background-position: -192px -736px}.mcsprite-nether_wart { background-position: -224px -736px}.mcsprite-nether_wart_block { background-position: -256px -736px}.mcsprite-netherite_axe { background-position: -288px -736px}.mcsprite-netherite_boots { background-position: -320px -736px}.mcsprite-netherite_chestplate { background-position: -352px -736px}.mcsprite-netherite_helmet { background-position: -384px -736px}.mcsprite-netherite_hoe { background-position: -416px -736px}.mcsprite-netherite_ingot { background-position: -448px -736px}.mcsprite-netherite_leggings { background-position: -480px -736px}.mcsprite-netherite_pickaxe { background-position: -512px -736px}.mcsprite-netherite_scrap { background-position: -544px -736px}.mcsprite-netherite_shovel { background-position: -576px -736px}.mcsprite-netherite_sword { background-position: -608px -736px}.mcsprite-netherrack { background-position: -640px -736px}.mcsprite-note_block { background-position: -672px -736px}.mcsprite-oak_boat { background-position: -704px -736px}.mcsprite-oak_button { background-position: -736px -736px}.mcsprite-oak_door { background-position: -768px -736px}.mcsprite-oak_fence { background-position: -800px -736px}.mcsprite-oak_fence_gate { background-position: -832px -736px}.mcsprite-oak_leaves { background-position: -864px -736px}.mcsprite-oak_log { background-position: -896px -736px}.mcsprite-oak_planks { background-position: -928px -736px}.mcsprite-oak_pressure_plate { background-position: -960px -736px}.mcsprite-oak_sapling { background-position: -992px -736px}.mcsprite-oak_sign { background-position: -1024px -736px}.mcsprite-oak_slab { background-position: -1056px -736px}.mcsprite-oak_stairs { background-position: -1088px -736px}.mcsprite-oak_trapdoor { background-position: -1120px -736px}.mcsprite-oak_wood { background-position: -1152px -736px}.mcsprite-oak_wood_button { background-position: -1184px -736px}.mcsprite-oak_wood_door { background-position: -1216px -736px}.mcsprite-oak_wood_fence { background-position: -1248px -736px}.mcsprite-oak_wood_fence_gate { background-position: 0 -768px}.mcsprite-oak_wood_planks { background-position: -32px -768px}.mcsprite-oak_wood_pressure_plate { background-position: -64px -768px}.mcsprite-oak_wood_sign { background-position: -96px -768px}.mcsprite-oak_wood_slab { background-position: -128px -768px}.mcsprite-oak_wood_stairs { background-position: -160px -768px}.mcsprite-oak_wood_trapdoor { background-position: -192px -768px}.mcsprite-observer { background-position: -224px -768px}.mcsprite-obsidian { background-position: -256px -768px}.mcsprite-ocean_explorer_map { background-position: -288px -768px}.mcsprite-ocelot_spawn_egg { background-position: -320px -768px}.mcsprite-ominous_shield { background-position: -352px -768px}.mcsprite-orange_banner { background-position: -384px -768px}.mcsprite-orange_bed { background-position: -416px -768px}.mcsprite-orange_bed_lce { background-position: -448px -768px}.mcsprite-orange_candle { background-position: -480px -768px}.mcsprite-orange_carpet { background-position: -512px -768px}.mcsprite-orange_concrete { background-position: -544px -768px}.mcsprite-orange_concrete_powder { background-position: -576px -768px}.mcsprite-orange_dye { background-position: -608px -768px}.mcsprite-orange_firework_star { background-position: -640px -768px}.mcsprite-orange_glazed_terracotta { background-position: -672px -768px}.mcsprite-orange_shield { background-position: -704px -768px}.mcsprite-orange_shulker_box { background-position: -736px -768px}.mcsprite-orange_stained_glass { background-position: -768px -768px}.mcsprite-orange_stained_glass_pane { background-position: -800px -768px}.mcsprite-orange_terracotta { background-position: -832px -768px}.mcsprite-orange_tulip { background-position: -864px -768px}.mcsprite-orange_wool { background-position: -896px -768px}.mcsprite-oxeye_daisy { background-position: -928px -768px}.mcsprite-oxidized_copper { background-position: -960px -768px}.mcsprite-oxidized_copper_block { background-position: -992px -768px}.mcsprite-oxidized_cut_copper { background-position: -1024px -768px}.mcsprite-oxidized_cut_copper_block { background-position: -1056px -768px}.mcsprite-oxidized_cut_copper_slab { background-position: -1088px -768px}.mcsprite-oxidized_cut_copper_stairs { background-position: -1120px -768px}.mcsprite-packed_ice { background-position: -1152px -768px}.mcsprite-painting { background-position: -1184px -768px}.mcsprite-panda_spawn_egg { background-position: -1216px -768px}.mcsprite-paper { background-position: -1248px -768px}.mcsprite-parrot_spawn_egg { background-position: 0 -800px}.mcsprite-peony { background-position: -32px -800px}.mcsprite-petrified_oak_slab { background-position: -64px -800px}.mcsprite-phantom_membrane { background-position: -96px -800px}.mcsprite-phantom_spawn_egg { background-position: -128px -800px}.mcsprite-pig_spawn_egg { background-position: -160px -800px}.mcsprite-piglin_brute_spawn_egg { background-position: -192px -800px}.mcsprite-piglin_spawn_egg { background-position: -224px -800px}.mcsprite-pillager_spawn_egg { background-position: -256px -800px}.mcsprite-pink_banner { background-position: -288px -800px}.mcsprite-pink_bed { background-position: -320px -800px}.mcsprite-pink_bed_lce { background-position: -352px -800px}.mcsprite-pink_candle { background-position: -384px -800px}.mcsprite-pink_carpet { background-position: -416px -800px}.mcsprite-pink_concrete { background-position: -448px -800px}.mcsprite-pink_concrete_powder { background-position: -480px -800px}.mcsprite-pink_dye { background-position: -512px -800px}.mcsprite-pink_firework_star { background-position: -544px -800px}.mcsprite-pink_glazed_terracotta { background-position: -576px -800px}.mcsprite-pink_shield { background-position: -608px -800px}.mcsprite-pink_shulker_box { background-position: -640px -800px}.mcsprite-pink_stained_glass { background-position: -672px -800px}.mcsprite-pink_stained_glass_pane { background-position: -704px -800px}.mcsprite-pink_terracotta { background-position: -736px -800px}.mcsprite-pink_tulip { background-position: -768px -800px}.mcsprite-pink_wool { background-position: -800px -800px}.mcsprite-piston { background-position: -832px -800px}.mcsprite-player_head { background-position: -864px -800px}.mcsprite-podzol { background-position: -896px -800px}.mcsprite-pointed_dripstone { background-position: -928px -800px}.mcsprite-poisonous_potato { background-position: -960px -800px}.mcsprite-polar_bear_spawn_egg { background-position: -992px -800px}.mcsprite-polished_andesite { background-position: -1024px -800px}.mcsprite-polished_andesite_slab { background-position: -1056px -800px}.mcsprite-polished_andesite_stairs { background-position: -1088px -800px}.mcsprite-polished_basalt { background-position: -1120px -800px}.mcsprite-polished_blackstone { background-position: -1152px -800px}.mcsprite-polished_blackstone_brick_slab { background-position: -1184px -800px}.mcsprite-polished_blackstone_brick_stairs { background-position: -1216px -800px}.mcsprite-polished_blackstone_brick_wall { background-position: -1248px -800px}.mcsprite-polished_blackstone_bricks { background-position: 0 -832px}.mcsprite-polished_blackstone_button { background-position: -32px -832px}.mcsprite-polished_blackstone_pressure_plate { background-position: -64px -832px}.mcsprite-polished_blackstone_slab { background-position: -96px -832px}.mcsprite-polished_blackstone_stairs { background-position: -128px -832px}.mcsprite-polished_blackstone_wall { background-position: -160px -832px}.mcsprite-polished_deepslate { background-position: -192px -832px}.mcsprite-polished_deepslate_slab { background-position: -224px -832px}.mcsprite-polished_deepslate_stairs { background-position: -256px -832px}.mcsprite-polished_deepslate_wall { background-position: -288px -832px}.mcsprite-polished_diorite { background-position: -320px -832px}.mcsprite-polished_diorite_slab { background-position: -352px -832px}.mcsprite-polished_diorite_stairs { background-position: -384px -832px}.mcsprite-polished_granite { background-position: -416px -832px}.mcsprite-polished_granite_slab { background-position: -448px -832px}.mcsprite-polished_granite_stairs { background-position: -480px -832px}.mcsprite-popped_chorus_fruit { background-position: -512px -832px}.mcsprite-poppy { background-position: -544px -832px}.mcsprite-portal { background-position: -576px -832px}.mcsprite-potato { background-position: -608px -832px}.mcsprite-potion_of_decay { background-position: -640px -832px}.mcsprite-potion_of_fire_resistance { background-position: -672px -832px}.mcsprite-potion_of_harming { background-position: -704px -832px}.mcsprite-potion_of_healing { background-position: -736px -832px}.mcsprite-potion_of_invisibility { background-position: -768px -832px}.mcsprite-potion_of_leaping { background-position: -800px -832px}.mcsprite-potion_of_levitation { background-position: -832px -832px}.mcsprite-potion_of_luck { background-position: -864px -832px}.mcsprite-potion_of_night_vision { background-position: -896px -832px}.mcsprite-potion_of_poison { background-position: -928px -832px}.mcsprite-potion_of_regeneration { background-position: -960px -832px}.mcsprite-potion_of_slow_falling { background-position: -992px -832px}.mcsprite-potion_of_slowness { background-position: -1024px -832px}.mcsprite-potion_of_strength { background-position: -1056px -832px}.mcsprite-potion_of_swiftness { background-position: -1088px -832px}.mcsprite-potion_of_the_turtle_master { background-position: -1120px -832px}.mcsprite-potion_of_water_breathing { background-position: -1152px -832px}.mcsprite-potion_of_weakness { background-position: -1184px -832px}.mcsprite-powder_snow { background-position: -1216px -832px}.mcsprite-powder_snow_bucket { background-position: -1248px -832px}.mcsprite-powered_rail { background-position: 0 -864px}.mcsprite-prismarine { background-position: -32px -864px}.mcsprite-prismarine_brick_slab { background-position: -64px -864px}.mcsprite-prismarine_brick_stairs { background-position: -96px -864px}.mcsprite-prismarine_brick_stairs_old { background-position: -128px -864px}.mcsprite-prismarine_bricks { background-position: -160px -864px}.mcsprite-prismarine_bricks_slab { background-position: -192px -864px}.mcsprite-prismarine_crystals { background-position: -224px -864px}.mcsprite-prismarine_shard { background-position: -256px -864px}.mcsprite-prismarine_wall { background-position: -288px -864px}.mcsprite-pufferfish { background-position: -320px -864px}.mcsprite-pufferfish_spawn_egg { background-position: -352px -864px}.mcsprite-pumpkin { background-position: -384px -864px}.mcsprite-pumpkin_pie { background-position: -416px -864px}.mcsprite-pumpkin_seeds { background-position: -448px -864px}.mcsprite-purple_banner { background-position: -480px -864px}.mcsprite-purple_bed { background-position: -512px -864px}.mcsprite-purple_bed_lce { background-position: -544px -864px}.mcsprite-purple_candle { background-position: -576px -864px}.mcsprite-purple_carpet { background-position: -608px -864px}.mcsprite-purple_concrete { background-position: -640px -864px}.mcsprite-purple_concrete_powder { background-position: -672px -864px}.mcsprite-purple_dye { background-position: -704px -864px}.mcsprite-purple_firework_star { background-position: -736px -864px}.mcsprite-purple_glazed_terracotta { background-position: -768px -864px}.mcsprite-purple_shield { background-position: -800px -864px}.mcsprite-purple_shulker_box { background-position: -832px -864px}.mcsprite-purple_stained_glass { background-position: -864px -864px}.mcsprite-purple_stained_glass_pane { background-position: -896px -864px}.mcsprite-purple_terracotta { background-position: -928px -864px}.mcsprite-purple_wool { background-position: -960px -864px}.mcsprite-purpur_block { background-position: -992px -864px}.mcsprite-purpur_pillar { background-position: -1024px -864px}.mcsprite-purpur_slab { background-position: -1056px -864px}.mcsprite-purpur_stairs { background-position: -1088px -864px}.mcsprite-quartz_bricks { background-position: -1120px -864px}.mcsprite-quartz_pillar { background-position: -1152px -864px}.mcsprite-quartz_slab { background-position: -1184px -864px}.mcsprite-quartz_stairs { background-position: -1216px -864px}.mcsprite-rabbit_hide { background-position: -1248px -864px}.mcsprite-rabbit_spawn_egg { background-position: 0 -896px}.mcsprite-rabbit_stew { background-position: -32px -896px}.mcsprite-rabbits_foot { background-position: -64px -896px}.mcsprite-rail { background-position: -96px -896px}.mcsprite-ravager_spawn_egg { background-position: -128px -896px}.mcsprite-raw_beef { background-position: -160px -896px}.mcsprite-raw_chicken { background-position: -192px -896px}.mcsprite-raw_cod { background-position: -224px -896px}.mcsprite-raw_copper { background-position: -256px -896px}.mcsprite-raw_fish { background-position: -288px -896px}.mcsprite-raw_gold { background-position: -320px -896px}.mcsprite-raw_iron { background-position: -352px -896px}.mcsprite-raw_mutton { background-position: -384px -896px}.mcsprite-raw_porkchop { background-position: -416px -896px}.mcsprite-raw_rabbit { background-position: -448px -896px}.mcsprite-raw_salmon { background-position: -480px -896px}.mcsprite-red_banner { background-position: -512px -896px}.mcsprite-red_bed { background-position: -544px -896px}.mcsprite-red_bed_lce { background-position: -576px -896px}.mcsprite-red_candle { background-position: -608px -896px}.mcsprite-red_carpet { background-position: -640px -896px}.mcsprite-red_concrete { background-position: -672px -896px}.mcsprite-red_concrete_powder { background-position: -704px -896px}.mcsprite-red_dye { background-position: -736px -896px}.mcsprite-red_firework_star { background-position: -768px -896px}.mcsprite-red_glazed_terracotta { background-position: -800px -896px}.mcsprite-red_mushroom { background-position: -832px -896px}.mcsprite-red_mushroom_block { background-position: -864px -896px}.mcsprite-red_nether_brick_slab { background-position: -896px -896px}.mcsprite-red_nether_brick_stairs { background-position: -928px -896px}.mcsprite-red_nether_brick_wall { background-position: -960px -896px}.mcsprite-red_nether_bricks { background-position: -992px -896px}.mcsprite-red_sand { background-position: -1024px -896px}.mcsprite-red_sandstone { background-position: -1056px -896px}.mcsprite-red_sandstone_slab { background-position: -1088px -896px}.mcsprite-red_sandstone_stairs { background-position: -1120px -896px}.mcsprite-red_sandstone_wall { background-position: -1152px -896px}.mcsprite-red_shield { background-position: -1184px -896px}.mcsprite-red_shulker_box { background-position: -1216px -896px}.mcsprite-red_stained_glass { background-position: -1248px -896px}.mcsprite-red_stained_glass_pane { background-position: 0 -928px}.mcsprite-red_terracotta { background-position: -32px -928px}.mcsprite-red_tulip { background-position: -64px -928px}.mcsprite-red_wool { background-position: -96px -928px}.mcsprite-redstone { background-position: -128px -928px}.mcsprite-redstone_comparator { background-position: -160px -928px}.mcsprite-redstone_dust { background-position: -192px -928px}.mcsprite-redstone_lamp { background-position: -224px -928px}.mcsprite-redstone_ore { background-position: -256px -928px}.mcsprite-redstone_repeater { background-position: -288px -928px}.mcsprite-redstone_torch { background-position: -320px -928px}.mcsprite-respawn_anchor { background-position: -352px -928px}.mcsprite-rooted_dirt { background-position: -384px -928px}.mcsprite-rose_bush { background-position: -416px -928px}.mcsprite-rose_red { background-position: -448px -928px}.mcsprite-rotten_flesh { background-position: -480px -928px}.mcsprite-saddle { background-position: -512px -928px}.mcsprite-salmon_spawn_egg { background-position: -544px -928px}.mcsprite-sand { background-position: -576px -928px}.mcsprite-sandstone { background-position: -608px -928px}.mcsprite-sandstone_slab { background-position: -640px -928px}.mcsprite-sandstone_stairs { background-position: -672px -928px}.mcsprite-sandstone_wall { background-position: -704px -928px}.mcsprite-scaffolding { background-position: -736px -928px}.mcsprite-sculk_sensor { background-position: -768px -928px}.mcsprite-scute { background-position: -800px -928px}.mcsprite-sea_lantern { background-position: -832px -928px}.mcsprite-sea_pickle { background-position: -864px -928px}.mcsprite-seagrass { background-position: -896px -928px}.mcsprite-seeds { background-position: -928px -928px}.mcsprite-shears { background-position: -960px -928px}.mcsprite-sheep_spawn_egg { background-position: -992px -928px}.mcsprite-shield { background-position: -1024px -928px}.mcsprite-shroomlight { background-position: -1056px -928px}.mcsprite-shrub_lce { background-position: -1088px -928px}.mcsprite-shulker_box { background-position: -1120px -928px}.mcsprite-shulker_shell { background-position: -1152px -928px}.mcsprite-shulker_spawn_egg { background-position: -1184px -928px}.mcsprite-silverfish_spawn_egg { background-position: -1216px -928px}.mcsprite-skeleton_horse_spawn_egg { background-position: -1248px -928px}.mcsprite-skeleton_skull { background-position: 0 -960px}.mcsprite-skeleton_spawn_egg { background-position: -32px -960px}.mcsprite-slime_block { background-position: -64px -960px}.mcsprite-slime_spawn_egg { background-position: -96px -960px}.mcsprite-slimeball { background-position: -128px -960px}.mcsprite-small_amethyst_bud { background-position: -160px -960px}.mcsprite-small_dripleaf { background-position: -192px -960px}.mcsprite-smithing_table { background-position: -224px -960px}.mcsprite-smoker { background-position: -256px -960px}.mcsprite-smooth_basalt { background-position: -288px -960px}.mcsprite-smooth_quartz { background-position: -320px -960px}.mcsprite-smooth_quartz_block { background-position: -352px -960px}.mcsprite-smooth_quartz_slab { background-position: -384px -960px}.mcsprite-smooth_quartz_stairs { background-position: -416px -960px}.mcsprite-smooth_red_sandstone { background-position: -448px -960px}.mcsprite-smooth_red_sandstone_slab { background-position: -480px -960px}.mcsprite-smooth_red_sandstone_stairs { background-position: -512px -960px}.mcsprite-smooth_sandstone { background-position: -544px -960px}.mcsprite-smooth_sandstone_slab { background-position: -576px -960px}.mcsprite-smooth_sandstone_stairs { background-position: -608px -960px}.mcsprite-smooth_stone { background-position: -640px -960px}.mcsprite-smooth_stone_bricks { background-position: -672px -960px}.mcsprite-smooth_stone_slab { background-position: -704px -960px}.mcsprite-snow { background-position: -736px -960px}.mcsprite-snow_block { background-position: -768px -960px}.mcsprite-snowball { background-position: -800px -960px}.mcsprite-soul_campfire { background-position: -832px -960px}.mcsprite-soul_lantern { background-position: -864px -960px}.mcsprite-soul_sand { background-position: -896px -960px}.mcsprite-soul_soil { background-position: -928px -960px}.mcsprite-soul_torch { background-position: -960px -960px}.mcsprite-spawn_agent { background-position: -992px -960px}.mcsprite-spawn_bat { background-position: -1024px -960px}.mcsprite-spawn_bee { background-position: -1056px -960px}.mcsprite-spawn_blaze { background-position: -1088px -960px}.mcsprite-spawn_cat { background-position: -1120px -960px}.mcsprite-spawn_cave_spider { background-position: -1152px -960px}.mcsprite-spawn_chicken { background-position: -1184px -960px}.mcsprite-spawn_cod { background-position: -1216px -960px}.mcsprite-spawn_cow { background-position: -1248px -960px}.mcsprite-spawn_creeper { background-position: 0 -992px}.mcsprite-spawn_dolphin { background-position: -32px -992px}.mcsprite-spawn_donkey { background-position: -64px -992px}.mcsprite-spawn_drowned { background-position: -96px -992px}.mcsprite-spawn_elder_guardian { background-position: -128px -992px}.mcsprite-spawn_enderman { background-position: -160px -992px}.mcsprite-spawn_endermite { background-position: -192px -992px}.mcsprite-spawn_evoker { background-position: -224px -992px}.mcsprite-spawn_fox { background-position: -256px -992px}.mcsprite-spawn_ghast { background-position: -288px -992px}.mcsprite-spawn_goat { background-position: -320px -992px}.mcsprite-spawn_guardian { background-position: -352px -992px}.mcsprite-spawn_horse { background-position: -384px -992px}.mcsprite-spawn_husk { background-position: -416px -992px}.mcsprite-spawn_llama { background-position: -448px -992px}.mcsprite-spawn_magma_cube { background-position: -480px -992px}.mcsprite-spawn_mask { background-position: -512px -992px}.mcsprite-spawn_mooshroom { background-position: -544px -992px}.mcsprite-spawn_mule { background-position: -576px -992px}.mcsprite-spawn_npc { background-position: -608px -992px}.mcsprite-spawn_ocelot { background-position: -640px -992px}.mcsprite-spawn_panda { background-position: -672px -992px}.mcsprite-spawn_parrot { background-position: -704px -992px}.mcsprite-spawn_phantom { background-position: -736px -992px}.mcsprite-spawn_pig { background-position: -768px -992px}.mcsprite-spawn_pillager { background-position: -800px -992px}.mcsprite-spawn_polar_bear { background-position: -832px -992px}.mcsprite-spawn_pufferfish { background-position: -864px -992px}.mcsprite-spawn_rabbit { background-position: -896px -992px}.mcsprite-spawn_ravager { background-position: -928px -992px}.mcsprite-spawn_salmon { background-position: -960px -992px}.mcsprite-spawn_sheep { background-position: -992px -992px}.mcsprite-spawn_shulker { background-position: -1024px -992px}.mcsprite-spawn_silverfish { background-position: -1056px -992px}.mcsprite-spawn_skeleton { background-position: -1088px -992px}.mcsprite-spawn_skeleton_horse { background-position: -1120px -992px}.mcsprite-spawn_slime { background-position: -1152px -992px}.mcsprite-spawn_spider { background-position: -1184px -992px}.mcsprite-spawn_squid { background-position: -1216px -992px}.mcsprite-spawn_stray { background-position: -1248px -992px}.mcsprite-spawn_strider { background-position: 0 -1024px}.mcsprite-spawn_trader_llama { background-position: -32px -1024px}.mcsprite-spawn_tropical_fish { background-position: -64px -1024px}.mcsprite-spawn_turtle { background-position: -96px -1024px}.mcsprite-spawn_vex { background-position: -128px -1024px}.mcsprite-spawn_villager { background-position: -160px -1024px}.mcsprite-spawn_vindicator { background-position: -192px -1024px}.mcsprite-spawn_wandering_trader { background-position: -224px -1024px}.mcsprite-spawn_witch { background-position: -256px -1024px}.mcsprite-spawn_wither_skeleton { background-position: -288px -1024px}.mcsprite-spawn_wolf { background-position: -320px -1024px}.mcsprite-spawn_zoglin { background-position: -352px -1024px}.mcsprite-spawn_zombie { background-position: -384px -1024px}.mcsprite-spawn_zombie_horse { background-position: -416px -1024px}.mcsprite-spawn_zombie_pigman { background-position: -448px -1024px}.mcsprite-spawn_zombie_villager { background-position: -480px -1024px}.mcsprite-spawner { background-position: -512px -1024px}.mcsprite-spectral_arrow { background-position: -544px -1024px}.mcsprite-spider_eye { background-position: -576px -1024px}.mcsprite-spider_spawn_egg { background-position: -608px -1024px}.mcsprite-splash_mundane_potion { background-position: -640px -1024px}.mcsprite-splash_potion_of_decay { background-position: -672px -1024px}.mcsprite-splash_potion_of_fire_resistance { background-position: -704px -1024px}.mcsprite-splash_potion_of_harming { background-position: -736px -1024px}.mcsprite-splash_potion_of_healing { background-position: -768px -1024px}.mcsprite-splash_potion_of_invisibility { background-position: -800px -1024px}.mcsprite-splash_potion_of_leaping { background-position: -832px -1024px}.mcsprite-splash_potion_of_levitation { background-position: -864px -1024px}.mcsprite-splash_potion_of_luck { background-position: -896px -1024px}.mcsprite-splash_potion_of_night_vision { background-position: -928px -1024px}.mcsprite-splash_potion_of_poison { background-position: -960px -1024px}.mcsprite-splash_potion_of_regeneration { background-position: -992px -1024px}.mcsprite-splash_potion_of_slow_falling { background-position: -1024px -1024px}.mcsprite-splash_potion_of_slowness { background-position: -1056px -1024px}.mcsprite-splash_potion_of_strength { background-position: -1088px -1024px}.mcsprite-splash_potion_of_swiftness { background-position: -1120px -1024px}.mcsprite-splash_potion_of_the_turtle_master { background-position: -1152px -1024px}.mcsprite-splash_potion_of_water_breathing { background-position: -1184px -1024px}.mcsprite-splash_potion_of_weakness { background-position: -1216px -1024px}.mcsprite-splash_water_bottle { background-position: -1248px -1024px}.mcsprite-sponge { background-position: 0 -1056px}.mcsprite-spore_blossom { background-position: -32px -1056px}.mcsprite-spruce_boat { background-position: -64px -1056px}.mcsprite-spruce_button { background-position: -96px -1056px}.mcsprite-spruce_door { background-position: -128px -1056px}.mcsprite-spruce_fence { background-position: -160px -1056px}.mcsprite-spruce_fence_gate { background-position: -192px -1056px}.mcsprite-spruce_leaves { background-position: -224px -1056px}.mcsprite-spruce_log { background-position: -256px -1056px}.mcsprite-spruce_planks { background-position: -288px -1056px}.mcsprite-spruce_pressure_plate { background-position: -320px -1056px}.mcsprite-spruce_sapling { background-position: -352px -1056px}.mcsprite-spruce_sign { background-position: -384px -1056px}.mcsprite-spruce_slab { background-position: -416px -1056px}.mcsprite-spruce_stairs { background-position: -448px -1056px}.mcsprite-spruce_trapdoor { background-position: -480px -1056px}.mcsprite-spruce_wood { background-position: -512px -1056px}.mcsprite-spruce_wood_button { background-position: -544px -1056px}.mcsprite-spruce_wood_door { background-position: -576px -1056px}.mcsprite-spruce_wood_fence { background-position: -608px -1056px}.mcsprite-spruce_wood_fence_gate { background-position: -640px -1056px}.mcsprite-spruce_wood_planks { background-position: -672px -1056px}.mcsprite-spruce_wood_pressure_plate { background-position: -704px -1056px}.mcsprite-spruce_wood_sign { background-position: -736px -1056px}.mcsprite-spruce_wood_slab { background-position: -768px -1056px}.mcsprite-spruce_wood_stairs { background-position: -800px -1056px}.mcsprite-spruce_wood_trapdoor { background-position: -832px -1056px}.mcsprite-spyglass { background-position: -864px -1056px}.mcsprite-squid_spawn_egg { background-position: -896px -1056px}.mcsprite-steak { background-position: -928px -1056px}.mcsprite-stick { background-position: -960px -1056px}.mcsprite-sticky_piston { background-position: -992px -1056px}.mcsprite-stone { background-position: -1024px -1056px}.mcsprite-stone_axe { background-position: -1056px -1056px}.mcsprite-stone_brick_slab { background-position: -1088px -1056px}.mcsprite-stone_brick_stairs { background-position: -1120px -1056px}.mcsprite-stone_brick_wall { background-position: -1152px -1056px}.mcsprite-stone_bricks { background-position: -1184px -1056px}.mcsprite-stone_bricks_monster_egg { background-position: -1216px -1056px}.mcsprite-stone_button { background-position: -1248px -1056px}.mcsprite-stone_hoe { background-position: 0 -1088px}.mcsprite-stone_monster_egg { background-position: -32px -1088px}.mcsprite-stone_pickaxe { background-position: -64px -1088px}.mcsprite-stone_pressure_plate { background-position: -96px -1088px}.mcsprite-stone_shovel { background-position: -128px -1088px}.mcsprite-stone_slab { background-position: -160px -1088px}.mcsprite-stone_stairs { background-position: -192px -1088px}.mcsprite-stone_sword { background-position: -224px -1088px}.mcsprite-stray_spawn_egg { background-position: -256px -1088px}.mcsprite-strider_spawn_egg { background-position: -288px -1088px}.mcsprite-string { background-position: -320px -1088px}.mcsprite-stripped_acacia_log { background-position: -352px -1088px}.mcsprite-stripped_acacia_wood { background-position: -384px -1088px}.mcsprite-stripped_birch_log { background-position: -416px -1088px}.mcsprite-stripped_birch_wood { background-position: -448px -1088px}.mcsprite-stripped_crimson_hyphae { background-position: -480px -1088px}.mcsprite-stripped_crimson_stem { background-position: -512px -1088px}.mcsprite-stripped_dark_oak_log { background-position: -544px -1088px}.mcsprite-stripped_dark_oak_wood { background-position: -576px -1088px}.mcsprite-stripped_jungle_log { background-position: -608px -1088px}.mcsprite-stripped_jungle_wood { background-position: -640px -1088px}.mcsprite-stripped_oak_log { background-position: -672px -1088px}.mcsprite-stripped_oak_wood { background-position: -704px -1088px}.mcsprite-stripped_spruce_log { background-position: -736px -1088px}.mcsprite-stripped_spruce_wood { background-position: -768px -1088px}.mcsprite-stripped_warped_hyphae { background-position: -800px -1088px}.mcsprite-stripped_warped_stem { background-position: -832px -1088px}.mcsprite-structure_block { background-position: -864px -1088px}.mcsprite-structure_void { background-position: -896px -1088px}.mcsprite-sugar { background-position: -928px -1088px}.mcsprite-sugar_cane { background-position: -960px -1088px}.mcsprite-sunflower { background-position: -992px -1088px}.mcsprite-suspicious_stew { background-position: -1024px -1088px}.mcsprite-sweet_berries { background-position: -1056px -1088px}.mcsprite-tall_grass { background-position: -1088px -1088px}.mcsprite-target { background-position: -1120px -1088px}.mcsprite-terracotta { background-position: -1152px -1088px}.mcsprite-thick_lingering_potion { background-position: -1184px -1088px}.mcsprite-thick_potion { background-position: -1216px -1088px}.mcsprite-thick_splash_potion { background-position: -1248px -1088px}.mcsprite-tinted_glass { background-position: 0 -1120px}.mcsprite-tipped_arrow { background-position: -32px -1120px}.mcsprite-tnt { background-position: -64px -1120px}.mcsprite-top_snow { background-position: -96px -1120px}.mcsprite-torch { background-position: -128px -1120px}.mcsprite-totem_of_undying { background-position: -160px -1120px}.mcsprite-trader_llama_spawn_egg { background-position: -192px -1120px}.mcsprite-trapped_chest { background-position: -224px -1120px}.mcsprite-treasure_map { background-position: -256px -1120px}.mcsprite-trident { background-position: -288px -1120px}.mcsprite-tripwire_hook { background-position: -320px -1120px}.mcsprite-tropical_fish { background-position: -352px -1120px}.mcsprite-tropical_fish_spawn_egg { background-position: -384px -1120px}.mcsprite-tube_coral { background-position: -416px -1120px}.mcsprite-tube_coral_block { background-position: -448px -1120px}.mcsprite-tube_coral_fan { background-position: -480px -1120px}.mcsprite-tuff { background-position: -512px -1120px}.mcsprite-turtle_egg { background-position: -544px -1120px}.mcsprite-turtle_helmet { background-position: -576px -1120px}.mcsprite-turtle_shell { background-position: -608px -1120px}.mcsprite-turtle_spawn_egg { background-position: -640px -1120px}.mcsprite-twisting_vines { background-position: -672px -1120px}.mcsprite-uncraftable_lingering_potion { background-position: -704px -1120px}.mcsprite-uncraftable_potion { background-position: -736px -1120px}.mcsprite-uncraftable_splash_potion { background-position: -768px -1120px}.mcsprite-uncraftable_tipped_arrow { background-position: -800px -1120px}.mcsprite-vex_spawn_egg { background-position: -832px -1120px}.mcsprite-villager_spawn_egg { background-position: -864px -1120px}.mcsprite-vindicator_spawn_egg { background-position: -896px -1120px}.mcsprite-vines { background-position: -928px -1120px}.mcsprite-void_air { background-position: -960px -1120px}.mcsprite-wandering_trader_spawn_egg { background-position: -992px -1120px}.mcsprite-warped_button { background-position: -1024px -1120px}.mcsprite-warped_door { background-position: -1056px -1120px}.mcsprite-warped_fence { background-position: -1088px -1120px}.mcsprite-warped_fence_gate { background-position: -1120px -1120px}.mcsprite-warped_fungus { background-position: -1152px -1120px}.mcsprite-warped_fungus_on_a_stick { background-position: -1184px -1120px}.mcsprite-warped_hyphae { background-position: -1216px -1120px}.mcsprite-warped_nylium { background-position: -1248px -1120px}.mcsprite-warped_planks { background-position: 0 -1152px}.mcsprite-warped_pressure_plate { background-position: -32px -1152px}.mcsprite-warped_roots { background-position: -64px -1152px}.mcsprite-warped_sign { background-position: -96px -1152px}.mcsprite-warped_slab { background-position: -128px -1152px}.mcsprite-warped_stairs { background-position: -160px -1152px}.mcsprite-warped_stem { background-position: -192px -1152px}.mcsprite-warped_trapdoor { background-position: -224px -1152px}.mcsprite-warped_wart_block { background-position: -256px -1152px}.mcsprite-water { background-position: -288px -1152px}.mcsprite-water_bottle { background-position: -320px -1152px}.mcsprite-water_bucket { background-position: -352px -1152px}.mcsprite-waxed_block_of_copper { background-position: -384px -1152px}.mcsprite-waxed_copper { background-position: -416px -1152px}.mcsprite-waxed_copper_block { background-position: -448px -1152px}.mcsprite-waxed_cut_copper { background-position: -480px -1152px}.mcsprite-waxed_cut_copper_block { background-position: -512px -1152px}.mcsprite-waxed_cut_copper_slab { background-position: -544px -1152px}.mcsprite-waxed_cut_copper_stairs { background-position: -576px -1152px}.mcsprite-waxed_exposed_copper { background-position: -608px -1152px}.mcsprite-waxed_exposed_copper_block { background-position: -640px -1152px}.mcsprite-waxed_exposed_cut_copper { background-position: -672px -1152px}.mcsprite-waxed_exposed_cut_copper_block { background-position: -704px -1152px}.mcsprite-waxed_exposed_cut_copper_slab { background-position: -736px -1152px}.mcsprite-waxed_exposed_cut_copper_stairs { background-position: -768px -1152px}.mcsprite-waxed_oxidized_copper { background-position: -800px -1152px}.mcsprite-waxed_oxidized_copper_block { background-position: -832px -1152px}.mcsprite-waxed_oxidized_cut_copper { background-position: -864px -1152px}.mcsprite-waxed_oxidized_cut_copper_block { background-position: -896px -1152px}.mcsprite-waxed_oxidized_cut_copper_slab { background-position: -928px -1152px}.mcsprite-waxed_oxidized_cut_copper_stairs { background-position: -960px -1152px}.mcsprite-waxed_weathered_copper { background-position: -992px -1152px}.mcsprite-waxed_weathered_copper_block { background-position: -1024px -1152px}.mcsprite-waxed_weathered_cut_copper { background-position: -1056px -1152px}.mcsprite-waxed_weathered_cut_copper_block { background-position: -1088px -1152px}.mcsprite-waxed_weathered_cut_copper_slab { background-position: -1120px -1152px}.mcsprite-waxed_weathered_cut_copper_stairs { background-position: -1152px -1152px}.mcsprite-weathered_copper { background-position: -1184px -1152px}.mcsprite-weathered_copper_block { background-position: -1216px -1152px}.mcsprite-weathered_cut_copper { background-position: -1248px -1152px}.mcsprite-weathered_cut_copper_block { background-position: 0 -1184px}.mcsprite-weathered_cut_copper_slab { background-position: -32px -1184px}.mcsprite-weathered_cut_copper_stairs { background-position: -64px -1184px}.mcsprite-weeping_vines { background-position: -96px -1184px}.mcsprite-wet_sponge { background-position: -128px -1184px}.mcsprite-wheat { background-position: -160px -1184px}.mcsprite-wheat_seeds { background-position: -192px -1184px}.mcsprite-white_banner { background-position: -224px -1184px}.mcsprite-white_bed { background-position: -256px -1184px}.mcsprite-white_bed_lce { background-position: -288px -1184px}.mcsprite-white_candle { background-position: -320px -1184px}.mcsprite-white_carpet { background-position: -352px -1184px}.mcsprite-white_concrete { background-position: -384px -1184px}.mcsprite-white_concrete_powder { background-position: -416px -1184px}.mcsprite-white_dye { background-position: -448px -1184px}.mcsprite-white_firework_star { background-position: -480px -1184px}.mcsprite-white_glazed_terracotta { background-position: -512px -1184px}.mcsprite-white_shield { background-position: -544px -1184px}.mcsprite-white_shulker_box { background-position: -576px -1184px}.mcsprite-white_stained_glass { background-position: -608px -1184px}.mcsprite-white_stained_glass_pane { background-position: -640px -1184px}.mcsprite-white_terracotta { background-position: -672px -1184px}.mcsprite-white_tulip { background-position: -704px -1184px}.mcsprite-white_wool { background-position: -736px -1184px}.mcsprite-witch_spawn_egg { background-position: -768px -1184px}.mcsprite-wither_rose { background-position: -800px -1184px}.mcsprite-wither_skeleton_skull { background-position: -832px -1184px}.mcsprite-wither_skeleton_spawn_egg { background-position: -864px -1184px}.mcsprite-wolf_spawn_egg { background-position: -896px -1184px}.mcsprite-wooden_axe { background-position: -928px -1184px}.mcsprite-wooden_hoe { background-position: -960px -1184px}.mcsprite-wooden_pickaxe { background-position: -992px -1184px}.mcsprite-wooden_shovel { background-position: -1024px -1184px}.mcsprite-wooden_slab { background-position: -1056px -1184px}.mcsprite-wooden_sword { background-position: -1088px -1184px}.mcsprite-woodland_explorer_map { background-position: -1120px -1184px}.mcsprite-written_book { background-position: -1152px -1184px}.mcsprite-yellow_banner { background-position: -1184px -1184px}.mcsprite-yellow_bed { background-position: -1216px -1184px}.mcsprite-yellow_bed_lce { background-position: -1248px -1184px}.mcsprite-yellow_candle { background-position: 0 -1216px}.mcsprite-yellow_carpet { background-position: -32px -1216px}.mcsprite-yellow_concrete { background-position: -64px -1216px}.mcsprite-yellow_concrete_powder { background-position: -96px -1216px}.mcsprite-yellow_dye { background-position: -128px -1216px}.mcsprite-yellow_firework_star { background-position: -160px -1216px}.mcsprite-yellow_glazed_terracotta { background-position: -192px -1216px}.mcsprite-yellow_shield { background-position: -224px -1216px}.mcsprite-yellow_shulker_box { background-position: -256px -1216px}.mcsprite-yellow_stained_glass { background-position: -288px -1216px}.mcsprite-yellow_stained_glass_pane { background-position: -320px -1216px}.mcsprite-yellow_terracotta { background-position: -352px -1216px}.mcsprite-yellow_wool { background-position: -384px -1216px}.mcsprite-zoglin_spawn_egg { background-position: -416px -1216px}.mcsprite-zombie_head { background-position: -448px -1216px}.mcsprite-zombie_horse_spawn_egg { background-position: -480px -1216px}.mcsprite-zombie_pigman_spawn_egg { background-position: -512px -1216px}.mcsprite-zombie_spawn_egg { background-position: -544px -1216px}.mcsprite-zombie_villager_spawn_egg { background-position: -576px -1216px}.mcsprite-zombified_piglin_spawn_egg { background-position: -608px -1216px}.toc { display: none; position: relative; margin: 1em 0; padding: .2em .5em; background-color: #f8f9fa; border: solid 1px #eaecf0; box-sizing: border-box}.toctogglecheckbox~ul { visibility: hidden; height: 0}.toctogglecheckbox:not(:checked)~ul { visibility: visible; padding-bottom: 20px; height: auto}.toctitle { padding: 0 25px 0 32px}.toctitle .mw-ui-icon { position: absolute; left: 0}.toctitle .toctogglespan+.mw-ui-icon { top: 8px; right: 0; left: auto}.toctogglelabel { cursor: pointer; position: absolute; left: 0; top: 0; right: 0; height: 50px; z-index: 1}.client-js .toc .toctitle { visibility: hidden; background-position: right center; font-weight: 700; border-bottom: 0}.client-js .toc .toctitle h2 { display: inline-block; font-family: -apple-system,blinkmacsystemfont,segoe ui,roboto,lato,helvetica,arial,sans-serif; font-size: 1.125em; vertical-align: middle}.client-js .toc .tocnumber { display: none}.client-js .toc>ul { margin: 0 22.85714286em 0 32px; padding-left: 0; font-size: .875em}.client-js .toc ul { list-style: none}@media screen and (min-width: 720px) { .client-js .toc { display:table } .client-js .toc .toctitle { visibility: visible }}body { font-family: -apple-system,blinkmacsystemfont,segoe ui,roboto,lato,helvetica,arial,sans-serif; line-height: 1.4; -webkit-tap-highlight-color: rgba(0,0,0,.2); overflow-y: scroll}.content { line-height: 1.65; word-wrap: break-word}.content .center { width: 100%; text-align: center}.content .center>*,.content .center .thumb { margin-left: auto; margin-right: auto}@media all and (max-width: 320px - 1) { html { font-size:80% } .content { margin: 0 12px }}.nomobile { display: none!important}@supports(font: -apple-system-body) { html { font:-apple-system-body } body { font-size: 94.11764706% } @media all and (max-width: 320px - 1) { body { font-size:75.29411765% } }}.content figure,.content .thumb { margin: .6em 0}.content figure .thumbinner,.content .thumb .thumbinner { margin: 0 auto; max-width: 100%!important}.content figcaption,.content .thumbcaption { margin: .5em 0 0; font-size: .8125em; line-height: 1.5; padding: 0!important; color: #54595d}.content .thumbcaption { width: auto!important}.content .mw-image-border,.content .thumbborder { border: 1px solid #c8ccd1}.content .magnify { display: none}.content img { vertical-align: middle}.content .floatright { clear: right; float: right; margin: 0 0 .6em .6em}.content .floatleft { clear: left; float: left; margin: 0 .6em .6em 0}.content a>img,.content noscript>img { max-width: 100%!important; height: auto!important}.content .noresize { max-width: 100%; overflow-x: auto}.content .noresize a>img { max-width: none!important}h1 { font-size: 1.7em}h2 { font-size: 1.5em}h3 { font-size: 1.2em; font-weight: 700}h4 { font-weight: 700}.pre-content h1,.content h1,.content h2 { font-family: linux libertine,helvetica,georgia,times,serif}.pre-content h1,.content h1,.content h2,h3,h4,h5,h6 { line-height: 1.3; word-wrap: break-word; word-break: break-word}.content h2,.content h3,.content h4,.content h5,.content h6 { padding: .5em 0}.content p+h3 { margin-top: 1.5em}.content {}.content ol { padding-left: 2.25em}.content ul { list-style-type: disc; padding-left: 1em}.content ul>li>ul { list-style-type: circle}.content ul>li>ul>li>ul { list-style-type: square}.content ol ol,.content ul ol,.content ol ul,.content ul ul { margin-left: 1em}.content li { margin-bottom: 10px}.content li:last-child { margin-bottom: inherit}dl { margin-left: 1em}dl dt { font-weight: 700}dl dd { display: block; overflow: auto}body.mw-hide-empty-elt .mw-empty-elt { display: none}a:not([href]) { color: #3f7dfb; cursor: pointer}a { color: #3f7dfb; text-decoration: none}a:visited { color: #ba91ff}a:active { color: #986be5}a:hover { text-decoration: underline}a.new,a.new:visited,a.new:hover { color: #d33}a.new>*,a.new:visited>*,a.new:hover>* { color: #d33}a.external { background-size: 10px; background-repeat: no-repeat; background-position: center right; padding-right: 13px}.return-link { display: block; font-size: .875em; margin-top: 1.5em}.plainlinks a { background: 0 0!important; padding: 0!important}.content p { margin: .5em 0 1em}.content hr { background-color: #a2a9b1; height: 1px; border: 0}.content kbd,.content samp,.content code,.content pre { font-family: menlo,consolas,liberation mono,courier new,monospace; border: solid 1px #c8ccd1; white-space: pre-wrap}.content code { padding: .2em .5em}.content pre { padding: 1em}b,strong { font-weight: 700}blockquote { border-left: 3px solid #c8ccd1; padding: 8px 24px 8px 32px; font-family: linux libertine,helvetica,georgia,times,serif; font-size: 1.1em}blockquote>:first-child { margin-top: 0}blockquote>:last-child { margin-bottom: 0}blockquote>:only-child { margin-top: 0; margin-bottom: 0}em,i { font-style: italic}sup { vertical-align: super}sub { vertical-align: sub}sub,sup,.content .mw-ref { font-size: .75em; line-height: 1}@media all and (max-width: 720px) { .content table { display:block; width: 100%!important; box-sizing: border-box } .content table.wikitable { border: 0 } .content caption { display: block }}.content table { margin: 1em 0; overflow: auto; overflow-y: hidden; overflow-x: auto}.content table caption { text-align: left}.wikitable { border: 1px solid #54595d; border-color: rgba(84,89,93,.3)}.wikitable>tr>th,.wikitable>tr>td,.wikitable>*>tr>th,.wikitable>*>tr>td { border: 1px solid #54595d; border-color: rgba(84,89,93,.3); padding: .2em}.wikitable>tr>th,.wikitable>*>tr>th { background-color: #eaecf0}@media screen and (min-width: 720px) { .client-js #searchIcon { display:none } .header .branding-box { width: 10.0625em } .header .search-box { display: table-cell; width: auto } .header .search-box .search { width: 23.4375em } .pre-content,#mw-content-text>form,.content,.post-content { max-width: 993.3px; margin: 0 3.35em } .content figure,.content .thumb { max-width: 704px } .content figure.mw-halign-left,.content .thumb.mw-halign-left,.content figure.tleft,.content .thumb.tleft { float: left; clear: left; margin-right: 1.4em } .content figure.mw-default-size,.content .thumb.mw-default-size,.content figure.mw-halign-right,.content .thumb.mw-halign-right,.content figure.tright,.content .thumb.tright { float: right; clear: right; margin-left: 1.4em } .content table caption { background: inherit } .content table tbody { display: table-row-group } .last-modified-bar { background-color: transparent; padding-left: 0; padding-right: 0; font-size: 1em }}@media screen and (min-width: 1000px) { .banner-container,.header,.page-header-bar,.overlay-header,.content,.overlay-content,.content-unstyled,.pre-content,.post-content,#mw-content-text>form { margin-left:auto; margin-right: auto; width: 90%; max-width: 993.3px } .header { max-width: 995.3px }}toast.mw-notification-type-error,.mw-notification.mw-notification-type-error { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&format=rasterized&skin=minerva&version=qhhuv); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&format=original&skin=minerva&version=qhhuv)}toast.mw-notification-type-error,.mw-notification.mw-notification-type-error--reference { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&variant=reference&format=rasterized&skin=minerva&version=qhhuv); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&variant=reference&format=original&skin=minerva&version=qhhuv)}a.external { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&format=rasterized&lang=en&skin=minerva&version=qhhuv); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&format=original&lang=en&skin=minerva&version=qhhuv)}a.external--reference { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&variant=reference&format=rasterized&lang=en&skin=minerva&version=qhhuv); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&variant=reference&format=original&lang=en&skin=minerva&version=qhhuv)}.mw-ui-icon-wikimedia-history-base20:before,.mw-ui-background-icon-history { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-history-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-history-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-language-base20:before,.mw-ui-background-icon-language { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-language-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-language-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-edit-base20:before,.mw-ui-background-icon-edit { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-edit-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-edit-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-editLock-base20:before,.mw-ui-background-icon-editLock { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-editLock-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-editLock-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-search-base20:before,.mw-ui-background-icon-search { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-search-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-search-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-menu-base20:before,.mw-ui-background-icon-menu { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-menu-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-menu-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-star-base20:before,.mw-ui-background-icon-star { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-star-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-star-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-halfStar-base20:before,.mw-ui-background-icon-halfStar { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&format=rasterized&lang=en&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&format=original&lang=en&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-halfStar-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=invert&format=rasterized&lang=en&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=invert&format=original&lang=en&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-halfStar-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=progressive&format=rasterized&lang=en&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=progressive&format=original&lang=en&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-unStar-base20:before,.mw-ui-background-icon-unStar { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-unStar-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-unStar-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-userAvatar-base20:before,.mw-ui-background-icon-userAvatar { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-userAvatar-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-userAvatar-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-minerva-speechBubbles:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.advanced.icons&image=speechBubbles&format=rasterized&lang=en&skin=minerva&version=jhnt0); background-image: linear-gradient(transparent,transparent),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+c3BlZWNoIGJ1YmJsZXM8L3RpdGxlPjxnIGZpbGw9IiM1NDU5NWQiPjxwYXRoIGQ9Ik0xNyA0djdhMiAyIDAgMDEtMiAySDR2MWEyIDIgMCAwMDIgMmgxMGw0IDRWNmEyIDIgMCAwMC0yLTJ6TTYgMTBIMHY2eiIvPjxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxMiIgcng9IjIiLz48L2c+PC9zdmc+)}.mw-ui-icon-minerva-specialPages:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.advanced.icons&image=specialPages&format=rasterized&lang=en&skin=minerva&version=jhnt0); background-image: linear-gradient(transparent,transparent),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+c3BlY2lhbCBwYWdlczwvdGl0bGU+PGcgZmlsbD0iIzU0NTk1ZCI+PHBhdGggZD0iTTcgMGEyIDIgMCAwMC0yIDJoOWEyIDIgMCAwMTIgMnYxMmEyIDIgMCAwMDItMlYyYTIgMiAwIDAwLTItMnoiLz48cGF0aCBkPSJNMTMgMjBINGEyIDIgMCAwMS0yLTJWNWEyIDIgMCAwMTItMmg5YTIgMiAwIDAxMiAydjEzYTIgMiAwIDAxLTIgMnptLTYuNS0zLjVsLjQxLTEuMDlMOCAxNWwtMS4wOS0uNDEtLjQxLTEuMDktLjQxIDEuMDlMNSAxNWwxLjA5LjQxLjQxIDEuMDl6bTIuOTgyLS45NDlsLjk1Mi0yLjU2MSAyLjUzLS45NjQtMi41My0uOTY0TDkuNDgyIDguNWwtLjk1MiAyLjU2Mi0yLjUzLjk2NCAyLjUzLjk2NC45NTIgMi41NjF6TTYgMTAuNWwuNTQ3LTEuNDUzTDggOC41bC0xLjQ1My0uNTQ3TDYgNi41bC0uNTQ3IDEuNDUzTDQgOC41bDEuNDUzLjU0N0w2IDEwLjV6Ii8+PC9nPjwvc3ZnPg==)}.mw-ui-icon-minerva-recentChanges:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.advanced.icons&image=recentChanges&format=rasterized&lang=en&skin=minerva&version=jhnt0); background-image: linear-gradient(transparent,transparent),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+cmVjZW50IGNoYW5nZXM8L3RpdGxlPjxnIGZpbGw9IiM1NDU5NWQiPjxjaXJjbGUgY3g9IjIiIGN5PSI0IiByPSIyIi8+PGNpcmNsZSBjeD0iMiIgY3k9IjEwIiByPSIyIi8+PGNpcmNsZSBjeD0iMiIgY3k9IjE2IiByPSIyIi8+PHBhdGggZD0iTTYgM2gxMXYySDZ6bTAgNmg2djJINnptMCA2aDJ2Mkg2em0xMi43Ni0zLjExbDEuMDc4LTEuMTEyYS41NTYuNTU2IDAgMDAwLS43ODNsLTEuODU1LTEuODMzYS41NTYuNTU2IDAgMDAtLjc4MyAwbC0xLjA5IDEuMDc3IDIuNjUgMi42NXptLTMuMjI3LTIuMDYyTDEwIDE1LjM2MVYxOGgyLjYzOWw1LjUzMy01LjUzM3oiLz48L2c+PC9zdmc+)}.mw-ui-icon-minerva-die:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=die&format=rasterized&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=die&format=original&skin=minerva&version=17p52)}.mw-ui-icon-minerva-heart:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=heart&format=rasterized&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=heart&format=original&skin=minerva&version=17p52)}.mw-ui-icon-minerva-home:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=home&format=rasterized&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=home&format=original&skin=minerva&version=17p52)}.mw-ui-icon-minerva-logIn:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logIn&format=rasterized&lang=en&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logIn&format=original&lang=en&skin=minerva&version=17p52)}.mw-ui-icon-minerva-logOut:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logOut&format=rasterized&lang=en&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logOut&format=original&lang=en&skin=minerva&version=17p52)}.mw-ui-icon-minerva-settings:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=settings&format=rasterized&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=settings&format=original&skin=minerva&version=17p52)}.mw-ui-icon-minerva-mapPin:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=mapPin&format=rasterized&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=mapPin&format=original&skin=minerva&version=17p52)}.mw-ui-icon-minerva-unStar:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=unStar&format=rasterized&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=unStar&format=original&skin=minerva&version=17p52)}.mw-ui-icon-minerva-userContributions:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=userContributions&format=rasterized&lang=en&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=userContributions&format=original&lang=en&skin=minerva&version=17p52)}#mw-mf-page-left { position: fixed; top: 0; left: 0; bottom: 0; min-width: 275px; visibility: hidden; max-width: 80%; z-index: 2; overflow-y: auto; background-color: #eaecf0; -webkit-transform: translate(-100%,0); -ms-transform: translate(-100%,0); transform: translate(-100%,0)}@media screen and (min-width: 720px) { #mw-mf-page-left { min-width:320px }}#mw-mf-page-left ul { padding-bottom: 22px}.main-menu-mask { position: fixed; top: 0; left: 0; right: 0; opacity: 0; bottom: 0; background: rgba(0,0,0,.8); z-index: 1; visibility: hidden}#main-menu-input:checked~.main-menu-mask { visibility: visible; opacity: .5}#main-menu-input:checked~#mw-mf-page-left { visibility: visible; box-shadow: 1px 0 8px 0 rgba(0,0,0,.35); -webkit-transform: translate(0,0); -ms-transform: translate(0,0); transform: translate(0,0)}.minerva-animations-ready #mw-mf-page-left { -webkit-transition: opacity 250ms ease-in-out,visibility 250ms ease-in-out,transform 250ms ease-in-out; transition: opacity 250ms ease-in-out,visibility 250ms ease-in-out,transform 250ms ease-in-out}.minerva-animations-ready .main-menu-mask { -webkit-transition: opacity 100ms ease-in-out,visibility 0ms linear 100ms; transition: opacity 100ms ease-in-out,visibility 0ms linear 100ms}.minerva-animations-ready #main-menu-input:checked~.main-menu-mask { -webkit-transition: opacity 100ms ease-in-out; transition: opacity 100ms ease-in-out}.navigation-full-screen #mw-mf-page-left { max-width: none; -webkit-transform: none; -ms-transform: none; transform: none}.hotfix-T264376 .main-menu-mask { display: none}.hotfix-T264376 #main-menu-input:checked~.main-menu-mask { display: block}#mw-mf-page-left .secondary-action { border: 0; font-size: 16px; position: absolute; right: 0; top: 0; bottom: 0; border-left: 1px solid #a2a9b1; color: transparent}#mw-mf-page-left .primary-action { margin-right: 3.5em}#mw-mf-page-left ul:first-child li:first-child { border-top: 0}#mw-mf-page-left ul li { background-color: #fff; position: relative; border-top: 1px solid #eaecf0; margin-top: -1px}#mw-mf-page-left ul li:first-child { border-top: 0}#mw-mf-page-left ul li a { color: #54595d; display: block; max-width: 100%; padding: 12px 10px 12px 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap}#mw-mf-page-left ul li a.secondary-action { padding-left: 10px}#mw-mf-page-left ul li a:hover { box-shadow: inset 4px 0 0 0 #36c; text-decoration: none}#mw-mf-page-left ul li a span { font-size: .875em; font-weight: 700; vertical-align: middle}#mw-mf-page-left ul.hlist li { background-color: transparent; border: 0; margin: 0; font-size: .75em}#mw-mf-page-left ul.hlist li:after { content: none}#mw-mf-page-left ul.hlist li a { color: #36c; padding: .7em 12px}#mw-mf-page-left ul.hlist li a:hover { background-color: transparent; box-shadow: none}.notifications-overlay { visibility: visible}.notifications-overlay.navigation-drawer { display: block; width: auto; right: 0; box-shadow: -5px 0 0 0 rgba(0,0,0,.35); -webkit-transform: translate(100%,0); -ms-transform: translate(100%,0); transform: translate(100%,0); -webkit-transition: transform 250ms ease-in-out; transition: transform 250ms ease-in-out}.notifications-overlay.navigation-drawer.visible { -webkit-transform: translate(0,0); -ms-transform: translate(0,0); transform: translate(0,0)}@media all and (min-width: 720px) { .notifications-overlay.navigation-drawer { left:40% } .notifications-overlay.navigation-drawer .overlay-header { margin: 0; width: 100%; max-width: none } .notifications-overlay.navigation-drawer .overlay-header .cancel { left: 0 }}.toggle-list__checkbox { position: absolute; z-index: -1; opacity: 0}.toggle-list__toggle { display: inline-block; cursor: pointer}.toggle-list__checkbox:focus+.toggle-list__toggle { outline: dotted 1px; outline: auto #447ff5}.toggle-list__checkbox:checked+.toggle-list__toggle { outline: 0; background: rgba(1,1,1,.1)}.touch-events .toggle-list__checkbox:focus+.toggle-list__toggle { outline: 0}.toggle-list__list { background: #fff; position: absolute; overflow-y: auto; z-index: 2; box-shadow: 0 5px 17px 0 rgba(0,0,0,.24),0 0 1px #a2a9b1; visibility: hidden; opacity: 0}.toggle-list__checkbox:checked~.toggle-list__list { visibility: visible; opacity: 1}.mw-ui-icon-minerva-articleRedirect:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-articleRedirect,.mw-ui-icon-articleRedirect-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-articleRedirect,.mw-ui-icon-articleRedirect-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-infoFilled:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-infoFilled,.mw-ui-icon-infoFilled-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-infoFilled,.mw-ui-icon-infoFilled-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-quotes:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-quotes,.mw-ui-icon-quotes-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-quotes,.mw-ui-icon-quotes-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-link:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-link,.mw-ui-icon-link-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=invert&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=invert&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-link,.mw-ui-icon-link-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=progressive&format=original&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-listBullet:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-listBullet,.mw-ui-icon-listBullet-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-listBullet,.mw-ui-icon-listBullet-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-ellipsis:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-ellipsis,.mw-ui-icon-ellipsis-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=invert&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=invert&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-ellipsis,.mw-ui-icon-ellipsis-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=progressive&format=original&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-userAvatar:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-userAvatar,.mw-ui-icon-userAvatar-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=invert&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=invert&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-userAvatar,.mw-ui-icon-userAvatar-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=progressive&format=original&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-userAvatarOutline:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-userAvatarOutline,.mw-ui-icon-userAvatarOutline-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=invert&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=invert&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-userAvatarOutline,.mw-ui-icon-userAvatarOutline-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=progressive&format=original&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-userGroup:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-userGroup,.mw-ui-icon-userGroup-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-userGroup,.mw-ui-icon-userGroup-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-userTalk:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-userTalk,.mw-ui-icon-userTalk-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-userTalk,.mw-ui-icon-userTalk-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-logoWikidata:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-logoWikidata,.mw-ui-icon-logoWikidata-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=invert&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=invert&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-logoWikidata,.mw-ui-icon-logoWikidata-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=progressive&format=original&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-markup:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.personalMenu.icons&image=markup&format=rasterized&skin=minerva&version=1j2d9); background-image: linear-gradient(transparent,transparent),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+bWFya3VwPC90aXRsZT48ZyBmaWxsPSIjNTQ1OTVkIj48cGF0aCBkPSJNNi41IDMuNUwwIDEwbDEuNSAxLjUgNSA1TDggMTVsLTUtNSA1LTV6bTcgMEwxMiA1bDUgNS01IDUgMS41IDEuNUwyMCAxMHoiLz48L2c+PC9zdmc+)}div#mw-content-text { position: absolute;}body { text-rendering: optimizeLegibility; text-rendering: geometricPrecision} -- cgit From 2692193e54e4dd6c0117dcdb85368dc83bb04f1a Mon Sep 17 00:00:00 2001 From: Roman / Nea Date: Mon, 18 Apr 2022 17:33:32 +0200 Subject: Mob loot recipe PR (#81) * entity renderer (somewhat functionaL) * more modifiers and entities * Fix cookie fuckup * add neu repo as resource pack, cause why not at this point * add tabs, because i can * add extra skin parts and make less tabs * hot tall men * fix texture offsets and also parts:true * some untested changes * still broken, but better (just like me (stop being edgy nea ( no u )))) * stuff (with er skeletons * niceities * skytils interop * horseys * horseys ouch * panos * stupid tests :angery: * NPE * add drop chance * colored leather armo * finish off * move shit into hover cause items look pretty terrible * Update 2.1.md * better recipe display name * always show mobs toggle * moving parts --- .github/CODEOWNERS | 2 + Update Notes/2.1.md | 1 + build.gradle.kts | 193 ++++----- .../moulberry/notenoughupdates/NEUManager.java | 18 +- .../moulberry/notenoughupdates/NEUOverlay.java | 2 +- .../notenoughupdates/NEURepoResourcePack.java | 75 ++++ .../notenoughupdates/NotEnoughUpdates.java | 9 + .../commands/EntityViewerCommand.java | 81 ++++ .../commands/dev/DevTestCommand.java | 2 +- .../miscfeatures/entityviewer/AgeModifier.java | 30 ++ .../miscfeatures/entityviewer/ChargedModifier.java | 17 + .../miscfeatures/entityviewer/EntityViewer.java | 177 +++++++++ .../entityviewer/EntityViewerModifier.java | 8 + .../entityviewer/EquipmentModifier.java | 72 ++++ .../miscfeatures/entityviewer/GUIClientPlayer.java | 40 ++ .../miscfeatures/entityviewer/HorseModifier.java | 66 +++ .../entityviewer/InvisibleModifier.java | 12 + .../miscfeatures/entityviewer/RidingModifier.java | 14 + .../miscfeatures/entityviewer/SkinModifier.java | 46 +++ .../miscfeatures/entityviewer/WitherModifier.java | 29 ++ .../notenoughupdates/miscgui/GuiItemRecipe.java | 199 +++++++--- .../mixins/AccessorEntityAgeable.java | 12 + .../mixins/AccessorEntityArmorStand.java | 12 + .../notenoughupdates/mixins/AccessorMinecraft.java | 14 + .../mixins/MixinEntityAgeable.java | 1 + .../notenoughupdates/mixins/MixinEntityHorse.java | 17 + .../mixins/MixinEntitySkeleton.java | 17 + .../notenoughupdates/options/NEUConfig.java | 4 + .../options/seperateSections/Itemlist.java | 10 + .../profileviewer/GuiProfileViewer.java | 36 +- .../notenoughupdates/profileviewer/Panorama.java | 38 ++ .../notenoughupdates/recipes/CraftingOverlay.java | 2 +- .../notenoughupdates/recipes/CraftingRecipe.java | 257 ++++++------ .../notenoughupdates/recipes/ForgeRecipe.java | 442 ++++++++++----------- .../notenoughupdates/recipes/Ingredient.java | 5 +- .../notenoughupdates/recipes/MobLootRecipe.java | 309 ++++++++++++++ .../notenoughupdates/recipes/NeuRecipe.java | 24 +- .../notenoughupdates/recipes/RecipeGenerator.java | 169 +++++++- .../notenoughupdates/recipes/RecipeType.java | 59 +++ .../recipes/VillagerTradeRecipe.java | 256 ++++++------ .../moulberry/notenoughupdates/util/ItemUtils.java | 33 ++ .../moulberry/notenoughupdates/util/JsonUtils.java | 42 ++ .../notenoughupdates/util/SkytilsCompat.java | 82 ++++ .../moulberry/notenoughupdates/util/Utils.java | 17 +- .../resources/assets/notenoughupdates/dream.json | 49 +++ .../textures/gui/crafting_table_tall.png | Bin 0 -> 12019 bytes .../textures/gui/entity_viewer.png | Bin 0 -> 8085 bytes .../notenoughupdates/textures/gui/forge_recipe.png | Bin 889 -> 0 bytes .../textures/gui/forge_recipe_tall.png | Bin 0 -> 9257 bytes .../textures/gui/mob_loot_tall.png | Bin 0 -> 9503 bytes .../assets/notenoughupdates/textures/gui/tab.png | Bin 0 -> 1247 bytes .../textures/gui/villager_recipe.png | Bin 8633 -> 0 bytes .../textures/gui/villager_recipe_tall.png | Bin 0 -> 9218 bytes src/main/resources/mixins.notenoughupdates.json | 7 + 54 files changed, 2302 insertions(+), 705 deletions(-) create mode 100644 .github/CODEOWNERS create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/NEURepoResourcePack.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/commands/EntityViewerCommand.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/AgeModifier.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/ChargedModifier.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewer.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewerModifier.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EquipmentModifier.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/GUIClientPlayer.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/HorseModifier.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/InvisibleModifier.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/RidingModifier.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/SkinModifier.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/WitherModifier.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityAgeable.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityArmorStand.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorMinecraft.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityHorse.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntitySkeleton.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/recipes/MobLootRecipe.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeType.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/util/ItemUtils.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/util/JsonUtils.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/util/SkytilsCompat.java create mode 100644 src/main/resources/assets/notenoughupdates/dream.json create mode 100644 src/main/resources/assets/notenoughupdates/textures/gui/crafting_table_tall.png create mode 100644 src/main/resources/assets/notenoughupdates/textures/gui/entity_viewer.png delete mode 100644 src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe.png create mode 100644 src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe_tall.png create mode 100644 src/main/resources/assets/notenoughupdates/textures/gui/mob_loot_tall.png create mode 100644 src/main/resources/assets/notenoughupdates/textures/gui/tab.png delete mode 100644 src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe.png create mode 100644 src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe_tall.png (limited to 'src/main/resources') diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..2381ceb8 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,2 @@ +/src/main/java/io/github/moulberry/notenoughupdates/recipes/* @romangraef +/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java @romangraef diff --git a/Update Notes/2.1.md b/Update Notes/2.1.md index 18a4ba8a..dff52a65 100644 --- a/Update Notes/2.1.md +++ b/Update Notes/2.1.md @@ -19,6 +19,7 @@ - Added support for official Hypixel wiki, can be toggled in /neu misc - DeDiamondPro ### **Minor Changes:** - Add built-in recipes for forge crafts - nea89 +- Add mob drop viewer in the recipe viewer - nea89 - Add Stranded Villager Trades to the item list - nea89 - Make cata xp in /pv be calculated on how many runs you have and shows master mode xp rates - Added a config option to hide Dwarven Mines waypoints when already at the location - Lulonaut diff --git a/build.gradle.kts b/build.gradle.kts index e134387e..3ffaf61a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,58 +1,76 @@ -import java.io.ByteArrayOutputStream import net.minecraftforge.gradle.user.ReobfMappingType +import java.io.ByteArrayOutputStream + plugins { - java - id("net.minecraftforge.gradle.forge") version "6f5327738df" - id("com.github.johnrengelman.shadow") version "6.1.0" - id("org.spongepowered.mixin") version "d75e32e" + java + id("net.minecraftforge.gradle.forge") version "6f5327738df" + id("com.github.johnrengelman.shadow") version "6.1.0" + id("org.spongepowered.mixin") version "d75e32e" } group = "io.github.moulberry" val baseVersion = "2.1" -var buildVersion = properties["BUILD_VERSION"] -if (buildVersion == null) { - val stdout = ByteArrayOutputStream() - val execResult = exec { - commandLine("git", "describe", "--always", "--first-parent", "--abbrev=7") - standardOutput = stdout - } - if (execResult.exitValue == 0) - buildVersion = String(stdout.toByteArray()).trim() +val buildExtra = mutableListOf() +val buildVersion = properties["BUILD_VERSION"] as? String +if (buildVersion != null) + buildExtra.add(buildVersion) +val githubCi = properties["GITHUB_ACTIONS"] as? String +if (githubCi == "true") + buildExtra.add("ci") + +val stdout = ByteArrayOutputStream() +val execResult = exec { + commandLine("git", "describe", "--always", "--first-parent", "--abbrev=7") + standardOutput = stdout + isIgnoreExitValue = true +} +if (execResult.exitValue == 0) { + buildExtra.add(String(stdout.toByteArray()).trim()) +} + +val gitDiffStdout = ByteArrayOutputStream() +val gitDiffResult = exec { + commandLine("git", "status", "--porcelain") + standardOutput = gitDiffStdout + isIgnoreExitValue = true +} +if (gitDiffStdout.toByteArray().isNotEmpty()) { + buildExtra.add("dirty") } -version = baseVersion + (buildVersion?.let { "+$it" } ?: "") +version = baseVersion + (if (buildExtra.isEmpty()) "" else buildExtra.joinToString(prefix = "+", separator = ".")) // Toolchains: java { - // Forge Gradle currently prevents using the toolchain: toolchain.languageVersion.set(JavaLanguageVersion.of(8)) - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + // Forge Gradle currently prevents using the toolchain: toolchain.languageVersion.set(JavaLanguageVersion.of(8)) + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 } minecraft { - version = "1.8.9-11.15.1.2318-1.8.9" - runDir = "run" - mappings = "stable_22" - clientJvmArgs.addAll( - listOf( - "-Dmixin.debug=true", - "-Dasmhelper.verbose=true" - ) - ) - clientRunArgs.addAll( - listOf( - "--tweakClass org.spongepowered.asm.launch.MixinTweaker", - "--mixin mixins.notenoughupdates.json" - ) - ) + version = "1.8.9-11.15.1.2318-1.8.9" + runDir = "run" + mappings = "stable_22" + clientJvmArgs.addAll( + listOf( + "-Dmixin.debug=true", + "-Dasmhelper.verbose=true" + ) + ) + clientRunArgs.addAll( + listOf( + "--tweakClass org.spongepowered.asm.launch.MixinTweaker", + "--mixin mixins.notenoughupdates.json" + ) + ) } mixin { - add(sourceSets.main.get(), "mixins.notenoughupdates.refmap.json") + add(sourceSets.main.get(), "mixins.notenoughupdates.refmap.json") } // Dependencies: @@ -67,14 +85,14 @@ dependencies { annotationProcessor("org.spongepowered:mixin:0.7.11-SNAPSHOT") implementation("com.fasterxml.jackson.core:jackson-core:2.13.1") implementation("info.bliki.wiki:bliki-core:3.1.0") - testImplementation("org.junit.jupiter:junit-jupiter:5.8.2") + testImplementation("org.junit.jupiter:junit-jupiter:5.8.2") } // Tasks: tasks.withType(JavaCompile::class) { - options.encoding = "UTF-8" + options.encoding = "UTF-8" } tasks.named("test") { @@ -82,72 +100,61 @@ tasks.named("test") { } tasks.withType(Jar::class) { - archiveBaseName.set("NotEnoughUpdates") - manifest.attributes.run { - this["Main-Class"] = "NotSkyblockAddonsInstallerFrame" - this["TweakClass"] = "org.spongepowered.asm.launch.MixinTweaker" - this["MixinConfigs"] = "mixins.notenoughupdates.json" - this["FMLCorePluginContainsFMLMod"] = "true" - this["ForceLoadAsMod"] = "true" - this["FMLAT"] = "notenoughupdates_at.cfg" - } + archiveBaseName.set("NotEnoughUpdates") + manifest.attributes.run { + this["Main-Class"] = "NotSkyblockAddonsInstallerFrame" + this["TweakClass"] = "org.spongepowered.asm.launch.MixinTweaker" + this["MixinConfigs"] = "mixins.notenoughupdates.json" + this["FMLCorePluginContainsFMLMod"] = "true" + this["ForceLoadAsMod"] = "true" + this["FMLAT"] = "notenoughupdates_at.cfg" + } } tasks.shadowJar { - archiveClassifier.set("dep") - exclude( - "module-info.class", - "LICENSE.txt" - ) - dependencies { - include(dependency("org.spongepowered:mixin:0.7.11-SNAPSHOT")) - - include(dependency("commons-io:commons-io")) - include(dependency("org.apache.commons:commons-lang3")) - include(dependency("com.fasterxml.jackson.core:jackson-databind:2.10.2")) - include(dependency("com.fasterxml.jackson.core:jackson-annotations:2.10.2")) - include(dependency("com.fasterxml.jackson.core:jackson-core:2.10.2")) - - include(dependency("info.bliki.wiki:bliki-core:3.1.0")) - include(dependency("org.slf4j:slf4j-api:1.7.18")) - include(dependency("org.luaj:luaj-jse:3.0.1")) - } - fun relocate(name: String) = relocate(name, "io.github.moulberry.notenoughupdates.deps.$name") - relocate("com.fasterxml.jackson") - relocate("org.eclipse") - relocate("org.slf4j") + archiveClassifier.set("dep") + exclude( + "module-info.class", + "LICENSE.txt" + ) + dependencies { + include(dependency("org.spongepowered:mixin:0.7.11-SNAPSHOT")) + + include(dependency("commons-io:commons-io")) + include(dependency("org.apache.commons:commons-lang3")) + include(dependency("com.fasterxml.jackson.core:jackson-databind:2.10.2")) + include(dependency("com.fasterxml.jackson.core:jackson-annotations:2.10.2")) + include(dependency("com.fasterxml.jackson.core:jackson-core:2.10.2")) + + include(dependency("info.bliki.wiki:bliki-core:3.1.0")) + include(dependency("org.slf4j:slf4j-api:1.7.18")) + include(dependency("org.luaj:luaj-jse:3.0.1")) + } + fun relocate(name: String) = relocate(name, "io.github.moulberry.notenoughupdates.deps.$name") + relocate("com.fasterxml.jackson") + relocate("org.eclipse") + relocate("org.slf4j") } tasks.build.get().dependsOn(tasks.shadowJar) reobf { - create("shadowJar") { - mappingType = ReobfMappingType.SEARGE - } + create("shadowJar") { + mappingType = ReobfMappingType.SEARGE + } } tasks.processResources { - from(sourceSets.main.get().resources.srcDirs) - filesMatching("mcmod.info") { - expand( - "version" to project.version, - "mcversion" to minecraft.version - ) - } - rename("(.+_at.cfg)".toPattern(), "META-INF/$1") -} - -val moveResources by tasks.creating { - doLast { - ant.withGroovyBuilder { - "move"( - "file" to "$buildDir/resources/main", - "todir" to "$buildDir/classes/java" - ) - } - } - dependsOn(tasks.processResources) -} - -tasks.classes { dependsOn(moveResources) } + from(sourceSets.main.get().resources.srcDirs) + filesMatching("mcmod.info") { + expand( + "version" to project.version, + "mcversion" to minecraft.version + ) + } + rename("(.+_at.cfg)".toPattern(), "META-INF/$1") +} +sourceSets.main { + output.setResourcesDir(file("$buildDir/classes/java/main")) +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java index abe0bdcf..6572431b 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java @@ -895,12 +895,12 @@ public class NEUManager { String clickcommand = item.get("clickcommand").getAsString(); switch (clickcommand.intern()) { case "viewrecipe": - displayGuiItemRecipe(internalName, null); + displayGuiItemRecipe(internalName); break; case "viewoption": neu.sendChatMessage("/viewpotion " + internalName.split(";")[0].toLowerCase(Locale.ROOT)); } - displayGuiItemRecipe(internalName, ""); + displayGuiItemRecipe(internalName); } public void showRecipe(String internalName) { @@ -990,16 +990,16 @@ public class NEUManager { List usages = getAvailableUsagesFor(internalName); if (usages.isEmpty()) return false; Minecraft.getMinecraft().displayGuiScreen( - new GuiItemRecipe("Item Usages", usages, this)); + new GuiItemRecipe(usages, this)); return true; } - public boolean displayGuiItemRecipe(String internalName, String text) { + public boolean displayGuiItemRecipe(String internalName) { if (!recipesMap.containsKey(internalName)) return false; List recipes = getAvailableRecipesFor(internalName); if (recipes.isEmpty()) return false; Minecraft.getMinecraft().displayGuiScreen( - new GuiItemRecipe(text != null ? text : "Item Recipe", recipes, this)); + new GuiItemRecipe(recipes, this)); return true; } @@ -1010,7 +1010,7 @@ public class NEUManager { public boolean failViewItem(String text) { if (viewItemAttemptID != null && !viewItemAttemptID.isEmpty()) { if (System.currentTimeMillis() - viewItemAttemptTime < 500) { - return displayGuiItemRecipe(viewItemAttemptID, text); + return displayGuiItemRecipe(viewItemAttemptID); } } return false; @@ -1570,4 +1570,10 @@ public class NEUManager { } } } + + public ItemStack createItem(String internalname) { + JsonObject jsonObject = itemMap.get(internalname); + if (jsonObject == null) return null; + return jsonToStack(jsonObject); + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java index 7965abae..8d0955bb 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java @@ -1358,7 +1358,7 @@ public class NEUOverlay extends Gui { } if (getSortMode() == SORT_MODE_ALL) { - return !internalname.matches(mobRegex); + return NotEnoughUpdates.INSTANCE.config.itemlist.alwaysShowMonsters || !internalname.matches(mobRegex); } else if (getSortMode() == SORT_MODE_MOB) { return internalname.matches(mobRegex); } else if (getSortMode() == SORT_MODE_PET) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEURepoResourcePack.java b/src/main/java/io/github/moulberry/notenoughupdates/NEURepoResourcePack.java new file mode 100644 index 00000000..2a5cda92 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEURepoResourcePack.java @@ -0,0 +1,75 @@ +package io.github.moulberry.notenoughupdates; + +import com.google.gson.JsonObject; +import net.minecraft.client.resources.IResourcePack; +import net.minecraft.client.resources.data.IMetadataSection; +import net.minecraft.client.resources.data.IMetadataSerializer; +import net.minecraft.util.ResourceLocation; + +import java.awt.image.BufferedImage; +import java.io.*; +import java.util.HashSet; +import java.util.Set; + +public class NEURepoResourcePack implements IResourcePack { + + File repoLocation; + Set resourceDomains = new HashSet<>(); + + public NEURepoResourcePack(File repoLocation, String domain) { + this.repoLocation = repoLocation; + resourceDomains.add(domain); + } + + public boolean loadRepoLocation() { + if (repoLocation != null) return true; + NotEnoughUpdates instance = NotEnoughUpdates.INSTANCE; + if (instance == null) return false; + NEUManager manager = instance.manager; + if (manager == null) return false; + repoLocation = manager.repoLocation; + return repoLocation != null; + } + + public File getFileForResource(ResourceLocation loc) { + if (repoLocation == null) { + if (!loadRepoLocation()) + return null; + } + if (!"neurepo".equals(loc.getResourceDomain())) { + return null; + } + return new File(repoLocation, loc.getResourcePath()); + } + + @Override + public InputStream getInputStream(ResourceLocation resourceLocation) throws IOException { + return new BufferedInputStream(new FileInputStream(getFileForResource(resourceLocation))); + } + + @Override + public boolean resourceExists(ResourceLocation resourceLocation) { + File file = getFileForResource(resourceLocation); + return file != null && file.exists(); + } + + @Override + public Set getResourceDomains() { + return resourceDomains; + } + + @Override + public T getPackMetadata(IMetadataSerializer iMetadataSerializer, String s) throws IOException { + return iMetadataSerializer.parseMetadataSection(s, new JsonObject()); + } + + @Override + public BufferedImage getPackImage() throws IOException { + return null; + } + + @Override + public String getPackName() { + return "NEU Repo Resources"; + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java index 0a77c677..6b2fd09e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java @@ -35,6 +35,7 @@ import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.Custom import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.DwarvenMinesTextures; import io.github.moulberry.notenoughupdates.miscgui.CalendarOverlay; import io.github.moulberry.notenoughupdates.miscgui.InventoryStorageSelector; +import io.github.moulberry.notenoughupdates.mixins.AccessorMinecraft; import io.github.moulberry.notenoughupdates.options.NEUConfig; import io.github.moulberry.notenoughupdates.overlays.FuelBar; import io.github.moulberry.notenoughupdates.overlays.OverlayManager; @@ -58,6 +59,7 @@ import net.minecraft.world.biome.BiomeGenJungle; import net.minecraft.world.biome.BiomeGenMesa; import net.minecraft.world.biome.BiomeGenSnow; import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.client.FMLClientHandler; import net.minecraftforge.fml.client.registry.ClientRegistry; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; @@ -160,6 +162,13 @@ public class NotEnoughUpdates { return this.neuDir; } + public NotEnoughUpdates() { + // Budget Construction Event + ((AccessorMinecraft) FMLClientHandler.instance().getClient()) + .onGetDefaultResourcePacks() + .add(new NEURepoResourcePack(null, "neurepo")); + } + /** * Instantiates NEUIo, NEUManager and NEUOverlay instances. Registers keybinds and adds a shutdown hook to clear tmp folder. */ diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/EntityViewerCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/EntityViewerCommand.java new file mode 100644 index 00000000..c7b1862e --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/EntityViewerCommand.java @@ -0,0 +1,81 @@ +package io.github.moulberry.notenoughupdates.commands; + +import com.google.common.collect.Lists; +import io.github.moulberry.notenoughupdates.miscfeatures.entityviewer.EntityViewer; +import net.minecraft.client.Minecraft; +import net.minecraft.command.CommandException; +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.event.ClickEvent; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.TickEvent; + +import java.util.Arrays; +import java.util.List; +import java.util.Queue; +import java.util.concurrent.ConcurrentLinkedDeque; + +public class EntityViewerCommand extends ClientCommandBase { + public EntityViewerCommand() { + super("neushowentity"); + MinecraftForge.EVENT_BUS.register(this); + } + + @Override + public List getCommandAliases() { + return Lists.newArrayList("neuentityviewer"); + } + + @Override + public String getCommandUsage(ICommandSender sender) { + return EnumChatFormatting.RED + "Use /neushowentity list"; + } + + public void showUsage(ICommandSender sender) { + sender.addChatMessage(new ChatComponentText(getCommandUsage(sender))); + } + + private final Queue queuedGUIS = new ConcurrentLinkedDeque<>(); + + @SubscribeEvent + public void onTick(TickEvent event) { + if (Minecraft.getMinecraft().currentScreen == null) { + EntityViewer poll = queuedGUIS.poll(); + if (poll == null) return; + Minecraft.getMinecraft().displayGuiScreen(poll); + } + } + + @Override + public void processCommand(ICommandSender sender, String[] strings) throws CommandException { + if (strings.length == 0) { + showUsage(sender); + return; + } + if (strings[0].equals("list")) { + for (String label : EntityViewer.validEntities.keySet()) { + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.BLUE + " " + label) + .setChatStyle(new ChatStyle().setChatClickEvent( + new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/neuentityviewer " + label)))); + } + return; + } + EntityLivingBase entityLivingBase; + if (strings[0].startsWith("@")) { + ResourceLocation resourceLocation = new ResourceLocation(strings[0].substring(1)); + entityLivingBase = EntityViewer.constructEntity(resourceLocation); + } else { + entityLivingBase = EntityViewer.constructEntity(strings[0], Arrays.copyOfRange(strings, 1, strings.length)); + } + if (entityLivingBase == null) { + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Could not create that entity")); + return; + } + queuedGUIS.add(new EntityViewer(strings[0], entityLivingBase)); + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java index 53a7894b..27944c92 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java @@ -1,4 +1,4 @@ -package io.github.moulberry.notenoughupdates.commands.dev; + package io.github.moulberry.notenoughupdates.commands.dev; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.commands.ClientCommandBase; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/AgeModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/AgeModifier.java new file mode 100644 index 00000000..5884512f --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/AgeModifier.java @@ -0,0 +1,30 @@ +package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; + +import com.google.gson.JsonObject; +import io.github.moulberry.notenoughupdates.mixins.AccessorEntityAgeable; +import io.github.moulberry.notenoughupdates.mixins.AccessorEntityArmorStand; +import net.minecraft.entity.EntityAgeable; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityArmorStand; +import net.minecraft.entity.monster.EntityZombie; + +public class AgeModifier extends EntityViewerModifier { + @Override + public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { + boolean baby = info.has("baby") && info.get("baby").getAsBoolean(); + if (base instanceof EntityAgeable) { + ((AccessorEntityAgeable) base).setGrowingAgeDirect(baby ? -1 : 1); + return base; + } + if (base instanceof EntityZombie) { + ((EntityZombie) base).setChild(baby); + return base; + } + if (base instanceof EntityArmorStand) { + ((AccessorEntityArmorStand) base).setSmallDirect(baby); + return base; + } + System.out.println("Cannot apply age to a non ageable entity: " + base); + return null; + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/ChargedModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/ChargedModifier.java new file mode 100644 index 00000000..17dce66d --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/ChargedModifier.java @@ -0,0 +1,17 @@ +package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; + +import com.google.gson.JsonObject; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.monster.EntityCreeper; + +public class ChargedModifier extends EntityViewerModifier { + + @Override + public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { + if (base instanceof EntityCreeper) { + base.getDataWatcher().updateObject(17, (byte) 1); + return base; + } + return null; + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewer.java new file mode 100644 index 00000000..e9075e47 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewer.java @@ -0,0 +1,177 @@ +package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.inventory.GuiInventory; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.boss.EntityDragon; +import net.minecraft.entity.boss.EntityWither; +import net.minecraft.entity.item.EntityArmorStand; +import net.minecraft.entity.monster.*; +import net.minecraft.entity.passive.*; +import net.minecraft.util.ResourceLocation; + +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.Reader; +import java.nio.charset.StandardCharsets; +import java.util.*; +import java.util.function.Supplier; +import java.util.stream.Collectors; +import java.util.stream.StreamSupport; + +public class EntityViewer extends GuiScreen { + + public static Map> validEntities = new HashMap>() {{ + put("Zombie", () -> new EntityZombie(null)); + put("Chicken", () -> new EntityChicken(null)); + put("Slime", () -> new EntitySlime(null)); + put("Wolf", () -> new EntityWolf(null)); + put("Skeleton", () -> new EntitySkeleton(null)); + put("Creeper", () -> new EntityCreeper(null)); + put("Ocelot", () -> new EntityOcelot(null)); + put("Blaze", () -> new EntityBlaze(null)); + put("Rabbit", () -> new EntityRabbit(null)); + put("Sheep", () -> new EntitySheep(null)); + put("Horse", () -> new EntityHorse(null)); + put("Eisengolem", () -> new EntityIronGolem(null)); + put("Silverfish", () -> new EntitySilverfish(null)); + put("Witch", () -> new EntityWitch(null)); + put("Endermite", () -> new EntityEndermite(null)); + put("Snowman", () -> new EntitySnowman(null)); + put("Villager", () -> new EntityVillager(null)); + put("Guardian", () -> new EntityGuardian(null)); + put("ArmorStand", () -> new EntityArmorStand(null)); + put("Squid", () -> new EntitySquid(null)); + put("Bat", () -> new EntityBat(null)); + put("Spider", () -> new EntitySpider(null)); + put("CaveSpider", () -> new EntityCaveSpider(null)); + put("Pigman", () -> new EntityPigZombie(null)); + put("Ghast", () -> new EntityGhast(null)); + put("MagmaCube", () -> new EntityMagmaCube(null)); + put("Wither", () -> new EntityWither(null)); + put("Enderman", () -> new EntityEnderman(null)); + put("Mooshroom", ()-> new EntityMooshroom(null)); + put("WitherSkeleton", () -> { + EntitySkeleton skeleton = new EntitySkeleton(null); + skeleton.setSkeletonType(1); + return skeleton; + }); + put("Cow", () -> new EntityCow(null)); + put("Dragon", ()-> new EntityDragon(null)); + put("Player", () -> new GUIClientPlayer()); + }}; + + public static Map validModifiers = new HashMap() {{ + put("playerdata", new SkinModifier()); + put("equipment", new EquipmentModifier()); + put("riding", new RidingModifier()); + put("charged", new ChargedModifier()); + put("witherdata", new WitherModifier()); + put("invisible", new InvisibleModifier()); + put("age", new AgeModifier()); + put("horse", new HorseModifier()); + }}; + + public int guiLeft = 0; + public int guiTop = 0; + public int xSize = 176; + public int ySize = 166; + + private final String label; + private final EntityLivingBase entity; + private static final ResourceLocation BACKGROUND = new ResourceLocation("notenoughupdates", "textures/gui/entity_viewer.png"); + + public EntityViewer(String label, EntityLivingBase entity) { + this.label = label; + this.entity = entity; + } + + public static EntityLivingBase constructEntity(ResourceLocation resourceLocation) { + Gson gson = NotEnoughUpdates.INSTANCE.manager.gson; + try (Reader is = new InputStreamReader( + Minecraft.getMinecraft().getResourceManager().getResource(resourceLocation).getInputStream(), StandardCharsets.UTF_8)) { + return constructEntity(gson.fromJson(is, JsonObject.class)); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + public static EntityLivingBase constructEntity(JsonObject info) { + List modifiers = info.has("modifiers") ? + StreamSupport.stream(info.get("modifiers").getAsJsonArray().spliterator(), false) + .map(JsonElement::getAsJsonObject).collect(Collectors.toList()) + : Collections.emptyList(); + return EntityViewer.constructEntity(info.get("entity").getAsString(), modifiers); + } + + public static EntityLivingBase constructEntity(String string, String[] modifiers) { + Gson gson = NotEnoughUpdates.INSTANCE.manager.gson; + return constructEntity(string, Arrays.stream(modifiers).map(it -> gson.fromJson(it, JsonObject.class)).collect(Collectors.toList())); + } + + public static EntityLivingBase constructEntity(String string, List modifiers) { + Supplier aClass = validEntities.get(string); + if (aClass == null) { + System.err.println("Could not find entity of type: " + string); + return null; + } + try { + EntityLivingBase entity = aClass.get(); + for (JsonObject modifier : modifiers) { + String type = modifier.get("type").getAsString(); + EntityViewerModifier entityViewerModifier = validModifiers.get(type); + entity = entityViewerModifier.applyModifier(entity, modifier); + if (entity == null) break; + } + return entity; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + drawDefaultBackground(); + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; + + this.guiLeft = (width - this.xSize) / 2; + this.guiTop = (height - this.ySize) / 2; + + + Minecraft.getMinecraft().getTextureManager().bindTexture(BACKGROUND); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, this.xSize, this.ySize); + + + Utils.drawStringScaledMaxWidth(label, fontRenderer, guiLeft + 10, guiTop + 10, false, 100, 0xFF00FF); + renderEntity(entity, guiLeft + 90, guiTop + 75, mouseX, mouseY); + } + + public static void renderEntity(EntityLivingBase entity, int posX, int posY, int mouseX, int mouseY) { + GlStateManager.color(1F, 1F, 1F, 1F); + + int scale = 30; + float bottomOffset = 0F; + EntityLivingBase stack = entity; + while (true) { + + stack.ticksExisted = Minecraft.getMinecraft().thePlayer.ticksExisted; + GuiInventory.drawEntityOnScreen(posX, (int) (posY - bottomOffset * scale), scale, posX - mouseX, (int) (posY - stack.getEyeHeight() * scale - mouseY), stack); + bottomOffset += stack.getMountedYOffset(); + if (!(stack.riddenByEntity instanceof EntityLivingBase)) { + break; + } + stack = (EntityLivingBase) stack.riddenByEntity; + } + + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewerModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewerModifier.java new file mode 100644 index 00000000..bab6c354 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewerModifier.java @@ -0,0 +1,8 @@ +package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; + +import com.google.gson.JsonObject; +import net.minecraft.entity.EntityLivingBase; + +public abstract class EntityViewerModifier { + public abstract EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info); +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EquipmentModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EquipmentModifier.java new file mode 100644 index 00000000..3011e479 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EquipmentModifier.java @@ -0,0 +1,72 @@ +package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; + +import com.google.gson.JsonObject; +import io.github.moulberry.notenoughupdates.NEUManager; +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemArmor; +import net.minecraft.item.ItemStack; + +public class EquipmentModifier extends EntityViewerModifier { + + private ItemStack createItem(String item) { + NEUManager manager = NotEnoughUpdates.INSTANCE.manager; + String[] split = item.split("#"); + if (split.length == 2) { + switch (split[0].intern()) { + case "LEATHER_LEGGINGS": + return coloredLeatherArmor(Items.leather_leggings, split[1]); + case "LEATHER_HELMET": + return coloredLeatherArmor(Items.leather_helmet, split[1]); + case "LEATHER_CHESTPLATE": + return coloredLeatherArmor(Items.leather_chestplate, split[1]); + case "LEATHER_BOOTS": + return coloredLeatherArmor(Items.leather_boots, split[1]); + default: + throw new RuntimeException("Unknown leather piece: " + item); + } + } + return manager.createItem(item); + } + + private ItemStack coloredLeatherArmor(ItemArmor item, String colorHex) { + ItemStack is = new ItemStack(item); + item.setColor(is, Integer.parseInt(colorHex, 16)); + return is; + } + + @Override + public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { + if (info.has("hand")) + setCurrentItemOrArmor(base, 0, createItem(info.get("hand").getAsString())); + if (info.has("helmet")) + setCurrentItemOrArmor(base, 4, createItem(info.get("helmet").getAsString())); + if (info.has("chestplate")) + setCurrentItemOrArmor(base, 3, createItem(info.get("chestplate").getAsString())); + if (info.has("leggings")) + setCurrentItemOrArmor(base, 2, createItem(info.get("leggings").getAsString())); + if (info.has("feet")) + setCurrentItemOrArmor(base, 1, createItem(info.get("feet").getAsString())); + return base; + } + + public void setCurrentItemOrArmor(EntityLivingBase entity, int slot, ItemStack itemStack) { + if (entity instanceof EntityPlayer) { + setPlayerCurrentItemOrArmor((EntityPlayer) entity, slot, itemStack); + } else { + entity.setCurrentItemOrArmor(slot, itemStack); + } + } + + // Biscuit person needs to learn how to code and not fuck up valid vanilla behaviour + public static void setPlayerCurrentItemOrArmor(EntityPlayer player, int slot, ItemStack itemStack) { + if (slot == 0) { + player.inventory.mainInventory[player.inventory.currentItem] = itemStack; + } else { + player.inventory.armorInventory[slot - 1] = itemStack; + } + } + +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/GUIClientPlayer.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/GUIClientPlayer.java new file mode 100644 index 00000000..bbff2db1 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/GUIClientPlayer.java @@ -0,0 +1,40 @@ +package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; + +import com.mojang.authlib.GameProfile; +import net.minecraft.client.entity.AbstractClientPlayer; +import net.minecraft.client.network.NetworkPlayerInfo; +import net.minecraft.client.resources.DefaultPlayerSkin; +import net.minecraft.util.ResourceLocation; + +import java.util.UUID; + +public class GUIClientPlayer extends AbstractClientPlayer { + public GUIClientPlayer() { + super(null, new GameProfile(UUID.randomUUID(), "GuiPlayer")); + } + + ResourceLocation overrideSkin = DefaultPlayerSkin.getDefaultSkinLegacy(); + ResourceLocation overrideCape = null; + boolean overrideIsSlim = false; + NetworkPlayerInfo playerInfo = new NetworkPlayerInfo(this.getGameProfile()) { + @Override + public String getSkinType() { + return overrideIsSlim ? "slim" : "default"; + } + + @Override + public ResourceLocation getLocationSkin() { + return overrideSkin; + } + + @Override + public ResourceLocation getLocationCape() { + return overrideCape; + } + }; + + @Override + protected NetworkPlayerInfo getPlayerInfo() { + return playerInfo; + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/HorseModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/HorseModifier.java new file mode 100644 index 00000000..7fd2dadd --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/HorseModifier.java @@ -0,0 +1,66 @@ +package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.passive.EntityHorse; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class HorseModifier extends EntityViewerModifier { + @Override + public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { + if (!(base instanceof EntityHorse)) + return null; + EntityHorse horse = (EntityHorse) base; + if (info.has("kind")) { + String type = info.get("kind").getAsString().intern(); + switch (type) { + case "skeleton": + horse.setHorseType(4); + break; + case "zombie": + horse.setHorseType(3); + break; + case "mule": + horse.setHorseType(2); + break; + case "donkey": + horse.setHorseType(1); + break; + case "horse": + horse.setHorseType(0); + break; + default: + throw new IllegalArgumentException("Unknown horse type: " + type); + } + } + if (info.has("armor")) { + JsonElement el = info.get("armor"); + if (el.isJsonNull()) { + horse.setHorseArmorStack(null); + } else { + Item item; + switch (el.getAsString().intern()) { + case "iron": + item = Items.iron_horse_armor; + break; + case "golden": + item = Items.golden_horse_armor; + break; + case "diamond": + item = Items.diamond_horse_armor; + break; + default: + throw new IllegalArgumentException("Unknown horse armor: " + el.getAsString()); + } + horse.setHorseArmorStack(new ItemStack(item)); + } + } + if (info.has("saddled")) { + horse.setHorseSaddled(info.get("saddled").getAsBoolean()); + } + return horse; + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/InvisibleModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/InvisibleModifier.java new file mode 100644 index 00000000..c2138b3f --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/InvisibleModifier.java @@ -0,0 +1,12 @@ +package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; + +import com.google.gson.JsonObject; +import net.minecraft.entity.EntityLivingBase; + +public class InvisibleModifier extends EntityViewerModifier { + @Override + public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { + base.setInvisible(!info.has("invisible") || info.get("invisible").getAsBoolean()); + return base; + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/RidingModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/RidingModifier.java new file mode 100644 index 00000000..9879542a --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/RidingModifier.java @@ -0,0 +1,14 @@ +package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; + +import com.google.gson.JsonObject; +import net.minecraft.entity.EntityLivingBase; + +public class RidingModifier extends EntityViewerModifier { + @Override + public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { + EntityLivingBase newEntity = EntityViewer.constructEntity(info); + if (newEntity == null) return null; + newEntity.mountEntity(base); + return base; + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/SkinModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/SkinModifier.java new file mode 100644 index 00000000..55e8a432 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/SkinModifier.java @@ -0,0 +1,46 @@ +package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EnumPlayerModelParts; +import net.minecraft.util.ResourceLocation; + +import java.util.Map; + +public class SkinModifier extends EntityViewerModifier { + @Override + public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { + if (base instanceof GUIClientPlayer) { + GUIClientPlayer player = (GUIClientPlayer) base; + if (info.has("cape")) { + player.overrideCape = new ResourceLocation(info.get("cape").getAsString()); + } + if (info.has("skin")) { + player.overrideSkin = new ResourceLocation(info.get("skin").getAsString()); + } + if (info.has("slim")) { + player.overrideIsSlim = info.get("slim").getAsBoolean(); + } + if (info.has("parts")) { + JsonElement parts = info.get("parts"); + byte partBitField = player.getDataWatcher().getWatchableObjectByte(10); + if (parts.isJsonPrimitive() && parts.getAsJsonPrimitive().isBoolean()) { + partBitField = parts.getAsBoolean() ? (byte) -1 : 0; + } else { + JsonObject obj = parts.getAsJsonObject(); + for (Map.Entry part : obj.entrySet()) { + EnumPlayerModelParts modelPart = EnumPlayerModelParts.valueOf(part.getKey()); + if (part.getValue().getAsBoolean()) { + partBitField |= modelPart.getPartMask(); + } else { + partBitField &= ~modelPart.getPartMask(); + } + } + } + player.getDataWatcher().updateObject(10, partBitField); + } + } + return base; + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/WitherModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/WitherModifier.java new file mode 100644 index 00000000..c5580f17 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/WitherModifier.java @@ -0,0 +1,29 @@ +package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; + +import com.google.gson.JsonObject; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.boss.EntityWither; + +public class WitherModifier extends EntityViewerModifier { + @Override + public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { + if (!(base instanceof EntityWither)) + return null; + EntityWither wither = (EntityWither) base; + if (info.has("tiny")) { + if (info.get("tiny").getAsBoolean()) { + wither.setInvulTime(800); + } else { + wither.setInvulTime(0); + } + } + if (info.has("armored")) { + if (info.get("armored").getAsBoolean()) { + wither.setHealth(1); + } else { + wither.setHealth(wither.getMaxHealth()); + } + } + return base; + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java index 63a4d6d8..be9ce6c7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java @@ -4,6 +4,7 @@ import com.google.common.collect.ImmutableList; import io.github.moulberry.notenoughupdates.NEUManager; import io.github.moulberry.notenoughupdates.recipes.NeuRecipe; import io.github.moulberry.notenoughupdates.recipes.RecipeSlot; +import io.github.moulberry.notenoughupdates.recipes.RecipeType; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; @@ -12,6 +13,7 @@ import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import org.lwjgl.input.Keyboard; @@ -20,48 +22,65 @@ import org.lwjgl.opengl.GL11; import java.awt.*; import java.io.IOException; -import java.util.ArrayList; import java.util.List; +import java.util.*; public class GuiItemRecipe extends GuiScreen { public static final ResourceLocation resourcePacksTexture = new ResourceLocation("textures/gui/resource_packs.png"); + public static final ResourceLocation tabsTexture = new ResourceLocation("notenoughupdates", "textures/gui/tab.png"); public static final int SLOT_SIZE = 16; public static final int SLOT_SPACING = SLOT_SIZE + 2; public static final int BUTTON_WIDTH = 7; public static final int BUTTON_HEIGHT = 11; - public static final int BUTTON_POSITION_Y = 63; - public static final int BUTTON_POSITION_LEFT_X = 110; - public static final int BUTTON_POSITION_RIGHT_X = 147; - public static final int PAGE_STRING_X = 132; - public static final int PAGE_STRING_Y = 69; public static final int TITLE_X = 28; public static final int TITLE_Y = 6; public static final int HOTBAR_SLOT_X = 8; - public static final int HOTBAR_SLOT_Y = 142; + public static final int HOTBAR_SLOT_Y = 197; public static final int PLAYER_INVENTORY_X = 8; - public static final int PLAYER_INVENTORY_Y = 84; + public static final int PLAYER_INVENTORY_Y = 140; + public static final int TAB_POS_X = -26; + public static final int TAB_POS_Y = 8; + public static final int TAB_OFFSET_Y = 30; + public static final int TAB_SIZE_X = 26; + public static final int TAB_SIZE_Y = 30; + public static final int TAB_TEXTURE_SIZE_X = 29; private int currentIndex = 0; + private int currentTab = 0; - private final String title; - private final List craftingRecipes; + private final Map> craftingRecipes = new HashMap<>(); + private final List tabs = new ArrayList<>(); private final NEUManager manager; public int guiLeft = 0; public int guiTop = 0; public int xSize = 176; - public int ySize = 166; + public int ySize = 222; - public GuiItemRecipe(String title, List craftingRecipes, NEUManager manager) { - this.craftingRecipes = craftingRecipes; + public GuiItemRecipe(List unsortedRecipes, NEUManager manager) { this.manager = manager; - this.title = title; + + for (NeuRecipe recipe : unsortedRecipes) { + craftingRecipes.computeIfAbsent(recipe.getType(), ignored -> new ArrayList<>()).add(recipe); + if (!tabs.contains(recipe.getType())) + tabs.add(recipe.getType()); + } } public NeuRecipe getCurrentRecipe() { - currentIndex = MathHelper.clamp_int(currentIndex, 0, craftingRecipes.size()); - return craftingRecipes.get(currentIndex); + List currentRecipes = getCurrentRecipeList(); + currentIndex = MathHelper.clamp_int(currentIndex, 0, currentRecipes.size() - 1); + return currentRecipes.get(currentIndex); + } + + public List getCurrentRecipeList() { + return craftingRecipes.get(getCurrentTab()); + } + + public RecipeType getCurrentTab() { + currentTab = MathHelper.clamp_int(currentTab, 0, tabs.size() - 1); + return tabs.get(currentTab); } public boolean isWithinRect(int x, int y, int topLeftX, int topLeftY, int width, int height) { @@ -90,17 +109,19 @@ public class GuiItemRecipe extends GuiScreen { Minecraft.getMinecraft().getTextureManager().bindTexture(currentRecipe.getBackground()); this.drawTexturedModalRect(guiLeft, guiTop, 0, 0, this.xSize, this.ySize); + drawTabs(); + currentRecipe.drawExtraBackground(this, mouseX, mouseY); List slots = getAllRenderedSlots(); for (RecipeSlot slot : slots) { - Utils.drawItemStack(slot.getItemStack(), slot.getX(this), slot.getY(this)); + Utils.drawItemStack(slot.getItemStack(), slot.getX(this), slot.getY(this), true); } - if (craftingRecipes.size() > 1) drawArrows(mouseX, mouseY); + drawArrows(currentRecipe, mouseX, mouseY); Utils.drawStringScaledMaxWidth( - title, + currentRecipe.getTitle(), fontRendererObj, guiLeft + TITLE_X, guiTop + TITLE_Y, @@ -126,42 +147,104 @@ public class GuiItemRecipe extends GuiScreen { } } currentRecipe.drawHoverInformation(this, mouseX, mouseY); + drawTabHoverInformation(mouseX, mouseY); + } + + private void drawTabHoverInformation(int mouseX, int mouseY) { + if (tabs.size() < 2) return; + for (int i = 0; i < tabs.size(); i++) { + if (isWithinRect( + mouseX - guiLeft, + mouseY - guiTop, + TAB_POS_X, + TAB_POS_Y + TAB_OFFSET_Y * i, + TAB_SIZE_X, + TAB_SIZE_Y + )) { + RecipeType type = tabs.get(i); + Utils.drawHoveringText( + Arrays.asList( + "" + EnumChatFormatting.RESET + EnumChatFormatting.GREEN + type.getLabel(), + "" + EnumChatFormatting.RESET + EnumChatFormatting.GRAY + craftingRecipes.get(type).size() + " Recipes" + ), + mouseX, mouseY, width, height, -1, Minecraft.getMinecraft().fontRendererObj + ); + return; + } + } } - private void drawArrows(int mouseX, int mouseY) { + private void drawTabs() { + if (tabs.size() < 2) return; + for (int i = 0; i < tabs.size(); i++) { + RecipeType recipeType = tabs.get(i); + int tabPosX = guiLeft + TAB_POS_X, tabPosY = guiTop + TAB_OFFSET_Y * i + TAB_POS_Y; + int textureOffset = 0; + if (currentTab == i) { + textureOffset = 30; + } + Minecraft.getMinecraft().getTextureManager().bindTexture(tabsTexture); + drawTexturedModalRect( + tabPosX, tabPosY, + 0, textureOffset, + TAB_TEXTURE_SIZE_X, TAB_SIZE_Y + ); + Utils.drawItemStack(recipeType.getIcon(), tabPosX + 7, tabPosY + 7); + } + } + + public static final int BUTTON_POSITION_RIGHT_OFFSET_X = 37; + public static final int PAGE_STRING_OFFSET_X = 22; + public static final int PAGE_STRING_OFFSET_Y = 6; + + private void drawArrows( + NeuRecipe currentRecipe, + int mouseX, + int mouseY + ) { + int recipeCount = getCurrentRecipeList().size(); + if (recipeCount < 2) return; + int[] topLeft = currentRecipe.getPageFlipPositionLeftTopCorner(); + int buttonPositionLeftX = topLeft[0]; + int buttonPositionRightX = buttonPositionLeftX + BUTTON_POSITION_RIGHT_OFFSET_X; + int pageStringX = buttonPositionLeftX + PAGE_STRING_OFFSET_X; + int buttonPositionY = topLeft[1]; + int pageStringY = buttonPositionY + PAGE_STRING_OFFSET_Y; + boolean leftSelected = isWithinRect( mouseX - guiLeft, mouseY - guiTop, - BUTTON_POSITION_LEFT_X, - BUTTON_POSITION_Y, + buttonPositionLeftX, + buttonPositionY, BUTTON_WIDTH, BUTTON_HEIGHT ); boolean rightSelected = isWithinRect( mouseX - guiLeft, mouseY - guiTop, - BUTTON_POSITION_RIGHT_X, - BUTTON_POSITION_Y, + buttonPositionRightX, + buttonPositionY, BUTTON_WIDTH, BUTTON_HEIGHT ); - Minecraft.getMinecraft().getTextureManager().bindTexture(resourcePacksTexture); - Utils.drawTexturedRect(guiLeft + BUTTON_POSITION_LEFT_X, guiTop + BUTTON_POSITION_Y, BUTTON_WIDTH, BUTTON_HEIGHT, - 34 / 256f, 48 / 256f, - leftSelected ? 37 / 256f : 5 / 256f, leftSelected ? 59 / 256f : 27 / 256f - ); - Utils.drawTexturedRect(guiLeft + BUTTON_POSITION_RIGHT_X, guiTop + BUTTON_POSITION_Y, BUTTON_WIDTH, BUTTON_HEIGHT, - 10 / 256f, 24 / 256f, - rightSelected ? 37 / 256f : 5 / 256f, rightSelected ? 59 / 256f : 27 / 256f - ); + if (currentIndex != 0) + Utils.drawTexturedRect(guiLeft + buttonPositionLeftX, guiTop + buttonPositionY, BUTTON_WIDTH, BUTTON_HEIGHT, + 34 / 256f, 48 / 256f, + leftSelected ? 37 / 256f : 5 / 256f, leftSelected ? 59 / 256f : 27 / 256f + ); + if (currentIndex != recipeCount - 1) + Utils.drawTexturedRect(guiLeft + buttonPositionRightX, guiTop + buttonPositionY, BUTTON_WIDTH, BUTTON_HEIGHT, + 10 / 256f, 24 / 256f, + rightSelected ? 37 / 256f : 5 / 256f, rightSelected ? 59 / 256f : 27 / 256f + ); GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0); - String selectedPage = (currentIndex + 1) + "/" + craftingRecipes.size(); + String selectedPage = (currentIndex + 1) + "/" + recipeCount; Utils.drawStringCenteredScaledMaxWidth(selectedPage, fontRendererObj, - guiLeft + PAGE_STRING_X, guiTop + PAGE_STRING_Y, false, 24, Color.BLACK.getRGB() + guiLeft + pageStringX, guiTop + pageStringY, false, 24, Color.BLACK.getRGB() ); } @@ -196,12 +279,12 @@ public class GuiItemRecipe extends GuiScreen { int mouseX = Mouse.getX() * width / Minecraft.getMinecraft().displayWidth; int mouseY = height - Mouse.getY() * height / Minecraft.getMinecraft().displayHeight - 1; int keyPressed = Keyboard.getEventKey() == 0 ? Keyboard.getEventCharacter() + 256 : Keyboard.getEventKey(); - + if (Keyboard.getEventKeyState()) return; for (RecipeSlot slot : getAllRenderedSlots()) { if (isWithinRect(mouseX, mouseY, slot.getX(this), slot.getY(this), SLOT_SIZE, SLOT_SIZE)) { ItemStack itemStack = slot.getItemStack(); - if (keyPressed == manager.keybindViewRecipe.getKeyCode()) { // TODO: rework this so it doesnt skip recipe chains - manager.displayGuiItemRecipe(manager.getInternalNameForItem(itemStack), ""); + if (keyPressed == manager.keybindViewRecipe.getKeyCode()) { + manager.displayGuiItemRecipe(manager.getInternalNameForItem(itemStack)); } else if (keyPressed == manager.keybindViewUsages.getKeyCode()) { manager.displayGuiItemUsages(manager.getInternalNameForItem(itemStack)); } @@ -212,16 +295,22 @@ public class GuiItemRecipe extends GuiScreen { @Override protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { super.mouseClicked(mouseX, mouseY, mouseButton); + NeuRecipe currentRecipe = getCurrentRecipe(); + int[] topLeft = currentRecipe.getPageFlipPositionLeftTopCorner(); + int buttonPositionLeftX = topLeft[0]; + int buttonPositionRightX = buttonPositionLeftX + BUTTON_POSITION_RIGHT_OFFSET_X; + int buttonPositionY = topLeft[1]; if (isWithinRect( mouseX - guiLeft, mouseY - guiTop, - BUTTON_POSITION_LEFT_X, - BUTTON_POSITION_Y, + buttonPositionLeftX, + buttonPositionY, BUTTON_WIDTH, BUTTON_HEIGHT - )) { - currentIndex = currentIndex == 0 ? 0 : currentIndex - 1; + ) && + currentIndex > 0) { + currentIndex = currentIndex - 1; Utils.playPressSound(); return; } @@ -229,21 +318,37 @@ public class GuiItemRecipe extends GuiScreen { if (isWithinRect( mouseX - guiLeft, mouseY - guiTop, - BUTTON_POSITION_RIGHT_X, - BUTTON_POSITION_Y, + buttonPositionRightX, + buttonPositionY, BUTTON_WIDTH, BUTTON_HEIGHT - )) { - currentIndex = currentIndex == craftingRecipes.size() - 1 ? currentIndex : currentIndex + 1; + ) && + currentIndex < getCurrentRecipeList().size()) { + currentIndex = currentIndex + 1; Utils.playPressSound(); return; } + for (int i = 0; i < tabs.size(); i++) { + if (isWithinRect( + mouseX - guiLeft, + mouseY - guiTop, + TAB_POS_X, + TAB_POS_Y + TAB_OFFSET_Y * i, + TAB_SIZE_X, + TAB_SIZE_Y + )) { + currentTab = i; + Utils.playPressSound(); + return; + } + } + for (RecipeSlot slot : getAllRenderedSlots()) { if (isWithinRect(mouseX, mouseY, slot.getX(this), slot.getY(this), SLOT_SIZE, SLOT_SIZE)) { ItemStack itemStack = slot.getItemStack(); if (mouseButton == 0) { - manager.displayGuiItemRecipe(manager.getInternalNameForItem(itemStack), ""); + manager.displayGuiItemRecipe(manager.getInternalNameForItem(itemStack)); } else if (mouseButton == 1) { manager.displayGuiItemUsages(manager.getInternalNameForItem(itemStack)); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityAgeable.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityAgeable.java new file mode 100644 index 00000000..9228f93d --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityAgeable.java @@ -0,0 +1,12 @@ +package io.github.moulberry.notenoughupdates.mixins; + +import net.minecraft.entity.EntityAgeable; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(EntityAgeable.class) +public interface AccessorEntityAgeable { + @Accessor(value = "growingAge") + void setGrowingAgeDirect(int newValue); + +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityArmorStand.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityArmorStand.java new file mode 100644 index 00000000..b6a3ca6e --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityArmorStand.java @@ -0,0 +1,12 @@ +package io.github.moulberry.notenoughupdates.mixins; + +import net.minecraft.entity.item.EntityArmorStand; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Invoker; + +@Mixin(EntityArmorStand.class) +public interface AccessorEntityArmorStand { + @Invoker(value = "setSmall") + void setSmallDirect(boolean isSmall); + +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorMinecraft.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorMinecraft.java new file mode 100644 index 00000000..0277a18b --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorMinecraft.java @@ -0,0 +1,14 @@ +package io.github.moulberry.notenoughupdates.mixins; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.IResourcePack; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +import java.util.List; + +@Mixin(Minecraft.class) +public interface AccessorMinecraft { + @Accessor(value = "defaultResourcePacks") + List onGetDefaultResourcePacks(); +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityAgeable.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityAgeable.java index b8f07b53..801b9041 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityAgeable.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityAgeable.java @@ -3,6 +3,7 @@ package io.github.moulberry.notenoughupdates.mixins; import net.minecraft.entity.EntityAgeable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityHorse.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityHorse.java new file mode 100644 index 00000000..fe88922e --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityHorse.java @@ -0,0 +1,17 @@ +package io.github.moulberry.notenoughupdates.mixins; + +import net.minecraft.entity.passive.EntityHorse; +import net.minecraft.world.World; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(EntityHorse.class) +public class MixinEntityHorse { + @Redirect(method = "updateHorseSlots", at = @At(value = "FIELD", target = "Lnet/minecraft/world/World;isRemote:Z")) + public boolean onUpdateHorseSlots(World instance) { + if (instance == null) + return true; + return instance.isRemote; + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntitySkeleton.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntitySkeleton.java new file mode 100644 index 00000000..54fe53f3 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntitySkeleton.java @@ -0,0 +1,17 @@ +package io.github.moulberry.notenoughupdates.mixins; + +import net.minecraft.entity.monster.EntitySkeleton; +import net.minecraft.world.World; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(EntitySkeleton.class) +public class MixinEntitySkeleton { + @Redirect(method = "setCurrentItemOrArmor", at = @At(value = "FIELD", target = "Lnet/minecraft/world/World;isRemote:Z")) + public boolean onSetCurrentItemOrArmor(World instance) { + if (instance == null) + return true; + return instance.isRemote; + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java b/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java index 2fba6e80..68449ba8 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java @@ -150,6 +150,10 @@ public class NEUConfig extends Config { return; case 20: FairySouls.getInstance().setTrackFairySouls(NotEnoughUpdates.INSTANCE.config.misc.trackFairySouls); + return; + case 21: + NotEnoughUpdates.INSTANCE.overlay.updateSearch(); + return; } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Itemlist.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Itemlist.java index 3e5a4cdf..db154c24 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Itemlist.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Itemlist.java @@ -107,4 +107,14 @@ public class Itemlist { ) @ConfigEditorColour public String backgroundColour = "15:6:0:0:255"; + + @Expose + @ConfigOption( + name = "Always show Monsters", + desc = "Always show Monster Items in the item list" + ) + @ConfigEditorBoolean( + runnableId = 21 + ) + public boolean alwaysShowMonsters = false; } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java index 11c10ea0..691ccaae 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java @@ -2222,7 +2222,7 @@ public class GuiProfileViewer extends GuiScreen { } Panorama.drawPanorama(-backgroundRotation, guiLeft + 212, guiTop + 44, 81, 108, -0.37f, 0.6f, - getPanoramasForLocation(location == null ? "dynamic" : location, panoramaIdentifier) + Panorama.getPanoramasForLocation(location == null ? "dynamic" : location, panoramaIdentifier) ); Minecraft.getMinecraft().getTextureManager().bindTexture(pv_pets); @@ -3114,38 +3114,6 @@ public class GuiProfileViewer extends GuiScreen { return entityPlayer; } - public ResourceLocation[] getPanoramasForLocation(String location, String identifier) { - if (panoramasMap.containsKey(location + identifier)) return panoramasMap.get(location + identifier); - try { - ResourceLocation[] panoramasArray = new ResourceLocation[6]; - for (int i = 0; i < 6; i++) { - panoramasArray[i] = - new ResourceLocation("notenoughupdates:panoramas/" + location + "_" + identifier + "/panorama_" + i + ".jpg"); - Minecraft.getMinecraft().getResourceManager().getResource(panoramasArray[i]); - } - panoramasMap.put(location + identifier, panoramasArray); - return panoramasArray; - } catch (IOException e) { - try { - ResourceLocation[] panoramasArray = new ResourceLocation[6]; - for (int i = 0; i < 6; i++) { - panoramasArray[i] = - new ResourceLocation("notenoughupdates:panoramas/" + location + "/panorama_" + i + ".jpg"); - Minecraft.getMinecraft().getResourceManager().getResource(panoramasArray[i]); - } - panoramasMap.put(location + identifier, panoramasArray); - return panoramasArray; - } catch (IOException e2) { - ResourceLocation[] panoramasArray = new ResourceLocation[6]; - for (int i = 0; i < 6; i++) { - panoramasArray[i] = new ResourceLocation("notenoughupdates:panoramas/unknown/panorama_" + i + ".jpg"); - } - panoramasMap.put(location + identifier, panoramasArray); - return panoramasArray; - } - } - } - private void drawExtraPage(int mouseX, int mouseY, float partialTicks) { FontRenderer fr = Minecraft.getMinecraft().fontRendererObj; @@ -4717,7 +4685,7 @@ public class GuiProfileViewer extends GuiScreen { } Panorama.drawPanorama(-backgroundRotation - extraRotation, guiLeft + 23, guiTop + 44, 81, 108, 0.37f, 0.8f, - getPanoramasForLocation(location == null ? "unknown" : location, panoramaIdentifier) + Panorama.getPanoramasForLocation(location == null ? "unknown" : location, panoramaIdentifier) ); Minecraft.getMinecraft().getTextureManager().bindTexture(pv_basic); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/Panorama.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/Panorama.java index ac117bc2..a2d297f5 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/Panorama.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/Panorama.java @@ -15,6 +15,9 @@ import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import org.lwjgl.util.glu.Project; +import java.io.IOException; +import java.util.HashMap; + public class Panorama { private static final TexLoc tl = new TexLoc(97, 19, Keyboard.KEY_P); private static final TexLoc tl2 = new TexLoc(37, 80, Keyboard.KEY_L); @@ -24,6 +27,41 @@ public class Panorama { private static int lastWidth = 0; private static int lastHeight = 0; + + private static final HashMap panoramasMap = new HashMap<>(); + + public static synchronized ResourceLocation[] getPanoramasForLocation(String location, String identifier) { + if (panoramasMap.containsKey(location + identifier)) return panoramasMap.get(location + identifier); + try { + ResourceLocation[] panoramasArray = new ResourceLocation[6]; + for (int i = 0; i < 6; i++) { + panoramasArray[i] = + new ResourceLocation("notenoughupdates:panoramas/" + location + "_" + identifier + "/panorama_" + i + ".jpg"); + Minecraft.getMinecraft().getResourceManager().getResource(panoramasArray[i]); + } + panoramasMap.put(location + identifier, panoramasArray); + return panoramasArray; + } catch (IOException e) { + try { + ResourceLocation[] panoramasArray = new ResourceLocation[6]; + for (int i = 0; i < 6; i++) { + panoramasArray[i] = + new ResourceLocation("notenoughupdates:panoramas/" + location + "/panorama_" + i + ".jpg"); + Minecraft.getMinecraft().getResourceManager().getResource(panoramasArray[i]); + } + panoramasMap.put(location + identifier, panoramasArray); + return panoramasArray; + } catch (IOException e2) { + ResourceLocation[] panoramasArray = new ResourceLocation[6]; + for (int i = 0; i < 6; i++) { + panoramasArray[i] = new ResourceLocation("notenoughupdates:panoramas/unknown/panorama_" + i + ".jpg"); + } + panoramasMap.put(location + identifier, panoramasArray); + return panoramasArray; + } + } + } + public static void drawPanorama( float angle, int x, diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingOverlay.java index d0b464f6..9d305e1d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingOverlay.java @@ -103,7 +103,7 @@ public class CraftingOverlay { if (Keyboard.getEventKey() == Keyboard.KEY_R) manager.showRecipe(recipeIngredient.getInternalItemId()); if (Keyboard.getEventKey() == Keyboard.KEY_U) - manager.displayGuiItemRecipe(recipeIngredient.getInternalItemId(), null); + manager.displayGuiItemRecipe(recipeIngredient.getInternalItemId()); } }); }); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingRecipe.java index 576cbbd4..79f349fa 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingRecipe.java @@ -17,130 +17,135 @@ import java.util.Set; public class CraftingRecipe implements NeuRecipe { - public static final ResourceLocation BACKGROUND = new ResourceLocation("textures/gui/container/crafting_table.png"); - - private static final int EXTRA_STRING_X = 132; - private static final int EXTRA_STRING_Y = 25; - - private final NEUManager manager; - private final Ingredient[] inputs; - private final String extraText; - private final Ingredient outputIngredient; - private List slots; - - public CraftingRecipe(NEUManager manager, Ingredient[] inputs, Ingredient output, String extra) { - this.manager = manager; - this.inputs = inputs; - this.outputIngredient = output; - this.extraText = extra; - if (inputs.length != 9) - throw new IllegalArgumentException("Cannot construct crafting recipe with non standard crafting grid size"); - } - - @Override - public Set getIngredients() { - Set ingredients = Sets.newHashSet(inputs); - ingredients.remove(null); - return ingredients; - } - - @Override - public boolean hasVariableCost() { - return false; - } - - @Override - public Set getOutputs() { - return Collections.singleton(getOutput()); - } - - public Ingredient getOutput() { - return outputIngredient; - } - - public Ingredient[] getInputs() { - return inputs; - } - - @Override - public List getSlots() { - if (slots != null) return slots; - slots = new ArrayList<>(); - for (int x = 0; x < 3; x++) { - for (int y = 0; y < 3; y++) { - Ingredient input = inputs[x + y * 3]; - if (input == null) continue; - ItemStack item = input.getItemStack(); - if (item == null) continue; - slots.add(new RecipeSlot(30 + x * GuiItemRecipe.SLOT_SPACING, 17 + y * GuiItemRecipe.SLOT_SPACING, item)); - } - } - slots.add(new RecipeSlot(124, 35, outputIngredient.getItemStack())); - return slots; - } - - public String getCraftText() { - return extraText; - } - - @Override - public ResourceLocation getBackground() { - return BACKGROUND; - } - - @Override - public void drawExtraInfo(GuiItemRecipe gui, int mouseX, int mouseY) { - FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; - - String craftingText = getCraftText(); - if (craftingText != null) - Utils.drawStringCenteredScaledMaxWidth(craftingText, fontRenderer, - gui.guiLeft + EXTRA_STRING_X, gui.guiTop + EXTRA_STRING_Y, false, 75, 0x404040 - ); - } - - @Override - public JsonObject serialize() { - JsonObject object = new JsonObject(); - object.addProperty("type", "crafting"); - object.addProperty("count", outputIngredient.getCount()); - object.addProperty("overrideOutputId", outputIngredient.getInternalItemId()); - for (int i = 0; i < 9; i++) { - Ingredient ingredient = inputs[i]; - if (ingredient == null) continue; - String[] x = {"1", "2", "3"}; - String[] y = {"A", "B", "C"}; - String name = x[i / 3] + y[i % 3]; - object.addProperty(name, ingredient.serialize()); - } - if (extraText != null) - object.addProperty("crafttext", extraText); - return object; - } - - public static CraftingRecipe parseCraftingRecipe(NEUManager manager, JsonObject recipe, JsonObject outputItem) { - Ingredient[] craftMatrix = new Ingredient[9]; - - String[] x = {"1", "2", "3"}; - String[] y = {"A", "B", "C"}; - for (int i = 0; i < 9; i++) { - String name = y[i / 3] + x[i % 3]; - if (!recipe.has(name)) continue; - String item = recipe.get(name).getAsString(); - if (item == null || item.isEmpty()) continue; - craftMatrix[i] = new Ingredient(manager, item); - } - int resultCount = 1; - if (recipe.has("count")) - resultCount = recipe.get("count").getAsInt(); - String extra = null; - if (outputItem.has("crafttext")) - extra = outputItem.get("crafttext").getAsString(); - if (recipe.has("crafttext")) - extra = recipe.get("crafttext").getAsString(); - String outputItemId = outputItem.get("internalname").getAsString(); - if (recipe.has("overrideOutputId")) - outputItemId = recipe.get("overrideOutputId").getAsString(); - return new CraftingRecipe(manager, craftMatrix, new Ingredient(manager, outputItemId, resultCount), extra); - } + public static final ResourceLocation BACKGROUND = new ResourceLocation("notenoughupdates","textures/gui/crafting_table_tall.png"); + + private static final int EXTRA_STRING_X = 132; + private static final int EXTRA_STRING_Y = 50; + + private final NEUManager manager; + private final Ingredient[] inputs; + private final String extraText; + private final Ingredient outputIngredient; + private List slots; + + public CraftingRecipe(NEUManager manager, Ingredient[] inputs, Ingredient output, String extra) { + this.manager = manager; + this.inputs = inputs; + this.outputIngredient = output; + this.extraText = extra; + if (inputs.length != 9) + throw new IllegalArgumentException("Cannot construct crafting recipe with non standard crafting grid size"); + } + + @Override + public Set getIngredients() { + Set ingredients = Sets.newHashSet(inputs); + ingredients.remove(null); + return ingredients; + } + + @Override + public RecipeType getType() { + return RecipeType.CRAFTING; + } + + @Override + public boolean hasVariableCost() { + return false; + } + + @Override + public Set getOutputs() { + return Collections.singleton(getOutput()); + } + + public Ingredient getOutput() { + return outputIngredient; + } + + public Ingredient[] getInputs() { + return inputs; + } + + + @Override + public List getSlots() { + if (slots != null) return slots; + slots = new ArrayList<>(); + for (int x = 0; x < 3; x++) { + for (int y = 0; y < 3; y++) { + Ingredient input = inputs[x + y * 3]; + if (input == null) continue; + ItemStack item = input.getItemStack(); + if (item == null) continue; + slots.add(new RecipeSlot(30 + x * GuiItemRecipe.SLOT_SPACING, 48 + y * GuiItemRecipe.SLOT_SPACING, item)); + } + } + slots.add(new RecipeSlot(124, 66, outputIngredient.getItemStack())); + return slots; + } + + public String getCraftText() { + return extraText; + } + + @Override + public ResourceLocation getBackground() { + return BACKGROUND; + } + + @Override + public void drawExtraInfo(GuiItemRecipe gui, int mouseX, int mouseY) { + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; + + String craftingText = getCraftText(); + if (craftingText != null) + Utils.drawStringCenteredScaledMaxWidth(craftingText, fontRenderer, + gui.guiLeft + EXTRA_STRING_X, gui.guiTop + EXTRA_STRING_Y, false, 75, 0x404040); + } + + @Override + public JsonObject serialize() { + JsonObject object = new JsonObject(); + object.addProperty("type", "crafting"); + object.addProperty("count", outputIngredient.getCount()); + object.addProperty("overrideOutputId", outputIngredient.getInternalItemId()); + for (int i = 0; i < 9; i++) { + Ingredient ingredient = inputs[i]; + if (ingredient == null) continue; + String[] x = {"1", "2", "3"}; + String[] y = {"A", "B", "C"}; + String name = x[i / 3] + y[i % 3]; + object.addProperty(name, ingredient.serialize()); + } + if(extraText != null) + object.addProperty("crafttext", extraText); + return object; + } + + public static CraftingRecipe parseCraftingRecipe(NEUManager manager, JsonObject recipe, JsonObject outputItem) { + Ingredient[] craftMatrix = new Ingredient[9]; + + String[] x = {"1", "2", "3"}; + String[] y = {"A", "B", "C"}; + for (int i = 0; i < 9; i++) { + String name = y[i / 3] + x[i % 3]; + if (!recipe.has(name)) continue; + String item = recipe.get(name).getAsString(); + if (item == null || item.isEmpty()) continue; + craftMatrix[i] = new Ingredient(manager, item); + } + int resultCount = 1; + if (recipe.has("count")) + resultCount = recipe.get("count").getAsInt(); + String extra = null; + if (outputItem.has("crafttext")) + extra = outputItem.get("crafttext").getAsString(); + if (recipe.has("crafttext")) + extra = recipe.get("crafttext").getAsString(); + String outputItemId = outputItem.get("internalname").getAsString(); + if (recipe.has("overrideOutputId")) + outputItemId = recipe.get("overrideOutputId").getAsString(); + return new CraftingRecipe(manager, craftMatrix, new Ingredient(manager, outputItemId, resultCount), extra); + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/ForgeRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/ForgeRecipe.java index c971d82a..7847b0b4 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/ForgeRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/ForgeRecipe.java @@ -19,238 +19,212 @@ import java.util.*; public class ForgeRecipe implements NeuRecipe { - private static final ResourceLocation BACKGROUND = - new ResourceLocation("notenoughupdates", "textures/gui/forge_recipe.png"); - - private static final int SLOT_IMAGE_U = 176; - private static final int SLOT_IMAGE_V = 0; - private static final int SLOT_IMAGE_SIZE = 18; - private static final int SLOT_PADDING = 1; - private static final int EXTRA_INFO_MAX_WIDTH = 75; - public static final int EXTRA_INFO_X = 132; - public static final int EXTRA_INFO_Y = 25; - - public enum ForgeType { - REFINING, ITEM_FORGING - } - - private final NEUManager manager; - private final List inputs; - private final Ingredient output; - private final int hotmLevel; - private final int timeInSeconds; // TODO: quick forge - private List slots; - - public ForgeRecipe( - NEUManager manager, - List inputs, - Ingredient output, - int durationInSeconds, - int hotmLevel - ) { - this.manager = manager; - this.inputs = inputs; - this.output = output; - this.hotmLevel = hotmLevel; - this.timeInSeconds = durationInSeconds; - } - - public List getInputs() { - return inputs; - } - - public Ingredient getOutput() { - return output; - } - - public int getHotmLevel() { - return hotmLevel; - } - - public int getTimeInSeconds() { - return timeInSeconds; - } - - @Override - public ResourceLocation getBackground() { - return BACKGROUND; - } - - @Override - public Set getIngredients() { - return Sets.newHashSet(inputs); - } - - @Override - public boolean hasVariableCost() { - return false; - } - - @Override - public Set getOutputs() { - return Collections.singleton(output); - } - - @Override - public List getSlots() { - if (slots != null) return slots; - slots = new ArrayList<>(); - for (int i = 0; i < inputs.size(); i++) { - Ingredient input = inputs.get(i); - ItemStack itemStack = input.getItemStack(); - if (itemStack == null) continue; - int[] slotCoordinates = getSlotCoordinates(i, inputs.size()); - slots.add(new RecipeSlot(slotCoordinates[0], slotCoordinates[1], itemStack)); - } - slots.add(new RecipeSlot(124, 35, output.getItemStack())); - return slots; - } - - @Override - public void drawExtraBackground(GuiItemRecipe gui, int mouseX, int mouseY) { - Minecraft.getMinecraft().getTextureManager().bindTexture(BACKGROUND); - for (int i = 0; i < inputs.size(); i++) { - int[] slotCoordinates = getSlotCoordinates(i, inputs.size()); - gui.drawTexturedModalRect( - gui.guiLeft + slotCoordinates[0] - SLOT_PADDING, gui.guiTop + slotCoordinates[1] - SLOT_PADDING, - SLOT_IMAGE_U, SLOT_IMAGE_V, - SLOT_IMAGE_SIZE, SLOT_IMAGE_SIZE - ); - } - } - - @Override - public void drawExtraInfo(GuiItemRecipe gui, int mouseX, int mouseY) { - FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; - if (timeInSeconds > 0) - Utils.drawStringCenteredScaledMaxWidth( - formatDuration(timeInSeconds), - fontRenderer, - gui.guiLeft + EXTRA_INFO_X, - gui.guiTop + EXTRA_INFO_Y, - false, - EXTRA_INFO_MAX_WIDTH, - 0xff00ff - ); - } - - @Override - public void drawHoverInformation(GuiItemRecipe gui, int mouseX, int mouseY) { - manager.hotm.getInformationOnCurrentProfile().ifPresent(hotmTree -> { - if (timeInSeconds > 0 && gui.isWithinRect( - mouseX, mouseY, - gui.guiLeft + EXTRA_INFO_X - EXTRA_INFO_MAX_WIDTH / 2, - gui.guiTop + EXTRA_INFO_Y - 8, - EXTRA_INFO_MAX_WIDTH, 16 - )) { - int qf = hotmTree.getLevel("forge_time"); - int reducedTime = getReducedTime(qf); - if (qf > 0) { - - Utils.drawHoveringText( - Arrays.asList( - EnumChatFormatting.YELLOW + formatDuration(reducedTime) + " with Quick Forge (Level " + qf + ")"), - mouseX, - mouseY, - gui.width, - gui.height, - 500, - Minecraft.getMinecraft().fontRendererObj - ); - } - } - }); - } - - public int getReducedTime(int quickForgeUpgradeLevel) { - return HotmInformation.getQuickForgeMultiplier(quickForgeUpgradeLevel) * timeInSeconds / 1000; - } - - @Override - public JsonObject serialize() { - JsonObject object = new JsonObject(); - JsonArray ingredients = new JsonArray(); - for (Ingredient input : inputs) { - ingredients.add(new JsonPrimitive(input.serialize())); - } - object.addProperty("type", "forge"); - object.add("inputs", ingredients); - object.addProperty("count", output.getCount()); - object.addProperty("overrideOutputId", output.getInternalItemId()); - if (hotmLevel >= 0) - object.addProperty("hotmLevel", hotmLevel); - if (timeInSeconds >= 0) - object.addProperty("duration", timeInSeconds); - return object; - } - - static ForgeRecipe parseForgeRecipe(NEUManager manager, JsonObject recipe, JsonObject output) { - List ingredients = new ArrayList<>(); - for (JsonElement element : recipe.getAsJsonArray("inputs")) { - String ingredientString = element.getAsString(); - ingredients.add(new Ingredient(manager, ingredientString)); - } - String internalItemId = output.get("internalname").getAsString(); - if (recipe.has("overrideOutputId")) - internalItemId = recipe.get("overrideOutputId").getAsString(); - int resultCount = 1; - if (recipe.has("count")) { - resultCount = recipe.get("count").getAsInt(); - } - int duration = -1; - if (recipe.has("duration")) { - duration = recipe.get("duration").getAsInt(); - } - int hotmLevel = -1; - if (recipe.has("hotmLevel")) { - hotmLevel = recipe.get("hotmLevel").getAsInt(); - } - return new ForgeRecipe( - manager, - ingredients, - new Ingredient(manager, internalItemId, resultCount), - duration, - hotmLevel - ); - } - - private static final int RECIPE_CENTER_X = 40; - private static final int RECIPE_CENTER_Y = 34; - private static final int SLOT_DISTANCE_FROM_CENTER = 22; - private static final int RECIPE_FALLBACK_X = 20; - private static final int RECIPE_FALLBACK_Y = 15; - - static int[] getSlotCoordinates(int slotNumber, int totalSlotCount) { - if (totalSlotCount > 6) { - return new int[]{ - RECIPE_FALLBACK_X + (slotNumber % 4) * GuiItemRecipe.SLOT_SPACING, - RECIPE_FALLBACK_Y + (slotNumber / 4) * GuiItemRecipe.SLOT_SPACING, - }; - } - if (totalSlotCount == 1) { - return new int[]{ - RECIPE_CENTER_X - GuiItemRecipe.SLOT_SIZE / 2, - RECIPE_CENTER_Y - GuiItemRecipe.SLOT_SIZE / 2 - }; - } - double rad = Math.PI * 2 * slotNumber / totalSlotCount; - int x = (int) (Math.cos(rad) * SLOT_DISTANCE_FROM_CENTER); - int y = (int) (Math.sin(rad) * SLOT_DISTANCE_FROM_CENTER); - return new int[]{RECIPE_CENTER_X + x, RECIPE_CENTER_Y + y}; - } - - static String formatDuration(int seconds) { - int minutes = seconds / 60; - seconds %= 60; - int hours = minutes / 60; - minutes %= 60; - int days = hours / 24; - hours %= 24; - StringBuilder sB = new StringBuilder(); - if (days != 0) sB.append(days).append("d "); - if (hours != 0) sB.append(hours).append("h "); - if (minutes != 0) sB.append(minutes).append("m "); - if (seconds != 0) sB.append(seconds).append("s "); - return sB.substring(0, sB.length() - 1); - } + private static final ResourceLocation BACKGROUND = new ResourceLocation("notenoughupdates", "textures/gui/forge_recipe_tall.png"); + + private static final int SLOT_IMAGE_U = 176; + private static final int SLOT_IMAGE_V = 0; + private static final int SLOT_IMAGE_SIZE = 18; + private static final int SLOT_PADDING = 1; + private static final int EXTRA_INFO_MAX_WIDTH = 75; + public static final int EXTRA_INFO_X = 132; + public static final int EXTRA_INFO_Y = 55; + + public enum ForgeType { + REFINING, ITEM_FORGING + } + + private final NEUManager manager; + private final List inputs; + private final Ingredient output; + private final int hotmLevel; + private final int timeInSeconds; // TODO: quick forge + private List slots; + + public ForgeRecipe(NEUManager manager, List inputs, Ingredient output, int durationInSeconds, int hotmLevel) { + this.manager = manager; + this.inputs = inputs; + this.output = output; + this.hotmLevel = hotmLevel; + this.timeInSeconds = durationInSeconds; + } + + public List getInputs() { + return inputs; + } + + public Ingredient getOutput() { + return output; + } + + public int getHotmLevel() { + return hotmLevel; + } + + public int getTimeInSeconds() { + return timeInSeconds; + } + + @Override + public ResourceLocation getBackground() { + return BACKGROUND; + } + + @Override + public RecipeType getType() { + return RecipeType.FORGE; + } + + @Override + public Set getIngredients() { + return Sets.newHashSet(inputs); + } + + @Override + public boolean hasVariableCost() { + return false; + } + + @Override + public Set getOutputs() { + return Collections.singleton(output); + } + + @Override + public List getSlots() { + if (slots != null) return slots; + slots = new ArrayList<>(); + for (int i = 0; i < inputs.size(); i++) { + Ingredient input = inputs.get(i); + ItemStack itemStack = input.getItemStack(); + if (itemStack == null) continue; + int[] slotCoordinates = getSlotCoordinates(i, inputs.size()); + slots.add(new RecipeSlot(slotCoordinates[0], slotCoordinates[1], itemStack)); + } + slots.add(new RecipeSlot(124, 66, output.getItemStack())); + return slots; + } + + @Override + public void drawExtraBackground(GuiItemRecipe gui, int mouseX, int mouseY) { + Minecraft.getMinecraft().getTextureManager().bindTexture(BACKGROUND); + for (int i = 0; i < inputs.size(); i++) { + int[] slotCoordinates = getSlotCoordinates(i, inputs.size()); + gui.drawTexturedModalRect( + gui.guiLeft + slotCoordinates[0] - SLOT_PADDING, gui.guiTop + slotCoordinates[1] - SLOT_PADDING, + SLOT_IMAGE_U, SLOT_IMAGE_V, + SLOT_IMAGE_SIZE, SLOT_IMAGE_SIZE); + } + } + + @Override + public void drawExtraInfo(GuiItemRecipe gui, int mouseX, int mouseY) { + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; + if (timeInSeconds > 0) + Utils.drawStringCenteredScaledMaxWidth(formatDuration(timeInSeconds), fontRenderer, gui.guiLeft + EXTRA_INFO_X, gui.guiTop + EXTRA_INFO_Y, false, EXTRA_INFO_MAX_WIDTH, 0xff00ff); + } + + @Override + public void drawHoverInformation(GuiItemRecipe gui, int mouseX, int mouseY) { + manager.hotm.getInformationOnCurrentProfile().ifPresent(hotmTree -> { + if (timeInSeconds > 0 && gui.isWithinRect( + mouseX, mouseY, + gui.guiLeft + EXTRA_INFO_X - EXTRA_INFO_MAX_WIDTH / 2, + gui.guiTop + EXTRA_INFO_Y - 8, + EXTRA_INFO_MAX_WIDTH, 16 + )) { + int qf = hotmTree.getLevel("forge_time"); + int reducedTime = getReducedTime(qf); + if (qf > 0) { + + Utils.drawHoveringText(Arrays.asList(EnumChatFormatting.YELLOW + formatDuration(reducedTime) + " with Quick Forge (Level " + qf + ")"), mouseX, mouseY, gui.width, gui.height, 500, Minecraft.getMinecraft().fontRendererObj); + } + } + }); + } + + public int getReducedTime(int quickForgeUpgradeLevel) { + return HotmInformation.getQuickForgeMultiplier(quickForgeUpgradeLevel) * timeInSeconds / 1000; + } + + @Override + public JsonObject serialize() { + JsonObject object = new JsonObject(); + JsonArray ingredients = new JsonArray(); + for (Ingredient input : inputs) { + ingredients.add(new JsonPrimitive(input.serialize())); + } + object.addProperty("type", "forge"); + object.add("inputs", ingredients); + object.addProperty("count", output.getCount()); + object.addProperty("overrideOutputId", output.getInternalItemId()); + if (hotmLevel >= 0) + object.addProperty("hotmLevel", hotmLevel); + if (timeInSeconds >= 0) + object.addProperty("duration", timeInSeconds); + return object; + } + + static ForgeRecipe parseForgeRecipe(NEUManager manager, JsonObject recipe, JsonObject output) { + List ingredients = new ArrayList<>(); + for (JsonElement element : recipe.getAsJsonArray("inputs")) { + String ingredientString = element.getAsString(); + ingredients.add(new Ingredient(manager, ingredientString)); + } + String internalItemId = output.get("internalname").getAsString(); + if (recipe.has("overrideOutputId")) + internalItemId = recipe.get("overrideOutputId").getAsString(); + int resultCount = 1; + if (recipe.has("count")) { + resultCount = recipe.get("count").getAsInt(); + } + int duration = -1; + if (recipe.has("duration")) { + duration = recipe.get("duration").getAsInt(); + } + int hotmLevel = -1; + if (recipe.has("hotmLevel")) { + hotmLevel = recipe.get("hotmLevel").getAsInt(); + } + return new ForgeRecipe(manager, ingredients, new Ingredient(manager, internalItemId, resultCount), duration, hotmLevel); + } + + private static final int RECIPE_CENTER_X = 49; + private static final int RECIPE_CENTER_Y = 74; + private static final int SLOT_DISTANCE_FROM_CENTER = 30; + private static final int RECIPE_FALLBACK_X = 20; + private static final int RECIPE_FALLBACK_Y = 15; + + static int[] getSlotCoordinates(int slotNumber, int totalSlotCount) { + if (totalSlotCount > 8) { + return new int[]{ + RECIPE_FALLBACK_X + (slotNumber % 4) * GuiItemRecipe.SLOT_SPACING, + RECIPE_FALLBACK_Y + (slotNumber / 4) * GuiItemRecipe.SLOT_SPACING, + }; + } + if (totalSlotCount == 1) { + return new int[]{ + RECIPE_CENTER_X - GuiItemRecipe.SLOT_SIZE / 2, + RECIPE_CENTER_Y - GuiItemRecipe.SLOT_SIZE / 2 + }; + } + double rad = Math.PI * 2 * slotNumber / totalSlotCount; + int x = (int) (Math.cos(rad) * SLOT_DISTANCE_FROM_CENTER); + int y = (int) (Math.sin(rad) * SLOT_DISTANCE_FROM_CENTER); + return new int[]{RECIPE_CENTER_X + x - GuiItemRecipe.SLOT_SIZE / 2, RECIPE_CENTER_Y + y - GuiItemRecipe.SLOT_SIZE / 2}; + } + + static String formatDuration(int seconds) { + int minutes = seconds / 60; + seconds %= 60; + int hours = minutes / 60; + minutes %= 60; + int days = hours / 24; + hours %= 24; + StringBuilder sB = new StringBuilder(); + if (days != 0) sB.append(days).append("d "); + if (hours != 0) sB.append(hours).append("h "); + if (minutes != 0) sB.append(minutes).append("m "); + if (seconds != 0) sB.append(seconds).append("s "); + return sB.substring(0, sB.length() - 1); + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/Ingredient.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/Ingredient.java index 79b548da..c4928605 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/Ingredient.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/Ingredient.java @@ -2,6 +2,7 @@ package io.github.moulberry.notenoughupdates.recipes; import com.google.gson.JsonObject; import io.github.moulberry.notenoughupdates.NEUManager; +import io.github.moulberry.notenoughupdates.util.ItemUtils; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -75,9 +76,7 @@ public class Ingredient { public ItemStack getItemStack() { if (itemStack != null) return itemStack; if (isCoins()) { - itemStack = new ItemStack(Items.gold_nugget); - itemStack.setStackDisplayName("\u00A7r\u00A76" + Utils.formatNumberWithDots(getCount()) + " Coins"); - return itemStack; + return ItemUtils.getCoinItemStack(count); } JsonObject itemInfo = manager.getItemInformation().get(internalItemId); itemStack = manager.jsonToStack(itemInfo); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/MobLootRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/MobLootRecipe.java new file mode 100644 index 00000000..dcbf71da --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/MobLootRecipe.java @@ -0,0 +1,309 @@ +package io.github.moulberry.notenoughupdates.recipes; + +import com.google.common.collect.Sets; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonPrimitive; +import io.github.moulberry.notenoughupdates.NEUManager; +import io.github.moulberry.notenoughupdates.miscfeatures.entityviewer.EntityViewer; +import io.github.moulberry.notenoughupdates.miscgui.GuiItemRecipe; +import io.github.moulberry.notenoughupdates.profileviewer.Panorama; +import io.github.moulberry.notenoughupdates.util.ItemUtils; +import io.github.moulberry.notenoughupdates.util.JsonUtils; +import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import java.util.function.BiConsumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class MobLootRecipe implements NeuRecipe { + + private static final int MOB_POS_X = 38, MOB_POS_Y = 100; + private static final int SLOT_POS_X = 82, SLOT_POS_Y = 24; + + public static class MobDrop { + public final Ingredient drop; + public final String chance; + public final List extra; + + private ItemStack itemStack; + + public MobDrop(Ingredient drop, String chance, List extra) { + this.drop = drop; + this.chance = chance; + this.extra = extra; + } + + public ItemStack getItemStack() { + if (itemStack == null) { + itemStack = drop.getItemStack().copy(); + List arrayList = new ArrayList<>(extra); + arrayList.add("§r§e§lDrop Chance: §6" + chance); + ItemUtils.appendLore(itemStack, arrayList); + } + return itemStack; + } + } + + public static ResourceLocation BACKGROUND = new ResourceLocation( + "notenoughupdates", + "textures/gui/mob_loot_tall.png" + ); + private final Ingredient mobIngredient; + private final List drops; + private final int coins; + private final int combatXp; + private final int xp; + private final String name; + private final String render; + private final int level; + private final List extra; + private EntityLivingBase entityLivingBase; + + private final String panoName; + + private ResourceLocation[] panos = null; + + public MobLootRecipe( + Ingredient mobIngredient, + List drops, + int level, + int coins, + int xp, + int combatXp, + String name, + String render, + List extra, + String panoName + ) { + this.mobIngredient = mobIngredient; + this.drops = drops; + this.level = level; + this.coins = coins; + this.xp = xp; + this.extra = extra; + this.combatXp = combatXp; + this.name = name; + this.render = render; + this.panoName = panoName; + } + + public String getName() { + return name; + } + + public List getDrops() { + return drops; + } + + public int getCoins() { + return coins; + } + + public int getCombatXp() { + return combatXp; + } + + public Ingredient getMob() { + return mobIngredient; + } + + public int getXp() { + return xp; + } + + public String getRender() { + return render; + } + + public synchronized EntityLivingBase getRenderEntity() { + if (entityLivingBase == null) { + if (render == null) return null; + if (render.startsWith("@")) { + entityLivingBase = EntityViewer.constructEntity(new ResourceLocation(render.substring(1))); + } else { + entityLivingBase = EntityViewer.constructEntity(render, Collections.emptyList()); + } + } + return entityLivingBase; + } + + @Override + public Set getIngredients() { + return Sets.newHashSet(mobIngredient); + } + + @Override + public Set getOutputs() { + return Stream.concat(drops.stream().map(it -> it.drop), Stream.of(mobIngredient)).collect(Collectors.toSet()); + } + + @Override + public String getTitle() { + return getFullMobName(); + } + + public String getFullMobName() { + return (level > 0 ? "§8[§7Lv " + level + "§8] §c" : "§c") + name; + } + + @Override + public List getSlots() { + List slots = new ArrayList<>(); + BiConsumer addSlot = (sl, is) -> slots.add( + new RecipeSlot( + SLOT_POS_X + (sl % 5) * 16, + SLOT_POS_Y + (sl / 5) * 16, + is + )); + int i = 0; + for (; i < drops.size(); i++) { + MobDrop mobDrop = drops.get(i); + addSlot.accept(i, mobDrop.getItemStack()); + } + return slots; + } + + @Override + public RecipeType getType() { + return RecipeType.MOB_LOOT; + } + + @Override + public boolean shouldUseForCraftCost() { + return false; + } + + @Override + public boolean hasVariableCost() { + return true; + } + + public static final int PANORAMA_POS_X = 13; + public static final int PANORAMA_POS_Y = 23; + public static final int PANORAMA_WIDTH = 50; + public static final int PANORAMA_HEIGHT = 80; + + @Override + public void drawExtraBackground(GuiItemRecipe gui, int mouseX, int mouseY) { + if (panos == null) { + panos = Panorama.getPanoramasForLocation(panoName, "day"); + } + Panorama.drawPanorama( + ((System.nanoTime() / 20000000000F) % 1) * 360, + gui.guiLeft + PANORAMA_POS_X, + gui.guiTop + PANORAMA_POS_Y, + PANORAMA_WIDTH, + PANORAMA_HEIGHT, + 0F, + 0F, + panos + ); + if (getRenderEntity() != null) + EntityViewer.renderEntity(entityLivingBase, gui.guiLeft + MOB_POS_X, gui.guiTop + MOB_POS_Y, mouseX, mouseY); + } + + @Override + public void drawHoverInformation(GuiItemRecipe gui, int mouseX, int mouseY) { + if (gui.isWithinRect( + mouseX, + mouseY, + gui.guiLeft + PANORAMA_POS_X, + gui.guiTop + PANORAMA_POS_Y, + PANORAMA_WIDTH, + PANORAMA_HEIGHT + )) { + List stuff = new ArrayList<>(); + stuff.add(getFullMobName()); + stuff.add(""); + if (coins > 0) + stuff.add("§r§6Coins: " + coins); + if (xp > 0) + stuff.add("§r§aExperience: " + xp); + if (combatXp > 0) + stuff.add("§r§bCombat Experience: " + xp); + stuff.addAll(extra); + Utils.drawHoveringText( + stuff, + mouseX, + mouseY, + gui.width, + gui.height, + -1, + Minecraft.getMinecraft().fontRendererObj + ); + } + } + + @Override + public int[] getPageFlipPositionLeftTopCorner() { + return new int[]{14, 118}; + } + + @Override + public JsonObject serialize() { + JsonObject recipe = new JsonObject(); + recipe.addProperty("level", level); + recipe.addProperty("coins", coins); + recipe.addProperty("xp", xp); + recipe.addProperty("combat_xp", combatXp); + recipe.addProperty("name", name); + recipe.addProperty("render", render); + recipe.addProperty("type", getType().getId()); + recipe.addProperty("panorama", "unknown"); + recipe.add("extra", JsonUtils.transformListToJsonArray(extra, JsonPrimitive::new)); + recipe.add("drops", JsonUtils.transformListToJsonArray(drops, drop -> { + JsonObject dropObject = new JsonObject(); + dropObject.addProperty("id", drop.drop.serialize()); + dropObject.add("extra", JsonUtils.transformListToJsonArray(drop.extra, JsonPrimitive::new)); + dropObject.addProperty("chance", drop.chance); + return dropObject; + })); + return recipe; + } + + @Override + public ResourceLocation getBackground() { + return BACKGROUND; + } + + public static MobLootRecipe parseRecipe(NEUManager manager, JsonObject recipe, JsonObject outputItemJson) { + List drops = new ArrayList<>(); + for (JsonElement jsonElement : recipe.getAsJsonArray("drops")) { + if (jsonElement.isJsonPrimitive()) { + drops.add(new MobDrop(new Ingredient(manager, jsonElement.getAsString()), null, Collections.emptyList())); + } else { + JsonObject jsonObject = jsonElement.getAsJsonObject(); + drops.add( + new MobDrop( + new Ingredient(manager, jsonObject.get("id").getAsString()), + jsonObject.has("chance") ? jsonObject.get("chance").getAsString() : null, + JsonUtils.getJsonArrayOrEmpty(jsonObject, "extra", JsonElement::getAsString) + )); + } + } + + return new MobLootRecipe( + new Ingredient(manager, outputItemJson.get("internalname").getAsString(), 1), + drops, + recipe.has("level") ? recipe.get("level").getAsInt() : 0, + recipe.has("coins") ? recipe.get("coins").getAsInt() : 0, + recipe.has("xp") ? recipe.get("xp").getAsInt() : 0, + recipe.has("combat_xp") ? recipe.get("combat_xp").getAsInt() : 0, + recipe.get("name").getAsString(), + recipe.has("render") && !recipe.get("render").isJsonNull() ? recipe.get("render").getAsString() : null, + JsonUtils.getJsonArrayOrEmpty(recipe, "extra", JsonElement::getAsString), + recipe.has("panorama") ? recipe.get("panorama").getAsString() : "unknown" + ); + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/NeuRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/NeuRecipe.java index 3516f707..8202bb48 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/NeuRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/NeuRecipe.java @@ -15,6 +15,12 @@ public interface NeuRecipe { List getSlots(); + RecipeType getType(); + + default String getTitle() { + return getType().getLabel(); + } + default void drawExtraInfo(GuiItemRecipe gui, int mouseX, int mouseY) { } @@ -31,15 +37,12 @@ public interface NeuRecipe { ResourceLocation getBackground(); static NeuRecipe parseRecipe(NEUManager manager, JsonObject recipe, JsonObject output) { + RecipeType recipeType = RecipeType.CRAFTING; if (recipe.has("type")) { - switch (recipe.get("type").getAsString().intern()) { - case "forge": - return ForgeRecipe.parseForgeRecipe(manager, recipe, output); - case "trade": - return VillagerTradeRecipe.parseStaticRecipe(manager, recipe); - } + recipeType = RecipeType.getRecipeTypeForId(recipe.get("type").getAsString()); } - return CraftingRecipe.parseCraftingRecipe(manager, recipe, output); + if (recipeType == null) return null; + return recipeType.createRecipe(manager, recipe, output); } default boolean shouldUseForCraftCost() { @@ -49,4 +52,11 @@ public interface NeuRecipe { default boolean isAvailable() { return true; } + + /** + * @return an array of length two in the format [leftmost x, topmost y] of the page buttons + */ + default int[] getPageFlipPositionLeftTopCorner() { + return new int[]{110, 90}; + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeGenerator.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeGenerator.java index 46aff6c4..e5028146 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeGenerator.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeGenerator.java @@ -9,9 +9,11 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.inventory.GuiChest; +import net.minecraft.init.Items; import net.minecraft.inventory.ContainerChest; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagList; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -19,10 +21,10 @@ import net.minecraftforge.fml.common.gameevent.TickEvent; import org.lwjgl.input.Keyboard; import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; public class RecipeGenerator { public static final String DURATION = "Duration: "; @@ -81,7 +83,7 @@ public class RecipeGenerator { " seconds (no QF) .")); boolean saved = false; try { - saved = saveRecipe(recipe); + saved = saveRecipes(recipe.getOutput().getInternalItemId(), Collections.singletonList(recipe)); } catch (IOException e) { } if (!saved) @@ -93,21 +95,152 @@ public class RecipeGenerator { " Failed to save recipe. Does the item already exist?")); } } + if (saveRecipe) attemptToSaveBestiary(menu); } - public boolean saveRecipe(NeuRecipe recipe) throws IOException { - JsonObject recipeJson = recipe.serialize(); - for (Ingredient i : recipe.getOutputs()) { - if (i.isCoins()) continue; - JsonObject outputJson = neu.manager.readJsonDefaultDir(i.getInternalItemId() + ".json"); - if (outputJson == null) return false; - outputJson.addProperty("clickcommand", "viewrecipe"); - JsonArray array = new JsonArray(); - array.add(recipeJson); - outputJson.add("recipes", array); - neu.manager.writeJsonDefaultDir(outputJson, i.getInternalItemId() + ".json"); - neu.manager.loadItem(i.getInternalItemId()); + private List getLore(ItemStack item) { + NBTTagList loreTag = item.getTagCompound().getCompoundTag("display").getTagList("Lore", 8); + List loreList = new ArrayList<>(); + for (int i = 0; i < loreTag.tagCount(); i++) { + loreList.add(loreTag.getStringTagAt(i)); } + return loreList; + } + + // §8[§7Lv1§8] §fZombie Villager + private static final Pattern MOB_DISPLAY_NAME_PATTERN = Pattern.compile("^§8\\[§7Lv(?\\d+)§8] (?.*)$"); + // §7Coins per Kill: §61 + // §7Combat Exp: §3120 + // §8 ■ §7§5Skeleton Grunt Helmet §8(§a5%§8) + // §8 ■ §7§fRotten Flesh + // §8 ■ Dragon Essence §8x3-5 + private static final Pattern LORE_PATTERN = Pattern.compile("^(?:" + + "§7Coins per Kill: §6(?[,\\d]+)|" + + "§7Combat Exp: §3(?[,\\d]+)|" + + "§7XP Orbs: §3(?[,\\d]+)|" + + "§8 ■ (?:§7)?(?(?:§.)?.+?)(?: §8\\(§a(?[\\d.<]+%)§8\\)| §8(?x.*))?|" + + "§7Kills: §a[,\\d]+|" + + "§.[a-zA-Z]+ Loot|" + + "§7Deaths: §a[,\\d]+|" + + " §8■ (?§c\\?\\?\\?)|" + + "" + + ")$"); + + private void attemptToSaveBestiary(IInventory menu) { + if (!menu.getDisplayName().getUnformattedText().contains("➜")) return; + ItemStack backArrow = menu.getStackInSlot(48); + if (backArrow == null || backArrow.getItem() != Items.arrow) return; + if (!getLore(backArrow).stream().anyMatch(it -> it.startsWith("§7To Bestiary ➜"))) return; + List recipes = new ArrayList<>(); + String internalMobName = + menu.getDisplayName().getUnformattedText().split("➜")[1].toUpperCase(Locale.ROOT).trim() + "_MONSTER"; + for (int i = 9; i < 44; i++) { + ItemStack mobStack = menu.getStackInSlot(i); + if (mobStack == null || mobStack.getItem() != Items.skull) continue; + Matcher matcher = MOB_DISPLAY_NAME_PATTERN.matcher(mobStack.getDisplayName()); + if (!matcher.matches()) continue; + String name = matcher.group("name"); + int level = parseIntIgnoringCommas(matcher.group("level")); + List mobLore = getLore(mobStack); + int coins = 0, xp = 0, combatXp = 0; + List drops = new ArrayList<>(); + for (String loreLine : mobLore) { + Matcher loreMatcher = LORE_PATTERN.matcher(loreLine); + if (!loreMatcher.matches()) { + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText( + "[WARNING] Unknown lore line: " + loreLine)); + continue; + } + if (loreMatcher.group("coins") != null) + coins = parseIntIgnoringCommas(loreMatcher.group("coins")); + if (loreMatcher.group("combatxp") != null) + combatXp = parseIntIgnoringCommas(loreMatcher.group("combatxp")); + if (loreMatcher.group("xp") != null) + xp = parseIntIgnoringCommas(loreMatcher.group("xp")); + if (loreMatcher.group("dropName") != null) { + String dropName = loreMatcher.group("dropName"); + List possibleItems = neu.manager.getItemInformation().values().stream().filter(it -> it.get( + "displayname").getAsString().equals(dropName)).collect(Collectors.toList()); + if (possibleItems.size() != 1) { + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText( + "[WARNING] Could not parse drop, ambiguous or missing item information: " + loreLine)); + continue; + } + Ingredient item = new Ingredient(neu.manager, possibleItems.get(0).get("internalname").getAsString()); + String chance = loreMatcher.group("dropChances") != null + ? loreMatcher.group("dropChances") + : loreMatcher.group("dropCount"); + drops.add(new MobLootRecipe.MobDrop(item, chance, new ArrayList<>())); + } + if (loreMatcher.group("missing") != null) { + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText( + "[WARNING] You are missing Bestiary levels for drop: " + loreLine)); + + } + } + recipes.add(new MobLootRecipe( + new Ingredient(neu.manager, internalMobName, 1), + drops, + level, + coins, + xp, + combatXp, + name, + null, + new ArrayList<>(), + "unknown" + )); + } + boolean saved = false; + try { + saved = saveRecipes(internalMobName, recipes); + } catch (IOException e) { + } + if (!saved) + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("" + + EnumChatFormatting.DARK_RED + EnumChatFormatting.BOLD + EnumChatFormatting.OBFUSCATED + "#" + + EnumChatFormatting.RESET + EnumChatFormatting.DARK_RED + EnumChatFormatting.BOLD + " ERROR " + + EnumChatFormatting.DARK_RED + EnumChatFormatting.BOLD + EnumChatFormatting.OBFUSCATED + "#" + + EnumChatFormatting.RESET + EnumChatFormatting.DARK_RED + EnumChatFormatting.BOLD + + " Failed to save recipe. Does the item already exist?")); // TODO: MERGE CODE OVER + } + + private int parseIntIgnoringCommas(String text) { + return Integer.parseInt(text.replace(",", "")); + } + + /*{ + id: "minecraft:skull", + Count: 1b, + tag: { + overrideMeta: 1b, + SkullOwner: { + Id: "2005daad-730b-363c-abae-e6f3830816fb", + Properties: { + textures: [{ + Value: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTZjMGIzNmQ1M2ZmZjY5YTQ5YzdkNmYzOTMyZjJiMGZlOTQ4ZTAzMjIyNmQ1ZTgwNDVlYzU4NDA4YTM2ZTk1MSJ9fX0=" + }] + } + }, + display: { + Lore: ["§7Coins per Kill: §610", "§7Combat Exp: §340", "§7XP Orbs: §312", "", "§7Kills: §a990", "§7Deaths: §a2", "", "§fCommon Loot", "§8 ■ §7§fEnder Pearl §8x1-3", "", "§9Rare Loot", "§8 ■ §7§aEnchanted Ender Pearl §8(§a1%§8)", "", "§6Legendary Loot", "§8 ■ §7§7[Lvl 1] §aEnderman §8(§a0.02%§8)", "§8 ■ §7§7[Lvl 1] §fEnderman §8(§a0.05%§8)", "§8 ■ §7§5Ender Helmet §8(§a0.1%§8)", "§8 ■ §7§5Ender Boots §8(§a0.1%§8)", "§8 ■ §7§5Ender Leggings §8(§a0.1%§8)", "§8 ■ §7§5Ender Chestplate §8(§a0.1%§8)", "", "§dRNGesus Loot", " §8■ §c???"], + Name: "§8[§7Lv42§8] §fEnderman" + }, + AttributeModifiers: [] + }, + Damage: 3s +}*/ + public boolean saveRecipes(String relevantItem, List recipes) throws IOException { + JsonObject outputJson = neu.manager.readJsonDefaultDir(relevantItem + ".json"); + if (outputJson == null) return false; + outputJson.addProperty("clickcommand", "viewrecipe"); + JsonArray array = new JsonArray(); + for (NeuRecipe recipe : recipes) { + array.add(recipe.serialize()); + } + outputJson.add("recipes", array); + neu.manager.writeJsonDefaultDir(outputJson, relevantItem + ".json"); + neu.manager.loadItem(relevantItem); return true; } @@ -149,7 +282,7 @@ public class RecipeGenerator { ); } - private static final Map durationSuffixLengthMap = new HashMap() {{ + private static Map durationSuffixLengthMap = new HashMap() {{ put('d', 60 * 60 * 24); put('h', 60 * 60); put('m', 60); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeType.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeType.java new file mode 100644 index 00000000..cc8b50be --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeType.java @@ -0,0 +1,59 @@ +package io.github.moulberry.notenoughupdates.recipes; + +import com.google.gson.JsonObject; +import io.github.moulberry.notenoughupdates.NEUManager; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public enum RecipeType { + CRAFTING("crafting", "Crafting", CraftingRecipe::parseCraftingRecipe, new ItemStack(Blocks.crafting_table)), + FORGE("forge", "Forging", ForgeRecipe::parseForgeRecipe, new ItemStack(Blocks.anvil)), + TRADE("trade", "Trading", VillagerTradeRecipe::parseStaticRecipe, new ItemStack(Items.emerald)), + MOB_LOOT("drops", "Mob Loot", MobLootRecipe::parseRecipe, new ItemStack(Items.diamond_sword)); + + private final String id; + private final String label; + private final RecipeFactory recipeFactory; + private final ItemStack icon; + + RecipeType(String id, String label, RecipeFactory recipeFactory, ItemStack icon) { + this.id = id; + this.label = label; + this.recipeFactory = recipeFactory; + this.icon = icon; + icon.setStackDisplayName("neurecipe-" + id); + } + + public String getId() { + return id; + } + + public String getLabel() { + return label; + } + + public RecipeFactory getRecipeFactory() { + return recipeFactory; + } + + public ItemStack getIcon() { + return icon; + } + + public NeuRecipe createRecipe(NEUManager manager, JsonObject recipe, JsonObject outputItemJson) { + return recipeFactory.createRecipe(manager, recipe, outputItemJson); + } + + public static RecipeType getRecipeTypeForId(String id) { + for (RecipeType value : values()) { + if (value.id.equals(id)) return value; + } + return null; + } + + @FunctionalInterface + interface RecipeFactory { + NeuRecipe createRecipe(NEUManager manager, JsonObject recipe, JsonObject outputItemJson); + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/VillagerTradeRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/VillagerTradeRecipe.java index 371d4f3c..2e53e153 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/VillagerTradeRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/VillagerTradeRecipe.java @@ -21,136 +21,130 @@ import java.util.*; public class VillagerTradeRecipe implements NeuRecipe { - public static final int COST_SLOT_X = 51; - public static final int COST_SLOT_Y = 34; - public static final int RESULT_SLOT_Y = 35; - public static final int RESULT_SLOT_X = 124; - - private static class Holder { // This holder object exists to defer initialization to first access - private static final GameProfile DREAM_PROFILE = - new GameProfile(UUID.fromString("ec70bcaf-702f-4bb8-b48d-276fa52a780c"), "Dream"); - private static final EntityLivingBase DEMO_DREAM = new AbstractClientPlayer(null, DREAM_PROFILE) { - @Override - protected NetworkPlayerInfo getPlayerInfo() { - return new NetworkPlayerInfo(DREAM_PROFILE) { - @Override - public ResourceLocation getLocationSkin() { - return new ResourceLocation("notenoughupdates", "dreamskin.png"); - } - }; - } - }; - private static final EntityLivingBase DEMO_VILLAGER = new EntityVillager(null); - - private static boolean isAprilFirst() { - Calendar cal = Calendar.getInstance(); - return cal.get(Calendar.DAY_OF_MONTH) == 1 && cal.get(Calendar.MONTH) == Calendar.APRIL; - } - - private static final EntityLivingBase DEMO_ENTITY = isAprilFirst() ? DEMO_DREAM : DEMO_VILLAGER; - - } - - private final static ResourceLocation BACKGROUND = - new ResourceLocation("notenoughupdates", "textures/gui/villager_recipe.png"); - - private final Ingredient result; - private final Ingredient cost; - private final int minCost, maxCost; - - public VillagerTradeRecipe(Ingredient result, Ingredient cost, int minCost, int maxCost) { - this.result = result; - this.cost = cost; - this.minCost = minCost; - this.maxCost = maxCost; - } - - public VillagerTradeRecipe(Ingredient result, Ingredient cost) { - this(result, cost, -1, -1); - } - - public boolean hasVariableCost() { - return minCost != -1 && maxCost != -1; - } - - @Override - public Set getIngredients() { - return Sets.newHashSet(cost); - } - - @Override - public Set getOutputs() { - return Sets.newHashSet(result); - } - - @Override - public List getSlots() { - return Arrays.asList( - new RecipeSlot(COST_SLOT_X, COST_SLOT_Y, cost.getItemStack()), - new RecipeSlot(RESULT_SLOT_X, RESULT_SLOT_Y, result.getItemStack()) - ); - } - - @Override - public boolean shouldUseForCraftCost() { - return false; - } - - @Override - public boolean isAvailable() { - return SBInfo.getInstance().getCurrentMode() == SBInfo.Gamemode.STRANDED || - NotEnoughUpdates.INSTANCE.config.hidden.dev; - } - - @Override - public void drawExtraInfo(GuiItemRecipe gui, int mouseX, int mouseY) { - if (hasVariableCost()) { - FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; - Utils.drawStringCenteredScaledMaxWidth( - minCost + " - " + maxCost, fontRenderer, - gui.guiLeft + 50, gui.guiTop + 60, false, 75, 0xff00ff - ); - - } - } - - @Override - public void drawExtraBackground(GuiItemRecipe gui, int mouseX, int mouseY) { - GuiInventory.drawEntityOnScreen( - gui.guiLeft + 90, - gui.guiTop + 75, - 30, - gui.guiLeft - mouseX + 80, - gui.guiTop + 60 - mouseY, - Holder.DEMO_ENTITY - ); - } - - @Override - public JsonObject serialize() { - JsonObject jsonObject = new JsonObject(); - jsonObject.addProperty("type", "trade"); - jsonObject.addProperty("result", result.serialize()); - jsonObject.addProperty("cost", cost.getInternalItemId()); - if (minCost > 0) - jsonObject.addProperty("min", minCost); - if (maxCost > 0) - jsonObject.addProperty("max", maxCost); - return jsonObject; - } - - @Override - public ResourceLocation getBackground() { - return BACKGROUND; - } - - public static VillagerTradeRecipe parseStaticRecipe(NEUManager manager, JsonObject recipe) { - return new VillagerTradeRecipe( - new Ingredient(manager, recipe.get("result").getAsString()), - new Ingredient(manager, recipe.get("cost").getAsString()), - recipe.has("min") ? recipe.get("min").getAsInt() : -1, - recipe.has("max") ? recipe.get("max").getAsInt() : -1 - ); - } + public static final int COST_SLOT_X = 52; + public static final int COST_SLOT_Y = 66; + public static final int RESULT_SLOT_Y = 66; + public static final int RESULT_SLOT_X = 124; + + private static class Holder { // This holder object exists to defer initialization to first access + private static final GameProfile DREAM_PROFILE = new GameProfile(UUID.fromString("ec70bcaf-702f-4bb8-b48d-276fa52a780c"), "Dream"); + private static final EntityLivingBase DEMO_DREAM = new AbstractClientPlayer(null, DREAM_PROFILE) { + @Override + protected NetworkPlayerInfo getPlayerInfo() { + return new NetworkPlayerInfo(DREAM_PROFILE) { + @Override + public ResourceLocation getLocationSkin() { + return new ResourceLocation("notenoughupdates", "dreamskin.png"); + } + }; + } + }; + private static final EntityLivingBase DEMO_VILLAGER = new EntityVillager(null); + + private static boolean isAprilFirst() { + Calendar cal = Calendar.getInstance(); + return cal.get(Calendar.DAY_OF_MONTH) == 1 && cal.get(Calendar.MONTH) == Calendar.APRIL; + } + + private static final EntityLivingBase DEMO_ENTITY = isAprilFirst() ? DEMO_DREAM : DEMO_VILLAGER; + + } + + private final static ResourceLocation BACKGROUND = new ResourceLocation("notenoughupdates", "textures/gui/villager_recipe_tall.png"); + + private final Ingredient result; + private final Ingredient cost; + private final int minCost, maxCost; + + public VillagerTradeRecipe(Ingredient result, Ingredient cost, int minCost, int maxCost) { + this.result = result; + this.cost = cost; + this.minCost = minCost; + this.maxCost = maxCost; + } + + public VillagerTradeRecipe(Ingredient result, Ingredient cost) { + this(result, cost, -1, -1); + } + + public boolean hasVariableCost() { + return minCost != -1 && maxCost != -1; + } + + @Override + public RecipeType getType() { + return RecipeType.TRADE; + } + + @Override + public Set getIngredients() { + return Sets.newHashSet(cost); + } + + @Override + public Set getOutputs() { + return Sets.newHashSet(result); + } + + @Override + public List getSlots() { + return Arrays.asList( + new RecipeSlot(COST_SLOT_X, COST_SLOT_Y, cost.getItemStack()), + new RecipeSlot(RESULT_SLOT_X, RESULT_SLOT_Y, result.getItemStack()) + ); + } + + @Override + public boolean shouldUseForCraftCost() { + return false; + } + + @Override + public boolean isAvailable() { + return SBInfo.getInstance().getCurrentMode() == SBInfo.Gamemode.STRANDED || NotEnoughUpdates.INSTANCE.config.hidden.dev; + } + + @Override + public void drawExtraInfo(GuiItemRecipe gui, int mouseX, int mouseY) { + if (hasVariableCost()) { + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; + Utils.drawStringCenteredScaledMaxWidth( + minCost + " - " + maxCost, fontRenderer, + gui.guiLeft + 50, gui.guiTop + 90, false, 75, 0xff00ff); + + } + } + + @Override + public void drawExtraBackground(GuiItemRecipe gui, int mouseX, int mouseY) { + GuiInventory.drawEntityOnScreen(gui.guiLeft + 90, gui.guiTop + 100, 30, gui.guiLeft - mouseX + 110, gui.guiTop + 60 - mouseY, Holder.DEMO_ENTITY); + } + + @Override + public JsonObject serialize() { + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("type", "trade"); + jsonObject.addProperty("result", result.serialize()); + jsonObject.addProperty("cost", cost.getInternalItemId()); + if (minCost > 0) + jsonObject.addProperty("min", minCost); + if (maxCost > 0) + jsonObject.addProperty("max", maxCost); + return jsonObject; + } + + @Override + public ResourceLocation getBackground() { + return BACKGROUND; + } + + public static VillagerTradeRecipe parseStaticRecipe(NEUManager manager, JsonObject recipe, JsonObject result) { + return new VillagerTradeRecipe( + new Ingredient(manager, recipe.get("result").getAsString()), + new Ingredient(manager, recipe.get("cost").getAsString()), + recipe.has("min") ? recipe.get("min").getAsInt() : -1, + recipe.has("max") ? recipe.get("max").getAsInt() : -1 + ); + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/ItemUtils.java b/src/main/java/io/github/moulberry/notenoughupdates/util/ItemUtils.java new file mode 100644 index 00000000..e3d90aaa --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/ItemUtils.java @@ -0,0 +1,33 @@ +package io.github.moulberry.notenoughupdates.util; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.nbt.NBTTagString; + +import java.util.List; + +public class ItemUtils { + + public static ItemStack getCoinItemStack(int coinAmount) { + ItemStack itemStack = new ItemStack(Items.gold_nugget); + itemStack.setStackDisplayName("\u00A7r\u00A76" + Utils.formatNumberWithDots(coinAmount) + " Coins"); + return itemStack; + } + + public static void appendLore(ItemStack is, List moreLore) { + NBTTagCompound tagCompound = is.getTagCompound(); + if (tagCompound == null) { + tagCompound = new NBTTagCompound(); + } + NBTTagCompound display = tagCompound.getCompoundTag("display"); + NBTTagList lore = display.getTagList("Lore", 8); + for (String s : moreLore) { + lore.appendTag(new NBTTagString(s)); + } + display.setTag("Lore", lore); + tagCompound.setTag("display", display); + is.setTagCompound(tagCompound); + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/JsonUtils.java b/src/main/java/io/github/moulberry/notenoughupdates/util/JsonUtils.java new file mode 100644 index 00000000..916631b7 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/JsonUtils.java @@ -0,0 +1,42 @@ +package io.github.moulberry.notenoughupdates.util; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; + +import java.util.Collections; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import java.util.stream.StreamSupport; + +public class JsonUtils { + public static Stream getJsonArrayAsStream(JsonArray array) { + return StreamSupport.stream(array.spliterator(), false); + } + + public static List transformJsonArrayToList(JsonArray array, Function mapper) { + return getJsonArrayAsStream(array).map(mapper).collect(Collectors.toList()); + } + + public static List getJsonArrayOrEmpty(JsonObject rootObject, String name, Function mapper) { + if (!rootObject.has(name)) { + return Collections.emptyList(); + } + JsonElement jsonElement = rootObject.get(name); + if (jsonElement.isJsonArray()) { + return transformJsonArrayToList(jsonElement.getAsJsonArray(), mapper); + } + return Collections.emptyList(); + } + + public static JsonArray transformListToJsonArray(List things, Function mapper) { + JsonArray array = new JsonArray(); + for (T t : things) { + array.add(mapper.apply(t)); + } + return array; + } + +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/SkytilsCompat.java b/src/main/java/io/github/moulberry/notenoughupdates/util/SkytilsCompat.java new file mode 100644 index 00000000..193f6133 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/SkytilsCompat.java @@ -0,0 +1,82 @@ +package io.github.moulberry.notenoughupdates.util; + +import net.minecraft.item.ItemStack; + +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + + +public class SkytilsCompat { + // Defer static initialization + private static class Holder { + // Skytils is present in some capacity + static boolean isSkytilsPresent = false; + // All classes successfully loaded + static boolean isSkytilsFullyPresent = false; + + static Class skytilsClass = null; + static Method renderRarityMethod = null; + static Class renderUtilClass = null; + + static Object skytilsCompanionObject = null; + + static Class skytilsConfigClass = null; + + static Object skytilsConfigObject = null; + static Method skytilsGetShowItemRarity = null; + + static { + try { + skytilsClass = Class.forName("skytils.skytilsmod.Skytils"); + isSkytilsPresent = true; + } catch (ClassNotFoundException ignored) { + } + try { + Class skytilsCompanionClass = Class.forName("skytils.skytilsmod.Skytils$Companion"); + skytilsConfigClass = Class.forName("skytils.skytilsmod.core.Config"); + Field skytilsCompanionField = skytilsClass.getField("Companion"); + skytilsCompanionObject = skytilsCompanionField.get(null); + Method skytilsGetConfigMethod = skytilsCompanionClass.getMethod("getConfig"); + skytilsConfigObject = skytilsGetConfigMethod.invoke(skytilsCompanionObject); + skytilsGetShowItemRarity = skytilsConfigClass.getMethod("getShowItemRarity"); + renderUtilClass = Class.forName("skytils.skytilsmod.utils.RenderUtil"); + renderRarityMethod = renderUtilClass.getDeclaredMethod( + "renderRarity", + ItemStack.class, + Integer.TYPE, + Integer.TYPE + ); + isSkytilsFullyPresent = true; + } catch (ClassNotFoundException | NoSuchMethodException | NoSuchFieldException | IllegalAccessException | + InvocationTargetException e) { + System.err.println("Failed to get Skytils class even tho Skytils mod is present. This is (probably) a NEU bug"); + e.printStackTrace(); + } + } + + } + + public static boolean isSkytilsFullyLoaded() { + return Holder.isSkytilsFullyPresent; + } + + public static boolean isSkytilsPresent() { + return Holder.isSkytilsPresent; + } + public static void renderSkytilsRarity(ItemStack stack, int x, int y) { + renderSkytilsRarity(stack, x, y, false); + } + + public static void renderSkytilsRarity(ItemStack stack, int x, int y, boolean force) { + if (Holder.isSkytilsFullyPresent) { + try { + if (force || (boolean) Holder.skytilsGetShowItemRarity.invoke(Holder.skytilsConfigObject)) + Holder.renderRarityMethod.invoke(null, stack, x, y); + } catch (IllegalAccessException | InvocationTargetException e) { + throw new RuntimeException(e); + } + } + } + +} 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 31499f7f..5fac9208 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java @@ -9,6 +9,7 @@ import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.miscfeatures.SlotLocking; +import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.entity.EntityPlayerSP; @@ -175,8 +176,13 @@ public class Utils { } public static void drawItemStackWithText(ItemStack stack, int x, int y, String text) { - if (stack == null) return; + drawItemStackWithText(stack, x, y, text, false); + } + public static void drawItemStackWithText(ItemStack stack, int x, int y, String text, boolean skytilsRarity) { + if (stack == null) return; + if (skytilsRarity) + SkytilsCompat.renderSkytilsRarity(stack, x, y); RenderItem itemRender = Minecraft.getMinecraft().getRenderItem(); disableCustomDungColours = true; @@ -190,11 +196,13 @@ public class Utils { } public static void drawItemStack(ItemStack stack, int x, int y) { - if (stack == null) return; - drawItemStackWithText(stack, x, y, null); } + public static void drawItemStack(ItemStack stack, int x, int y, boolean skytilsRarity) { + drawItemStackWithText(stack, x, y, null, skytilsRarity); + } + private static final EnumChatFormatting[] rainbow = new EnumChatFormatting[]{ EnumChatFormatting.RED, EnumChatFormatting.GOLD, @@ -767,6 +775,9 @@ public class Utils { public static ItemStack createItemStack(Item item, String displayname, String... lore) { return createItemStack(item, displayname, 0, lore); } + public static ItemStack createItemStack(Block item, String displayname, String... lore) { + return createItemStack(Item.getItemFromBlock(item), displayname, lore); + } public static ItemStack createItemStack(Item item, String displayname, int damage, String... lore) { ItemStack stack = new ItemStack(item, 1, damage); diff --git a/src/main/resources/assets/notenoughupdates/dream.json b/src/main/resources/assets/notenoughupdates/dream.json new file mode 100644 index 00000000..6f27e89e --- /dev/null +++ b/src/main/resources/assets/notenoughupdates/dream.json @@ -0,0 +1,49 @@ +{ + "entity": "Player", + "modifiers": [ + { + "type": "playerdata", + "skin": "notenoughupdates:dreamskin.png" + }, + { + "type": "riding", + "entity": "ArmorStand", + "modifiers": [ + { + "type": "age", + "baby": true + }, + { + "type": "riding", + "entity": "Zombie", + "modifiers": [ + { + "type": "equipment", + "hand": "BOW", + "feet": "DIAMOND_BOOTS" + }, + { + "type": "age", + "baby": true + }, + { + "type": "riding", + "entity": "Sheep", + "modifiers": [ + { + "type": "age", + "baby": true + } + ] + } + ] + } + ] + }, + { + "type": "equipment", + "hand": "DIAMOND_SWORD", + "feet": "DIAMOND_BOOTS" + } + ] +} diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/crafting_table_tall.png b/src/main/resources/assets/notenoughupdates/textures/gui/crafting_table_tall.png new file mode 100644 index 00000000..5a5fa825 Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/textures/gui/crafting_table_tall.png differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/entity_viewer.png b/src/main/resources/assets/notenoughupdates/textures/gui/entity_viewer.png new file mode 100644 index 00000000..18085170 Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/textures/gui/entity_viewer.png differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe.png b/src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe.png deleted file mode 100644 index 2c3d2eb1..00000000 Binary files a/src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe.png and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe_tall.png b/src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe_tall.png new file mode 100644 index 00000000..b07e5ca1 Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe_tall.png differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/mob_loot_tall.png b/src/main/resources/assets/notenoughupdates/textures/gui/mob_loot_tall.png new file mode 100644 index 00000000..facd6d6c Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/textures/gui/mob_loot_tall.png differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/tab.png b/src/main/resources/assets/notenoughupdates/textures/gui/tab.png new file mode 100644 index 00000000..91d317ca Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/textures/gui/tab.png differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe.png b/src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe.png deleted file mode 100644 index 42b6241c..00000000 Binary files a/src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe.png and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe_tall.png b/src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe_tall.png new file mode 100644 index 00000000..ed982599 Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe_tall.png differ diff --git a/src/main/resources/mixins.notenoughupdates.json b/src/main/resources/mixins.notenoughupdates.json index a566ee2e..6c95e480 100644 --- a/src/main/resources/mixins.notenoughupdates.json +++ b/src/main/resources/mixins.notenoughupdates.json @@ -3,14 +3,18 @@ "refmap": "mixins.notenoughupdates.refmap.json", "compatibilityLevel": "JAVA_8", "mixins": [ + "AccessorEntityAgeable", + "AccessorEntityArmorStand", "MixinAbstractClientPlayer", "MixinContainer", "MixinEffectRenderer", "MixinEntity", "MixinEntityAgeable", + "MixinEntityHorse", "MixinEntityPlayer", "MixinEntityPlayerSP", "MixinEntityRenderer", + "MixinEntitySkeleton", "MixinGuiChest", "MixinGuiContainer", "MixinGuiIngame", @@ -39,5 +43,8 @@ "MixinVboRenderList", "MixinWorld", "MixinWorldClient" + ], + "client": [ + "AccessorMinecraft" ] } -- cgit From 15c0c229b51eebeab59031fbda541a8c85047312 Mon Sep 17 00:00:00 2001 From: NopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com> Date: Thu, 21 Apr 2022 15:52:41 +0000 Subject: fix wardrobe + blaze slayer and mining stats in pv (#115) --- .../moulberry/notenoughupdates/NEUOverlay.java | 102 +++------------------ .../miscfeatures/PetInfoOverlay.java | 2 +- .../options/seperateSections/CustomArmour.java | 4 +- .../profileviewer/GuiProfileViewer.java | 29 +++++- .../profileviewer/PlayerStats.java | 31 ++++++- .../profileviewer/ProfileViewer.java | 19 +++- .../resources/assets/notenoughupdates/pv_basic.png | Bin 5173 -> 2836 bytes 7 files changed, 89 insertions(+), 98 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java index 8d0955bb..f473a56f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java @@ -1871,9 +1871,7 @@ public class NEUOverlay extends Gui { ContainerChest container = (ContainerChest) chest.inventorySlots; IInventory lower = container.getLowerChestInventory(); String containerName = lower.getDisplayName().getUnformattedText(); - if (containerName.contains(guiName)) { - wardrobeOpen = true; - } else wardrobeOpen = false; + wardrobeOpen = containerName.contains(guiName); } if (guiScreen instanceof GuiInventory) { wardrobeOpen = false; @@ -1881,27 +1879,6 @@ public class NEUOverlay extends Gui { return wardrobeOpen; } - private int wardrobePage = -1; - - private int getWardrobePage() { - GuiScreen guiScreen = Minecraft.getMinecraft().currentScreen; - if (guiScreen instanceof GuiChest) { - if (isInNamedGui("Wardrobe")) { - GuiChest chest = (GuiChest) Minecraft.getMinecraft().currentScreen; - ContainerChest container = (ContainerChest) chest.inventorySlots; - IInventory lower = container.getLowerChestInventory(); - String containerName = lower.getDisplayName().getUnformattedText(); - try { - wardrobePage = Integer.parseInt(containerName.substring(10, 11)); - } catch (NumberFormatException e) { - System.out.println(containerName.charAt(10)); - System.out.println("Did hypixel change the wardrobe string?"); - wardrobePage = -1; - } - } else wardrobePage = -1; - } - return wardrobePage; - } private ItemStack getChestSlotsAsItemStack(int slot) { GuiScreen guiScreen = Minecraft.getMinecraft().currentScreen; @@ -1913,61 +1890,13 @@ public class NEUOverlay extends Gui { } } - private int selectedArmor = 9; - - private int getEquippedArmor() { - if (isInNamedGui("Wardrobe")) { - ItemStack nullTest1 = getChestSlotsAsItemStack(8); - ItemStack nullTest2 = getChestSlotsAsItemStack(17); - ItemStack nullTest3 = getChestSlotsAsItemStack(26); - ItemStack nullTest4 = getChestSlotsAsItemStack(35); - ItemStack nullTest5 = getChestSlotsAsItemStack(44); - if (nullTest1 != null || nullTest2 != null || nullTest3 != null || nullTest4 != null || nullTest5 != null) { - selectedArmor = 9; - } - for (int ii = 1; ii < 5; ii++) { - if (ii == 1 || selectedArmor == 9) { - if (getWardrobePage() == ii) { - for (int i = 8; i < 54; i += 9) { - ItemStack stack1 = getChestSlotsAsItemStack(i); - if (stack1 != null) { - String[] lore1 = NotEnoughUpdates.INSTANCE.manager.getLoreFromNBT(stack1.getTagCompound()); - for (String line : lore1) { - //System.out.println(line); - if (line.contains("to unequip this armor")) { - selectedArmor = i; - break; - } - } - } - } - } - } - } - } - return selectedArmor; - } private ItemStack getWardrobeSlot(int armourSlot) { - if (isInNamedGui("Wardrobe")) { - if (getChestSlotsAsItemStack(getEquippedArmor() - armourSlot) != null && getEquippedArmor() != 9) { - return getChestSlotsAsItemStack(getEquippedArmor() - armourSlot); - } else return null; + if (isInNamedGui("Your Equipment")) { + return getChestSlotsAsItemStack(armourSlot); } else return null; } - public boolean isWardrobeSystemOnMainServer() { - JsonElement alphaWardrobeElement = Utils.getElement(Constants.DISABLE, "wardrobeFeature"); - if (alphaWardrobeElement == null || !alphaWardrobeElement.isJsonObject()) { - return true; - } - JsonObject isWardrobe = alphaWardrobeElement.getAsJsonObject(); - if (isWardrobe.has("enableNewWardrob")) { - return isWardrobe.get("enableNewWardrob").getAsBoolean(); - } else { - return true; - } - } public ItemStack slot1 = null; public ItemStack slot2 = null; @@ -2019,16 +1948,15 @@ public class NEUOverlay extends Gui { if (NotEnoughUpdates.INSTANCE.config.customArmour.enableArmourHud && NotEnoughUpdates.INSTANCE.config.misc.hidePotionEffect - && NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard() && isWardrobeSystemOnMainServer()) { - if (getWardrobeSlot(1) != null) { - slot1 = getWardrobeSlot(4); - slot2 = getWardrobeSlot(3); - slot3 = getWardrobeSlot(2); - slot4 = getWardrobeSlot(1); + && NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) { + if (getWardrobeSlot(10) != null) { + slot1 = getWardrobeSlot(10); + slot2 = getWardrobeSlot(19); + slot3 = getWardrobeSlot(28); + slot4 = getWardrobeSlot(37); } if (guiScreen instanceof GuiInventory) { renderingArmorHud = true; - selectedArmor = 9; List tooltipToDisplay = null; if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 0) { @@ -2070,7 +1998,7 @@ public class NEUOverlay extends Gui { tooltipToDisplay = Lists.newArrayList( EnumChatFormatting.RED + "Warning", - EnumChatFormatting.GREEN + "You need to open /wardrobe", + EnumChatFormatting.GREEN + "You need to open /equipment", EnumChatFormatting.GREEN + "To cache your armour" ); if (mouseX >= ((width - 208) / 2f) && mouseX < ((width - 208) / 2f) + 16) { @@ -2078,9 +2006,9 @@ public class NEUOverlay extends Gui { NotEnoughUpdates.INSTANCE.config.customArmour.sendWardrobeCommand) { if (Minecraft.getMinecraft().thePlayer.inventory.getItemStack() == null) { if (Mouse.getEventButtonState()) { - if (ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/wardrobe") == + if (ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/equipment") == 0) { - NotEnoughUpdates.INSTANCE.sendChatMessage("/wardrobe"); + NotEnoughUpdates.INSTANCE.sendChatMessage("/equipment"); } } } @@ -2098,9 +2026,9 @@ public class NEUOverlay extends Gui { NotEnoughUpdates.INSTANCE.config.customArmour.sendWardrobeCommand) { if (Minecraft.getMinecraft().thePlayer.inventory.getItemStack() == null) { if (Mouse.getEventButtonState()) { - if (ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/wardrobe") == + if (ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/equipment") == 0) { - NotEnoughUpdates.INSTANCE.sendChatMessage("/wardrobe"); + NotEnoughUpdates.INSTANCE.sendChatMessage("/equipment"); } } } @@ -2172,7 +2100,7 @@ public class NEUOverlay extends Gui { if (guiScreen instanceof GuiInventory) { GL11.glTranslatef(0, 0, 401); - if (!NotEnoughUpdates.INSTANCE.config.customArmour.enableArmourHud || !isWardrobeSystemOnMainServer()) { + if (!NotEnoughUpdates.INSTANCE.config.customArmour.enableArmourHud) { if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 0) { Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java index 281830c3..6203a36d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java @@ -812,7 +812,7 @@ public class PetInfoOverlay extends TextOverlay { if (currentTime - lastPetSelect > 500) { boolean foundDespawn = false; for (String line : lore) { - if (line.equals("\u00a77\u00a7cClick to despawn.")) { + if (line.startsWith("\u00a77\u00a7cClick to despawn")) { config.selectedPet = petIndex; foundDespawn = true; break; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/CustomArmour.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/CustomArmour.java index f1b2338f..edfd2276 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/CustomArmour.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/CustomArmour.java @@ -17,8 +17,8 @@ public class CustomArmour { @Expose @ConfigOption( - name = "Click To Open Wardrobe", - desc = "Click on the hud to open /wardrobe" + name = "Click To Open equipment menu", + desc = "Click on the hud to open /equipment" ) @ConfigEditorBoolean public boolean sendWardrobeCommand = true; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java index 691ccaae..597b6b4d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java @@ -7,6 +7,7 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; import com.mojang.authlib.GameProfile; +import io.github.moulberry.notenoughupdates.NEUOverlay; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.cosmetics.ShaderManager; import io.github.moulberry.notenoughupdates.itemeditor.GuiElementTextField; @@ -3325,6 +3326,10 @@ public class GuiProfileViewer extends GuiScreen { Utils.getElementAsFloat(Utils.getElement(profileInfo, "slayer_bosses.enderman.boss_kills_tier_2"), 0); float enderman_boss_kills_tier_3 = Utils.getElementAsFloat(Utils.getElement(profileInfo, "slayer_bosses.enderman.boss_kills_tier_3"), 0); + float blaze_boss_kills_tier_2 = + Utils.getElementAsFloat(Utils.getElement(profileInfo, "slayer_bosses.blaze.boss_kills_tier_2"), 0); + float blaze_boss_kills_tier_3 = + Utils.getElementAsFloat(Utils.getElement(profileInfo, "slayer_bosses.blaze.boss_kills_tier_3"), 0); Utils.renderAlignedString( EnumChatFormatting.DARK_AQUA + "Revenant T3", @@ -3390,6 +3395,20 @@ public class GuiProfileViewer extends GuiScreen { guiTop + yStartBottom + yOffset * 3, 76 ); + Utils.renderAlignedString( + EnumChatFormatting.DARK_AQUA + "Inferno T3", + EnumChatFormatting.WHITE.toString() + (int) blaze_boss_kills_tier_2, + guiLeft + xStart + xOffset * 2, + guiTop + yStartBottom + yOffset * 4, + 76 + ); + Utils.renderAlignedString( + EnumChatFormatting.DARK_AQUA + "Inferno T4", + EnumChatFormatting.WHITE.toString() + (int) blaze_boss_kills_tier_3, + guiLeft + xStart + xOffset * 2, + guiTop + yStartBottom + yOffset * 5, + 76 + ); float pet_milestone_ores_mined = Utils.getElementAsFloat(Utils.getElement(profileInfo, "stats.pet_milestone_ores_mined"), 0); @@ -4972,7 +4991,7 @@ public class GuiProfileViewer extends GuiScreen { Splitter splitter = Splitter.on(" ").omitEmptyStrings().limit(2); for (int i = 0; i < PlayerStats.defaultStatNames.length; i++) { String statName = PlayerStats.defaultStatNames[i]; - if (statName.equals("mining_fortune") || statName.equals("mining_speed")) continue; + //if (statName.equals("mining_fortune") || statName.equals("mining_speed")) continue; String statNamePretty = PlayerStats.defaultStatNamesPretty[i]; int val = Math.round(stats.get(statName)); @@ -4989,7 +5008,7 @@ public class GuiProfileViewer extends GuiScreen { statNamePretty, EnumChatFormatting.WHITE.toString() + val, guiLeft + 132, - guiTop + 27 + 11f * i, + guiTop + 21 + 11f * i, 80 ); @@ -5038,8 +5057,8 @@ public class GuiProfileViewer extends GuiScreen { continue; } - int yPosition = position % 7; - int xPosition = position / 7; + int yPosition = position % 8; + int xPosition = position / 8; String skillName = entry.getValue().getDisplayName(); @@ -5047,7 +5066,7 @@ public class GuiProfileViewer extends GuiScreen { int levelFloored = (int) Math.floor(level); int x = guiLeft + 237 + 86 * xPosition; - int y = guiTop + 31 + 21 * yPosition; + int y = guiTop + 24 + 21 * yPosition; Utils.renderAlignedString(skillName, EnumChatFormatting.WHITE.toString() + levelFloored, x + 14, y - 4, 60); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java index 4a915111..6535a99a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java @@ -33,6 +33,8 @@ public class PlayerStats { public static final String SEA_CREATURE_CHANCE = "sea_creature_chance"; public static final String MAGIC_FIND = "magic_find"; public static final String PET_LUCK = "pet_luck"; + public static final String MINING_FORTUNE = "mining_fortune"; + public static final String MINING_SPEED = "mining_speed"; public static final String[] defaultStatNames = new String[]{ "health", @@ -245,6 +247,23 @@ public class PlayerStats { return 0; } } + private static float hotmFortune(JsonObject profile, JsonObject skillInfo) { + int miningLevelFortune = + (int) (4 * (float) Math.floor(Utils.getElementAsFloat(Utils.getElement(skillInfo, "level_skill_mining"), 0))); + int miningFortuneStat = + ((Utils.getElementAsInt(Utils.getElement(profile, "mining_core.nodes.mining_fortune"), 0)) * 5); + int miningFortune2Stat = + ((Utils.getElementAsInt(Utils.getElement(profile, "mining_core.nodes.mining_fortune_2"), 0)) * 5); + return miningFortuneStat + miningFortune2Stat + miningLevelFortune; + } + + private static float hotmSpeed(JsonObject profile) { + int miningSpeedStat = + ((Utils.getElementAsInt(Utils.getElement(profile, "mining_core.nodes.mining_speed"), 0)) * 20); + int miningSpeed2Stat = + ((Utils.getElementAsInt(Utils.getElement(profile, "mining_core.nodes.mining_speed_2"), 0)) * 40); + return miningSpeedStat + miningSpeed2Stat; + } public static Stats getPassiveBonuses(JsonObject skillInfo, JsonObject profile) { Stats passiveBonuses = new Stats(); @@ -265,6 +284,15 @@ public class PlayerStats { return passiveBonuses; } + public static Stats getHOTMBonuses(JsonObject skillInfo, JsonObject profile) { + Stats hotmBonuses = new Stats(); + + hotmBonuses.addStat(MINING_FORTUNE, hotmFortune(profile, skillInfo)); + hotmBonuses.addStat(MINING_SPEED, hotmSpeed(profile)); + + return hotmBonuses; + } + private static String getFullset(JsonArray armor, int ignore) { String fullset = null; for (int i = 0; i < armor.size(); i++) { @@ -637,6 +665,7 @@ public class PlayerStats { JsonArray talisman_bag = Utils.getElement(inventoryInfo, "talisman_bag").getAsJsonArray(); Stats passiveBonuses = getPassiveBonuses(skillInfo, profile); + Stats hotmBonuses = getHOTMBonuses(skillInfo, profile); Stats armorBonuses = getItemBonuses(false, armor); Stats talismanBonuses = getItemBonuses(true, inventory, talisman_bag); @@ -651,7 +680,7 @@ public class PlayerStats { Stats petBonus = getPetStatBonuses(petsInfo); - stats = stats.add(passiveBonuses).add(armorBonuses).add(talismanBonuses).add(petBonus); + stats = stats.add(passiveBonuses).add(armorBonuses).add(talismanBonuses).add(petBonus).add(hotmBonuses); stats.add(getSetBonuses(stats, inventoryInfo, collectionInfo, skillInfo, profile)); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java index 22656b1a..28cdf721 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java @@ -70,6 +70,7 @@ public class ProfileViewer { put("slayer_spider", Utils.createItemStack(Items.spider_eye, EnumChatFormatting.GOLD + "Tara Slayer")); put("slayer_wolf", Utils.createItemStack(Items.bone, EnumChatFormatting.GOLD + "Sven Slayer")); put("slayer_enderman", Utils.createItemStack(Items.ender_pearl, EnumChatFormatting.GOLD + "Ender Slayer")); + put("slayer_blaze", Utils.createItemStack(Items.blaze_rod, EnumChatFormatting.GOLD + "Blaze Slayer")); }}; private static final ItemStack CAT_FARMING = Utils.createItemStack(Items.golden_hoe, EnumChatFormatting.YELLOW + "Farming"); @@ -96,7 +97,7 @@ public class ProfileViewer { )); put(CAT_FORAGING, Utils.createList("LOG", "LOG:1", "LOG:2", "LOG_2:1", "LOG_2", "LOG:3", null)); put(CAT_FISHING, Utils.createList("RAW_FISH", "RAW_FISH:1", "RAW_FISH:2", "RAW_FISH:3", "PRISMARINE_SHARD", - "PRISMARINE_CRYSTALS", "CLAY_BALL", "WATER_LILY", "INK_SACK", "SPONGE" + "PRISMARINE_CRYSTALS", "CLAY_BALL", "WATER_LILY", "INK_SACK", "SPONGE", "MAGMA_FISH" )); }}; @@ -110,7 +111,7 @@ public class ProfileViewer { "MITHRIL", "HARD_STONE", null )); put(CAT_COMBAT, Utils.createList("ZOMBIE", "SKELETON", "SPIDER", "CAVESPIDER", "CREEPER", "ENDERMAN", - "GHAST", "SLIME", "BLAZE", "MAGMA_CUBE", "REVENANT", "TARANTULA", "VOIDLING" + "GHAST", "SLIME", "BLAZE", "MAGMA_CUBE", "REVENANT", "TARANTULA", "VOIDLING", "INFERNO" )); put(CAT_FORAGING, Utils.createList("OAK", "SPRUCE", "BIRCH", "DARK_OAK", "ACACIA", "JUNGLE", "FLOWER")); put(CAT_FISHING, Utils.createList("FISHING", null, null, null, null, null, "CLAY", null, null, null)); @@ -238,6 +239,11 @@ public class ProfileViewer { ); put("INK_SACK", Utils.createItemStack(Items.dye, EnumChatFormatting.AQUA + "Ink Sack")); put("SPONGE", Utils.createItemStack(Item.getItemFromBlock(Blocks.sponge), EnumChatFormatting.AQUA + "Sponge")); + put("MAGMA_FISH", + Utils.createSkull(EnumChatFormatting.AQUA + "Magmafish", + "5c53195c-5b98-3476-9731-c32647b22723", + "ewogICJ0aW1lc3RhbXAiIDogMTY0MjQ4ODA3MDY2NiwKICAicHJvZmlsZUlkIiA6ICIzNDkxZjJiOTdjMDE0MWE2OTM2YjFjMjJhMmEwMGZiNyIsCiAgInByb2ZpbGVOYW1lIiA6ICJKZXNzc3N1aGgiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjU2YjU5NTViMjk1NTIyYzk2ODk0ODE5NjBjMDFhOTkyY2ExYzc3NTRjZjRlZTMxM2M4ZGQwYzM1NmQzMzVmIgogICAgfQogIH0KfQ") + ); }}; private static final AtomicBoolean updatingResourceCollection = new AtomicBoolean(false); private static JsonObject resourceCollection = null; @@ -867,6 +873,8 @@ public class ProfileViewer { float experience_slayer_wolf = Utils.getElementAsFloat(Utils.getElement(profileInfo, "slayer_bosses.wolf.xp"), 0); float experience_slayer_enderman = Utils.getElementAsFloat(Utils.getElement(profileInfo, "slayer_bosses.enderman.xp"), 0); + float experience_slayer_blaze = + Utils.getElementAsFloat(Utils.getElement(profileInfo, "slayer_bosses.blaze.xp"), 0); float totalSkillXP = experience_skill_taming + experience_skill_mining + experience_skill_foraging + experience_skill_enchanting + experience_skill_carpentry + experience_skill_farming @@ -897,6 +905,7 @@ public class ProfileViewer { skillInfo.addProperty("experience_slayer_spider", experience_slayer_spider); skillInfo.addProperty("experience_slayer_wolf", experience_slayer_wolf); skillInfo.addProperty("experience_slayer_enderman", experience_slayer_enderman); + skillInfo.addProperty("experience_slayer_blaze", experience_slayer_blaze); JsonArray levelingArray = Utils.getElement(leveling, "leveling_xp").getAsJsonArray(); int farmingCap = getCap(leveling, "farming") + (int) Utils.getElementAsFloat( @@ -933,6 +942,9 @@ public class ProfileViewer { Level level_slayer_enderman = getLevel(Utils.getElement(leveling, "slayer_xp.enderman").getAsJsonArray(), experience_slayer_enderman, 9, true ); + Level level_slayer_blaze = getLevel(Utils.getElement(leveling, "slayer_xp.blaze").getAsJsonArray(), + experience_slayer_blaze, 9, true + ); skillInfo.addProperty("level_skill_taming", level_skill_taming.level); skillInfo.addProperty("level_skill_mining", level_skill_mining.level); @@ -951,6 +963,7 @@ public class ProfileViewer { skillInfo.addProperty("level_slayer_spider", level_slayer_spider.level); skillInfo.addProperty("level_slayer_wolf", level_slayer_wolf.level); skillInfo.addProperty("level_slayer_enderman", level_slayer_enderman.level); + skillInfo.addProperty("level_slayer_blaze", level_slayer_blaze.level); skillInfo.addProperty("maxed_skill_taming", level_skill_taming.maxed); skillInfo.addProperty("maxed_skill_mining", level_skill_mining.maxed); @@ -969,6 +982,7 @@ public class ProfileViewer { skillInfo.addProperty("maxed_slayer_spider", level_slayer_spider.maxed); skillInfo.addProperty("maxed_slayer_wolf", level_slayer_wolf.maxed); skillInfo.addProperty("maxed_slayer_enderman", level_slayer_enderman.maxed); + skillInfo.addProperty("maxed_slayer_blaze", level_slayer_blaze.maxed); skillInfo.addProperty("maxxp_skill_taming", level_skill_taming.maxXpForLevel); skillInfo.addProperty("maxxp_skill_mining", level_skill_mining.maxXpForLevel); @@ -987,6 +1001,7 @@ public class ProfileViewer { skillInfo.addProperty("maxxp_slayer_spider", level_slayer_spider.maxXpForLevel); skillInfo.addProperty("maxxp_slayer_wolf", level_slayer_wolf.maxXpForLevel); skillInfo.addProperty("maxxp_slayer_enderman", level_slayer_enderman.maxXpForLevel); + skillInfo.addProperty("maxxp_slayer_blaze", level_slayer_blaze.maxXpForLevel); return skillInfo; } diff --git a/src/main/resources/assets/notenoughupdates/pv_basic.png b/src/main/resources/assets/notenoughupdates/pv_basic.png index 227bad5a..4d5236f5 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_basic.png and b/src/main/resources/assets/notenoughupdates/pv_basic.png differ -- cgit From 7243827ec602efa0d2386ab53a61472465e8555a Mon Sep 17 00:00:00 2001 From: NopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com> Date: Sat, 30 Apr 2022 14:24:52 +0000 Subject: made it so "pane gui scale" doesnt effect armour/pet huds (#117) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * made it so "pane gui scale" doesnt effect armour/pet huds ( i did not know that was a feature) this did NOT take me 20 minutes to make this commit on the right branch * = Updated the syntax for the /sthw command, putting name after the coordinates (@My-Name-Is-Jeff) * deez nuts * move equipment tooltips to the left * move tooltip when rendering fixes some opengl shenanigans when using GlTranslate * import static * i think the number 27 is cooler than 21 but its needed here * fix pet tooltip when equipment is not cached * added master star support to the search overlay (no texture rn cos lazy) * Added 6-10 stars to the auction search overlay i am not using the web editor * texture - jani * ➓/➓ pr adding numbers to /neurename * ➓/➓ pr adding numbers 2.1.md * neuec support to attributes (THIS DID NOT TAKE OVER AN HOUR) * 2.1.md 🙂 * Added flares to tools itemtab / fixed todo move option not showing / some fixes for my heart * fix normal keybinds not working in CalendarOverlay * 2.1.md 🙂 * cobble pro time keeper * added MAXED_ATTRIBUTE_SHARD * Update 2.1.md Co-authored-by: Lulonaut Co-authored-by: jani270 --- Update Notes/2.1.md | 7 +- .../moulberry/notenoughupdates/NEUOverlay.java | 598 ++++++++++----------- .../notenoughupdates/core/GuiElementTextField.java | 50 ++ .../listener/ItemTooltipListener.java | 38 +- .../notenoughupdates/miscgui/CalendarOverlay.java | 2 + .../notenoughupdates/miscgui/GuiEnchantColour.java | 28 +- .../notenoughupdates/miscgui/GuiItemCustomize.java | 1 + .../options/seperateSections/DungeonMapConfig.java | 2 +- .../options/seperateSections/ItemOverlays.java | 2 +- .../options/seperateSections/LocationEdit.java | 11 +- .../options/seperateSections/Mining.java | 2 +- .../options/seperateSections/PetOverlay.java | 2 +- .../options/seperateSections/Toolbar.java | 2 +- .../overlays/AuctionSearchOverlay.java | 43 +- .../notenoughupdates/overlays/TimersOverlay.java | 2 +- .../profileviewer/GuiProfileViewer.java | 2 +- .../notenoughupdates/auc_search/master_star.png | Bin 0 -> 761 bytes .../notenoughupdates/auc_search/star_board.png | Bin 4352 -> 639 bytes 18 files changed, 452 insertions(+), 340 deletions(-) create mode 100644 src/main/resources/assets/notenoughupdates/auc_search/master_star.png (limited to 'src/main/resources') diff --git a/Update Notes/2.1.md b/Update Notes/2.1.md index aa8cd3f2..935ca4f1 100644 --- a/Update Notes/2.1.md +++ b/Update Notes/2.1.md @@ -49,7 +49,7 @@ - Added an option to turn off showing next click in chronomatron - Turns off inv search mode after 2 minutes - Made /neustats modlist show normal /neustats if under 15 mods -- Added max enchant book to /neuec - Dokm +- Added max enchant book and max attribute shard to /neuec - Dokm - [Added bingo and Stranded profile icons to /pv](https://cdn.discordapp.com/attachments/832652653292027904/915844465372065842/unknown.png) - Added an icon if neu doesn't know about a gamemode in /pv - Fixed pet overlay not resetting pet when making new profile @@ -80,6 +80,9 @@ - Added optional radius argument for neupackdev subcommands. - whalker - Added tab completion to /neupackdev subcommands. - whalker - Made it if you hold shift in the enchant solvers it overrides prevent missclicks +- Added 6-10 stars to the auction search overlay +- Added 6-10 stars to /neucustomize +- Added support for attributes in neuec - Added Heavy Pearls to todo overlay - cobble8 ### **Bug Fixes:** - Fix wiki pages freezing the entire game - nea89 @@ -108,7 +111,7 @@ - Added checks for chat messages for dungeon win overlay - Fixed minion tiers crafted by coop members not showing up in /pv - Lulonaut - Fixed crash in /pv when the player had a pet that is not saved in the repo - Lulonaut -- Made it so you can close /et with your inventory keybind +- Fixed some vanilla Minecraft keybinds not working in NEU GUIs ### **Other:** - New icons was added in storage_icons.png - Moved the help icon in /neucustomize over a little diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java index f473a56f..d3efc06a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java @@ -1,63 +1,9 @@ package io.github.moulberry.notenoughupdates; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.ascending_overlay; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.close; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.descending_overlay; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.help; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.itemPaneTabArrow; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.item_haschild; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.item_mask; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.order_alphabetical; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.order_alphabetical_active; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.order_rarity; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.order_rarity_active; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.order_value; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.order_value_active; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.quickcommand_background; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.rightarrow; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.rightarrow_overlay; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.settings; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_accessory; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_accessory_active; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_all; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_all_active; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_armor; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_armor_active; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_mob; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_mob_active; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_pet; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_pet_active; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_tool; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_tool_active; - -import java.awt.Color; -import java.lang.reflect.InvocationTargetException; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.TreeSet; -import java.util.UUID; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicReference; - import com.google.common.collect.Lists; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import org.lwjgl.input.Keyboard; -import org.lwjgl.input.Mouse; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL14; -import org.lwjgl.util.vector.Vector2f; import io.github.moulberry.notenoughupdates.auction.CustomAHGui; import io.github.moulberry.notenoughupdates.core.BackgroundBlur; import io.github.moulberry.notenoughupdates.core.GuiScreenElementWrapper; @@ -75,6 +21,7 @@ import io.github.moulberry.notenoughupdates.miscfeatures.SunTzu; import io.github.moulberry.notenoughupdates.miscgui.GuiPriceGraph; import io.github.moulberry.notenoughupdates.options.NEUConfigEditor; import io.github.moulberry.notenoughupdates.util.Constants; +import io.github.moulberry.notenoughupdates.util.GuiTextures; import io.github.moulberry.notenoughupdates.util.LerpingFloat; import io.github.moulberry.notenoughupdates.util.NotificationHandler; import io.github.moulberry.notenoughupdates.util.SpecialColour; @@ -115,6 +62,30 @@ import net.minecraft.util.Matrix4f; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.client.ClientCommandHandler; +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL14; +import org.lwjgl.util.vector.Vector2f; + +import java.awt.*; +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; +import java.util.UUID; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicReference; public class NEUOverlay extends Gui { private static final ResourceLocation SUPERGEHEIMNISVERMOGEN = new ResourceLocation( @@ -170,17 +141,27 @@ public class NEUOverlay extends Gui { private final String petRegex = ".*?;[0-5]$"; private final ResourceLocation[] sortIcons = new ResourceLocation[]{ - sort_all, sort_mob, sort_pet, sort_tool, sort_armor, sort_accessory + GuiTextures.sort_all, + GuiTextures.sort_mob, + GuiTextures.sort_pet, + GuiTextures.sort_tool, + GuiTextures.sort_armor, + GuiTextures.sort_accessory }; private final ResourceLocation[] sortIconsActive = new ResourceLocation[]{ - sort_all_active, sort_mob_active, sort_pet_active, sort_tool_active, sort_armor_active, sort_accessory_active + GuiTextures.sort_all_active, + GuiTextures.sort_mob_active, + GuiTextures.sort_pet_active, + GuiTextures.sort_tool_active, + GuiTextures.sort_armor_active, + GuiTextures.sort_accessory_active }; private final ResourceLocation[] orderIcons = new ResourceLocation[]{ - order_alphabetical, order_rarity, order_value + GuiTextures.order_alphabetical, GuiTextures.order_rarity, GuiTextures.order_value }; private final ResourceLocation[] orderIconsActive = new ResourceLocation[]{ - order_alphabetical_active, order_rarity_active, order_value_active + GuiTextures.order_alphabetical_active, GuiTextures.order_rarity_active, GuiTextures.order_value_active }; //Various constants used for GUI structure @@ -449,13 +430,13 @@ public class NEUOverlay extends Gui { if (!NotEnoughUpdates.INSTANCE.config.toolbar.enableSettingsButton) { return; } - Minecraft.getMinecraft().getTextureManager().bindTexture(quickcommand_background); + Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.quickcommand_background); GlStateManager.color(1, 1, 1, 1); Utils.drawTexturedRect(x, y, searchYSize + paddingUnscaled * 2, searchYSize + paddingUnscaled * 2, GL11.GL_NEAREST ); - Minecraft.getMinecraft().getTextureManager().bindTexture(settings); + Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.settings); GlStateManager.color(1f, 1f, 1f, 1f); Utils.drawTexturedRect((int) x + paddingUnscaled, (int) y + paddingUnscaled, searchYSize, searchYSize @@ -507,13 +488,13 @@ public class NEUOverlay extends Gui { return; } - Minecraft.getMinecraft().getTextureManager().bindTexture(quickcommand_background); + Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.quickcommand_background); GlStateManager.color(1, 1, 1, 1); Utils.drawTexturedRect(x, y, searchYSize + paddingUnscaled * 2, searchYSize + paddingUnscaled * 2, GL11.GL_NEAREST ); - Minecraft.getMinecraft().getTextureManager().bindTexture(help); + Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.help); GlStateManager.color(1f, 1f, 1f, 1f); Utils.drawTexturedRect((int) x + paddingUnscaled, (int) y + paddingUnscaled, getSearchBarYSize(), getSearchBarYSize() @@ -609,7 +590,7 @@ public class NEUOverlay extends Gui { tag.setString("qc_id", quickCommandStrSplit[0].toLowerCase().trim()); render.setTagCompound(tag); - Minecraft.getMinecraft().getTextureManager().bindTexture(quickcommand_background); + Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.quickcommand_background); GlStateManager.color(1, 1, 1, 1); Utils.drawTexturedRect(x, y, bigItemSize + paddingUnscaled * 2, bigItemSize + paddingUnscaled * 2, GL11.GL_NEAREST @@ -1378,7 +1359,8 @@ public class NEUOverlay extends Gui { "DUNGEON BOW", "DRILL", "GAUNTLET", - "LONGSWORD" + "LONGSWORD", + "DEPLOYABLE" ) >= 0; } else if (getSortMode() == SORT_MODE_ARMOR) { return checkItemType( @@ -1679,12 +1661,12 @@ public class NEUOverlay extends Gui { drawRect(leftSide - 1, top, leftSide - 1 + buttonXSize, top + ySize, fg.getRGB()); GlStateManager.color(1f, 1f, 1f, 1f); - Minecraft.getMinecraft().getTextureManager().bindTexture(rightarrow); + Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.rightarrow); Utils.drawTexturedRect(leftSide - 1 + leftPressed, top + leftPressed, buttonXSize, ySize, 1, 0, 0, 1 ); - Minecraft.getMinecraft().getTextureManager().bindTexture(rightarrow_overlay); + Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.rightarrow_overlay); Utils.drawTexturedRect(leftSide - 1, top, buttonXSize, ySize, 1 - leftPressed, leftPressed, 1 - leftPressed, leftPressed @@ -1698,12 +1680,12 @@ public class NEUOverlay extends Gui { drawRect(rightSide + 1 - buttonXSize, top, rightSide + 1, top + ySize, fg.getRGB()); GlStateManager.color(1f, 1f, 1f, 1f); - Minecraft.getMinecraft().getTextureManager().bindTexture(rightarrow); + Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.rightarrow); Utils.drawTexturedRect(rightSide + 1 - buttonXSize + rightPressed, top + rightPressed, buttonXSize, ySize ); - Minecraft.getMinecraft().getTextureManager().bindTexture(rightarrow_overlay); + Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.rightarrow_overlay); Utils.drawTexturedRect(rightSide + 1 - buttonXSize, top, buttonXSize, ySize, 1 - rightPressed, rightPressed, 1 - rightPressed, rightPressed @@ -1879,7 +1861,6 @@ public class NEUOverlay extends Gui { return wardrobeOpen; } - private ItemStack getChestSlotsAsItemStack(int slot) { GuiScreen guiScreen = Minecraft.getMinecraft().currentScreen; if (guiScreen instanceof GuiChest) { @@ -1890,14 +1871,12 @@ public class NEUOverlay extends Gui { } } - private ItemStack getWardrobeSlot(int armourSlot) { if (isInNamedGui("Your Equipment")) { - return getChestSlotsAsItemStack(armourSlot); + return getChestSlotsAsItemStack(armourSlot); } else return null; } - public ItemStack slot1 = null; public ItemStack slot2 = null; public ItemStack slot3 = null; @@ -1944,228 +1923,6 @@ public class NEUOverlay extends Gui { Utils.drawTexturedRect((width - 64) / 2f, (height - 64) / 2f - 114, 64, 64, GL11.GL_LINEAR); GlStateManager.bindTexture(0); } - GuiScreen guiScreen = Minecraft.getMinecraft().currentScreen; - - if (NotEnoughUpdates.INSTANCE.config.customArmour.enableArmourHud && - NotEnoughUpdates.INSTANCE.config.misc.hidePotionEffect - && NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) { - if (getWardrobeSlot(10) != null) { - slot1 = getWardrobeSlot(10); - slot2 = getWardrobeSlot(19); - slot3 = getWardrobeSlot(28); - slot4 = getWardrobeSlot(37); - } - if (guiScreen instanceof GuiInventory) { - renderingArmorHud = true; - - List tooltipToDisplay = null; - if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 0) { - Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY); - } - if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 1) { - Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_GREY); - } - if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 2) { - Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_DARK); - } - if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 3) { - if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 3 && - NotEnoughUpdates.INSTANCE.config.petOverlay.petInvDisplay && petSlot != null) { - Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_TRANSPARENT_PET); - } else { - Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_TRANSPARENT); - } - } - if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 4) { - Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_FSR); - } - - GlStateManager.color(1, 1, 1, 1); - GL11.glTranslatef(0, 0, 401); - float yNumber = (float) (height - 167) / 2f; - Utils.drawTexturedRect((float) ((width - 224.1) / 2f), yNumber, 31, 86, GL11.GL_NEAREST); - GlStateManager.bindTexture(0); - - Utils.drawItemStack(slot1, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105)); - Utils.drawItemStack(slot2, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105) + 18); - Utils.drawItemStack(slot3, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105) + 36); - Utils.drawItemStack(slot4, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105) + 54); - if (slot1 == null) { - Minecraft.getMinecraft().getTextureManager().bindTexture(QUESTION_MARK); - GlStateManager.color(1, 1, 1, 1); - Utils.drawTexturedRect(((width - 208) / 2f), ((height + 60) / 2f - 105), 16, 16, GL11.GL_NEAREST); - GlStateManager.bindTexture(0); - - tooltipToDisplay = Lists.newArrayList( - EnumChatFormatting.RED + "Warning", - EnumChatFormatting.GREEN + "You need to open /equipment", - EnumChatFormatting.GREEN + "To cache your armour" - ); - if (mouseX >= ((width - 208) / 2f) && mouseX < ((width - 208) / 2f) + 16) { - if (mouseY >= ((height + 60) / 2f - 105) && mouseY <= ((height + 60) / 2f - 105) + 70 && - NotEnoughUpdates.INSTANCE.config.customArmour.sendWardrobeCommand) { - if (Minecraft.getMinecraft().thePlayer.inventory.getItemStack() == null) { - if (Mouse.getEventButtonState()) { - if (ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/equipment") == - 0) { - NotEnoughUpdates.INSTANCE.sendChatMessage("/equipment"); - } - } - } - } - if (mouseY >= ((height + 60) / 2f - 105) && mouseY <= ((height + 60) / 2f - 105) + 16) { - Utils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr); - GL11.glTranslatef(0, 0, -401); - } - } - - } - if (slot1 != null && slot2 != null && slot3 != null && slot4 != null) { - if (mouseX >= ((width - 208) / 2f) && mouseX < ((width - 208) / 2f) + 16) { - if (mouseY >= ((height + 60) / 2f - 105) && mouseY <= ((height + 60) / 2f - 105) + 70 && - NotEnoughUpdates.INSTANCE.config.customArmour.sendWardrobeCommand) { - if (Minecraft.getMinecraft().thePlayer.inventory.getItemStack() == null) { - if (Mouse.getEventButtonState()) { - if (ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/equipment") == - 0) { - NotEnoughUpdates.INSTANCE.sendChatMessage("/equipment"); - } - } - } - } - //top slot - if (mouseY >= ((height + 60) / 2f - 105) && mouseY <= ((height + 60) / 2f - 105) + 16) { - tooltipToDisplay = slot1.getTooltip(Minecraft.getMinecraft().thePlayer, false); - Utils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr); - tooltipToDisplay = null; - GL11.glTranslatef(0, 0, -401); - } - if (mouseY >= ((height + 60) / 2f - 105) + 18 && mouseY <= ((height + 60) / 2f - 105) + 34) { - tooltipToDisplay = slot2.getTooltip(Minecraft.getMinecraft().thePlayer, false); - Utils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr); - tooltipToDisplay = null; - GL11.glTranslatef(0, 0, -401); - } - if (mouseY >= ((height + 60) / 2f - 105) + 36 && mouseY <= ((height + 60) / 2f - 105) + 52) { - tooltipToDisplay = slot3.getTooltip(Minecraft.getMinecraft().thePlayer, false); - Utils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr); - tooltipToDisplay = null; - GL11.glTranslatef(0, 0, -401); - } - if (mouseY >= ((height + 60) / 2f - 105) + 54 && mouseY <= ((height + 60) / 2f - 105) + 70) { - tooltipToDisplay = slot4.getTooltip(Minecraft.getMinecraft().thePlayer, false); - Utils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr); - tooltipToDisplay = null; - GL11.glTranslatef(0, 0, -401); - } - } - GL11.glTranslatef(0, 0, -401); - } - } - } - if (PetInfoOverlay.getCurrentPet() != null) { - if (NotEnoughUpdates.INSTANCE.config.petOverlay.petInvDisplay - && (NotEnoughUpdates.INSTANCE.manager - .jsonToStack(NotEnoughUpdates.INSTANCE.manager - .getItemInformation() - .get(PetInfoOverlay.getCurrentPet().petType + ";" + PetInfoOverlay.getCurrentPet().rarity.petId)) - .hasDisplayName() - || NotEnoughUpdates.INSTANCE.manager - .jsonToStack(NotEnoughUpdates.INSTANCE.manager - .getItemInformation() - .get(PetInfoOverlay.getCurrentPet().petType + ";" + (PetInfoOverlay.getCurrentPet().rarity.petId - 1))) - .hasDisplayName()) - && NotEnoughUpdates.INSTANCE.config.misc.hidePotionEffect && - NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) { - if (!NotEnoughUpdates.INSTANCE.manager - .jsonToStack( - NotEnoughUpdates.INSTANCE.manager - .getItemInformation() - .get(PetInfoOverlay.getCurrentPet().petType + ";" + PetInfoOverlay.getCurrentPet().rarity.petId)) - .hasDisplayName()) { - petSlot = NotEnoughUpdates.INSTANCE.manager.jsonToStack( - NotEnoughUpdates.INSTANCE.manager.getItemInformation().get( - PetInfoOverlay.getCurrentPet().petType + ";" + (PetInfoOverlay.getCurrentPet().rarity.petId - 1))); - } else { - petSlot = NotEnoughUpdates.INSTANCE.manager.jsonToStack( - NotEnoughUpdates.INSTANCE.manager.getItemInformation().get( - PetInfoOverlay.getCurrentPet().petType + ";" + PetInfoOverlay.getCurrentPet().rarity.petId)); - } - petSlot.getTagCompound().setBoolean("NEUPETINVDISPLAY", true); - petSlot.getTagCompound().setBoolean( - "NEUHIDEPETTOOLTIP", - NotEnoughUpdates.INSTANCE.config.petOverlay.hidePetTooltip - ); - ItemStack petInfo = petSlot; - - if (guiScreen instanceof GuiInventory) { - GL11.glTranslatef(0, 0, 401); - if (!NotEnoughUpdates.INSTANCE.config.customArmour.enableArmourHud) { - if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 0) { - Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY); - } - if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 1) { - Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY_GREY); - } - if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 2) { - Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY_DARK); - } - if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 3) { - Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY_TRANSPARENT); - } - if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 4) { - Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY_FSR); - } - } else { - if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 0) { - Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY); - } - if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 1) { - Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY_GREY); - } - if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 2) { - Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY_DARK); - } - if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 3) { - Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY_TRANSPARENT); - } - if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 4) { - Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY_FSR); - } - } - - GlStateManager.color(1, 1, 1, 1); - float yNumber = (float) (height - 23) / 2f; - Utils.drawTexturedRect((float) ((width - 224.1) / 2f), yNumber, 31, 32, GL11.GL_NEAREST); - GlStateManager.bindTexture(0); - - Utils.drawItemStack(petInfo, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105) + 72); - renderingPetHud = true; - - List tooltipToDisplay = null; - if (petInfo != null) { - if (mouseX >= ((width - 208) / 2f) && mouseX < ((width - 208) / 2f) + 16) { - if (mouseY >= ((height + 60) / 2f - 105) + 72 && mouseY <= ((height + 60) / 2f - 105) + 88 && - NotEnoughUpdates.INSTANCE.config.petOverlay.sendPetsCommand) { - if (Minecraft.getMinecraft().thePlayer.inventory.getItemStack() == null) { - if (Mouse.getEventButtonState()) { - if (ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/pets") == - 0) { - NotEnoughUpdates.INSTANCE.sendChatMessage("/pets"); - } - } - } - tooltipToDisplay = petInfo.getTooltip(Minecraft.getMinecraft().thePlayer, false); - Utils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr); - tooltipToDisplay = null; - GL11.glTranslatef(0, 0, -80); - } - } - - } - } - } - } SunTzu.setEnabled(textField.getText().toLowerCase().startsWith("potato")); @@ -2239,7 +1996,7 @@ public class NEUOverlay extends Gui { //Tab if (NotEnoughUpdates.INSTANCE.config.itemlist.tabOpen) { - Minecraft.getMinecraft().getTextureManager().bindTexture(itemPaneTabArrow); + Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.itemPaneTabArrow); GlStateManager.color(1f, 1f, 1f, 0.3f); Utils.drawTexturedRect(width - itemPaneTabOffset.getValue() * 64 / 20f, height / 2f - 32, 64, 64); GlStateManager.bindTexture(0); @@ -2301,8 +2058,8 @@ public class NEUOverlay extends Gui { Utils.drawTexturedRect(orderIconX, iconTop, scaledITEM_SIZE, scaledITEM_SIZE, 0, 1, 0, 1, GL11.GL_NEAREST); Minecraft.getMinecraft().getTextureManager().bindTexture(getCompareAscending().get(i) - ? ascending_overlay - : descending_overlay); + ? GuiTextures.ascending_overlay + : GuiTextures.descending_overlay); GlStateManager.color(1f, 1f, 1f, 1f); Utils.drawTexturedRect(orderIconX, iconTop, scaledITEM_SIZE, scaledITEM_SIZE, 0, 1, 0, 1, GL11.GL_NEAREST); GlStateManager.bindTexture(0); @@ -2486,7 +2243,7 @@ public class NEUOverlay extends Gui { activeInfoPane.render(width, height, bg, fg, Utils.peekGuiScale(), mouseX, mouseY); GlStateManager.color(1f, 1f, 1f, 1f); - Minecraft.getMinecraft().getTextureManager().bindTexture(close); + Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.close); Utils.drawTexturedRect(rightSide - getBoxPadding() - 8, getBoxPadding() - 8, 16, 16); GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0); } @@ -2532,7 +2289,7 @@ public class NEUOverlay extends Gui { GlStateManager.enableAlpha(); GlStateManager.alphaFunc(516, 0.1F); GlStateManager.disableLighting(); - + renderInfoHuds(); Utils.pushGuiScale(-1); if (System.currentTimeMillis() - lastSearchMode > 120000 && @@ -2542,6 +2299,245 @@ public class NEUOverlay extends Gui { } } + void renderInfoHuds() { + FontRenderer fr = Minecraft.getMinecraft().fontRendererObj; + + Utils.resetGuiScale(); + Utils.pushGuiScale(Minecraft.getMinecraft().gameSettings.guiScale); + + int width = Utils.peekGuiScale().getScaledWidth(); + int height = Utils.peekGuiScale().getScaledHeight(); + int mouseX = Mouse.getX() * width / Minecraft.getMinecraft().displayWidth; + int mouseY = height - Mouse.getY() * height / Minecraft.getMinecraft().displayHeight - 1; + GuiScreen guiScreen = Minecraft.getMinecraft().currentScreen; + + if (NotEnoughUpdates.INSTANCE.config.customArmour.enableArmourHud && + NotEnoughUpdates.INSTANCE.config.misc.hidePotionEffect + && NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) { + if (getWardrobeSlot(10) != null) { + slot1 = getWardrobeSlot(10); + slot2 = getWardrobeSlot(19); + slot3 = getWardrobeSlot(28); + slot4 = getWardrobeSlot(37); + } + if (guiScreen instanceof GuiInventory) { + renderingArmorHud = true; + + List tooltipToDisplay = null; + if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 0) { + Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY); + } + if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 1) { + Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_GREY); + } + if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 2) { + Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_DARK); + } + if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 3) { + if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 3 && + NotEnoughUpdates.INSTANCE.config.petOverlay.petInvDisplay && petSlot != null) { + Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_TRANSPARENT_PET); + } else { + Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_TRANSPARENT); + } + } + if (NotEnoughUpdates.INSTANCE.config.customArmour.colourStyle == 4) { + Minecraft.getMinecraft().getTextureManager().bindTexture(ARMOR_DISPLAY_FSR); + } + + GlStateManager.color(1, 1, 1, 1); + GL11.glTranslatef(0, 0, 401); + float yNumber = (float) (height - 167) / 2f; + Utils.drawTexturedRect((float) ((width - 224.1) / 2f), yNumber, 31, 86, GL11.GL_NEAREST); + GlStateManager.bindTexture(0); + + Utils.drawItemStack(slot1, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105)); + Utils.drawItemStack(slot2, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105) + 18); + Utils.drawItemStack(slot3, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105) + 36); + Utils.drawItemStack(slot4, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105) + 54); + if (slot1 == null) { + Minecraft.getMinecraft().getTextureManager().bindTexture(QUESTION_MARK); + GlStateManager.color(1, 1, 1, 1); + Utils.drawTexturedRect(((width - 208) / 2f), ((height + 60) / 2f - 105), 16, 16, GL11.GL_NEAREST); + GlStateManager.bindTexture(0); + + tooltipToDisplay = Lists.newArrayList( + EnumChatFormatting.RED + "Warning", + EnumChatFormatting.GREEN + "You need to open /equipment", + EnumChatFormatting.GREEN + "To cache your armour" + ); + if (mouseX >= ((width - 208) / 2f) && mouseX < ((width - 208) / 2f) + 16) { + if (mouseY >= ((height + 60) / 2f - 105) && mouseY <= ((height + 60) / 2f - 105) + 70 && + NotEnoughUpdates.INSTANCE.config.customArmour.sendWardrobeCommand) { + if (Minecraft.getMinecraft().thePlayer.inventory.getItemStack() == null) { + if (Mouse.getEventButtonState()) { + if (ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/equipment") == + 0) { + NotEnoughUpdates.INSTANCE.sendChatMessage("/equipment"); + } + } + } + } + if (mouseY >= ((height + 60) / 2f - 105) && mouseY <= ((height + 60) / 2f - 105) + 16) { + Utils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr); + } + } + GL11.glTranslatef(0, 0, -401); + } + if (slot1 != null && slot2 != null && slot3 != null && slot4 != null) { + if (mouseX >= ((width - 208) / 2f) && mouseX < ((width - 208) / 2f) + 16) { + if (mouseY >= ((height + 60) / 2f - 105) && mouseY <= ((height + 60) / 2f - 105) + 70 && + NotEnoughUpdates.INSTANCE.config.customArmour.sendWardrobeCommand) { + if (Minecraft.getMinecraft().thePlayer.inventory.getItemStack() == null) { + if (Mouse.getEventButtonState()) { + if (ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/equipment") == + 0) { + NotEnoughUpdates.INSTANCE.sendChatMessage("/equipment"); + } + } + } + } + //top slot + int tooltipXModifier = -175; + if (mouseY >= ((height + 60) / 2f - 105) && mouseY <= ((height + 60) / 2f - 105) + 16) { + tooltipToDisplay = slot1.getTooltip(Minecraft.getMinecraft().thePlayer, false); + if (shouldShowEquipmentTooltip(tooltipToDisplay)) { + Utils.drawHoveringText(tooltipToDisplay, mouseX + tooltipXModifier, mouseY, width, height, -1, fr); + } + } + if (mouseY >= ((height + 60) / 2f - 105) + 18 && mouseY <= ((height + 60) / 2f - 105) + 34) { + tooltipToDisplay = slot2.getTooltip(Minecraft.getMinecraft().thePlayer, false); + if (shouldShowEquipmentTooltip(tooltipToDisplay)) { + Utils.drawHoveringText(tooltipToDisplay, mouseX + tooltipXModifier, mouseY, width, height, -1, fr); + } + } + if (mouseY >= ((height + 60) / 2f - 105) + 36 && mouseY <= ((height + 60) / 2f - 105) + 52) { + tooltipToDisplay = slot3.getTooltip(Minecraft.getMinecraft().thePlayer, false); + if (shouldShowEquipmentTooltip(tooltipToDisplay)) { + Utils.drawHoveringText(tooltipToDisplay, mouseX + tooltipXModifier, mouseY, width, height, -1, fr); + } + } + if (mouseY >= ((height + 60) / 2f - 105) + 54 && mouseY <= ((height + 60) / 2f - 105) + 70) { + tooltipToDisplay = slot4.getTooltip(Minecraft.getMinecraft().thePlayer, false); + if (shouldShowEquipmentTooltip(tooltipToDisplay)) { + Utils.drawHoveringText(tooltipToDisplay, mouseX + tooltipXModifier, mouseY, width, height, -1, fr); + } + } + } + GL11.glTranslatef(0, 0, -401); + } + } + } + if (PetInfoOverlay.getCurrentPet() != null) { + if (NotEnoughUpdates.INSTANCE.config.petOverlay.petInvDisplay + && (NotEnoughUpdates.INSTANCE.manager + .jsonToStack(NotEnoughUpdates.INSTANCE.manager + .getItemInformation() + .get(PetInfoOverlay.getCurrentPet().petType + ";" + PetInfoOverlay.getCurrentPet().rarity.petId)) + .hasDisplayName() + || NotEnoughUpdates.INSTANCE.manager + .jsonToStack(NotEnoughUpdates.INSTANCE.manager + .getItemInformation() + .get(PetInfoOverlay.getCurrentPet().petType + ";" + (PetInfoOverlay.getCurrentPet().rarity.petId - 1))) + .hasDisplayName()) + && NotEnoughUpdates.INSTANCE.config.misc.hidePotionEffect && + NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) { + if (!NotEnoughUpdates.INSTANCE.manager + .jsonToStack( + NotEnoughUpdates.INSTANCE.manager + .getItemInformation() + .get(PetInfoOverlay.getCurrentPet().petType + ";" + PetInfoOverlay.getCurrentPet().rarity.petId)) + .hasDisplayName()) { + petSlot = NotEnoughUpdates.INSTANCE.manager.jsonToStack( + NotEnoughUpdates.INSTANCE.manager.getItemInformation().get( + PetInfoOverlay.getCurrentPet().petType + ";" + (PetInfoOverlay.getCurrentPet().rarity.petId - 1))); + } else { + petSlot = NotEnoughUpdates.INSTANCE.manager.jsonToStack( + NotEnoughUpdates.INSTANCE.manager.getItemInformation().get( + PetInfoOverlay.getCurrentPet().petType + ";" + PetInfoOverlay.getCurrentPet().rarity.petId)); + } + if (petSlot == null) { + return; + } + petSlot.getTagCompound().setBoolean( + "NEUHIDEPETTOOLTIP", + NotEnoughUpdates.INSTANCE.config.petOverlay.hidePetTooltip + ); + ItemStack petInfo = petSlot; + + if (guiScreen instanceof GuiInventory) { + GL11.glTranslatef(0, 0, 401); + if (!NotEnoughUpdates.INSTANCE.config.customArmour.enableArmourHud) { + if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 0) { + Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY); + } + if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 1) { + Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY_GREY); + } + if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 2) { + Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY_DARK); + } + if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 3) { + Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY_TRANSPARENT); + } + if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 4) { + Minecraft.getMinecraft().getTextureManager().bindTexture(PET_DISPLAY_FSR); + } + } else { + if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 0) { + Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY); + } + if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 1) { + Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY_GREY); + } + if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 2) { + Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY_DARK); + } + if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 3) { + Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY_TRANSPARENT); + } + if (NotEnoughUpdates.INSTANCE.config.petOverlay.colourStyle == 4) { + Minecraft.getMinecraft().getTextureManager().bindTexture(PET_ARMOR_DISPLAY_FSR); + } + } + + GlStateManager.color(1, 1, 1, 1); + float yNumber = (float) (height - 23) / 2f; + Utils.drawTexturedRect((float) ((width - 224.1) / 2f), yNumber, 31, 32, GL11.GL_NEAREST); + GlStateManager.bindTexture(0); + + Utils.drawItemStack(petInfo, (int) ((width - 208) / 2f), (int) ((height + 60) / 2f - 105) + 72); + renderingPetHud = true; + + List tooltipToDisplay = null; + if (petInfo != null) { + if (mouseX >= ((width - 208) / 2f) && mouseX < ((width - 208) / 2f) + 16) { + if (mouseY >= ((height + 60) / 2f - 105) + 72 && mouseY <= ((height + 60) / 2f - 105) + 88 && + NotEnoughUpdates.INSTANCE.config.petOverlay.sendPetsCommand) { + if (Minecraft.getMinecraft().thePlayer.inventory.getItemStack() == null) { + if (Mouse.getEventButtonState()) { + if (ClientCommandHandler.instance.executeCommand(Minecraft.getMinecraft().thePlayer, "/pets") == + 0) { + NotEnoughUpdates.INSTANCE.sendChatMessage("/pets"); + } + } + } + tooltipToDisplay = petInfo.getTooltip(Minecraft.getMinecraft().thePlayer, false); + Utils.drawHoveringText(tooltipToDisplay, mouseX - 200, mouseY, width, height, -1, fr); + GL11.glTranslatef(0, 0, -80); + } + } + + } + } + } + } + } + + private boolean shouldShowEquipmentTooltip(List toolTip) { + return !toolTip.get(0).equals("§o§7Empty Equipment Slot§r"); + } + /** * Used in SettingsInfoPane to redraw the items when a setting changes. */ @@ -2753,7 +2749,7 @@ public class NEUOverlay extends Gui { return; } - Minecraft.getMinecraft().getTextureManager().bindTexture(item_mask); + Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.item_mask); if (getFavourites().contains(json.get("internalname").getAsString())) { if (NotEnoughUpdates.INSTANCE.config.itemlist.itemStyle == 0) { GlStateManager.color(fgFavourite2.getRed() / 255f, fgFavourite2.getGreen() / 255f, @@ -2835,7 +2831,7 @@ public class NEUOverlay extends Gui { GlStateManager.translate(0, 0, 50); if (searchedItemsSubgroup.containsKey(json.get("internalname").getAsString())) { - Minecraft.getMinecraft().getTextureManager().bindTexture(item_haschild); + Minecraft.getMinecraft().getTextureManager().bindTexture(GuiTextures.item_haschild); GlStateManager.color(1, 1, 1, 1); Utils.drawTexturedRect(x - 1, y - 1, ITEM_SIZE + 2, ITEM_SIZE + 2, GL11.GL_NEAREST); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementTextField.java b/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementTextField.java index 51a4654c..f3d038e9 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementTextField.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementTextField.java @@ -36,6 +36,7 @@ public class GuiElementTextField { private int y; private String prependText = ""; + private String masterStarUnicode = ""; private int customTextColour = 0xffffffff; private final GuiTextField textField = new GuiTextField(0, Minecraft.getMinecraft().fontRendererObj, @@ -395,6 +396,55 @@ public class GuiElementTextField { textField.setCursorPosition(pos + 1); } } + } else { + for (int i = 0; i < 10; i++) { + if (typedChar == Integer.toString(i + 1).charAt(0)) { + int pos = textField.getCursorPosition() - 2; + if (pos >= 0 && pos < textField.getText().length()) { + if (textField.getText().charAt(pos) == '*') { + switch (i) { + case 0: + masterStarUnicode = "\u278A"; + break; + case 1: + masterStarUnicode = "\u278B"; + break; + case 2: + masterStarUnicode = "\u278C"; + break; + case 3: + masterStarUnicode = "\u278D"; + break; + case 4: + masterStarUnicode = "\u278E"; + break; + case 5: + masterStarUnicode = "\u278F"; + break; + case 6: + masterStarUnicode = "\u2790"; + break; + case 7: + masterStarUnicode = "\u2791"; + break; + case 8: + masterStarUnicode = "\u2792"; + break; + case 9: + masterStarUnicode = "\u2793"; + break; + } + String before = textField.getText().substring(0, pos); + String after = ""; + if (pos + 2 < textField.getText().length()) { + after = textField.getText().substring(pos + 2); + } + textField.setText(before + masterStarUnicode + after); + textField.setCursorPosition(pos + 1); + } + } + } + } } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java index a00e7e8a..ab4e9dca 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java @@ -16,7 +16,6 @@ import io.github.moulberry.notenoughupdates.util.Constants; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiChest; -import net.minecraft.client.renderer.GlStateManager; import net.minecraft.inventory.ContainerChest; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; @@ -36,8 +35,15 @@ import java.awt.*; import java.awt.datatransfer.StringSelection; import java.text.DecimalFormat; import java.text.NumberFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; -import java.util.*; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; @@ -90,10 +96,13 @@ public class ItemTooltipListener { "enchantments", 10 ); + boolean hasAttributes = event.itemStack.getTagCompound().getCompoundTag("ExtraAttributes").hasKey( + "attributes", + 10 + ); Set enchantIds = new HashSet<>(); - if (hasEnchantments) - enchantIds = - event.itemStack.getTagCompound().getCompoundTag("ExtraAttributes").getCompoundTag("enchantments").getKeySet(); + if (hasEnchantments) enchantIds = event.itemStack.getTagCompound().getCompoundTag("ExtraAttributes").getCompoundTag( + "enchantments").getKeySet(); JsonObject enchantsConst = Constants.ENCHANTS; JsonArray allItemEnchs = null; @@ -348,6 +357,8 @@ public class ItemTooltipListener { } } } + } + if (hasEnchantments || hasAttributes) { for (String op : NotEnoughUpdates.INSTANCE.config.hidden.enchantColours) { List colourOps = GuiEnchantColour.splitter.splitToList(op); String enchantName = GuiEnchantColour.getColourOpIndex(colourOps, 0); @@ -388,9 +399,10 @@ public class ItemTooltipListener { //9([a-zA-Z ]+?) ([0-9]+|(I|II|III|IV|V|VI|VII|VIII|IX|X))(,|$) Pattern pattern; try { - pattern = Pattern.compile("(\\u00A79|\\u00A7(9|l)\\u00A7d\\u00A7l)(?" + enchantName + ") " + - "(?[0-9]+|(I|II|III|IV|V|VI|VII|VIII|IX|X|XI|XII|XIII|XIV|XV|XVI|XVII|XVIII|XIX|XX))((\\u00A79)?,|( \\u00A78(?:,?[0-9]+)*)?$)"); - } catch (PatternSyntaxException e) { + pattern = Pattern.compile( + "(\\u00A7b|\\u00A79|\\u00A7(b|9|l)\\u00A7d\\u00A7l)(?" + enchantName + ") " + + "(?[0-9]+|(I|II|III|IV|V|VI|VII|VIII|IX|X|XI|XII|XIII|XIV|XV|XVI|XVII|XVIII|XIX|XX))((\\u00A79)?,|( \\u00A78(?:,?[0-9]+)*)?$)"); + } catch (Exception e) { continue; } Matcher matcher = pattern.matcher(line); @@ -441,10 +453,15 @@ public class ItemTooltipListener { if (!colourCode.equals("z")) { line = line.replace("\u00A79" + enchantText, "\u00A7" + colourCode + extraMods + enchantText); + line = line.replace("\u00A7b" + enchantText, "\u00A7" + colourCode + extraMods + enchantText); line = line.replace( "\u00A79\u00A7d\u00A7l" + enchantText, "\u00A7" + colourCode + extraMods + enchantText ); + line = line.replace( + "\u00A7b\u00A7d\u00A7l" + enchantText, + "\u00A7" + colourCode + extraMods + enchantText + ); line = line.replace( "\u00A7l\u00A7d\u00A7l" + enchantText, "\u00A7" + colourCode + extraMods + enchantText @@ -781,7 +798,6 @@ public class ItemTooltipListener { /** * This method does the following: - * Move the pet inventory display tooltip to the left to avoid conflicts * Remove reforge stats for Legendary items from Hypixel if enabled * Show NBT data when holding LCONTROL */ @@ -789,10 +805,6 @@ public class ItemTooltipListener { public void onItemTooltip(ItemTooltipEvent event) { if (!neu.isOnSkyblock()) return; if (event.toolTip == null) return; - //Render the pet inventory display tooltip to the left to avoid things from other mods rendering over the tooltip - if (event.itemStack.getTagCompound() != null && event.itemStack.getTagCompound().getBoolean("NEUPETINVDISPLAY")) { - GlStateManager.translate(-200, 0, 0); - } if (event.toolTip.size() > 2 && NotEnoughUpdates.INSTANCE.config.tooltipTweaks.hideDefaultReforgeStats) { String secondLine = StringUtils.stripControlCodes(event.toolTip.get(1)); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/CalendarOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/CalendarOverlay.java index a9cf44c4..06cf28e1 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/CalendarOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/CalendarOverlay.java @@ -659,6 +659,8 @@ public class CalendarOverlay { } } } + } else { + Minecraft.getMinecraft().dispatchKeypresses(); } } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiEnchantColour.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiEnchantColour.java index bd4bd680..4e865b28 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiEnchantColour.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiEnchantColour.java @@ -66,7 +66,9 @@ public class GuiEnchantColour extends GuiScreen { private static final Pattern settingPattern = Pattern.compile(".*:[>=<]:[0-9]+:[a-zA-Z0-9]+(:[a-zA-Z0-9]+)?"); private ItemStack maxedBook; + private ItemStack maxedAttBook; private int maxedBookFound = 0; + private int maxedAttBookFound = 0; private List getEnchantColours() { return NotEnoughUpdates.INSTANCE.config.hidden.enchantColours; @@ -227,13 +229,37 @@ public class GuiEnchantColour extends GuiScreen { if (maxedBookFound == 1) { Utils.drawItemStack(maxedBook, guiLeft + xSize + 3, guiTopSidebar - 34); } + if (maxedAttBookFound == 0) { + try { + if (NotEnoughUpdates.INSTANCE.manager.jsonToStack( + NotEnoughUpdates.INSTANCE.manager.getItemInformation().get("MAXED_ATTRIBUTE_SHARD")).hasDisplayName()) { + maxedAttBook = NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager + .getItemInformation() + .get("MAXED_ATTRIBUTE_SHARD")); + maxedAttBookFound = 1; + } else { + maxedAttBookFound = 2; + } - if (mouseX >= guiLeft + xSize + 3 && mouseX < guiLeft + xSize + 19) { + } catch (Exception ignored) { + maxedAttBookFound = 2; + } + } + if (maxedAttBookFound == 1) { + Utils.drawItemStack(maxedAttBook, guiLeft + xSize + 3, guiTopSidebar - 52); + } + + if (mouseX >= guiLeft + xSize + 3 && mouseX < guiLeft + xSize + 39) { if (mouseY >= guiTopSidebar - 34 && mouseY <= guiTopSidebar - 18 && maxedBookFound == 1) { tooltipToDisplay = maxedBook.getTooltip(Minecraft.getMinecraft().thePlayer, false); Utils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr); tooltipToDisplay = null; } + if (mouseY >= guiTopSidebar - 52 && mouseY <= guiTopSidebar - 34 && maxedAttBookFound == 1) { + tooltipToDisplay = maxedAttBook.getTooltip(Minecraft.getMinecraft().thePlayer, false); + Utils.drawHoveringText(tooltipToDisplay, mouseX, mouseY, width, height, -1, fr); + tooltipToDisplay = null; + } if (mouseY >= guiTopSidebar - 18 && mouseY <= guiTopSidebar - 2) { tooltipToDisplay = Lists.newArrayList( EnumChatFormatting.AQUA + "NEUEC Colouring Guide", diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemCustomize.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemCustomize.java index 222a0f88..12d48991 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemCustomize.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemCustomize.java @@ -199,6 +199,7 @@ public class GuiItemCustomize extends GuiScreen { EnumChatFormatting.GREEN + "", EnumChatFormatting.GREEN + "Type \"&&\" to use colour codes", EnumChatFormatting.GREEN + "Type \"**\" for \u272A", + EnumChatFormatting.GREEN + "Type \"*1-9\" for \u278A-\u2792", EnumChatFormatting.GREEN + "", EnumChatFormatting.GREEN + "Available colour codes:", Utils.chromaString("\u00B6z = Chroma"), diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java index d69eca82..03465db7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java @@ -136,7 +136,7 @@ public class DungeonMapConfig { @Expose @ConfigOption( name = "Position", - desc = "The position of the map" + desc = "Change the position of the map" ) public Position dmPosition = new Position(10, 10); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ItemOverlays.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ItemOverlays.java index 2fedf559..9298623b 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ItemOverlays.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ItemOverlays.java @@ -242,7 +242,7 @@ public class ItemOverlays { @Expose @ConfigOption( name = "Bonemerang Overlay Position", - desc = "The position of the Bonemerang overlay." + desc = "Change the position of the Bonemerang overlay." ) @ConfigEditorButton( runnableId = 9, diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/LocationEdit.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/LocationEdit.java index 385a3cc1..462fbd92 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/LocationEdit.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/LocationEdit.java @@ -20,7 +20,7 @@ public class LocationEdit { @Expose @ConfigOption( name = "Edit Pet Info Position", - desc = "The position of the pet info overlay." + desc = "Change the position of the pet info overlay" ) @ConfigEditorButton( runnableId = 4, @@ -37,13 +37,12 @@ public class LocationEdit { runnableId = 5, buttonText = "Edit" ) - @ConfigAccordionId(id = 0) public Position todoPosition = new Position(100, 0); @Expose @ConfigOption( name = "Edit Bonemerang Overlay Position", - desc = "The position of the Bonemerang overlay." + desc = "Change the position of the Bonemerang overlay" ) @ConfigEditorButton( runnableId = 9, @@ -72,7 +71,7 @@ public class LocationEdit { @Expose @ConfigOption( name = "Edit Toolbar Positions", - desc = "Edit the position of the QuickCommands / Search Bar" + desc = "Change the position of the QuickCommands / Search Bar" ) @ConfigAccordionId(id = 1) @ConfigEditorButton(runnableId = 6, buttonText = "Edit") @@ -109,7 +108,7 @@ public class LocationEdit { @Expose @ConfigOption( name = "Edit Crystal Overlay Position", - desc = "Change the position of the Crystal Hollows Overlay." + desc = "Change the position of the Crystal Hollows Overlay" ) @ConfigEditorButton( runnableId = 10, @@ -121,7 +120,7 @@ public class LocationEdit { @Expose @ConfigOption( name = "Edit Fuel Bar Position", - desc = "Set the position of the drill fuel bar" + desc = "Change the position of the drill fuel bar" ) @ConfigEditorButton( runnableId = 2, diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Mining.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Mining.java index 9ff88089..697cabf3 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Mining.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Mining.java @@ -84,7 +84,7 @@ public class Mining { @Expose @ConfigOption( name = "Edit Fuel Bar Position", - desc = "Set the position of the drill fuel bar" + desc = "Change the position of the drill fuel bar" ) @ConfigEditorButton( runnableId = 2, diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/PetOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/PetOverlay.java index 6f96e972..9cba8202 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/PetOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/PetOverlay.java @@ -20,7 +20,7 @@ public class PetOverlay { @Expose @ConfigOption( name = "Edit Pet Info Position", - desc = "The position of the pet info." + desc = "Change the position of the pet info overlay" ) @ConfigEditorButton( runnableId = 4, diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Toolbar.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Toolbar.java index ff1b94c5..741b57e5 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Toolbar.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Toolbar.java @@ -7,7 +7,7 @@ public class Toolbar { @Expose @ConfigOption( name = "Edit Toolbar Positions", - desc = "Edit the position of the QuickCommands / Search Bar" + desc = "Change the position of the QuickCommands / Search Bar" ) @ConfigEditorButton(runnableId = 6, buttonText = "Edit") public boolean positionButton = true; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java index 7281eecf..36b37766 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java @@ -35,6 +35,7 @@ public class AuctionSearchOverlay { private static final ResourceLocation SEARCH_OVERLAY_TEXTURE_TAB_COMPLETED = new ResourceLocation( "notenoughupdates:auc_search/ah_search_overlay_tab_completed.png"); private static final ResourceLocation STAR = new ResourceLocation("notenoughupdates:auc_search/star.png"); + private static final ResourceLocation MASTER_STAR = new ResourceLocation("notenoughupdates:auc_search/master_star.png"); private static final ResourceLocation STAR_BOARD = new ResourceLocation("notenoughupdates:auc_search/star_board.png"); private static final GuiElementTextField textField = new GuiElementTextField("", 200, 20, 0); @@ -114,22 +115,26 @@ public class AuctionSearchOverlay { Utils.drawTexturedRect(width / 2 - 100, topY - 1, 203, h, 0, 203 / 512f, 0, h / 256f, GL11.GL_NEAREST); Minecraft.getMinecraft().getTextureManager().bindTexture(STAR_BOARD); - Utils.drawTexturedRect(width / 2 + 105, topY + 27, 55, 13, GL11.GL_NEAREST); + Utils.drawTexturedRect(width / 2 + 105, topY + 27, 105, 13, GL11.GL_NEAREST); Minecraft.getMinecraft().getTextureManager().bindTexture(STAR); GlStateManager.color(1, 1, 1, 1); - int stars = atLeast && selectedStars > 0 ? 5 : selectedStars; + int stars = atLeast && selectedStars > 0 ? 10 : selectedStars; for (int i = 0; i < stars; i++) { + if (i >= 5) { + Minecraft.getMinecraft().getTextureManager().bindTexture(MASTER_STAR); + GlStateManager.color(1, 1, 1, 1); + } if (i >= selectedStars) { GlStateManager.color(1, 1, 1, 0.3f); } Utils.drawTexturedRect(width / 2 + 108 + 10 * i, topY + 29, 9, 10, GL11.GL_NEAREST); } - Gui.drawRect(width / 2 + 106, topY + 42, width / 2 + 115, topY + 51, 0xffffffff); - Gui.drawRect(width / 2 + 107, topY + 43, width / 2 + 114, topY + 50, 0xff000000); - if (atLeast) Gui.drawRect(width / 2 + 108, topY + 44, width / 2 + 113, topY + 49, 0xffffffff); - Minecraft.getMinecraft().fontRendererObj.drawString("At Least?", width / 2 + 117, topY + 43, 0xffffff); + if (selectedStars < 6) Gui.drawRect(width / 2 + 106, topY + 42, width / 2 + 115, topY + 51, 0xffffffff); + if (selectedStars < 6) Gui.drawRect(width / 2 + 107, topY + 43, width / 2 + 114, topY + 50, 0xff000000); + if (atLeast && selectedStars < 6) Gui.drawRect(width / 2 + 108, topY + 44, width / 2 + 113, topY + 49, 0xffffffff); + if (selectedStars < 6) Minecraft.getMinecraft().fontRendererObj.drawString("At Least?", width / 2 + 117, topY + 43, 0xffffff); Minecraft.getMinecraft().fontRendererObj.drawString("Enter Query:", width / 2 - 100, topY - 10, 0xdddddd, true); @@ -507,10 +512,10 @@ public class AuctionSearchOverlay { topY = height / 2 - h / 2 + 5; } - if (Mouse.getEventButtonState() && mouseX > width / 2 + 105 && mouseX < width / 2 + 105 + 55 && + if (Mouse.getEventButtonState() && mouseX > width / 2 + 105 && mouseX < width / 2 + 105 + 105 && mouseY > topY + 27 && mouseY < topY + 40) { - int starClicked = 5; - for (int i = 1; i <= 5; i++) { + int starClicked = 10; + for (int i = 1; i <= 10; i++) { if (mouseX < width / 2 + 108 + 10 * i) { starClicked = i; break; @@ -584,9 +589,27 @@ public class AuctionSearchOverlay { searchStringExtra = ""; if (essenceCosts != null && essenceCosts.has(str) && selectedStars > 0) { for (int i = 0; i < selectedStars; i++) { + if (i > 4) break; searchStringExtra += "\u272A"; } - if (selectedStars < 5 && !atLeast) { + switch (selectedStars) { + case 6: + searchStringExtra += "\u278A"; + break; + case 7: + searchStringExtra += "\u278B"; + break; + case 8: + searchStringExtra += "\u278C"; + break; + case 9: + searchStringExtra += "\u278D"; + break; + case 10: + searchStringExtra += "\u278E"; + break; + } + if (selectedStars < 6 && !atLeast) { searchStringExtra += " "; searchStringExtra += stack.getItem().getItemStackDisplayName(stack).substring(0, 1); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/TimersOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/TimersOverlay.java index 59a77ea3..d3f17fbf 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/TimersOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/TimersOverlay.java @@ -535,7 +535,7 @@ public class TimersOverlay extends TextOverlay { } long midnightReset = (currentTime - 18000000) / 86400000 * 86400000 + 18000000; // 12am est - long pearlsReset = midnightReset - 14400000 + 86400000; //8pm est + long pearlsReset = midnightReset - 14400000; //8pm est long catacombsReset = currentTime / 86400000 * 86400000; // 7pm est long timeDiffMidnightNow = midnightReset + 86400000 - currentTime; long catacombsDiffNow = catacombsReset + 86400000 - currentTime; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java index 06ba32ad..87712378 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java @@ -5013,7 +5013,7 @@ public class GuiProfileViewer extends GuiScreen { ); if (mouseX > guiLeft + 132 && mouseX < guiLeft + 212) { - if (mouseY > guiTop + 27 + 11f * i && mouseY < guiTop + 37 + 11f * i) { + if (mouseY > guiTop + 21 + 11f * i && mouseY < guiTop + 37 + 11f * i) { List split = splitter.splitToList(statNamePretty); PlayerStats.Stats baseStats = PlayerStats.getBaseStats(); tooltipToDisplay = new ArrayList<>(); diff --git a/src/main/resources/assets/notenoughupdates/auc_search/master_star.png b/src/main/resources/assets/notenoughupdates/auc_search/master_star.png new file mode 100644 index 00000000..210ecf49 Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/auc_search/master_star.png differ diff --git a/src/main/resources/assets/notenoughupdates/auc_search/star_board.png b/src/main/resources/assets/notenoughupdates/auc_search/star_board.png index 8251731f..0a42884d 100644 Binary files a/src/main/resources/assets/notenoughupdates/auc_search/star_board.png and b/src/main/resources/assets/notenoughupdates/auc_search/star_board.png differ -- cgit From ead065aa1303acc3f6834bcfceb77242702b5622 Mon Sep 17 00:00:00 2001 From: Roman / Nea Date: Fri, 6 May 2022 15:36:49 +0200 Subject: Add screensaver cape and make shaders f3+t-able (#125) --- .../notenoughupdates/NotEnoughUpdates.java | 2 + .../notenoughupdates/cosmetics/CapeManager.java | 1 + .../notenoughupdates/cosmetics/NEUCape.java | 59 ++++++++++++++++++++- .../notenoughupdates/cosmetics/ShaderManager.java | 12 ++++- .../assets/notenoughupdates/capes/screensaver.png | Bin 0 -> 31381 bytes .../notenoughupdates/capes/screensaver_preview.png | Bin 0 -> 19453 bytes .../shaders/capes/screensaver/screensaver.frag | 54 +++++++++++++++++++ .../shaders/capes/screensaver/screensaver.vert | 6 +++ 8 files changed, 131 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/assets/notenoughupdates/capes/screensaver.png create mode 100644 src/main/resources/assets/notenoughupdates/capes/screensaver_preview.png create mode 100644 src/main/resources/assets/notenoughupdates/shaders/capes/screensaver/screensaver.frag create mode 100644 src/main/resources/assets/notenoughupdates/shaders/capes/screensaver/screensaver.vert (limited to 'src/main/resources') diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java index 6b2fd09e..6d4e0d02 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java @@ -7,6 +7,7 @@ import com.google.gson.JsonObject; import io.github.moulberry.notenoughupdates.commands.Commands; import io.github.moulberry.notenoughupdates.core.BackgroundBlur; import io.github.moulberry.notenoughupdates.cosmetics.CapeManager; +import io.github.moulberry.notenoughupdates.cosmetics.ShaderManager; import io.github.moulberry.notenoughupdates.dungeons.DungeonMap; import io.github.moulberry.notenoughupdates.listener.ChatListener; import io.github.moulberry.notenoughupdates.listener.ItemTooltipListener; @@ -241,6 +242,7 @@ public class NotEnoughUpdates { IReloadableResourceManager manager = (IReloadableResourceManager) Minecraft.getMinecraft().getResourceManager(); manager.registerReloadListener(CustomSkulls.getInstance()); manager.registerReloadListener(NPCRetexturing.getInstance()); + manager.registerReloadListener(ShaderManager.getInstance()); manager.registerReloadListener(new ItemCustomizeManager.ReloadListener()); manager.registerReloadListener(new CustomBlockSounds.ReloaderListener()); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeManager.java b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeManager.java index 3f7476bd..18e62706 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeManager.java @@ -67,6 +67,7 @@ public class CapeManager { new CapeData("lava", false, false), new CapeData("tunnel", false, false), new CapeData("planets", false, false), + new CapeData("screensaver", false, false), //Admins new CapeData("nullzee", true, false), diff --git a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/NEUCape.java b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/NEUCape.java index da9d1f68..a58587a8 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/NEUCape.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/NEUCape.java @@ -18,13 +18,22 @@ import net.minecraftforge.client.event.RenderPlayerEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; import org.lwjgl.BufferUtils; import org.lwjgl.input.Keyboard; -import org.lwjgl.opengl.*; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL15; +import org.lwjgl.opengl.GL20; +import org.lwjgl.opengl.GL30; +import org.lwjgl.opengl.GL42; +import org.lwjgl.opengl.GL43; import org.lwjgl.util.vector.Vector2f; import org.lwjgl.util.vector.Vector3f; import java.nio.ByteBuffer; import java.nio.FloatBuffer; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Random; +import java.util.TreeMap; public class NEUCape { private int currentFrame = 0; @@ -43,6 +52,10 @@ public class NEUCape { private final Random random = new Random(); private long eventMillis; + private float dvdPositionX = 100; + private float dvdPositionY = 100; + private float dvdVelocityX = -10; + private float dvdVelocityY = 10; private float eventLength; private float eventRandom; @@ -101,6 +114,8 @@ public class NEUCape { shaderName = "tunnel"; } else if (capeName.equalsIgnoreCase("planets")) { shaderName = "planets"; + } else if (capeName.equalsIgnoreCase("screensaver")) { + shaderName = "screensaver"; } else { shaderName = "shiny_cape"; } @@ -322,6 +337,9 @@ public class NEUCape { Minecraft.getMinecraft().displayWidth, Minecraft.getMinecraft().displayHeight )); + } else if (shaderName.equalsIgnoreCase("screensaver")) { + shaderManager.loadData(shaderId, "something", (int) ((System.currentTimeMillis() / 4) % 256)); + shaderManager.loadData(shaderId, "dvdPosition", new Vector2f(dvdPositionX, dvdPositionY)); } } @@ -530,6 +548,19 @@ public class NEUCape { private int crouchTicks = 0; long startTime = 0; + public float deltaYComparedToLine(float x0, float y0, float x1, float y1) { + float m = (y1 - y0) / (x1 - x0); + float b = y0 - m * x0; + float lineAtX = dvdPositionX * m + b; + return dvdPositionY - lineAtX; + } + + public float projectOntoLine(float x0, float y0, float x1, float y1, float x) { + float m = (y1 - y0) / (x1 - x0); + float b = y0 - m * x0; + return x * m + b; + } + private void updateCape(EntityPlayer player) { Vector3f capeTranslation = updateFixedCapeNodes(player); @@ -546,6 +577,30 @@ public class NEUCape { eventMillis = currentTime; eventLength = random.nextFloat() * 3000 + 3000; } + } else if (shaderName.equals("screensaver")) { + dvdPositionX += dvdVelocityX; + dvdPositionY += dvdVelocityY; + float diskSizeX = 162 / 2F, diskSizeY = 78 / 2F; + // Left line + if (deltaYComparedToLine(0, 404, 47, 0) < 0) { + dvdVelocityX = 10; + dvdPositionX = projectOntoLine(404, 0, 0, 47, dvdPositionY); + } + // Bottom line + if (deltaYComparedToLine(0, 404 - diskSizeY, 292, 404 - diskSizeY) > 0) { + dvdVelocityY = -10; + dvdPositionY = 404 - diskSizeY; + } + // Top line + if (deltaYComparedToLine(47, 0, 246, 0) < 0) { + dvdVelocityY = 10; + dvdPositionY = 0; + } + // Right line + if (deltaYComparedToLine(246 - diskSizeX, 0, 293 - diskSizeX, 404) < 0) { + dvdVelocityX = -10; + dvdPositionX = projectOntoLine(0, 246 - diskSizeX, 404, 293 - diskSizeX, dvdPositionY); + } } double playerAngle = getPlayerRenderAngle(player, 0); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/ShaderManager.java b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/ShaderManager.java index 4e934e10..02e8215c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/ShaderManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/ShaderManager.java @@ -1,6 +1,8 @@ package io.github.moulberry.notenoughupdates.cosmetics; import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.IResourceManager; +import net.minecraft.client.resources.IResourceManagerReloadListener; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL20; import org.lwjgl.opengl.GL43; @@ -14,7 +16,7 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.util.HashMap; -public class ShaderManager { +public class ShaderManager implements IResourceManagerReloadListener { private final ResourceLocation shaderLocation = new ResourceLocation("notenoughupdates:shaders"); private final HashMap shaderMap = new HashMap<>(); @@ -24,6 +26,14 @@ public class ShaderManager { return INSTANCE; } + @Override + public void onResourceManagerReload(IResourceManager iResourceManager) { + shaderMap.values().forEach(it -> { + GL20.glDeleteProgram(it.program); + }); + shaderMap.clear(); + } + public static class Shader { public final int program; diff --git a/src/main/resources/assets/notenoughupdates/capes/screensaver.png b/src/main/resources/assets/notenoughupdates/capes/screensaver.png new file mode 100644 index 00000000..c6ce9e8c Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/capes/screensaver.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/screensaver_preview.png b/src/main/resources/assets/notenoughupdates/capes/screensaver_preview.png new file mode 100644 index 00000000..a7d890f8 Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/capes/screensaver_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/shaders/capes/screensaver/screensaver.frag b/src/main/resources/assets/notenoughupdates/shaders/capes/screensaver/screensaver.frag new file mode 100644 index 00000000..8985e717 --- /dev/null +++ b/src/main/resources/assets/notenoughupdates/shaders/capes/screensaver/screensaver.frag @@ -0,0 +1,54 @@ +#version 130 + +uniform sampler2D textureIn; +uniform int something; +uniform vec2 dvdPosition; + +//Algorithm by sam hocevar +vec3 rgb2hsv(vec3 c) { + vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g)); + vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r)); + + float d = q.x - min(q.w, q.y); + float e = 1.0e-10; + return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); +} + +//Algorithm by hughsk +vec3 hsv2rgb(vec3 c) { + vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); + return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); +} +void main() { + vec2 diskUv = vec2(1, 634) / 1024; + vec2 diskSize = vec2(162, 78) / 1024; + float renderScale = 0.5; + vec2 renderSize = diskSize * renderScale; + vec2 positionTopLeft = dvdPosition / 1024; + vec2 positionBottomRight = positionTopLeft + renderSize; + vec4 texture = texture2D(textureIn, gl_TexCoord[0].st); + // vec4 texture = vec4(1.0, 0.0, 1.0, 1.0); + vec2 offset = gl_TexCoord[0].st - positionTopLeft; + + if (0 <= offset.x && offset.x < renderSize.x && 0 <= offset.y && offset.y < renderSize.y) { + vec4 diskTexture = texture2D(textureIn, diskUv + offset / renderScale); + // vec4 diskTexture = vec4(1.0, 0.0, 0.0, 1.0); + if (diskTexture.w > 0.5) { + vec3 hehe = rgb2hsv(diskTexture.xyz); + + float otherHue = float(something) / 255.0; + if (otherHue > 1){ + hehe.x = 1; + } else if (otherHue < 0){ + hehe.x = 0; + } else { + hehe.x = otherHue; + } + + texture = vec4(hsv2rgb(hehe), 1.0); + } + } + gl_FragColor = texture; +} diff --git a/src/main/resources/assets/notenoughupdates/shaders/capes/screensaver/screensaver.vert b/src/main/resources/assets/notenoughupdates/shaders/capes/screensaver/screensaver.vert new file mode 100644 index 00000000..d2bc8e19 --- /dev/null +++ b/src/main/resources/assets/notenoughupdates/shaders/capes/screensaver/screensaver.vert @@ -0,0 +1,6 @@ +#version 120 + +void main() { + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; + gl_TexCoord[0] = gl_MultiTexCoord0; +} -- cgit From 1ca41f88d7729d9279df71cd186ff86f22e7d515 Mon Sep 17 00:00:00 2001 From: Roman / Nea Date: Fri, 6 May 2022 16:13:36 +0200 Subject: Item Shop Recipes (#118) * first draft of item shop PR * add teleporter navigation because i can * fix teleporter navigation because apparently i cant * navigation gui basics * :pushpin: and removed some unused shit and added myself to devtest command * track / untrack + ery texture Co-Authored-By: RayDeeUx <51521765+RayDeeUx@users.noreply.github.com> * consoom the event * fix crash in ItemShopRecipe.java + fetch repository * i am so sorry jani * on second thought, this entire thing was a bit untested * more recipe stuff * make navigation actually good * make pins dissapear if you not a waypoint * npc parsing * save file * different file saving * remove message * Warping... (to deez nuts) * move shit around Co-authored-by: jani270 Co-authored-by: RayDeeUx <51521765+RayDeeUx@users.noreply.github.com> Co-authored-by: Lulonaut --- .../moulberry/notenoughupdates/NEUManager.java | 329 ++++++++--------- .../moulberry/notenoughupdates/NEUOverlay.java | 36 +- .../notenoughupdates/NotEnoughUpdates.java | 5 + .../commands/dev/DevTestCommand.java | 26 +- .../commands/repo/ReloadRepoCommand.java | 9 +- .../commands/repo/RepoModeCommand.java | 17 +- .../core/util/render/RenderUtils.java | 68 ++-- .../events/RepositoryReloadEvent.java | 21 ++ .../notenoughupdates/itemeditor/NEUItemEditor.java | 18 +- .../notenoughupdates/listener/RenderListener.java | 149 +++++++- .../notenoughupdates/miscfeatures/Navigation.java | 398 +++++++++++++++++++++ .../notenoughupdates/miscgui/GuiItemRecipe.java | 44 ++- .../notenoughupdates/miscgui/GuiNavigation.java | 154 ++++++++ .../notenoughupdates/options/NEUConfig.java | 5 + .../options/seperateSections/Misc.java | 35 +- .../profileviewer/GuiProfileViewer.java | 7 +- .../notenoughupdates/recipes/ItemShopRecipe.java | 189 ++++++++++ .../notenoughupdates/recipes/MobLootRecipe.java | 10 +- .../notenoughupdates/recipes/NeuRecipe.java | 17 + .../notenoughupdates/recipes/RecipeType.java | 3 +- .../recipes/VillagerTradeRecipe.java | 2 +- .../moulberry/notenoughupdates/util/Constants.java | 18 +- .../moulberry/notenoughupdates/util/ItemUtils.java | 43 ++- .../moulberry/notenoughupdates/util/JsonUtils.java | 29 +- .../moulberry/notenoughupdates/util/Utils.java | 4 +- .../textures/gui/forge_recipe_tall.png | Bin 9257 -> 2743 bytes .../textures/gui/item_shop_recipe.png | Bin 0 -> 3177 bytes .../notenoughupdates/textures/gui/navigation.png | Bin 0 -> 1028 bytes .../textures/gui/villager_recipe_tall.png | Bin 9218 -> 2709 bytes 29 files changed, 1374 insertions(+), 262 deletions(-) create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/events/RepositoryReloadEvent.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/Navigation.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiNavigation.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/recipes/ItemShopRecipe.java create mode 100644 src/main/resources/assets/notenoughupdates/textures/gui/item_shop_recipe.png create mode 100644 src/main/resources/assets/notenoughupdates/textures/gui/navigation.png (limited to 'src/main/resources') diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java index 6572431b..c283464e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java @@ -1,14 +1,24 @@ package io.github.moulberry.notenoughupdates; -import com.google.gson.*; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonPrimitive; import io.github.moulberry.notenoughupdates.auction.APIManager; +import io.github.moulberry.notenoughupdates.events.RepositoryReloadEvent; import io.github.moulberry.notenoughupdates.miscgui.GuiItemRecipe; import io.github.moulberry.notenoughupdates.miscgui.KatSitterOverlay; import io.github.moulberry.notenoughupdates.recipes.CraftingOverlay; import io.github.moulberry.notenoughupdates.recipes.CraftingRecipe; import io.github.moulberry.notenoughupdates.recipes.Ingredient; import io.github.moulberry.notenoughupdates.recipes.NeuRecipe; -import io.github.moulberry.notenoughupdates.util.*; +import io.github.moulberry.notenoughupdates.util.Constants; +import io.github.moulberry.notenoughupdates.util.HotmInformation; +import io.github.moulberry.notenoughupdates.util.HypixelApi; +import io.github.moulberry.notenoughupdates.util.SBInfo; +import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.settings.KeyBinding; import net.minecraft.init.Blocks; @@ -16,24 +26,49 @@ import net.minecraft.init.Items; import net.minecraft.inventory.ContainerChest; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.*; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.JsonToNBT; +import net.minecraft.nbt.NBTException; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.nbt.NBTTagString; import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.ProgressManager; import org.apache.commons.io.FileUtils; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.Display; import javax.net.ssl.HttpsURLConnection; -import javax.swing.JDialog; -import javax.swing.JOptionPane; -import java.io.*; +import javax.swing.*; +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.Reader; import java.net.URL; import java.net.URLConnection; import java.nio.charset.StandardCharsets; -import java.util.*; +import java.util.ArrayList; +import java.util.Base64; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.NavigableMap; +import java.util.Optional; +import java.util.Set; +import java.util.TreeMap; +import java.util.TreeSet; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; @@ -44,6 +79,7 @@ public class NEUManager { public final APIManager auctionManager; private final TreeMap itemMap = new TreeMap<>(); + private boolean hasBeenLoadedBefore = false; private final TreeMap>> titleWordMap = new TreeMap<>(); private final TreeMap>> loreWordMap = new TreeMap<>(); @@ -73,8 +109,6 @@ public class NEUManager { private final Map itemstackCache = new HashMap<>(); - private final ExecutorService repoLoaderES = Executors.newSingleThreadExecutor(); - private static String GIT_COMMITS_URL; // TODO: private final Map @@ -160,186 +194,102 @@ public class NEUManager { } } - /** - * Called when the game is first loaded. Compares the local repository to the github repository and handles the - * downloading of new/updated files. This then calls the "loadItem" method for every item in the local repository. - */ - public void loadItemInformation() { - /*File repoFile = new File(configLocation, "repo2"); - repoFile.mkdirs(); - - try(Git git = Git.init().setDirectory(repoFile).call()) { - StoredConfig config = git.getRepository().getConfig(); - config.setString("branch", "master", "merge", "refs/heads/master"); - config.setString("branch", "master", "remote", "origin"); - config.setString("remote", "origin", "fetch", "+refs/heads/*:refs/remotes/origin/*"); - config.setString("remote", "origin", "url", "https://github.com/Moulberry/NotEnoughUpdates-REPO.git"); - config.save(); - - git.remoteAdd().setName("origin").setUri(new URIish("https://github.com/Moulberry/NotEnoughUpdates-REPO.git")).call(); - PullResult result = git.pull().setRemote("origin").setTimeout(30000).call(); - System.out.println("successful pull: " + result.isSuccessful()); - } catch(Exception e) { - e.printStackTrace(); - }*/ - - /*if(repoFile.mkdirs()) { - try { - Git.cloneRepository() - .setURI("https://github.com/Moulberry/NotEnoughUpdates-REPO.git") - .setDirectory(repoFile) - .call(); - } catch(Exception e) { - e.printStackTrace(); - } - } else { - - }*/ - - repoLoaderES.submit(() -> { + public CompletableFuture fetchRepository() { + return CompletableFuture.supplyAsync(() -> { JDialog dialog = null; try { - if (NotEnoughUpdates.INSTANCE.config.hidden.autoupdate) { - JOptionPane pane = new JOptionPane("Getting items to download from remote repository."); - dialog = pane.createDialog("NotEnoughUpdates Remote Sync"); - dialog.setModal(false); - if (NotEnoughUpdates.INSTANCE.config.hidden.dev) dialog.setVisible(true); - - if (Display.isActive()) dialog.toFront(); - - JsonObject currentCommitJSON = getJsonFromFile(new File(configLocation, "currentCommit.json")); - - latestRepoCommit = null; - try (Reader inReader = new InputStreamReader(new URL(GIT_COMMITS_URL).openStream())) { - JsonObject commits = gson.fromJson(inReader, JsonObject.class); - latestRepoCommit = commits.get("sha").getAsString(); - } catch (Exception e) { - e.printStackTrace(); - } - if (latestRepoCommit == null || latestRepoCommit.isEmpty()) return; + JOptionPane pane = new JOptionPane("Getting items to download from remote repository."); + dialog = pane.createDialog("NotEnoughUpdates Remote Sync"); + dialog.setModal(false); + if (NotEnoughUpdates.INSTANCE.config.hidden.dev) dialog.setVisible(true); - if (new File(configLocation, "repo").exists() && new File(configLocation, "repo/items").exists()) { - if (currentCommitJSON != null && currentCommitJSON.get("sha").getAsString().equals(latestRepoCommit)) { - dialog.setVisible(false); - return; - } + if (Display.isActive()) dialog.toFront(); + + JsonObject currentCommitJSON = getJsonFromFile(new File(configLocation, "currentCommit.json")); + + latestRepoCommit = null; + try (Reader inReader = new InputStreamReader(new URL(GIT_COMMITS_URL).openStream())) { + JsonObject commits = gson.fromJson(inReader, JsonObject.class); + latestRepoCommit = commits.get("sha").getAsString(); + } catch (Exception e) { + e.printStackTrace(); + } + if (latestRepoCommit == null || latestRepoCommit.isEmpty()) return false; + + if (new File(configLocation, "repo").exists() && new File(configLocation, "repo/items").exists()) { + if (currentCommitJSON != null && currentCommitJSON.get("sha").getAsString().equals(latestRepoCommit)) { + return false; } + } - if (Display.isActive()) dialog.toFront(); + if (Display.isActive()) dialog.toFront(); - Utils.recursiveDelete(repoLocation); - repoLocation.mkdirs(); + Utils.recursiveDelete(repoLocation); + repoLocation.mkdirs(); - String dlUrl = neu.config.hidden.repoURL; + String dlUrl = neu.config.hidden.repoURL; - pane.setMessage("Downloading NEU Master Archive. (DL# >20)"); - dialog.pack(); - if (NotEnoughUpdates.INSTANCE.config.hidden.dev) dialog.setVisible(true); - if (Display.isActive()) dialog.toFront(); + pane.setMessage("Downloading NEU Master Archive. (DL# >20)"); + dialog.pack(); + if (NotEnoughUpdates.INSTANCE.config.hidden.dev) dialog.setVisible(true); + if (Display.isActive()) dialog.toFront(); - File itemsZip = new File(repoLocation, "neu-items-master.zip"); - try { - itemsZip.createNewFile(); - } catch (IOException e) { - return; - } + File itemsZip = new File(repoLocation, "neu-items-master.zip"); + try { + itemsZip.createNewFile(); + } catch (IOException e) { + return false; + } - URL url = new URL(dlUrl); - URLConnection urlConnection = url.openConnection(); - urlConnection.setConnectTimeout(15000); - urlConnection.setReadTimeout(30000); - - try (InputStream is = urlConnection.getInputStream()) { - FileUtils.copyInputStreamToFile(is, itemsZip); - } catch (IOException e) { - dialog.dispose(); - e.printStackTrace(); - System.err.println("Failed to download NEU Repo! Please report this issue to the mod creator"); - return; - } - /*try ( - BufferedInputStream inStream = new BufferedInputStream(urlConnection.getInputStream()); - FileOutputStream fileOutputStream = new FileOutputStream(itemsZip) - ) { - byte dataBuffer[] = new byte[1024]; - int bytesRead; - while ((bytesRead = inStream.read(dataBuffer, 0, 1024)) != -1) { - fileOutputStream.write(dataBuffer, 0, bytesRead); - } - } catch (IOException e) { - dialog.dispose(); - return; - }*/ - - pane.setMessage("Unzipping NEU Master Archive."); - dialog.pack(); - //dialog.setVisible(true); - if (Display.isActive()) dialog.toFront(); - - unzipIgnoreFirstFolder(itemsZip.getAbsolutePath(), repoLocation.getAbsolutePath()); - - if (currentCommitJSON == null || !currentCommitJSON.get("sha").getAsString().equals(latestRepoCommit)) { - JsonObject newCurrentCommitJSON = new JsonObject(); - newCurrentCommitJSON.addProperty("sha", latestRepoCommit); - try { - writeJson(newCurrentCommitJSON, new File(configLocation, "currentCommit.json")); - } catch (IOException ignored) { - } - } + URL url = new URL(dlUrl); + URLConnection urlConnection = url.openConnection(); + urlConnection.setConnectTimeout(15000); + urlConnection.setReadTimeout(30000); + + try (InputStream is = urlConnection.getInputStream()) { + FileUtils.copyInputStreamToFile(is, itemsZip); + } catch (IOException e) { + dialog.dispose(); + e.printStackTrace(); + System.err.println("Failed to download NEU Repo! Please report this issue to the mod creator"); + return false; } - } catch (Exception e) { - e.printStackTrace(); - } finally { - if (dialog != null) dialog.dispose(); - } - File items = new File(repoLocation, "items"); - if (items.exists()) { - File[] itemFiles = new File(repoLocation, "items").listFiles(); - if (itemFiles != null) { - ProgressManager.ProgressBar bar = ProgressManager.push("Loading recipes", itemFiles.length); - for (File f : itemFiles) { - String internalname = f.getName().substring(0, f.getName().length() - 5); - bar.step(internalname); - synchronized (itemMap) { - if (!itemMap.containsKey(internalname)) { - loadItem(internalname); - } - } + pane.setMessage("Unzipping NEU Master Archive."); + dialog.pack(); + //dialog.setVisible(true); + if (Display.isActive()) dialog.toFront(); + + unzipIgnoreFirstFolder(itemsZip.getAbsolutePath(), repoLocation.getAbsolutePath()); + + if (currentCommitJSON == null || !currentCommitJSON.get("sha").getAsString().equals(latestRepoCommit)) { + JsonObject newCurrentCommitJSON = new JsonObject(); + newCurrentCommitJSON.addProperty("sha", latestRepoCommit); + try { + writeJson(newCurrentCommitJSON, new File(configLocation, "currentCommit.json")); + } catch (IOException ignored) { } - ProgressManager.pop(bar); } - } - - try { - Constants.reload(); } catch (Exception e) { e.printStackTrace(); + } finally { + if (dialog != null) dialog.dispose(); } + return true; }); + } - File items = new File(repoLocation, "items"); - if (items.exists()) { - File[] itemFiles = new File(repoLocation, "items").listFiles(); - if (itemFiles != null) { - ProgressManager.ProgressBar bar = ProgressManager.push("Loading items", itemFiles.length); - for (File f : itemFiles) { - String internalname = f.getName().substring(0, f.getName().length() - 5); - bar.step(internalname); - synchronized (itemMap) { - if (!itemMap.containsKey(internalname)) { - loadItem(internalname); - } - } - } - ProgressManager.pop(bar); - } - } - - try { - Constants.reload(); - } catch (Exception e) { - e.printStackTrace(); + /** + * Called when the game is first loaded. Compares the local repository to the github repository and handles the + * downloading of new/updated files. This then calls the "loadItem" method for every item in the local repository. + */ + public void loadItemInformation() { + if (NotEnoughUpdates.INSTANCE.config.hidden.autoupdate) { + fetchRepository().thenAccept(i -> { + reloadRepository(); + }); + } else { + reloadRepository(); } } @@ -436,6 +386,10 @@ public class NEUManager { for (Ingredient input : recipe.getIngredients()) { usagesMap.computeIfAbsent(input.getInternalItemId(), ignored -> new HashSet<>()).add(recipe); } + for (Ingredient catalystItem : recipe.getCatalystItems()) { + recipesMap.computeIfAbsent(catalystItem.getInternalItemId(), ignored -> new HashSet<>()).add(recipe); + usagesMap.computeIfAbsent(catalystItem.getInternalItemId(), ignored -> new HashSet<>()).add(recipe); + } } public Set getRecipesFor(String internalName) { @@ -1555,20 +1509,25 @@ public class NEUManager { } public void reloadRepository() { - File items = new File(repoLocation, "items"); - if (items.exists()) { - recipes.clear(); - recipesMap.clear(); - usagesMap.clear(); - - File[] itemFiles = new File(repoLocation, "items").listFiles(); - if (itemFiles != null) { - for (File f : itemFiles) { - String internalname = f.getName().substring(0, f.getName().length() - 5); - loadItem(internalname); + Minecraft.getMinecraft().addScheduledTask(() -> { + File items = new File(repoLocation, "items"); + if (items.exists()) { + recipes.clear(); + recipesMap.clear(); + usagesMap.clear(); + + File[] itemFiles = new File(repoLocation, "items").listFiles(); + if (itemFiles != null) { + for (File f : itemFiles) { + String internalname = f.getName().substring(0, f.getName().length() - 5); + loadItem(internalname); + } } } - } + + new RepositoryReloadEvent(repoLocation, !hasBeenLoadedBefore).post(); + hasBeenLoadedBefore = true; + }); } public ItemStack createItem(String internalname) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java index d3efc06a..99dce3bb 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java @@ -87,6 +87,36 @@ import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.ascending_overlay; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.close; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.descending_overlay; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.help; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.itemPaneTabArrow; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.item_haschild; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.item_mask; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.order_alphabetical; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.order_alphabetical_active; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.order_rarity; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.order_rarity_active; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.order_value; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.order_value_active; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.quickcommand_background; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.rightarrow; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.rightarrow_overlay; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.settings; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_accessory; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_accessory_active; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_all; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_all_active; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_armor; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_armor_active; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_mob; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_mob_active; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_pet; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_pet_active; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_tool; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.sort_tool_active; + public class NEUOverlay extends Gui { private static final ResourceLocation SUPERGEHEIMNISVERMOGEN = new ResourceLocation( "notenoughupdates:supersecretassets/bald.png"); @@ -137,7 +167,7 @@ public class NEUOverlay extends Gui { private final NEUManager manager; - private final String mobRegex = ".*?((_MONSTER)|(_ANIMAL)|(_MINIBOSS)|(_BOSS)|(_SC))$"; + private final String mobRegex = ".*?((_MONSTER)|(_NPC)|(_ANIMAL)|(_MINIBOSS)|(_BOSS)|(_SC))$"; private final String petRegex = ".*?;[0-5]$"; private final ResourceLocation[] sortIcons = new ResourceLocation[]{ @@ -211,7 +241,7 @@ public class NEUOverlay extends Gui { private boolean redrawItems = false; private boolean searchBarHasFocus = false; - private final GuiTextField textField = new GuiTextField(0, null, 0, 0, 0, 0); + private static final GuiTextField textField = new GuiTextField(0, null, 0, 0, 0, 0); private static final int COMPARE_MODE_ALPHABETICAL = 0; private static final int COMPARE_MODE_RARITY = 1; @@ -977,7 +1007,7 @@ public class NEUOverlay extends Gui { return paddingUnscaled; } - public GuiTextField getTextField() { + public static GuiTextField getTextField() { return textField; } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java index 6d4e0d02..d08968c3 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java @@ -26,6 +26,7 @@ import io.github.moulberry.notenoughupdates.miscfeatures.ItemCooldowns; import io.github.moulberry.notenoughupdates.miscfeatures.ItemCustomizeManager; import io.github.moulberry.notenoughupdates.miscfeatures.MiningStuff; import io.github.moulberry.notenoughupdates.miscfeatures.NPCRetexturing; +import io.github.moulberry.notenoughupdates.miscfeatures.Navigation; import io.github.moulberry.notenoughupdates.miscfeatures.NullzeeSphere; import io.github.moulberry.notenoughupdates.miscfeatures.PetInfoOverlay; import io.github.moulberry.notenoughupdates.miscfeatures.SlotLocking; @@ -42,6 +43,7 @@ import io.github.moulberry.notenoughupdates.overlays.FuelBar; import io.github.moulberry.notenoughupdates.overlays.OverlayManager; import io.github.moulberry.notenoughupdates.profileviewer.ProfileViewer; import io.github.moulberry.notenoughupdates.recipes.RecipeGenerator; +import io.github.moulberry.notenoughupdates.util.Constants; import io.github.moulberry.notenoughupdates.util.SBInfo; import io.github.moulberry.notenoughupdates.util.Utils; import io.github.moulberry.notenoughupdates.util.XPInformation; @@ -139,6 +141,7 @@ public class NotEnoughUpdates { public NEUManager manager; public NEUOverlay overlay; public NEUConfig config; + public Navigation navigation = new Navigation(this); public GuiScreen openGui = null; public long lastOpenedGui = 0; public Commands commands; @@ -215,6 +218,7 @@ public class NotEnoughUpdates { MinecraftForge.EVENT_BUS.register(new CalendarOverlay()); MinecraftForge.EVENT_BUS.register(SBInfo.getInstance()); MinecraftForge.EVENT_BUS.register(CustomItemEffects.INSTANCE); + MinecraftForge.EVENT_BUS.register(new Constants()); MinecraftForge.EVENT_BUS.register(new DungeonMap()); MinecraftForge.EVENT_BUS.register(new SunTzu()); MinecraftForge.EVENT_BUS.register(new MiningStuff()); @@ -237,6 +241,7 @@ public class NotEnoughUpdates { MinecraftForge.EVENT_BUS.register(new ItemTooltipListener(this)); MinecraftForge.EVENT_BUS.register(new RenderListener(this)); MinecraftForge.EVENT_BUS.register(new OldAnimationChecker()); + MinecraftForge.EVENT_BUS.register(navigation); if (Minecraft.getMinecraft().getResourceManager() instanceof IReloadableResourceManager) { IReloadableResourceManager manager = (IReloadableResourceManager) Minecraft.getMinecraft().getResourceManager(); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java index 27944c92..478f4db7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java @@ -1,4 +1,4 @@ - package io.github.moulberry.notenoughupdates.commands.dev; +package io.github.moulberry.notenoughupdates.commands.dev; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.commands.ClientCommandBase; @@ -10,6 +10,7 @@ import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.Specia import io.github.moulberry.notenoughupdates.miscgui.GuiPriceGraph; import io.github.moulberry.notenoughupdates.util.SBInfo; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; import net.minecraft.command.CommandException; import net.minecraft.command.ICommandSender; import net.minecraft.util.BlockPos; @@ -24,7 +25,18 @@ import java.util.List; public class DevTestCommand extends ClientCommandBase { private static final List DEV_TESTERS = - Arrays.asList("moulberry", "lucycoconut", "ironm00n", "ariyio", "throwpo", "lrg89", "dediamondpro", "lulonaut", "craftyoldminer"); + Arrays.asList( + "moulberry", + "lucycoconut", + "ironm00n", + "ariyio", + "throwpo", + "lrg89", + "dediamondpro", + "lulonaut", + "craftyoldminer", + "eisengolem" + ); private static final String[] DEV_FAIL_STRINGS = { "No.", @@ -132,6 +144,16 @@ public class DevTestCommand extends ClientCommandBase { "I would never search")); return; } + if (args.length == 2 && args[0].equalsIgnoreCase("openGui")) { + try { + NotEnoughUpdates.INSTANCE.openGui = (GuiScreen) Class.forName(args[1]).newInstance(); + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText( + "Opening gui: " + NotEnoughUpdates.INSTANCE.openGui)); + } catch (InstantiationException | IllegalAccessException | ClassNotFoundException | ClassCastException e) { + e.printStackTrace(); + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("Failed to open this gui.")); + } + } if (args.length == 1 && args[0].equalsIgnoreCase("center")) { double x = Math.floor(Minecraft.getMinecraft().thePlayer.posX) + 0.5f; double z = Math.floor(Minecraft.getMinecraft().thePlayer.posZ) + 0.5f; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/repo/ReloadRepoCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/repo/ReloadRepoCommand.java index e363b59f..c4ef8c2c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/repo/ReloadRepoCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/repo/ReloadRepoCommand.java @@ -3,7 +3,6 @@ package io.github.moulberry.notenoughupdates.commands.repo; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.commands.ClientCommandBase; import io.github.moulberry.notenoughupdates.options.NEUConfig; -import io.github.moulberry.notenoughupdates.util.Constants; import net.minecraft.command.CommandException; import net.minecraft.command.ICommandSender; @@ -20,9 +19,11 @@ public class ReloadRepoCommand extends ClientCommandBase { @Override public void processCommand(ICommandSender sender, String[] args) throws CommandException { - NotEnoughUpdates.INSTANCE.manager.reloadRepository(); - Constants.reload(); - + if (args.length > 1 && args[0].equals("fetch")) { + NotEnoughUpdates.INSTANCE.manager.fetchRepository(); + } else { + NotEnoughUpdates.INSTANCE.manager.reloadRepository(); + } NotEnoughUpdates.INSTANCE.newConfigFile(); if (NotEnoughUpdates.INSTANCE.getConfigFile().exists()) { try ( diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/repo/RepoModeCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/repo/RepoModeCommand.java index a8f53460..46156a47 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/repo/RepoModeCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/repo/RepoModeCommand.java @@ -5,7 +5,9 @@ import io.github.moulberry.notenoughupdates.commands.ClientCommandBase; import net.minecraft.client.Minecraft; import net.minecraft.command.CommandException; import net.minecraft.command.ICommandSender; +import net.minecraft.event.ClickEvent; import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatStyle; public class RepoModeCommand extends ClientCommandBase { @@ -33,10 +35,17 @@ public class RepoModeCommand extends ClientCommandBase { githubBranch = args[3]; } } - NotEnoughUpdates.INSTANCE.config.hidden.repoURL = "https://github.com/" + githubUser + "/" + githubRepo + "/archive/" + githubBranch + ".zip"; - NotEnoughUpdates.INSTANCE.config.hidden.repoCommitsURL = "https://api.github.com/repos/" + githubUser + "/" + githubRepo + "/commits/" + githubBranch; - Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("\u00a75Set NEU repo URL to " + NotEnoughUpdates.INSTANCE.config.hidden.repoURL + - "\n\u00a75Set NEU repo commits URL to " + NotEnoughUpdates.INSTANCE.config.hidden.repoCommitsURL)); + NotEnoughUpdates.INSTANCE.config.hidden.repoURL = + "https://github.com/" + githubUser + "/" + githubRepo + "/archive/" + githubBranch + ".zip"; + NotEnoughUpdates.INSTANCE.config.hidden.repoCommitsURL = + "https://api.github.com/repos/" + githubUser + "/" + githubRepo + "/commits/" + githubBranch; + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText( + "\u00a75Set NEU repo URL to " + NotEnoughUpdates.INSTANCE.config.hidden.repoURL + + "\n\u00a75Set NEU repo commits URL to " + NotEnoughUpdates.INSTANCE.config.hidden.repoCommitsURL)); + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("\u00a75Run <") + .appendSibling(new ChatComponentText("/neureloadrepo fetch").setChatStyle(new ChatStyle().setChatClickEvent(new ClickEvent( + ClickEvent.Action.SUGGEST_COMMAND, "/neureloadrepo fetch")))) + .appendSibling(new ChatComponentText("\u00a75> to redownload your repo."))); } else { Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("\u00a7cUsage:" + diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/util/render/RenderUtils.java b/src/main/java/io/github/moulberry/notenoughupdates/core/util/render/RenderUtils.java index d7fd7907..96e9729f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/util/render/RenderUtils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/util/render/RenderUtils.java @@ -13,11 +13,20 @@ import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.entity.Entity; -import net.minecraft.util.*; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3i; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL14; import org.lwjgl.util.vector.Vector3f; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + public class RenderUtils { public static void drawFloatingRectDark(int x, int y, int width, int height) { drawFloatingRectDark(x, y, width, height, true); @@ -345,11 +354,19 @@ public class RenderUtils { } } - public static void renderWayPoint(String str, BlockPos loc, float partialTicks) { + public static void renderWayPoint(String str, Vec3i loc, float partialTicks) { + renderWayPoint(str, new Vector3f(loc.getX(), loc.getY(), loc.getZ()), partialTicks); + } + + public static void renderWayPoint(List str, Vec3i loc, float partialTicks) { renderWayPoint(str, new Vector3f(loc.getX(), loc.getY(), loc.getZ()), partialTicks); } public static void renderWayPoint(String str, Vector3f loc, float partialTicks) { + renderWayPoint(Arrays.asList(str), loc, partialTicks); + } + + public static void renderWayPoint(List lines, Vector3f loc, float partialTicks) { GlStateManager.alphaFunc(516, 0.1F); GlStateManager.pushMatrix(); @@ -373,15 +390,9 @@ public class RenderUtils { GlStateManager.translate(x, y, z); GlStateManager.translate(0, viewer.getEyeHeight(), 0); - renderNametag(str); - - GlStateManager.rotate(-Minecraft.getMinecraft().getRenderManager().playerViewY, 0.0F, 1.0F, 0.0F); - GlStateManager.rotate(Minecraft.getMinecraft().getRenderManager().playerViewX, 1.0F, 0.0F, 0.0F); - GlStateManager.translate(0, -0.25f, 0); - GlStateManager.rotate(-Minecraft.getMinecraft().getRenderManager().playerViewX, 1.0F, 0.0F, 0.0F); - GlStateManager.rotate(Minecraft.getMinecraft().getRenderManager().playerViewY, 0.0F, 1.0F, 0.0F); - - renderNametag(EnumChatFormatting.YELLOW.toString() + Math.round(dist) + "m"); + lines = new ArrayList<>(lines); + lines.add(EnumChatFormatting.YELLOW.toString() + Math.round(dist) + "m"); + renderNametag(lines); GlStateManager.popMatrix(); @@ -389,6 +400,10 @@ public class RenderUtils { } public static void renderNametag(String str) { + renderNametag(Arrays.asList(str)); + } + + public static void renderNametag(List lines) { FontRenderer fontrenderer = Minecraft.getMinecraft().fontRendererObj; float f = 1.6F; float f1 = 0.016666668F * f; @@ -406,20 +421,23 @@ public class RenderUtils { WorldRenderer worldrenderer = tessellator.getWorldRenderer(); int i = 0; - int j = fontrenderer.getStringWidth(str) / 2; - GlStateManager.disableTexture2D(); - worldrenderer.begin(7, DefaultVertexFormats.POSITION_COLOR); - worldrenderer.pos(-j - 1, -1 + i, 0.0D).color(0.0F, 0.0F, 0.0F, 0.25F).endVertex(); - worldrenderer.pos(-j - 1, 8 + i, 0.0D).color(0.0F, 0.0F, 0.0F, 0.25F).endVertex(); - worldrenderer.pos(j + 1, 8 + i, 0.0D).color(0.0F, 0.0F, 0.0F, 0.25F).endVertex(); - worldrenderer.pos(j + 1, -1 + i, 0.0D).color(0.0F, 0.0F, 0.0F, 0.25F).endVertex(); - tessellator.draw(); - GlStateManager.enableTexture2D(); - fontrenderer.drawString(str, -fontrenderer.getStringWidth(str) / 2, i, 553648127); - GlStateManager.depthMask(true); - - fontrenderer.drawString(str, -fontrenderer.getStringWidth(str) / 2, i, -1); - + for (String str : lines) { + int j = fontrenderer.getStringWidth(str) / 2; + + GlStateManager.disableTexture2D(); + worldrenderer.begin(7, DefaultVertexFormats.POSITION_COLOR); + worldrenderer.pos(-j - 1, -1 + i, 0.0D).color(0.0F, 0.0F, 0.0F, 0.25F).endVertex(); + worldrenderer.pos(-j - 1, 8 + i, 0.0D).color(0.0F, 0.0F, 0.0F, 0.25F).endVertex(); + worldrenderer.pos(j + 1, 8 + i, 0.0D).color(0.0F, 0.0F, 0.0F, 0.25F).endVertex(); + worldrenderer.pos(j + 1, -1 + i, 0.0D).color(0.0F, 0.0F, 0.0F, 0.25F).endVertex(); + tessellator.draw(); + GlStateManager.enableTexture2D(); + fontrenderer.drawString(str, -fontrenderer.getStringWidth(str) / 2, i, 553648127); + GlStateManager.depthMask(true); + + fontrenderer.drawString(str, -fontrenderer.getStringWidth(str) / 2, i, -1); + GlStateManager.translate(0, 10f, 0); + } GlStateManager.enableDepth(); GlStateManager.enableBlend(); GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/events/RepositoryReloadEvent.java b/src/main/java/io/github/moulberry/notenoughupdates/events/RepositoryReloadEvent.java new file mode 100644 index 00000000..b0ffc3e7 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/events/RepositoryReloadEvent.java @@ -0,0 +1,21 @@ +package io.github.moulberry.notenoughupdates.events; + +import java.io.File; + +public class RepositoryReloadEvent extends NEUEvent { + private final File baseFile; + private boolean isFirstLoad; + + public RepositoryReloadEvent(File baseFile, boolean isFirstLoad) { + this.baseFile = baseFile; + this.isFirstLoad = isFirstLoad; + } + + public boolean isFirstLoad() { + return isFirstLoad; + } + + public File getRepositoryRoot() { + return baseFile; + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/NEUItemEditor.java b/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/NEUItemEditor.java index 0392c32f..9f256d65 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/NEUItemEditor.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/NEUItemEditor.java @@ -14,7 +14,11 @@ import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.*; +import net.minecraft.nbt.JsonToNBT; +import net.minecraft.nbt.NBTException; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.nbt.NBTTagString; import net.minecraft.util.ResourceLocation; import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; @@ -27,7 +31,11 @@ import java.util.Arrays; import java.util.List; import java.util.function.Supplier; -import static io.github.moulberry.notenoughupdates.itemeditor.GuiElementTextField.*; +import static io.github.moulberry.notenoughupdates.itemeditor.GuiElementTextField.COLOUR; +import static io.github.moulberry.notenoughupdates.itemeditor.GuiElementTextField.FORCE_CAPS; +import static io.github.moulberry.notenoughupdates.itemeditor.GuiElementTextField.MULTILINE; +import static io.github.moulberry.notenoughupdates.itemeditor.GuiElementTextField.NO_SPACE; +import static io.github.moulberry.notenoughupdates.itemeditor.GuiElementTextField.NUM_ONLY; public class NEUItemEditor extends GuiScreen { private final NEUManager manager; @@ -52,6 +60,7 @@ public class NEUItemEditor extends GuiScreen { private final Supplier clickcommand; private final Supplier damage; private NBTTagCompound nbttag; + private boolean hasChanges = false; public NEUItemEditor(NEUManager manager, String internalname, JsonObject item) { this.manager = manager; @@ -295,6 +304,11 @@ public class NEUItemEditor extends GuiScreen { @Override protected void keyTyped(char typedChar, int keyCode) { + if (keyCode == Keyboard.KEY_ESCAPE && !hasChanges) { + Minecraft.getMinecraft().displayGuiScreen(null); + return; + } + for (GuiElement gui : options) { gui.keyTyped(typedChar, keyCode); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java index 54154955..6df2dd9a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java @@ -33,6 +33,7 @@ import io.github.moulberry.notenoughupdates.overlays.TextOverlay; import io.github.moulberry.notenoughupdates.profileviewer.GuiProfileViewer; import io.github.moulberry.notenoughupdates.util.NotificationHandler; import io.github.moulberry.notenoughupdates.util.RequestFocusListener; +import io.github.moulberry.notenoughupdates.util.SBInfo; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; @@ -55,6 +56,7 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StringUtils; import net.minecraftforge.client.ClientCommandHandler; import net.minecraftforge.client.event.GuiOpenEvent; import net.minecraftforge.client.event.GuiScreenEvent; @@ -74,16 +76,17 @@ import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; -import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.text.NumberFormat; import java.util.ConcurrentModificationException; import java.util.HashMap; import java.util.Locale; import java.util.Map; +import java.util.TreeMap; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -107,6 +110,10 @@ public class RenderListener { private long buttonHoveredMillis = 0; private int inventoryLoadedTicks = 0; private String loadedInvName = ""; + //NPC parsing + private String correctingItem; + private boolean typing; + private HashMap cachedDefinitions; public RenderListener(NotEnoughUpdates neu) { this.neu = neu; @@ -1011,6 +1018,9 @@ public class RenderListener { */ @SubscribeEvent public void onGuiScreenKeyboard(GuiScreenEvent.KeyboardInputEvent.Pre event) { + if (typing) { + event.setCanceled(true); + } if (Keyboard.isKeyDown(Keyboard.KEY_B) && NotEnoughUpdates.INSTANCE.config.hidden.dev) { if (Minecraft.getMinecraft().currentScreen instanceof GuiChest) { GuiChest eventGui = (GuiChest) Minecraft.getMinecraft().currentScreen; @@ -1094,7 +1104,7 @@ public class RenderListener { try { try ( BufferedWriter writer = new BufferedWriter(new OutputStreamWriter( - new FileOutputStream(file), + Files.newOutputStream(file.toPath()), StandardCharsets.UTF_8 )) ) { @@ -1112,6 +1122,141 @@ public class RenderListener { EnumChatFormatting.RED + "Error while parsing inventory. Try again or check logs for details.")); } } + } else if (Keyboard.isKeyDown(Keyboard.KEY_RETURN) && NotEnoughUpdates.INSTANCE.config.hidden.dev) { + Minecraft mc = Minecraft.getMinecraft(); + + if (typing) { + typing = false; + cachedDefinitions.put(correctingItem, NEUOverlay.getTextField().getText()); + NEUOverlay.getTextField().setText(""); + } + + if (Minecraft.getMinecraft().currentScreen instanceof GuiChest) { + GuiChest eventGui = (GuiChest) Minecraft.getMinecraft().currentScreen; + ContainerChest cc = (ContainerChest) eventGui.inventorySlots; + IInventory lower = cc.getLowerChestInventory(); + + try { + JsonObject newNPC = new JsonObject(); + String displayname = lower.getDisplayName().getUnformattedText(); + File file = new File( + Minecraft.getMinecraft().mcDataDir.getAbsolutePath(), + "config" + File.separator + "notenoughupdates" + + File.separator + "repo" + File.separator + "npc" + File.separator + + displayname.toUpperCase().replace(" ", "_") + ".json" + ); + newNPC.add("itemid", new JsonPrimitive("minecraft:skull")); + newNPC.add("displayname", new JsonPrimitive("§9" + displayname + " (NPC)")); + newNPC.add("nbttag", new JsonPrimitive("TODO")); + newNPC.add("damage", new JsonPrimitive(3)); + + JsonArray newArray = new JsonArray(); + newArray.add(new JsonPrimitive("")); + newNPC.add("lore", newArray); + newNPC.add("internalname", new JsonPrimitive(displayname.toUpperCase().replace(" ", "_") + "_NPC")); + newNPC.add("clickcommand", new JsonPrimitive("viewrecipe")); + newNPC.add("modver", new JsonPrimitive(NotEnoughUpdates.VERSION)); + newNPC.add("infoType", new JsonPrimitive("WIKI_URL")); + JsonArray emptyInfoArray = new JsonArray(); + emptyInfoArray.add(new JsonPrimitive("TODO")); + newNPC.add("info", emptyInfoArray); + newNPC.add("x", new JsonPrimitive((int) mc.thePlayer.posX)); + newNPC.add("y", new JsonPrimitive((int) mc.thePlayer.posY + 2)); + newNPC.add("z", new JsonPrimitive((int) mc.thePlayer.posZ)); + newNPC.add("island", new JsonPrimitive(SBInfo.getInstance().getLocation())); + + JsonArray recipesArray = new JsonArray(); + + TreeMap itemInformation = NotEnoughUpdates.INSTANCE.manager.getItemInformation(); + for (int i = 0; i < 45; i++) { + ItemStack stack = lower.getStackInSlot(i); + if (stack == null) continue; + if (stack.getDisplayName().isEmpty() || stack.getDisplayName().equals(" ")) continue; + + String internalname = NotEnoughUpdates.INSTANCE.manager.getInternalnameFromNBT(stack.getTagCompound()); + if (internalname == null) continue; + JsonObject currentRecipe = new JsonObject(); + currentRecipe.add("type", new JsonPrimitive("npc_shop")); + JsonArray costArray = new JsonArray(); + boolean inCost = false; + for (String s : NotEnoughUpdates.INSTANCE.manager.getLoreFromNBT(stack.getTagCompound())) { + if (s.equals("§7Cost")) { + inCost = true; + continue; + } else if (s.equals("§eClick to trade!")) { + inCost = false; + } + if (!inCost) continue; + String entry = StringUtils.stripControlCodes(s); + if (entry.isEmpty()) continue; + int coinIndex = entry.indexOf(" Coins"); + if (coinIndex != -1) { + String amountString = entry.substring(0, coinIndex).replace(",", ""); + costArray.add(new JsonPrimitive("SKYBLOCK_COIN:" + amountString)); + } else { + if (cachedDefinitions == null) { + cachedDefinitions = new HashMap<>(); + } + + String item; + int amountIndex = entry.lastIndexOf(" x"); + String amountString; + if (amountIndex == -1) { + amountString = "1"; + item = entry.replace(" ", "_").toUpperCase(); + } else { + amountString = entry.substring(amountIndex); + item = entry.substring(0, amountIndex).replace(" ", "_").toUpperCase(); + } + amountString = amountString.replace(",", "").replace("x", "").trim(); + if (itemInformation.containsKey(item)) { + costArray.add(new JsonPrimitive(item + ":" + amountString)); + } else if (cachedDefinitions.containsKey(item)) { + costArray.add(new JsonPrimitive(cachedDefinitions.get(item) + ":" + amountString)); + } else { + mc.thePlayer.addChatMessage(new ChatComponentText( + "Change the item ID of " + item + " to the correct one and press Enter.")); + NEUOverlay.getTextField().setText(item); + event.setCanceled(true); + typing = true; + correctingItem = item; + if (cachedDefinitions == null) { + cachedDefinitions = new HashMap<>(); + } + return; + } + } + } + currentRecipe.add("cost", costArray); + currentRecipe.add("result", new JsonPrimitive(internalname)); + recipesArray.add(currentRecipe); + newNPC.add("recipes", recipesArray); + } + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + System.out.println(gson.toJson(newNPC)); + try { + //noinspection ResultOfMethodCallIgnored + file.createNewFile(); + try ( + BufferedWriter writer = new BufferedWriter(new OutputStreamWriter( + Files.newOutputStream(file.toPath()), + StandardCharsets.UTF_8 + )) + ) { + writer.write(gson.toJson(newNPC)); + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText( + EnumChatFormatting.AQUA + "Parsed and saved: " + EnumChatFormatting.WHITE + displayname)); + } + } catch (IOException ignored) { + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText( + EnumChatFormatting.RED + "Error while writing file.")); + } + } catch (Exception e) { + e.printStackTrace(); + mc.thePlayer.addChatMessage(new ChatComponentText( + EnumChatFormatting.RED + "Error while parsing inventory. Try again or check logs for details")); + } + } } if (AuctionBINWarning.getInstance().shouldShow()) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/Navigation.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/Navigation.java new file mode 100644 index 00000000..3419b8c4 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/Navigation.java @@ -0,0 +1,398 @@ +package io.github.moulberry.notenoughupdates.miscfeatures; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.core.util.render.RenderUtils; +import io.github.moulberry.notenoughupdates.events.RepositoryReloadEvent; +import io.github.moulberry.notenoughupdates.listener.RenderListener; +import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.LocationChangeEvent; +import io.github.moulberry.notenoughupdates.miscgui.GuiNavigation; +import io.github.moulberry.notenoughupdates.util.ItemUtils; +import io.github.moulberry.notenoughupdates.util.JsonUtils; +import io.github.moulberry.notenoughupdates.util.NotificationHandler; +import io.github.moulberry.notenoughupdates.util.SBInfo; +import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.gui.inventory.GuiChest; +import net.minecraft.inventory.ContainerChest; +import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3i; +import net.minecraftforge.client.event.RenderWorldLastEvent; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.InputEvent; +import net.minecraftforge.fml.common.gameevent.TickEvent; +import org.lwjgl.input.Keyboard; + +import java.time.Instant; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +public class Navigation { + + private List teleporters = new ArrayList<>(); + private Map areaNames = new HashMap<>(); + private Map warps = new HashMap<>(); + private Map waypoints = new HashMap<>(); + + public Map getWaypoints() { + return waypoints; + } + + public static class WarpPoint { + public final BlockPos blockPos; + public final String warpName, modeName; + + public WarpPoint(double x, double y, double z, String warpName, String modeName) { + this.blockPos = new BlockPos(x, y, z); + this.warpName = warpName; + this.modeName = modeName; + } + } + + public static class Teleporter { + public final double x, y, z; + public final String from, to; + + public Teleporter(double x, double y, double z, String from, String to) { + this.x = x; + this.y = y; + this.z = z; + this.from = from; + this.to = to; + } + } + + private NotEnoughUpdates neu; + + public Navigation(NotEnoughUpdates notEnoughUpdates) { + neu = notEnoughUpdates; + } + + /* JsonObject (x,y,z,island,displayname) */ + private JsonObject currentlyTrackedWaypoint = null; + private BlockPos position = null; + private String island = null; + private String displayName = null; + private String internalname = null; + private String warpAgainTo = null; + private int lastInvHashcode = 0; + private Instant warpAgainTiming = null; + + private Teleporter nextTeleporter = null; + + public boolean isValidWaypoint(JsonObject object) { + return object.has("x") + && object.has("y") + && object.has("z") + && object.has("island") + && object.has("displayname") + && object.has("internalname"); + } + + public void trackWaypoint(String trackNow) { + if (trackNow == null) { + trackWaypoint((JsonObject) null); + } else { + JsonObject jsonObject = waypoints.get(trackNow); + if (jsonObject == null) { + showError( + "Could not track waypoint " + trackNow + ". This is likely due to an outdated or broken repository.", + true + ); + return; + } + trackWaypoint(jsonObject); + } + } + + public void trackWaypoint(JsonObject trackNow) { + if (trackNow != null && !isValidWaypoint(trackNow)) { + showError("Could not track waypoint. This is likely due to an outdated or broken repository.", true); + return; + } + if (!neu.config.hidden.hasOpenedWaypointMenu) + NotificationHandler.displayNotification(Arrays.asList( + "You just tracked a waypoint.", + "Press [N] to open the waypoint menu to untrack it", + "or to find other waypoints to track.", + "Press [X] to close this message." + ), true, false); + currentlyTrackedWaypoint = trackNow; + updateData(); + } + + @SubscribeEvent + public void onRepositoryReload(RepositoryReloadEvent event) { + JsonObject obj = Utils.getConstant("islands", neu.manager.gson); + List teleporters = JsonUtils.getJsonArrayOrEmpty(obj, "teleporters", jsonElement -> { + JsonObject teleporterObj = jsonElement.getAsJsonObject(); + return new Teleporter( + teleporterObj.get("x").getAsDouble(), + teleporterObj.get("y").getAsDouble(), + teleporterObj.get("z").getAsDouble(), + teleporterObj.get("from").getAsString(), + teleporterObj.get("to").getAsString() + ); + }); + for (Teleporter teleporter : teleporters) { + if (teleporter.from.equals(teleporter.to)) { + showError("Found self referencing teleporter: " + teleporter.from, true); + } + } + this.teleporters = teleporters; + this.waypoints = NotEnoughUpdates.INSTANCE.manager + .getItemInformation().values().stream() + .filter(this::isValidWaypoint) + .collect(Collectors.toMap(it -> it.get("internalname").getAsString(), it -> it)); + this.areaNames = JsonUtils.transformJsonObjectToMap(obj.getAsJsonObject("area_names"), JsonElement::getAsString); + this.warps = JsonUtils.getJsonArrayOrEmpty(obj, "island_warps", jsonElement -> { + JsonObject warpObject = jsonElement.getAsJsonObject(); + return new WarpPoint( + warpObject.get("x").getAsDouble(), + warpObject.get("y").getAsDouble(), + warpObject.get("z").getAsDouble(), + warpObject.get("warp").getAsString(), + warpObject.get("mode").getAsString() + ); + }).stream().collect(Collectors.toMap(it -> it.warpName, it -> it)); + } + + @SubscribeEvent + public void onKeybindPressed(InputEvent.KeyInputEvent event) { + if (!Keyboard.getEventKeyState()) return; + int key = Keyboard.getEventKey() == 0 ? Keyboard.getEventCharacter() + 256 : Keyboard.getEventKey(); + if (neu.config.misc.keybindWaypoint == key) { + if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) { + if (currentlyTrackedWaypoint != null) { + useWarpCommand(); + } + } else { + Minecraft.getMinecraft().displayGuiScreen(new GuiNavigation()); + } + } + } + + @SubscribeEvent + public void onGuiTick(TickEvent.ClientTickEvent event) { + if (event.phase != TickEvent.Phase.START) return; + if (Minecraft.getMinecraft().theWorld == null) return; + if (Minecraft.getMinecraft().thePlayer == null) return; + + if (Minecraft.getMinecraft().currentScreen instanceof GuiChest && RenderListener.inventoryLoaded) { + GuiChest currentScreen = (GuiChest) Minecraft.getMinecraft().currentScreen; + ContainerChest container = (ContainerChest) currentScreen.inventorySlots; + if (container.getLowerChestInventory().getDisplayName().getUnformattedText().equals("Fast Travel")) { + int hashCode = container.getInventory().hashCode(); + if (hashCode == lastInvHashcode) return; + lastInvHashcode = hashCode; + for (ItemStack stackInSlot : container.getInventory()) { + if (stackInSlot == null) continue; + List lore = ItemUtils.getLore(stackInSlot); + if (lore.isEmpty()) + continue; + String warpLine = Utils.cleanColour(lore.get(0)); + if (!warpLine.startsWith("/warp ")) continue; + String warpName = warpLine.substring(6); + boolean isUnlocked = !lore.contains("§cWarp not unlocked!"); + neu.config.getProfileSpecific().unlockedWarpScrolls.put(warpName, isUnlocked); + } + } + } + } + + public Map getWarps() { + return warps; + } + + public WarpPoint getClosestWarp(String mode, Vec3i position, boolean checkAvailable) { + double minDistance = -1; + HashMap unlockedWarpScrolls = neu.config.getProfileSpecific().unlockedWarpScrolls; + WarpPoint minWarp = null; + for (WarpPoint value : warps.values()) { + if (value.modeName.equals(mode)) { + if (checkAvailable && !unlockedWarpScrolls.getOrDefault(value.warpName, false)) + continue; + double distance = value.blockPos.distanceSq(position); + if (distance < minDistance || minWarp == null) { + minDistance = distance; + minWarp = value; + } + } + } + return minWarp; + } + + public void useWarpCommand() { + EntityPlayerSP thePlayer = Minecraft.getMinecraft().thePlayer; + if (currentlyTrackedWaypoint == null || thePlayer == null) return; + WarpPoint closestWarp = getClosestWarp(island, position, true); + if (closestWarp == null) { + showError("Could not find an unlocked warp that could be used.", false); + return; + } + + if (!island.equals(SBInfo.getInstance().mode)) { + warpAgainTiming = Instant.now(); + warpAgainTo = closestWarp.warpName; + } else if (thePlayer.getDistanceSq(position) < closestWarp.blockPos.distanceSq(position)) { + showError("You are already on the same island and nearer than the closest unlocked warp scroll.", false); + return; + } + thePlayer.sendChatMessage("/warp " + closestWarp.warpName); + } + + @SubscribeEvent + public void onTeleportDone(EntityJoinWorldEvent event) { + if (neu.config.misc.warpTwice + && event.entity == Minecraft.getMinecraft().thePlayer + && warpAgainTo != null + && warpAgainTiming != null + && warpAgainTiming.plusSeconds(1).isAfter(Instant.now())) { + warpAgainTiming = null; + String savedWarpAgain = warpAgainTo; + warpAgainTo = null; + Minecraft.getMinecraft().thePlayer.sendChatMessage("/warp " + savedWarpAgain); + } + } + + public String getNameForAreaMode(String mode) { + return areaNames.get(mode); + } + + public String getNameForAreaModeOrUnknown(String mode) { + return areaNames.getOrDefault(mode, "Unknown"); + } + + public void untrackWaypoint() { + trackWaypoint((JsonObject) null); + } + + public JsonObject getTrackedWaypoint() { + return currentlyTrackedWaypoint; + } + + public String getIsland() { + return island; + } + + public String getDisplayName() { + return displayName; + } + + public BlockPos getPosition() { + return position; + } + + public String getInternalname() { + return internalname; + } + + private void updateData() { + if (currentlyTrackedWaypoint == null) { + position = null; + island = null; + displayName = null; + nextTeleporter = null; + internalname = null; + return; + } + position = new BlockPos( + currentlyTrackedWaypoint.get("x").getAsDouble(), + currentlyTrackedWaypoint.get("y").getAsDouble(), + currentlyTrackedWaypoint.get("z").getAsDouble() + ); + internalname = currentlyTrackedWaypoint.get("internalname").getAsString(); + island = currentlyTrackedWaypoint.get("island").getAsString(); + displayName = currentlyTrackedWaypoint.get("displayname").getAsString(); + recalculateNextTeleporter(SBInfo.getInstance().mode); + } + + @SubscribeEvent + public void onLocationChange(LocationChangeEvent event) { + recalculateNextTeleporter(event.newLocation); + } + + public Teleporter recalculateNextTeleporter(String from) { + String to = island; + if (from == null || to == null) return null; + List nextTeleporter = findNextTeleporter0(from, to, new HashSet<>()); + if (nextTeleporter == null || nextTeleporter.isEmpty()) { + this.nextTeleporter = null; + } else { + this.nextTeleporter = nextTeleporter.get(0); + } + return this.nextTeleporter; + } + + private List findNextTeleporter0(String from, String to, Set visited) { + if (from.equals(to)) return new ArrayList<>(); + if (visited.contains(from)) return null; + visited.add(from); + int minPathLength = 0; + List minPath = null; + for (Teleporter teleporter : teleporters) { + if (!teleporter.from.equals(from)) continue; + List nextTeleporter0 = findNextTeleporter0(teleporter.to, to, visited); + if (nextTeleporter0 == null) continue; + if (minPath == null || nextTeleporter0.size() < minPathLength) { + minPathLength = nextTeleporter0.size(); + nextTeleporter0.add(0, teleporter); + minPath = nextTeleporter0; + } + } + visited.remove(from); + return minPath; + } + + private void showError(String message, boolean log) { + EntityPlayerSP player = Minecraft.getMinecraft().thePlayer; + if (player != null) + player.addChatMessage(new ChatComponentText(EnumChatFormatting.DARK_RED + + "[NEU-Waypoint] " + message)); + if (log) + new RuntimeException("[NEU-Waypoint] " + message).printStackTrace(); + } + + @SubscribeEvent + public void onEvent(TickEvent.ClientTickEvent event) { + if (event.phase == TickEvent.Phase.END && currentlyTrackedWaypoint != null + && NotEnoughUpdates.INSTANCE.config.misc.untrackCloseWaypoints + && island.equals(SBInfo.getInstance().mode)) { + EntityPlayerSP thePlayer = Minecraft.getMinecraft().thePlayer; + if (thePlayer.getDistanceSq(position) < 16) + untrackWaypoint(); + } + } + + @SubscribeEvent + public void onRenderLast(RenderWorldLastEvent event) { + if (currentlyTrackedWaypoint != null) { + if (island.equals(SBInfo.getInstance().mode)) { + RenderUtils.renderWayPoint(displayName, position, event.partialTicks); + } else if (nextTeleporter != null) { + String to = nextTeleporter.to; + String toName = getNameForAreaModeOrUnknown(to); + RenderUtils.renderWayPoint( + Arrays.asList("Teleporter to " + toName, "(towards " + displayName + "§r)"), + new BlockPos( + nextTeleporter.x, + nextTeleporter.y, + nextTeleporter.z + ), event.partialTicks + ); + } + } + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java index be9ce6c7..129e25e7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java @@ -8,6 +8,7 @@ import io.github.moulberry.notenoughupdates.recipes.RecipeType; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.GlStateManager; @@ -22,8 +23,11 @@ import org.lwjgl.opengl.GL11; import java.awt.*; import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; import java.util.List; -import java.util.*; +import java.util.Map; public class GuiItemRecipe extends GuiScreen { public static final ResourceLocation resourcePacksTexture = new ResourceLocation("textures/gui/resource_packs.png"); @@ -68,6 +72,13 @@ public class GuiItemRecipe extends GuiScreen { } } + @Override + public void initGui() { + this.guiLeft = (width - this.xSize) / 2; + this.guiTop = (height - this.ySize) / 2; + changeRecipe(0, 0); + } + public NeuRecipe getCurrentRecipe() { List currentRecipes = getCurrentRecipeList(); currentIndex = MathHelper.clamp_int(currentIndex, 0, currentRecipes.size() - 1); @@ -84,8 +95,8 @@ public class GuiItemRecipe extends GuiScreen { } public boolean isWithinRect(int x, int y, int topLeftX, int topLeftY, int width, int height) { - return topLeftX <= x && x <= topLeftX + width - && topLeftY <= y && y <= topLeftY + height; + return topLeftX <= x && x < topLeftX + width + && topLeftY <= y && y < topLeftY + height; } private ImmutableList getAllRenderedSlots() { @@ -99,9 +110,6 @@ public class GuiItemRecipe extends GuiScreen { drawDefaultBackground(); FontRenderer fontRendererObj = Minecraft.getMinecraft().fontRendererObj; - this.guiLeft = (width - this.xSize) / 2; - this.guiTop = (height - this.ySize) / 2; - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); NeuRecipe currentRecipe = getCurrentRecipe(); @@ -131,7 +139,7 @@ public class GuiItemRecipe extends GuiScreen { ); currentRecipe.drawExtraInfo(this, mouseX, mouseY); - + super.drawScreen(mouseX, mouseY, partialTicks); for (RecipeSlot slot : slots) { if (isWithinRect(mouseX, mouseY, slot.getX(this), slot.getY(this), SLOT_SIZE, SLOT_SIZE)) { if (slot.getItemStack() == null) continue; @@ -292,6 +300,18 @@ public class GuiItemRecipe extends GuiScreen { } } + public void changeRecipe(int tabIndex, int recipeIndex) { + buttonList.removeAll(getCurrentRecipe().getExtraButtons(this)); + currentTab = tabIndex; + currentIndex = recipeIndex; + buttonList.addAll(getCurrentRecipe().getExtraButtons(this)); + } + + @Override + protected void actionPerformed(GuiButton p_actionPerformed_1_) throws IOException { + getCurrentRecipe().actionPerformed(p_actionPerformed_1_); + } + @Override protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { super.mouseClicked(mouseX, mouseY, mouseButton); @@ -310,7 +330,7 @@ public class GuiItemRecipe extends GuiScreen { BUTTON_HEIGHT ) && currentIndex > 0) { - currentIndex = currentIndex - 1; + changeRecipe(currentTab, currentIndex - 1); Utils.playPressSound(); return; } @@ -324,7 +344,7 @@ public class GuiItemRecipe extends GuiScreen { BUTTON_HEIGHT ) && currentIndex < getCurrentRecipeList().size()) { - currentIndex = currentIndex + 1; + changeRecipe(currentTab, currentIndex + 1); Utils.playPressSound(); return; } @@ -338,7 +358,7 @@ public class GuiItemRecipe extends GuiScreen { TAB_SIZE_X, TAB_SIZE_Y )) { - currentTab = i; + changeRecipe(i, currentIndex); Utils.playPressSound(); return; } @@ -349,10 +369,14 @@ public class GuiItemRecipe extends GuiScreen { ItemStack itemStack = slot.getItemStack(); if (mouseButton == 0) { manager.displayGuiItemRecipe(manager.getInternalNameForItem(itemStack)); + return; } else if (mouseButton == 1) { manager.displayGuiItemUsages(manager.getInternalNameForItem(itemStack)); + return; } } } + + currentRecipe.mouseClicked(this, mouseX, mouseY, mouseButton); } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiNavigation.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiNavigation.java new file mode 100644 index 00000000..d34988f6 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiNavigation.java @@ -0,0 +1,154 @@ +package io.github.moulberry.notenoughupdates.miscgui; + +import com.google.gson.JsonObject; +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.core.GuiElementTextField; +import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.ResourceLocation; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + +public class GuiNavigation extends GuiScreen { + + public static ResourceLocation BACKGROUND = new ResourceLocation( + "notenoughupdates", + "textures/gui/navigation.png" + ); + + public static final int PIN_POSITION_U = 182; + public static final int PIN_POSITION_V = 3; + public static final int TICK_POSITION_U = 182; + public static final int TICK_POSITION_V = 34; + public static final int ICON_SIZE = 26; + + public static final int SEARCH_BAR_X = 14; + public static final int SEARCH_BAR_Y = 11; + public static final int SEARCH_BAR_WIDTH = 151; + public static final int SEARCH_BAR_HEIGHT = 24; + + public static final int LIST_START_X = 14; + public static final int LIST_START_Y = 43; + public static final int LIST_OFFSET_Y = 28; + public static final int TEXT_OFFSET_X = 28; + public static final int LIST_COUNT = 6; + + List searchResults = new ArrayList<>(); + + public int xSize = 176; + public int ySize = 222; + public int guiLeft, guiTop; + + public GuiElementTextField textField = new GuiElementTextField("", SEARCH_BAR_WIDTH, SEARCH_BAR_HEIGHT, 0); + + @Override + public void initGui() { + super.initGui(); + NotEnoughUpdates.INSTANCE.config.hidden.hasOpenedWaypointMenu = true; + guiLeft = (width - xSize) / 2; + guiTop = (height - ySize) / 2; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + drawDefaultBackground(); + Minecraft.getMinecraft().getTextureManager().bindTexture(BACKGROUND); + this.drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + textField.render(guiLeft + SEARCH_BAR_X, guiTop + SEARCH_BAR_Y); + + refreshResults(); + for (int i = 0; i < LIST_COUNT; i++) { + if (i < searchResults.size()) { + Minecraft.getMinecraft().getTextureManager().bindTexture(BACKGROUND); + String name = searchResults.get(i); + JsonObject json = NotEnoughUpdates.INSTANCE.navigation.getWaypoints().get(name); + boolean selected = name.equals(NotEnoughUpdates.INSTANCE.navigation.getInternalname()); + int baseX = guiLeft + LIST_START_X; + int baseY = guiTop + LIST_START_Y + LIST_OFFSET_Y * i; + + GlStateManager.color(1F, 1F, 1F); + drawTexturedModalRect( + baseX, + baseY, + selected ? TICK_POSITION_U : PIN_POSITION_U, selected ? TICK_POSITION_V : PIN_POSITION_V, + ICON_SIZE, ICON_SIZE + ); + Utils.drawStringF( + json.get("displayname").getAsString(), + Minecraft.getMinecraft().fontRendererObj, + baseX + TEXT_OFFSET_X, + baseY + LIST_OFFSET_Y / 2F - Minecraft.getMinecraft().fontRendererObj.FONT_HEIGHT / 2F, + false, + 0x000000 + ); + } + } + } + + private void refreshResults() { + String text = textField.getText().toLowerCase(); + List results = NotEnoughUpdates.INSTANCE.navigation + .getWaypoints() + .values() + .stream() + .filter(it -> + it.get("internalname").getAsString().toLowerCase().contains(text) + || it.get("displayname").getAsString().toLowerCase().contains(text)) + .map(it -> it.get("internalname").getAsString()) + .sorted(Comparator.comparing(String::length) + .thenComparing(String.CASE_INSENSITIVE_ORDER)) + .collect(Collectors.toList()); + + String internalname = NotEnoughUpdates.INSTANCE.navigation.getInternalname(); + if (internalname != null) { + results.remove(internalname); + results.add(0, internalname); + } + searchResults = results; + } + + @Override + protected void keyTyped(char p_keyTyped_1_, int p_keyTyped_2_) throws IOException { + super.keyTyped(p_keyTyped_1_, p_keyTyped_2_); + textField.keyTyped(p_keyTyped_1_, p_keyTyped_2_); + } + + @Override + protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { + super.mouseClicked(mouseX, mouseY, mouseButton); + if (Utils.isWithinRect( + mouseX, + mouseY, + guiLeft + SEARCH_BAR_X, + guiTop + SEARCH_BAR_Y, + SEARCH_BAR_WIDTH, + SEARCH_BAR_HEIGHT + )) { + textField.mouseClicked(mouseX, mouseY, mouseButton); + } else { + textField.setFocus(false); + } + for (int i = 0; i < LIST_COUNT; i++) { + if (i < searchResults.size()) { + int baseX = guiLeft + LIST_START_X; + int baseY = guiTop + LIST_START_Y + LIST_OFFSET_Y * i; + if (Utils.isWithinRect(mouseX, mouseY, baseX, baseY, ICON_SIZE, ICON_SIZE)) { + String thing = searchResults.get(i); + boolean selected = thing.equals(NotEnoughUpdates.INSTANCE.navigation.getInternalname()); + if (selected) { + NotEnoughUpdates.INSTANCE.navigation.untrackWaypoint(); + } else { + NotEnoughUpdates.INSTANCE.navigation.trackWaypoint(thing); + } + Utils.playPressSound(); + } + } + } + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java b/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java index 5c766254..2e31fbf3 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java @@ -417,6 +417,9 @@ public class NEUConfig extends Config { @Expose public boolean npcRetextureOnSelf = false; + @Expose + public boolean hasOpenedWaypointMenu = false; + } public static ArrayList createDefaultEnchantColours() { @@ -511,6 +514,8 @@ public class NEUConfig extends Config { @Expose public long dailyMithrilPowerCompleted = 0L; @Expose + public HashMap unlockedWarpScrolls = new HashMap<>(); + @Expose public long dailyHeavyPearlCompleted = 0L; } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java index 631ce545..a04a51f9 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java @@ -1,7 +1,15 @@ package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigAccordionId; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorAccordion; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorButton; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDropdown; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorKeybind; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorSlider; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; +import org.lwjgl.input.Keyboard; public class Misc { @Expose @@ -163,4 +171,29 @@ public class Misc { "Fandom" }) public int wiki = 0; + + @Expose + @ConfigOption( + name = "Waypoint Keybind", + desc = "Press this keybind to show waypoints to various NPCs" + ) + @ConfigEditorKeybind(defaultKey = Keyboard.KEY_N) + public int keybindWaypoint = Keyboard.KEY_N; + + @Expose + @ConfigOption( + name = "Untrack close Waypoints", + desc = "Automatically untrack waypoints once you get close to them." + ) + @ConfigEditorBoolean + public boolean untrackCloseWaypoints = true; + + @Expose + @ConfigOption( + name = "Warp twice", + desc = "Warp twice when using SHIFT+N to /warp to a waypoint." + ) + @ConfigEditorBoolean + public boolean warpTwice = true; + } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java index 87712378..1729cfa7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java @@ -4835,12 +4835,7 @@ public class GuiProfileViewer extends GuiScreen { if (profile.getUuid().equals("20934ef9488c465180a78f861586b4cf")) { locationStr = "Ignoring DMs"; } else { - if (location != null) { - JsonObject misc = Constants.MISC; - if (misc != null) { - locationStr = Utils.getElementAsString(Utils.getElement(misc, "area_names." + location), "Unknown"); - } - } + locationStr = NotEnoughUpdates.INSTANCE.navigation.getNameForAreaModeOrUnknown(location); } if (locationStr != null) { statusStr += EnumChatFormatting.GRAY + " - " + EnumChatFormatting.GREEN + locationStr; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/ItemShopRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/ItemShopRecipe.java new file mode 100644 index 00000000..778f156f --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/ItemShopRecipe.java @@ -0,0 +1,189 @@ +package io.github.moulberry.notenoughupdates.recipes; + +import com.google.common.collect.Sets; +import com.google.gson.JsonObject; +import com.google.gson.JsonPrimitive; +import io.github.moulberry.notenoughupdates.NEUManager; +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.miscgui.GuiItemRecipe; +import io.github.moulberry.notenoughupdates.miscgui.GuiNavigation; +import io.github.moulberry.notenoughupdates.util.JsonUtils; +import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.input.Keyboard; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class ItemShopRecipe implements NeuRecipe { + public static ResourceLocation BACKGROUND = new ResourceLocation( + "notenoughupdates", + "textures/gui/item_shop_recipe.png" + ); + + private static final int SLOT_IMAGE_U = 176; + private static final int SLOT_IMAGE_V = 0; + + private static final int SLOT_IMAGE_SIZE = 18; + public static final int RESULT_SLOT_Y = 66; + public static final int RESULT_SLOT_X = 124; + + public static final int BUTTON_X = 130; + public static final int BUTTON_Y = 16; + + private static final int COST_SLOT_X = 30; + private static final int COST_SLOT_SPACING = 6; + private static final int ROW_SPACING = 18; + private final List cost; + private final Ingredient result; + private boolean selected; + + private final Ingredient npcIngredient; + private final boolean hasWaypoint; + private final JsonObject npcObject; + + public ItemShopRecipe(Ingredient npcIngredient, List cost, Ingredient result, JsonObject npcObject) { + this.npcIngredient = npcIngredient; + this.cost = cost; + this.result = result; + this.npcObject = npcObject; + hasWaypoint = NotEnoughUpdates.INSTANCE.navigation.isValidWaypoint(npcObject); + } + + @Override + public Set getCatalystItems() { + return Sets.newHashSet(npcIngredient); + } + + @Override + public Set getIngredients() { + return new HashSet<>(cost); + } + + @Override + public Set getOutputs() { + return Sets.newHashSet(result); + } + + @Override + public List getSlots() { + List slots = new ArrayList<>(); + + int i = 0; + int colCount = cost.size() / 4; + int startX = COST_SLOT_X - 8 * (colCount - 1); + int rowSize = cost.size(); + if (rowSize > 4) rowSize = 4; + int startY = RESULT_SLOT_Y + 8 - (SLOT_IMAGE_SIZE * rowSize + COST_SLOT_SPACING * (rowSize - 1)) / 2; + for (Ingredient ingredient : cost) { + slots.add(new RecipeSlot( + startX + (i / 4) * ROW_SPACING + 1, + startY + (i % 4) * (SLOT_IMAGE_SIZE + COST_SLOT_SPACING) + 1, + ingredient.getItemStack() + )); + i++; + } + slots.add(new RecipeSlot(RESULT_SLOT_X, RESULT_SLOT_Y, result.getItemStack())); + return slots; + } + + @Override + public void drawExtraBackground(GuiItemRecipe gui, int mouseX, int mouseY) { + Minecraft.getMinecraft().getTextureManager().bindTexture(BACKGROUND); + int colCount = cost.size() / 4; + int startX = COST_SLOT_X - 8 * (colCount - 1); + int rowSize = cost.size(); + if (rowSize > 4) rowSize = 4; + int startY = RESULT_SLOT_Y + 8 - (SLOT_IMAGE_SIZE * rowSize + COST_SLOT_SPACING * (rowSize - 1)) / 2; + for (int i = 0; i < cost.size(); i++) { + gui.drawTexturedModalRect( + gui.guiLeft + startX + (i / 4) * ROW_SPACING, + gui.guiTop + startY + (i % 4) * (SLOT_IMAGE_SIZE + COST_SLOT_SPACING), + SLOT_IMAGE_U, SLOT_IMAGE_V, + SLOT_IMAGE_SIZE, SLOT_IMAGE_SIZE + ); + } + if (!hasWaypoint) return; + Minecraft.getMinecraft().getTextureManager().bindTexture(GuiNavigation.BACKGROUND); + selected = npcIngredient.getInternalItemId().equals(NotEnoughUpdates.INSTANCE.navigation.getInternalname()); + gui.drawTexturedModalRect( + gui.guiLeft + BUTTON_X, + gui.guiTop + BUTTON_Y, + selected ? GuiNavigation.TICK_POSITION_U : GuiNavigation.PIN_POSITION_U, + selected ? GuiNavigation.TICK_POSITION_V : GuiNavigation.PIN_POSITION_V, + GuiNavigation.ICON_SIZE, + GuiNavigation.ICON_SIZE + ); + } + + @Override + public void mouseClicked(GuiItemRecipe gui, int mouseX, int mouseY, int mouseButton) { + if (hasWaypoint && Utils.isWithinRect( + mouseX - gui.guiLeft, + mouseY - gui.guiTop, + BUTTON_X, + BUTTON_Y, + GuiNavigation.ICON_SIZE, + GuiNavigation.ICON_SIZE + )) { + boolean shiftPressed = Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT); + if (selected && !shiftPressed) { + NotEnoughUpdates.INSTANCE.navigation.untrackWaypoint(); + } else { + NotEnoughUpdates.INSTANCE.navigation.trackWaypoint(npcIngredient.getInternalItemId()); + if (shiftPressed) { + NotEnoughUpdates.INSTANCE.navigation.useWarpCommand(); + } + } + Utils.playPressSound(); + selected = !selected; + } + } + + @Override + public String getTitle() { + return npcObject.get("displayname").getAsString(); + } + + @Override + public RecipeType getType() { + return RecipeType.NPC_SHOP; + } + + @Override + public boolean hasVariableCost() { + return false; + } + + @Override + public JsonObject serialize() { + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("type", "npc_shop"); + jsonObject.addProperty("result", result.serialize()); + jsonObject.add( + "cost", + JsonUtils.transformListToJsonArray(cost, costItem -> new JsonPrimitive(costItem.serialize())) + ); + return jsonObject; + } + + @Override + public ResourceLocation getBackground() { + return BACKGROUND; + } + + public static NeuRecipe parseItemRecipe(NEUManager neuManager, JsonObject recipe, JsonObject outputItemJson) { + return new ItemShopRecipe( + new Ingredient(neuManager, outputItemJson.get("internalname").getAsString()), + JsonUtils.transformJsonArrayToList( + recipe.getAsJsonArray("cost"), + it -> new Ingredient(neuManager, it.getAsString()) + ), + new Ingredient(neuManager, recipe.get("result").getAsString()), + outputItemJson + ); + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/MobLootRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/MobLootRecipe.java index dcbf71da..b98fbe10 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/MobLootRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/MobLootRecipe.java @@ -1,7 +1,6 @@ package io.github.moulberry.notenoughupdates.recipes; import com.google.common.collect.Sets; -import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; @@ -14,7 +13,6 @@ import io.github.moulberry.notenoughupdates.util.JsonUtils; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; @@ -24,7 +22,6 @@ import java.util.List; import java.util.Set; import java.util.function.BiConsumer; import java.util.stream.Collectors; -import java.util.stream.Stream; public class MobLootRecipe implements NeuRecipe { @@ -143,9 +140,14 @@ public class MobLootRecipe implements NeuRecipe { return Sets.newHashSet(mobIngredient); } + @Override + public Set getCatalystItems() { + return Sets.newHashSet(mobIngredient); + } + @Override public Set getOutputs() { - return Stream.concat(drops.stream().map(it -> it.drop), Stream.of(mobIngredient)).collect(Collectors.toSet()); + return drops.stream().map(it -> it.drop).collect(Collectors.toSet()); } @Override diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/NeuRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/NeuRecipe.java index 8202bb48..04945cc5 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/NeuRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/NeuRecipe.java @@ -3,8 +3,11 @@ package io.github.moulberry.notenoughupdates.recipes; import com.google.gson.JsonObject; import io.github.moulberry.notenoughupdates.NEUManager; import io.github.moulberry.notenoughupdates.miscgui.GuiItemRecipe; +import net.minecraft.client.gui.GuiButton; import net.minecraft.util.ResourceLocation; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Set; @@ -30,10 +33,22 @@ public interface NeuRecipe { default void drawHoverInformation(GuiItemRecipe gui, int mouseX, int mouseY) { } + default void mouseClicked(GuiItemRecipe gui, int mouseX, int mouseY, int mouseButton) {} + + default void handleKeyboardInput() {} + + default Set getCatalystItems() { + return Collections.emptySet(); + } + boolean hasVariableCost(); JsonObject serialize(); + default List getExtraButtons(GuiItemRecipe guiItemRecipe) { + return new ArrayList<>(); + } + ResourceLocation getBackground(); static NeuRecipe parseRecipe(NEUManager manager, JsonObject recipe, JsonObject output) { @@ -59,4 +74,6 @@ public interface NeuRecipe { default int[] getPageFlipPositionLeftTopCorner() { return new int[]{110, 90}; } + + default void actionPerformed(GuiButton button) {} } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeType.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeType.java index cc8b50be..023b20eb 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeType.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeType.java @@ -10,7 +10,8 @@ public enum RecipeType { CRAFTING("crafting", "Crafting", CraftingRecipe::parseCraftingRecipe, new ItemStack(Blocks.crafting_table)), FORGE("forge", "Forging", ForgeRecipe::parseForgeRecipe, new ItemStack(Blocks.anvil)), TRADE("trade", "Trading", VillagerTradeRecipe::parseStaticRecipe, new ItemStack(Items.emerald)), - MOB_LOOT("drops", "Mob Loot", MobLootRecipe::parseRecipe, new ItemStack(Items.diamond_sword)); + MOB_LOOT("drops", "Mob Loot", MobLootRecipe::parseRecipe, new ItemStack(Items.diamond_sword)), + NPC_SHOP("npc_shop", "NPC Item Shop", ItemShopRecipe::parseItemRecipe, new ItemStack(Items.wheat_seeds)); private final String id; private final String label; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/VillagerTradeRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/VillagerTradeRecipe.java index 2e53e153..10eb96a5 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/VillagerTradeRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/VillagerTradeRecipe.java @@ -125,7 +125,7 @@ public class VillagerTradeRecipe implements NeuRecipe { JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("type", "trade"); jsonObject.addProperty("result", result.serialize()); - jsonObject.addProperty("cost", cost.getInternalItemId()); + jsonObject.addProperty("cost", cost.serialize()); if (minCost > 0) jsonObject.addProperty("min", minCost); if (maxCost > 0) diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java b/src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java index dab4844d..4c421f3e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java @@ -1,6 +1,17 @@ package io.github.moulberry.notenoughupdates.util; -import com.google.gson.*; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.JsonPrimitive; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import io.github.moulberry.notenoughupdates.events.RepositoryReloadEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import java.lang.reflect.Type; import java.util.concurrent.locks.ReentrantLock; @@ -42,7 +53,8 @@ public class Constants { private static final ReentrantLock lock = new ReentrantLock(); - public static void reload() { + @SubscribeEvent + public void reload(RepositoryReloadEvent event) { try { lock.lock(); @@ -57,6 +69,8 @@ public class Constants { ESSENCECOSTS = Utils.getConstant("essencecosts", gson); FAIRYSOULS = Utils.getConstant("fairy_souls", gson); REFORGESTONES = Utils.getConstant("reforgestones", gson); + } catch (Exception ex) { + ex.printStackTrace(); } finally { lock.unlock(); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/ItemUtils.java b/src/main/java/io/github/moulberry/notenoughupdates/util/ItemUtils.java index e3d90aaa..729e68bd 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/ItemUtils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/ItemUtils.java @@ -1,19 +1,39 @@ package io.github.moulberry.notenoughupdates.util; -import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagString; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; public class ItemUtils { - public static ItemStack getCoinItemStack(int coinAmount) { - ItemStack itemStack = new ItemStack(Items.gold_nugget); - itemStack.setStackDisplayName("\u00A7r\u00A76" + Utils.formatNumberWithDots(coinAmount) + " Coins"); - return itemStack; + public static ItemStack getCoinItemStack(long coinAmount) { + String uuid = "2070f6cb-f5db-367a-acd0-64d39a7e5d1b"; + String texture = + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTM4MDcxNzIxY2M1YjRjZDQwNmNlNDMxYTEzZjg2MDgzYTg5NzNlMTA2NGQyZjg4OTc4Njk5MzBlZTZlNTIzNyJ9fX0="; + if (coinAmount >= 100000) { + uuid = "94fa2455-2881-31fe-bb4e-e3e24d58dbe3"; + texture = + "eyJ0aW1lc3RhbXAiOjE2MzU5NTczOTM4MDMsInByb2ZpbGVJZCI6ImJiN2NjYTcxMDQzNDQ0MTI4ZDMwODllMTNiZGZhYjU5IiwicHJvZmlsZU5hbWUiOiJsYXVyZW5jaW8zMDMiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2M5Yjc3OTk5ZmVkM2EyNzU4YmZlYWYwNzkzZTUyMjgzODE3YmVhNjQwNDRiZjQzZWYyOTQzM2Y5NTRiYjUyZjYiLCJtZXRhZGF0YSI6eyJtb2RlbCI6InNsaW0ifX19fQo="; + } + if (coinAmount >= 10000000) { + uuid = "0af8df1f-098c-3b72-ac6b-65d65fd0b668"; + texture = + "ewogICJ0aW1lc3RhbXAiIDogMTYzNTk1NzQ4ODQxNywKICAicHJvZmlsZUlkIiA6ICJmNThkZWJkNTlmNTA0MjIyOGY2MDIyMjExZDRjMTQwYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ1bnZlbnRpdmV0YWxlbnQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2I5NTFmZWQ2YTdiMmNiYzIwMzY5MTZkZWM3YTQ2YzRhNTY0ODE1NjRkMTRmOTQ1YjZlYmMwMzM4Mjc2NmQzYiIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"; + } + ItemStack skull = Utils.createSkull( + "\u00A7r\u00A76" + Utils.formatNumberWithDots(coinAmount) + " Coins", + uuid, + texture + ); + NBTTagCompound extraAttributes = skull.getTagCompound().getCompoundTag("ExtraAttributes"); + extraAttributes.setString("id", "SKYBLOCK_COIN"); + skull.getTagCompound().setTag("ExtraAttributes", extraAttributes); + return skull; } public static void appendLore(ItemStack is, List moreLore) { @@ -30,4 +50,17 @@ public class ItemUtils { tagCompound.setTag("display", display); is.setTagCompound(tagCompound); } + + public static List getLore(ItemStack is) { + NBTTagCompound tagCompound = is.getTagCompound(); + if (tagCompound == null) { + return Collections.emptyList(); + } + NBTTagList tagList = tagCompound.getCompoundTag("display").getTagList("Lore", 8); + List list = new ArrayList<>(); + for (int i = 0; i < tagList.tagCount(); i++) { + list.add(tagList.getStringTagAt(i)); + } + return list; + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/JsonUtils.java b/src/main/java/io/github/moulberry/notenoughupdates/util/JsonUtils.java index 916631b7..b4193c88 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/JsonUtils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/JsonUtils.java @@ -5,7 +5,9 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -16,11 +18,18 @@ public class JsonUtils { return StreamSupport.stream(array.spliterator(), false); } - public static List transformJsonArrayToList(JsonArray array, Function mapper) { + public static List transformJsonArrayToList( + JsonArray array, + Function mapper + ) { return getJsonArrayAsStream(array).map(mapper).collect(Collectors.toList()); } - public static List getJsonArrayOrEmpty(JsonObject rootObject, String name, Function mapper) { + public static List getJsonArrayOrEmpty( + JsonObject rootObject, + String name, + Function mapper + ) { if (!rootObject.has(name)) { return Collections.emptyList(); } @@ -31,7 +40,10 @@ public class JsonUtils { return Collections.emptyList(); } - public static JsonArray transformListToJsonArray(List things, Function mapper) { + public static JsonArray transformListToJsonArray( + List things, + Function mapper + ) { JsonArray array = new JsonArray(); for (T t : things) { array.add(mapper.apply(t)); @@ -39,4 +51,15 @@ public class JsonUtils { return array; } + public static Map transformJsonObjectToMap( + JsonObject object, + Function mapper + ) { + Map map = new HashMap<>(); + for (Map.Entry entry : object.entrySet()) { + map.put(entry.getKey(), mapper.apply(entry.getValue())); + } + return map; + } + } 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 7b714cd0..e572a391 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java @@ -1854,8 +1854,8 @@ public class Utils { } public static boolean isWithinRect(int x, int y, int left, int top, int width, int height) { - return left <= x && x <= left + width && - top <= y && y <= top + height; + return left <= x && x < left + width && + top <= y && y < top + height; } public static int getNumberOfStars(ItemStack stack) { diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe_tall.png b/src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe_tall.png index b07e5ca1..cdd8b0f1 100644 Binary files a/src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe_tall.png and b/src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe_tall.png differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/item_shop_recipe.png b/src/main/resources/assets/notenoughupdates/textures/gui/item_shop_recipe.png new file mode 100644 index 00000000..e78c0f44 Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/textures/gui/item_shop_recipe.png differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/navigation.png b/src/main/resources/assets/notenoughupdates/textures/gui/navigation.png new file mode 100644 index 00000000..b8eb26e4 Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/textures/gui/navigation.png differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe_tall.png b/src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe_tall.png index ed982599..8cb89bae 100644 Binary files a/src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe_tall.png and b/src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe_tall.png differ -- cgit From 470db06d91e1d90466e5fa1064eae4bb7318c5ad Mon Sep 17 00:00:00 2001 From: 2stinkysocks <54291521+2stinkysocks@users.noreply.github.com> Date: Sat, 7 May 2022 07:29:16 -0700 Subject: Booster Cookie Warning (#128) * add booster cookie warning * requested changes * i forgot to check if the feature is enabled --- Update Notes/2.1.md | 1 + .../notenoughupdates/NotEnoughUpdates.java | 2 + .../notenoughupdates/listener/ChatListener.java | 3 + .../miscfeatures/CookieWarning.java | 95 ++++++++++++++++++++++ .../mixins/AccessorGuiPlayerTabOverlay.java | 12 +++ .../options/seperateSections/Notifications.java | 21 +++++ src/main/resources/mixins.notenoughupdates.json | 1 + 7 files changed, 135 insertions(+) create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CookieWarning.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiPlayerTabOverlay.java (limited to 'src/main/resources') diff --git a/Update Notes/2.1.md b/Update Notes/2.1.md index 935ca4f1..2ea1bef0 100644 --- a/Update Notes/2.1.md +++ b/Update Notes/2.1.md @@ -84,6 +84,7 @@ - Added 6-10 stars to /neucustomize - Added support for attributes in neuec - Added Heavy Pearls to todo overlay - cobble8 +- Added Booster Cookie Warning - 2stinkysocks ### **Bug Fixes:** - Fix wiki pages freezing the entire game - nea89 - Made titanium overlay and waypoints work with dwarven overlay off diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java index d08968c3..0de3fffe 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java @@ -14,6 +14,7 @@ import io.github.moulberry.notenoughupdates.listener.ItemTooltipListener; import io.github.moulberry.notenoughupdates.listener.NEUEventListener; import io.github.moulberry.notenoughupdates.listener.OldAnimationChecker; import io.github.moulberry.notenoughupdates.listener.RenderListener; +import io.github.moulberry.notenoughupdates.miscfeatures.CookieWarning; import io.github.moulberry.notenoughupdates.miscfeatures.CrystalOverlay; import io.github.moulberry.notenoughupdates.miscfeatures.CrystalWishingCompassSolver; import io.github.moulberry.notenoughupdates.miscfeatures.CustomItemEffects; @@ -241,6 +242,7 @@ public class NotEnoughUpdates { MinecraftForge.EVENT_BUS.register(new ItemTooltipListener(this)); MinecraftForge.EVENT_BUS.register(new RenderListener(this)); MinecraftForge.EVENT_BUS.register(new OldAnimationChecker()); + MinecraftForge.EVENT_BUS.register(new CookieWarning()); MinecraftForge.EVENT_BUS.register(navigation); if (Minecraft.getMinecraft().getResourceManager() instanceof IReloadableResourceManager) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java index 060dcb80..6a5164a2 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java @@ -2,6 +2,7 @@ package io.github.moulberry.notenoughupdates.listener; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.dungeons.DungeonWin; +import io.github.moulberry.notenoughupdates.miscfeatures.CookieWarning; import io.github.moulberry.notenoughupdates.miscfeatures.CrystalMetalDetectorSolver; import io.github.moulberry.notenoughupdates.miscfeatures.StreamerMode; import io.github.moulberry.notenoughupdates.overlays.OverlayManager; @@ -186,6 +187,8 @@ public class ChatListener { "Your Slayer Quest has been cancelled!"))) { SlayerOverlay.slayerQuest = false; SlayerOverlay.unloadOverlayTimer = System.currentTimeMillis(); + } else if (unformatted.startsWith("You consumed a Booster Cookie!")) { + CookieWarning.resetNotification(); } if (e.message.getFormattedText().contains( EnumChatFormatting.YELLOW + "Visit the Auction House to collect your item!")) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CookieWarning.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CookieWarning.java new file mode 100644 index 00000000..41c2219a --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CookieWarning.java @@ -0,0 +1,95 @@ +package io.github.moulberry.notenoughupdates.miscfeatures; + +import com.google.common.collect.Lists; +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.mixins.AccessorGuiPlayerTabOverlay; +import io.github.moulberry.notenoughupdates.util.NotificationHandler; +import net.minecraft.client.Minecraft; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +public class CookieWarning { + + private static boolean hasNotified; + + public CookieWarning() { + hasNotified = false; + } + + @SubscribeEvent + public void onJoinWorld(EntityJoinWorldEvent e) { + if(e.entity == Minecraft.getMinecraft().thePlayer) { + this.checkCookie(); + } + } + + public static void resetNotification() { + hasNotified = false; + } + + /** + * Checks the tab list for a cookie timer, and sends a chat message if the timer is within the tolerance + */ + private void checkCookie() { + if(!hasNotified && NotEnoughUpdates.INSTANCE.config.notifications.doBoosterNotif) { + String[] lines = ((AccessorGuiPlayerTabOverlay) Minecraft.getMinecraft().ingameGUI.getTabList()).getFooter().getUnformattedText().split("\n"); + boolean hasCookie = true; + String timeLine = null; // the line that contains the cookie timer + for(int i = 0; i < lines.length; i++) { + if(lines[i].startsWith("Cookie Buff")) { + timeLine = lines[i+1]; // the line after the "Cookie Buff" line + } + if(lines[i].startsWith("Not active! Obtain booster cookies from the")) { + hasCookie = false; + } + } + if(!hasCookie) { + NotificationHandler.displayNotification(Lists.newArrayList( + "\u00a7cBooster Cookie Ran Out!", + "\u00a77Your Booster Cookie expired!", + "\u00a77", + "\u00a77Press X on your keyboard to close this notification" + ), true, true); + hasNotified = true; + return; + } + if(timeLine != null) { + String[] digits = timeLine.split(" "); + int minutes = 0; + try { + for(String digit : digits) { + if(digit.endsWith("y")) { + digit = digit.substring(0, digit.length() - 1); + minutes += Integer.parseInt(digit) * 525600; + } else if(digit.endsWith("d")) { + digit = digit.substring(0, digit.length() - 1); + minutes += Integer.parseInt(digit) * 1440; + } else if(digit.endsWith("h")) { + digit = digit.substring(0, digit.length() - 1); + minutes += Integer.parseInt(digit) * 60; + } else if(digit.endsWith("m")) { + digit = digit.substring(0, digit.length() - 1); + minutes += Integer.parseInt(digit); + } // ignore seconds + } + } catch (NumberFormatException e) { + e.printStackTrace(); + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText( + EnumChatFormatting.RED + + "NEU ran into an issue when retrieving the Booster Cookie Timer. Check the logs for details.")); + } + if(minutes < NotEnoughUpdates.INSTANCE.config.notifications.boosterCookieWarningMins) { + NotificationHandler.displayNotification(Lists.newArrayList( + "\u00a7cBooster Cookie Running Low!", + "\u00a77Your Booster Cookie will expire in " + timeLine, + "\u00a77", + "\u00a77Press X on your keyboard to close this notification" + ), true, true); + hasNotified = true; + } + } + } + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiPlayerTabOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiPlayerTabOverlay.java new file mode 100644 index 00000000..530e3013 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiPlayerTabOverlay.java @@ -0,0 +1,12 @@ +package io.github.moulberry.notenoughupdates.mixins; + +import net.minecraft.client.gui.GuiPlayerTabOverlay; +import net.minecraft.util.IChatComponent; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(GuiPlayerTabOverlay.class) +public interface AccessorGuiPlayerTabOverlay { + @Accessor("footer") + IChatComponent getFooter(); +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Notifications.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Notifications.java index fd934330..9007db88 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Notifications.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Notifications.java @@ -2,6 +2,7 @@ package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorSlider; import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; public class Notifications { @@ -29,4 +30,24 @@ public class Notifications { ) @ConfigEditorBoolean public boolean doOamNotif = true; + + @Expose + @ConfigOption( + name = "Booster Cookie Warning", + desc = "Warning when a booster cookie is about to expire" + ) + @ConfigEditorBoolean + public boolean doBoosterNotif = false; + + @Expose + @ConfigOption( + name = "Booster Cookie Warning Minutes", + desc = "Change the minimum time required for the Booster Cookie warning to activate" + ) + @ConfigEditorSlider( + minValue = 10, + maxValue = 5760, + minStep = 25 + ) + public int boosterCookieWarningMins = 1440; } diff --git a/src/main/resources/mixins.notenoughupdates.json b/src/main/resources/mixins.notenoughupdates.json index 6c95e480..c6ba98b7 100644 --- a/src/main/resources/mixins.notenoughupdates.json +++ b/src/main/resources/mixins.notenoughupdates.json @@ -5,6 +5,7 @@ "mixins": [ "AccessorEntityAgeable", "AccessorEntityArmorStand", + "AccessorGuiPlayerTabOverlay", "MixinAbstractClientPlayer", "MixinContainer", "MixinEffectRenderer", -- cgit From f0621394b9b36f3ffb322ebd4838e040d7d48e9c Mon Sep 17 00:00:00 2001 From: jani270 <69345714+jani270@users.noreply.github.com> Date: Sun, 15 May 2022 11:55:35 +0200 Subject: I love panoramas (#139) * I love panoramas * optimize file size --- .../miscfeatures/CrystalWishingCompassSolver.java | 2 +- .../panoramas/combat_2_day/panorama_0.jpg | Bin 30425 -> 0 bytes .../panoramas/combat_2_day/panorama_1.jpg | Bin 18248 -> 0 bytes .../panoramas/combat_2_day/panorama_2.jpg | Bin 14289 -> 0 bytes .../panoramas/combat_2_day/panorama_3.jpg | Bin 19871 -> 0 bytes .../panoramas/combat_2_day/panorama_4.jpg | Bin 18328 -> 0 bytes .../panoramas/combat_2_day/panorama_5.jpg | Bin 8718 -> 0 bytes .../panoramas/combat_2_night/panorama_0.jpg | Bin 14773 -> 0 bytes .../panoramas/combat_2_night/panorama_1.jpg | Bin 11063 -> 0 bytes .../panoramas/combat_2_night/panorama_2.jpg | Bin 5580 -> 0 bytes .../panoramas/combat_2_night/panorama_3.jpg | Bin 17256 -> 0 bytes .../panoramas/combat_2_night/panorama_4.jpg | Bin 12133 -> 0 bytes .../panoramas/combat_2_night/panorama_5.jpg | Bin 4516 -> 0 bytes .../panoramas/crimson_isle/panorama_0.jpg | Bin 0 -> 652486 bytes .../panoramas/crimson_isle/panorama_1.jpg | Bin 0 -> 467208 bytes .../panoramas/crimson_isle/panorama_2.jpg | Bin 0 -> 277432 bytes .../panoramas/crimson_isle/panorama_3.jpg | Bin 0 -> 503887 bytes .../panoramas/crimson_isle/panorama_4.jpg | Bin 0 -> 169662 bytes .../panoramas/crimson_isle/panorama_5.jpg | Bin 0 -> 131721 bytes 19 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_0.jpg delete mode 100644 src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_1.jpg delete mode 100644 src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_2.jpg delete mode 100644 src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_3.jpg delete mode 100644 src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_4.jpg delete mode 100644 src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_5.jpg delete mode 100644 src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_0.jpg delete mode 100644 src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_1.jpg delete mode 100644 src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_2.jpg delete mode 100644 src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_3.jpg delete mode 100644 src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_4.jpg delete mode 100644 src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_5.jpg create mode 100644 src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_0.jpg create mode 100644 src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_1.jpg create mode 100644 src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_2.jpg create mode 100644 src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_3.jpg create mode 100644 src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_4.jpg create mode 100644 src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_5.jpg (limited to 'src/main/resources') diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalWishingCompassSolver.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalWishingCompassSolver.java index 9686e97a..1bc26d50 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalWishingCompassSolver.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalWishingCompassSolver.java @@ -773,7 +773,7 @@ public class CrystalWishingCompassSolver { ChatComponentText chatMessage = new ChatComponentText(destinationMessage); chatMessage.setChatStyle(Utils.createClickStyle(ClickEvent.Action.RUN_COMMAND, skytilsCommand, - EnumChatFormatting.YELLOW + "Set waypoint for wishing target\n")); + EnumChatFormatting.YELLOW + "Set waypoint for wishing target")); mc.thePlayer.addChatMessage(chatMessage); } diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_0.jpg deleted file mode 100644 index 0bfb0d2e..00000000 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_0.jpg and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_1.jpg deleted file mode 100644 index b4890bc5..00000000 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_1.jpg and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_2.jpg deleted file mode 100644 index ea7da9aa..00000000 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_2.jpg and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_3.jpg deleted file mode 100644 index 92013d1a..00000000 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_3.jpg and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_4.jpg deleted file mode 100644 index 2e3da992..00000000 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_4.jpg and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_5.jpg deleted file mode 100644 index 95398c35..00000000 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_day/panorama_5.jpg and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_0.jpg deleted file mode 100644 index 837a2928..00000000 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_0.jpg and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_1.jpg deleted file mode 100644 index 6f988421..00000000 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_1.jpg and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_2.jpg deleted file mode 100644 index 0c664062..00000000 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_2.jpg and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_3.jpg deleted file mode 100644 index 278d92f1..00000000 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_3.jpg and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_4.jpg deleted file mode 100644 index f9205c52..00000000 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_4.jpg and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_5.jpg deleted file mode 100644 index 5ca08bf9..00000000 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_2_night/panorama_5.jpg and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_0.jpg new file mode 100644 index 00000000..efbef9ed Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_1.jpg new file mode 100644 index 00000000..7f895802 Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_2.jpg new file mode 100644 index 00000000..db925a2f Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_3.jpg new file mode 100644 index 00000000..7dbe0246 Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_4.jpg new file mode 100644 index 00000000..78b97952 Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_5.jpg new file mode 100644 index 00000000..e8f64665 Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/panoramas/crimson_isle/panorama_5.jpg differ -- cgit From 1076a433bb6bb57c4d9ab73342d8f8b21c9749fc Mon Sep 17 00:00:00 2001 From: jani270 <69345714+jani270@users.noreply.github.com> Date: Tue, 17 May 2022 17:08:21 +0200 Subject: I cannot believe this (#140) --- .../commands/help/HelpCommand.java | 2 +- .../miscgui/GuiInvButtonEditor.java | 13 +- .../notenoughupdates/invbuttons/presets.json | 923 +++++++++++---------- 3 files changed, 473 insertions(+), 465 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.java index f84b238d..c9f0ec27 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.java @@ -46,7 +46,7 @@ public class HelpCommand extends ClientCommandBase { "\u00a76/neureloadrepo \u00a7r\u00a77- Debug command with repo.", "", "\u00a76\u00a7lDev commands:", - "\u00a76/neupackdev \u00a7r\u00a77- pack creator command - getnpc, getmob(s), getarmorstand(s), getall. Optional radius argument for all. " + "\u00a76/neupackdev \u00a7r\u00a77- pack creator command - getnpc, getmob(s), getarmorstand(s), getall. Optional radius argument for all." ); for (String neuHelpMessage : neuHelpMessages) { Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(neuHelpMessage)); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java index 850d8328..83880846 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java @@ -118,8 +118,6 @@ public class GuiInvButtonEditor extends GuiScreen { put("crypts", "skull:25d2f31ba162fe6272e831aed17f53213db6fa1c4cbe4fc827f3963cc98b9"); put("spiders den", "skull:c754318a3376f470e481dfcd6c83a59aa690ad4b4dd7577fdad1c2ef08d8aee6"); put("top of the nest", "skull:9d7e3b19ac4f3dee9c5677c135333b9d35a7f568b63d1ef4ada4b068b5a25"); - put("blazing fortress", "skull:c3687e25c632bce8aa61e0d64c24e694c3eea629ea944f4cf30dcfb4fbce071"); - put("blazing fortress magma boss", "skull:38957d5023c937c4c41aa2412d43410bda23cf79a9f6ab36b76fef2d7c429"); put("the end", "skull:7840b87d52271d2a755dedc82877e0ed3df67dcc42ea479ec146176b02779a5"); put("the end dragons nest", "skull:a1cd6d2d03f135e7c6b5d6cdae1b3a68743db4eb749faf7341e9fb347aa283b"); put("the park", "skull:a221f813dacee0fef8c59f76894dbb26415478d9ddfc44c2e708a6d3b7549b"); @@ -128,11 +126,18 @@ public class GuiInvButtonEditor extends GuiScreen { put("gold mines", "skull:73bc965d579c3c6039f0a17eb7c2e6faf538c7a5de8e60ec7a719360d0a857a9"); put("deep caverns", "skull:569a1f114151b4521373f34bc14c2963a5011cdc25a6554c48c708cd96ebfc"); put("the barn", "skull:4d3a6bd98ac1833c664c4909ff8d2dc62ce887bdcf3cc5b3848651ae5af6b"); - put("mushroom desert", "skull:2116b9d8df346a25edd05f842e7a9345beaf16dca4118abf5a68c75bcaae10"); + put("mushroom desert", "skull:6b20b23c1aa2be0270f016b4c90d6ee6b8330a17cfef87869d6ad60b2ffbf3b5"); put("dungeon hub", "skull:9b56895b9659896ad647f58599238af532d46db9c1b0389b8bbeb70999dab33d"); - put("dwarven mines", "skull:569a1f114151b4521373f34bc14c2963a5011cdc25a6554c48c708cd96ebfc"); + put("dwarven mines", "skull:51539dddf9ed255ece6348193cd75012c82c93aec381f05572cecf7379711b3b"); put("hotm heart of the mountain", "skull:86f06eaa3004aeed09b3d5b45d976de584e691c0e9cade133635de93d23b9edb"); put("bazaar dude", "skull:c232e3820897429157619b0ee099fec0628f602fff12b695de54aef11d923ad7"); + put("museum", "skull:438cf3f8e54afc3b3f91d20a49f324dca1486007fe545399055524c17941f4dc"); + put("crystal hollows", "skull:21dbe30b027acbceb612563bd877cd7ebb719ea6ed1399027dcee58bb9049d4a"); + put("dwarven forge", "skull:5cbd9f5ec1ed007259996491e69ff649a3106cf920227b1bb3a71ee7a89863f"); + put("forgotton skull", "skull:6becc645f129c8bc2faa4d8145481fab11ad2ee75749d628dcd999aa94e7"); + put("crystal nucleus", "skull:34d42f9c461cee1997b67bf3610c6411bf852b9e5db607bbf626527cfb42912c"); + put("void sepulture", "skull:eb07594e2df273921a77c101d0bfdfa1115abed5b9b2029eb496ceba9bdbb4b3"); + put("crimson isle", "skull:c3687e25c632bce8aa61e0d64c24e694c3eea629ea944f4cf30dcfb4fbce071"); }}; private static LinkedHashMap> presets = null; diff --git a/src/main/resources/assets/notenoughupdates/invbuttons/presets.json b/src/main/resources/assets/notenoughupdates/invbuttons/presets.json index e36f8021..d3065f30 100644 --- a/src/main/resources/assets/notenoughupdates/invbuttons/presets.json +++ b/src/main/resources/assets/notenoughupdates/invbuttons/presets.json @@ -1348,466 +1348,469 @@ ], "All Warps":[ { - "x":87, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"pets", - "icon":"extra:pet_gold" - }, - { - "x":108, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"/wardrobe", - "icon":"extra:armor" - }, - { - "x":129, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"/enderchest", - "icon":"ENDER_CHEST" - }, - { - "x":150, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"hotm", - "icon":"skull:86f06eaa3004aeed09b3d5b45d976de584e691c0e9cade133635de93d23b9edb" - }, - { - "x":87, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"", - "icon":"GOLD_BLOCK" - }, - { - "x":108, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":129, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":150, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"/pv", - "icon":"PAINTING" - }, - { - "x":87, - "y":25, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":105, - "y":25, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":87, - "y":43, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":105, - "y":43, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":143, - "y":35, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":60, - "y":8, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"", - "icon":"extra:baubles_gold" - }, - { - "x":60, - "y":60, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":26, - "y":8, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":26, - "y":60, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":2, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":0, - "command":"/ah", - "icon":"GOLD_BLOCK" - }, - { - "x":2, - "y":22, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":0, - "command":"/bz", - "icon":"GOLD_BARDING" - }, - { - "x":2, - "y":42, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":62, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":-84, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":0, - "command":"/warp home", - "icon":"skull:c9c8881e42915a9d29bb61a16fb26d059913204d265df5b439b3d792acd56" - }, - { - "x":2, - "y":-64, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":0, - "command":"/warp hub", - "icon":"skull:d7cc6687423d0570d556ac53e0676cb563bbdd9717cd8269bdebed6f6d4e7bf8" - }, - { - "x":2, - "y":-44, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":0, - "command":"/warp dungeon_hub", - "icon":"skull:9b56895b9659896ad647f58599238af532d46db9c1b0389b8bbeb70999dab33d" - }, - { - "x":2, - "y":-24, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":0, - "command":"/warp end", - "icon":"skull:7840b87d52271d2a755dedc82877e0ed3df67dcc42ea479ec146176b02779a5" - }, - { - "x":4, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":25, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":46, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":67, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":88, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":109, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":130, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":151, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":22, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":42, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":62, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":-84, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":-64, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":-44, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":-24, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":4, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"/warp barn", - "icon":"skull:4d3a6bd98ac1833c664c4909ff8d2dc62ce887bdcf3cc5b3848651ae5af6b" - }, - { - "x":25, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"/warp desert", - "icon":"skull:2116b9d8df346a25edd05f842e7a9345beaf16dca4118abf5a68c75bcaae10" - }, - { - "x":46, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"/warp gold", - "icon":"skull:73bc965d579c3c6039f0a17eb7c2e6faf538c7a5de8e60ec7a719360d0a857a9" - }, - { - "x":67, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"/warp deep", - "icon":"skull:569a1f114151b4521373f34bc14c2963a5011cdc25a6554c48c708cd96ebfc" - }, - { - "x":88, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"/warp mines", - "icon":"skull:c754318a3376f470e481dfcd6c83a59aa690ad4b4dd7577fdad1c2ef08d8aee6" - }, - { - "x":109, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"/warp park", - "icon":"skull:a221f813dacee0fef8c59f76894dbb26415478d9ddfc44c2e708a6d3b7549b" - }, - { - "x":130, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"/warp spider", - "icon":"skull:9d7e3b19ac4f3dee9c5677c135333b9d35a7f568b63d1ef4ada4b068b5a25" - }, - { - "x":151, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"/warp nether", - "icon":"skull:38957d5023c937c4c41aa2412d43410bda23cf79a9f6ab36b76fef2d7c429" + "x": 87, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "pets", + "icon": "extra:pet_gold" + }, + { + "x": 108, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/wardrobe", + "icon": "extra:armor" + }, + { + "x": 129, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/enderchest", + "icon": "ENDER_CHEST" + }, + { + "x": 150, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "hotm", + "icon": "skull:86f06eaa3004aeed09b3d5b45d976de584e691c0e9cade133635de93d23b9edb" + }, + { + "x": 87, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "", + "icon": "GOLD_BLOCK" + }, + { + "x": 108, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 129, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 150, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/pv", + "icon": "PAINTING" + }, + { + "x": 87, + "y": 25, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 105, + "y": 25, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 87, + "y": 43, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 105, + "y": 43, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 143, + "y": 35, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 60, + "y": 8, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "", + "icon": "extra:baubles_gold" + }, + { + "x": 60, + "y": 60, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 26, + "y": 8, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 26, + "y": 60, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": 2, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/ah", + "icon": "GOLD_BLOCK" + }, + { + "x": 2, + "y": 22, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/bz", + "icon": "GOLD_BARDING" + }, + { + "x": 2, + "y": 42, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": 62, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "warp museum", + "icon": "skull:438cf3f8e54afc3b3f91d20a49f324dca1486007fe545399055524c17941f4dc" + }, + { + "x": 2, + "y": -84, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp home", + "icon": "skull:c9c8881e42915a9d29bb61a16fb26d059913204d265df5b439b3d792acd56" + }, + { + "x": 2, + "y": -64, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp hub", + "icon": "skull:d7cc6687423d0570d556ac53e0676cb563bbdd9717cd8269bdebed6f6d4e7bf8" + }, + { + "x": 2, + "y": -44, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp dungeon_hub", + "icon": "skull:9b56895b9659896ad647f58599238af532d46db9c1b0389b8bbeb70999dab33d" + }, + { + "x": 2, + "y": -24, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp end", + "icon": "skull:7840b87d52271d2a755dedc82877e0ed3df67dcc42ea479ec146176b02779a5" + }, + { + "x": 4, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 25, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 46, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 67, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 88, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 109, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 130, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 151, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 22, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 42, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 62, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": -84, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": -64, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": -44, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "warp barn", + "icon": "skull:4d3a6bd98ac1833c664c4909ff8d2dc62ce887bdcf3cc5b3848651ae5af6b" + }, + { + "x": -19, + "y": -24, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "warp desert", + "icon": "skull:51539dddf9ed255ece6348193cd75012c82c93aec381f05572cecf7379711b3b" + }, + { + "x": 4, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp gold", + "icon": "skull:73bc965d579c3c6039f0a17eb7c2e6faf538c7a5de8e60ec7a719360d0a857a9" + }, + { + "x": 25, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp deep", + "icon": "skull:569a1f114151b4521373f34bc14c2963a5011cdc25a6554c48c708cd96ebfc" + }, + { + "x": 46, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp crystals", + "icon": "skull:21dbe30b027acbceb612563bd877cd7ebb719ea6ed1399027dcee58bb9049d4a" + }, + { + "x": 67, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp forge", + "icon": "skull:5cbd9f5ec1ed007259996491e69ff649a3106cf920227b1bb3a71ee7a89863f" + }, + { + "x": 88, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp mines", + "icon": "skull:6b20b23c1aa2be0270f016b4c90d6ee6b8330a17cfef87869d6ad60b2ffbf3b5" + }, + { + "x": 109, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp park", + "icon": "skull:a221f813dacee0fef8c59f76894dbb26415478d9ddfc44c2e708a6d3b7549b" + }, + { + "x": 130, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp spider", + "icon": "skull:9d7e3b19ac4f3dee9c5677c135333b9d35a7f568b63d1ef4ada4b068b5a25" + }, + { + "x": 151, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp nether", + "icon": "skull:c3687e25c632bce8aa61e0d64c24e694c3eea629ea944f4cf30dcfb4fbce071" } ], "More Buttons":[ -- cgit From 73dbbed409a86328144f2c75f460426e7baa6ae1 Mon Sep 17 00:00:00 2001 From: Roman / Nea Date: Thu, 2 Jun 2022 09:59:07 +0200 Subject: Loomerings (#152) --- .github/CODEOWNERS | 1 + .github/workflows/build.yml | 8 +- CONTRIBUTING.md | 34 ++++++ README.md | 2 + build.gradle.kts | 120 ++++++++++----------- gradle.properties | 3 +- gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle.kts | 32 +++--- .../notenoughupdates/listener/RenderListener.java | 42 ++++---- .../miscfeatures/AuctionSortModeWarning.java | 5 +- .../notenoughupdates/miscfeatures/SlotLocking.java | 21 ++-- .../notenoughupdates/miscgui/GuiCustomEnchant.java | 3 +- .../notenoughupdates/miscgui/KatSitterOverlay.java | 7 +- .../notenoughupdates/miscgui/StorageOverlay.java | 12 +-- .../notenoughupdates/miscgui/TradeWindow.java | 4 +- .../mixins/AccessorEntityAgeable.java | 6 +- .../mixins/AccessorGuiContainer.java | 33 ++++++ .../mixins/AccessorGuiEditSign.java | 12 +++ .../notenoughupdates/mixins/MixinEntityPlayer.java | 2 +- .../mixins/MixinEntityRenderer.java | 2 +- .../notenoughupdates/mixins/MixinMinecraft.java | 2 +- .../overlays/AuctionSearchOverlay.java | 5 +- .../overlays/RancherBootOverlay.java | 3 +- .../notenoughupdates/recipes/CraftingOverlay.java | 19 ++-- src/main/resources/mixins.notenoughupdates.json | 3 + src/main/resources/notenoughupdates_at.cfg | 11 -- 26 files changed, 241 insertions(+), 153 deletions(-) create mode 100644 CONTRIBUTING.md create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiContainer.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiEditSign.java delete mode 100644 src/main/resources/notenoughupdates_at.cfg (limited to 'src/main/resources') diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 2381ceb8..327c4e17 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,2 +1,3 @@ /src/main/java/io/github/moulberry/notenoughupdates/recipes/* @romangraef /src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java @romangraef +/*gradle* @romangraef diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3b6d0cbd..630d8288 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,14 +34,14 @@ jobs: ./.github/workflows/send_webhook_update.sh env: STATUS: WORKING - - name: Set up JDK 8 + - name: Set up JDK 17 uses: actions/setup-java@v2 with: - java-version: 8 - distribution: zulu + java-version: 17 + distribution: temurin cache: gradle - name: Build with Gradle - run: chmod +x ./gradlew && ./gradlew setupCIWorkspace build --no-daemon + run: chmod +x ./gradlew && ./gradlew clean test remapJar --no-daemon - uses: actions/upload-artifact@v2 with: path: build/libs/*-dep.jar diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..d2d14086 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,34 @@ +## Before you contribute + + - Please check your feature / bug isn't already fixed in one of our pre-releases or on [the development branch](https://github.com/NotEnoughUpdates/NotEnoughUpdates/tree/master/). + - Consider joining our [Discord](https://discord.gg/moulberry) to check in on newest developments by other people, or to get help with problems you encounter. + - Please check that your feature idea complies with the [Hypixel Rules](https://hypixel.net/rules) + - Check that your feature idea isn't already done in other mods. (E.g. Dungeon Solver) + +## Setting up a development environment + +### Software prerequisites + + - Install a Java Development Kit (You will need both version 8 and version 17) [Eclipse Temurin Download](https://adoptium.net/temurin/releases) for convenience, however any JDK will do. + - Install Git. [Windows download](https://git-scm.com/download/win) + - Install an IDE, such as [Jetbrains IntelliJ IDEA](https://www.jetbrains.com/idea/download). + +### Software configuration + + - Clone the NEU repository using `git clone https://github.com/NotEnoughUpdates/NotEnoughUpdates`. + - Import that folder as a Gradle Project in your IDE (IntelliJ should autodetect it as gradle if you select the `NotEnoughUpdates` folder in the Open dialog) + - Set your project SDK to your 1.8 JDK. This can be done in the modules settings (CTRL+ALT+SHIFT+S) in IntelliJ. + - Set your gradle JVM to your 1.17 JDK. This can be done by searching for `gradle jvm` in the CTRL+SHIFT+A dialog in IntelliJ. + - Run the `genRuns` gradle task. In IntelliJ that can be done in the gradle tab on the right side of your IDE. + - Optionally, run the `genSources` gradle task. + - Run the `Minecraft Client` to make sure that everything works. + + +## Logging into Hypixel in a development environment. + +Use [DevAuth](https://github.com/DJtheRedstoner/DevAuth). Download the `forge-legacy` version, and put it into the `run/mods` folder. Then follow the configuration instructions in the [DevAuth README](https://github.com/DJtheRedstoner/DevAuth#configuration-file) + +## Hot Reloading + +Hot Reloading is possible by first launching using the IntelliJ debugger with [DCEVM 1.8](https://dcevm.github.io/). Then running a regular build and confirming the reload prompt. This can cause issues (especially with commands), so restarting is sometimes still necessary. + diff --git a/README.md b/README.md index 2b771bb9..f4b2c15d 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,8 @@ NotEnoughUpdates (NEU) is a feature rich 1.8.9 Minecraft forge mod for Hypixel S ## Getting Started +If you want to install NEU for development purposes, see [CONTRIBUTING](CONTRIBUTING.md) + **Installing Forge:** 1. Run normal Minecraft 1.8.9 and once it reaches the title screen wait about 5 seconds and close it. diff --git a/build.gradle.kts b/build.gradle.kts index b9374fc0..4ebdd218 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,24 +1,25 @@ -import net.minecraftforge.gradle.user.ReobfMappingType import java.io.ByteArrayOutputStream plugins { + idea java - id("net.minecraftforge.gradle.forge") version "6f5327738df" - id("com.github.johnrengelman.shadow") version "6.1.0" - id("org.spongepowered.mixin") version "d75e32e" + id("gg.essential.loom") version "0.10.0.+" + id("dev.architectury.architectury-pack200") version "0.1.3" + id("com.github.johnrengelman.shadow") version "7.1.2" } + +// Build metadata + group = "io.github.moulberry" val baseVersion = "2.1" val buildExtra = mutableListOf() val buildVersion = properties["BUILD_VERSION"] as? String -if (buildVersion != null) - buildExtra.add(buildVersion) +if (buildVersion != null) buildExtra.add(buildVersion) val githubCi = properties["GITHUB_ACTIONS"] as? String -if (githubCi == "true") - buildExtra.add("ci") +if (githubCi == "true") buildExtra.add("ci") val stdout = ByteArrayOutputStream() val execResult = exec { @@ -43,53 +44,58 @@ if (gitDiffStdout.toByteArray().isNotEmpty()) { version = baseVersion + (if (buildExtra.isEmpty()) "" else buildExtra.joinToString(prefix = "+", separator = ".")) -// Toolchains: - -java { - // Forge Gradle currently prevents using the toolchain: toolchain.languageVersion.set(JavaLanguageVersion.of(8)) - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 -} - -minecraft { - version = "1.8.9-11.15.1.2318-1.8.9" - runDir = "run" - mappings = "stable_22" - makeObfSourceJar = false - clientJvmArgs.addAll( - listOf( - "-Dmixin.debug=true", - "-Dasmhelper.verbose=true" - ) - ) - clientRunArgs.addAll( - listOf( - "--tweakClass org.spongepowered.asm.launch.MixinTweaker", - "--mixin mixins.notenoughupdates.json" - ) - ) +// Minecraft configuration: +loom { + launchConfigs { + "client" { + property("mixin.debug", "true") + property("asmhelper.verbose", "true") + arg("--tweakClass", "org.spongepowered.asm.launch.MixinTweaker") + arg("--mixin", "mixins.notenoughupdates.json") + } + } + runConfigs { + "server" { + isIdeConfigGenerated = false + } + } + forge { + pack200Provider.set(dev.architectury.pack200.java.Pack200Adapter()) + mixinConfig("mixins.notenoughupdates.json") + } + mixin { + defaultRefmapName.set("mixins.notenoughupdates.refmap.json") + } } -mixin { - add(sourceSets.main.get(), "mixins.notenoughupdates.refmap.json") -} // Dependencies: - repositories { - mavenCentral() - maven("https://repo.spongepowered.org/maven/") + mavenCentral() + mavenLocal() + maven("https://repo.spongepowered.org/maven/") + maven("https://jitpack.io") } dependencies { - implementation("org.spongepowered:mixin:0.7.11-SNAPSHOT") - annotationProcessor("org.spongepowered:mixin:0.7.11-SNAPSHOT") - implementation("com.fasterxml.jackson.core:jackson-core:2.13.1") - implementation("info.bliki.wiki:bliki-core:3.1.0") + minecraft("com.mojang:minecraft:1.8.9") + mappings("de.oceanlabs.mcp:mcp_stable:22-1.8.9") + forge("net.minecraftforge:forge:1.8.9-11.15.1.2318-1.8.9") + + implementation("org.spongepowered:mixin:0.7.11-SNAPSHOT") + annotationProcessor("org.spongepowered:mixin:0.8.4-SNAPSHOT") + implementation("com.fasterxml.jackson.core:jackson-core:2.13.1") + implementation("info.bliki.wiki:bliki-core:3.1.0") testImplementation("org.junit.jupiter:junit-jupiter:5.8.2") + // modImplementation("io.github.notenoughupdates:MoulConfig:0.0.1") } + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(8)) +} + // Tasks: tasks.withType(JavaCompile::class) { @@ -97,7 +103,7 @@ tasks.withType(JavaCompile::class) { } tasks.named("test") { - useJUnitPlatform() + useJUnitPlatform() } tasks.withType(Jar::class) { @@ -108,18 +114,21 @@ tasks.withType(Jar::class) { this["MixinConfigs"] = "mixins.notenoughupdates.json" this["FMLCorePluginContainsFMLMod"] = "true" this["ForceLoadAsMod"] = "true" - this["FMLAT"] = "notenoughupdates_at.cfg" } } -tasks.shadowJar { +val remapJar by tasks.named("remapJar") { archiveClassifier.set("dep") + from(tasks.shadowJar) +} + +tasks.shadowJar { + archiveClassifier.set("dep-dev") exclude( - "module-info.class", - "LICENSE.txt" + "module-info.class", "LICENSE.txt" ) dependencies { - include(dependency("org.spongepowered:mixin:0.7.11-SNAPSHOT")) + include(dependency("org.spongepowered:mixin:0.8.5")) include(dependency("commons-io:commons-io")) include(dependency("org.apache.commons:commons-lang3")) @@ -137,23 +146,14 @@ tasks.shadowJar { relocate("org.slf4j") } -tasks.build.get().dependsOn(tasks.shadowJar) - -reobf { - create("shadowJar") { - mappingType = ReobfMappingType.SEARGE - } -} +tasks.assemble.get().dependsOn(remapJar) tasks.processResources { - from(sourceSets.main.get().resources.srcDirs) filesMatching("mcmod.info") { expand( - "version" to project.version, - "mcversion" to minecraft.version + "version" to project.version, "mcversion" to "1.8.9" ) } - rename("(.+_at.cfg)".toPattern(), "META-INF/$1") } sourceSets.main { diff --git a/gradle.properties b/gradle.properties index bf86fb71..87c0a7c6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1,2 @@ -org.gradle.jvmargs=-Xmx2G \ No newline at end of file +org.gradle.jvmargs=-Xmx2G +loom.platform=forge diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c1ff7937..eed1d25a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip diff --git a/settings.gradle.kts b/settings.gradle.kts index 44138312..4df48664 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,17 +1,21 @@ pluginManagement { repositories { - mavenCentral() - gradlePluginPortal() - maven(url = "https://jitpack.io/") - maven(url = "https://maven.minecraftforge.net/") - maven(url = "https://repo.spongepowered.org/maven/") - } - resolutionStrategy { - eachPlugin { - when (requested.id.id) { - "net.minecraftforge.gradle.forge" -> useModule("com.github.asbyth:ForgeGradle:${requested.version}") - "org.spongepowered.mixin" -> useModule("com.github.LxGaming:MixinGradle:${requested.version}") - } - } - } + mavenCentral() + gradlePluginPortal() + maven("https://oss.sonatype.org/content/repositories/snapshots") + maven("https://maven.architectury.dev/") + maven("https://maven.fabricmc.net") + maven(url = "https://jitpack.io/") + maven(url = "https://maven.minecraftforge.net/") + maven(url = "https://repo.spongepowered.org/maven/") + maven(url = "https://repo.sk1er.club/repository/maven-releases/") + maven(url = "https://maven.architectury.dev/") + } + resolutionStrategy { + eachPlugin { + when (requested.id.id) { + "gg.essential.loom" -> useModule("gg.essential:architectury-loom:${requested.version}") + } + } + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java index fcba864c..610412ac 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java @@ -26,6 +26,7 @@ import io.github.moulberry.notenoughupdates.miscgui.GuiInvButtonEditor; import io.github.moulberry.notenoughupdates.miscgui.GuiItemRecipe; import io.github.moulberry.notenoughupdates.miscgui.StorageOverlay; import io.github.moulberry.notenoughupdates.miscgui.TradeWindow; +import io.github.moulberry.notenoughupdates.mixins.AccessorGuiContainer; import io.github.moulberry.notenoughupdates.options.NEUConfig; import io.github.moulberry.notenoughupdates.overlays.AuctionSearchOverlay; import io.github.moulberry.notenoughupdates.overlays.OverlayManager; @@ -333,10 +334,10 @@ public class RenderListener { if (event.gui instanceof GuiContainer) { try { - int xSize = ((GuiContainer) event.gui).xSize; - int ySize = ((GuiContainer) event.gui).ySize; - int guiLeft = ((GuiContainer) event.gui).guiLeft; - int guiTop = ((GuiContainer) event.gui).guiTop; + int xSize = ((AccessorGuiContainer) event.gui).getXSize(); + int ySize = ((AccessorGuiContainer) event.gui).getYSize(); + int guiLeft = ((AccessorGuiContainer) event.gui).getGuiLeft(); + int guiTop = ((AccessorGuiContainer) event.gui).getGuiTop(); hoverInv = event.getMouseX() > guiLeft && event.getMouseX() < guiLeft + xSize && event.getMouseY() > guiTop && event.getMouseY() < guiTop + ySize; @@ -458,10 +459,10 @@ public class RenderListener { GlStateManager.translate(0, 0, zOffset); - int xSize = ((GuiContainer) event.gui).xSize; - int ySize = ((GuiContainer) event.gui).ySize; - int guiLeft = ((GuiContainer) event.gui).guiLeft; - int guiTop = ((GuiContainer) event.gui).guiTop; + int xSize = ((AccessorGuiContainer) event.gui).getXSize(); + int ySize = ((AccessorGuiContainer) event.gui).getYSize(); + int guiLeft = ((AccessorGuiContainer) event.gui).getGuiLeft(); + int guiTop = ((AccessorGuiContainer) event.gui).getGuiTop(); if (!NEUApi.disableInventoryButtons) { for (NEUConfig.InventoryButton button : NotEnoughUpdates.INSTANCE.config.hidden.inventoryButtons) { @@ -565,10 +566,10 @@ public class RenderListener { if (!doInventoryButtons) return; if (NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard() && NotificationHandler.shouldRenderOverlay(event.gui) && event.gui instanceof GuiContainer) { - int xSize = ((GuiContainer) event.gui).xSize; - int ySize = ((GuiContainer) event.gui).ySize; - int guiLeft = ((GuiContainer) event.gui).guiLeft; - int guiTop = ((GuiContainer) event.gui).guiTop; + int xSize = ((AccessorGuiContainer) event.gui).getXSize(); + int ySize = ((AccessorGuiContainer) event.gui).getYSize(); + int guiLeft = ((AccessorGuiContainer) event.gui).getGuiLeft(); + int guiTop = ((AccessorGuiContainer) event.gui).getGuiTop(); if (!NEUApi.disableInventoryButtons) { for (NEUConfig.InventoryButton button : NotEnoughUpdates.INSTANCE.config.hidden.inventoryButtons) { @@ -644,9 +645,9 @@ public class RenderListener { if (gui instanceof GuiChest && NotEnoughUpdates.INSTANCE.config.dungeons.profitDisplayLoc != 2) { try { - int xSize = ((GuiContainer) gui).xSize; - int guiLeft = ((GuiContainer) gui).guiLeft; - int guiTop = ((GuiContainer) gui).guiTop; + int xSize = ((AccessorGuiContainer) gui).getXSize(); + int guiLeft = ((AccessorGuiContainer) gui).getGuiLeft(); + int guiTop = ((AccessorGuiContainer) gui).getGuiTop(); GuiChest eventGui = (GuiChest) gui; ContainerChest cc = (ContainerChest) eventGui.inventorySlots; @@ -899,8 +900,7 @@ public class RenderListener { GuiChest eventGui = (GuiChest) guiScreen; ContainerChest cc = (ContainerChest) eventGui.inventorySlots; containerName = cc.getLowerChestInventory().getDisplayName().getUnformattedText(); - if (containerName.contains(" Profile") && BetterContainers.profileViewerStackIndex != -1 && - eventGui.isMouseOverSlot(cc.inventorySlots.get(BetterContainers.profileViewerStackIndex), mouseX, mouseY) && + if (containerName.contains(" Profile") && BetterContainers.profileViewerStackIndex != -1 && ((AccessorGuiContainer)eventGui).doIsMouseOverSlot(cc.inventorySlots.get(BetterContainers.profileViewerStackIndex), mouseX, mouseY) && Mouse.getEventButton() >= 0) { event.setCanceled(true); if (Mouse.getEventButtonState() && eventGui.inventorySlots.inventorySlots.get(22).getStack() != null && @@ -959,10 +959,10 @@ public class RenderListener { if (!doInventoryButtons) return; if (NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard() && NotificationHandler.shouldRenderOverlay(event.gui) && Mouse.getEventButton() >= 0 && event.gui instanceof GuiContainer) { - int xSize = ((GuiContainer) event.gui).xSize; - int ySize = ((GuiContainer) event.gui).ySize; - int guiLeft = ((GuiContainer) event.gui).guiLeft; - int guiTop = ((GuiContainer) event.gui).guiTop; + int xSize = ((AccessorGuiContainer) event.gui).getXSize(); + int ySize = ((AccessorGuiContainer) event.gui).getYSize(); + int guiLeft = ((AccessorGuiContainer) event.gui).getGuiLeft(); + int guiTop = ((AccessorGuiContainer) event.gui).getGuiTop(); if (!NEUApi.disableInventoryButtons) { for (NEUConfig.InventoryButton button : NotEnoughUpdates.INSTANCE.config.hidden.inventoryButtons) { if (!button.isActive()) continue; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionSortModeWarning.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionSortModeWarning.java index 4b526185..5137c90f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionSortModeWarning.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionSortModeWarning.java @@ -3,6 +3,7 @@ package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.core.util.render.RenderUtils; import io.github.moulberry.notenoughupdates.core.util.render.TextRenderUtils; +import io.github.moulberry.notenoughupdates.mixins.AccessorGuiContainer; import io.github.moulberry.notenoughupdates.util.SBInfo; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; @@ -57,8 +58,8 @@ public class AuctionSortModeWarning { String warningText = "\u00a7aSort: " + selectedColour + selectedSort; int warningLength = Minecraft.getMinecraft().fontRendererObj.getStringWidth(warningText); - int centerX = chest.guiLeft + chest.xSize / 2 + 9; - int centerY = chest.guiTop + 26; + int centerX = ((AccessorGuiContainer)chest).getGuiLeft() + ((AccessorGuiContainer)chest).getXSize() / 2 + 9; + int centerY = ((AccessorGuiContainer)chest).getGuiTop() + 26; RenderUtils.drawFloatingRectDark(centerX - warningLength / 2 - 4, centerY - 6, warningLength + 8, 12, false diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/SlotLocking.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/SlotLocking.java index 743625f5..9292c0d3 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/SlotLocking.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/SlotLocking.java @@ -5,6 +5,7 @@ import com.google.gson.GsonBuilder; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.core.config.KeybindHelper; import io.github.moulberry.notenoughupdates.core.util.render.RenderUtils; +import io.github.moulberry.notenoughupdates.mixins.AccessorGuiContainer; import io.github.moulberry.notenoughupdates.util.SBInfo; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.ISound; @@ -200,7 +201,7 @@ public class SlotLocking { int mouseX = Mouse.getX() * scaledWidth / Minecraft.getMinecraft().displayWidth; int mouseY = scaledHeight - Mouse.getY() * scaledHeight / Minecraft.getMinecraft().displayHeight - 1; - Slot slot = container.getSlotAtPosition(mouseX, mouseY); + Slot slot = ((AccessorGuiContainer) container).doGetSlotAtPosition(mouseX, mouseY); if (slot != null && slot.getSlotIndex() != 8 && slot.inventory == Minecraft.getMinecraft().thePlayer.inventory) { int slotNum = slot.getSlotIndex(); if (slotNum >= 0 && slotNum <= 39) { @@ -280,7 +281,7 @@ public class SlotLocking { int mouseX = Mouse.getX() * scaledWidth / Minecraft.getMinecraft().displayWidth; int mouseY = scaledHeight - Mouse.getY() * scaledHeight / Minecraft.getMinecraft().displayHeight - 1; - Slot slot = container.getSlotAtPosition(mouseX, mouseY); + Slot slot = ((AccessorGuiContainer) container).doGetSlotAtPosition(mouseX, mouseY); if (slot != null && slot.getSlotIndex() != 8 && slot.inventory == Minecraft.getMinecraft().thePlayer.inventory) { int slotNum = slot.getSlotIndex(); if (slotNum >= 0 && slotNum <= 39) { @@ -378,10 +379,10 @@ public class SlotLocking { if (!(Minecraft.getMinecraft().currentScreen instanceof GuiContainer)) { return; } - GuiContainer container = (GuiContainer) Minecraft.getMinecraft().currentScreen; + AccessorGuiContainer container = (AccessorGuiContainer) Minecraft.getMinecraft().currentScreen; - int x1 = container.guiLeft + pairingSlot.xDisplayPosition + 8; - int y1 = container.guiTop + pairingSlot.yDisplayPosition + 8; + int x1 = container.getGuiLeft() + pairingSlot.xDisplayPosition + 8; + int y1 = container.getGuiTop() + pairingSlot.yDisplayPosition + 8; int x2 = event.mouseX; int y2 = event.mouseY; @@ -514,7 +515,7 @@ public class SlotLocking { return; } - boolean hoverOverSlot = container.isMouseOverSlot(slot, mouseX, mouseY); + boolean hoverOverSlot = ((AccessorGuiContainer) container).doIsMouseOverSlot(slot, mouseX, mouseY); if (hoverOverSlot || slot.getSlotIndex() >= 9) { Minecraft.getMinecraft().getTextureManager().bindTexture(BOUND); @@ -545,8 +546,8 @@ public class SlotLocking { ); } } else if (pairingSlot != null && lockKeyHeld && slot.getSlotIndex() < 8) { - int x1 = container.guiLeft + pairingSlot.xDisplayPosition; - int y1 = container.guiTop + pairingSlot.yDisplayPosition; + int x1 = ((AccessorGuiContainer)container).getGuiLeft() + pairingSlot.xDisplayPosition; + int y1 = ((AccessorGuiContainer)container).getGuiTop() + pairingSlot.yDisplayPosition; if (mouseX <= x1 || mouseX >= x1 + 16 || mouseY <= y1 || mouseY >= y1 + 16) { @@ -634,8 +635,8 @@ public class SlotLocking { int mouseX = Mouse.getX() * scaledWidth / Minecraft.getMinecraft().displayWidth; int mouseY = scaledHeight - Mouse.getY() * scaledHeight / Minecraft.getMinecraft().displayHeight - 1; - int x1 = container.guiLeft + pairingSlot.xDisplayPosition; - int y1 = container.guiTop + pairingSlot.yDisplayPosition; + int x1 = ((AccessorGuiContainer)container).getGuiLeft() + pairingSlot.xDisplayPosition; + int y1 = ((AccessorGuiContainer)container).getGuiTop() + pairingSlot.yDisplayPosition; if (mouseX <= x1 || mouseX >= x1 + 16 || mouseY <= y1 || mouseY >= y1 + 16) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiCustomEnchant.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiCustomEnchant.java index 25869452..42340259 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiCustomEnchant.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiCustomEnchant.java @@ -9,6 +9,7 @@ import io.github.moulberry.notenoughupdates.core.GuiElementTextField; import io.github.moulberry.notenoughupdates.core.util.lerp.LerpingFloat; import io.github.moulberry.notenoughupdates.core.util.lerp.LerpingInteger; import io.github.moulberry.notenoughupdates.miscfeatures.SlotLocking; +import io.github.moulberry.notenoughupdates.mixins.AccessorGuiContainer; import io.github.moulberry.notenoughupdates.options.NEUConfig; import io.github.moulberry.notenoughupdates.util.Constants; import io.github.moulberry.notenoughupdates.util.Utils; @@ -945,7 +946,7 @@ public class GuiCustomEnchant extends Gui { GlStateManager.pushMatrix(); GlStateManager.translate(guiLeft + 102 - 8, guiTop + 191 - (inventoryStartIndex / 9 * 18 + 89), 0); Slot slot = cc.getSlot(inventoryStartIndex + i); - chest.drawSlot(slot); + ((AccessorGuiContainer)chest).doDrawSlot(slot); GlStateManager.popMatrix(); if (mouseX >= itemX && mouseX < itemX + 18 && diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/KatSitterOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/KatSitterOverlay.java index 107d4db2..5a763411 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/KatSitterOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/KatSitterOverlay.java @@ -2,6 +2,7 @@ package io.github.moulberry.notenoughupdates.miscgui; import com.google.gson.JsonObject; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.mixins.AccessorGuiContainer; import io.github.moulberry.notenoughupdates.util.Utils; import io.github.moulberry.notenoughupdates.util.XPInformation; import net.minecraft.client.Minecraft; @@ -61,12 +62,12 @@ public class KatSitterOverlay { int currentWidth = font.getStringWidth(currentText); String upgradedText = "Upgraded pet level: " + upgradedLevel; int upgradedWidth = font.getStringWidth(upgradedText); - int left = gui.guiLeft - 30 - (upgradedLevel == null ? Math.max(upgradedWidth, currentWidth) : currentWidth); + int left = ((AccessorGuiContainer)gui).getGuiLeft() - 30 - (upgradedLevel == null ? Math.max(upgradedWidth, currentWidth) : currentWidth); GlStateManager.disableLighting(); GlStateManager.color(1F, 1F, 1F, 1F); - Utils.drawStringScaled(currentText, font, left, gui.guiTop + 25, false, 0xFFD700, 1F); + Utils.drawStringScaled(currentText, font, left, ((AccessorGuiContainer)gui).getGuiTop() + 25, false, 0xFFD700, 1F); if (upgradedLevel != null) - Utils.drawStringScaled(upgradedText, font, left, gui.guiTop + 45, false, 0xFFD700, 1F); + Utils.drawStringScaled(upgradedText, font, left, ((AccessorGuiContainer)gui).getGuiTop() + 45, false, 0xFFD700, 1F); } public String nextRarity(String currentRarity) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/StorageOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/StorageOverlay.java index ac3ddfb8..cb81589d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/StorageOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/StorageOverlay.java @@ -12,6 +12,7 @@ import io.github.moulberry.notenoughupdates.core.util.lerp.LerpingInteger; import io.github.moulberry.notenoughupdates.miscfeatures.BetterContainers; import io.github.moulberry.notenoughupdates.miscfeatures.SlotLocking; import io.github.moulberry.notenoughupdates.miscfeatures.StorageManager; +import io.github.moulberry.notenoughupdates.mixins.AccessorGuiContainer; import io.github.moulberry.notenoughupdates.util.NotificationHandler; import io.github.moulberry.notenoughupdates.util.SpecialColour; import io.github.moulberry.notenoughupdates.util.Utils; @@ -737,7 +738,7 @@ public class StorageOverlay extends GuiElement { if (storageId == currentPage) { Utils.hasEffectOverride = true; GlStateManager.translate(storageX - 7, storageY - 17 - 18, 0); - guiChest.drawSlot(containerChest.getSlot(k + 9)); + ((AccessorGuiContainer)guiChest).doDrawSlot(containerChest.getSlot(k + 9)); GlStateManager.translate(-storageX + 7, -storageY + 17 + 18, 0); Utils.hasEffectOverride = false; } else { @@ -752,7 +753,7 @@ public class StorageOverlay extends GuiElement { } else if (storageId == currentPage) { Utils.hasEffectOverride = true; GlStateManager.translate(storageX - 7, storageY - 17 - 18, 0); - guiChest.drawSlot(containerChest.getSlot(k + 9)); + ((AccessorGuiContainer)guiChest).doDrawSlot(containerChest.getSlot(k + 9)); GlStateManager.translate(-storageX + 7, -storageY + 17 + 18, 0); Utils.hasEffectOverride = false; } else { @@ -1268,7 +1269,7 @@ public class StorageOverlay extends GuiElement { GlStateManager.pushMatrix(); GlStateManager.translate(181 - 8, storageViewSize + 18 - (inventoryStartIndex / 9 * 18 + 31), 0); - guiChest.drawSlot(containerChest.inventorySlots.get(inventoryStartIndex + i)); + ((AccessorGuiContainer)guiChest).doDrawSlot(containerChest.inventorySlots.get(inventoryStartIndex + i)); GlStateManager.popMatrix(); if (!searchBar.getText().isEmpty()) { @@ -1302,7 +1303,7 @@ public class StorageOverlay extends GuiElement { //Utils.drawItemStack(playerItems[i+9], itemX, itemY); GlStateManager.pushMatrix(); GlStateManager.translate(181 - 8, storageViewSize + 18 - (inventoryStartIndex / 9 * 18 + 31), 0); - guiChest.drawSlot(containerChest.inventorySlots.get(inventoryStartIndex + 9 + i)); + ((AccessorGuiContainer)guiChest).doDrawSlot(containerChest.inventorySlots.get(inventoryStartIndex + 9 + i)); GlStateManager.popMatrix(); if (!searchBar.getText().isEmpty()) { @@ -2183,8 +2184,7 @@ public class StorageOverlay extends GuiElement { for (Slot slot : container.inventorySlots.inventorySlots) { if (slot != null && - slot.inventory == Minecraft.getMinecraft().thePlayer.inventory && - container.isMouseOverSlot(slot, mouseX, mouseY)) { + slot.inventory == Minecraft.getMinecraft().thePlayer.inventory && ((AccessorGuiContainer)container).doIsMouseOverSlot(slot, mouseX, mouseY)) { SlotLocking.getInstance().toggleLock(slot.getSlotIndex()); return true; } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/TradeWindow.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/TradeWindow.java index 1c5bc2e3..1f47e6ee 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/TradeWindow.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/TradeWindow.java @@ -4,6 +4,7 @@ import com.google.gson.JsonObject; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.core.config.KeybindHelper; import io.github.moulberry.notenoughupdates.miscfeatures.SlotLocking; +import io.github.moulberry.notenoughupdates.mixins.AccessorGuiContainer; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.ScaledResolution; @@ -559,8 +560,7 @@ public class TradeWindow { int y = 104 + 18 * (index / 9); if (index < 9) y = 180; - chest.drawSlot(new Slot(Minecraft.getMinecraft().thePlayer.inventory, index, guiLeft + x, guiTop + y)); - //Utils.drawItemStack(stack, guiLeft+x, guiTop+y); + ((AccessorGuiContainer)chest).doDrawSlot(new Slot(Minecraft.getMinecraft().thePlayer.inventory, index, guiLeft + x, guiTop + y)); int col = 0x80ffffff; if (SlotLocking.getInstance().isSlotIndexLocked(index)) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityAgeable.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityAgeable.java index 9228f93d..e41c12eb 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityAgeable.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityAgeable.java @@ -1,12 +1,14 @@ package io.github.moulberry.notenoughupdates.mixins; import net.minecraft.entity.EntityAgeable; +import net.minecraft.inventory.Slot; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; +import org.spongepowered.asm.mixin.gen.Invoker; @Mixin(EntityAgeable.class) public interface AccessorEntityAgeable { - @Accessor(value = "growingAge") - void setGrowingAgeDirect(int newValue); + @Accessor(value = "growingAge") + void setGrowingAgeDirect(int newValue); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiContainer.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiContainer.java new file mode 100644 index 00000000..3966317b --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiContainer.java @@ -0,0 +1,33 @@ +package io.github.moulberry.notenoughupdates.mixins; + +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.inventory.Slot; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; +import org.spongepowered.asm.mixin.gen.Invoker; + +@Mixin(GuiContainer.class) +public interface AccessorGuiContainer { + + @Invoker("getSlotAtPosition") + Slot doGetSlotAtPosition(int x, int y); + + @Invoker("drawSlot") + void doDrawSlot(Slot slot); + + @Invoker("isMouseOverSlot") + boolean doIsMouseOverSlot(Slot slot, int x, int y); + + @Accessor("guiLeft") + int getGuiLeft(); + + @Accessor("guiTop") + int getGuiTop(); + + @Accessor("xSize") + int getXSize(); + + @Accessor("ySize") + int getYSize(); + +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiEditSign.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiEditSign.java new file mode 100644 index 00000000..ea945d5d --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiEditSign.java @@ -0,0 +1,12 @@ +package io.github.moulberry.notenoughupdates.mixins; + +import net.minecraft.client.gui.inventory.GuiEditSign; +import net.minecraft.tileentity.TileEntitySign; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(GuiEditSign.class) +public interface AccessorGuiEditSign { + @Accessor("tileSign") + TileEntitySign getTileSign(); +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityPlayer.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityPlayer.java index e15d18eb..280e964e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityPlayer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityPlayer.java @@ -8,7 +8,7 @@ import net.minecraft.scoreboard.ScorePlayerTeam; import net.minecraft.scoreboard.Scoreboard; import net.minecraft.util.BlockPos; import net.minecraft.world.World; -import org.spongepowered.asm.lib.Opcodes; +import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityRenderer.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityRenderer.java index e98c3330..ab448660 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityRenderer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityRenderer.java @@ -9,7 +9,7 @@ import net.minecraft.client.settings.GameSettings; import net.minecraft.entity.Entity; import net.minecraftforge.client.ForgeHooksClient; import org.lwjgl.util.vector.Vector3f; -import org.spongepowered.asm.lib.Opcodes; +import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinMinecraft.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinMinecraft.java index b01e9609..8708afd8 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinMinecraft.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinMinecraft.java @@ -2,7 +2,7 @@ package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.miscfeatures.SlotLocking; import net.minecraft.client.Minecraft; -import org.spongepowered.asm.lib.Opcodes; +import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java index 36b37766..f36c0958 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java @@ -5,6 +5,7 @@ import com.google.gson.JsonObject; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.core.GuiElementTextField; import io.github.moulberry.notenoughupdates.core.GuiScreenElementWrapper; +import io.github.moulberry.notenoughupdates.mixins.AccessorGuiEditSign; import io.github.moulberry.notenoughupdates.options.NEUConfigEditor; import io.github.moulberry.notenoughupdates.util.Constants; import io.github.moulberry.notenoughupdates.util.SBInfo; @@ -86,7 +87,7 @@ public class AuctionSearchOverlay { if (lastContainer == null) return false; if (!lastContainer.equals("Auctions Browser") && !lastContainer.startsWith("Auctions: ")) return false; - TileEntitySign tes = ((GuiEditSign) Minecraft.getMinecraft().currentScreen).tileSign; + TileEntitySign tes = ((AccessorGuiEditSign) Minecraft.getMinecraft().currentScreen).getTileSign(); if (tes == null) return false; if (tes.getPos().getY() != 0) return false; @@ -289,7 +290,7 @@ public class AuctionSearchOverlay { } } - TileEntitySign tes = ((GuiEditSign) Minecraft.getMinecraft().currentScreen).tileSign; + TileEntitySign tes = ((AccessorGuiEditSign) Minecraft.getMinecraft().currentScreen).getTileSign(); String search = searchString.trim(); if (searchStringExtra != null && !searchStringExtra.isEmpty()) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/RancherBootOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/RancherBootOverlay.java index 94bd53a2..9661812f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/RancherBootOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/RancherBootOverlay.java @@ -2,6 +2,7 @@ package io.github.moulberry.notenoughupdates.overlays; import io.github.moulberry.notenoughupdates.core.GuiElementTextField; import io.github.moulberry.notenoughupdates.core.util.GuiElementSlider; +import io.github.moulberry.notenoughupdates.mixins.AccessorGuiEditSign; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; @@ -31,7 +32,7 @@ public class RancherBootOverlay { if (!(Minecraft.getMinecraft().currentScreen instanceof GuiEditSign)) return false; - TileEntitySign tes = ((GuiEditSign) Minecraft.getMinecraft().currentScreen).tileSign; + TileEntitySign tes = ((AccessorGuiEditSign) Minecraft.getMinecraft().currentScreen).getTileSign(); if (tes == null) return false; if (tes.getPos().getY() != 0) return false; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingOverlay.java index 9d305e1d..45675945 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingOverlay.java @@ -1,6 +1,7 @@ package io.github.moulberry.notenoughupdates.recipes; import io.github.moulberry.notenoughupdates.NEUManager; +import io.github.moulberry.notenoughupdates.mixins.AccessorGuiContainer; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; @@ -49,10 +50,10 @@ public class CraftingOverlay { ) { forEachSlot(chest, (recipeIngredient, slot) -> { if (Utils.isWithinRect( - mouseX, mouseY, - slot.xDisplayPosition + gui.guiLeft, - slot.yDisplayPosition + gui.guiTop, - 16, 16 + mouseX, mouseY, + slot.xDisplayPosition + ((AccessorGuiContainer) gui).getGuiLeft(), + slot.yDisplayPosition + ((AccessorGuiContainer) gui).getGuiTop(), + 16, 16 )) block.accept(recipeIngredient, slot); }); @@ -80,9 +81,9 @@ public class CraftingOverlay { if (currentRecipe.getCraftText() != null) { FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; fontRenderer.drawStringWithShadow( - currentRecipe.getCraftText(), - Utils.peekGuiScale().getScaledWidth() / 2f - fontRenderer.getStringWidth(currentRecipe.getCraftText()) / 2f, - guiChest.guiTop - 15f, 0x808080 + currentRecipe.getCraftText(), + Utils.peekGuiScale().getScaledWidth() / 2f - fontRenderer.getStringWidth(currentRecipe.getCraftText()) / 2f, + ((AccessorGuiContainer) guiChest).getGuiTop() - 15f, 0x808080 ); } renderTooltip(guiChest, chest); @@ -140,8 +141,8 @@ public class CraftingOverlay { } private void drawItemStack(GuiChest gui, Slot slot, ItemStack item) { - int slotX = slot.xDisplayPosition + gui.guiLeft; - int slotY = slot.yDisplayPosition + gui.guiTop; + int slotX = slot.xDisplayPosition + ((AccessorGuiContainer)gui).getGuiLeft(); + int slotY = slot.yDisplayPosition + ((AccessorGuiContainer)gui).getGuiTop(); Gui.drawRect(slotX, slotY, slotX + 16, slotY + 16, 0x64ff0000); if (item != null) Utils.drawItemStack(item, slotX, slotY); diff --git a/src/main/resources/mixins.notenoughupdates.json b/src/main/resources/mixins.notenoughupdates.json index c6ba98b7..ab2c705e 100644 --- a/src/main/resources/mixins.notenoughupdates.json +++ b/src/main/resources/mixins.notenoughupdates.json @@ -1,6 +1,7 @@ { "package": "io.github.moulberry.notenoughupdates.mixins", "refmap": "mixins.notenoughupdates.refmap.json", + "minVersion": "0.7", "compatibilityLevel": "JAVA_8", "mixins": [ "AccessorEntityAgeable", @@ -46,6 +47,8 @@ "MixinWorldClient" ], "client": [ + "AccessorGuiContainer", + "AccessorGuiEditSign", "AccessorMinecraft" ] } diff --git a/src/main/resources/notenoughupdates_at.cfg b/src/main/resources/notenoughupdates_at.cfg deleted file mode 100644 index c3fb5dbc..00000000 --- a/src/main/resources/notenoughupdates_at.cfg +++ /dev/null @@ -1,11 +0,0 @@ -public net.minecraft.client.gui.inventory.GuiContainer field_146999_f #xSize -public net.minecraft.client.gui.inventory.GuiContainer field_147000_g #ySize -public net.minecraft.client.gui.inventory.GuiContainer field_147003_i #guiLeft -public net.minecraft.client.gui.inventory.GuiContainer field_147009_r #guiTop -public net.minecraft.client.gui.inventory.GuiContainer func_146975_c(II)Lnet/minecraft/inventory/Slot; #guiTop -public net.minecraft.client.gui.inventory.GuiEditSign field_146848_f #tileSign -public net.minecraft.client.gui.inventory.GuiContainer func_146977_a(Lnet/minecraft/inventory/Slot;)V #drawSlot -public net.minecraft.client.gui.inventory.GuiContainer func_146981_a(Lnet/minecraft/inventory/Slot;II)Z #isMouseOverSlot -public net.minecraft.client.renderer.RenderGlobal field_72755_R #renderInfos -public net.minecraft.client.renderer.RenderGlobal$ContainerLocalRenderInformation -public net.minecraft.client.renderer.RenderGlobal$ContainerLocalRenderInformation field_178036_a #renderChunk \ No newline at end of file -- cgit From ec8ec6bb6a6b82cd4369e61d0e3cd4539b9c8295 Mon Sep 17 00:00:00 2001 From: Lulonaut <67191924+Lulonaut@users.noreply.github.com> Date: Thu, 9 Jun 2022 08:43:28 +0200 Subject: unused assets (#155) --- .../notenoughupdates/util/GuiTextures.java | 29 +-------------------- .../assets/notenoughupdates/button20x.png | Bin 170 -> 0 bytes .../assets/notenoughupdates/gamemodes.png | Bin 663 -> 0 bytes .../resources/assets/notenoughupdates/logo_bg.png | Bin 21390 -> 0 bytes .../resources/assets/notenoughupdates/logo_fg.png | Bin 5823 -> 0 bytes .../resources/assets/notenoughupdates/next.png | Bin 3912 -> 0 bytes .../resources/assets/notenoughupdates/next.xcf | Bin 8805 -> 0 bytes .../resources/assets/notenoughupdates/nohup.out | 2 -- .../resources/assets/notenoughupdates/prev.png | Bin 4508 -> 0 bytes .../resources/assets/notenoughupdates/prev.xcf | Bin 8371 -> 0 bytes .../assets/notenoughupdates/prev_unhovered.png | Bin 4553 -> 0 bytes .../resources/assets/notenoughupdates/pv_cata.png | Bin 5019 -> 0 bytes .../assets/notenoughupdates/radial_circle_off.png | Bin 322 -> 0 bytes .../assets/notenoughupdates/radial_circle_on.png | Bin 377 -> 0 bytes .../assets/notenoughupdates/radial_square_off.png | Bin 257 -> 0 bytes .../assets/notenoughupdates/radial_square_on.png | Bin 304 -> 0 bytes .../assets/notenoughupdates/setting_border.png | Bin 411 -> 0 bytes .../assets/notenoughupdates/slider_off.png | Bin 765 -> 0 bytes .../assets/notenoughupdates/slider_on.png | Bin 767 -> 0 bytes 19 files changed, 1 insertion(+), 30 deletions(-) delete mode 100644 src/main/resources/assets/notenoughupdates/button20x.png delete mode 100644 src/main/resources/assets/notenoughupdates/gamemodes.png delete mode 100644 src/main/resources/assets/notenoughupdates/logo_bg.png delete mode 100644 src/main/resources/assets/notenoughupdates/logo_fg.png delete mode 100644 src/main/resources/assets/notenoughupdates/next.png delete mode 100644 src/main/resources/assets/notenoughupdates/next.xcf delete mode 100644 src/main/resources/assets/notenoughupdates/nohup.out delete mode 100644 src/main/resources/assets/notenoughupdates/prev.png delete mode 100644 src/main/resources/assets/notenoughupdates/prev.xcf delete mode 100644 src/main/resources/assets/notenoughupdates/prev_unhovered.png delete mode 100644 src/main/resources/assets/notenoughupdates/pv_cata.png delete mode 100644 src/main/resources/assets/notenoughupdates/radial_circle_off.png delete mode 100644 src/main/resources/assets/notenoughupdates/radial_circle_on.png delete mode 100644 src/main/resources/assets/notenoughupdates/radial_square_off.png delete mode 100644 src/main/resources/assets/notenoughupdates/radial_square_on.png delete mode 100644 src/main/resources/assets/notenoughupdates/setting_border.png delete mode 100644 src/main/resources/assets/notenoughupdates/slider_off.png delete mode 100644 src/main/resources/assets/notenoughupdates/slider_on.png (limited to 'src/main/resources') diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/GuiTextures.java b/src/main/java/io/github/moulberry/notenoughupdates/util/GuiTextures.java index 48a6915b..ba57537e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/GuiTextures.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/GuiTextures.java @@ -8,8 +8,6 @@ public class GuiTextures { public static final ResourceLocation itemPaneTabArrow = new ResourceLocation("notenoughupdates:item_pane_tab_arrow.png"); - //public static final ResourceLocation prev = new ResourceLocation("notenoughupdates:prev.png"); - //public static final ResourceLocation next = new ResourceLocation("notenoughupdates:next.png"); public static final ResourceLocation rightarrow_overlay = new ResourceLocation("notenoughupdates:rightarrow_overlay.png"); public static final ResourceLocation rightarrow = new ResourceLocation("notenoughupdates:rightarrow.png"); @@ -19,8 +17,6 @@ public class GuiTextures { public static final ResourceLocation off = new ResourceLocation("notenoughupdates:off.png"); public static final ResourceLocation on = new ResourceLocation("notenoughupdates:on.png"); public static final ResourceLocation help = new ResourceLocation("notenoughupdates:help.png"); - public static final ResourceLocation slider_off = new ResourceLocation("notenoughupdates:slider_off.png"); - public static final ResourceLocation slider_on = new ResourceLocation("notenoughupdates:slider_on.png"); public static final ResourceLocation slider_off_large = new ResourceLocation("notenoughupdates:slider_off_large.png"); public static final ResourceLocation slider_on_large = new ResourceLocation("notenoughupdates:slider_on_large.png"); public static final ResourceLocation slider_button = new ResourceLocation("notenoughupdates:slider_button.png"); @@ -34,36 +30,17 @@ public class GuiTextures { public static final ResourceLocation item_mask = new ResourceLocation("notenoughupdates:item_mask.png"); public static final ResourceLocation item_haschild = new ResourceLocation("notenoughupdates:item_haschild.png"); + public static final ResourceLocation button_white = new ResourceLocation("notenoughupdates:button_white.png"); public static final ResourceLocation button_tex = new ResourceLocation("notenoughupdates:button.png"); public static final ResourceLocation button_fsr = new ResourceLocation("notenoughupdates:FSR_do_not_texture_this_please.png"); - public static final ResourceLocation setting_border = new ResourceLocation("notenoughupdates:setting_border.png"); - - public static final ResourceLocation button_white = new ResourceLocation("notenoughupdates:button_white.png"); - public static final ResourceLocation colour_selector_dot = - new ResourceLocation("notenoughupdates:colour_selector_dot.png"); - public static final ResourceLocation colour_selector_bar = - new ResourceLocation("notenoughupdates:colour_selector_bar.png"); - public static final ResourceLocation colour_selector_bar_alpha = - new ResourceLocation("notenoughupdates:colour_selector_bar_alpha.png"); - public static final ResourceLocation colour_selector_chroma = - new ResourceLocation("notenoughupdates:colour_selector_chroma.png"); - public static final ResourceLocation accessory_bag_overlay = new ResourceLocation("notenoughupdates:accessory_bag_overlay.png"); public static final ResourceLocation quickcommand_background = new ResourceLocation("notenoughupdates:quickcommand_background.png"); - public static final ResourceLocation gamemodes = new ResourceLocation("notenoughupdates:gamemodes.png"); - public static final ResourceLocation radial_square_off = - new ResourceLocation("notenoughupdates:radial_square_off.png"); - public static final ResourceLocation radial_square_on = new ResourceLocation("notenoughupdates:radial_square_on.png"); - public static final ResourceLocation radial_circle_off = - new ResourceLocation("notenoughupdates:radial_circle_off.png"); - public static final ResourceLocation radial_circle_on = new ResourceLocation("notenoughupdates:radial_circle_on.png"); - public static final ResourceLocation dungeon_chest_worth = new ResourceLocation("notenoughupdates:dungeon_chest_worth.png"); @@ -73,10 +50,6 @@ public class GuiTextures { public static final ResourceLocation auction_view_buttons = new ResourceLocation("notenoughupdates:auction_view_buttons.png"); - public static final ResourceLocation logo = new ResourceLocation("notenoughupdates:logo.png"); - public static final ResourceLocation logo_fg = new ResourceLocation("notenoughupdates:logo_fg.png"); - public static final ResourceLocation logo_bg = new ResourceLocation("notenoughupdates:logo_bg.png"); - public static final ResourceLocation sort_all = new ResourceLocation("notenoughupdates:sort_all.png"); public static final ResourceLocation sort_mob = new ResourceLocation("notenoughupdates:sort_mob.png"); public static final ResourceLocation sort_pet = new ResourceLocation("notenoughupdates:sort_pet.png"); diff --git a/src/main/resources/assets/notenoughupdates/button20x.png b/src/main/resources/assets/notenoughupdates/button20x.png deleted file mode 100644 index 8d723798..00000000 Binary files a/src/main/resources/assets/notenoughupdates/button20x.png and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/gamemodes.png b/src/main/resources/assets/notenoughupdates/gamemodes.png deleted file mode 100644 index 8a1aa2fa..00000000 Binary files a/src/main/resources/assets/notenoughupdates/gamemodes.png and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/logo_bg.png b/src/main/resources/assets/notenoughupdates/logo_bg.png deleted file mode 100644 index 188c3126..00000000 Binary files a/src/main/resources/assets/notenoughupdates/logo_bg.png and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/logo_fg.png b/src/main/resources/assets/notenoughupdates/logo_fg.png deleted file mode 100644 index 1f170cbc..00000000 Binary files a/src/main/resources/assets/notenoughupdates/logo_fg.png and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/next.png b/src/main/resources/assets/notenoughupdates/next.png deleted file mode 100644 index d215a7e8..00000000 Binary files a/src/main/resources/assets/notenoughupdates/next.png and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/next.xcf b/src/main/resources/assets/notenoughupdates/next.xcf deleted file mode 100644 index f93cc5b9..00000000 Binary files a/src/main/resources/assets/notenoughupdates/next.xcf and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/nohup.out b/src/main/resources/assets/notenoughupdates/nohup.out deleted file mode 100644 index 14abc1f2..00000000 --- a/src/main/resources/assets/notenoughupdates/nohup.out +++ /dev/null @@ -1,2 +0,0 @@ -using gegl copy -using gegl copy diff --git a/src/main/resources/assets/notenoughupdates/prev.png b/src/main/resources/assets/notenoughupdates/prev.png deleted file mode 100644 index a4ec7743..00000000 Binary files a/src/main/resources/assets/notenoughupdates/prev.png and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/prev.xcf b/src/main/resources/assets/notenoughupdates/prev.xcf deleted file mode 100644 index e9fecc61..00000000 Binary files a/src/main/resources/assets/notenoughupdates/prev.xcf and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/prev_unhovered.png b/src/main/resources/assets/notenoughupdates/prev_unhovered.png deleted file mode 100644 index f4340fee..00000000 Binary files a/src/main/resources/assets/notenoughupdates/prev_unhovered.png and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/pv_cata.png b/src/main/resources/assets/notenoughupdates/pv_cata.png deleted file mode 100644 index 46b676e1..00000000 Binary files a/src/main/resources/assets/notenoughupdates/pv_cata.png and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/radial_circle_off.png b/src/main/resources/assets/notenoughupdates/radial_circle_off.png deleted file mode 100644 index 300cbcfb..00000000 Binary files a/src/main/resources/assets/notenoughupdates/radial_circle_off.png and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/radial_circle_on.png b/src/main/resources/assets/notenoughupdates/radial_circle_on.png deleted file mode 100644 index 4d5cc862..00000000 Binary files a/src/main/resources/assets/notenoughupdates/radial_circle_on.png and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/radial_square_off.png b/src/main/resources/assets/notenoughupdates/radial_square_off.png deleted file mode 100644 index 97fbf27e..00000000 Binary files a/src/main/resources/assets/notenoughupdates/radial_square_off.png and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/radial_square_on.png b/src/main/resources/assets/notenoughupdates/radial_square_on.png deleted file mode 100644 index 5116df80..00000000 Binary files a/src/main/resources/assets/notenoughupdates/radial_square_on.png and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/setting_border.png b/src/main/resources/assets/notenoughupdates/setting_border.png deleted file mode 100644 index e5dff747..00000000 Binary files a/src/main/resources/assets/notenoughupdates/setting_border.png and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/slider_off.png b/src/main/resources/assets/notenoughupdates/slider_off.png deleted file mode 100644 index 0f514c41..00000000 Binary files a/src/main/resources/assets/notenoughupdates/slider_off.png and /dev/null differ diff --git a/src/main/resources/assets/notenoughupdates/slider_on.png b/src/main/resources/assets/notenoughupdates/slider_on.png deleted file mode 100644 index 8d2d6680..00000000 Binary files a/src/main/resources/assets/notenoughupdates/slider_on.png and /dev/null differ -- cgit From 50dc2122462642a0c3a00b3a3ae6389825dc04df Mon Sep 17 00:00:00 2001 From: IRONM00N <64110067+IRONM00N@users.noreply.github.com> Date: Thu, 9 Jun 2022 18:04:22 -0400 Subject: Re-license project as LGPL (#157) * add licence files & a few misc chores * add license notices & run auto formatter --- .github/workflows/build.yml | 6 +- .github/workflows/send_webhook_update.sh | 19 + .gitignore | 1 + .idea/copyright/NotEnoughUpdates.xml | 7 + .idea/copyright/profiles_settings.xml | 7 + CONTRIBUTING.md | 36 +- LICENSE | 60 - LICENSE-GPLv3.md | 675 + LICENSE.md | 157 + README.md | 12 +- Update Notes/2.0-Pre30.md | 9 +- Update Notes/2.0-Pre31-Release.md | 13 +- Update Notes/2.0-Pre31.md | 11 +- Update Notes/2.1.md | 23 +- build.gradle.kts | 21 +- settings.gradle.kts | 21 +- src/main/java/NotSkyblockAddonsInstallerFrame.java | 27 +- .../moulberry/notenoughupdates/CustomItems.java | 19 + .../notenoughupdates/ItemPriceInformation.java | 20 +- .../github/moulberry/notenoughupdates/NEUApi.java | 20 +- .../moulberry/notenoughupdates/NEUManager.java | 19 + .../moulberry/notenoughupdates/NEUOverlay.java | 19 + .../notenoughupdates/NEURepoResourcePack.java | 126 +- .../notenoughupdates/NotEnoughUpdates.java | 19 + .../notenoughupdates/auction/APIManager.java | 32 +- .../notenoughupdates/auction/CustomAH.java | 19 + .../notenoughupdates/auction/CustomAHGui.java | 19 + .../commands/ClientCommandBase.java | 19 + .../notenoughupdates/commands/Commands.java | 34 +- .../commands/EntityViewerCommand.java | 121 +- .../notenoughupdates/commands/ScreenCommand.java | 19 + .../commands/dev/DevTestCommand.java | 19 + .../notenoughupdates/commands/dev/DiagCommand.java | 22 +- .../commands/dev/DungeonWinTestCommand.java | 19 + .../commands/dev/NullzeeSphereCommand.java | 19 + .../commands/dev/PackDevCommand.java | 87 +- .../commands/dev/ReloadRepoCommand.java | 19 + .../commands/dev/ResetRepoCommand.java | 19 + .../commands/dev/StatsCommand.java | 19 + .../commands/dungeon/DhCommand.java | 19 + .../commands/dungeon/DnCommand.java | 19 + .../commands/dungeon/JoinDungeonCommand.java | 19 + .../commands/dungeon/MapCommand.java | 19 + .../commands/help/FeaturesCommand.java | 19 + .../commands/help/HelpCommand.java | 21 +- .../commands/help/LinksCommand.java | 19 + .../commands/help/SettingsCommand.java | 19 + .../commands/help/StorageViewerWhyCommand.java | 19 + .../notenoughupdates/commands/misc/AhCommand.java | 19 + .../commands/misc/ButtonsCommand.java | 19 + .../commands/misc/CalendarCommand.java | 19 + .../commands/misc/CosmeticsCommand.java | 19 + .../commands/misc/CustomizeCommand.java | 20 +- .../commands/profile/CataCommand.java | 19 + .../commands/profile/PeekCommand.java | 19 + .../commands/profile/PvCommand.java | 19 + .../commands/profile/ViewProfileCommand.java | 19 + .../notenoughupdates/core/BackgroundBlur.java | 19 + .../notenoughupdates/core/ChromaColour.java | 19 + .../notenoughupdates/core/GlScissorStack.java | 19 + .../notenoughupdates/core/GuiElement.java | 19 + .../notenoughupdates/core/GuiElementBoolean.java | 19 + .../notenoughupdates/core/GuiElementColour.java | 19 + .../notenoughupdates/core/GuiElementTextField.java | 19 + .../core/GuiScreenElementWrapper.java | 19 + .../notenoughupdates/core/config/Config.java | 19 + .../core/config/GuiPositionEditor.java | 19 + .../core/config/KeybindHelper.java | 19 + .../notenoughupdates/core/config/Position.java | 19 + .../notenoughupdates/core/config/PositionNew.java | 19 + .../core/config/annotations/Category.java | 19 + .../core/config/annotations/ConfigAccordionId.java | 19 + .../config/annotations/ConfigEditorAccordion.java | 19 + .../config/annotations/ConfigEditorBoolean.java | 19 + .../config/annotations/ConfigEditorButton.java | 19 + .../config/annotations/ConfigEditorColour.java | 19 + .../annotations/ConfigEditorDraggableList.java | 20 + .../config/annotations/ConfigEditorDropdown.java | 19 + .../core/config/annotations/ConfigEditorFSR.java | 19 + .../config/annotations/ConfigEditorKeybind.java | 19 + .../config/annotations/ConfigEditorSlider.java | 19 + .../core/config/annotations/ConfigEditorText.java | 19 + .../core/config/annotations/ConfigOption.java | 19 + .../core/config/gui/GuiOptionEditor.java | 19 + .../core/config/gui/GuiOptionEditorAccordion.java | 19 + .../core/config/gui/GuiOptionEditorBoolean.java | 21 +- .../core/config/gui/GuiOptionEditorButton.java | 19 + .../core/config/gui/GuiOptionEditorColour.java | 19 + .../config/gui/GuiOptionEditorDraggableList.java | 19 + .../core/config/gui/GuiOptionEditorDropdown.java | 19 + .../core/config/gui/GuiOptionEditorFSR.java | 19 + .../core/config/gui/GuiOptionEditorKeybind.java | 19 + .../core/config/gui/GuiOptionEditorSlider.java | 19 + .../core/config/gui/GuiOptionEditorText.java | 19 + .../core/config/gui/GuiPositionEditor.java | 19 + .../core/config/struct/ConfigProcessor.java | 51 +- .../core/util/GuiElementSlider.java | 27 +- .../moulberry/notenoughupdates/core/util/Line.java | 53 +- .../notenoughupdates/core/util/MiscUtils.java | 19 + .../notenoughupdates/core/util/Splitters.java | 19 + .../notenoughupdates/core/util/StringUtils.java | 19 + .../notenoughupdates/core/util/Vec3Comparable.java | 37 +- .../notenoughupdates/core/util/lerp/LerpUtils.java | 19 + .../core/util/lerp/LerpingFloat.java | 19 + .../core/util/lerp/LerpingInteger.java | 19 + .../core/util/render/RenderUtils.java | 19 + .../core/util/render/TextRenderUtils.java | 19 + .../notenoughupdates/cosmetics/CapeManager.java | 19 + .../notenoughupdates/cosmetics/CapeNode.java | 21 +- .../notenoughupdates/cosmetics/GuiCosmetics.java | 19 + .../notenoughupdates/cosmetics/NEUCape.java | 19 + .../notenoughupdates/cosmetics/ShaderManager.java | 19 + .../notenoughupdates/dungeons/DungeonBlocks.java | 19 + .../notenoughupdates/dungeons/DungeonMap.java | 26 +- .../notenoughupdates/dungeons/DungeonWin.java | 37 +- .../dungeons/GuiDungeonMapEditor.java | 29 +- .../notenoughupdates/events/NEUEvent.java | 19 + .../events/OnBlockBreakSoundEffect.java | 20 +- .../events/RepositoryReloadEvent.java | 19 + .../notenoughupdates/infopanes/DevInfoPane.java | 19 + .../infopanes/FlipperInfoPane.java | 19 + .../notenoughupdates/infopanes/HTMLInfoPane.java | 30 +- .../notenoughupdates/infopanes/InfoPane.java | 19 + .../infopanes/ScrollableInfoPane.java | 19 + .../notenoughupdates/infopanes/TextInfoPane.java | 19 + .../notenoughupdates/itemeditor/GuiElement.java | 19 + .../itemeditor/GuiElementButton.java | 19 + .../itemeditor/GuiElementText.java | 19 + .../itemeditor/GuiElementTextField.java | 19 + .../notenoughupdates/itemeditor/NEUItemEditor.java | 19 + .../notenoughupdates/listener/ChatListener.java | 35 +- .../listener/ItemTooltipListener.java | 20 +- .../listener/NEUEventListener.java | 19 + .../listener/OldAnimationChecker.java | 19 + .../notenoughupdates/listener/RenderListener.java | 31 +- .../listener/ScoreboardLocationChangeListener.java | 19 + .../notenoughupdates/mbgui/MBAnchorPoint.java | 19 + .../notenoughupdates/mbgui/MBDeserializer.java | 19 + .../notenoughupdates/mbgui/MBGuiElement.java | 19 + .../notenoughupdates/mbgui/MBGuiGroup.java | 19 + .../notenoughupdates/mbgui/MBGuiGroupAligned.java | 19 + .../notenoughupdates/mbgui/MBGuiGroupFloating.java | 25 +- .../miscfeatures/AuctionBINWarning.java | 19 + .../miscfeatures/AuctionSortModeWarning.java | 24 +- .../miscfeatures/BetterContainers.java | 19 + .../miscfeatures/CookieWarning.java | 54 +- .../miscfeatures/CrystalMetalDetectorSolver.java | 136 +- .../miscfeatures/CrystalOverlay.java | 19 + .../miscfeatures/CrystalWishingCompassSolver.java | 254 +- .../miscfeatures/CustomItemEffects.java | 41 +- .../miscfeatures/CustomSkulls.java | 38 +- .../miscfeatures/DamageCommas.java | 19 + .../miscfeatures/DwarvenMinesWaypoints.java | 19 + .../miscfeatures/EnchantingSolvers.java | 25 +- .../notenoughupdates/miscfeatures/FairySouls.java | 33 +- .../miscfeatures/FishingHelper.java | 19 + .../miscfeatures/ItemCooldowns.java | 19 + .../miscfeatures/ItemCustomizeManager.java | 27 +- .../miscfeatures/ItemRarityHalo.java | 25 +- .../notenoughupdates/miscfeatures/MiningStuff.java | 19 + .../miscfeatures/NPCRetexturing.java | 19 + .../notenoughupdates/miscfeatures/Navigation.java | 19 + .../miscfeatures/NullzeeSphere.java | 19 + .../miscfeatures/PetInfoOverlay.java | 19 + .../notenoughupdates/miscfeatures/SlotLocking.java | 35 +- .../miscfeatures/StorageManager.java | 53 +- .../miscfeatures/StreamerMode.java | 19 + .../notenoughupdates/miscfeatures/SunTzu.java | 19 + .../customblockzones/CrystalHollowsTextures.java | 19 + .../customblockzones/CustomBiomes.java | 19 + .../customblockzones/CustomBlockSounds.java | 20 +- .../customblockzones/DwarvenMinesTextures.java | 19 + .../customblockzones/IslandZoneSubdivider.java | 19 + .../customblockzones/LocationChangeEvent.java | 19 + .../customblockzones/SpecialBlockZone.java | 19 + .../miscfeatures/entityviewer/AgeModifier.java | 55 +- .../miscfeatures/entityviewer/ChargedModifier.java | 35 +- .../miscfeatures/entityviewer/EntityViewer.java | 366 +- .../entityviewer/EntityViewerModifier.java | 21 +- .../entityviewer/EquipmentModifier.java | 19 + .../miscfeatures/entityviewer/GUIClientPlayer.java | 71 +- .../miscfeatures/entityviewer/HorseModifier.java | 19 + .../entityviewer/InvisibleModifier.java | 29 +- .../miscfeatures/entityviewer/NameModifier.java | 19 + .../miscfeatures/entityviewer/RidingModifier.java | 33 +- .../miscfeatures/entityviewer/SkinModifier.java | 87 +- .../miscfeatures/entityviewer/WitherModifier.java | 61 +- .../miscgui/AccessoryBagOverlay.java | 99 +- .../notenoughupdates/miscgui/CalendarOverlay.java | 26 +- .../notenoughupdates/miscgui/GuiCustomEnchant.java | 28 +- .../notenoughupdates/miscgui/GuiEnchantColour.java | 25 +- .../miscgui/GuiInvButtonEditor.java | 20 +- .../notenoughupdates/miscgui/GuiItemCustomize.java | 19 + .../notenoughupdates/miscgui/GuiItemRecipe.java | 19 + .../notenoughupdates/miscgui/GuiNavigation.java | 19 + .../notenoughupdates/miscgui/GuiPriceGraph.java | 50 +- .../miscgui/InventoryStorageSelector.java | 19 + .../notenoughupdates/miscgui/KatSitterOverlay.java | 36 +- .../miscgui/NEUOverlayPlacements.java | 19 + .../notenoughupdates/miscgui/StorageOverlay.java | 19 + .../notenoughupdates/miscgui/TradeWindow.java | 26 +- .../miscgui/tutorials/NeuConfigTutorial.java | 19 + .../miscgui/tutorials/NeuTutorial.java | 19 + .../miscgui/tutorials/TutorialBase.java | 19 + .../mixins/AccessorEntityAgeable.java | 25 +- .../mixins/AccessorEntityArmorStand.java | 23 +- .../mixins/AccessorGuiContainer.java | 47 +- .../mixins/AccessorGuiEditSign.java | 23 +- .../mixins/AccessorGuiPlayerTabOverlay.java | 19 + .../notenoughupdates/mixins/AccessorMinecraft.java | 23 +- .../mixins/MixinAbstractClientPlayer.java | 19 + .../notenoughupdates/mixins/MixinContainer.java | 19 + .../mixins/MixinEffectRenderer.java | 19 + .../notenoughupdates/mixins/MixinEntity.java | 19 + .../mixins/MixinEntityAgeable.java | 20 +- .../notenoughupdates/mixins/MixinEntityHorse.java | 31 +- .../notenoughupdates/mixins/MixinEntityPlayer.java | 19 + .../mixins/MixinEntityPlayerSP.java | 19 + .../mixins/MixinEntityRenderer.java | 19 + .../mixins/MixinEntitySkeleton.java | 31 +- .../notenoughupdates/mixins/MixinGuiChest.java | 19 + .../notenoughupdates/mixins/MixinGuiContainer.java | 26 +- .../notenoughupdates/mixins/MixinGuiIngame.java | 19 + .../notenoughupdates/mixins/MixinGuiInventory.java | 19 + .../notenoughupdates/mixins/MixinGuiScreen.java | 19 + .../mixins/MixinInventoryEffectRenderer.java | 19 + .../mixins/MixinInventoryPlayer.java | 19 + .../mixins/MixinItemCameraTransforms.java | 19 + .../notenoughupdates/mixins/MixinItemRenderer.java | 19 + .../notenoughupdates/mixins/MixinItemStack.java | 19 + .../mixins/MixinLayerArmorBase.java | 19 + .../mixins/MixinLayerCustomHead.java | 19 + .../notenoughupdates/mixins/MixinMinecraft.java | 19 + .../notenoughupdates/mixins/MixinMouseHelper.java | 19 + .../mixins/MixinNetHandlerPlayClient.java | 37 +- .../mixins/MixinPlayerControllerMP.java | 19 + .../notenoughupdates/mixins/MixinRender.java | 19 + .../notenoughupdates/mixins/MixinRenderFish.java | 21 +- .../notenoughupdates/mixins/MixinRenderGlobal.java | 19 + .../notenoughupdates/mixins/MixinRenderItem.java | 19 + .../notenoughupdates/mixins/MixinRenderList.java | 19 + .../mixins/MixinRendererLivingEntity.java | 19 + .../mixins/MixinTextureManager.java | 19 + .../mixins/MixinTileEntitySkullRenderer.java | 19 + .../mixins/MixinTileEntitySpecialRenderer.java | 19 + .../mixins/MixinVboRenderList.java | 19 + .../notenoughupdates/mixins/MixinWorld.java | 21 +- .../notenoughupdates/mixins/MixinWorldClient.java | 19 + .../notenoughupdates/options/NEUConfig.java | 19 + .../notenoughupdates/options/NEUConfigEditor.java | 19 + .../options/customtypes/NEUDebugFlag.java | 21 +- .../options/seperateSections/AHGraph.java | 26 +- .../options/seperateSections/AHTweaks.java | 25 +- .../options/seperateSections/AccessoryBag.java | 19 + .../options/seperateSections/ApiData.java | 19 + .../options/seperateSections/Calendar.java | 19 + .../options/seperateSections/CustomArmour.java | 19 + .../options/seperateSections/DungeonMapConfig.java | 19 + .../options/seperateSections/Dungeons.java | 29 +- .../options/seperateSections/Enchanting.java | 25 +- .../options/seperateSections/Fishing.java | 19 + .../options/seperateSections/ImprovedSBMenu.java | 19 + .../options/seperateSections/InventoryButtons.java | 19 + .../options/seperateSections/ItemOverlays.java | 29 +- .../options/seperateSections/Itemlist.java | 25 +- .../options/seperateSections/LocationEdit.java | 24 +- .../options/seperateSections/Mining.java | 28 +- .../options/seperateSections/Misc.java | 19 + .../options/seperateSections/MiscOverlays.java | 35 +- .../options/seperateSections/NeuAuctionHouse.java | 19 + .../options/seperateSections/Notifications.java | 19 + .../options/seperateSections/PetOverlay.java | 25 +- .../options/seperateSections/ProfileViewer.java | 25 +- .../options/seperateSections/SkillOverlays.java | 30 +- .../options/seperateSections/SlayerOverlay.java | 26 +- .../options/seperateSections/SlotLocking.java | 25 +- .../options/seperateSections/StorageGUI.java | 29 +- .../options/seperateSections/Toolbar.java | 27 +- .../options/seperateSections/TooltipTweaks.java | 19 + .../options/seperateSections/TradeMenu.java | 19 + .../overlays/AuctionSearchOverlay.java | 35 +- .../overlays/BonemerangOverlay.java | 25 +- .../overlays/CombatSkillOverlay.java | 21 +- .../overlays/CrystalHollowOverlay.java | 33 +- .../notenoughupdates/overlays/FarmingOverlay.java | 19 + .../overlays/FishingSkillOverlay.java | 21 +- .../notenoughupdates/overlays/FuelBar.java | 19 + .../notenoughupdates/overlays/MiningOverlay.java | 37 +- .../overlays/MiningSkillOverlay.java | 21 +- .../notenoughupdates/overlays/OverlayManager.java | 19 + .../overlays/RancherBootOverlay.java | 19 + .../notenoughupdates/overlays/SlayerOverlay.java | 25 +- .../notenoughupdates/overlays/TextOverlay.java | 19 + .../overlays/TextOverlayStyle.java | 19 + .../notenoughupdates/overlays/TimersOverlay.java | 28 +- .../notenoughupdates/profileviewer/BingoPage.java | 19 + .../profileviewer/GuiProfileViewer.java | 19 + .../notenoughupdates/profileviewer/Panorama.java | 20 +- .../profileviewer/PlayerStats.java | 20 + .../profileviewer/ProfileViewer.java | 35 +- .../notenoughupdates/recipes/CraftingOverlay.java | 37 +- .../notenoughupdates/recipes/CraftingRecipe.java | 282 +- .../notenoughupdates/recipes/ForgeRecipe.java | 477 +- .../notenoughupdates/recipes/Ingredient.java | 21 +- .../notenoughupdates/recipes/ItemShopRecipe.java | 19 + .../notenoughupdates/recipes/MobLootRecipe.java | 19 + .../notenoughupdates/recipes/NeuRecipe.java | 19 + .../notenoughupdates/recipes/RecipeGenerator.java | 19 + .../notenoughupdates/recipes/RecipeSlot.java | 19 + .../notenoughupdates/recipes/RecipeType.java | 19 + .../recipes/VillagerTradeRecipe.java | 288 +- .../notenoughupdates/util/AllowEmptyHTMLTag.java | 19 + .../moulberry/notenoughupdates/util/Constants.java | 19 + .../moulberry/notenoughupdates/util/Debouncer.java | 19 + .../util/DiscordMarkdownBuilder.java | 19 + .../notenoughupdates/util/GuiTextures.java | 19 + .../notenoughupdates/util/HastebinUploader.java | 19 + .../notenoughupdates/util/HotmInformation.java | 19 + .../notenoughupdates/util/HypixelApi.java | 19 + .../moulberry/notenoughupdates/util/ItemUtils.java | 19 + .../moulberry/notenoughupdates/util/JsonUtils.java | 19 + .../notenoughupdates/util/LerpingFloat.java | 19 + .../notenoughupdates/util/NEUDebugLogger.java | 21 +- .../notenoughupdates/util/NEUResourceManager.java | 19 + .../notenoughupdates/util/NotificationHandler.java | 19 + .../notenoughupdates/util/ProfileApiSyncer.java | 19 + .../util/RequestFocusListener.java | 19 + .../util/ReverseWorldRenderer.java | 28 +- .../moulberry/notenoughupdates/util/SBInfo.java | 30 +- .../notenoughupdates/util/SkytilsCompat.java | 23 +- .../notenoughupdates/util/SpecialColour.java | 19 + .../moulberry/notenoughupdates/util/TexLoc.java | 19 + .../moulberry/notenoughupdates/util/Utils.java | 19 + .../notenoughupdates/util/XPInformation.java | 19 + .../resources/assets/notenoughupdates/dream.json | 88 +- .../dungeon_map/borders/large/1.json | 4 +- .../dungeon_map/borders/large/10.json | 4 +- .../dungeon_map/borders/large/11.json | 4 +- .../dungeon_map/borders/large/2.json | 4 +- .../dungeon_map/borders/large/3.json | 4 +- .../dungeon_map/borders/large/4.json | 4 +- .../dungeon_map/borders/large/5.json | 4 +- .../dungeon_map/borders/large/6.json | 4 +- .../dungeon_map/borders/large/7.json | 4 +- .../dungeon_map/borders/large/8.json | 4 +- .../dungeon_map/borders/large/9.json | 4 +- .../dungeon_map/borders/medium/1.json | 4 +- .../dungeon_map/borders/medium/10.json | 4 +- .../dungeon_map/borders/medium/11.json | 4 +- .../dungeon_map/borders/medium/2.json | 4 +- .../dungeon_map/borders/medium/3.json | 4 +- .../dungeon_map/borders/medium/4.json | 4 +- .../dungeon_map/borders/medium/5.json | 4 +- .../dungeon_map/borders/medium/6.json | 4 +- .../dungeon_map/borders/medium/7.json | 4 +- .../dungeon_map/borders/medium/8.json | 4 +- .../dungeon_map/borders/medium/9.json | 4 +- .../dungeon_map/borders/small/1.json | 4 +- .../dungeon_map/borders/small/10.json | 4 +- .../dungeon_map/borders/small/11.json | 4 +- .../dungeon_map/borders/small/2.json | 4 +- .../dungeon_map/borders/small/3.json | 4 +- .../dungeon_map/borders/small/4.json | 4 +- .../dungeon_map/borders/small/5.json | 4 +- .../dungeon_map/borders/small/6.json | 4 +- .../dungeon_map/borders/small/7.json | 4 +- .../dungeon_map/borders/small/8.json | 4 +- .../dungeon_map/borders/small/9.json | 4 +- .../notenoughupdates/dwarven_data/-10_-1.json | 9 +- .../notenoughupdates/dwarven_data/-10_-2.json | 17 +- .../notenoughupdates/dwarven_data/-10_-3.json | 15 +- .../notenoughupdates/dwarven_data/-10_-4.json | 37 +- .../notenoughupdates/dwarven_data/-10_-5.json | 13 +- .../notenoughupdates/dwarven_data/-10_-6.json | 32 +- .../notenoughupdates/dwarven_data/-10_-7.json | 8 +- .../notenoughupdates/dwarven_data/-10_0.json | 28 +- .../notenoughupdates/dwarven_data/-10_3.json | 102 +- .../notenoughupdates/dwarven_data/-10_4.json | 96 +- .../notenoughupdates/dwarven_data/-10_6.json | 220 +- .../notenoughupdates/dwarven_data/-10_7.json | 245 +- .../notenoughupdates/dwarven_data/-10_8.json | 90 +- .../notenoughupdates/dwarven_data/-11_-3.json | 189 +- .../notenoughupdates/dwarven_data/-11_-4.json | 21 +- .../notenoughupdates/dwarven_data/-11_-5.json | 26 +- .../notenoughupdates/dwarven_data/-11_-6.json | 12 +- .../notenoughupdates/dwarven_data/-11_2.json | 24 +- .../notenoughupdates/dwarven_data/-11_5.json | 30 +- .../notenoughupdates/dwarven_data/-11_6.json | 86 +- .../notenoughupdates/dwarven_data/-11_7.json | 16 +- .../assets/notenoughupdates/dwarven_data/-1_0.json | 59 +- .../assets/notenoughupdates/dwarven_data/-1_1.json | 67 +- .../notenoughupdates/dwarven_data/-1_10.json | 52 +- .../notenoughupdates/dwarven_data/-1_11.json | 68 +- .../assets/notenoughupdates/dwarven_data/-1_3.json | 17 +- .../assets/notenoughupdates/dwarven_data/-1_7.json | 25 +- .../assets/notenoughupdates/dwarven_data/-1_8.json | 41 +- .../assets/notenoughupdates/dwarven_data/-1_9.json | 42 +- .../notenoughupdates/dwarven_data/-2_-2.json | 27 +- .../notenoughupdates/dwarven_data/-2_-3.json | 109 +- .../notenoughupdates/dwarven_data/-2_-4.json | 206 +- .../notenoughupdates/dwarven_data/-2_-5.json | 173 +- .../notenoughupdates/dwarven_data/-2_-7.json | 87 +- .../assets/notenoughupdates/dwarven_data/-2_0.json | 62 +- .../notenoughupdates/dwarven_data/-2_10.json | 60 +- .../notenoughupdates/dwarven_data/-2_11.json | 18 +- .../assets/notenoughupdates/dwarven_data/-2_3.json | 4 +- .../assets/notenoughupdates/dwarven_data/-2_4.json | 194 +- .../assets/notenoughupdates/dwarven_data/-2_6.json | 221 +- .../assets/notenoughupdates/dwarven_data/-2_7.json | 11 +- .../assets/notenoughupdates/dwarven_data/-2_8.json | 49 +- .../assets/notenoughupdates/dwarven_data/-2_9.json | 48 +- .../notenoughupdates/dwarven_data/-3_-3.json | 13 +- .../notenoughupdates/dwarven_data/-3_-4.json | 34 +- .../notenoughupdates/dwarven_data/-3_-5.json | 36 +- .../assets/notenoughupdates/dwarven_data/-3_0.json | 84 +- .../assets/notenoughupdates/dwarven_data/-3_1.json | 87 +- .../notenoughupdates/dwarven_data/-3_11.json | 5 +- .../assets/notenoughupdates/dwarven_data/-3_2.json | 7 +- .../assets/notenoughupdates/dwarven_data/-3_4.json | 168 +- .../assets/notenoughupdates/dwarven_data/-3_5.json | 72 +- .../assets/notenoughupdates/dwarven_data/-3_6.json | 134 +- .../assets/notenoughupdates/dwarven_data/-3_7.json | 5 +- .../assets/notenoughupdates/dwarven_data/-3_8.json | 37 +- .../assets/notenoughupdates/dwarven_data/-3_9.json | 25 +- .../notenoughupdates/dwarven_data/-4_-1.json | 51 +- .../notenoughupdates/dwarven_data/-4_-5.json | 21 +- .../notenoughupdates/dwarven_data/-4_-6.json | 22 +- .../assets/notenoughupdates/dwarven_data/-4_0.json | 103 +- .../assets/notenoughupdates/dwarven_data/-4_1.json | 29 +- .../notenoughupdates/dwarven_data/-4_10.json | 200 +- .../notenoughupdates/dwarven_data/-4_11.json | 14 +- .../assets/notenoughupdates/dwarven_data/-4_2.json | 22 +- .../assets/notenoughupdates/dwarven_data/-4_3.json | 38 +- .../assets/notenoughupdates/dwarven_data/-4_4.json | 12 +- .../assets/notenoughupdates/dwarven_data/-4_5.json | 15 +- .../assets/notenoughupdates/dwarven_data/-4_6.json | 26 +- .../assets/notenoughupdates/dwarven_data/-4_7.json | 16 +- .../assets/notenoughupdates/dwarven_data/-4_8.json | 77 +- .../assets/notenoughupdates/dwarven_data/-4_9.json | 43 +- .../notenoughupdates/dwarven_data/-5_-1.json | 57 +- .../notenoughupdates/dwarven_data/-5_-2.json | 54 +- .../notenoughupdates/dwarven_data/-5_-3.json | 51 +- .../notenoughupdates/dwarven_data/-5_-4.json | 144 +- .../notenoughupdates/dwarven_data/-5_-5.json | 7 +- .../notenoughupdates/dwarven_data/-5_-6.json | 65 +- .../assets/notenoughupdates/dwarven_data/-5_0.json | 103 +- .../assets/notenoughupdates/dwarven_data/-5_1.json | 59 +- .../notenoughupdates/dwarven_data/-5_10.json | 177 +- .../assets/notenoughupdates/dwarven_data/-5_2.json | 41 +- .../assets/notenoughupdates/dwarven_data/-5_4.json | 11 +- .../assets/notenoughupdates/dwarven_data/-5_6.json | 5 +- .../assets/notenoughupdates/dwarven_data/-5_7.json | 33 +- .../assets/notenoughupdates/dwarven_data/-5_8.json | 184 +- .../assets/notenoughupdates/dwarven_data/-5_9.json | 230 +- .../notenoughupdates/dwarven_data/-6_-3.json | 23 +- .../notenoughupdates/dwarven_data/-6_-4.json | 107 +- .../notenoughupdates/dwarven_data/-6_-5.json | 103 +- .../notenoughupdates/dwarven_data/-6_-6.json | 22 +- .../assets/notenoughupdates/dwarven_data/-6_0.json | 36 +- .../assets/notenoughupdates/dwarven_data/-6_1.json | 99 +- .../assets/notenoughupdates/dwarven_data/-6_2.json | 20 +- .../assets/notenoughupdates/dwarven_data/-6_4.json | 142 +- .../assets/notenoughupdates/dwarven_data/-6_5.json | 179 +- .../assets/notenoughupdates/dwarven_data/-6_6.json | 115 +- .../assets/notenoughupdates/dwarven_data/-6_7.json | 137 +- .../assets/notenoughupdates/dwarven_data/-6_8.json | 263 +- .../assets/notenoughupdates/dwarven_data/-6_9.json | 257 +- .../notenoughupdates/dwarven_data/-7_-1.json | 140 +- .../notenoughupdates/dwarven_data/-7_-2.json | 150 +- .../notenoughupdates/dwarven_data/-7_-3.json | 72 +- .../notenoughupdates/dwarven_data/-7_-4.json | 62 +- .../notenoughupdates/dwarven_data/-7_-5.json | 73 +- .../notenoughupdates/dwarven_data/-7_-6.json | 37 +- .../assets/notenoughupdates/dwarven_data/-7_0.json | 153 +- .../assets/notenoughupdates/dwarven_data/-7_1.json | 168 +- .../assets/notenoughupdates/dwarven_data/-7_2.json | 101 +- .../assets/notenoughupdates/dwarven_data/-7_3.json | 123 +- .../assets/notenoughupdates/dwarven_data/-7_4.json | 34 +- .../assets/notenoughupdates/dwarven_data/-7_8.json | 218 +- .../assets/notenoughupdates/dwarven_data/-7_9.json | 317 +- .../notenoughupdates/dwarven_data/-8_-1.json | 32 +- .../notenoughupdates/dwarven_data/-8_-2.json | 26 +- .../notenoughupdates/dwarven_data/-8_-3.json | 35 +- .../notenoughupdates/dwarven_data/-8_-4.json | 31 +- .../notenoughupdates/dwarven_data/-8_-5.json | 22 +- .../notenoughupdates/dwarven_data/-8_-6.json | 6 +- .../assets/notenoughupdates/dwarven_data/-8_0.json | 62 +- .../assets/notenoughupdates/dwarven_data/-8_1.json | 107 +- .../assets/notenoughupdates/dwarven_data/-8_2.json | 111 +- .../assets/notenoughupdates/dwarven_data/-8_3.json | 43 +- .../assets/notenoughupdates/dwarven_data/-8_4.json | 83 +- .../assets/notenoughupdates/dwarven_data/-8_5.json | 42 +- .../assets/notenoughupdates/dwarven_data/-8_6.json | 32 +- .../assets/notenoughupdates/dwarven_data/-8_7.json | 86 +- .../assets/notenoughupdates/dwarven_data/-8_8.json | 266 +- .../assets/notenoughupdates/dwarven_data/-8_9.json | 214 +- .../notenoughupdates/dwarven_data/-9_-1.json | 21 +- .../notenoughupdates/dwarven_data/-9_-2.json | 37 +- .../notenoughupdates/dwarven_data/-9_-3.json | 32 +- .../notenoughupdates/dwarven_data/-9_-4.json | 24 +- .../notenoughupdates/dwarven_data/-9_-5.json | 50 +- .../notenoughupdates/dwarven_data/-9_-6.json | 23 +- .../assets/notenoughupdates/dwarven_data/-9_0.json | 30 +- .../assets/notenoughupdates/dwarven_data/-9_2.json | 24 +- .../assets/notenoughupdates/dwarven_data/-9_3.json | 7 +- .../assets/notenoughupdates/dwarven_data/-9_4.json | 85 +- .../assets/notenoughupdates/dwarven_data/-9_7.json | 293 +- .../assets/notenoughupdates/dwarven_data/-9_8.json | 280 +- .../assets/notenoughupdates/dwarven_data/-9_9.json | 75 +- .../assets/notenoughupdates/dwarven_data/0_0.json | 73 +- .../assets/notenoughupdates/dwarven_data/0_10.json | 60 +- .../assets/notenoughupdates/dwarven_data/0_3.json | 22 +- .../assets/notenoughupdates/dwarven_data/0_7.json | 32 +- .../assets/notenoughupdates/dwarven_data/0_8.json | 46 +- .../assets/notenoughupdates/dwarven_data/0_9.json | 53 +- .../assets/notenoughupdates/dwarven_data/10_1.json | 203 +- .../assets/notenoughupdates/dwarven_data/10_3.json | 216 +- .../assets/notenoughupdates/dwarven_data/10_4.json | 48 +- .../assets/notenoughupdates/dwarven_data/10_5.json | 97 +- .../assets/notenoughupdates/dwarven_data/11_1.json | 73 +- .../assets/notenoughupdates/dwarven_data/11_3.json | 61 +- .../assets/notenoughupdates/dwarven_data/11_4.json | 18 +- .../assets/notenoughupdates/dwarven_data/1_-1.json | 120 +- .../assets/notenoughupdates/dwarven_data/1_-2.json | 37 +- .../assets/notenoughupdates/dwarven_data/1_-3.json | 152 +- .../assets/notenoughupdates/dwarven_data/1_0.json | 90 +- .../assets/notenoughupdates/dwarven_data/1_10.json | 91 +- .../assets/notenoughupdates/dwarven_data/1_7.json | 8 +- .../assets/notenoughupdates/dwarven_data/1_8.json | 45 +- .../assets/notenoughupdates/dwarven_data/1_9.json | 97 +- .../assets/notenoughupdates/dwarven_data/2_-1.json | 19 +- .../assets/notenoughupdates/dwarven_data/2_-2.json | 49 +- .../assets/notenoughupdates/dwarven_data/2_-4.json | 72 +- .../assets/notenoughupdates/dwarven_data/2_-5.json | 61 +- .../assets/notenoughupdates/dwarven_data/2_-7.json | 41 +- .../assets/notenoughupdates/dwarven_data/2_0.json | 88 +- .../assets/notenoughupdates/dwarven_data/2_10.json | 279 +- .../assets/notenoughupdates/dwarven_data/2_3.json | 4 +- .../assets/notenoughupdates/dwarven_data/2_4.json | 146 +- .../assets/notenoughupdates/dwarven_data/2_6.json | 133 +- .../assets/notenoughupdates/dwarven_data/2_7.json | 4 +- .../assets/notenoughupdates/dwarven_data/2_8.json | 104 +- .../assets/notenoughupdates/dwarven_data/2_9.json | 266 +- .../assets/notenoughupdates/dwarven_data/3_-1.json | 28 +- .../notenoughupdates/dwarven_data/3_-10.json | 6 +- .../assets/notenoughupdates/dwarven_data/3_-3.json | 31 +- .../assets/notenoughupdates/dwarven_data/3_-4.json | 20 +- .../assets/notenoughupdates/dwarven_data/3_-5.json | 35 +- .../assets/notenoughupdates/dwarven_data/3_-6.json | 59 +- .../assets/notenoughupdates/dwarven_data/3_0.json | 56 +- .../assets/notenoughupdates/dwarven_data/3_11.json | 48 +- .../assets/notenoughupdates/dwarven_data/3_3.json | 23 +- .../assets/notenoughupdates/dwarven_data/3_4.json | 53 +- .../assets/notenoughupdates/dwarven_data/3_5.json | 20 +- .../assets/notenoughupdates/dwarven_data/3_6.json | 80 +- .../assets/notenoughupdates/dwarven_data/3_7.json | 17 +- .../assets/notenoughupdates/dwarven_data/4_-1.json | 50 +- .../assets/notenoughupdates/dwarven_data/4_-2.json | 9 +- .../assets/notenoughupdates/dwarven_data/4_-8.json | 70 +- .../assets/notenoughupdates/dwarven_data/4_-9.json | 5 +- .../assets/notenoughupdates/dwarven_data/4_0.json | 130 +- .../assets/notenoughupdates/dwarven_data/4_6.json | 62 +- .../assets/notenoughupdates/dwarven_data/5_-5.json | 8 +- .../assets/notenoughupdates/dwarven_data/5_-6.json | 9 +- .../assets/notenoughupdates/dwarven_data/5_-8.json | 103 +- .../assets/notenoughupdates/dwarven_data/5_0.json | 11 +- .../assets/notenoughupdates/dwarven_data/5_10.json | 162 +- .../assets/notenoughupdates/dwarven_data/5_7.json | 228 +- .../assets/notenoughupdates/dwarven_data/5_8.json | 158 +- .../assets/notenoughupdates/dwarven_data/5_9.json | 198 +- .../assets/notenoughupdates/dwarven_data/6_-3.json | 13 +- .../assets/notenoughupdates/dwarven_data/6_0.json | 66 +- .../assets/notenoughupdates/dwarven_data/6_1.json | 234 +- .../assets/notenoughupdates/dwarven_data/6_2.json | 185 +- .../assets/notenoughupdates/dwarven_data/6_3.json | 237 +- .../assets/notenoughupdates/dwarven_data/6_5.json | 304 +- .../assets/notenoughupdates/dwarven_data/6_6.json | 299 +- .../assets/notenoughupdates/dwarven_data/7_-1.json | 5 +- .../assets/notenoughupdates/dwarven_data/7_-2.json | 23 +- .../assets/notenoughupdates/dwarven_data/7_-3.json | 29 +- .../assets/notenoughupdates/dwarven_data/7_0.json | 25 +- .../assets/notenoughupdates/dwarven_data/7_1.json | 116 +- .../assets/notenoughupdates/dwarven_data/7_2.json | 67 +- .../assets/notenoughupdates/dwarven_data/7_3.json | 136 +- .../assets/notenoughupdates/dwarven_data/7_4.json | 123 +- .../assets/notenoughupdates/dwarven_data/7_5.json | 121 +- .../assets/notenoughupdates/dwarven_data/7_6.json | 180 +- .../assets/notenoughupdates/dwarven_data/8_-1.json | 30 +- .../assets/notenoughupdates/dwarven_data/8_-2.json | 51 +- .../assets/notenoughupdates/dwarven_data/8_0.json | 22 +- .../assets/notenoughupdates/dwarven_data/8_1.json | 145 +- .../assets/notenoughupdates/dwarven_data/9_-1.json | 36 +- .../assets/notenoughupdates/dwarven_data/9_1.json | 281 +- .../assets/notenoughupdates/dwarven_data/9_2.json | 218 +- .../assets/notenoughupdates/dwarven_data/9_5.json | 254 +- .../assets/notenoughupdates/dwarven_data/9_6.json | 130 +- .../assets/notenoughupdates/dwarven_data/all.json | 207 +- .../dynamic_54/style1/dynamic_config.json | 4 +- .../dynamic_54/style2/dynamic_config.json | 4 +- .../dynamic_54/style3/dynamic_config.json | 4 +- .../notenoughupdates/invbuttons/extraicons.json | 34 +- .../notenoughupdates/invbuttons/presets.json | 5474 ++--- .../assets/notenoughupdates/official-wiki.css | 22623 ++++++++++++++++++- .../notenoughupdates/shaders/program/blur.json | 100 +- .../shaders/program/dungeonmap.json | 61 +- .../shaders/program/grayscale.json | 42 +- .../shaders/program/setrgbtoalpha.json | 42 +- .../resources/assets/notenoughupdates/sounds.json | 1 - .../sounds/gemstoneamberbreak.json | 4 +- .../sounds/gemstoneamethystbreak.json | 4 +- .../notenoughupdates/sounds/gemstonejadebreak.json | 4 +- .../sounds/gemstonejasperbreak.json | 4 +- .../notenoughupdates/sounds/gemstonerubybreak.json | 4 +- .../sounds/gemstonesapphirebreak.json | 4 +- .../sounds/gemstonetopazbreak.json | 4 +- .../notenoughupdates/sounds/mithrilbreak.json | 4 +- .../notenoughupdates/sounds/titaniumbreak.json | 4 +- src/main/resources/mcmod.info | 30 +- src/main/resources/mixins.notenoughupdates.json | 88 +- .../core/util/Vec3ComparableTest.java | 19 + .../CrystalMetalDetectorSolverTest.java | 123 +- .../CrystalWishingCompassSolverTest.java | 247 +- src/test/resources/log4j2-test.xml | 4 +- 623 files changed, 53710 insertions(+), 4716 deletions(-) create mode 100644 .idea/copyright/NotEnoughUpdates.xml create mode 100644 .idea/copyright/profiles_settings.xml delete mode 100644 LICENSE create mode 100644 LICENSE-GPLv3.md create mode 100644 LICENSE.md (limited to 'src/main/resources') diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 630d8288..0440aefb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,14 +6,16 @@ on: - '*' paths-ignore: - 'README.md' - - 'LICENSE' + - 'LICENSE.md' + - 'LICENSE-GPLv3.md' - '.gitignore' pull_request: branches: - '*' paths-ignore: - 'README.md' - - 'LICENSE' + - 'LICENSE.md' + - 'LICENSE-GPLv3.md' - '.gitignore' workflow_dispatch: jobs: diff --git a/.github/workflows/send_webhook_update.sh b/.github/workflows/send_webhook_update.sh index 56852159..3ec20af3 100755 --- a/.github/workflows/send_webhook_update.sh +++ b/.github/workflows/send_webhook_update.sh @@ -1,4 +1,23 @@ #!/bin/bash +# +# Copyright (C) 2022 NotEnoughUpdates contributors +# +# This file is part of NotEnoughUpdates. +# +# NotEnoughUpdates is free software: you can redistribute it +# and/or modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation, either +# version 3 of the License, or (at your option) any later version. +# +# NotEnoughUpdates is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with NotEnoughUpdates. If not, see . +# + set -x COLOR_SUCCESS=8040199 diff --git a/.gitignore b/.gitignore index a7b89d94..53814696 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ out *.iml .idea/* !.idea/codeStyles +!.idea/copyright # gradle build diff --git a/.idea/copyright/NotEnoughUpdates.xml b/.idea/copyright/NotEnoughUpdates.xml new file mode 100644 index 00000000..ea087768 --- /dev/null +++ b/.idea/copyright/NotEnoughUpdates.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 00000000..8f73a5c0 --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d2d14086..6c163317 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,34 +1,32 @@ ## Before you contribute - - Please check your feature / bug isn't already fixed in one of our pre-releases or on [the development branch](https://github.com/NotEnoughUpdates/NotEnoughUpdates/tree/master/). - - Consider joining our [Discord](https://discord.gg/moulberry) to check in on newest developments by other people, or to get help with problems you encounter. - - Please check that your feature idea complies with the [Hypixel Rules](https://hypixel.net/rules) - - Check that your feature idea isn't already done in other mods. (E.g. Dungeon Solver) - +- Please check your feature / bug isn't already fixed in one of our pre-releases or on [the development branch](https://github.com/NotEnoughUpdates/NotEnoughUpdates/tree/master/). +- Consider joining our [Discord](https://discord.gg/moulberry) to check in on newest developments by other people, or to get help with problems you encounter. +- Please check that your feature idea complies with the [Hypixel Rules](https://hypixel.net/rules) +- Check that your feature idea isn't already done in other mods. (E.g. Dungeon Solver) + ## Setting up a development environment ### Software prerequisites - - Install a Java Development Kit (You will need both version 8 and version 17) [Eclipse Temurin Download](https://adoptium.net/temurin/releases) for convenience, however any JDK will do. - - Install Git. [Windows download](https://git-scm.com/download/win) - - Install an IDE, such as [Jetbrains IntelliJ IDEA](https://www.jetbrains.com/idea/download). +- Install a Java Development Kit (You will need both version 8 and version 17) [Eclipse Temurin Download](https://adoptium.net/temurin/releases) for convenience, however any JDK will do. +- Install Git. [Windows download](https://git-scm.com/download/win) +- Install an IDE, such as [Jetbrains IntelliJ IDEA](https://www.jetbrains.com/idea/download). ### Software configuration - - Clone the NEU repository using `git clone https://github.com/NotEnoughUpdates/NotEnoughUpdates`. - - Import that folder as a Gradle Project in your IDE (IntelliJ should autodetect it as gradle if you select the `NotEnoughUpdates` folder in the Open dialog) - - Set your project SDK to your 1.8 JDK. This can be done in the modules settings (CTRL+ALT+SHIFT+S) in IntelliJ. - - Set your gradle JVM to your 1.17 JDK. This can be done by searching for `gradle jvm` in the CTRL+SHIFT+A dialog in IntelliJ. - - Run the `genRuns` gradle task. In IntelliJ that can be done in the gradle tab on the right side of your IDE. - - Optionally, run the `genSources` gradle task. - - Run the `Minecraft Client` to make sure that everything works. - +- Clone the NEU repository using `git clone https://github.com/NotEnoughUpdates/NotEnoughUpdates`. +- Import that folder as a Gradle Project in your IDE (IntelliJ should autodetect it as gradle if you select the `NotEnoughUpdates` folder in the Open dialog) +- Set your project SDK to your 1.8 JDK. This can be done in the modules settings (CTRL+ALT+SHIFT+S) in IntelliJ. +- Set your gradle JVM to your 1.17 JDK. This can be done by searching for `gradle jvm` in the CTRL+SHIFT+A dialog in IntelliJ. +- Run the `genRuns` gradle task. In IntelliJ that can be done in the gradle tab on the right side of your IDE. +- Optionally, run the `genSources` gradle task. +- Run the `Minecraft Client` to make sure that everything works. ## Logging into Hypixel in a development environment. -Use [DevAuth](https://github.com/DJtheRedstoner/DevAuth). Download the `forge-legacy` version, and put it into the `run/mods` folder. Then follow the configuration instructions in the [DevAuth README](https://github.com/DJtheRedstoner/DevAuth#configuration-file) +Use [DevAuth](https://github.com/DJtheRedstoner/DevAuth). Download the `forge-legacy` version, and put it into the `run/mods` folder. Then follow the configuration instructions in the [DevAuth README](https://github.com/DJtheRedstoner/DevAuth#configuration-file) ## Hot Reloading -Hot Reloading is possible by first launching using the IntelliJ debugger with [DCEVM 1.8](https://dcevm.github.io/). Then running a regular build and confirming the reload prompt. This can cause issues (especially with commands), so restarting is sometimes still necessary. - +Hot Reloading is possible by first launching using the IntelliJ debugger with [DCEVM 1.8](https://dcevm.github.io/). Then running a regular build and confirming the reload prompt. This can cause issues (especially with commands), so restarting is sometimes still necessary. diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 7ff2f90d..00000000 --- a/LICENSE +++ /dev/null @@ -1,60 +0,0 @@ -License - -THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. - -BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. - -1. Definitions - - "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. - "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. - "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. - "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. - "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. - "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. - "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. - "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. - "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. - -2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. - -3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: - - to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; - to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; - to Distribute and Publicly Perform the Work including as incorporated in Collections; and, - to Distribute and Publicly Perform Adaptations. - -The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d). - -4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: - - You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested. - You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works. - If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and, (iv) consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. - - For the avoidance of doubt: - Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; - Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, - Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(c). - Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. - -5. Representations, Warranties and Disclaimer - -UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. - -6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -7. Termination - - This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. - Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. - -8. Miscellaneous - - Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. - Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. - If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. - No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. - This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. - The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. diff --git a/LICENSE-GPLv3.md b/LICENSE-GPLv3.md new file mode 100644 index 00000000..f5a01711 --- /dev/null +++ b/LICENSE-GPLv3.md @@ -0,0 +1,675 @@ +### GNU GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. + + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +### Preamble + +The GNU General Public License is a free, copyleft license for +software and other kinds of works. + +The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom +to share and change all versions of a program--to make sure it remains +free software for all its users. We, the Free Software Foundation, use +the GNU General Public License for most of our software; it applies +also to any other work released this way by its authors. You can apply +it to your programs, too. + +When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + +To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you +have certain responsibilities if you distribute copies of the +software, or if you modify it: responsibilities to respect the freedom +of others. + +For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + +Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + +Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the +manufacturer can do so. This is fundamentally incompatible with the +aim of protecting users' freedom to change the software. The +systematic pattern of such abuse occurs in the area of products for +individuals to use, which is precisely where it is most unacceptable. +Therefore, we have designed this version of the GPL to prohibit the +practice for those products. If such problems arise substantially in +other domains, we stand ready to extend this provision to those +domains in future versions of the GPL, as needed to protect the +freedom of users. + +Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish +to avoid the special danger that patents applied to a free program +could make it effectively proprietary. To prevent this, the GPL +assures that patents cannot be used to render the program non-free. + +The precise terms and conditions for copying, distribution and +modification follow. + +### TERMS AND CONDITIONS + +#### 0. Definitions. + +"This License" refers to version 3 of the GNU General Public License. + +"Copyright" also means copyright-like laws that apply to other kinds +of works, such as semiconductor masks. + +"The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + +To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of +an exact copy. The resulting work is called a "modified version" of +the earlier work or a work "based on" the earlier work. + +A "covered work" means either the unmodified Program or a work based +on the Program. + +To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + +To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user +through a computer network, with no transfer of a copy, is not +conveying. + +An interactive user interface displays "Appropriate Legal Notices" to +the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + +#### 1. Source Code. + +The "source code" for a work means the preferred form of the work for +making modifications to it. "Object code" means any non-source form of +a work. + +A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + +The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + +The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can +regenerate automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same +work. + +#### 2. Basic Permissions. + +All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, +without conditions so long as your license otherwise remains in force. +You may convey covered works to others for the sole purpose of having +them make modifications exclusively for you, or provide you with +facilities for running those works, provided that you comply with the +terms of this License in conveying all material for which you do not +control copyright. Those thus making or running the covered works for +you must do so exclusively on your behalf, under your direction and +control, on terms that prohibit them from making any copies of your +copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the +conditions stated below. Sublicensing is not allowed; section 10 makes +it unnecessary. + +#### 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + +No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + +When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such +circumvention is effected by exercising rights under this License with +respect to the covered work, and you disclaim any intention to limit +operation or modification of the work as a means of enforcing, against +the work's users, your or third parties' legal rights to forbid +circumvention of technological measures. + +#### 4. Conveying Verbatim Copies. + +You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + +#### 5. Conveying Modified Source Versions. + +You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these +conditions: + +- a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. +- b) The work must carry prominent notices stating that it is + released under this License and any conditions added under + section 7. This requirement modifies the requirement in section 4 + to "keep intact all notices". +- c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. +- d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + +A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + +#### 6. Conveying Non-Source Forms. + +You may convey a covered work in object code form under the terms of +sections 4 and 5, provided that you also convey the machine-readable +Corresponding Source under the terms of this License, in one of these +ways: + +- a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. +- b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the Corresponding + Source from a network server at no charge. +- c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. +- d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. +- e) Convey the object code using peer-to-peer transmission, + provided you inform other peers where the object code and + Corresponding Source of the work are being offered to the general + public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + +A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, +family, or household purposes, or (2) anything designed or sold for +incorporation into a dwelling. In determining whether a product is a +consumer product, doubtful cases shall be resolved in favor of +coverage. For a particular product received by a particular user, +"normally used" refers to a typical or common use of that class of +product, regardless of the status of the particular user or of the way +in which the particular user actually uses, or expects or is expected +to use, the product. A product is a consumer product regardless of +whether the product has substantial commercial, industrial or +non-consumer uses, unless such uses represent the only significant +mode of use of the product. + +"Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to +install and execute modified versions of a covered work in that User +Product from a modified version of its Corresponding Source. The +information must suffice to ensure that the continued functioning of +the modified object code is in no case prevented or interfered with +solely because modification has been made. + +If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + +The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or +updates for a work that has been modified or installed by the +recipient, or for the User Product in which it has been modified or +installed. Access to a network may be denied when the modification +itself materially and adversely affects the operation of the network +or violates the rules and protocols for communication across the +network. + +Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + +#### 7. Additional Terms. + +"Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders +of that material) supplement the terms of this License with terms: + +- a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or +- b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or +- c) Prohibiting misrepresentation of the origin of that material, + or requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or +- d) Limiting the use for publicity purposes of names of licensors + or authors of the material; or +- e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or +- f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions + of it) with contractual assumptions of liability to the recipient, + for any liability that these contractual assumptions directly + impose on those licensors and authors. + +All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; the +above requirements apply either way. + +#### 8. Termination. + +You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + +#### 9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or run +a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + +#### 10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + +An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + +#### 11. Patents. + +A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + +A contributor's "essential patent claims" are all patent claims owned +or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + +In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + +If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + +A patent license is "discriminatory" if it does not include within the +scope of its coverage, prohibits the exercise of, or is conditioned on +the non-exercise of one or more of the rights that are specifically +granted under this License. You may not convey a covered work if you +are a party to an arrangement with a third party that is in the +business of distributing software, under which you make payment to the +third party based on the extent of your activity of conveying the +work, and under which the third party grants, to any of the parties +who would receive the covered work from you, a discriminatory patent +license (a) in connection with copies of the covered work conveyed by +you (or copies made from those copies), or (b) primarily for and in +connection with specific products or compilations that contain the +covered work, unless you entered into that arrangement, or that patent +license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + +#### 12. No Surrender of Others' Freedom. + +If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under +this License and any other pertinent obligations, then as a +consequence you may not convey it at all. For example, if you agree to +terms that obligate you to collect a royalty for further conveying +from those to whom you convey the Program, the only way you could +satisfy both those terms and this License would be to refrain entirely +from conveying the Program. + +#### 13. Use with the GNU Affero General Public License. + +Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + +#### 14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions +of the GNU General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in +detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies that a certain numbered version of the GNU General Public +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that numbered version or +of any later version published by the Free Software Foundation. If the +Program does not specify a version number of the GNU General Public +License, you may choose any version ever published by the Free +Software Foundation. + +If the Program specifies that a proxy can decide which future versions +of the GNU General Public License can be used, that proxy's public +statement of acceptance of a version permanently authorizes you to +choose that version for the Program. + +Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + +#### 15. Disclaimer of Warranty. + +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT +WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE +DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR +CORRECTION. + +#### 16. Limitation of Liability. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR +CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT +NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR +LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM +TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER +PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +#### 17. Interpretation of Sections 15 and 16. + +If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + +END OF TERMS AND CONDITIONS + +### How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms. + +To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively state +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper +mail. + +If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands \`show w' and \`show c' should show the +appropriate parts of the General Public License. Of course, your +program's commands might be different; for a GUI interface, you would +use an "about box". + +You should also get your employer (if you work as a programmer) or +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. For more information on this, and how to apply and follow +the GNU GPL, see . + +The GNU General Public License does not permit incorporating your +program into proprietary programs. If your program is a subroutine +library, you may consider it more useful to permit linking proprietary +applications with the library. If this is what you want to do, use the +GNU Lesser General Public License instead of this License. But first, +please read . diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..6e75f84c --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,157 @@ +### GNU LESSER GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. + + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +This version of the GNU Lesser General Public License incorporates the +terms and conditions of version 3 of the GNU General Public License, +supplemented by the additional permissions listed below. + +#### 0. Additional Definitions. + +As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the +GNU General Public License. + +"The Library" refers to a covered work governed by this License, other +than an Application or a Combined Work as defined below. + +An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + +A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + +The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + +The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + +#### 1. Exception to Section 3 of the GNU GPL. + +You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + +#### 2. Conveying Modified Versions. + +If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + +- a) under this License, provided that you make a good faith effort + to ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or +- b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + +#### 3. Object Code Incorporating Material from Library Header Files. + +The object code form of an Application may incorporate material from a +header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + +- a) Give prominent notice with each copy of the object code that + the Library is used in it and that the Library and its use are + covered by this License. +- b) Accompany the object code with a copy of the GNU GPL and this + license document. + +#### 4. Combined Works. + +You may convey a Combined Work under terms of your choice that, taken +together, effectively do not restrict modification of the portions of +the Library contained in the Combined Work and reverse engineering for +debugging such modifications, if you also do each of the following: + +- a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. +- b) Accompany the Combined Work with a copy of the GNU GPL and this + license document. +- c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. +- d) Do one of the following: + - 0) Convey the Minimal Corresponding Source under the terms of + this License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + - 1) Use a suitable shared library mechanism for linking with + the Library. A suitable mechanism is one that (a) uses at run + time a copy of the Library already present on the user's + computer system, and (b) will operate properly with a modified + version of the Library that is interface-compatible with the + Linked Version. +- e) Provide Installation Information, but only if you would + otherwise be required to provide such information under section 6 + of the GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the Application + with a modified version of the Linked Version. (If you use option + 4d0, the Installation Information must accompany the Minimal + Corresponding Source and Corresponding Application Code. If you + use option 4d1, you must provide the Installation Information in + the manner specified by section 6 of the GNU GPL for conveying + Corresponding Source.) + +#### 5. Combined Libraries. + +You may place library facilities that are a work based on the Library +side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + +- a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities, conveyed under the terms of this License. +- b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + +#### 6. Revised Versions of the GNU Lesser General Public License. + +The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +as you received it specifies that a certain numbered version of the +GNU Lesser General Public License "or any later version" applies to +it, you have the option of following the terms and conditions either +of that published version or of any later version published by the +Free Software Foundation. If the Library as you received it does not +specify a version number of the GNU Lesser General Public License, you +may choose any version of the GNU Lesser General Public License ever +published by the Free Software Foundation. + +If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/README.md b/README.md index f4b2c15d..d5d92b31 100644 --- a/README.md +++ b/README.md @@ -11,16 +11,16 @@ downloads --> - - lines + + lines - - license + + license - - contributors + + contributors diff --git a/Update Notes/2.0-Pre30.md b/Update Notes/2.0-Pre30.md index e036627b..99591f47 100644 --- a/Update Notes/2.0-Pre30.md +++ b/Update Notes/2.0-Pre30.md @@ -11,18 +11,19 @@ - Added Storage to PV (with correct sizes) - Added Personal Vault to PV - Added scroll lock to storage overlay + ### **Fixed Features:** - Todo list - - Fixed fetchur display - - Fixed godpot timer + - Fixed fetchur display + - Fixed godpot timer - PV's wardrobe view not showing second page bottom row (not fully fixed could be better by dividing on every 4 and drawing per column instead of row but right now its always a full page) - Made dwarven overlay work in crystal hollows (nopo) - Added Gemstone powder to dwarven overlay (nopo) - Made smooth aote work with aotv (thanks to 8k for letting me test his aotv) (nopo) ### **Bug Fixes** - + - Arrow Key backpack option under storage gui not doing anything - Fixed pets gui going away if you open /pets (nopo) -- Fixed PV cit models dieing (nopo) \ No newline at end of file +- Fixed PV cit models dieing (nopo) diff --git a/Update Notes/2.0-Pre31-Release.md b/Update Notes/2.0-Pre31-Release.md index dec4e6a1..35306023 100644 --- a/Update Notes/2.0-Pre31-Release.md +++ b/Update Notes/2.0-Pre31-Release.md @@ -1,10 +1,11 @@ # These are the change notes for PRE31-Release ### **Major Changes** -- None yet. Prob not gonna happen this is mainly for small things. +- None yet. Prob not gonna happen this is mainly for small things. ### **Minor Changes:** + - Added a check to see if the storagegui is on before yelling at you for having fastrender on. - Added toggle to disable showing the treecap cooldown in item durability. (Lulonaut)# - Added text to inform the user to "/api new" when the /pv doesn't load. @@ -16,6 +17,7 @@ - Added Tab auto completion to the AH search gui. (Lulonaut) ### **Bug Fixes** + - Fixed a nullpointer exception in dwarven textures (got some confirmation that it fixed it). - Fixed neuec not parsing correctly. - Fixed crashing when you copy text while in the neuec/neu buttons editor menu. @@ -24,24 +26,21 @@ - Fixed golden goblin not having a icon. - Fixed accessory bag overlay's reforge stat detection as hypixel broke it with their tooltip changes. - Fixed NeuEC as hypixel broke it with their tooltip changes. -- Fixed not being able to press repeat keys in chat. +- Fixed not being able to press repeat keys in chat. - Fixed gemstone gauntlet/Divan Drill not being recognised as mining tools. - Fixed morph pets not being recognized by the extended pet info tooltip tweak. - Fixed wrong commission max values for goblin in dwarven mines and the crystal hollows. (CraftyOldMiner) - Fixed player right click menu command block text appearing on an inventory item. (DeDiamondPro) - - ### **Other** + - Enabled help button by default. - Added SecondPfirsisch cape. - Added Stormy_LH cape. - Change cape order in /neucosmetics because ironmoon asked for it. - ### **Notes for texturepack creators** - ### **Previous change log** -https://github.com/DoKM/NotEnoughUpdates/blob/master/Update%20Notes/2.0-Pre31.md +https://github.com/DoKM/NotEnoughUpdates/blob/master/Update%20Notes/2.0-Pre31.md diff --git a/Update Notes/2.0-Pre31.md b/Update Notes/2.0-Pre31.md index 802ad7c4..ac85f45c 100644 --- a/Update Notes/2.0-Pre31.md +++ b/Update Notes/2.0-Pre31.md @@ -13,8 +13,8 @@ - Added mastermode support to /pv (basically done, just needs mastermode xp) - Added support for the Golden Dragon Pet and added support for other weird pets that might get added. - ### **New Features:** + - Added Ferocity, Magic find, Mining speed and mining fortune to Accessory bag (and ferocity and magic find to /pv). - Update notifier for "Pre" version releases. (Ironm00n) - Added toggle for etherwarp helper overlay text. @@ -42,8 +42,8 @@ - Replaced the chat command when clicking on a player name with /pv (Toggleable) - Added a link to a webpage containing neu's feature /neufeatures and it shows on the first time launch. - ### **Bug Fixes** + - Fishing helper not showing "!" when the rod colours are disabled. - Decimal point values not being counted in Accessory bag overlay. - /pv not having the correct max minion tier. (Ironm00n) @@ -67,15 +67,15 @@ - Fixed dwarven mines waypoints not working if dwarven mines overlay was disabled. - Fixed being able to slot lock the 9th slot. - Fixed NEUButtons overlapping with the Accessory Bag overlay by moving the overlapping icons to the right of the overlay. (should work pretty well, too lazy to test with custom button positions but should work fine.) -- Stopped tooltip tweak rawcraftcost displaying if the cost was 0 (either due to the price being really low or api issue). +- Stopped tooltip tweak rawcraftcost displaying if the cost was 0 (either due to the price being really low or api issue). - Added a catch to the capemanger slow to catch duplicate players (https://hst.sh/enuvamecef) (idk how but hey its there now). - Fix being able to hotkey slotlocked items in a chest gui. - (Hopefully) Fix storage overlay nullpointer crash. - Fix not being able to dye undyed leather armour. - Some Storage Overlay fixes (DeDiamondPro) - ### **Other** + - Code clean up by Ironm00n. - Rename variables to be more consistent. (Ironm00n) - Devpane changes. (? - DoKM) (Ironm00n) @@ -106,6 +106,3 @@ - Added the edit button to the Storage gui texture (it was already on transparent but not on the others) please update your textures - Added neu logo to the bottom right of the Storage gui textures (so people stop asking which mod adds the gui (Atleast try to make the amount less)) - Added ironman icon to pv (notenoughupdates/pv_ironman.png) (thanks ery for the icon) - - - diff --git a/Update Notes/2.1.md b/Update Notes/2.1.md index c8f97357..e3c16382 100644 --- a/Update Notes/2.1.md +++ b/Update Notes/2.1.md @@ -1,6 +1,7 @@ # These are the change notes for NEU 2.1 REL ### **Major Changes:** + - Added mining skill overlay - Added fishing skill overlay - Added combat skill overlay @@ -10,14 +11,16 @@ - Added blocking clicks back to the enchanting minigames (because apparently, it's not bannable?) - [Donpireso replied to a sba dev's email about some of sba features, and it seems to imply that blocking clicks in guis aren't bannable](https://cdn.discordapp.com/attachments/823769568933576764/906101631861526559/unknown.png) - Fixed pet overlay not updating when going into /pets -- [Added an armor overlay for the new armor slots](https://cdn.discordapp.com/attachments/832652653292027904/922399046528794634/unknown.png) +- [Added an armor overlay for the new armor slots](https://cdn.discordapp.com/attachments/832652653292027904/922399046528794634/unknown.png) - Added a pet overlay that shows your active pet in your inventory - [Price graph for items on /ah and /bz](https://cdn.discordapp.com/attachments/896407218151366687/926968296929107999/unknown.png) - DeDiamondPro - [Added bingo tab in /pv](https://cdn.discordapp.com/attachments/702456294874808330/951909539383500820/unknown.png) - Lulonaut - Added wishing compass solver that shows target coordinates, structure, and integrates with Skytils waypoints - CraftyOldMiner - Improved metal detector logic to solve using a single position in most cases using known locations based on Keeper coordinates - CraftyOldMiner - Added support for official Hypixel wiki, can be toggled in /neu misc - DeDiamondPro + ### **Minor Changes:** + - Add built-in recipes for forge crafts - nea89 - Add mob drop viewer in the recipe viewer - nea89 - Add Stranded Villager Trades to the item list - nea89 @@ -25,7 +28,7 @@ - Added a config option to hide Dwarven Mines waypoints when already at the location - Lulonaut - Added some info panels to some settings in /neu - Added Kat Level After Upgrade Estimator - nea89 -- Added /pv button in /neu +- Added /pv button in /neu - Added pitch and coins/m as options in farming skill overlay - Make it so tab completion in ah search GUI goes down the items - Lulonaut - Added a toggle for enchant glint in storage gui (ty ery for texture) @@ -41,7 +44,7 @@ - Added /neurepomode to toggle item editing and dev mode, changing the item repo url and toggling autoupdating of the repo - Changed "NEUAH is DISABLED! Enable in /neusettings." to /neu - Changed misc overlays tab to todo overlays -- Added a config option for npc retexturing +- Added a config option for npc retexturing - Added a config option for dirt wand overlay - Added a config option for hoe of tilling - Added an option to use short numbers (1.5mil) for price tooltips @@ -57,7 +60,7 @@ - Added "Has Advanced Tab" to /neustats - Added custom runes and crab hat system - jani - Removed unused textures -- Added total xp if player is above cata 50 in /pv - efefury +- Added total xp if player is above cata 50 in /pv - efefury - Added daily powder to todo overlay - efefury - Added a way to include kismet feather to profit calculator - efefury - Added custom sounds for crystal hollow gemstones - nea89 @@ -81,11 +84,13 @@ - Added tab completion to /neupackdev subcommands. - whalker - Made it if you hold shift in the enchant solvers it overrides prevent missclicks - Added 6-10 stars to the auction search overlay -- Added 6-10 stars to /neucustomize +- Added 6-10 stars to /neucustomize - Added support for attributes in neuec - Added Heavy Pearls to todo overlay - cobble8 - Added Booster Cookie Warning - 2stinkysocks + ### **Bug Fixes:** + - Fix wiki pages freezing the entire game - nea89 - Made titanium overlay and waypoints work with dwarven overlay off - "fixed" divan rarity in NEUAH (scuffed) @@ -99,13 +104,13 @@ - Fixed api key autofill with dg copy chat feature - Made missing enchants not show on an item if its not missing any enchants - Fixed Mining overlay crash - Dokm -- Fixed pet crash - Dokm +- Fixed pet crash - Dokm - Fixed fetchur for the 75th time - [Made an error if you have new tab list off](https://cdn.discordapp.com/attachments/896407218151366687/913681097605398528/unknown.png) - Fixed lava fishing with the fishing alert - Fixed /locraw detection, [previously allowed chat messages to trigger it](https://github.com/NotEnoughUpdates/NotEnoughUpdates/issues/35) - IRONM00N - Fixed experiment timer in todo overlay - efefury -- Fixed replace click events with /pv working in other modes +- Fixed replace click events with /pv working in other modes - Fixed /neuec presets not applying the strikethrough attribute - Lulonaut - Fixed what hypxiel broke in dungeons - Fixed the dungeon map on f1 - Minikloon @@ -114,7 +119,9 @@ - Fixed crash in /pv when the player had a pet that is not saved in the repo - Lulonaut - Fixed some vanilla Minecraft keybinds not working in NEU GUIs - Fixed crash with spamming remove enchant in /neuec + ### **Other:** + - New icons was added in storage_icons.png - Moved the help icon in /neucustomize over a little - Added dg partner cape @@ -123,5 +130,7 @@ - Code Cleanup - IRONM00N - Renamed Keebler408 to CraftyOldMiner - Added JUnit unit tests for metal detector and wishing compass solver + ### **Previous change log** + https://github.com/NotEnoughUpdates/NotEnoughUpdates/blob/master/Update%20Notes/2.0-Pre31-Release.md diff --git a/build.gradle.kts b/build.gradle.kts index 4f178f58..9f3c1715 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,26 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + import java.io.ByteArrayOutputStream plugins { - idea + idea java id("gg.essential.loom") version "0.10.0.+" id("dev.architectury.architectury-pack200") version "0.1.3" diff --git a/settings.gradle.kts b/settings.gradle.kts index 4df48664..eb291fb5 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,5 +1,24 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + pluginManagement { - repositories { + repositories { mavenCentral() gradlePluginPortal() maven("https://oss.sonatype.org/content/repositories/snapshots") diff --git a/src/main/java/NotSkyblockAddonsInstallerFrame.java b/src/main/java/NotSkyblockAddonsInstallerFrame.java index e6543617..969e6c28 100644 --- a/src/main/java/NotSkyblockAddonsInstallerFrame.java +++ b/src/main/java/NotSkyblockAddonsInstallerFrame.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; @@ -6,7 +25,13 @@ import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.image.BufferedImage; -import java.io.*; +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.io.StringWriter; import java.net.URI; import java.net.URISyntaxException; import java.nio.file.Files; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/CustomItems.java b/src/main/java/io/github/moulberry/notenoughupdates/CustomItems.java index 28686073..06321b53 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/CustomItems.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/CustomItems.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates; import com.google.gson.JsonArray; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/ItemPriceInformation.java b/src/main/java/io/github/moulberry/notenoughupdates/ItemPriceInformation.java index 38b59ef3..e1a3b3ee 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/ItemPriceInformation.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/ItemPriceInformation.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates; import com.google.gson.Gson; @@ -100,7 +119,6 @@ public class ItemPriceInformation { } } - NumberFormat format = NumberFormat.getInstance(Locale.US); boolean shortNumber = NotEnoughUpdates.INSTANCE.config.tooltipTweaks.shortNumberFormatPrices; if (bazaarItem) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUApi.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUApi.java index feb18c66..6cdeb474 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUApi.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUApi.java @@ -1,5 +1,23 @@ -package io.github.moulberry.notenoughupdates; +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ +package io.github.moulberry.notenoughupdates; import net.minecraftforge.fml.relauncher.ReflectionHelper; public class NEUApi { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java index ea92a670..c4efeb15 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates; import com.google.gson.Gson; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java index b8651867..5b1d3c14 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates; import com.google.common.collect.Lists; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEURepoResourcePack.java b/src/main/java/io/github/moulberry/notenoughupdates/NEURepoResourcePack.java index 2a5cda92..bc279188 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEURepoResourcePack.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEURepoResourcePack.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates; import com.google.gson.JsonObject; @@ -7,69 +26,74 @@ import net.minecraft.client.resources.data.IMetadataSerializer; import net.minecraft.util.ResourceLocation; import java.awt.image.BufferedImage; -import java.io.*; +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; import java.util.HashSet; import java.util.Set; public class NEURepoResourcePack implements IResourcePack { - File repoLocation; - Set resourceDomains = new HashSet<>(); + File repoLocation; + Set resourceDomains = new HashSet<>(); - public NEURepoResourcePack(File repoLocation, String domain) { - this.repoLocation = repoLocation; - resourceDomains.add(domain); - } + public NEURepoResourcePack(File repoLocation, String domain) { + this.repoLocation = repoLocation; + resourceDomains.add(domain); + } - public boolean loadRepoLocation() { - if (repoLocation != null) return true; - NotEnoughUpdates instance = NotEnoughUpdates.INSTANCE; - if (instance == null) return false; - NEUManager manager = instance.manager; - if (manager == null) return false; - repoLocation = manager.repoLocation; - return repoLocation != null; - } + public boolean loadRepoLocation() { + if (repoLocation != null) return true; + NotEnoughUpdates instance = NotEnoughUpdates.INSTANCE; + if (instance == null) return false; + NEUManager manager = instance.manager; + if (manager == null) return false; + repoLocation = manager.repoLocation; + return repoLocation != null; + } - public File getFileForResource(ResourceLocation loc) { - if (repoLocation == null) { - if (!loadRepoLocation()) - return null; - } - if (!"neurepo".equals(loc.getResourceDomain())) { - return null; - } - return new File(repoLocation, loc.getResourcePath()); - } + public File getFileForResource(ResourceLocation loc) { + if (repoLocation == null) { + if (!loadRepoLocation()) + return null; + } + if (!"neurepo".equals(loc.getResourceDomain())) { + return null; + } + return new File(repoLocation, loc.getResourcePath()); + } - @Override - public InputStream getInputStream(ResourceLocation resourceLocation) throws IOException { - return new BufferedInputStream(new FileInputStream(getFileForResource(resourceLocation))); - } + @Override + public InputStream getInputStream(ResourceLocation resourceLocation) throws IOException { + return new BufferedInputStream(new FileInputStream(getFileForResource(resourceLocation))); + } - @Override - public boolean resourceExists(ResourceLocation resourceLocation) { - File file = getFileForResource(resourceLocation); - return file != null && file.exists(); - } + @Override + public boolean resourceExists(ResourceLocation resourceLocation) { + File file = getFileForResource(resourceLocation); + return file != null && file.exists(); + } - @Override - public Set getResourceDomains() { - return resourceDomains; - } + @Override + public Set getResourceDomains() { + return resourceDomains; + } - @Override - public T getPackMetadata(IMetadataSerializer iMetadataSerializer, String s) throws IOException { - return iMetadataSerializer.parseMetadataSection(s, new JsonObject()); - } + @Override + public T getPackMetadata(IMetadataSerializer iMetadataSerializer, String s) + throws IOException { + return iMetadataSerializer.parseMetadataSection(s, new JsonObject()); + } - @Override - public BufferedImage getPackImage() throws IOException { - return null; - } + @Override + public BufferedImage getPackImage() throws IOException { + return null; + } - @Override - public String getPackName() { - return "NEU Repo Resources"; - } + @Override + public String getPackName() { + return "NEU Repo Resources"; + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java index cac89e77..9f7a98b1 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates; import com.google.common.collect.Sets; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java b/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java index 80d2bca9..d4b6bd05 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.auction; import com.google.gson.JsonArray; @@ -27,7 +46,16 @@ import net.minecraft.util.ResourceLocation; import java.io.ByteArrayInputStream; import java.io.IOException; -import java.util.*; +import java.util.Base64; +import java.util.ConcurrentModificationException; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.NoSuchElementException; +import java.util.Set; +import java.util.TreeMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.function.Consumer; @@ -214,7 +242,7 @@ public class APIManager { lastBazaarUpdate = currentTime - BAZAAR_UPDATE_INTERVAL + 60 * 1000; // Try again in 1 minute on failure updateBazaar(); } - if (currentTime - lastLowestBinUpdate > LOWEST_BIN_UPDATE_INTERVAL) { + if (currentTime - lastLowestBinUpdate > LOWEST_BIN_UPDATE_INTERVAL) { lastLowestBinUpdate = currentTime - LOWEST_BIN_UPDATE_INTERVAL + 30 * 1000; // Try again in 30 seconds on failure updateLowestBin(); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/auction/CustomAH.java b/src/main/java/io/github/moulberry/notenoughupdates/auction/CustomAH.java index 4fae9ea5..b5d34ed7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/auction/CustomAH.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/auction/CustomAH.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.auction; import com.google.gson.JsonObject; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/auction/CustomAHGui.java b/src/main/java/io/github/moulberry/notenoughupdates/auction/CustomAHGui.java index 9311040d..ca85ca1c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/auction/CustomAHGui.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/auction/CustomAHGui.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.auction; import net.minecraft.client.gui.GuiScreen; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/ClientCommandBase.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/ClientCommandBase.java index 8ba87ecd..e0ae7a1a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/ClientCommandBase.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/ClientCommandBase.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands; import net.minecraft.command.CommandBase; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java index ea401eb7..86411f4f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java @@ -1,11 +1,41 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands; -import io.github.moulberry.notenoughupdates.commands.dev.*; +import io.github.moulberry.notenoughupdates.commands.dev.DevTestCommand; +import io.github.moulberry.notenoughupdates.commands.dev.DiagCommand; +import io.github.moulberry.notenoughupdates.commands.dev.DungeonWinTestCommand; +import io.github.moulberry.notenoughupdates.commands.dev.NullzeeSphereCommand; +import io.github.moulberry.notenoughupdates.commands.dev.PackDevCommand; +import io.github.moulberry.notenoughupdates.commands.dev.ReloadRepoCommand; +import io.github.moulberry.notenoughupdates.commands.dev.ResetRepoCommand; +import io.github.moulberry.notenoughupdates.commands.dev.StatsCommand; import io.github.moulberry.notenoughupdates.commands.dungeon.DhCommand; import io.github.moulberry.notenoughupdates.commands.dungeon.DnCommand; import io.github.moulberry.notenoughupdates.commands.dungeon.JoinDungeonCommand; import io.github.moulberry.notenoughupdates.commands.dungeon.MapCommand; -import io.github.moulberry.notenoughupdates.commands.help.*; +import io.github.moulberry.notenoughupdates.commands.help.FeaturesCommand; +import io.github.moulberry.notenoughupdates.commands.help.HelpCommand; +import io.github.moulberry.notenoughupdates.commands.help.LinksCommand; +import io.github.moulberry.notenoughupdates.commands.help.SettingsCommand; +import io.github.moulberry.notenoughupdates.commands.help.StorageViewerWhyCommand; import io.github.moulberry.notenoughupdates.commands.misc.AhCommand; import io.github.moulberry.notenoughupdates.commands.misc.CalendarCommand; import io.github.moulberry.notenoughupdates.commands.misc.CosmeticsCommand; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/EntityViewerCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/EntityViewerCommand.java index c7b1862e..e3738661 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/EntityViewerCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/EntityViewerCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands; import com.google.common.collect.Lists; @@ -21,61 +40,61 @@ import java.util.Queue; import java.util.concurrent.ConcurrentLinkedDeque; public class EntityViewerCommand extends ClientCommandBase { - public EntityViewerCommand() { - super("neushowentity"); - MinecraftForge.EVENT_BUS.register(this); - } + public EntityViewerCommand() { + super("neushowentity"); + MinecraftForge.EVENT_BUS.register(this); + } - @Override - public List getCommandAliases() { - return Lists.newArrayList("neuentityviewer"); - } + @Override + public List getCommandAliases() { + return Lists.newArrayList("neuentityviewer"); + } - @Override - public String getCommandUsage(ICommandSender sender) { - return EnumChatFormatting.RED + "Use /neushowentity list"; - } + @Override + public String getCommandUsage(ICommandSender sender) { + return EnumChatFormatting.RED + "Use /neushowentity list"; + } - public void showUsage(ICommandSender sender) { - sender.addChatMessage(new ChatComponentText(getCommandUsage(sender))); - } + public void showUsage(ICommandSender sender) { + sender.addChatMessage(new ChatComponentText(getCommandUsage(sender))); + } - private final Queue queuedGUIS = new ConcurrentLinkedDeque<>(); + private final Queue queuedGUIS = new ConcurrentLinkedDeque<>(); - @SubscribeEvent - public void onTick(TickEvent event) { - if (Minecraft.getMinecraft().currentScreen == null) { - EntityViewer poll = queuedGUIS.poll(); - if (poll == null) return; - Minecraft.getMinecraft().displayGuiScreen(poll); - } - } + @SubscribeEvent + public void onTick(TickEvent event) { + if (Minecraft.getMinecraft().currentScreen == null) { + EntityViewer poll = queuedGUIS.poll(); + if (poll == null) return; + Minecraft.getMinecraft().displayGuiScreen(poll); + } + } - @Override - public void processCommand(ICommandSender sender, String[] strings) throws CommandException { - if (strings.length == 0) { - showUsage(sender); - return; - } - if (strings[0].equals("list")) { - for (String label : EntityViewer.validEntities.keySet()) { - sender.addChatMessage(new ChatComponentText(EnumChatFormatting.BLUE + " " + label) - .setChatStyle(new ChatStyle().setChatClickEvent( - new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/neuentityviewer " + label)))); - } - return; - } - EntityLivingBase entityLivingBase; - if (strings[0].startsWith("@")) { - ResourceLocation resourceLocation = new ResourceLocation(strings[0].substring(1)); - entityLivingBase = EntityViewer.constructEntity(resourceLocation); - } else { - entityLivingBase = EntityViewer.constructEntity(strings[0], Arrays.copyOfRange(strings, 1, strings.length)); - } - if (entityLivingBase == null) { - sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Could not create that entity")); - return; - } - queuedGUIS.add(new EntityViewer(strings[0], entityLivingBase)); - } + @Override + public void processCommand(ICommandSender sender, String[] strings) throws CommandException { + if (strings.length == 0) { + showUsage(sender); + return; + } + if (strings[0].equals("list")) { + for (String label : EntityViewer.validEntities.keySet()) { + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.BLUE + " " + label) + .setChatStyle(new ChatStyle().setChatClickEvent( + new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/neuentityviewer " + label)))); + } + return; + } + EntityLivingBase entityLivingBase; + if (strings[0].startsWith("@")) { + ResourceLocation resourceLocation = new ResourceLocation(strings[0].substring(1)); + entityLivingBase = EntityViewer.constructEntity(resourceLocation); + } else { + entityLivingBase = EntityViewer.constructEntity(strings[0], Arrays.copyOfRange(strings, 1, strings.length)); + } + if (entityLivingBase == null) { + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Could not create that entity")); + return; + } + queuedGUIS.add(new EntityViewer(strings[0], entityLivingBase)); + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/ScreenCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/ScreenCommand.java index 29dd9d55..1b90e5df 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/ScreenCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/ScreenCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java index 478f4db7..7cca9d3b 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.dev; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DiagCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DiagCommand.java index dab99698..326c00b4 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DiagCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DiagCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.dev; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -49,8 +68,7 @@ public class DiagCommand extends ClientCommandBase { CrystalMetalDetectorSolver.setDebugDoNotUseCenter(true); sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Center coordinates-based solutions disabled")); - } - else if (subCommand.equals("center=on")) { + } else if (subCommand.equals("center=on")) { CrystalMetalDetectorSolver.setDebugDoNotUseCenter(false); sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Center coordinates-based solutions enabled")); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DungeonWinTestCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DungeonWinTestCommand.java index 223e154a..be25e697 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DungeonWinTestCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DungeonWinTestCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.dev; import io.github.moulberry.notenoughupdates.commands.ClientCommandBase; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/NullzeeSphereCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/NullzeeSphereCommand.java index 64d64545..3a9ce90f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/NullzeeSphereCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/NullzeeSphereCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.dev; import io.github.moulberry.notenoughupdates.commands.ClientCommandBase; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/PackDevCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/PackDevCommand.java index 2b0e7240..e1504472 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/PackDevCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/PackDevCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.dev; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -25,51 +44,66 @@ import java.util.function.Supplier; public class PackDevCommand extends ClientCommandBase { static Minecraft mc = Minecraft.getMinecraft(); + public PackDevCommand() { super("neupackdev"); } private static final HashMap> commands = new HashMap>() {{ - put("getnpc", + put( + "getnpc", new Command<>( "NPC", () -> mc.theWorld.playerEntities, true, AbstractClientPlayer.class - )); - put("getnpcs", + ) + ); + put( + "getnpcs", new Command<>( "NPC", () -> mc.theWorld.playerEntities, false, AbstractClientPlayer.class - )); - put("getmob", + ) + ); + put( + "getmob", new Command<>( "mob", () -> mc.theWorld.loadedEntityList, true, EntityLiving.class - )); - put("getmobs", + ) + ); + put( + "getmobs", new Command<>( "mob", () -> mc.theWorld.loadedEntityList, false, EntityLiving.class - )); - put("getarmorstand", - new Command<>("armor stand", + ) + ); + put( + "getarmorstand", + new Command<>( + "armor stand", () -> mc.theWorld.loadedEntityList, true, EntityArmorStand.class - )); - put("getarmorstands", - new Command<>("armor stand", + ) + ); + put( + "getarmorstands", + new Command<>( + "armor stand", () -> mc.theWorld.loadedEntityList, false, EntityArmorStand.class - )); + ) + ); }}; @Override @@ -108,7 +142,7 @@ public class PackDevCommand extends ClientCommandBase { StringBuilder output; String subCommand = args[0].toLowerCase(); if (commands.containsKey(subCommand)) { - Command command = commands.get(subCommand); + Command command = commands.get(subCommand); output = command.getData(dist); } else if (subCommand.equals("getall")) { output = getAll(dist); @@ -184,7 +218,7 @@ public class PackDevCommand extends ClientCommandBase { String heldItemString = heldItemTagCompound.toString(); NBTBase extraAttrTag = heldItemTagCompound.getTag("ExtraAttributes"); entityData - .append(heldItemString != null ? heldItemString : "null") + .append(heldItemString != null ? heldItemString : "null") .append("\nItem Tag Compound Extra Attributes: ") .append(extraAttrTag != null ? extraAttrTag : "null"); } else { @@ -201,12 +235,13 @@ public class PackDevCommand extends ClientCommandBase { } private static final String[] armorPieceTypes = {"Boots", "Leggings", "Chestplate", "Helmet"}; - public static StringBuilder armorDataBuilder (T entity) { + + public static StringBuilder armorDataBuilder(T entity) { StringBuilder armorData = new StringBuilder(); - for (int i=0; i < 4; i++) { + for (int i = 0; i < 4; i++) { ItemStack currentArmor = entity.getCurrentArmor(0); armorData.append(String.format("\n%s: ", armorPieceTypes[i])); - if (currentArmor == null) { + if (currentArmor == null) { armorData.append("null"); } else { armorData.append(currentArmor.getTagCompound() != null ? currentArmor.getTagCompound().toString() : "null"); @@ -221,10 +256,12 @@ public class PackDevCommand extends ClientCommandBase { Class clazz; boolean single; - Command(String typeFriendlyName, - Supplier> entitySupplier, - boolean single, - Class clazz) { + Command( + String typeFriendlyName, + Supplier> entitySupplier, + boolean single, + Class clazz + ) { this.typeFriendlyName = typeFriendlyName; this.entitySupplier = entitySupplier; this.single = single; @@ -241,8 +278,8 @@ public class PackDevCommand extends ClientCommandBase { continue; } T entityT = (T) entity; - double entityDistanceSq = entity.getDistanceSq(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ); - if (entityDistanceSq < distSq) { + double entityDistanceSq = entity.getDistanceSq(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ); + if (entityDistanceSq < distSq) { if (single) { distSq = entityDistanceSq; closest = entityT; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/ReloadRepoCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/ReloadRepoCommand.java index 40db245a..0bf57594 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/ReloadRepoCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/ReloadRepoCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.dev; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/ResetRepoCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/ResetRepoCommand.java index 9e8363fb..3f693898 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/ResetRepoCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/ResetRepoCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.dev; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/StatsCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/StatsCommand.java index c7b6e887..756afc88 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/StatsCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/StatsCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.dev; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/DhCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/DhCommand.java index 89299a36..222862f9 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/DhCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/DhCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.dungeon; import io.github.moulberry.notenoughupdates.commands.ClientCommandBase; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/DnCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/DnCommand.java index 8fbbceba..a5a7bcca 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/DnCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/DnCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.dungeon; import io.github.moulberry.notenoughupdates.commands.ClientCommandBase; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/JoinDungeonCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/JoinDungeonCommand.java index 874e81db..d69f86f3 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/JoinDungeonCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/JoinDungeonCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.dungeon; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java index ae06a346..3789a09d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.dungeon; import com.google.gson.JsonElement; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/help/FeaturesCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/help/FeaturesCommand.java index 593f2575..5f709c4f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/help/FeaturesCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/help/FeaturesCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.help; import io.github.moulberry.notenoughupdates.commands.ClientCommandBase; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.java index c9f0ec27..ba49221e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.java @@ -1,15 +1,32 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.help; import com.google.common.collect.Lists; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.commands.ClientCommandBase; import net.minecraft.client.Minecraft; -import net.minecraft.command.CommandException; import net.minecraft.command.ICommandSender; import net.minecraft.util.ChatComponentText; import java.util.ArrayList; -import java.util.List; public class HelpCommand extends ClientCommandBase { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/help/LinksCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/help/LinksCommand.java index c81f44a8..cb8ba6ed 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/help/LinksCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/help/LinksCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.help; import com.google.gson.JsonObject; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/help/SettingsCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/help/SettingsCommand.java index 08350be9..9964b739 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/help/SettingsCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/help/SettingsCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.help; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/help/StorageViewerWhyCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/help/StorageViewerWhyCommand.java index 5d19d62c..820c6f2a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/help/StorageViewerWhyCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/help/StorageViewerWhyCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.help; import com.google.common.collect.Lists; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/AhCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/AhCommand.java index 69d114ca..1cd6bcce 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/AhCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/AhCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.misc; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/ButtonsCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/ButtonsCommand.java index 63d5c327..55113462 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/ButtonsCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/ButtonsCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.misc; import io.github.moulberry.notenoughupdates.commands.ClientCommandBase; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CalendarCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CalendarCommand.java index d3c472bd..58c13474 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CalendarCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CalendarCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.misc; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CosmeticsCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CosmeticsCommand.java index de772d65..f74b5813 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CosmeticsCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CosmeticsCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.misc; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CustomizeCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CustomizeCommand.java index 6bce4f5a..cca6535e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CustomizeCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CustomizeCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.misc; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -9,7 +28,6 @@ import net.minecraft.command.ICommandSender; import net.minecraft.item.ItemStack; import net.minecraft.util.ChatComponentText; -import java.util.Arrays; import java.util.Collections; import java.util.List; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/CataCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/CataCommand.java index ccf72d73..afc47418 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/CataCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/CataCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.profile; import io.github.moulberry.notenoughupdates.profileviewer.GuiProfileViewer; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/PeekCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/PeekCommand.java index d69139aa..3133edf5 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/PeekCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/PeekCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.profile; import com.google.gson.JsonElement; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/PvCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/PvCommand.java index 07394ffd..2d5c05f4 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/PvCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/PvCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.profile; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/ViewProfileCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/ViewProfileCommand.java index fe441ad6..e4ca497c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/ViewProfileCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/ViewProfileCommand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.commands.profile; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/BackgroundBlur.java b/src/main/java/io/github/moulberry/notenoughupdates/core/BackgroundBlur.java index c85841b3..fc2be97b 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/BackgroundBlur.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/BackgroundBlur.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/ChromaColour.java b/src/main/java/io/github/moulberry/notenoughupdates/core/ChromaColour.java index 8f4dd87d..05a9a65e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/ChromaColour.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/ChromaColour.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core; import java.awt.*; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/GlScissorStack.java b/src/main/java/io/github/moulberry/notenoughupdates/core/GlScissorStack.java index 7cc8893f..40b9fe7a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/GlScissorStack.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/GlScissorStack.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core; import net.minecraft.client.Minecraft; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElement.java b/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElement.java index c1c76675..2a684164 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElement.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElement.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core; import net.minecraft.client.gui.Gui; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementBoolean.java b/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementBoolean.java index d5cbb3ad..b0586210 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementBoolean.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementBoolean.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core; import io.github.moulberry.notenoughupdates.core.util.lerp.LerpUtils; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementColour.java b/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementColour.java index 48996c8d..1f655aaf 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementColour.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementColour.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core; import io.github.moulberry.notenoughupdates.core.util.render.RenderUtils; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementTextField.java b/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementTextField.java index f3d038e9..45dc58cc 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementTextField.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/GuiElementTextField.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core; import io.github.moulberry.notenoughupdates.core.util.StringUtils; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/GuiScreenElementWrapper.java b/src/main/java/io/github/moulberry/notenoughupdates/core/GuiScreenElementWrapper.java index c7c4517b..95ed8a5f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/GuiScreenElementWrapper.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/GuiScreenElementWrapper.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core; import net.minecraft.client.gui.GuiScreen; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/Config.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/Config.java index 2a696a44..6bafb1fd 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/Config.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/Config.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config; public class Config { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/GuiPositionEditor.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/GuiPositionEditor.java index 9d0133cb..eac1e5cd 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/GuiPositionEditor.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/GuiPositionEditor.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config; import net.minecraft.client.Minecraft; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/KeybindHelper.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/KeybindHelper.java index 30226a22..d63f871c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/KeybindHelper.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/KeybindHelper.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config; import org.lwjgl.input.Keyboard; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/Position.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/Position.java index cf946649..535c92bf 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/Position.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/Position.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config; import com.google.gson.annotations.Expose; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/PositionNew.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/PositionNew.java index 8f2b02d8..cf756c91 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/PositionNew.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/PositionNew.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config; import com.google.gson.annotations.Expose; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/Category.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/Category.java index b67d0383..e0a9585a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/Category.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/Category.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.annotations; import java.lang.annotation.ElementType; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigAccordionId.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigAccordionId.java index 1c847851..b11f7651 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigAccordionId.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigAccordionId.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.annotations; import java.lang.annotation.ElementType; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorAccordion.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorAccordion.java index 11b798f9..7491a94f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorAccordion.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorAccordion.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.annotations; import java.lang.annotation.ElementType; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorBoolean.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorBoolean.java index f625b318..8e6f652c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorBoolean.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorBoolean.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.annotations; import java.lang.annotation.ElementType; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorButton.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorButton.java index 455df65f..a2c56dc0 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorButton.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorButton.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.annotations; import java.lang.annotation.ElementType; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorColour.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorColour.java index 6640ade9..824b2eec 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorColour.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorColour.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.annotations; import java.lang.annotation.ElementType; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorDraggableList.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorDraggableList.java index 61e923f5..d9707c9b 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorDraggableList.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorDraggableList.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.annotations; import java.lang.annotation.ElementType; @@ -9,5 +28,6 @@ import java.lang.annotation.Target; @Target(ElementType.FIELD) public @interface ConfigEditorDraggableList { String[] exampleText(); + boolean allowDeleting() default true; } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorDropdown.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorDropdown.java index ac766e93..8d870643 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorDropdown.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorDropdown.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.annotations; import java.lang.annotation.ElementType; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorFSR.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorFSR.java index 217df0c5..ba45ae68 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorFSR.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorFSR.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.annotations; import java.lang.annotation.ElementType; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorKeybind.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorKeybind.java index 8d8de2eb..f1a3e329 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorKeybind.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorKeybind.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.annotations; import java.lang.annotation.ElementType; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorSlider.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorSlider.java index abab37f9..b8db25bc 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorSlider.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorSlider.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.annotations; import java.lang.annotation.ElementType; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorText.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorText.java index 1ff7e39e..b6b32fb2 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorText.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigEditorText.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.annotations; import java.lang.annotation.ElementType; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigOption.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigOption.java index 2ee23dcf..d51294e7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigOption.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/annotations/ConfigOption.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.annotations; import java.lang.annotation.ElementType; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditor.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditor.java index d62c7ec7..c3969e35 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditor.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditor.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.gui; import io.github.moulberry.notenoughupdates.core.config.struct.ConfigProcessor; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorAccordion.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorAccordion.java index 8877cd03..dc1173ef 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorAccordion.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorAccordion.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.gui; import io.github.moulberry.notenoughupdates.core.config.struct.ConfigProcessor; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorBoolean.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorBoolean.java index 8a3b2f14..d12ec8e7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorBoolean.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorBoolean.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.gui; import io.github.moulberry.notenoughupdates.core.GuiElementBoolean; @@ -18,7 +37,7 @@ public class GuiOptionEditorBoolean extends GuiOptionEditor { super(option); this.config = config; this.runnableId = runnableId; - bool = new GuiElementBoolean(0, 0, (boolean) option.get(),10, (value) -> onUpdate(option, value)); + bool = new GuiElementBoolean(0, 0, (boolean) option.get(), 10, (value) -> onUpdate(option, value)); } @Override diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorButton.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorButton.java index 76944efa..aef6318c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorButton.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorButton.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.gui; import io.github.moulberry.notenoughupdates.core.config.Config; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorColour.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorColour.java index 80d2af42..ca4087b5 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorColour.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorColour.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.gui; import io.github.moulberry.notenoughupdates.core.ChromaColour; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorDraggableList.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorDraggableList.java index 4dbde24b..63a932b5 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorDraggableList.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorDraggableList.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.gui; import io.github.moulberry.notenoughupdates.core.config.struct.ConfigProcessor; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorDropdown.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorDropdown.java index a17737e3..af6af277 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorDropdown.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorDropdown.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.gui; import io.github.moulberry.notenoughupdates.core.config.struct.ConfigProcessor; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorFSR.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorFSR.java index b443b5f6..048e261e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorFSR.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorFSR.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.gui; import io.github.moulberry.notenoughupdates.core.config.Config; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorKeybind.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorKeybind.java index 5ff961a7..6eb71d1e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorKeybind.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorKeybind.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.gui; import io.github.moulberry.notenoughupdates.core.config.KeybindHelper; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorSlider.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorSlider.java index 45ae70d9..7fceb92d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorSlider.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorSlider.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.gui; import io.github.moulberry.notenoughupdates.core.GuiElementTextField; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorText.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorText.java index 7acc074b..ad2fa4db 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorText.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiOptionEditorText.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.gui; import io.github.moulberry.notenoughupdates.core.GuiElementTextField; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiPositionEditor.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiPositionEditor.java index 80ec3811..ed45bab6 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiPositionEditor.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/gui/GuiPositionEditor.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.gui; import io.github.moulberry.notenoughupdates.core.config.Position; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/struct/ConfigProcessor.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/struct/ConfigProcessor.java index dddc14de..75862069 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/config/struct/ConfigProcessor.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/struct/ConfigProcessor.java @@ -1,9 +1,50 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.config.struct; import com.google.gson.annotations.Expose; import io.github.moulberry.notenoughupdates.core.config.Config; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; -import io.github.moulberry.notenoughupdates.core.config.gui.*; +import io.github.moulberry.notenoughupdates.core.config.annotations.Category; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigAccordionId; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorAccordion; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorButton; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorColour; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDraggableList; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDropdown; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorFSR; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorKeybind; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorSlider; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorText; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; +import io.github.moulberry.notenoughupdates.core.config.gui.GuiOptionEditor; +import io.github.moulberry.notenoughupdates.core.config.gui.GuiOptionEditorAccordion; +import io.github.moulberry.notenoughupdates.core.config.gui.GuiOptionEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.gui.GuiOptionEditorButton; +import io.github.moulberry.notenoughupdates.core.config.gui.GuiOptionEditorColour; +import io.github.moulberry.notenoughupdates.core.config.gui.GuiOptionEditorDraggableList; +import io.github.moulberry.notenoughupdates.core.config.gui.GuiOptionEditorDropdown; +import io.github.moulberry.notenoughupdates.core.config.gui.GuiOptionEditorFSR; +import io.github.moulberry.notenoughupdates.core.config.gui.GuiOptionEditorKeybind; +import io.github.moulberry.notenoughupdates.core.config.gui.GuiOptionEditorSlider; +import io.github.moulberry.notenoughupdates.core.config.gui.GuiOptionEditorText; import java.lang.reflect.Field; import java.util.LinkedHashMap; @@ -148,7 +189,11 @@ public class ConfigProcessor { if (optionField.isAnnotationPresent(ConfigEditorDraggableList.class)) { ConfigEditorDraggableList configEditorAnnotation = optionField.getAnnotation(ConfigEditorDraggableList.class); - editor = new GuiOptionEditorDraggableList(option, configEditorAnnotation.exampleText(), configEditorAnnotation.allowDeleting()); + editor = new GuiOptionEditorDraggableList( + option, + configEditorAnnotation.exampleText(), + configEditorAnnotation.allowDeleting() + ); } } if (optionType.isAssignableFrom(String.class)) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/util/GuiElementSlider.java b/src/main/java/io/github/moulberry/notenoughupdates/core/util/GuiElementSlider.java index c2252a97..3e982f9d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/util/GuiElementSlider.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/util/GuiElementSlider.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.util; import io.github.moulberry.notenoughupdates.core.GuiElement; @@ -10,7 +29,13 @@ import org.lwjgl.opengl.GL11; import java.util.function.Consumer; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.*; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.slider_button_new; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.slider_off_cap; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.slider_off_notch; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.slider_off_segment; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.slider_on_cap; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.slider_on_notch; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.slider_on_segment; public class GuiElementSlider extends GuiElement { public int x; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/util/Line.java b/src/main/java/io/github/moulberry/notenoughupdates/core/util/Line.java index fb134e85..a5744a26 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/util/Line.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/util/Line.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.util; import net.minecraft.util.Vec3; @@ -16,9 +35,11 @@ public class Line { } public Vec3 getMidpoint() { - return new Vec3((point1.xCoord + point2.xCoord) / 2.0, + return new Vec3( + (point1.xCoord + point2.xCoord) / 2.0, (point1.yCoord + point2.yCoord) / 2.0, - (point1.zCoord + point2.zCoord) / 2.0); + (point1.zCoord + point2.zCoord) / 2.0 + ); } /** @@ -27,8 +48,7 @@ public class Line { * * @return The intersection {@link Line} or {@code null} if no solution found */ - public Line getIntersectionLineSegment(Line other) - { + public Line getIntersectionLineSegment(Line other) { Vec3 p1 = this.point1; Vec3 p2 = this.point2; Vec3 p3 = other.point1; @@ -61,14 +81,17 @@ public class Line { double mub = (d1343 + d4321 * (mua)) / d4343; Line resultSegment = new Line( - new Vec3 ( - (float)(p1.xCoord + mua * p21.xCoord), - (float)(p1.yCoord + mua * p21.yCoord), - (float)(p1.zCoord + mua * p21.zCoord)), - new Vec3 ( - (float)(p3.xCoord + mub * p43.xCoord), - (float)(p3.yCoord + mub * p43.yCoord), - (float)(p3.zCoord + mub * p43.zCoord))); + new Vec3( + (float) (p1.xCoord + mua * p21.xCoord), + (float) (p1.yCoord + mua * p21.yCoord), + (float) (p1.zCoord + mua * p21.zCoord) + ), + new Vec3( + (float) (p3.xCoord + mub * p43.xCoord), + (float) (p3.yCoord + mub * p43.yCoord), + (float) (p3.zCoord + mub * p43.zCoord) + ) + ); return resultSegment; } @@ -82,9 +105,11 @@ public class Line { } public String toString() { - return String.format("point1 = %s, point2 = %s, midpoint = %s", + return String.format( + "point1 = %s, point2 = %s, midpoint = %s", point1 == null ? "NULL" : point1.toString(), point2 == null ? "NULL" : point2.toString(), - (point1 == null || point2 == null) ? "NULL" : getMidpoint()); + (point1 == null || point2 == null) ? "NULL" : getMidpoint() + ); } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/util/MiscUtils.java b/src/main/java/io/github/moulberry/notenoughupdates/core/util/MiscUtils.java index 03a9483b..41780140 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/util/MiscUtils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/util/MiscUtils.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.util; import net.minecraft.client.Minecraft; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/util/Splitters.java b/src/main/java/io/github/moulberry/notenoughupdates/core/util/Splitters.java index 0bb858db..389991b4 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/util/Splitters.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/util/Splitters.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.util; import com.google.common.base.Splitter; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/util/StringUtils.java b/src/main/java/io/github/moulberry/notenoughupdates/core/util/StringUtils.java index b0deadd2..41f2742f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/util/StringUtils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/util/StringUtils.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.util; import com.google.common.collect.Sets; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/util/Vec3Comparable.java b/src/main/java/io/github/moulberry/notenoughupdates/core/util/Vec3Comparable.java index cd144c21..c9736b77 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/util/Vec3Comparable.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/util/Vec3Comparable.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.util; import net.minecraft.util.BlockPos; @@ -54,7 +73,7 @@ public class Vec3Comparable extends Vec3 implements Comparable { } @Override - public Vec3Comparable add(Vec3 other) { + public Vec3Comparable add(Vec3 other) { return new Vec3Comparable(super.add(other)); } @@ -89,19 +108,19 @@ public class Vec3Comparable extends Vec3 implements Comparable { } @Override - public boolean equals(Object other) { - if (this == other) { + public boolean equals(Object other) { + if (this == other) { return true; - } else if (!(other instanceof Vec3Comparable)) { + } else if (!(other instanceof Vec3Comparable)) { return false; - } else { + } else { Vec3Comparable vec3c = (Vec3Comparable) other; return this.xCoord == vec3c.xCoord && this.yCoord == vec3c.yCoord && this.zCoord == vec3c.zCoord; } } @Override - public int hashCode() { + public int hashCode() { long bits = 1L; bits = 31L * bits + doubleToLongBits(xCoord); bits = 31L * bits + doubleToLongBits(yCoord); @@ -112,9 +131,9 @@ public class Vec3Comparable extends Vec3 implements Comparable { public int compareTo(Vec3Comparable other) { return this.yCoord == other.yCoord ? (this.zCoord == other.zCoord ? - (int)(this.xCoord - other.xCoord) - : (int)(this.zCoord - other.zCoord)) - : (int)(this.yCoord - other.yCoord); + (int) (this.xCoord - other.xCoord) + : (int) (this.zCoord - other.zCoord)) + : (int) (this.yCoord - other.yCoord); } public boolean signumEquals(Vec3 other) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/util/lerp/LerpUtils.java b/src/main/java/io/github/moulberry/notenoughupdates/core/util/lerp/LerpUtils.java index 7e401959..0e60ad92 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/util/lerp/LerpUtils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/util/lerp/LerpUtils.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.util.lerp; public class LerpUtils { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/util/lerp/LerpingFloat.java b/src/main/java/io/github/moulberry/notenoughupdates/core/util/lerp/LerpingFloat.java index 3d9e7787..fb03140c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/util/lerp/LerpingFloat.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/util/lerp/LerpingFloat.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.util.lerp; public class LerpingFloat { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/util/lerp/LerpingInteger.java b/src/main/java/io/github/moulberry/notenoughupdates/core/util/lerp/LerpingInteger.java index 024455fd..8462200f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/util/lerp/LerpingInteger.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/util/lerp/LerpingInteger.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.util.lerp; public class LerpingInteger { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/util/render/RenderUtils.java b/src/main/java/io/github/moulberry/notenoughupdates/core/util/render/RenderUtils.java index 96e9729f..e7ce29c3 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/util/render/RenderUtils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/util/render/RenderUtils.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.util.render; import io.github.moulberry.notenoughupdates.core.BackgroundBlur; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/util/render/TextRenderUtils.java b/src/main/java/io/github/moulberry/notenoughupdates/core/util/render/TextRenderUtils.java index ff7ac53a..cee38cea 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/util/render/TextRenderUtils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/util/render/TextRenderUtils.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.util.render; import io.github.moulberry.notenoughupdates.core.util.StringUtils; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeManager.java b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeManager.java index 18e62706..293535e7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeManager.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.cosmetics; import com.google.common.collect.BiMap; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeNode.java b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeNode.java index c32cc98f..9bf0313b 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeNode.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeNode.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.cosmetics; import net.minecraft.client.renderer.Tessellator; @@ -391,4 +410,4 @@ public class CapeNode { .normal(otherSideNorm.x, otherSideNorm.y, otherSideNorm.z).endVertex(); tessellator.draw(); } -} \ No newline at end of file +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/GuiCosmetics.java b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/GuiCosmetics.java index 1b33decf..0e37bed3 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/GuiCosmetics.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/GuiCosmetics.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.cosmetics; import com.google.gson.Gson; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/NEUCape.java b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/NEUCape.java index a58587a8..d32abf64 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/NEUCape.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/NEUCape.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.cosmetics; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/ShaderManager.java b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/ShaderManager.java index 02e8215c..45db303b 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/ShaderManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/ShaderManager.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.cosmetics; import net.minecraft.client.Minecraft; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonBlocks.java b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonBlocks.java index 0e7c59c7..7a2eb2b0 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonBlocks.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonBlocks.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.dungeons; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java index e132d287..2693341a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.dungeons; import com.google.common.collect.Iterables; @@ -46,8 +65,13 @@ import java.awt.*; import java.io.BufferedReader; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; -import java.util.*; +import java.util.Map; +import java.util.Objects; +import java.util.Set; public class DungeonMap { private static final ResourceLocation GREEN_CHECK = new ResourceLocation( diff --git a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonWin.java b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonWin.java index 66389beb..a56a5679 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonWin.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonWin.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.dungeons; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -14,7 +33,12 @@ import net.minecraftforge.client.event.ClientChatReceivedEvent; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL14; -import java.util.*; +import java.util.ArrayList; +import java.util.ConcurrentModificationException; +import java.util.HashSet; +import java.util.List; +import java.util.Random; +import java.util.Set; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -200,11 +224,16 @@ public class DungeonWin { displayWin(); } else { if (unformatted.trim().length() > 0) { - if (unformatted.contains("The Catacombs") || unformatted.contains("Master Mode Catacombs") || unformatted.contains("Team Score") || unformatted.contains("Defeated") || unformatted.contains("Total Damage") - || unformatted.contains("Ally Healing") || unformatted.contains("Enemies Killed") || unformatted.contains("Deaths") || unformatted.contains("Secrets Found")) { + if (unformatted.contains("The Catacombs") || unformatted.contains("Master Mode Catacombs") || + unformatted.contains("Team Score") || unformatted.contains("Defeated") || unformatted.contains( + "Total Damage") + || unformatted.contains("Ally Healing") || unformatted.contains("Enemies Killed") || unformatted.contains( + "Deaths") || unformatted.contains("Secrets Found")) { text.add(e.message.getFormattedText().substring(6).trim()); } else { - System.out.println("These messages would of showed on neu dungeon overlay but didnt, They are either bugged or i missed them: \"" + e.message.getFormattedText().substring(6).trim() + "\""); + System.out.println( + "These messages would of showed on neu dungeon overlay but didnt, They are either bugged or i missed them: \"" + + e.message.getFormattedText().substring(6).trim() + "\""); } } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/GuiDungeonMapEditor.java b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/GuiDungeonMapEditor.java index e59e0ea1..47e85023 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/GuiDungeonMapEditor.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/GuiDungeonMapEditor.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.dungeons; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -29,10 +48,16 @@ import org.lwjgl.opengl.GL11; import java.awt.*; import java.io.IOException; import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; -import java.util.*; +import java.util.Map; -import static io.github.moulberry.notenoughupdates.util.GuiTextures.*; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.button_tex; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.slider_button; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.slider_off_large; +import static io.github.moulberry.notenoughupdates.util.GuiTextures.slider_on_large; public class GuiDungeonMapEditor extends GuiScreen { public static final ResourceLocation BACKGROUND = new ResourceLocation( diff --git a/src/main/java/io/github/moulberry/notenoughupdates/events/NEUEvent.java b/src/main/java/io/github/moulberry/notenoughupdates/events/NEUEvent.java index a2c82070..178431d0 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/events/NEUEvent.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/events/NEUEvent.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.events; import net.minecraftforge.common.MinecraftForge; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/events/OnBlockBreakSoundEffect.java b/src/main/java/io/github/moulberry/notenoughupdates/events/OnBlockBreakSoundEffect.java index aeffa7da..9a2516e1 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/events/OnBlockBreakSoundEffect.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/events/OnBlockBreakSoundEffect.java @@ -1,6 +1,24 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.events; -import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; import net.minecraft.client.audio.ISound; import net.minecraft.util.BlockPos; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/events/RepositoryReloadEvent.java b/src/main/java/io/github/moulberry/notenoughupdates/events/RepositoryReloadEvent.java index b0ffc3e7..bf6448a2 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/events/RepositoryReloadEvent.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/events/RepositoryReloadEvent.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.events; import java.io.File; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/DevInfoPane.java b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/DevInfoPane.java index 945dd71c..a449919e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/DevInfoPane.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/DevInfoPane.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.infopanes; import com.google.gson.JsonObject; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/FlipperInfoPane.java b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/FlipperInfoPane.java index 441bf735..4b6c73f4 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/FlipperInfoPane.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/FlipperInfoPane.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.infopanes; import io.github.moulberry.notenoughupdates.NEUManager; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/HTMLInfoPane.java b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/HTMLInfoPane.java index e4098f3e..03f55561 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/HTMLInfoPane.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/HTMLInfoPane.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.infopanes; import info.bliki.htmlcleaner.TagNode; @@ -26,7 +45,16 @@ import org.apache.commons.lang3.SystemUtils; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; -import java.io.*; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; import java.nio.charset.CharsetEncoder; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/InfoPane.java b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/InfoPane.java index 03cb64f6..5f73e57a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/InfoPane.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/InfoPane.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.infopanes; import io.github.moulberry.notenoughupdates.NEUManager; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/ScrollableInfoPane.java b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/ScrollableInfoPane.java index 75b66770..9bc47fc5 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/ScrollableInfoPane.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/ScrollableInfoPane.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.infopanes; import io.github.moulberry.notenoughupdates.NEUManager; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/TextInfoPane.java b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/TextInfoPane.java index 77d47a3d..90bed1fa 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/TextInfoPane.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/TextInfoPane.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.infopanes; import io.github.moulberry.notenoughupdates.NEUManager; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/GuiElement.java b/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/GuiElement.java index 38ad2824..ab277078 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/GuiElement.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/GuiElement.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.itemeditor; import net.minecraft.client.gui.Gui; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/GuiElementButton.java b/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/GuiElementButton.java index 35b31490..54cba6b8 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/GuiElementButton.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/GuiElementButton.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.itemeditor; import java.awt.*; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/GuiElementText.java b/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/GuiElementText.java index 1e7a8c08..9f612fcf 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/GuiElementText.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/GuiElementText.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.itemeditor; import net.minecraft.client.Minecraft; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/GuiElementTextField.java b/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/GuiElementTextField.java index f37f2fa1..71c4d498 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/GuiElementTextField.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/GuiElementTextField.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.itemeditor; import io.github.moulberry.notenoughupdates.util.Utils; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/NEUItemEditor.java b/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/NEUItemEditor.java index 7e776bcd..ff0e5f13 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/NEUItemEditor.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/itemeditor/NEUItemEditor.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.itemeditor; import com.google.gson.JsonArray; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java index e4f0b3da..408c8a6d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.listener; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -24,7 +43,10 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.regex.Matcher; import java.util.regex.Pattern; -import static io.github.moulberry.notenoughupdates.overlays.SlayerOverlay.*; +import static io.github.moulberry.notenoughupdates.overlays.SlayerOverlay.RNGMeter; +import static io.github.moulberry.notenoughupdates.overlays.SlayerOverlay.slayerXp; +import static io.github.moulberry.notenoughupdates.overlays.SlayerOverlay.timeSinceLastBoss; +import static io.github.moulberry.notenoughupdates.overlays.SlayerOverlay.timeSinceLastBoss2; public class ChatListener { private final NotEnoughUpdates neu; @@ -124,7 +146,7 @@ public class ChatListener { public void onGuiChat(ClientChatReceivedEvent e) { if (e.type == 2) { CrystalMetalDetectorSolver.process(e.message); - TimersOverlay.processActionBar(e.message.getUnformattedText()); + TimersOverlay.processActionBar(e.message.getUnformattedText()); e.message = processChatComponent(e.message); return; } else if (e.type == 0) { @@ -145,10 +167,11 @@ public class ChatListener { .substring("Your profile was changed to: ".length()) .split(" ")[0].trim()); } else if (unformatted.startsWith("Your new API key is ")) { - NotEnoughUpdates.INSTANCE.config.apiData.apiKey = unformatted.substring("Your new API key is ".length()).substring( - 0, - 36 - ); + NotEnoughUpdates.INSTANCE.config.apiData.apiKey = + unformatted.substring("Your new API key is ".length()).substring( + 0, + 36 + ); Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText( EnumChatFormatting.YELLOW + "[NEU] API Key automatically configured")); } else if (unformatted.startsWith("Player List Info is now disabled!")) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java index ab4e9dca..fab02bf9 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.listener; import com.google.gson.JsonArray; @@ -46,7 +65,6 @@ import java.util.Set; import java.util.TreeSet; import java.util.regex.Matcher; import java.util.regex.Pattern; -import java.util.regex.PatternSyntaxException; public class ItemTooltipListener { private static final String petToolTipRegex = diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/NEUEventListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/NEUEventListener.java index d070fc2d..ec459ad0 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/NEUEventListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/NEUEventListener.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.listener; import com.google.gson.JsonObject; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/OldAnimationChecker.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/OldAnimationChecker.java index e537b2b7..7858918b 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/OldAnimationChecker.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/OldAnimationChecker.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.listener; import com.google.common.collect.Lists; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java index 610412ac..aedca6e3 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.listener; import com.google.common.collect.Lists; @@ -900,7 +919,12 @@ public class RenderListener { GuiChest eventGui = (GuiChest) guiScreen; ContainerChest cc = (ContainerChest) eventGui.inventorySlots; containerName = cc.getLowerChestInventory().getDisplayName().getUnformattedText(); - if (containerName.contains(" Profile") && BetterContainers.profileViewerStackIndex != -1 && ((AccessorGuiContainer)eventGui).doIsMouseOverSlot(cc.inventorySlots.get(BetterContainers.profileViewerStackIndex), mouseX, mouseY) && + if (containerName.contains(" Profile") && BetterContainers.profileViewerStackIndex != -1 && + ((AccessorGuiContainer) eventGui).doIsMouseOverSlot( + cc.inventorySlots.get(BetterContainers.profileViewerStackIndex), + mouseX, + mouseY + ) && Mouse.getEventButton() >= 0) { event.setCanceled(true); if (Mouse.getEventButtonState() && eventGui.inventorySlots.inventorySlots.get(22).getStack() != null && @@ -1047,7 +1071,10 @@ public class RenderListener { "config/notenoughupdates/repo/constants/essencecosts.json" ); String fileContent; - fileContent = new BufferedReader(new InputStreamReader(Files.newInputStream(file.toPath()), StandardCharsets.UTF_8)) + fileContent = new BufferedReader(new InputStreamReader( + Files.newInputStream(file.toPath()), + StandardCharsets.UTF_8 + )) .lines() .collect(Collectors.joining(System.lineSeparator())); String id = null; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/ScoreboardLocationChangeListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/ScoreboardLocationChangeListener.java index 2f4ec33c..622b2088 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/ScoreboardLocationChangeListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/ScoreboardLocationChangeListener.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.listener; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBAnchorPoint.java b/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBAnchorPoint.java index eaf41ba6..7193b47f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBAnchorPoint.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBAnchorPoint.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mbgui; import org.lwjgl.util.vector.Vector2f; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBDeserializer.java b/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBDeserializer.java index b9e858ef..5f530c00 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBDeserializer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBDeserializer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mbgui; import com.google.gson.JsonObject; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBGuiElement.java b/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBGuiElement.java index ad836097..3e3ab1e3 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBGuiElement.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBGuiElement.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mbgui; public abstract class MBGuiElement { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBGuiGroup.java b/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBGuiGroup.java index 4540b146..b183bd1e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBGuiGroup.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBGuiGroup.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mbgui; import org.lwjgl.util.vector.Vector2f; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBGuiGroupAligned.java b/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBGuiGroupAligned.java index eef4b5e5..5c0cd37e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBGuiGroupAligned.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBGuiGroupAligned.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mbgui; import org.lwjgl.util.vector.Vector2f; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBGuiGroupFloating.java b/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBGuiGroupFloating.java index 24697cc6..c57f0b74 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBGuiGroupFloating.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mbgui/MBGuiGroupFloating.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mbgui; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -10,7 +29,11 @@ import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.gui.inventory.GuiContainer; import org.lwjgl.util.vector.Vector2f; -import java.util.*; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; public class MBGuiGroupFloating extends MBGuiGroup { private GuiScreen lastScreen = null; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionBINWarning.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionBINWarning.java index 3bae4715..c52f8968 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionBINWarning.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionBINWarning.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import com.google.gson.JsonObject; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionSortModeWarning.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionSortModeWarning.java index 5137c90f..97e32749 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionSortModeWarning.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionSortModeWarning.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -58,8 +77,9 @@ public class AuctionSortModeWarning { String warningText = "\u00a7aSort: " + selectedColour + selectedSort; int warningLength = Minecraft.getMinecraft().fontRendererObj.getStringWidth(warningText); - int centerX = ((AccessorGuiContainer)chest).getGuiLeft() + ((AccessorGuiContainer)chest).getXSize() / 2 + 9; - int centerY = ((AccessorGuiContainer)chest).getGuiTop() + 26; + int centerX = + ((AccessorGuiContainer) chest).getGuiLeft() + ((AccessorGuiContainer) chest).getXSize() / 2 + 9; + int centerY = ((AccessorGuiContainer) chest).getGuiTop() + 26; RenderUtils.drawFloatingRectDark(centerX - warningLength / 2 - 4, centerY - 6, warningLength + 8, 12, false diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/BetterContainers.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/BetterContainers.java index 811c30d2..e51496e3 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/BetterContainers.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/BetterContainers.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import com.google.gson.JsonObject; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CookieWarning.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CookieWarning.java index 0abd5216..2aec0fbe 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CookieWarning.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CookieWarning.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import com.google.common.collect.Lists; @@ -20,7 +39,7 @@ public class CookieWarning { @SubscribeEvent public void onJoinWorld(EntityJoinWorldEvent e) { - if(e.entity == Minecraft.getMinecraft().thePlayer) { + if (e.entity == Minecraft.getMinecraft().thePlayer) { this.checkCookie(); } } @@ -33,24 +52,27 @@ public class CookieWarning { * Checks the tab list for a cookie timer, and sends a chat message if the timer is within the tolerance */ private void checkCookie() { - if(!hasNotified && NotEnoughUpdates.INSTANCE.config.notifications.doBoosterNotif) { + if (!hasNotified && NotEnoughUpdates.INSTANCE.config.notifications.doBoosterNotif) { String[] lines = {}; try { - lines = ((AccessorGuiPlayerTabOverlay) Minecraft.getMinecraft().ingameGUI.getTabList()).getFooter().getUnformattedText().split("\n"); - } catch(NullPointerException e) { + lines = ((AccessorGuiPlayerTabOverlay) Minecraft.getMinecraft().ingameGUI.getTabList()) + .getFooter() + .getUnformattedText() + .split("\n"); + } catch (NullPointerException e) { return; // if the footer is null or somehow doesn't exist, stop } boolean hasCookie = true; String timeLine = null; // the line that contains the cookie timer - for(int i = 0; i < lines.length; i++) { - if(lines[i].startsWith("Cookie Buff")) { - timeLine = lines[i+1]; // the line after the "Cookie Buff" line + for (int i = 0; i < lines.length; i++) { + if (lines[i].startsWith("Cookie Buff")) { + timeLine = lines[i + 1]; // the line after the "Cookie Buff" line } - if(lines[i].startsWith("Not active! Obtain booster cookies from the")) { + if (lines[i].startsWith("Not active! Obtain booster cookies from the")) { hasCookie = false; } } - if(!hasCookie) { + if (!hasCookie) { NotificationHandler.displayNotification(Lists.newArrayList( "\u00a7cBooster Cookie Ran Out!", "\u00a77Your Booster Cookie expired!", @@ -60,21 +82,21 @@ public class CookieWarning { hasNotified = true; return; } - if(timeLine != null) { + if (timeLine != null) { String[] digits = timeLine.split(" "); int minutes = 0; try { - for(String digit : digits) { - if(digit.endsWith("y")) { + for (String digit : digits) { + if (digit.endsWith("y")) { digit = digit.substring(0, digit.length() - 1); minutes += Integer.parseInt(digit) * 525600; - } else if(digit.endsWith("d")) { + } else if (digit.endsWith("d")) { digit = digit.substring(0, digit.length() - 1); minutes += Integer.parseInt(digit) * 1440; - } else if(digit.endsWith("h")) { + } else if (digit.endsWith("h")) { digit = digit.substring(0, digit.length() - 1); minutes += Integer.parseInt(digit) * 60; - } else if(digit.endsWith("m")) { + } else if (digit.endsWith("m")) { digit = digit.substring(0, digit.length() - 1); minutes += Integer.parseInt(digit); } // ignore seconds @@ -85,7 +107,7 @@ public class CookieWarning { EnumChatFormatting.RED + "NEU ran into an issue when retrieving the Booster Cookie Timer. Check the logs for details.")); } - if(minutes < NotEnoughUpdates.INSTANCE.config.notifications.boosterCookieWarningMins) { + if (minutes < NotEnoughUpdates.INSTANCE.config.notifications.boosterCookieWarningMins) { NotificationHandler.displayNotification(Lists.newArrayList( "\u00a7cBooster Cookie Running Low!", "\u00a77Your Booster Cookie will expire in " + timeLine, diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalMetalDetectorSolver.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalMetalDetectorSolver.java index f43ebda2..167b6a2f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalMetalDetectorSolver.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalMetalDetectorSolver.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -52,56 +71,56 @@ public class CrystalMetalDetectorSolver { private static final String EMERALD_STRING = "emerald"; private static final String GOLD_STRING = "gold"; private static final HashMap keeperOffsets = new HashMap() {{ - put(DIAMOND_STRING, new Vec3i(33,0,3)); - put(LAPIS_STRING, new Vec3i(-33,0,-3)); - put(EMERALD_STRING, new Vec3i(-3,0,33)); - put(GOLD_STRING, new Vec3i(3,0,-33)); + put(DIAMOND_STRING, new Vec3i(33, 0, 3)); + put(LAPIS_STRING, new Vec3i(-33, 0, -3)); + put(EMERALD_STRING, new Vec3i(-3, 0, 33)); + put(GOLD_STRING, new Vec3i(3, 0, -33)); }}; // Chest offsets from center private static final HashSet knownChestOffsets = new HashSet<>(Arrays.asList( - -10171958951910L, // x=-38, y=-22, z=26 - 10718829084646L, // x=38, y=-22, z=-26 - -10721714765806L, // x=-40, y=-22, z=18 - -10996458455018L, // x=-41, y=-20, z=22 - -1100920913904L, // x=-5, y=-21, z=16 - 11268584898530L, // x=40, y=-22, z=-30 - -11271269253148L, // x=-42, y=-20, z=-28 - -11546281377832L, // x=-43, y=-22, z=-40 - 11818542038999L, // x=42, y=-19, z=-41 - 12093285728240L, // x=43, y=-21, z=-16 - -1409286164L, // x=-1, y=-22, z=-20 - 1922736062492L, // x=6, y=-21, z=28 - 2197613969419L, // x=7, y=-21, z=11 - 2197613969430L, // x=7, y=-21, z=22 - -3024999153708L, // x=-12, y=-21, z=-44 - 3571936395295L, // x=12, y=-22, z=31 - 3572003504106L, // x=12, y=-22, z=-22 - 3572003504135L, // x=12, y=-21, z=7 - 3572070612949L, // x=12, y=-21, z=-43 - -3574822076373L, // x=-14, y=-21, z=43 - -3574822076394L, // x=-14, y=-21, z=22 - -4399455797228L, // x=-17, y=-21, z=20 - -5224156626944L, // x=-20, y=-22, z=0 - 548346527764L, // x=1, y=-21, z=20 - 5496081743901L, // x=19, y=-22, z=29 - 5770959650816L, // x=20, y=-22, z=0 - 5771093868518L, // x=20, y=-21, z=-26 - -6048790347736L, // x=-23, y=-22, z=40 - 6320849682418L, // x=22, y=-21, z=-14 - -6323668254708L, // x=-24, y=-22, z=12 - 6595593371674L, // x=23, y=-22, z=26 - 6595660480473L, // x=23, y=-22, z=-39 - 6870471278619L, // x=24, y=-22, z=27 - 7145349185553L, // x=25, y=-22, z=17 - 8244995030996L, // x=29, y=-21, z=-44 - -8247679385612L, // x=-31, y=-21, z=-12 - -8247679385640L, // x=-31, y=-21, z=-40 - 8519872937959L, // x=30, y=-21, z=-25 - -8522557292584L, // x=-32, y=-21, z=-40 - -9622068920278L, // x=-36, y=-20, z=42 - -9896946827278L, // x=-37, y=-21, z=-14 - -9896946827286L // x=-37, y=-21, z=-22 + -10171958951910L, // x=-38, y=-22, z=26 + 10718829084646L, // x=38, y=-22, z=-26 + -10721714765806L, // x=-40, y=-22, z=18 + -10996458455018L, // x=-41, y=-20, z=22 + -1100920913904L, // x=-5, y=-21, z=16 + 11268584898530L, // x=40, y=-22, z=-30 + -11271269253148L, // x=-42, y=-20, z=-28 + -11546281377832L, // x=-43, y=-22, z=-40 + 11818542038999L, // x=42, y=-19, z=-41 + 12093285728240L, // x=43, y=-21, z=-16 + -1409286164L, // x=-1, y=-22, z=-20 + 1922736062492L, // x=6, y=-21, z=28 + 2197613969419L, // x=7, y=-21, z=11 + 2197613969430L, // x=7, y=-21, z=22 + -3024999153708L, // x=-12, y=-21, z=-44 + 3571936395295L, // x=12, y=-22, z=31 + 3572003504106L, // x=12, y=-22, z=-22 + 3572003504135L, // x=12, y=-21, z=7 + 3572070612949L, // x=12, y=-21, z=-43 + -3574822076373L, // x=-14, y=-21, z=43 + -3574822076394L, // x=-14, y=-21, z=22 + -4399455797228L, // x=-17, y=-21, z=20 + -5224156626944L, // x=-20, y=-22, z=0 + 548346527764L, // x=1, y=-21, z=20 + 5496081743901L, // x=19, y=-22, z=29 + 5770959650816L, // x=20, y=-22, z=0 + 5771093868518L, // x=20, y=-21, z=-26 + -6048790347736L, // x=-23, y=-22, z=40 + 6320849682418L, // x=22, y=-21, z=-14 + -6323668254708L, // x=-24, y=-22, z=12 + 6595593371674L, // x=23, y=-22, z=26 + 6595660480473L, // x=23, y=-22, z=-39 + 6870471278619L, // x=24, y=-22, z=27 + 7145349185553L, // x=25, y=-22, z=17 + 8244995030996L, // x=29, y=-21, z=-44 + -8247679385612L, // x=-31, y=-21, z=-12 + -8247679385640L, // x=-31, y=-21, z=-40 + 8519872937959L, // x=30, y=-21, z=-25 + -8522557292584L, // x=-32, y=-21, z=-40 + -9622068920278L, // x=-36, y=-20, z=42 + -9896946827278L, // x=-37, y=-21, z=-14 + -9896946827286L // x=-37, y=-21, z=-22 )); static Predicate treasureAllowedPredicate = CrystalMetalDetectorSolver::treasureAllowed; @@ -153,9 +172,11 @@ public class CrystalMetalDetectorSolver { mc.thePlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "[NEU] Found solution.")); if (NotEnoughUpdates.INSTANCE.config.hidden.debugFlags.contains(NEUDebugFlag.METAL) && (previousState == SolutionState.INVALID || previousState == SolutionState.FAILED)) { - NEUDebugLogger.log(NEUDebugFlag.METAL, + NEUDebugLogger.log( + NEUDebugFlag.METAL, EnumChatFormatting.AQUA + "Solution coordinates: " + - EnumChatFormatting.WHITE + possibleBlocks.iterator().next().toString()); + EnumChatFormatting.WHITE + possibleBlocks.iterator().next().toString() + ); } break; case INVALID: @@ -184,9 +205,9 @@ public class CrystalMetalDetectorSolver { } static void findPossibleSolutions(double distToTreasure, Vec3Comparable playerPos, boolean centerNewlyDiscovered) { - if (prevDistToTreasure == distToTreasure && prevPlayerPos.equals(playerPos) && - !evaluatedPlayerPositions.containsKey(playerPos)) { - evaluatedPlayerPositions.put(playerPos, distToTreasure); + if (prevDistToTreasure == distToTreasure && prevPlayerPos.equals(playerPos) && + !evaluatedPlayerPositions.containsKey(playerPos)) { + evaluatedPlayerPositions.put(playerPos, distToTreasure); if (possibleBlocks.size() == 0) { for (int zOffset = (int) Math.floor(-distToTreasure); zOffset <= Math.ceil(distToTreasure); zOffset++) { for (int y = 65; y <= 75; y++) { @@ -259,7 +280,7 @@ public class CrystalMetalDetectorSolver { if (minesCenter != Vec3i.NULL_VECTOR) { BlockPos relativeOffset = blockPos.subtract(minesCenter); sb.append(", Relative: "); - sb.append(relativeOffset.toString() ); + sb.append(relativeOffset.toString()); sb.append(" (" + relativeOffset.toLong() + ")"); } sb.append("\n"); @@ -296,7 +317,7 @@ public class CrystalMetalDetectorSolver { if (chestFound) { prevPlayerPos = null; prevDistToTreasure = 0; - if (possibleBlocks.size() == 1) { + if (possibleBlocks.size() == 1) { openedChestPositions.add(possibleBlocks.iterator().next().getImmutable()); } } @@ -360,11 +381,11 @@ public class CrystalMetalDetectorSolver { EntityArmorStand keeperEntity = keeperEntities.get(0); String keeperName = keeperEntity.getCustomNameTag(); - NEUDebugLogger.log(NEUDebugFlag.METAL,"Locating center using Keeper: " + + NEUDebugLogger.log(NEUDebugFlag.METAL, "Locating center using Keeper: " + EnumChatFormatting.WHITE + keeperEntity); String keeperType = keeperName.substring(keeperName.indexOf(KEEPER_OF_STRING) + KEEPER_OF_STRING.length()); - minesCenter = keeperEntity.getPosition().add(keeperOffsets.get(keeperType.toLowerCase())); - NEUDebugLogger.log(NEUDebugFlag.METAL,"Mines center: " + + minesCenter = keeperEntity.getPosition().add(keeperOffsets.get(keeperType.toLowerCase())); + NEUDebugLogger.log(NEUDebugFlag.METAL, "Mines center: " + EnumChatFormatting.WHITE + minesCenter.toString()); mc.thePlayer.addChatMessage(new ChatComponentText( EnumChatFormatting.YELLOW + "[NEU] Faster treasure hunting is now enabled based on Keeper location.")); @@ -538,8 +559,7 @@ public class CrystalMetalDetectorSolver { return; } - if (!NotEnoughUpdates.INSTANCE.config.mining.metalDetectorEnabled) - { + if (!NotEnoughUpdates.INSTANCE.config.mining.metalDetectorEnabled) { mc.thePlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "[NEU] Metal Detector Solver is not enabled.")); return; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalOverlay.java index 2b095c42..c0653742 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalWishingCompassSolver.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalWishingCompassSolver.java index 1bc26d50..19cf9c09 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalWishingCompassSolver.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalWishingCompassSolver.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -74,6 +93,7 @@ public class CrystalWishingCompassSolver { } private static final CrystalWishingCompassSolver INSTANCE = new CrystalWishingCompassSolver(); + public static CrystalWishingCompassSolver getInstance() { return INSTANCE; } @@ -118,9 +138,11 @@ public class CrystalWishingCompassSolver { public LongSupplier currentTimeMillis = System::currentTimeMillis; public BooleanSupplier kingsScentPresent = this::isKingsScentPresent; public BooleanSupplier keyInInventory = this::isKeyInInventory; + public interface CrystalEnumSetSupplier { EnumSet getAsCrystalEnumSet(); } + public CrystalEnumSetSupplier foundCrystals = this::getFoundCrystals; private SolverState solverState; @@ -159,7 +181,7 @@ public class CrystalWishingCompassSolver { } private void resetForNewTarget() { - NEUDebugLogger.log(NEUDebugFlag.WISHING,"Resetting for new target"); + NEUDebugLogger.log(NEUDebugFlag.WISHING, "Resetting for new target"); solverState = SolverState.NOT_STARTED; firstCompass = null; secondCompass = null; @@ -188,7 +210,7 @@ public class CrystalWishingCompassSolver { event.entityPlayer != mc.thePlayer || (event.action != PlayerInteractEvent.Action.RIGHT_CLICK_AIR && event.action != PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK) - ) { + ) { return; } @@ -248,57 +270,57 @@ public class CrystalWishingCompassSolver { public HandleCompassResult handleCompassUse(BlockPos playerPos) { long lastCompassUsedMillis = 0; switch (solverState) { - case PROCESSING_SECOND_USE: - if (secondCompass != null) { - lastCompassUsedMillis = secondCompass.whenUsedMillis; - } - case PROCESSING_FIRST_USE: - if (lastCompassUsedMillis == 0 && firstCompass != null) { - lastCompassUsedMillis = firstCompass.whenUsedMillis; - } - if (lastCompassUsedMillis != 0 && - (currentTimeMillis.getAsLong() > lastCompassUsedMillis + ALL_PARTICLES_MAX_MILLIS)) { - return HandleCompassResult.NO_PARTICLES_FOR_PREVIOUS_COMPASS; - } - - return HandleCompassResult.STILL_PROCESSING_PRIOR_USE; - case SOLVED: - case FAILED_EXCEPTION: - case FAILED_TIMEOUT_NO_REPEATING: - case FAILED_TIMEOUT_NO_PARTICLES: - case FAILED_INTERSECTION_CALCULATION: - case FAILED_INVALID_SOLUTION: + case PROCESSING_SECOND_USE: + if (secondCompass != null) { + lastCompassUsedMillis = secondCompass.whenUsedMillis; + } + case PROCESSING_FIRST_USE: + if (lastCompassUsedMillis == 0 && firstCompass != null) { + lastCompassUsedMillis = firstCompass.whenUsedMillis; + } + if (lastCompassUsedMillis != 0 && + (currentTimeMillis.getAsLong() > lastCompassUsedMillis + ALL_PARTICLES_MAX_MILLIS)) { + return HandleCompassResult.NO_PARTICLES_FOR_PREVIOUS_COMPASS; + } + + return HandleCompassResult.STILL_PROCESSING_PRIOR_USE; + case SOLVED: + case FAILED_EXCEPTION: + case FAILED_TIMEOUT_NO_REPEATING: + case FAILED_TIMEOUT_NO_PARTICLES: + case FAILED_INTERSECTION_CALCULATION: + case FAILED_INVALID_SOLUTION: + resetForNewTarget(); + // falls through, NOT_STARTED is the state when resetForNewTarget returns + case NOT_STARTED: + if (NUCLEUS_BB.isVecInside(new Vec3Comparable(playerPos.getX(), playerPos.getY(), playerPos.getZ()))) { + return HandleCompassResult.PLAYER_IN_NUCLEUS; + } + + firstCompass = new Compass(playerPos, currentTimeMillis.getAsLong()); + seenParticles.clear(); + solverState = SolverState.PROCESSING_FIRST_USE; + possibleTargets = calculatePossibleTargets(playerPos); + return HandleCompassResult.SUCCESS; + case NEED_SECOND_COMPASS: + if (firstCompass.whereUsed.distanceSq(playerPos) < MINIMUM_DISTANCE_SQ_BETWEEN_COMPASSES) { + return HandleCompassResult.LOCATION_TOO_CLOSE; + } + + HollowsZone firstCompassZone = getZoneForCoords(firstCompass.whereUsed); + HollowsZone playerZone = getZoneForCoords(playerPos); + if (!possibleTargets.equals(calculatePossibleTargets(playerPos)) || + firstCompassZone != playerZone) { resetForNewTarget(); - // falls through, NOT_STARTED is the state when resetForNewTarget returns - case NOT_STARTED: - if (NUCLEUS_BB.isVecInside(new Vec3Comparable(playerPos.getX(), playerPos.getY(), playerPos.getZ()))) { - return HandleCompassResult.PLAYER_IN_NUCLEUS; - } - - firstCompass = new Compass(playerPos, currentTimeMillis.getAsLong()); - seenParticles.clear(); - solverState = SolverState.PROCESSING_FIRST_USE; - possibleTargets = calculatePossibleTargets(playerPos); - return HandleCompassResult.SUCCESS; - case NEED_SECOND_COMPASS: - if (firstCompass.whereUsed.distanceSq(playerPos) < MINIMUM_DISTANCE_SQ_BETWEEN_COMPASSES) { - return HandleCompassResult.LOCATION_TOO_CLOSE; - } - - HollowsZone firstCompassZone = getZoneForCoords(firstCompass.whereUsed); - HollowsZone playerZone = getZoneForCoords(playerPos); - if (!possibleTargets.equals(calculatePossibleTargets(playerPos)) || - firstCompassZone != playerZone) { - resetForNewTarget(); - return HandleCompassResult.POSSIBLE_TARGETS_CHANGED; - } - - secondCompass = new Compass(playerPos, currentTimeMillis.getAsLong()); - solverState = SolverState.PROCESSING_SECOND_USE; - return HandleCompassResult.SUCCESS; - } + return HandleCompassResult.POSSIBLE_TARGETS_CHANGED; + } + + secondCompass = new Compass(playerPos, currentTimeMillis.getAsLong()); + solverState = SolverState.PROCESSING_SECOND_USE; + return HandleCompassResult.SUCCESS; + } - throw new IllegalStateException("Unexpected compass state" ); + throw new IllegalStateException("Unexpected compass state"); } /* @@ -338,7 +360,7 @@ public class CrystalWishingCompassSolver { // Capture particle troubleshooting info for two minutes starting when the first compass is used. // This list is reset each time the first compass is used from a NOT_STARTED state. if (firstCompass != null && !solverState.equals(SolverState.SOLVED) && - System.currentTimeMillis() < firstCompass.whenUsedMillis + 2*60*1000) { + System.currentTimeMillis() < firstCompass.whenUsedMillis + 2 * 60 * 1000) { seenParticles.add(new ParticleData(new Vec3Comparable(x, y, z), System.currentTimeMillis())); } @@ -376,9 +398,9 @@ public class CrystalWishingCompassSolver { logDiagnosticData(false); break; case NEED_SECOND_COMPASS: - mc.thePlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + - "[NEU] Need another position to determine wishing compass target.")); - break; + mc.thePlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + + "[NEU] Need another position to determine wishing compass target.")); + break; } } } catch (Exception e) { @@ -389,7 +411,6 @@ public class CrystalWishingCompassSolver { } /** - * * @param x Particle x coordinate * @param y Particle y coordinate * @param z Particle z coordinate @@ -454,7 +475,8 @@ public class CrystalWishingCompassSolver { getZoneForCoords(firstCompass.whereUsed), foundCrystals.getAsCrystalEnumSet(), possibleTargets, - solution); + solution + ); // Adjust the Jungle Temple solution coordinates if (solutionPossibleTargets.size() == 1 && @@ -466,9 +488,8 @@ public class CrystalWishingCompassSolver { solverState = SolverState.SOLVED; } - private boolean isKeyInInventory() - { - for (ItemStack item : mc.thePlayer.inventory.mainInventory){ + private boolean isKeyInInventory() { + for (ItemStack item : mc.thePlayer.inventory.mainInventory) { if (item != null && item.getDisplayName().contains("Jungle Key")) { return true; } @@ -476,12 +497,11 @@ public class CrystalWishingCompassSolver { return false; } - private boolean isKingsScentPresent() - { + private boolean isKingsScentPresent() { return SBInfo.getInstance().footer.getUnformattedText().contains("King's Scent I"); } - private EnumSet getFoundCrystals() { + private EnumSet getFoundCrystals() { EnumSet foundCrystals = EnumSet.noneOf(Crystal.class); NEUConfig.HiddenProfileSpecific perProfileConfig = NotEnoughUpdates.INSTANCE.config.getProfileSpecific(); if (perProfileConfig == null) return foundCrystals; @@ -523,10 +543,11 @@ public class CrystalWishingCompassSolver { // | Holdout | Deposits | // |----------|------------| static public EnumSet getSolutionTargets( - HollowsZone compassUsedZone, - EnumSet foundCrystals, - EnumSet possibleTargets, - Vec3Comparable solution) { + HollowsZone compassUsedZone, + EnumSet foundCrystals, + EnumSet possibleTargets, + Vec3Comparable solution + ) { EnumSet solutionPossibleTargets; solutionPossibleTargets = possibleTargets.clone(); @@ -541,28 +562,28 @@ public class CrystalWishingCompassSolver { // Y=41/74 is the absolute min/max based on structure size if // the center of the topaz crystal has to be in magma fields. if (solutionPossibleTargets.contains(CompassTarget.BAL) && - solution.yCoord > 75) { + solution.yCoord > 75) { solutionPossibleTargets.remove(CompassTarget.BAL); } // Y coordinates are 93-157 from 15 samples. // Y=83/167 is the absolute min/max based on structure size if (solutionPossibleTargets.contains(CompassTarget.GOBLIN_KING) && - solution.yCoord < 82 || solution.yCoord > 168) { + solution.yCoord < 82 || solution.yCoord > 168) { solutionPossibleTargets.remove(CompassTarget.GOBLIN_KING); } // Y coordinates are 129-139 from 10 samples // Y=126/139 is the absolute min/max based on structure size if (solutionPossibleTargets.contains(CompassTarget.GOBLIN_QUEEN) && - (solution.yCoord < 125 || solution.yCoord > 140)) { + (solution.yCoord < 125 || solution.yCoord > 140)) { solutionPossibleTargets.remove(CompassTarget.GOBLIN_QUEEN); } // Y coordinates are 72-80 from 10 samples // Y=73/80 is the absolute min/max based on structure size if (solutionPossibleTargets.contains(CompassTarget.JUNGLE_TEMPLE) && - (solution.yCoord < 72 || solution.yCoord > 81)) { + (solution.yCoord < 72 || solution.yCoord > 81)) { solutionPossibleTargets.remove(CompassTarget.JUNGLE_TEMPLE); } @@ -576,7 +597,7 @@ public class CrystalWishingCompassSolver { // Y coordinates are 122-129 from 8 samples // Y=122/129 is the absolute min/max based on structure size if (solutionPossibleTargets.contains(CompassTarget.PRECURSOR_CITY) && - (solution.yCoord < 121 || solution.yCoord > 130)) { + (solution.yCoord < 121 || solution.yCoord > 130)) { solutionPossibleTargets.remove(CompassTarget.PRECURSOR_CITY); } @@ -584,26 +605,26 @@ public class CrystalWishingCompassSolver { // Y=98/100 is the absolute min/max based on structure size, // but 102 has been seen - possibly with earlier code that rounded up if (solutionPossibleTargets.contains(CompassTarget.MINES_OF_DIVAN) && - (solution.yCoord < 97 || solution.yCoord > 102)) { + (solution.yCoord < 97 || solution.yCoord > 102)) { solutionPossibleTargets.remove(CompassTarget.MINES_OF_DIVAN); } // Now filter by structure offset if (solutionPossibleTargets.contains(CompassTarget.GOBLIN_KING) && (solution.xCoord > GOBLIN_HOLDOUT_BB.maxX + GOBLIN_KING_BB.maxX || - solution.zCoord < GOBLIN_HOLDOUT_BB.minZ - GOBLIN_KING_BB.maxZ)) { + solution.zCoord < GOBLIN_HOLDOUT_BB.minZ - GOBLIN_KING_BB.maxZ)) { solutionPossibleTargets.remove(CompassTarget.GOBLIN_KING); } if (solutionPossibleTargets.contains(CompassTarget.GOBLIN_QUEEN) && (solution.xCoord > GOBLIN_HOLDOUT_BB.maxX + GOBLIN_QUEEN_BB.maxX || - solution.zCoord < GOBLIN_HOLDOUT_BB.minZ - GOBLIN_QUEEN_BB.maxZ)) { + solution.zCoord < GOBLIN_HOLDOUT_BB.minZ - GOBLIN_QUEEN_BB.maxZ)) { solutionPossibleTargets.remove(CompassTarget.GOBLIN_QUEEN); } if (solutionPossibleTargets.contains(CompassTarget.JUNGLE_TEMPLE) && (solution.xCoord > JUNGLE_BB.maxX + JUNGLE_TEMPLE_BB.maxX || - solution.zCoord > JUNGLE_BB.maxZ + JUNGLE_TEMPLE_BB.maxZ)) { + solution.zCoord > JUNGLE_BB.maxZ + JUNGLE_TEMPLE_BB.maxZ)) { solutionPossibleTargets.remove(CompassTarget.JUNGLE_TEMPLE); } @@ -677,38 +698,54 @@ public class CrystalWishingCompassSolver { private String getFriendlyNameForCompassTarget(CompassTarget compassTarget) { switch (compassTarget) { - case BAL: return EnumChatFormatting.RED + "Bal"; - case ODAWA: return EnumChatFormatting.GREEN + "Odawa"; - case JUNGLE_TEMPLE: return EnumChatFormatting.AQUA + "the " + - EnumChatFormatting.GREEN + "Jungle Temple"; - case GOBLIN_KING: return EnumChatFormatting.GOLD + "King Yolkar"; - case GOBLIN_QUEEN: return EnumChatFormatting.AQUA + "the " + - EnumChatFormatting.YELLOW + "Goblin Queen"; - case PRECURSOR_CITY: return EnumChatFormatting.AQUA + "the " + - EnumChatFormatting.WHITE + "Precursor City"; - case MINES_OF_DIVAN: return EnumChatFormatting.AQUA + "the " + - EnumChatFormatting.BLUE + "Mines of Divan"; - default: return EnumChatFormatting.WHITE + "an undetermined location"; + case BAL: + return EnumChatFormatting.RED + "Bal"; + case ODAWA: + return EnumChatFormatting.GREEN + "Odawa"; + case JUNGLE_TEMPLE: + return EnumChatFormatting.AQUA + "the " + + EnumChatFormatting.GREEN + "Jungle Temple"; + case GOBLIN_KING: + return EnumChatFormatting.GOLD + "King Yolkar"; + case GOBLIN_QUEEN: + return EnumChatFormatting.AQUA + "the " + + EnumChatFormatting.YELLOW + "Goblin Queen"; + case PRECURSOR_CITY: + return EnumChatFormatting.AQUA + "the " + + EnumChatFormatting.WHITE + "Precursor City"; + case MINES_OF_DIVAN: + return EnumChatFormatting.AQUA + "the " + + EnumChatFormatting.BLUE + "Mines of Divan"; + default: + return EnumChatFormatting.WHITE + "an undetermined location"; } } private String getNameForCompassTarget(CompassTarget compassTarget) { boolean useSkytilsNames = (NotEnoughUpdates.INSTANCE.config.mining.wishingCompassWaypointNames == 1); switch (compassTarget) { - case BAL: return useSkytilsNames ? "internal_bal" : "Bal"; - case ODAWA: return "Odawa"; - case JUNGLE_TEMPLE: return useSkytilsNames ? "internal_temple" : "Temple"; - case GOBLIN_KING: return useSkytilsNames ? "internal_king" : "King"; - case GOBLIN_QUEEN: return useSkytilsNames ? "internal_den" : "Queen"; - case PRECURSOR_CITY: return useSkytilsNames ? "internal_city" : "City"; - case MINES_OF_DIVAN: return useSkytilsNames ? "internal_mines" : "Mines"; - default: return "WishingTarget"; + case BAL: + return useSkytilsNames ? "internal_bal" : "Bal"; + case ODAWA: + return "Odawa"; + case JUNGLE_TEMPLE: + return useSkytilsNames ? "internal_temple" : "Temple"; + case GOBLIN_KING: + return useSkytilsNames ? "internal_king" : "King"; + case GOBLIN_QUEEN: + return useSkytilsNames ? "internal_den" : "Queen"; + case PRECURSOR_CITY: + return useSkytilsNames ? "internal_city" : "City"; + case MINES_OF_DIVAN: + return useSkytilsNames ? "internal_mines" : "Mines"; + default: + return "WishingTarget"; } } private String getSolutionCoordsText() { return solution == null ? "" : - String.format("%.0f %.0f %.0f", solution.xCoord, solution.yCoord, solution.zCoord); + String.format("%.0f %.0f %.0f", solution.xCoord, solution.yCoord, solution.zCoord); } private String getWishingCompassDestinationsMessage() { @@ -759,21 +796,23 @@ public class CrystalWishingCompassSolver { "WishingTarget"; String skytilsCommand = String.format("/sthw add %s %s", getSolutionCoordsText(), targetNameForSkytils); if (NotEnoughUpdates.INSTANCE.config.mining.wishingCompassAutocreateKnownWaypoints && - solutionPossibleTargets.size() == 1) { + solutionPossibleTargets.size() == 1) { mc.thePlayer.addChatMessage(new ChatComponentText(destinationMessage)); int commandResult = ClientCommandHandler.instance.executeCommand(mc.thePlayer, skytilsCommand); - if (commandResult == 1) - { + if (commandResult == 1) { return; } - mc.thePlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "[NEU] Failed to automatically run /sthw")); + mc.thePlayer.addChatMessage(new ChatComponentText( + EnumChatFormatting.RED + "[NEU] Failed to automatically run /sthw")); } destinationMessage += EnumChatFormatting.YELLOW + " [Add Skytils Waypoint]"; ChatComponentText chatMessage = new ChatComponentText(destinationMessage); - chatMessage.setChatStyle(Utils.createClickStyle(ClickEvent.Action.RUN_COMMAND, - skytilsCommand, - EnumChatFormatting.YELLOW + "Set waypoint for wishing target")); + chatMessage.setChatStyle(Utils.createClickStyle( + ClickEvent.Action.RUN_COMMAND, + skytilsCommand, + EnumChatFormatting.YELLOW + "Set waypoint for wishing target" + )); mc.thePlayer.addChatMessage(chatMessage); } @@ -878,8 +917,7 @@ public class CrystalWishingCompassSolver { return; } - if (!NotEnoughUpdates.INSTANCE.config.mining.wishingCompassSolver) - { + if (!NotEnoughUpdates.INSTANCE.config.mining.wishingCompassSolver) { mc.thePlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "[NEU] Wishing Compass Solver is not enabled.")); return; @@ -951,8 +989,8 @@ public class CrystalWishingCompassSolver { public void processParticle(double x, double y, double z, long particleTimeMillis) { if (compassState == CompassState.FAILED_TIMEOUT_NO_REPEATING || - compassState == CompassState.FAILED_TIMEOUT_NO_PARTICLES || - compassState == CompassState.COMPLETED) { + compassState == CompassState.FAILED_TIMEOUT_NO_PARTICLES || + compassState == CompassState.COMPLETED) { throw new UnsupportedOperationException("processParticle should not be called in a failed or completed state"); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CustomItemEffects.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CustomItemEffects.java index e621cf78..ca9a92cb 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CustomItemEffects.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CustomItemEffects.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -11,7 +30,11 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.multiplayer.WorldClient; -import net.minecraft.client.renderer.*; +import net.minecraft.client.renderer.BlockRendererDispatcher; +import net.minecraft.client.renderer.EntityRenderer; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.renderer.texture.TextureUtil; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; @@ -24,7 +47,13 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.*; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.util.Vec3i; import net.minecraftforge.client.event.DrawBlockHighlightEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; @@ -36,8 +65,14 @@ import org.lwjgl.util.vector.Vector3f; import java.awt.*; import java.io.ByteArrayInputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; import java.util.List; -import java.util.*; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; import java.util.regex.Matcher; import java.util.regex.Pattern; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CustomSkulls.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CustomSkulls.java index 1157e73a..95ec0f7a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CustomSkulls.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CustomSkulls.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import com.google.common.collect.Maps; @@ -14,8 +33,17 @@ import net.minecraft.client.model.ModelSkeletonHead; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.WorldRenderer; -import net.minecraft.client.renderer.block.model.*; -import net.minecraft.client.renderer.texture.*; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.renderer.block.model.BlockPart; +import net.minecraft.client.renderer.block.model.BlockPartFace; +import net.minecraft.client.renderer.block.model.FaceBakery; +import net.minecraft.client.renderer.block.model.ItemCameraTransforms; +import net.minecraft.client.renderer.block.model.ModelBlock; +import net.minecraft.client.renderer.texture.AbstractTexture; +import net.minecraft.client.renderer.texture.IIconCreator; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.renderer.texture.TextureUtil; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.client.resources.IResourceManager; import net.minecraft.client.resources.IResourceManagerReloadListener; @@ -31,7 +59,11 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; -import java.util.*; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; public class CustomSkulls implements IResourceManagerReloadListener { private static final CustomSkulls INSTANCE = new CustomSkulls(); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DamageCommas.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DamageCommas.java index 9c93b9c5..127edcde 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DamageCommas.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DamageCommas.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DwarvenMinesWaypoints.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DwarvenMinesWaypoints.java index f7f9003c..c1c7dca1 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DwarvenMinesWaypoints.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DwarvenMinesWaypoints.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/EnchantingSolvers.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/EnchantingSolvers.java index 83a68915..aaaa1e24 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/EnchantingSolvers.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/EnchantingSolvers.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -19,7 +38,11 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; import org.lwjgl.input.Keyboard; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; public class EnchantingSolvers { private static SolverType currentSolver = SolverType.NONE; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/FairySouls.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/FairySouls.java index 39ac1b22..a3717f32 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/FairySouls.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/FairySouls.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import com.google.common.reflect.TypeToken; @@ -131,13 +150,14 @@ public class FairySouls { int g2 = (color2 >> 8) & 0xff; int b2 = color2 & 0xff; - int r3 = r1 + (int)Math.round(factor * (r2-r1)); - int g3 = g1 + (int)Math.round(factor * (g2-g1)); - int b3 = b1 + (int)Math.round(factor * (b2-b1)); + int r3 = r1 + (int) Math.round(factor * (r2 - r1)); + int g3 = g1 + (int) Math.round(factor * (g2 - g1)); + int b3 = b1 + (int) Math.round(factor * (b2 - b1)); return (r3 & 0xff) << 16 | (g3 & 0xff) << 8 | - (b3 & 0xff); } + (b3 & 0xff); + } private double normalize(double value, double min, double max) { return ((value - min) / (max - min)); @@ -151,7 +171,7 @@ public class FairySouls { int closeColor = 0x772991; // 0xa839ce int farColor = 0xCEB4D1; - double farSoulDistSq = lastPlayerPos.distanceSq(closestMissingSouls.get(closestMissingSouls.size()-1)); + double farSoulDistSq = lastPlayerPos.distanceSq(closestMissingSouls.get(closestMissingSouls.size() - 1)); for (BlockPos currentSoul : closestMissingSouls) { double currentDistSq = lastPlayerPos.distanceSq(currentSoul); double factor = normalize(currentDistSq, 0.0, farSoulDistSq); @@ -405,7 +425,8 @@ public class FairySouls { case "on": case "enable": if (!FairySouls.instance.trackSouls) { - print(EnumChatFormatting.RED + "Fairy soul tracking is off, enable it using /neu before using this command"); + print( + EnumChatFormatting.RED + "Fairy soul tracking is off, enable it using /neu before using this command"); return; } print(EnumChatFormatting.DARK_PURPLE + "Enabled fairy soul waypoints"); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/FishingHelper.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/FishingHelper.java index 65092752..26e25a11 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/FishingHelper.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/FishingHelper.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java index 96522d34..f2b13abc 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCustomizeManager.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCustomizeManager.java index 655364ef..e1b9d567 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCustomizeManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCustomizeManager.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import com.google.gson.Gson; @@ -18,7 +37,13 @@ import org.lwjgl.opengl.GL14; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; -import java.io.*; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.function.Consumer; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemRarityHalo.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemRarityHalo.java index 88c7261c..79dd18f1 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemRarityHalo.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemRarityHalo.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -5,7 +24,11 @@ import io.github.moulberry.notenoughupdates.util.NEUResourceManager; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.client.renderer.*; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.client.renderer.texture.TextureUtil; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java index b56737e7..12e0301b 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/MiningStuff.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/NPCRetexturing.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/NPCRetexturing.java index 05d75c26..ad0dd66d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/NPCRetexturing.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/NPCRetexturing.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import com.google.gson.Gson; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/Navigation.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/Navigation.java index 3419b8c4..9cc872b7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/Navigation.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/Navigation.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import com.google.gson.JsonElement; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/NullzeeSphere.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/NullzeeSphere.java index 927111b3..6302343e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/NullzeeSphere.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/NullzeeSphere.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.util.ReverseWorldRenderer; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java index 056cf0a4..4cf076d8 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import com.google.common.collect.Lists; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/SlotLocking.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/SlotLocking.java index 9292c0d3..3955c363 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/SlotLocking.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/SlotLocking.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import com.google.gson.Gson; @@ -30,7 +49,13 @@ import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; import org.lwjgl.util.vector.Vector2f; -import java.io.*; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.function.Consumer; @@ -546,8 +571,8 @@ public class SlotLocking { ); } } else if (pairingSlot != null && lockKeyHeld && slot.getSlotIndex() < 8) { - int x1 = ((AccessorGuiContainer)container).getGuiLeft() + pairingSlot.xDisplayPosition; - int y1 = ((AccessorGuiContainer)container).getGuiTop() + pairingSlot.yDisplayPosition; + int x1 = ((AccessorGuiContainer) container).getGuiLeft() + pairingSlot.xDisplayPosition; + int y1 = ((AccessorGuiContainer) container).getGuiTop() + pairingSlot.yDisplayPosition; if (mouseX <= x1 || mouseX >= x1 + 16 || mouseY <= y1 || mouseY >= y1 + 16) { @@ -635,8 +660,8 @@ public class SlotLocking { int mouseX = Mouse.getX() * scaledWidth / Minecraft.getMinecraft().displayWidth; int mouseY = scaledHeight - Mouse.getY() * scaledHeight / Minecraft.getMinecraft().displayHeight - 1; - int x1 = ((AccessorGuiContainer)container).getGuiLeft() + pairingSlot.xDisplayPosition; - int y1 = ((AccessorGuiContainer)container).getGuiTop() + pairingSlot.yDisplayPosition; + int x1 = ((AccessorGuiContainer) container).getGuiLeft() + pairingSlot.xDisplayPosition; + int y1 = ((AccessorGuiContainer) container).getGuiTop() + pairingSlot.yDisplayPosition; if (mouseX <= x1 || mouseX >= x1 + 16 || mouseY <= y1 || mouseY >= y1 + 16) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/StorageManager.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/StorageManager.java index 94aee789..680637f2 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/StorageManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/StorageManager.java @@ -1,6 +1,35 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; -import com.google.gson.*; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.JsonPrimitive; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.miscgui.StorageOverlay; import io.github.moulberry.notenoughupdates.util.SBInfo; @@ -13,14 +42,32 @@ import net.minecraft.inventory.ContainerChest; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.*; +import net.minecraft.nbt.JsonToNBT; +import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagByte; +import net.minecraft.nbt.NBTTagByteArray; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagDouble; +import net.minecraft.nbt.NBTTagFloat; +import net.minecraft.nbt.NBTTagInt; +import net.minecraft.nbt.NBTTagIntArray; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.nbt.NBTTagLong; +import net.minecraft.nbt.NBTTagShort; +import net.minecraft.nbt.NBTTagString; import net.minecraft.network.play.client.C0EPacketClickWindow; import net.minecraft.network.play.server.S2DPacketOpenWindow; import net.minecraft.network.play.server.S2EPacketCloseWindow; import net.minecraft.network.play.server.S2FPacketSetSlot; import net.minecraft.network.play.server.S30PacketWindowItems; -import java.io.*; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; import java.lang.reflect.Type; import java.nio.charset.StandardCharsets; import java.util.HashMap; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/StreamerMode.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/StreamerMode.java index 064f41ca..a2951e56 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/StreamerMode.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/StreamerMode.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.util.Utils; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/SunTzu.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/SunTzu.java index 27cf42ac..9c2549b8 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/SunTzu.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/SunTzu.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.util.Utils; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/CrystalHollowsTextures.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/CrystalHollowsTextures.java index 36858276..7d23d922 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/CrystalHollowsTextures.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/CrystalHollowsTextures.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.customblockzones; import net.minecraft.util.BlockPos; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/CustomBiomes.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/CustomBiomes.java index 9a6f9cac..48a01187 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/CustomBiomes.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/CustomBiomes.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.customblockzones; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/CustomBlockSounds.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/CustomBlockSounds.java index dec011d3..2a3e9ec4 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/CustomBlockSounds.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/CustomBlockSounds.java @@ -1,8 +1,26 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.customblockzones; import com.google.gson.Gson; import com.google.gson.JsonObject; -import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.ISound; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/DwarvenMinesTextures.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/DwarvenMinesTextures.java index faf7eabe..1c6acc1d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/DwarvenMinesTextures.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/DwarvenMinesTextures.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.customblockzones; import com.google.gson.JsonArray; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/IslandZoneSubdivider.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/IslandZoneSubdivider.java index 8b00bc85..75ff566f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/IslandZoneSubdivider.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/IslandZoneSubdivider.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.customblockzones; import net.minecraft.util.BlockPos; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/LocationChangeEvent.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/LocationChangeEvent.java index c6f5e9c0..5a87af11 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/LocationChangeEvent.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/LocationChangeEvent.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.customblockzones; import net.minecraftforge.fml.common.eventhandler.Event; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/SpecialBlockZone.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/SpecialBlockZone.java index f4e8f1fc..e88e2c25 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/SpecialBlockZone.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/customblockzones/SpecialBlockZone.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.customblockzones; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/AgeModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/AgeModifier.java index 5884512f..963fa793 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/AgeModifier.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/AgeModifier.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; import com.google.gson.JsonObject; @@ -9,22 +28,22 @@ import net.minecraft.entity.item.EntityArmorStand; import net.minecraft.entity.monster.EntityZombie; public class AgeModifier extends EntityViewerModifier { - @Override - public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { - boolean baby = info.has("baby") && info.get("baby").getAsBoolean(); - if (base instanceof EntityAgeable) { - ((AccessorEntityAgeable) base).setGrowingAgeDirect(baby ? -1 : 1); - return base; - } - if (base instanceof EntityZombie) { - ((EntityZombie) base).setChild(baby); - return base; - } - if (base instanceof EntityArmorStand) { - ((AccessorEntityArmorStand) base).setSmallDirect(baby); - return base; - } - System.out.println("Cannot apply age to a non ageable entity: " + base); - return null; - } + @Override + public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { + boolean baby = info.has("baby") && info.get("baby").getAsBoolean(); + if (base instanceof EntityAgeable) { + ((AccessorEntityAgeable) base).setGrowingAgeDirect(baby ? -1 : 1); + return base; + } + if (base instanceof EntityZombie) { + ((EntityZombie) base).setChild(baby); + return base; + } + if (base instanceof EntityArmorStand) { + ((AccessorEntityArmorStand) base).setSmallDirect(baby); + return base; + } + System.out.println("Cannot apply age to a non ageable entity: " + base); + return null; + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/ChargedModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/ChargedModifier.java index 17dce66d..5f452132 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/ChargedModifier.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/ChargedModifier.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; import com.google.gson.JsonObject; @@ -6,12 +25,12 @@ import net.minecraft.entity.monster.EntityCreeper; public class ChargedModifier extends EntityViewerModifier { - @Override - public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { - if (base instanceof EntityCreeper) { - base.getDataWatcher().updateObject(17, (byte) 1); - return base; - } - return null; - } + @Override + public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { + if (base instanceof EntityCreeper) { + base.getDataWatcher().updateObject(17, (byte) 1); + return base; + } + return null; + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewer.java index 78d035ac..367d62d3 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; import com.google.gson.Gson; @@ -14,166 +33,213 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.boss.EntityDragon; import net.minecraft.entity.boss.EntityWither; import net.minecraft.entity.item.EntityArmorStand; -import net.minecraft.entity.monster.*; -import net.minecraft.entity.passive.*; +import net.minecraft.entity.monster.EntityBlaze; +import net.minecraft.entity.monster.EntityCaveSpider; +import net.minecraft.entity.monster.EntityCreeper; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.monster.EntityEndermite; +import net.minecraft.entity.monster.EntityGhast; +import net.minecraft.entity.monster.EntityGuardian; +import net.minecraft.entity.monster.EntityIronGolem; +import net.minecraft.entity.monster.EntityMagmaCube; +import net.minecraft.entity.monster.EntityPigZombie; +import net.minecraft.entity.monster.EntitySilverfish; +import net.minecraft.entity.monster.EntitySkeleton; +import net.minecraft.entity.monster.EntitySlime; +import net.minecraft.entity.monster.EntitySnowman; +import net.minecraft.entity.monster.EntitySpider; +import net.minecraft.entity.monster.EntityWitch; +import net.minecraft.entity.monster.EntityZombie; +import net.minecraft.entity.passive.EntityBat; +import net.minecraft.entity.passive.EntityChicken; +import net.minecraft.entity.passive.EntityCow; +import net.minecraft.entity.passive.EntityHorse; +import net.minecraft.entity.passive.EntityMooshroom; +import net.minecraft.entity.passive.EntityOcelot; +import net.minecraft.entity.passive.EntityPig; +import net.minecraft.entity.passive.EntityRabbit; +import net.minecraft.entity.passive.EntitySheep; +import net.minecraft.entity.passive.EntitySquid; +import net.minecraft.entity.passive.EntityVillager; +import net.minecraft.entity.passive.EntityWolf; import net.minecraft.util.ResourceLocation; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; import java.nio.charset.StandardCharsets; -import java.util.*; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.function.Supplier; import java.util.stream.Collectors; import java.util.stream.StreamSupport; public class EntityViewer extends GuiScreen { - public static Map> validEntities = new HashMap>() {{ - put("Zombie", () -> new EntityZombie(null)); - put("Chicken", () -> new EntityChicken(null)); - put("Slime", () -> new EntitySlime(null)); - put("Wolf", () -> new EntityWolf(null)); - put("Skeleton", () -> new EntitySkeleton(null)); - put("Creeper", () -> new EntityCreeper(null)); - put("Ocelot", () -> new EntityOcelot(null)); - put("Blaze", () -> new EntityBlaze(null)); - put("Rabbit", () -> new EntityRabbit(null)); - put("Sheep", () -> new EntitySheep(null)); - put("Horse", () -> new EntityHorse(null)); - put("Eisengolem", () -> new EntityIronGolem(null)); - put("Silverfish", () -> new EntitySilverfish(null)); - put("Witch", () -> new EntityWitch(null)); - put("Endermite", () -> new EntityEndermite(null)); - put("Snowman", () -> new EntitySnowman(null)); - put("Villager", () -> new EntityVillager(null)); - put("Guardian", () -> new EntityGuardian(null)); - put("ArmorStand", () -> new EntityArmorStand(null)); - put("Squid", () -> new EntitySquid(null)); - put("Bat", () -> new EntityBat(null)); - put("Spider", () -> new EntitySpider(null)); - put("CaveSpider", () -> new EntityCaveSpider(null)); - put("Pigman", () -> new EntityPigZombie(null)); - put("Ghast", () -> new EntityGhast(null)); - put("MagmaCube", () -> new EntityMagmaCube(null)); - put("Wither", () -> new EntityWither(null)); - put("Enderman", () -> new EntityEnderman(null)); - put("Mooshroom", ()-> new EntityMooshroom(null)); - put("WitherSkeleton", () -> { - EntitySkeleton skeleton = new EntitySkeleton(null); - skeleton.setSkeletonType(1); - return skeleton; - }); - put("Cow", () -> new EntityCow(null)); - put("Dragon", ()-> new EntityDragon(null)); - put("Player", () -> new GUIClientPlayer()); - put("Pig", () -> new EntityPig(null)); - }}; - - public static Map validModifiers = new HashMap() {{ - put("playerdata", new SkinModifier()); - put("equipment", new EquipmentModifier()); - put("riding", new RidingModifier()); - put("charged", new ChargedModifier()); - put("witherdata", new WitherModifier()); - put("invisible", new InvisibleModifier()); - put("age", new AgeModifier()); - put("horse", new HorseModifier()); - put("name", new NameModifier()); - }}; - - public int guiLeft = 0; - public int guiTop = 0; - public int xSize = 176; - public int ySize = 166; - - private final String label; - private final EntityLivingBase entity; - private static final ResourceLocation BACKGROUND = new ResourceLocation("notenoughupdates", "textures/gui/entity_viewer.png"); - - public EntityViewer(String label, EntityLivingBase entity) { - this.label = label; - this.entity = entity; - } - - public static EntityLivingBase constructEntity(ResourceLocation resourceLocation) { - Gson gson = NotEnoughUpdates.INSTANCE.manager.gson; - try (Reader is = new InputStreamReader( - Minecraft.getMinecraft().getResourceManager().getResource(resourceLocation).getInputStream(), StandardCharsets.UTF_8)) { - return constructEntity(gson.fromJson(is, JsonObject.class)); - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } - - public static EntityLivingBase constructEntity(JsonObject info) { - List modifiers = info.has("modifiers") ? - StreamSupport.stream(info.get("modifiers").getAsJsonArray().spliterator(), false) - .map(JsonElement::getAsJsonObject).collect(Collectors.toList()) - : Collections.emptyList(); - return EntityViewer.constructEntity(info.get("entity").getAsString(), modifiers); - } - - public static EntityLivingBase constructEntity(String string, String[] modifiers) { - Gson gson = NotEnoughUpdates.INSTANCE.manager.gson; - return constructEntity(string, Arrays.stream(modifiers).map(it -> gson.fromJson(it, JsonObject.class)).collect(Collectors.toList())); - } - - public static EntityLivingBase constructEntity(String string, List modifiers) { - Supplier aClass = validEntities.get(string); - if (aClass == null) { - System.err.println("Could not find entity of type: " + string); - return null; - } - try { - EntityLivingBase entity = aClass.get(); - for (JsonObject modifier : modifiers) { - String type = modifier.get("type").getAsString(); - EntityViewerModifier entityViewerModifier = validModifiers.get(type); - entity = entityViewerModifier.applyModifier(entity, modifier); - if (entity == null) break; - } - return entity; - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) { - drawDefaultBackground(); - FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; - - this.guiLeft = (width - this.xSize) / 2; - this.guiTop = (height - this.ySize) / 2; - - - Minecraft.getMinecraft().getTextureManager().bindTexture(BACKGROUND); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, this.xSize, this.ySize); - - - Utils.drawStringScaledMaxWidth(label, fontRenderer, guiLeft + 10, guiTop + 10, false, 100, 0xFF00FF); - renderEntity(entity, guiLeft + 90, guiTop + 75, mouseX, mouseY); - } - - public static void renderEntity(EntityLivingBase entity, int posX, int posY, int mouseX, int mouseY) { - GlStateManager.color(1F, 1F, 1F, 1F); - - int scale = 30; - float bottomOffset = 0F; - EntityLivingBase stack = entity; - while (true) { - - stack.ticksExisted = Minecraft.getMinecraft().thePlayer.ticksExisted; - GuiInventory.drawEntityOnScreen(posX, (int) (posY - bottomOffset * scale), scale, posX - mouseX, (int) (posY - stack.getEyeHeight() * scale - mouseY), stack); - bottomOffset += stack.getMountedYOffset(); - if (!(stack.riddenByEntity instanceof EntityLivingBase)) { - break; - } - stack = (EntityLivingBase) stack.riddenByEntity; - } - - } + public static Map> validEntities = + new HashMap>() {{ + put("Zombie", () -> new EntityZombie(null)); + put("Chicken", () -> new EntityChicken(null)); + put("Slime", () -> new EntitySlime(null)); + put("Wolf", () -> new EntityWolf(null)); + put("Skeleton", () -> new EntitySkeleton(null)); + put("Creeper", () -> new EntityCreeper(null)); + put("Ocelot", () -> new EntityOcelot(null)); + put("Blaze", () -> new EntityBlaze(null)); + put("Rabbit", () -> new EntityRabbit(null)); + put("Sheep", () -> new EntitySheep(null)); + put("Horse", () -> new EntityHorse(null)); + put("Eisengolem", () -> new EntityIronGolem(null)); + put("Silverfish", () -> new EntitySilverfish(null)); + put("Witch", () -> new EntityWitch(null)); + put("Endermite", () -> new EntityEndermite(null)); + put("Snowman", () -> new EntitySnowman(null)); + put("Villager", () -> new EntityVillager(null)); + put("Guardian", () -> new EntityGuardian(null)); + put("ArmorStand", () -> new EntityArmorStand(null)); + put("Squid", () -> new EntitySquid(null)); + put("Bat", () -> new EntityBat(null)); + put("Spider", () -> new EntitySpider(null)); + put("CaveSpider", () -> new EntityCaveSpider(null)); + put("Pigman", () -> new EntityPigZombie(null)); + put("Ghast", () -> new EntityGhast(null)); + put("MagmaCube", () -> new EntityMagmaCube(null)); + put("Wither", () -> new EntityWither(null)); + put("Enderman", () -> new EntityEnderman(null)); + put("Mooshroom", () -> new EntityMooshroom(null)); + put("WitherSkeleton", () -> { + EntitySkeleton skeleton = new EntitySkeleton(null); + skeleton.setSkeletonType(1); + return skeleton; + }); + put("Cow", () -> new EntityCow(null)); + put("Dragon", () -> new EntityDragon(null)); + put("Player", () -> new GUIClientPlayer()); + put("Pig", () -> new EntityPig(null)); + }}; + + public static Map validModifiers = new HashMap() {{ + put("playerdata", new SkinModifier()); + put("equipment", new EquipmentModifier()); + put("riding", new RidingModifier()); + put("charged", new ChargedModifier()); + put("witherdata", new WitherModifier()); + put("invisible", new InvisibleModifier()); + put("age", new AgeModifier()); + put("horse", new HorseModifier()); + put("name", new NameModifier()); + }}; + + public int guiLeft = 0; + public int guiTop = 0; + public int xSize = 176; + public int ySize = 166; + + private final String label; + private final EntityLivingBase entity; + private static final ResourceLocation BACKGROUND = new ResourceLocation( + "notenoughupdates", + "textures/gui/entity_viewer.png" + ); + + public EntityViewer(String label, EntityLivingBase entity) { + this.label = label; + this.entity = entity; + } + + public static EntityLivingBase constructEntity(ResourceLocation resourceLocation) { + Gson gson = NotEnoughUpdates.INSTANCE.manager.gson; + try ( + Reader is = new InputStreamReader( + Minecraft.getMinecraft().getResourceManager().getResource(resourceLocation).getInputStream(), + StandardCharsets.UTF_8 + ) + ) { + return constructEntity(gson.fromJson(is, JsonObject.class)); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + public static EntityLivingBase constructEntity(JsonObject info) { + List modifiers = info.has("modifiers") ? + StreamSupport.stream(info.get("modifiers").getAsJsonArray().spliterator(), false) + .map(JsonElement::getAsJsonObject).collect(Collectors.toList()) + : Collections.emptyList(); + return EntityViewer.constructEntity(info.get("entity").getAsString(), modifiers); + } + + public static EntityLivingBase constructEntity(String string, String[] modifiers) { + Gson gson = NotEnoughUpdates.INSTANCE.manager.gson; + return constructEntity( + string, + Arrays.stream(modifiers).map(it -> gson.fromJson(it, JsonObject.class)).collect(Collectors.toList()) + ); + } + + public static EntityLivingBase constructEntity(String string, List modifiers) { + Supplier aClass = validEntities.get(string); + if (aClass == null) { + System.err.println("Could not find entity of type: " + string); + return null; + } + try { + EntityLivingBase entity = aClass.get(); + for (JsonObject modifier : modifiers) { + String type = modifier.get("type").getAsString(); + EntityViewerModifier entityViewerModifier = validModifiers.get(type); + entity = entityViewerModifier.applyModifier(entity, modifier); + if (entity == null) break; + } + return entity; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + drawDefaultBackground(); + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; + + this.guiLeft = (width - this.xSize) / 2; + this.guiTop = (height - this.ySize) / 2; + + Minecraft.getMinecraft().getTextureManager().bindTexture(BACKGROUND); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, this.xSize, this.ySize); + + Utils.drawStringScaledMaxWidth(label, fontRenderer, guiLeft + 10, guiTop + 10, false, 100, 0xFF00FF); + renderEntity(entity, guiLeft + 90, guiTop + 75, mouseX, mouseY); + } + + public static void renderEntity(EntityLivingBase entity, int posX, int posY, int mouseX, int mouseY) { + GlStateManager.color(1F, 1F, 1F, 1F); + + int scale = 30; + float bottomOffset = 0F; + EntityLivingBase stack = entity; + while (true) { + + stack.ticksExisted = Minecraft.getMinecraft().thePlayer.ticksExisted; + GuiInventory.drawEntityOnScreen( + posX, + (int) (posY - bottomOffset * scale), + scale, + posX - mouseX, + (int) (posY - stack.getEyeHeight() * scale - mouseY), + stack + ); + bottomOffset += stack.getMountedYOffset(); + if (!(stack.riddenByEntity instanceof EntityLivingBase)) { + break; + } + stack = (EntityLivingBase) stack.riddenByEntity; + } + + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewerModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewerModifier.java index bab6c354..aa6d22c9 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewerModifier.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EntityViewerModifier.java @@ -1,8 +1,27 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; import com.google.gson.JsonObject; import net.minecraft.entity.EntityLivingBase; public abstract class EntityViewerModifier { - public abstract EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info); + public abstract EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EquipmentModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EquipmentModifier.java index 3011e479..685e161a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EquipmentModifier.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/EquipmentModifier.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; import com.google.gson.JsonObject; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/GUIClientPlayer.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/GUIClientPlayer.java index db20a684..8cdf2ef0 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/GUIClientPlayer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/GUIClientPlayer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; import com.mojang.authlib.GameProfile; @@ -9,29 +28,29 @@ import net.minecraft.util.ResourceLocation; import java.util.UUID; public class GUIClientPlayer extends AbstractClientPlayer { - public GUIClientPlayer() { - super(null, new GameProfile(UUID.randomUUID(), "GuiPlayer")); - } - - ResourceLocation overrideSkin = DefaultPlayerSkin.getDefaultSkinLegacy(); - ResourceLocation overrideCape = null; - boolean overrideIsSlim = false; - NetworkPlayerInfo playerInfo = new NetworkPlayerInfo(this.getGameProfile()) { - @Override - public String getSkinType() { - return overrideIsSlim ? "slim" : "default"; - } - - @Override - public ResourceLocation getLocationSkin() { - return overrideSkin; - } - - @Override - public ResourceLocation getLocationCape() { - return overrideCape; - } - }; + public GUIClientPlayer() { + super(null, new GameProfile(UUID.randomUUID(), "GuiPlayer")); + } + + ResourceLocation overrideSkin = DefaultPlayerSkin.getDefaultSkinLegacy(); + ResourceLocation overrideCape = null; + boolean overrideIsSlim = false; + NetworkPlayerInfo playerInfo = new NetworkPlayerInfo(this.getGameProfile()) { + @Override + public String getSkinType() { + return overrideIsSlim ? "slim" : "default"; + } + + @Override + public ResourceLocation getLocationSkin() { + return overrideSkin; + } + + @Override + public ResourceLocation getLocationCape() { + return overrideCape; + } + }; @Override public String getName() { @@ -45,7 +64,7 @@ public class GUIClientPlayer extends AbstractClientPlayer { } @Override - protected NetworkPlayerInfo getPlayerInfo() { - return playerInfo; - } + protected NetworkPlayerInfo getPlayerInfo() { + return playerInfo; + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/HorseModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/HorseModifier.java index 7fd2dadd..b29152bf 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/HorseModifier.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/HorseModifier.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; import com.google.gson.JsonElement; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/InvisibleModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/InvisibleModifier.java index c2138b3f..74535ce9 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/InvisibleModifier.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/InvisibleModifier.java @@ -1,12 +1,31 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; import com.google.gson.JsonObject; import net.minecraft.entity.EntityLivingBase; public class InvisibleModifier extends EntityViewerModifier { - @Override - public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { - base.setInvisible(!info.has("invisible") || info.get("invisible").getAsBoolean()); - return base; - } + @Override + public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { + base.setInvisible(!info.has("invisible") || info.get("invisible").getAsBoolean()); + return base; + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/NameModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/NameModifier.java index 9978882d..c0fd23bd 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/NameModifier.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/NameModifier.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; import com.google.gson.JsonObject; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/RidingModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/RidingModifier.java index 9879542a..72dd8b73 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/RidingModifier.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/RidingModifier.java @@ -1,14 +1,33 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; import com.google.gson.JsonObject; import net.minecraft.entity.EntityLivingBase; public class RidingModifier extends EntityViewerModifier { - @Override - public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { - EntityLivingBase newEntity = EntityViewer.constructEntity(info); - if (newEntity == null) return null; - newEntity.mountEntity(base); - return base; - } + @Override + public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { + EntityLivingBase newEntity = EntityViewer.constructEntity(info); + if (newEntity == null) return null; + newEntity.mountEntity(base); + return base; + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/SkinModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/SkinModifier.java index 55e8a432..076e8417 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/SkinModifier.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/SkinModifier.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; import com.google.gson.JsonElement; @@ -9,38 +28,38 @@ import net.minecraft.util.ResourceLocation; import java.util.Map; public class SkinModifier extends EntityViewerModifier { - @Override - public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { - if (base instanceof GUIClientPlayer) { - GUIClientPlayer player = (GUIClientPlayer) base; - if (info.has("cape")) { - player.overrideCape = new ResourceLocation(info.get("cape").getAsString()); - } - if (info.has("skin")) { - player.overrideSkin = new ResourceLocation(info.get("skin").getAsString()); - } - if (info.has("slim")) { - player.overrideIsSlim = info.get("slim").getAsBoolean(); - } - if (info.has("parts")) { - JsonElement parts = info.get("parts"); - byte partBitField = player.getDataWatcher().getWatchableObjectByte(10); - if (parts.isJsonPrimitive() && parts.getAsJsonPrimitive().isBoolean()) { - partBitField = parts.getAsBoolean() ? (byte) -1 : 0; - } else { - JsonObject obj = parts.getAsJsonObject(); - for (Map.Entry part : obj.entrySet()) { - EnumPlayerModelParts modelPart = EnumPlayerModelParts.valueOf(part.getKey()); - if (part.getValue().getAsBoolean()) { - partBitField |= modelPart.getPartMask(); - } else { - partBitField &= ~modelPart.getPartMask(); - } - } - } - player.getDataWatcher().updateObject(10, partBitField); - } - } - return base; - } + @Override + public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { + if (base instanceof GUIClientPlayer) { + GUIClientPlayer player = (GUIClientPlayer) base; + if (info.has("cape")) { + player.overrideCape = new ResourceLocation(info.get("cape").getAsString()); + } + if (info.has("skin")) { + player.overrideSkin = new ResourceLocation(info.get("skin").getAsString()); + } + if (info.has("slim")) { + player.overrideIsSlim = info.get("slim").getAsBoolean(); + } + if (info.has("parts")) { + JsonElement parts = info.get("parts"); + byte partBitField = player.getDataWatcher().getWatchableObjectByte(10); + if (parts.isJsonPrimitive() && parts.getAsJsonPrimitive().isBoolean()) { + partBitField = parts.getAsBoolean() ? (byte) -1 : 0; + } else { + JsonObject obj = parts.getAsJsonObject(); + for (Map.Entry part : obj.entrySet()) { + EnumPlayerModelParts modelPart = EnumPlayerModelParts.valueOf(part.getKey()); + if (part.getValue().getAsBoolean()) { + partBitField |= modelPart.getPartMask(); + } else { + partBitField &= ~modelPart.getPartMask(); + } + } + } + player.getDataWatcher().updateObject(10, partBitField); + } + } + return base; + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/WitherModifier.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/WitherModifier.java index c5580f17..3b73c26f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/WitherModifier.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/WitherModifier.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer; import com.google.gson.JsonObject; @@ -5,25 +24,25 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.boss.EntityWither; public class WitherModifier extends EntityViewerModifier { - @Override - public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { - if (!(base instanceof EntityWither)) - return null; - EntityWither wither = (EntityWither) base; - if (info.has("tiny")) { - if (info.get("tiny").getAsBoolean()) { - wither.setInvulTime(800); - } else { - wither.setInvulTime(0); - } - } - if (info.has("armored")) { - if (info.get("armored").getAsBoolean()) { - wither.setHealth(1); - } else { - wither.setHealth(wither.getMaxHealth()); - } - } - return base; - } + @Override + public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) { + if (!(base instanceof EntityWither)) + return null; + EntityWither wither = (EntityWither) base; + if (info.has("tiny")) { + if (info.get("tiny").getAsBoolean()) { + wither.setInvulTime(800); + } else { + wither.setInvulTime(0); + } + } + if (info.has("armored")) { + if (info.get("armored").getAsBoolean()) { + wither.setHealth(1); + } else { + wither.setHealth(wither.getMaxHealth()); + } + } + return base; + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/AccessoryBagOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/AccessoryBagOverlay.java index 95e21cd0..c8fd0fde 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/AccessoryBagOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/AccessoryBagOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscgui; import com.google.gson.JsonArray; @@ -33,8 +52,14 @@ import org.lwjgl.opengl.GL14; import java.awt.*; import java.io.ByteArrayInputStream; import java.io.IOException; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; -import java.util.*; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -55,7 +80,8 @@ public class AccessoryBagOverlay { Utils.createItemStack(Items.diamond_sword, EnumChatFormatting.DARK_AQUA + "Total Stat Bonuses", 0 ), - Utils.createItemStack(Item.getItemFromBlock(Blocks.anvil), + Utils.createItemStack( + Item.getItemFromBlock(Blocks.anvil), EnumChatFormatting.DARK_AQUA + "Total Stat Bonuses (from reforges)", 0 ), @@ -211,7 +237,8 @@ public class AccessoryBagOverlay { } } - Utils.drawStringCenteredScaledMaxWidth("# By Rarity", + Utils.drawStringCenteredScaledMaxWidth( + "# By Rarity", Minecraft.getMinecraft().fontRendererObj, x + 40, y + 12, @@ -244,7 +271,8 @@ public class AccessoryBagOverlay { } } - Utils.drawStringCenteredScaledMaxWidth("Total Stats", + Utils.drawStringCenteredScaledMaxWidth( + "Total Stats", Minecraft.getMinecraft().fontRendererObj, x + 40, y + 12, @@ -291,7 +319,8 @@ public class AccessoryBagOverlay { } } - Utils.drawStringCenteredScaledMaxWidth("Reforge Stats", + Utils.drawStringCenteredScaledMaxWidth( + "Reforge Stats", Minecraft.getMinecraft().fontRendererObj, x + 40, y + 12, @@ -334,7 +363,8 @@ public class AccessoryBagOverlay { if (duplicates == null) { JsonObject misc = Constants.MISC; if (misc == null) { - Utils.drawStringCenteredScaledMaxWidth("Duplicates: ERROR", + Utils.drawStringCenteredScaledMaxWidth( + "Duplicates: ERROR", Minecraft.getMinecraft().fontRendererObj, x + 40, y + 12, @@ -346,7 +376,8 @@ public class AccessoryBagOverlay { } JsonElement talisman_upgrades_element = misc.get("talisman_upgrades"); if (talisman_upgrades_element == null) { - Utils.drawStringCenteredScaledMaxWidth("Duplicates: ERROR", + Utils.drawStringCenteredScaledMaxWidth( + "Duplicates: ERROR", Minecraft.getMinecraft().fontRendererObj, x + 40, y + 12, @@ -388,7 +419,8 @@ public class AccessoryBagOverlay { } } if (duplicates.isEmpty()) { - Utils.drawStringCenteredScaledMaxWidth("No Duplicates", + Utils.drawStringCenteredScaledMaxWidth( + "No Duplicates", Minecraft.getMinecraft().fontRendererObj, x + 40, y + 12, @@ -397,7 +429,8 @@ public class AccessoryBagOverlay { new Color(80, 80, 80).getRGB() ); } else { - Utils.drawStringCenteredScaledMaxWidth("Duplicates: " + duplicates.size(), + Utils.drawStringCenteredScaledMaxWidth( + "Duplicates: " + duplicates.size(), Minecraft.getMinecraft().fontRendererObj, x + 40, y + 12, @@ -432,7 +465,8 @@ public class AccessoryBagOverlay { if (missing == null) { JsonObject misc = Constants.MISC; if (misc == null) { - Utils.drawStringCenteredScaledMaxWidth("Duplicates: ERROR", + Utils.drawStringCenteredScaledMaxWidth( + "Duplicates: ERROR", Minecraft.getMinecraft().fontRendererObj, x + 40, y + 12, @@ -444,7 +478,8 @@ public class AccessoryBagOverlay { } JsonElement talisman_upgrades_element = misc.get("talisman_upgrades"); if (talisman_upgrades_element == null) { - Utils.drawStringCenteredScaledMaxWidth("Duplicates: ERROR", + Utils.drawStringCenteredScaledMaxWidth( + "Duplicates: ERROR", Minecraft.getMinecraft().fontRendererObj, x + 40, y + 12, @@ -519,7 +554,8 @@ public class AccessoryBagOverlay { } } if (missing.isEmpty()) { - Utils.drawStringCenteredScaledMaxWidth("No Missing", + Utils.drawStringCenteredScaledMaxWidth( + "No Missing", Minecraft.getMinecraft().fontRendererObj, x + 40, y + 12, @@ -528,7 +564,8 @@ public class AccessoryBagOverlay { new Color(80, 80, 80).getRGB() ); } else { - Utils.drawStringCenteredScaledMaxWidth("Missing: " + missing.size(), + Utils.drawStringCenteredScaledMaxWidth( + "Missing: " + missing.size(), Minecraft.getMinecraft().fontRendererObj, x + 40, y + 12, @@ -653,7 +690,8 @@ public class AccessoryBagOverlay { private static int mainWeapon = 1; public static void renderOptimizerOverlay(int x, int y) { - Utils.drawStringCenteredScaledMaxWidth("Optimizer", + Utils.drawStringCenteredScaledMaxWidth( + "Optimizer", Minecraft.getMinecraft().fontRendererObj, x + 40, y + 12, @@ -686,7 +724,8 @@ public class AccessoryBagOverlay { dark ); - Utils.drawStringCenteredScaledMaxWidth("Force 100% CC", + Utils.drawStringCenteredScaledMaxWidth( + "Force 100% CC", Minecraft.getMinecraft().fontRendererObj, x + 40, y + 27, @@ -698,7 +737,8 @@ public class AccessoryBagOverlay { Minecraft.getMinecraft().fontRendererObj, x + 20, y + 37, true, 30, new Color(80, 80, 80).getRGB() ); - Utils.drawStringCenteredScaledMaxWidth((forceCC ? EnumChatFormatting.GRAY : EnumChatFormatting.RED) + "NO", + Utils.drawStringCenteredScaledMaxWidth( + (forceCC ? EnumChatFormatting.GRAY : EnumChatFormatting.RED) + "NO", Minecraft.getMinecraft().fontRendererObj, x + 60, y + 37, @@ -707,7 +747,8 @@ public class AccessoryBagOverlay { new Color(80, 80, 80).getRGB() ); - Utils.drawStringCenteredScaledMaxWidth("Force 100% ATKSPEED", + Utils.drawStringCenteredScaledMaxWidth( + "Force 100% ATKSPEED", Minecraft.getMinecraft().fontRendererObj, x + 40, y + 47, @@ -715,7 +756,8 @@ public class AccessoryBagOverlay { 70, new Color(80, 80, 80).getRGB() ); - Utils.drawStringCenteredScaledMaxWidth((forceAS ? EnumChatFormatting.GREEN : EnumChatFormatting.GRAY) + "YES", + Utils.drawStringCenteredScaledMaxWidth( + (forceAS ? EnumChatFormatting.GREEN : EnumChatFormatting.GRAY) + "YES", Minecraft.getMinecraft().fontRendererObj, x + 20, y + 57, @@ -723,7 +765,8 @@ public class AccessoryBagOverlay { 30, new Color(80, 80, 80).getRGB() ); - Utils.drawStringCenteredScaledMaxWidth((forceAS ? EnumChatFormatting.GRAY : EnumChatFormatting.RED) + "NO", + Utils.drawStringCenteredScaledMaxWidth( + (forceAS ? EnumChatFormatting.GRAY : EnumChatFormatting.RED) + "NO", Minecraft.getMinecraft().fontRendererObj, x + 60, y + 57, @@ -732,7 +775,8 @@ public class AccessoryBagOverlay { new Color(80, 80, 80).getRGB() ); - Utils.drawStringCenteredScaledMaxWidth("Use God Potion", + Utils.drawStringCenteredScaledMaxWidth( + "Use God Potion", Minecraft.getMinecraft().fontRendererObj, x + 40, y + 67, @@ -740,7 +784,8 @@ public class AccessoryBagOverlay { 70, new Color(80, 80, 80).getRGB() ); - Utils.drawStringCenteredScaledMaxWidth((useGodPot ? EnumChatFormatting.GREEN : EnumChatFormatting.GRAY) + "YES", + Utils.drawStringCenteredScaledMaxWidth( + (useGodPot ? EnumChatFormatting.GREEN : EnumChatFormatting.GRAY) + "YES", Minecraft.getMinecraft().fontRendererObj, x + 20, y + 77, @@ -748,7 +793,8 @@ public class AccessoryBagOverlay { 30, new Color(80, 80, 80).getRGB() ); - Utils.drawStringCenteredScaledMaxWidth((useGodPot ? EnumChatFormatting.GRAY : EnumChatFormatting.RED) + "NO", + Utils.drawStringCenteredScaledMaxWidth( + (useGodPot ? EnumChatFormatting.GRAY : EnumChatFormatting.RED) + "NO", Minecraft.getMinecraft().fontRendererObj, x + 60, y + 77, @@ -757,7 +803,8 @@ public class AccessoryBagOverlay { new Color(80, 80, 80).getRGB() ); - Utils.drawStringCenteredScaledMaxWidth("Use God Potion", + Utils.drawStringCenteredScaledMaxWidth( + "Use God Potion", Minecraft.getMinecraft().fontRendererObj, x + 40, y + 87, @@ -774,7 +821,8 @@ public class AccessoryBagOverlay { true, 30, new Color(80, 80, 80).getRGB() ); - Utils.drawStringCenteredScaledMaxWidth("Main Weapon", + Utils.drawStringCenteredScaledMaxWidth( + "Main Weapon", Minecraft.getMinecraft().fontRendererObj, x + 40, y + 107, @@ -836,7 +884,8 @@ public class AccessoryBagOverlay { GuiChest eventGui = (GuiChest) Minecraft.getMinecraft().currentScreen; ContainerChest cc = (ContainerChest) eventGui.inventorySlots; String containerName = cc.getLowerChestInventory().getDisplayName().getUnformattedText(); - if (containerName.trim().startsWith("Accessory Bag") && !containerName.contains("Thaumaturgy") && !containerName.contains("Upgrades")) { + if (containerName.trim().startsWith("Accessory Bag") && !containerName.contains("Thaumaturgy") && + !containerName.contains("Upgrades")) { inAccessoryBag = true; try { int xSize = (int) Utils.getField(GuiContainer.class, eventGui, "xSize", "field_146999_f"); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/CalendarOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/CalendarOverlay.java index 06cf28e1..64396905 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/CalendarOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/CalendarOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscgui; import com.google.gson.JsonArray; @@ -36,7 +55,12 @@ import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; import java.io.File; -import java.util.*; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; import java.util.regex.Matcher; import java.util.regex.Pattern; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiCustomEnchant.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiCustomEnchant.java index 42340259..8ba3a98a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiCustomEnchant.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiCustomEnchant.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscgui; import com.google.common.collect.Lists; @@ -39,7 +58,12 @@ import org.lwjgl.opengl.GL11; import org.lwjgl.util.glu.Project; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import java.util.*; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Objects; +import java.util.Random; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -946,7 +970,7 @@ public class GuiCustomEnchant extends Gui { GlStateManager.pushMatrix(); GlStateManager.translate(guiLeft + 102 - 8, guiTop + 191 - (inventoryStartIndex / 9 * 18 + 89), 0); Slot slot = cc.getSlot(inventoryStartIndex + i); - ((AccessorGuiContainer)chest).doDrawSlot(slot); + ((AccessorGuiContainer) chest).doDrawSlot(slot); GlStateManager.popMatrix(); if (mouseX >= itemX && mouseX < itemX + 18 && diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiEnchantColour.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiEnchantColour.java index 2ed708e9..31713189 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiEnchantColour.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiEnchantColour.java @@ -1,13 +1,34 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscgui; import com.google.common.base.Splitter; import com.google.common.collect.Lists; -import com.google.gson.*; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; +import com.google.gson.JsonParser; +import com.google.gson.JsonPrimitive; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.core.util.lerp.LerpingInteger; import io.github.moulberry.notenoughupdates.itemeditor.GuiElementTextField; import io.github.moulberry.notenoughupdates.options.NEUConfig; -import io.github.moulberry.notenoughupdates.util.Constants; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java index d65a18b0..40e12e35 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiInvButtonEditor.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscgui; import com.google.gson.JsonArray; @@ -22,7 +41,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.util.ResourceLocation; -import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemCustomize.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemCustomize.java index 0645ede7..7d541296 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemCustomize.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemCustomize.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscgui; import com.google.common.collect.Lists; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java index 129e25e7..69343e99 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiItemRecipe.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscgui; import com.google.common.collect.ImmutableList; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiNavigation.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiNavigation.java index d34988f6..dcb1344c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiNavigation.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiNavigation.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscgui; import com.google.gson.JsonObject; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiPriceGraph.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiPriceGraph.java index e2381503..ed8d5d92 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiPriceGraph.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/GuiPriceGraph.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscgui; import com.google.common.reflect.TypeToken; @@ -17,14 +36,26 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import java.io.*; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; import java.lang.reflect.Type; import java.nio.charset.StandardCharsets; import java.text.DecimalFormat; import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.time.Instant; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.TreeMap; import java.util.stream.Collectors; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; @@ -347,7 +378,7 @@ public class GuiPriceGraph extends GuiScreen { itemData = new ItemData( new TreeMap<>(itemData.get().entrySet().stream() .filter(e -> e.getKey() > System.currentTimeMillis() / 1000 - - (mode == 0 ? 3600 : mode == 1 ? 86400 : 604800)) + (mode == 0 ? 3600 : mode == 1 ? 86400 : 604800)) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))), itemData.isBz() ); @@ -428,7 +459,12 @@ public class GuiPriceGraph extends GuiScreen { } } - private static void addOrUpdateItemPriceInfo(Map.Entry item, HashMap prices, long timestamp, boolean bazaar) { + private static void addOrUpdateItemPriceInfo( + Map.Entry item, + HashMap prices, + long timestamp, + boolean bazaar + ) { String itemName = item.getKey(); ItemData existingItemData = null; if (prices.containsKey(itemName)) { @@ -456,7 +492,8 @@ public class GuiPriceGraph extends GuiScreen { BzData bzData = new BzData( item.getValue().getAsJsonObject().get("curr_buy").getAsFloat(), - item.getValue().getAsJsonObject().get("curr_sell").getAsFloat()); + item.getValue().getAsJsonObject().get("curr_sell").getAsFloat() + ); if (existingItemData != null) { existingItemData.bz.put(timestamp, bzData); @@ -485,7 +522,8 @@ public class GuiPriceGraph extends GuiScreen { else trimmed.ah = new TreeMap<>(); int zones = NotEnoughUpdates.INSTANCE.config.ahGraph.graphZones; - Long[] dataArray = !itemData.isBz() ? itemData.ah.keySet().toArray(new Long[0]) : itemData.bz.keySet().toArray(new Long[0]); + Long[] dataArray = + !itemData.isBz() ? itemData.ah.keySet().toArray(new Long[0]) : itemData.bz.keySet().toArray(new Long[0]); int prev = 0; for (int i = 0; i < zones; i++) { long lowest = (long) map(i, 0, zones, first, last); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/InventoryStorageSelector.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/InventoryStorageSelector.java index 3932c9d5..0abf3f11 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/InventoryStorageSelector.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/InventoryStorageSelector.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscgui; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/KatSitterOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/KatSitterOverlay.java index 5a763411..b22ff11f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/KatSitterOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/KatSitterOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscgui; import com.google.gson.JsonObject; @@ -62,12 +81,23 @@ public class KatSitterOverlay { int currentWidth = font.getStringWidth(currentText); String upgradedText = "Upgraded pet level: " + upgradedLevel; int upgradedWidth = font.getStringWidth(upgradedText); - int left = ((AccessorGuiContainer)gui).getGuiLeft() - 30 - (upgradedLevel == null ? Math.max(upgradedWidth, currentWidth) : currentWidth); + int left = ((AccessorGuiContainer) gui).getGuiLeft() - 30 - (upgradedLevel == null ? Math.max( + upgradedWidth, + currentWidth + ) : currentWidth); GlStateManager.disableLighting(); GlStateManager.color(1F, 1F, 1F, 1F); - Utils.drawStringScaled(currentText, font, left, ((AccessorGuiContainer)gui).getGuiTop() + 25, false, 0xFFD700, 1F); + Utils.drawStringScaled(currentText, font, left, ((AccessorGuiContainer) gui).getGuiTop() + 25, false, 0xFFD700, 1F); if (upgradedLevel != null) - Utils.drawStringScaled(upgradedText, font, left, ((AccessorGuiContainer)gui).getGuiTop() + 45, false, 0xFFD700, 1F); + Utils.drawStringScaled( + upgradedText, + font, + left, + ((AccessorGuiContainer) gui).getGuiTop() + 45, + false, + 0xFFD700, + 1F + ); } public String nextRarity(String currentRarity) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/NEUOverlayPlacements.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/NEUOverlayPlacements.java index f95302ef..ac96f527 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/NEUOverlayPlacements.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/NEUOverlayPlacements.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscgui; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/StorageOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/StorageOverlay.java index e5e0ff5c..98efa381 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/StorageOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/StorageOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscgui; import com.google.common.collect.Lists; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/TradeWindow.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/TradeWindow.java index 1f47e6ee..086b6e06 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/TradeWindow.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/TradeWindow.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscgui; import com.google.gson.JsonObject; @@ -560,7 +579,12 @@ public class TradeWindow { int y = 104 + 18 * (index / 9); if (index < 9) y = 180; - ((AccessorGuiContainer)chest).doDrawSlot(new Slot(Minecraft.getMinecraft().thePlayer.inventory, index, guiLeft + x, guiTop + y)); + ((AccessorGuiContainer) chest).doDrawSlot(new Slot( + Minecraft.getMinecraft().thePlayer.inventory, + index, + guiLeft + x, + guiTop + y + )); int col = 0x80ffffff; if (SlotLocking.getInstance().isSlotIndexLocked(index)) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/tutorials/NeuConfigTutorial.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/tutorials/NeuConfigTutorial.java index 938f3f98..6a2602f8 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/tutorials/NeuConfigTutorial.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/tutorials/NeuConfigTutorial.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscgui.tutorials; public class NeuConfigTutorial extends TutorialBase { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/tutorials/NeuTutorial.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/tutorials/NeuTutorial.java index 24c6bb7f..c0a5d8c8 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/tutorials/NeuTutorial.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/tutorials/NeuTutorial.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscgui.tutorials; import net.minecraft.client.Minecraft; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/tutorials/TutorialBase.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/tutorials/TutorialBase.java index 34167b3f..27172ed8 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/tutorials/TutorialBase.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/tutorials/TutorialBase.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscgui.tutorials; import com.google.gson.JsonArray; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityAgeable.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityAgeable.java index e41c12eb..d30cb9b3 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityAgeable.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityAgeable.java @@ -1,14 +1,31 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import net.minecraft.entity.EntityAgeable; -import net.minecraft.inventory.Slot; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; -import org.spongepowered.asm.mixin.gen.Invoker; @Mixin(EntityAgeable.class) public interface AccessorEntityAgeable { - @Accessor(value = "growingAge") - void setGrowingAgeDirect(int newValue); + @Accessor(value = "growingAge") + void setGrowingAgeDirect(int newValue); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityArmorStand.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityArmorStand.java index b6a3ca6e..50bbe135 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityArmorStand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorEntityArmorStand.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import net.minecraft.entity.item.EntityArmorStand; @@ -6,7 +25,7 @@ import org.spongepowered.asm.mixin.gen.Invoker; @Mixin(EntityArmorStand.class) public interface AccessorEntityArmorStand { - @Invoker(value = "setSmall") - void setSmallDirect(boolean isSmall); + @Invoker(value = "setSmall") + void setSmallDirect(boolean isSmall); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiContainer.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiContainer.java index 3966317b..a12cd9c8 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiContainer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiContainer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import net.minecraft.client.gui.inventory.GuiContainer; @@ -9,25 +28,25 @@ import org.spongepowered.asm.mixin.gen.Invoker; @Mixin(GuiContainer.class) public interface AccessorGuiContainer { - @Invoker("getSlotAtPosition") - Slot doGetSlotAtPosition(int x, int y); + @Invoker("getSlotAtPosition") + Slot doGetSlotAtPosition(int x, int y); - @Invoker("drawSlot") - void doDrawSlot(Slot slot); + @Invoker("drawSlot") + void doDrawSlot(Slot slot); - @Invoker("isMouseOverSlot") - boolean doIsMouseOverSlot(Slot slot, int x, int y); + @Invoker("isMouseOverSlot") + boolean doIsMouseOverSlot(Slot slot, int x, int y); - @Accessor("guiLeft") - int getGuiLeft(); + @Accessor("guiLeft") + int getGuiLeft(); - @Accessor("guiTop") - int getGuiTop(); + @Accessor("guiTop") + int getGuiTop(); - @Accessor("xSize") - int getXSize(); + @Accessor("xSize") + int getXSize(); - @Accessor("ySize") - int getYSize(); + @Accessor("ySize") + int getYSize(); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiEditSign.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiEditSign.java index ea945d5d..d1cd7069 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiEditSign.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiEditSign.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import net.minecraft.client.gui.inventory.GuiEditSign; @@ -7,6 +26,6 @@ import org.spongepowered.asm.mixin.gen.Accessor; @Mixin(GuiEditSign.class) public interface AccessorGuiEditSign { - @Accessor("tileSign") - TileEntitySign getTileSign(); + @Accessor("tileSign") + TileEntitySign getTileSign(); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiPlayerTabOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiPlayerTabOverlay.java index 530e3013..0189e2fc 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiPlayerTabOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorGuiPlayerTabOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import net.minecraft.client.gui.GuiPlayerTabOverlay; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorMinecraft.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorMinecraft.java index 0277a18b..6d8c941c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorMinecraft.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/AccessorMinecraft.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import net.minecraft.client.Minecraft; @@ -9,6 +28,6 @@ import java.util.List; @Mixin(Minecraft.class) public interface AccessorMinecraft { - @Accessor(value = "defaultResourcePacks") - List onGetDefaultResourcePacks(); + @Accessor(value = "defaultResourcePacks") + List onGetDefaultResourcePacks(); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinAbstractClientPlayer.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinAbstractClientPlayer.java index 5c81c758..685528e0 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinAbstractClientPlayer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinAbstractClientPlayer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.miscfeatures.NPCRetexturing; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinContainer.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinContainer.java index 80d79712..53643fb0 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinContainer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinContainer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.miscfeatures.EnchantingSolvers; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEffectRenderer.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEffectRenderer.java index 8d0b291a..451fff3a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEffectRenderer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEffectRenderer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.miscfeatures.CustomItemEffects; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntity.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntity.java index 86995647..39951ba4 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntity.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntity.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import net.minecraft.entity.Entity; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityAgeable.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityAgeable.java index 801b9041..d9b60a13 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityAgeable.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityAgeable.java @@ -1,9 +1,27 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import net.minecraft.entity.EntityAgeable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityHorse.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityHorse.java index fe88922e..50eb15ba 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityHorse.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityHorse.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import net.minecraft.entity.passive.EntityHorse; @@ -8,10 +27,10 @@ import org.spongepowered.asm.mixin.injection.Redirect; @Mixin(EntityHorse.class) public class MixinEntityHorse { - @Redirect(method = "updateHorseSlots", at = @At(value = "FIELD", target = "Lnet/minecraft/world/World;isRemote:Z")) - public boolean onUpdateHorseSlots(World instance) { - if (instance == null) - return true; - return instance.isRemote; - } + @Redirect(method = "updateHorseSlots", at = @At(value = "FIELD", target = "Lnet/minecraft/world/World;isRemote:Z")) + public boolean onUpdateHorseSlots(World instance) { + if (instance == null) + return true; + return instance.isRemote; + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityPlayer.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityPlayer.java index 280e964e..573b2ad5 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityPlayer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityPlayer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.cosmetics.CapeManager; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityPlayerSP.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityPlayerSP.java index 573eac22..765ed372 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityPlayerSP.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityPlayerSP.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.miscfeatures.SlotLocking; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityRenderer.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityRenderer.java index ab448660..12ff1cb4 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityRenderer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntityRenderer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.miscfeatures.CustomItemEffects; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntitySkeleton.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntitySkeleton.java index 54fe53f3..49c7ccb2 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntitySkeleton.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinEntitySkeleton.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import net.minecraft.entity.monster.EntitySkeleton; @@ -8,10 +27,10 @@ import org.spongepowered.asm.mixin.injection.Redirect; @Mixin(EntitySkeleton.class) public class MixinEntitySkeleton { - @Redirect(method = "setCurrentItemOrArmor", at = @At(value = "FIELD", target = "Lnet/minecraft/world/World;isRemote:Z")) - public boolean onSetCurrentItemOrArmor(World instance) { - if (instance == null) - return true; - return instance.isRemote; - } + @Redirect(method = "setCurrentItemOrArmor", at = @At(value = "FIELD", target = "Lnet/minecraft/world/World;isRemote:Z")) + public boolean onSetCurrentItemOrArmor(World instance) { + if (instance == null) + return true; + return instance.isRemote; + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiChest.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiChest.java index c0d5627d..1b6b5c61 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiChest.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiChest.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.miscfeatures.BetterContainers; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiContainer.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiContainer.java index 9f7d8528..e3741ac7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiContainer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiContainer.java @@ -1,9 +1,33 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.NEUOverlay; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.listener.RenderListener; -import io.github.moulberry.notenoughupdates.miscfeatures.*; +import io.github.moulberry.notenoughupdates.miscfeatures.AuctionBINWarning; +import io.github.moulberry.notenoughupdates.miscfeatures.AuctionSortModeWarning; +import io.github.moulberry.notenoughupdates.miscfeatures.BetterContainers; +import io.github.moulberry.notenoughupdates.miscfeatures.EnchantingSolvers; +import io.github.moulberry.notenoughupdates.miscfeatures.PetInfoOverlay; +import io.github.moulberry.notenoughupdates.miscfeatures.SlotLocking; import io.github.moulberry.notenoughupdates.miscgui.GuiCustomEnchant; import io.github.moulberry.notenoughupdates.miscgui.StorageOverlay; import io.github.moulberry.notenoughupdates.util.Utils; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiIngame.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiIngame.java index 7f7f25c8..3856e2d5 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiIngame.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiIngame.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiInventory.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiInventory.java index 7b225d50..bd712ec7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiInventory.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiInventory.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiScreen.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiScreen.java index eac2b2d5..b978b433 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiScreen.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiScreen.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.util.SBInfo; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinInventoryEffectRenderer.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinInventoryEffectRenderer.java index fb5707fe..dbcb260d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinInventoryEffectRenderer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinInventoryEffectRenderer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinInventoryPlayer.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinInventoryPlayer.java index 345b5171..de117002 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinInventoryPlayer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinInventoryPlayer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.miscfeatures.SlotLocking; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinItemCameraTransforms.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinItemCameraTransforms.java index da2b2e08..bbe0f842 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinItemCameraTransforms.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinItemCameraTransforms.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.miscfeatures.CustomSkulls; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinItemRenderer.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinItemRenderer.java index d691b79f..c2739ad8 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinItemRenderer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinItemRenderer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.miscgui.InventoryStorageSelector; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinItemStack.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinItemStack.java index 25109704..83379a18 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinItemStack.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinItemStack.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.miscfeatures.ItemCustomizeManager; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinLayerArmorBase.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinLayerArmorBase.java index a085c5d1..773e7ebe 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinLayerArmorBase.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinLayerArmorBase.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.core.ChromaColour; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinLayerCustomHead.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinLayerCustomHead.java index a2785ec7..90101696 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinLayerCustomHead.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinLayerCustomHead.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import com.mojang.authlib.GameProfile; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinMinecraft.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinMinecraft.java index 8708afd8..abc9d8c6 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinMinecraft.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinMinecraft.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.miscfeatures.SlotLocking; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinMouseHelper.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinMouseHelper.java index ff71ad1e..a89893b9 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinMouseHelper.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinMouseHelper.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.listener.RenderListener; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinNetHandlerPlayClient.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinNetHandlerPlayClient.java index f7baffd6..abc8c2a2 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinNetHandlerPlayClient.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinNetHandlerPlayClient.java @@ -1,13 +1,43 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; -import io.github.moulberry.notenoughupdates.miscfeatures.*; +import io.github.moulberry.notenoughupdates.miscfeatures.CrystalWishingCompassSolver; +import io.github.moulberry.notenoughupdates.miscfeatures.CustomItemEffects; +import io.github.moulberry.notenoughupdates.miscfeatures.EnchantingSolvers; +import io.github.moulberry.notenoughupdates.miscfeatures.FishingHelper; +import io.github.moulberry.notenoughupdates.miscfeatures.ItemCooldowns; +import io.github.moulberry.notenoughupdates.miscfeatures.MiningStuff; +import io.github.moulberry.notenoughupdates.miscfeatures.StorageManager; import io.github.moulberry.notenoughupdates.util.SBInfo; import net.minecraft.client.multiplayer.WorldClient; import net.minecraft.client.network.NetHandlerPlayClient; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.network.Packet; import net.minecraft.network.play.client.C0EPacketClickWindow; -import net.minecraft.network.play.server.*; +import net.minecraft.network.play.server.S23PacketBlockChange; +import net.minecraft.network.play.server.S2DPacketOpenWindow; +import net.minecraft.network.play.server.S2EPacketCloseWindow; +import net.minecraft.network.play.server.S2FPacketSetSlot; +import net.minecraft.network.play.server.S30PacketWindowItems; +import net.minecraft.network.play.server.S47PacketPlayerListHeaderFooter; import net.minecraft.util.EnumParticleTypes; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -47,7 +77,8 @@ public class MixinNetHandlerPlayClient { double xCoord, double yCoord, double zCoord, double xOffset, double yOffset, double zOffset, int[] params ) { - CrystalWishingCompassSolver.getInstance().onSpawnParticle(particleTypes, + CrystalWishingCompassSolver.getInstance().onSpawnParticle( + particleTypes, xCoord, yCoord, zCoord diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinPlayerControllerMP.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinPlayerControllerMP.java index b4481a73..fc8fee02 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinPlayerControllerMP.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinPlayerControllerMP.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.events.OnBlockBreakSoundEffect; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRender.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRender.java index 14aad887..db35fcb9 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRender.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRender.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderFish.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderFish.java index 9e989311..ca40c5e7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderFish.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderFish.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -178,4 +197,4 @@ public abstract class MixinRenderFish extends Render { private static double mathLerp(double var1, double var2, double var3) { return var2 + var1 * (var3 - var2); } -} \ No newline at end of file +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderGlobal.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderGlobal.java index fc3347bf..30c6b36e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderGlobal.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderGlobal.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.cosmetics.CapeManager; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderItem.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderItem.java index 6c432ce3..4f193c98 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderItem.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderItem.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.NEUOverlay; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderList.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderList.java index 8c1cc247..e7782bcd 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderList.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderList.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.dungeons.DungeonBlocks; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRendererLivingEntity.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRendererLivingEntity.java index 16c6c99c..5503c8cf 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRendererLivingEntity.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRendererLivingEntity.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinTextureManager.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinTextureManager.java index de6d1537..d8a48ecd 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinTextureManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinTextureManager.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.miscfeatures.ItemCustomizeManager; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinTileEntitySkullRenderer.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinTileEntitySkullRenderer.java index 71750fec..0b70f790 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinTileEntitySkullRenderer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinTileEntitySkullRenderer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import com.mojang.authlib.GameProfile; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinTileEntitySpecialRenderer.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinTileEntitySpecialRenderer.java index f93608b1..2f342614 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinTileEntitySpecialRenderer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinTileEntitySpecialRenderer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinVboRenderList.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinVboRenderList.java index 73cb19d3..22448944 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinVboRenderList.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinVboRenderList.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.dungeons.DungeonBlocks; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinWorld.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinWorld.java index 86073984..b738359a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinWorld.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinWorld.java @@ -1,8 +1,27 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; -import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.CustomBiomes; import io.github.moulberry.notenoughupdates.miscfeatures.CustomItemEffects; +import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.CustomBiomes; import net.minecraft.util.BlockPos; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinWorldClient.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinWorldClient.java index b20ff8fd..84e6da86 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinWorldClient.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinWorldClient.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.mixins; import io.github.moulberry.notenoughupdates.miscfeatures.FishingHelper; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java b/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java index d9cc77e3..237a76ca 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options; import com.google.common.collect.Lists; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfigEditor.java b/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfigEditor.java index 43c04698..17bc57e9 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfigEditor.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfigEditor.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options; import com.google.common.collect.Lists; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/customtypes/NEUDebugFlag.java b/src/main/java/io/github/moulberry/notenoughupdates/options/customtypes/NEUDebugFlag.java index 5b3188d6..8e0e4c11 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/customtypes/NEUDebugFlag.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/customtypes/NEUDebugFlag.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.customtypes; public enum NEUDebugFlag { @@ -8,5 +27,5 @@ public enum NEUDebugFlag { public static final String FLAG_LIST = "METAL - Metal Detector Solver\n" + - "WISHING - Wishing Compass Solver"; + "WISHING - Wishing Compass Solver"; } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AHGraph.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AHGraph.java index ad96f744..ce931392 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AHGraph.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AHGraph.java @@ -1,7 +1,31 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorColour; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDropdown; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorKeybind; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorSlider; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; import org.lwjgl.input.Keyboard; public class AHGraph { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AHTweaks.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AHTweaks.java index c4651b02..7c8446b0 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AHTweaks.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AHTweaks.java @@ -1,7 +1,30 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigAccordionId; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorAccordion; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorSlider; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; public class AHTweaks { @ConfigOption( diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AccessoryBag.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AccessoryBag.java index 5e1d58c1..b87db1d6 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AccessoryBag.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AccessoryBag.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ApiData.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ApiData.java index 6121e189..3fc72db5 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ApiData.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ApiData.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Calendar.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Calendar.java index cd2fb53f..fe593f56 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Calendar.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Calendar.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/CustomArmour.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/CustomArmour.java index edfd2276..60d8e5ef 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/CustomArmour.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/CustomArmour.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java index 03465db7..8e211bd6 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Dungeons.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Dungeons.java index d1d36e9a..1c825cdf 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Dungeons.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Dungeons.java @@ -1,7 +1,34 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigAccordionId; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorAccordion; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorButton; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorColour; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDropdown; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorFSR; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorSlider; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; public class Dungeons { @ConfigOption( diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Enchanting.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Enchanting.java index e9add7b4..7a49f7c2 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Enchanting.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Enchanting.java @@ -1,7 +1,30 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigAccordionId; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorAccordion; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDropdown; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; public class Enchanting { @ConfigOption( diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Fishing.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Fishing.java index 9d1367b0..e02413f7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Fishing.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Fishing.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ImprovedSBMenu.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ImprovedSBMenu.java index 60058280..8216c892 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ImprovedSBMenu.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ImprovedSBMenu.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/InventoryButtons.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/InventoryButtons.java index 6826302a..685aeb98 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/InventoryButtons.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/InventoryButtons.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ItemOverlays.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ItemOverlays.java index 9298623b..7cf56c96 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ItemOverlays.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ItemOverlays.java @@ -1,8 +1,35 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; import io.github.moulberry.notenoughupdates.core.config.Position; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigAccordionId; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorAccordion; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorButton; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorColour; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDraggableList; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDropdown; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorSlider; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Itemlist.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Itemlist.java index db154c24..c83f370f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Itemlist.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Itemlist.java @@ -1,7 +1,30 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorColour; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDropdown; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorSlider; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; public class Itemlist { @Expose diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/LocationEdit.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/LocationEdit.java index 462fbd92..42316592 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/LocationEdit.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/LocationEdit.java @@ -1,8 +1,30 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; import io.github.moulberry.notenoughupdates.core.config.Position; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigAccordionId; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorAccordion; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorButton; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; public class LocationEdit { @Expose diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Mining.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Mining.java index 697cabf3..2f31261d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Mining.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Mining.java @@ -1,8 +1,34 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; import io.github.moulberry.notenoughupdates.core.config.Position; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigAccordionId; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorAccordion; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorButton; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDraggableList; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDropdown; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorSlider; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java index a04a51f9..c0f4e8c9 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/MiscOverlays.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/MiscOverlays.java index 616e8188..e56da32f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/MiscOverlays.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/MiscOverlays.java @@ -1,8 +1,33 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; import io.github.moulberry.notenoughupdates.core.config.Position; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigAccordionId; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorAccordion; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorButton; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDraggableList; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDropdown; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; import java.util.ArrayList; import java.util.Arrays; @@ -166,13 +191,13 @@ public class MiscOverlays { @Expose @ConfigOption( - name = "Daily Heavy Pearl Display", - desc = "Change the way the daily heavy pearl displays\n" + - "Only when ready, When very Soon, When soon, When kinda soon or always." + name = "Daily Heavy Pearl Display", + desc = "Change the way the daily heavy pearl displays\n" + + "Only when ready, When very Soon, When soon, When kinda soon or always." ) @ConfigAccordionId(id = 1) @ConfigEditorDropdown( - values = {"Only when ready", "When very Soon", "When soon", "When Kinda Soon", "Always"} + values = {"Only when ready", "When very Soon", "When soon", "When Kinda Soon", "Always"} ) public int dailyHeavyPearlDisplay = 0; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/NeuAuctionHouse.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/NeuAuctionHouse.java index 25efd693..44f3454a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/NeuAuctionHouse.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/NeuAuctionHouse.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Notifications.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Notifications.java index bcdee28a..353cd36d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Notifications.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Notifications.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/PetOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/PetOverlay.java index 9cba8202..353c4e08 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/PetOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/PetOverlay.java @@ -1,8 +1,31 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; import io.github.moulberry.notenoughupdates.core.config.Position; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorButton; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDraggableList; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDropdown; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ProfileViewer.java index 04fe6e6b..5d3b6532 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ProfileViewer.java @@ -1,7 +1,30 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorButton; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDraggableList; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorFSR; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/SkillOverlays.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/SkillOverlays.java index acdfbe54..54e17fcf 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/SkillOverlays.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/SkillOverlays.java @@ -1,8 +1,36 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; import io.github.moulberry.notenoughupdates.core.config.Position; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigAccordionId; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorAccordion; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorButton; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDraggableList; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDropdown; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorFSR; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorKeybind; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorSlider; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; import org.lwjgl.input.Keyboard; import java.util.ArrayList; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/SlayerOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/SlayerOverlay.java index 220b992b..927d00e5 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/SlayerOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/SlayerOverlay.java @@ -1,8 +1,32 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; import io.github.moulberry.notenoughupdates.core.config.Position; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorButton; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDraggableList; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDropdown; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorFSR; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/SlotLocking.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/SlotLocking.java index c86708bb..22286808 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/SlotLocking.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/SlotLocking.java @@ -1,7 +1,30 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorFSR; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorKeybind; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorSlider; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; import org.lwjgl.input.Keyboard; public class SlotLocking { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/StorageGUI.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/StorageGUI.java index bdc9ee1b..e43fa5cf 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/StorageGUI.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/StorageGUI.java @@ -1,7 +1,34 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigAccordionId; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorAccordion; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorColour; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDropdown; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorFSR; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorKeybind; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorSlider; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; import org.lwjgl.input.Keyboard; public class StorageGUI { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Toolbar.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Toolbar.java index 741b57e5..7d2f4fc4 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Toolbar.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Toolbar.java @@ -1,7 +1,32 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigAccordionId; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorAccordion; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorButton; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDropdown; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorSlider; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; public class Toolbar { @Expose diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/TooltipTweaks.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/TooltipTweaks.java index 79a107b7..d1660e68 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/TooltipTweaks.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/TooltipTweaks.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/TradeMenu.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/TradeMenu.java index d6f0808f..d2b4e0bb 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/TradeMenu.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/TradeMenu.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java index f36c0958..a493d201 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.overlays; import com.google.common.base.Splitter; @@ -25,7 +44,11 @@ import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; -import java.util.*; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicInteger; @@ -36,7 +59,8 @@ public class AuctionSearchOverlay { private static final ResourceLocation SEARCH_OVERLAY_TEXTURE_TAB_COMPLETED = new ResourceLocation( "notenoughupdates:auc_search/ah_search_overlay_tab_completed.png"); private static final ResourceLocation STAR = new ResourceLocation("notenoughupdates:auc_search/star.png"); - private static final ResourceLocation MASTER_STAR = new ResourceLocation("notenoughupdates:auc_search/master_star.png"); + private static final ResourceLocation MASTER_STAR = + new ResourceLocation("notenoughupdates:auc_search/master_star.png"); private static final ResourceLocation STAR_BOARD = new ResourceLocation("notenoughupdates:auc_search/star_board.png"); private static final GuiElementTextField textField = new GuiElementTextField("", 200, 20, 0); @@ -135,7 +159,12 @@ public class AuctionSearchOverlay { if (selectedStars < 6) Gui.drawRect(width / 2 + 106, topY + 42, width / 2 + 115, topY + 51, 0xffffffff); if (selectedStars < 6) Gui.drawRect(width / 2 + 107, topY + 43, width / 2 + 114, topY + 50, 0xff000000); if (atLeast && selectedStars < 6) Gui.drawRect(width / 2 + 108, topY + 44, width / 2 + 113, topY + 49, 0xffffffff); - if (selectedStars < 6) Minecraft.getMinecraft().fontRendererObj.drawString("At Least?", width / 2 + 117, topY + 43, 0xffffff); + if (selectedStars < 6) Minecraft.getMinecraft().fontRendererObj.drawString( + "At Least?", + width / 2 + 117, + topY + 43, + 0xffffff + ); Minecraft.getMinecraft().fontRendererObj.drawString("Enter Query:", width / 2 - 100, topY - 10, 0xdddddd, true); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/BonemerangOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/BonemerangOverlay.java index aa8a15ce..e8447699 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/BonemerangOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/BonemerangOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.overlays; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -14,7 +33,11 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.Vec3; import org.lwjgl.util.vector.Vector3f; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Set; import java.util.function.Supplier; public class BonemerangOverlay extends TextOverlay { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/CombatSkillOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/CombatSkillOverlay.java index 6d46dfd6..250be27d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/CombatSkillOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/CombatSkillOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.overlays; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -255,4 +274,4 @@ public class CombatSkillOverlay if (overlayStrings != null && overlayStrings.isEmpty()) overlayStrings = null; } } -} \ No newline at end of file +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/CrystalHollowOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/CrystalHollowOverlay.java index ea190323..aae5d028 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/CrystalHollowOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/CrystalHollowOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.overlays; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -16,7 +35,10 @@ import net.minecraft.util.EnumChatFormatting; import org.lwjgl.util.vector.Vector2f; import java.text.DecimalFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.function.Supplier; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -79,11 +101,14 @@ public class CrystalHollowOverlay extends TextOverlay { Matcher hotmCrystalNotPlacedMatcher = hotmCrystalNotPlacedPattern.matcher(cleanLine); Matcher hotmCrystalNotFoundMatcher = hotmCrystalNotFoundPattern.matcher(cleanLine); Matcher hotmCrystalPlacedMatcher = hotmCrystalPlacedPattern.matcher(cleanLine); - if (hotmCrystalNotFoundMatcher.matches() && perProfileConfig.crystals.containsKey(hotmCrystalNotFoundMatcher.group("crystal"))) { + if (hotmCrystalNotFoundMatcher.matches() && + perProfileConfig.crystals.containsKey(hotmCrystalNotFoundMatcher.group("crystal"))) { perProfileConfig.crystals.put(hotmCrystalNotFoundMatcher.group("crystal"), 0); - } else if (hotmCrystalNotPlacedMatcher.matches() && perProfileConfig.crystals.containsKey(hotmCrystalNotPlacedMatcher.group("crystal"))) { + } else if (hotmCrystalNotPlacedMatcher.matches() && perProfileConfig.crystals.containsKey( + hotmCrystalNotPlacedMatcher.group("crystal"))) { perProfileConfig.crystals.put(hotmCrystalNotPlacedMatcher.group("crystal"), 1); - } else if (hotmCrystalPlacedMatcher.matches() && perProfileConfig.crystals.containsKey(hotmCrystalPlacedMatcher.group("crystal"))) { + } else if (hotmCrystalPlacedMatcher.matches() && + perProfileConfig.crystals.containsKey(hotmCrystalPlacedMatcher.group("crystal"))) { perProfileConfig.crystals.put(hotmCrystalPlacedMatcher.group("crystal"), 2); } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/FarmingOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/FarmingOverlay.java index bbab59cb..970c74ab 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/FarmingOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/FarmingOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.overlays; import com.google.gson.JsonObject; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/FishingSkillOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/FishingSkillOverlay.java index 6f7b21d8..717ff944 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/FishingSkillOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/FishingSkillOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.overlays; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -402,4 +421,4 @@ public class FishingSkillOverlay if (overlayStrings != null && overlayStrings.isEmpty()) overlayStrings = null; } } -} \ No newline at end of file +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/FuelBar.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/FuelBar.java index fa2db8b5..d180efcf 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/FuelBar.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/FuelBar.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.overlays; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/MiningOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/MiningOverlay.java index 96864391..5dda0d85 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/MiningOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/MiningOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.overlays; import com.google.common.collect.ComparisonChain; @@ -26,12 +45,24 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import org.lwjgl.util.vector.Vector2f; -import java.util.*; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; import java.util.function.Supplier; import java.util.regex.Matcher; import java.util.regex.Pattern; -import static net.minecraft.util.EnumChatFormatting.*; +import static net.minecraft.util.EnumChatFormatting.BLUE; +import static net.minecraft.util.EnumChatFormatting.BOLD; +import static net.minecraft.util.EnumChatFormatting.DARK_AQUA; +import static net.minecraft.util.EnumChatFormatting.GOLD; +import static net.minecraft.util.EnumChatFormatting.GREEN; +import static net.minecraft.util.EnumChatFormatting.RED; +import static net.minecraft.util.EnumChatFormatting.RESET; +import static net.minecraft.util.EnumChatFormatting.YELLOW; public class MiningOverlay extends TextOverlay { public MiningOverlay( @@ -219,7 +250,7 @@ public class MiningOverlay extends TextOverlay { // Get commission and forge info even if the overlay isn't going to be rendered since it is used elsewhere //thanks to "Pure Genie#7250" for helping with this (makes tita alert and waypoints work without mine overlay) - if(SBInfo.getInstance().getLocation() == null) return; + if (SBInfo.getInstance().getLocation() == null) return; if (SBInfo.getInstance().getLocation().equals("mining_3") || SBInfo.getInstance().getLocation().equals("crystal_hollows")) { commissionProgress.clear(); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/MiningSkillOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/MiningSkillOverlay.java index fb7cdab5..a20b1d27 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/MiningSkillOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/MiningSkillOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.overlays; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -358,4 +377,4 @@ public class MiningSkillOverlay if (overlayStrings != null && overlayStrings.isEmpty()) overlayStrings = null; } } -} \ No newline at end of file +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/OverlayManager.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/OverlayManager.java index 8c25594e..c1a1c848 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/OverlayManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/OverlayManager.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.overlays; import com.google.common.collect.Lists; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/RancherBootOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/RancherBootOverlay.java index 9661812f..2a30f6f1 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/RancherBootOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/RancherBootOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.overlays; import io.github.moulberry.notenoughupdates.core.GuiElementTextField; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/SlayerOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/SlayerOverlay.java index e2b22b82..00e13016 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/SlayerOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/SlayerOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.overlays; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -8,7 +27,11 @@ import net.minecraft.client.Minecraft; import net.minecraft.util.EnumChatFormatting; import java.text.NumberFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; import java.util.function.Supplier; public class SlayerOverlay extends TextOverlay { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/TextOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/TextOverlay.java index 5fe066f2..f8e02fef 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/TextOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/TextOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.overlays; import io.github.moulberry.notenoughupdates.core.config.Position; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/TextOverlayStyle.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/TextOverlayStyle.java index 4a3a2b73..2ccc3ace 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/TextOverlayStyle.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/TextOverlayStyle.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.overlays; public enum TextOverlayStyle { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/TimersOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/TimersOverlay.java index 0454044f..5510023c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/TimersOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/TimersOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.overlays; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -805,6 +824,7 @@ public class TimersOverlay extends TextOverlay { public static int beforePearls = -1; public static int afterPearls = -1; public static int availablePearls = -1; + public static int heavyPearlCount() { int heavyPearls = 0; @@ -827,12 +847,12 @@ public class TimersOverlay extends TextOverlay { } public static void processActionBar(String msg) { - if(SBInfo.getInstance().location.equals("Belly of the Beast")) { + if (SBInfo.getInstance().location.equals("Belly of the Beast")) { try { msg = Utils.cleanColour(msg); - msg = msg.substring(msg.indexOf("Pearls Collected: ")+18); - availablePearls = Integer.parseInt(msg.substring(msg.indexOf("/")+1)); - } catch(Exception e) { + msg = msg.substring(msg.indexOf("Pearls Collected: ") + 18); + availablePearls = Integer.parseInt(msg.substring(msg.indexOf("/") + 1)); + } catch (Exception e) { e.printStackTrace(); } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BingoPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BingoPage.java index 0d03f297..dfcbb007 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BingoPage.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BingoPage.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.profileviewer; import com.google.gson.JsonArray; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java index ee73f66f..ba3b97f8 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.profileviewer; import com.google.common.base.Splitter; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/Panorama.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/Panorama.java index a2d297f5..ed7eb55d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/Panorama.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/Panorama.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.profileviewer; import io.github.moulberry.notenoughupdates.util.TexLoc; @@ -27,7 +46,6 @@ public class Panorama { private static int lastWidth = 0; private static int lastHeight = 0; - private static final HashMap panoramasMap = new HashMap<>(); public static synchronized ResourceLocation[] getPanoramasForLocation(String location, String identifier) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java index 6535a99a..4865830c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.profileviewer; import com.google.gson.JsonArray; @@ -247,6 +266,7 @@ public class PlayerStats { return 0; } } + private static float hotmFortune(JsonObject profile, JsonObject skillInfo) { int miningLevelFortune = (int) (4 * (float) Math.floor(Utils.getElementAsFloat(Utils.getElement(skillInfo, "level_skill_mining"), 0))); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java index 95acb7d8..5ed84b03 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.profileviewer; import com.google.gson.JsonArray; @@ -239,10 +258,13 @@ public class ProfileViewer { ); put("INK_SACK", Utils.createItemStack(Items.dye, EnumChatFormatting.AQUA + "Ink Sack")); put("SPONGE", Utils.createItemStack(Item.getItemFromBlock(Blocks.sponge), EnumChatFormatting.AQUA + "Sponge")); - put("MAGMA_FISH", - Utils.createSkull(EnumChatFormatting.AQUA + "Magmafish", - "5c53195c-5b98-3476-9731-c32647b22723", - "ewogICJ0aW1lc3RhbXAiIDogMTY0MjQ4ODA3MDY2NiwKICAicHJvZmlsZUlkIiA6ICIzNDkxZjJiOTdjMDE0MWE2OTM2YjFjMjJhMmEwMGZiNyIsCiAgInByb2ZpbGVOYW1lIiA6ICJKZXNzc3N1aGgiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjU2YjU5NTViMjk1NTIyYzk2ODk0ODE5NjBjMDFhOTkyY2ExYzc3NTRjZjRlZTMxM2M4ZGQwYzM1NmQzMzVmIgogICAgfQogIH0KfQ") + put( + "MAGMA_FISH", + Utils.createSkull( + EnumChatFormatting.AQUA + "Magmafish", + "5c53195c-5b98-3476-9731-c32647b22723", + "ewogICJ0aW1lc3RhbXAiIDogMTY0MjQ4ODA3MDY2NiwKICAicHJvZmlsZUlkIiA6ICIzNDkxZjJiOTdjMDE0MWE2OTM2YjFjMjJhMmEwMGZiNyIsCiAgInByb2ZpbGVOYW1lIiA6ICJKZXNzc3N1aGgiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjU2YjU5NTViMjk1NTIyYzk2ODk0ODE5NjBjMDFhOTkyY2ExYzc3NTRjZjRlZTMxM2M4ZGQwYzM1NmQzMzVmIgogICAgfQogIH0KfQ" + ) ); }}; private static final AtomicBoolean updatingResourceCollection = new AtomicBoolean(false); @@ -1287,7 +1309,8 @@ public class ProfileViewer { } } for (JsonObject current_member_info : coopMembers) { - if (!current_member_info.has("crafted_generators") || !current_member_info.get("crafted_generators").isJsonArray()) continue; + if (!current_member_info.has("crafted_generators") || + !current_member_info.get("crafted_generators").isJsonArray()) continue; JsonArray crafted_generators = Utils.getElement(current_member_info, "crafted_generators").getAsJsonArray(); for (int j = 0; j < crafted_generators.size(); j++) { String unlocked = crafted_generators.get(j).getAsString(); @@ -1365,7 +1388,7 @@ public class ProfileViewer { } public PlayerStats.Stats getStats(String profileId) { - if(stats.get(profileId) != null) return stats.get(profileId); + if (stats.get(profileId) != null) return stats.get(profileId); JsonObject profileInfo = getProfileInformation(profileId); if (profileInfo == null) { return null; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingOverlay.java index 45675945..004ea372 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingOverlay.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.recipes; import io.github.moulberry.notenoughupdates.NEUManager; @@ -50,10 +69,10 @@ public class CraftingOverlay { ) { forEachSlot(chest, (recipeIngredient, slot) -> { if (Utils.isWithinRect( - mouseX, mouseY, - slot.xDisplayPosition + ((AccessorGuiContainer) gui).getGuiLeft(), - slot.yDisplayPosition + ((AccessorGuiContainer) gui).getGuiTop(), - 16, 16 + mouseX, mouseY, + slot.xDisplayPosition + ((AccessorGuiContainer) gui).getGuiLeft(), + slot.yDisplayPosition + ((AccessorGuiContainer) gui).getGuiTop(), + 16, 16 )) block.accept(recipeIngredient, slot); }); @@ -81,9 +100,9 @@ public class CraftingOverlay { if (currentRecipe.getCraftText() != null) { FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; fontRenderer.drawStringWithShadow( - currentRecipe.getCraftText(), - Utils.peekGuiScale().getScaledWidth() / 2f - fontRenderer.getStringWidth(currentRecipe.getCraftText()) / 2f, - ((AccessorGuiContainer) guiChest).getGuiTop() - 15f, 0x808080 + currentRecipe.getCraftText(), + Utils.peekGuiScale().getScaledWidth() / 2f - fontRenderer.getStringWidth(currentRecipe.getCraftText()) / 2f, + ((AccessorGuiContainer) guiChest).getGuiTop() - 15f, 0x808080 ); } renderTooltip(guiChest, chest); @@ -141,8 +160,8 @@ public class CraftingOverlay { } private void drawItemStack(GuiChest gui, Slot slot, ItemStack item) { - int slotX = slot.xDisplayPosition + ((AccessorGuiContainer)gui).getGuiLeft(); - int slotY = slot.yDisplayPosition + ((AccessorGuiContainer)gui).getGuiTop(); + int slotX = slot.xDisplayPosition + ((AccessorGuiContainer) gui).getGuiLeft(); + int slotY = slot.yDisplayPosition + ((AccessorGuiContainer) gui).getGuiTop(); Gui.drawRect(slotX, slotY, slotX + 16, slotY + 16, 0x64ff0000); if (item != null) Utils.drawItemStack(item, slotX, slotY); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingRecipe.java index 79f349fa..a642187b 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/CraftingRecipe.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.recipes; import com.google.common.collect.Sets; @@ -17,135 +36,136 @@ import java.util.Set; public class CraftingRecipe implements NeuRecipe { - public static final ResourceLocation BACKGROUND = new ResourceLocation("notenoughupdates","textures/gui/crafting_table_tall.png"); - - private static final int EXTRA_STRING_X = 132; - private static final int EXTRA_STRING_Y = 50; - - private final NEUManager manager; - private final Ingredient[] inputs; - private final String extraText; - private final Ingredient outputIngredient; - private List slots; - - public CraftingRecipe(NEUManager manager, Ingredient[] inputs, Ingredient output, String extra) { - this.manager = manager; - this.inputs = inputs; - this.outputIngredient = output; - this.extraText = extra; - if (inputs.length != 9) - throw new IllegalArgumentException("Cannot construct crafting recipe with non standard crafting grid size"); - } - - @Override - public Set getIngredients() { - Set ingredients = Sets.newHashSet(inputs); - ingredients.remove(null); - return ingredients; - } - - @Override - public RecipeType getType() { - return RecipeType.CRAFTING; - } - - @Override - public boolean hasVariableCost() { - return false; - } - - @Override - public Set getOutputs() { - return Collections.singleton(getOutput()); - } - - public Ingredient getOutput() { - return outputIngredient; - } - - public Ingredient[] getInputs() { - return inputs; - } - - - @Override - public List getSlots() { - if (slots != null) return slots; - slots = new ArrayList<>(); - for (int x = 0; x < 3; x++) { - for (int y = 0; y < 3; y++) { - Ingredient input = inputs[x + y * 3]; - if (input == null) continue; - ItemStack item = input.getItemStack(); - if (item == null) continue; - slots.add(new RecipeSlot(30 + x * GuiItemRecipe.SLOT_SPACING, 48 + y * GuiItemRecipe.SLOT_SPACING, item)); - } - } - slots.add(new RecipeSlot(124, 66, outputIngredient.getItemStack())); - return slots; - } - - public String getCraftText() { - return extraText; - } - - @Override - public ResourceLocation getBackground() { - return BACKGROUND; - } - - @Override - public void drawExtraInfo(GuiItemRecipe gui, int mouseX, int mouseY) { - FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; - - String craftingText = getCraftText(); - if (craftingText != null) - Utils.drawStringCenteredScaledMaxWidth(craftingText, fontRenderer, - gui.guiLeft + EXTRA_STRING_X, gui.guiTop + EXTRA_STRING_Y, false, 75, 0x404040); - } - - @Override - public JsonObject serialize() { - JsonObject object = new JsonObject(); - object.addProperty("type", "crafting"); - object.addProperty("count", outputIngredient.getCount()); - object.addProperty("overrideOutputId", outputIngredient.getInternalItemId()); - for (int i = 0; i < 9; i++) { - Ingredient ingredient = inputs[i]; - if (ingredient == null) continue; - String[] x = {"1", "2", "3"}; - String[] y = {"A", "B", "C"}; - String name = x[i / 3] + y[i % 3]; - object.addProperty(name, ingredient.serialize()); - } - if(extraText != null) - object.addProperty("crafttext", extraText); - return object; - } - - public static CraftingRecipe parseCraftingRecipe(NEUManager manager, JsonObject recipe, JsonObject outputItem) { - Ingredient[] craftMatrix = new Ingredient[9]; - - String[] x = {"1", "2", "3"}; - String[] y = {"A", "B", "C"}; - for (int i = 0; i < 9; i++) { - String name = y[i / 3] + x[i % 3]; - if (!recipe.has(name)) continue; - String item = recipe.get(name).getAsString(); - if (item == null || item.isEmpty()) continue; - craftMatrix[i] = new Ingredient(manager, item); - } - int resultCount = 1; - if (recipe.has("count")) - resultCount = recipe.get("count").getAsInt(); - String extra = null; - if (outputItem.has("crafttext")) - extra = outputItem.get("crafttext").getAsString(); - if (recipe.has("crafttext")) - extra = recipe.get("crafttext").getAsString(); - String outputItemId = outputItem.get("internalname").getAsString(); - if (recipe.has("overrideOutputId")) - outputItemId = recipe.get("overrideOutputId").getAsString(); - return new CraftingRecipe(manager, craftMatrix, new Ingredient(manager, outputItemId, resultCount), extra); - } + public static final ResourceLocation BACKGROUND = new ResourceLocation("notenoughupdates", + "textures/gui/crafting_table_tall.png"); + + private static final int EXTRA_STRING_X = 132; + private static final int EXTRA_STRING_Y = 50; + + private final NEUManager manager; + private final Ingredient[] inputs; + private final String extraText; + private final Ingredient outputIngredient; + private List slots; + + public CraftingRecipe(NEUManager manager, Ingredient[] inputs, Ingredient output, String extra) { + this.manager = manager; + this.inputs = inputs; + this.outputIngredient = output; + this.extraText = extra; + if (inputs.length != 9) + throw new IllegalArgumentException("Cannot construct crafting recipe with non standard crafting grid size"); + } + + @Override + public Set getIngredients() { + Set ingredients = Sets.newHashSet(inputs); + ingredients.remove(null); + return ingredients; + } + + @Override + public RecipeType getType() { + return RecipeType.CRAFTING; + } + + @Override + public boolean hasVariableCost() { + return false; + } + + @Override + public Set getOutputs() { + return Collections.singleton(getOutput()); + } + + public Ingredient getOutput() { + return outputIngredient; + } + + public Ingredient[] getInputs() { + return inputs; + } + + @Override + public List getSlots() { + if (slots != null) return slots; + slots = new ArrayList<>(); + for (int x = 0; x < 3; x++) { + for (int y = 0; y < 3; y++) { + Ingredient input = inputs[x + y * 3]; + if (input == null) continue; + ItemStack item = input.getItemStack(); + if (item == null) continue; + slots.add(new RecipeSlot(30 + x * GuiItemRecipe.SLOT_SPACING, 48 + y * GuiItemRecipe.SLOT_SPACING, item)); + } + } + slots.add(new RecipeSlot(124, 66, outputIngredient.getItemStack())); + return slots; + } + + public String getCraftText() { + return extraText; + } + + @Override + public ResourceLocation getBackground() { + return BACKGROUND; + } + + @Override + public void drawExtraInfo(GuiItemRecipe gui, int mouseX, int mouseY) { + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; + + String craftingText = getCraftText(); + if (craftingText != null) + Utils.drawStringCenteredScaledMaxWidth(craftingText, fontRenderer, + gui.guiLeft + EXTRA_STRING_X, gui.guiTop + EXTRA_STRING_Y, false, 75, 0x404040 + ); + } + + @Override + public JsonObject serialize() { + JsonObject object = new JsonObject(); + object.addProperty("type", "crafting"); + object.addProperty("count", outputIngredient.getCount()); + object.addProperty("overrideOutputId", outputIngredient.getInternalItemId()); + for (int i = 0; i < 9; i++) { + Ingredient ingredient = inputs[i]; + if (ingredient == null) continue; + String[] x = {"1", "2", "3"}; + String[] y = {"A", "B", "C"}; + String name = x[i / 3] + y[i % 3]; + object.addProperty(name, ingredient.serialize()); + } + if (extraText != null) + object.addProperty("crafttext", extraText); + return object; + } + + public static CraftingRecipe parseCraftingRecipe(NEUManager manager, JsonObject recipe, JsonObject outputItem) { + Ingredient[] craftMatrix = new Ingredient[9]; + + String[] x = {"1", "2", "3"}; + String[] y = {"A", "B", "C"}; + for (int i = 0; i < 9; i++) { + String name = y[i / 3] + x[i % 3]; + if (!recipe.has(name)) continue; + String item = recipe.get(name).getAsString(); + if (item == null || item.isEmpty()) continue; + craftMatrix[i] = new Ingredient(manager, item); + } + int resultCount = 1; + if (recipe.has("count")) + resultCount = recipe.get("count").getAsInt(); + String extra = null; + if (outputItem.has("crafttext")) + extra = outputItem.get("crafttext").getAsString(); + if (recipe.has("crafttext")) + extra = recipe.get("crafttext").getAsString(); + String outputItemId = outputItem.get("internalname").getAsString(); + if (recipe.has("overrideOutputId")) + outputItemId = recipe.get("overrideOutputId").getAsString(); + return new CraftingRecipe(manager, craftMatrix, new Ingredient(manager, outputItemId, resultCount), extra); + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/ForgeRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/ForgeRecipe.java index 7847b0b4..47eb0d11 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/ForgeRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/ForgeRecipe.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.recipes; import com.google.common.collect.Sets; @@ -15,216 +34,256 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Set; public class ForgeRecipe implements NeuRecipe { - private static final ResourceLocation BACKGROUND = new ResourceLocation("notenoughupdates", "textures/gui/forge_recipe_tall.png"); - - private static final int SLOT_IMAGE_U = 176; - private static final int SLOT_IMAGE_V = 0; - private static final int SLOT_IMAGE_SIZE = 18; - private static final int SLOT_PADDING = 1; - private static final int EXTRA_INFO_MAX_WIDTH = 75; - public static final int EXTRA_INFO_X = 132; - public static final int EXTRA_INFO_Y = 55; - - public enum ForgeType { - REFINING, ITEM_FORGING - } - - private final NEUManager manager; - private final List inputs; - private final Ingredient output; - private final int hotmLevel; - private final int timeInSeconds; // TODO: quick forge - private List slots; - - public ForgeRecipe(NEUManager manager, List inputs, Ingredient output, int durationInSeconds, int hotmLevel) { - this.manager = manager; - this.inputs = inputs; - this.output = output; - this.hotmLevel = hotmLevel; - this.timeInSeconds = durationInSeconds; - } - - public List getInputs() { - return inputs; - } - - public Ingredient getOutput() { - return output; - } - - public int getHotmLevel() { - return hotmLevel; - } - - public int getTimeInSeconds() { - return timeInSeconds; - } - - @Override - public ResourceLocation getBackground() { - return BACKGROUND; - } - - @Override - public RecipeType getType() { - return RecipeType.FORGE; - } - - @Override - public Set getIngredients() { - return Sets.newHashSet(inputs); - } - - @Override - public boolean hasVariableCost() { - return false; - } - - @Override - public Set getOutputs() { - return Collections.singleton(output); - } - - @Override - public List getSlots() { - if (slots != null) return slots; - slots = new ArrayList<>(); - for (int i = 0; i < inputs.size(); i++) { - Ingredient input = inputs.get(i); - ItemStack itemStack = input.getItemStack(); - if (itemStack == null) continue; - int[] slotCoordinates = getSlotCoordinates(i, inputs.size()); - slots.add(new RecipeSlot(slotCoordinates[0], slotCoordinates[1], itemStack)); - } - slots.add(new RecipeSlot(124, 66, output.getItemStack())); - return slots; - } - - @Override - public void drawExtraBackground(GuiItemRecipe gui, int mouseX, int mouseY) { - Minecraft.getMinecraft().getTextureManager().bindTexture(BACKGROUND); - for (int i = 0; i < inputs.size(); i++) { - int[] slotCoordinates = getSlotCoordinates(i, inputs.size()); - gui.drawTexturedModalRect( - gui.guiLeft + slotCoordinates[0] - SLOT_PADDING, gui.guiTop + slotCoordinates[1] - SLOT_PADDING, - SLOT_IMAGE_U, SLOT_IMAGE_V, - SLOT_IMAGE_SIZE, SLOT_IMAGE_SIZE); - } - } - - @Override - public void drawExtraInfo(GuiItemRecipe gui, int mouseX, int mouseY) { - FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; - if (timeInSeconds > 0) - Utils.drawStringCenteredScaledMaxWidth(formatDuration(timeInSeconds), fontRenderer, gui.guiLeft + EXTRA_INFO_X, gui.guiTop + EXTRA_INFO_Y, false, EXTRA_INFO_MAX_WIDTH, 0xff00ff); - } - - @Override - public void drawHoverInformation(GuiItemRecipe gui, int mouseX, int mouseY) { - manager.hotm.getInformationOnCurrentProfile().ifPresent(hotmTree -> { - if (timeInSeconds > 0 && gui.isWithinRect( - mouseX, mouseY, - gui.guiLeft + EXTRA_INFO_X - EXTRA_INFO_MAX_WIDTH / 2, - gui.guiTop + EXTRA_INFO_Y - 8, - EXTRA_INFO_MAX_WIDTH, 16 - )) { - int qf = hotmTree.getLevel("forge_time"); - int reducedTime = getReducedTime(qf); - if (qf > 0) { - - Utils.drawHoveringText(Arrays.asList(EnumChatFormatting.YELLOW + formatDuration(reducedTime) + " with Quick Forge (Level " + qf + ")"), mouseX, mouseY, gui.width, gui.height, 500, Minecraft.getMinecraft().fontRendererObj); - } - } - }); - } - - public int getReducedTime(int quickForgeUpgradeLevel) { - return HotmInformation.getQuickForgeMultiplier(quickForgeUpgradeLevel) * timeInSeconds / 1000; - } - - @Override - public JsonObject serialize() { - JsonObject object = new JsonObject(); - JsonArray ingredients = new JsonArray(); - for (Ingredient input : inputs) { - ingredients.add(new JsonPrimitive(input.serialize())); - } - object.addProperty("type", "forge"); - object.add("inputs", ingredients); - object.addProperty("count", output.getCount()); - object.addProperty("overrideOutputId", output.getInternalItemId()); - if (hotmLevel >= 0) - object.addProperty("hotmLevel", hotmLevel); - if (timeInSeconds >= 0) - object.addProperty("duration", timeInSeconds); - return object; - } - - static ForgeRecipe parseForgeRecipe(NEUManager manager, JsonObject recipe, JsonObject output) { - List ingredients = new ArrayList<>(); - for (JsonElement element : recipe.getAsJsonArray("inputs")) { - String ingredientString = element.getAsString(); - ingredients.add(new Ingredient(manager, ingredientString)); - } - String internalItemId = output.get("internalname").getAsString(); - if (recipe.has("overrideOutputId")) - internalItemId = recipe.get("overrideOutputId").getAsString(); - int resultCount = 1; - if (recipe.has("count")) { - resultCount = recipe.get("count").getAsInt(); - } - int duration = -1; - if (recipe.has("duration")) { - duration = recipe.get("duration").getAsInt(); - } - int hotmLevel = -1; - if (recipe.has("hotmLevel")) { - hotmLevel = recipe.get("hotmLevel").getAsInt(); - } - return new ForgeRecipe(manager, ingredients, new Ingredient(manager, internalItemId, resultCount), duration, hotmLevel); - } - - private static final int RECIPE_CENTER_X = 49; - private static final int RECIPE_CENTER_Y = 74; - private static final int SLOT_DISTANCE_FROM_CENTER = 30; - private static final int RECIPE_FALLBACK_X = 20; - private static final int RECIPE_FALLBACK_Y = 15; - - static int[] getSlotCoordinates(int slotNumber, int totalSlotCount) { - if (totalSlotCount > 8) { - return new int[]{ - RECIPE_FALLBACK_X + (slotNumber % 4) * GuiItemRecipe.SLOT_SPACING, - RECIPE_FALLBACK_Y + (slotNumber / 4) * GuiItemRecipe.SLOT_SPACING, - }; - } - if (totalSlotCount == 1) { - return new int[]{ - RECIPE_CENTER_X - GuiItemRecipe.SLOT_SIZE / 2, - RECIPE_CENTER_Y - GuiItemRecipe.SLOT_SIZE / 2 - }; - } - double rad = Math.PI * 2 * slotNumber / totalSlotCount; - int x = (int) (Math.cos(rad) * SLOT_DISTANCE_FROM_CENTER); - int y = (int) (Math.sin(rad) * SLOT_DISTANCE_FROM_CENTER); - return new int[]{RECIPE_CENTER_X + x - GuiItemRecipe.SLOT_SIZE / 2, RECIPE_CENTER_Y + y - GuiItemRecipe.SLOT_SIZE / 2}; - } - - static String formatDuration(int seconds) { - int minutes = seconds / 60; - seconds %= 60; - int hours = minutes / 60; - minutes %= 60; - int days = hours / 24; - hours %= 24; - StringBuilder sB = new StringBuilder(); - if (days != 0) sB.append(days).append("d "); - if (hours != 0) sB.append(hours).append("h "); - if (minutes != 0) sB.append(minutes).append("m "); - if (seconds != 0) sB.append(seconds).append("s "); - return sB.substring(0, sB.length() - 1); - } + private static final ResourceLocation BACKGROUND = new ResourceLocation( + "notenoughupdates", + "textures/gui/forge_recipe_tall.png" + ); + + private static final int SLOT_IMAGE_U = 176; + private static final int SLOT_IMAGE_V = 0; + private static final int SLOT_IMAGE_SIZE = 18; + private static final int SLOT_PADDING = 1; + private static final int EXTRA_INFO_MAX_WIDTH = 75; + public static final int EXTRA_INFO_X = 132; + public static final int EXTRA_INFO_Y = 55; + + public enum ForgeType { + REFINING, ITEM_FORGING + } + + private final NEUManager manager; + private final List inputs; + private final Ingredient output; + private final int hotmLevel; + private final int timeInSeconds; // TODO: quick forge + private List slots; + + public ForgeRecipe( + NEUManager manager, + List inputs, + Ingredient output, + int durationInSeconds, + int hotmLevel + ) { + this.manager = manager; + this.inputs = inputs; + this.output = output; + this.hotmLevel = hotmLevel; + this.timeInSeconds = durationInSeconds; + } + + public List getInputs() { + return inputs; + } + + public Ingredient getOutput() { + return output; + } + + public int getHotmLevel() { + return hotmLevel; + } + + public int getTimeInSeconds() { + return timeInSeconds; + } + + @Override + public ResourceLocation getBackground() { + return BACKGROUND; + } + + @Override + public RecipeType getType() { + return RecipeType.FORGE; + } + + @Override + public Set getIngredients() { + return Sets.newHashSet(inputs); + } + + @Override + public boolean hasVariableCost() { + return false; + } + + @Override + public Set getOutputs() { + return Collections.singleton(output); + } + + @Override + public List getSlots() { + if (slots != null) return slots; + slots = new ArrayList<>(); + for (int i = 0; i < inputs.size(); i++) { + Ingredient input = inputs.get(i); + ItemStack itemStack = input.getItemStack(); + if (itemStack == null) continue; + int[] slotCoordinates = getSlotCoordinates(i, inputs.size()); + slots.add(new RecipeSlot(slotCoordinates[0], slotCoordinates[1], itemStack)); + } + slots.add(new RecipeSlot(124, 66, output.getItemStack())); + return slots; + } + + @Override + public void drawExtraBackground(GuiItemRecipe gui, int mouseX, int mouseY) { + Minecraft.getMinecraft().getTextureManager().bindTexture(BACKGROUND); + for (int i = 0; i < inputs.size(); i++) { + int[] slotCoordinates = getSlotCoordinates(i, inputs.size()); + gui.drawTexturedModalRect( + gui.guiLeft + slotCoordinates[0] - SLOT_PADDING, gui.guiTop + slotCoordinates[1] - SLOT_PADDING, + SLOT_IMAGE_U, SLOT_IMAGE_V, + SLOT_IMAGE_SIZE, SLOT_IMAGE_SIZE + ); + } + } + + @Override + public void drawExtraInfo(GuiItemRecipe gui, int mouseX, int mouseY) { + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; + if (timeInSeconds > 0) + Utils.drawStringCenteredScaledMaxWidth( + formatDuration(timeInSeconds), + fontRenderer, + gui.guiLeft + EXTRA_INFO_X, + gui.guiTop + EXTRA_INFO_Y, + false, + EXTRA_INFO_MAX_WIDTH, + 0xff00ff + ); + } + + @Override + public void drawHoverInformation(GuiItemRecipe gui, int mouseX, int mouseY) { + manager.hotm.getInformationOnCurrentProfile().ifPresent(hotmTree -> { + if (timeInSeconds > 0 && gui.isWithinRect( + mouseX, mouseY, + gui.guiLeft + EXTRA_INFO_X - EXTRA_INFO_MAX_WIDTH / 2, + gui.guiTop + EXTRA_INFO_Y - 8, + EXTRA_INFO_MAX_WIDTH, 16 + )) { + int qf = hotmTree.getLevel("forge_time"); + int reducedTime = getReducedTime(qf); + if (qf > 0) { + + Utils.drawHoveringText( + Arrays.asList( + EnumChatFormatting.YELLOW + formatDuration(reducedTime) + " with Quick Forge (Level " + qf + ")"), + mouseX, + mouseY, + gui.width, + gui.height, + 500, + Minecraft.getMinecraft().fontRendererObj + ); + } + } + }); + } + + public int getReducedTime(int quickForgeUpgradeLevel) { + return HotmInformation.getQuickForgeMultiplier(quickForgeUpgradeLevel) * timeInSeconds / 1000; + } + + @Override + public JsonObject serialize() { + JsonObject object = new JsonObject(); + JsonArray ingredients = new JsonArray(); + for (Ingredient input : inputs) { + ingredients.add(new JsonPrimitive(input.serialize())); + } + object.addProperty("type", "forge"); + object.add("inputs", ingredients); + object.addProperty("count", output.getCount()); + object.addProperty("overrideOutputId", output.getInternalItemId()); + if (hotmLevel >= 0) + object.addProperty("hotmLevel", hotmLevel); + if (timeInSeconds >= 0) + object.addProperty("duration", timeInSeconds); + return object; + } + + static ForgeRecipe parseForgeRecipe(NEUManager manager, JsonObject recipe, JsonObject output) { + List ingredients = new ArrayList<>(); + for (JsonElement element : recipe.getAsJsonArray("inputs")) { + String ingredientString = element.getAsString(); + ingredients.add(new Ingredient(manager, ingredientString)); + } + String internalItemId = output.get("internalname").getAsString(); + if (recipe.has("overrideOutputId")) + internalItemId = recipe.get("overrideOutputId").getAsString(); + int resultCount = 1; + if (recipe.has("count")) { + resultCount = recipe.get("count").getAsInt(); + } + int duration = -1; + if (recipe.has("duration")) { + duration = recipe.get("duration").getAsInt(); + } + int hotmLevel = -1; + if (recipe.has("hotmLevel")) { + hotmLevel = recipe.get("hotmLevel").getAsInt(); + } + return new ForgeRecipe( + manager, + ingredients, + new Ingredient(manager, internalItemId, resultCount), + duration, + hotmLevel + ); + } + + private static final int RECIPE_CENTER_X = 49; + private static final int RECIPE_CENTER_Y = 74; + private static final int SLOT_DISTANCE_FROM_CENTER = 30; + private static final int RECIPE_FALLBACK_X = 20; + private static final int RECIPE_FALLBACK_Y = 15; + + static int[] getSlotCoordinates(int slotNumber, int totalSlotCount) { + if (totalSlotCount > 8) { + return new int[]{ + RECIPE_FALLBACK_X + (slotNumber % 4) * GuiItemRecipe.SLOT_SPACING, + RECIPE_FALLBACK_Y + (slotNumber / 4) * GuiItemRecipe.SLOT_SPACING, + }; + } + if (totalSlotCount == 1) { + return new int[]{ + RECIPE_CENTER_X - GuiItemRecipe.SLOT_SIZE / 2, + RECIPE_CENTER_Y - GuiItemRecipe.SLOT_SIZE / 2 + }; + } + double rad = Math.PI * 2 * slotNumber / totalSlotCount; + int x = (int) (Math.cos(rad) * SLOT_DISTANCE_FROM_CENTER); + int y = (int) (Math.sin(rad) * SLOT_DISTANCE_FROM_CENTER); + return new int[]{ + RECIPE_CENTER_X + x - GuiItemRecipe.SLOT_SIZE / 2, + RECIPE_CENTER_Y + y - GuiItemRecipe.SLOT_SIZE / 2 + }; + } + + static String formatDuration(int seconds) { + int minutes = seconds / 60; + seconds %= 60; + int hours = minutes / 60; + minutes %= 60; + int days = hours / 24; + hours %= 24; + StringBuilder sB = new StringBuilder(); + if (days != 0) sB.append(days).append("d "); + if (hours != 0) sB.append(hours).append("h "); + if (minutes != 0) sB.append(minutes).append("m "); + if (seconds != 0) sB.append(seconds).append("s "); + return sB.substring(0, sB.length() - 1); + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/Ingredient.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/Ingredient.java index c4928605..c973f8c0 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/Ingredient.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/Ingredient.java @@ -1,10 +1,27 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.recipes; import com.google.gson.JsonObject; import io.github.moulberry.notenoughupdates.NEUManager; import io.github.moulberry.notenoughupdates.util.ItemUtils; -import io.github.moulberry.notenoughupdates.util.Utils; -import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import java.util.HashMap; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/ItemShopRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/ItemShopRecipe.java index 778f156f..235ba3ce 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/ItemShopRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/ItemShopRecipe.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.recipes; import com.google.common.collect.Sets; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/MobLootRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/MobLootRecipe.java index a65bfec2..0d891071 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/MobLootRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/MobLootRecipe.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.recipes; import com.google.common.collect.Sets; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/NeuRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/NeuRecipe.java index 04945cc5..a0090050 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/NeuRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/NeuRecipe.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.recipes; import com.google.gson.JsonObject; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeGenerator.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeGenerator.java index 3e3b06b1..d63ea42c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeGenerator.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeGenerator.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.recipes; import com.google.gson.JsonArray; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeSlot.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeSlot.java index 61f8ef27..489485e4 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeSlot.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeSlot.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.recipes; import io.github.moulberry.notenoughupdates.miscgui.GuiItemRecipe; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeType.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeType.java index 023b20eb..de9c869f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeType.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/RecipeType.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.recipes; import com.google.gson.JsonObject; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/recipes/VillagerTradeRecipe.java b/src/main/java/io/github/moulberry/notenoughupdates/recipes/VillagerTradeRecipe.java index 10eb96a5..9bb79604 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/VillagerTradeRecipe.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/VillagerTradeRecipe.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.recipes; import com.google.common.collect.Sets; @@ -17,134 +36,151 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.passive.EntityVillager; import net.minecraft.util.ResourceLocation; -import java.util.*; +import java.util.Arrays; +import java.util.Calendar; +import java.util.List; +import java.util.Set; +import java.util.UUID; public class VillagerTradeRecipe implements NeuRecipe { - public static final int COST_SLOT_X = 52; - public static final int COST_SLOT_Y = 66; - public static final int RESULT_SLOT_Y = 66; - public static final int RESULT_SLOT_X = 124; - - private static class Holder { // This holder object exists to defer initialization to first access - private static final GameProfile DREAM_PROFILE = new GameProfile(UUID.fromString("ec70bcaf-702f-4bb8-b48d-276fa52a780c"), "Dream"); - private static final EntityLivingBase DEMO_DREAM = new AbstractClientPlayer(null, DREAM_PROFILE) { - @Override - protected NetworkPlayerInfo getPlayerInfo() { - return new NetworkPlayerInfo(DREAM_PROFILE) { - @Override - public ResourceLocation getLocationSkin() { - return new ResourceLocation("notenoughupdates", "dreamskin.png"); - } - }; - } - }; - private static final EntityLivingBase DEMO_VILLAGER = new EntityVillager(null); - - private static boolean isAprilFirst() { - Calendar cal = Calendar.getInstance(); - return cal.get(Calendar.DAY_OF_MONTH) == 1 && cal.get(Calendar.MONTH) == Calendar.APRIL; - } - - private static final EntityLivingBase DEMO_ENTITY = isAprilFirst() ? DEMO_DREAM : DEMO_VILLAGER; - - } - - private final static ResourceLocation BACKGROUND = new ResourceLocation("notenoughupdates", "textures/gui/villager_recipe_tall.png"); - - private final Ingredient result; - private final Ingredient cost; - private final int minCost, maxCost; - - public VillagerTradeRecipe(Ingredient result, Ingredient cost, int minCost, int maxCost) { - this.result = result; - this.cost = cost; - this.minCost = minCost; - this.maxCost = maxCost; - } - - public VillagerTradeRecipe(Ingredient result, Ingredient cost) { - this(result, cost, -1, -1); - } - - public boolean hasVariableCost() { - return minCost != -1 && maxCost != -1; - } - - @Override - public RecipeType getType() { - return RecipeType.TRADE; - } - - @Override - public Set getIngredients() { - return Sets.newHashSet(cost); - } - - @Override - public Set getOutputs() { - return Sets.newHashSet(result); - } - - @Override - public List getSlots() { - return Arrays.asList( - new RecipeSlot(COST_SLOT_X, COST_SLOT_Y, cost.getItemStack()), - new RecipeSlot(RESULT_SLOT_X, RESULT_SLOT_Y, result.getItemStack()) - ); - } - - @Override - public boolean shouldUseForCraftCost() { - return false; - } - - @Override - public boolean isAvailable() { - return SBInfo.getInstance().getCurrentMode() == SBInfo.Gamemode.STRANDED || NotEnoughUpdates.INSTANCE.config.hidden.dev; - } - - @Override - public void drawExtraInfo(GuiItemRecipe gui, int mouseX, int mouseY) { - if (hasVariableCost()) { - FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; - Utils.drawStringCenteredScaledMaxWidth( - minCost + " - " + maxCost, fontRenderer, - gui.guiLeft + 50, gui.guiTop + 90, false, 75, 0xff00ff); - - } - } - - @Override - public void drawExtraBackground(GuiItemRecipe gui, int mouseX, int mouseY) { - GuiInventory.drawEntityOnScreen(gui.guiLeft + 90, gui.guiTop + 100, 30, gui.guiLeft - mouseX + 110, gui.guiTop + 60 - mouseY, Holder.DEMO_ENTITY); - } - - @Override - public JsonObject serialize() { - JsonObject jsonObject = new JsonObject(); - jsonObject.addProperty("type", "trade"); - jsonObject.addProperty("result", result.serialize()); - jsonObject.addProperty("cost", cost.serialize()); - if (minCost > 0) - jsonObject.addProperty("min", minCost); - if (maxCost > 0) - jsonObject.addProperty("max", maxCost); - return jsonObject; - } - - @Override - public ResourceLocation getBackground() { - return BACKGROUND; - } - - public static VillagerTradeRecipe parseStaticRecipe(NEUManager manager, JsonObject recipe, JsonObject result) { - return new VillagerTradeRecipe( - new Ingredient(manager, recipe.get("result").getAsString()), - new Ingredient(manager, recipe.get("cost").getAsString()), - recipe.has("min") ? recipe.get("min").getAsInt() : -1, - recipe.has("max") ? recipe.get("max").getAsInt() : -1 - ); - } + public static final int COST_SLOT_X = 52; + public static final int COST_SLOT_Y = 66; + public static final int RESULT_SLOT_Y = 66; + public static final int RESULT_SLOT_X = 124; + + private static class Holder { // This holder object exists to defer initialization to first access + private static final GameProfile DREAM_PROFILE = new GameProfile(UUID.fromString( + "ec70bcaf-702f-4bb8-b48d-276fa52a780c"), "Dream"); + private static final EntityLivingBase DEMO_DREAM = new AbstractClientPlayer(null, DREAM_PROFILE) { + @Override + protected NetworkPlayerInfo getPlayerInfo() { + return new NetworkPlayerInfo(DREAM_PROFILE) { + @Override + public ResourceLocation getLocationSkin() { + return new ResourceLocation("notenoughupdates", "dreamskin.png"); + } + }; + } + }; + private static final EntityLivingBase DEMO_VILLAGER = new EntityVillager(null); + + private static boolean isAprilFirst() { + Calendar cal = Calendar.getInstance(); + return cal.get(Calendar.DAY_OF_MONTH) == 1 && cal.get(Calendar.MONTH) == Calendar.APRIL; + } + + private static final EntityLivingBase DEMO_ENTITY = isAprilFirst() ? DEMO_DREAM : DEMO_VILLAGER; + + } + + private final static ResourceLocation BACKGROUND = new ResourceLocation( + "notenoughupdates", + "textures/gui/villager_recipe_tall.png" + ); + + private final Ingredient result; + private final Ingredient cost; + private final int minCost, maxCost; + + public VillagerTradeRecipe(Ingredient result, Ingredient cost, int minCost, int maxCost) { + this.result = result; + this.cost = cost; + this.minCost = minCost; + this.maxCost = maxCost; + } + + public VillagerTradeRecipe(Ingredient result, Ingredient cost) { + this(result, cost, -1, -1); + } + + public boolean hasVariableCost() { + return minCost != -1 && maxCost != -1; + } + + @Override + public RecipeType getType() { + return RecipeType.TRADE; + } + + @Override + public Set getIngredients() { + return Sets.newHashSet(cost); + } + + @Override + public Set getOutputs() { + return Sets.newHashSet(result); + } + + @Override + public List getSlots() { + return Arrays.asList( + new RecipeSlot(COST_SLOT_X, COST_SLOT_Y, cost.getItemStack()), + new RecipeSlot(RESULT_SLOT_X, RESULT_SLOT_Y, result.getItemStack()) + ); + } + + @Override + public boolean shouldUseForCraftCost() { + return false; + } + + @Override + public boolean isAvailable() { + return SBInfo.getInstance().getCurrentMode() == SBInfo.Gamemode.STRANDED || + NotEnoughUpdates.INSTANCE.config.hidden.dev; + } + + @Override + public void drawExtraInfo(GuiItemRecipe gui, int mouseX, int mouseY) { + if (hasVariableCost()) { + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; + Utils.drawStringCenteredScaledMaxWidth( + minCost + " - " + maxCost, fontRenderer, + gui.guiLeft + 50, gui.guiTop + 90, false, 75, 0xff00ff + ); + + } + } + + @Override + public void drawExtraBackground(GuiItemRecipe gui, int mouseX, int mouseY) { + GuiInventory.drawEntityOnScreen( + gui.guiLeft + 90, + gui.guiTop + 100, + 30, + gui.guiLeft - mouseX + 110, + gui.guiTop + 60 - mouseY, + Holder.DEMO_ENTITY + ); + } + + @Override + public JsonObject serialize() { + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("type", "trade"); + jsonObject.addProperty("result", result.serialize()); + jsonObject.addProperty("cost", cost.serialize()); + if (minCost > 0) + jsonObject.addProperty("min", minCost); + if (maxCost > 0) + jsonObject.addProperty("max", maxCost); + return jsonObject; + } + + @Override + public ResourceLocation getBackground() { + return BACKGROUND; + } + + public static VillagerTradeRecipe parseStaticRecipe(NEUManager manager, JsonObject recipe, JsonObject result) { + return new VillagerTradeRecipe( + new Ingredient(manager, recipe.get("result").getAsString()), + new Ingredient(manager, recipe.get("cost").getAsString()), + recipe.has("min") ? recipe.get("min").getAsInt() : -1, + recipe.has("max") ? recipe.get("max").getAsInt() : -1 + ); + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/AllowEmptyHTMLTag.java b/src/main/java/io/github/moulberry/notenoughupdates/util/AllowEmptyHTMLTag.java index b7fc55e4..5c223605 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/AllowEmptyHTMLTag.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/AllowEmptyHTMLTag.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import info.bliki.htmlcleaner.TagNode; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java b/src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java index 4c421f3e..3230714a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import com.google.gson.Gson; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/Debouncer.java b/src/main/java/io/github/moulberry/notenoughupdates/util/Debouncer.java index 15808a29..ec076a77 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/Debouncer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Debouncer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; /** diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/DiscordMarkdownBuilder.java b/src/main/java/io/github/moulberry/notenoughupdates/util/DiscordMarkdownBuilder.java index 1c78f924..3c6c5f3d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/DiscordMarkdownBuilder.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/DiscordMarkdownBuilder.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; public class DiscordMarkdownBuilder { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/GuiTextures.java b/src/main/java/io/github/moulberry/notenoughupdates/util/GuiTextures.java index ba57537e..3ead5a56 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/GuiTextures.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/GuiTextures.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import net.minecraft.util.ResourceLocation; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/HastebinUploader.java b/src/main/java/io/github/moulberry/notenoughupdates/util/HastebinUploader.java index 9cbad402..27993510 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/HastebinUploader.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/HastebinUploader.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import com.google.gson.Gson; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/HotmInformation.java b/src/main/java/io/github/moulberry/notenoughupdates/util/HotmInformation.java index 800c025a..5d7bfa6d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/HotmInformation.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/HotmInformation.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import com.google.gson.JsonArray; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/HypixelApi.java b/src/main/java/io/github/moulberry/notenoughupdates/util/HypixelApi.java index 937a0ab8..3e38fd2e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/HypixelApi.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/HypixelApi.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import com.google.gson.Gson; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/ItemUtils.java b/src/main/java/io/github/moulberry/notenoughupdates/util/ItemUtils.java index 729e68bd..6abcc33d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/ItemUtils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/ItemUtils.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import net.minecraft.item.ItemStack; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/JsonUtils.java b/src/main/java/io/github/moulberry/notenoughupdates/util/JsonUtils.java index 5ee1dda1..2e2977cc 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/JsonUtils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/JsonUtils.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import com.google.gson.JsonArray; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/LerpingFloat.java b/src/main/java/io/github/moulberry/notenoughupdates/util/LerpingFloat.java index a034fa8d..e2bfa711 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/LerpingFloat.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/LerpingFloat.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; public class LerpingFloat { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/NEUDebugLogger.java b/src/main/java/io/github/moulberry/notenoughupdates/util/NEUDebugLogger.java index 827a3e97..230b8ae5 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/NEUDebugLogger.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/NEUDebugLogger.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; @@ -6,8 +25,6 @@ import net.minecraft.client.Minecraft; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; -import java.util.Collections; -import java.util.EnumSet; import java.util.function.Consumer; public class NEUDebugLogger { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/NEUResourceManager.java b/src/main/java/io/github/moulberry/notenoughupdates/util/NEUResourceManager.java index 3ef40567..af681f2d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/NEUResourceManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/NEUResourceManager.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import net.minecraft.client.resources.IResource; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/NotificationHandler.java b/src/main/java/io/github/moulberry/notenoughupdates/util/NotificationHandler.java index 492c1dd7..c64fdb56 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/NotificationHandler.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/NotificationHandler.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import io.github.moulberry.notenoughupdates.core.util.render.RenderUtils; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/ProfileApiSyncer.java b/src/main/java/io/github/moulberry/notenoughupdates/util/ProfileApiSyncer.java index 439ad571..b90e8087 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/ProfileApiSyncer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/ProfileApiSyncer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/RequestFocusListener.java b/src/main/java/io/github/moulberry/notenoughupdates/util/RequestFocusListener.java index 3df5d9f1..092c8564 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/RequestFocusListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/RequestFocusListener.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import javax.swing.*; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/ReverseWorldRenderer.java b/src/main/java/io/github/moulberry/notenoughupdates/util/ReverseWorldRenderer.java index c517bd08..634c94b6 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/ReverseWorldRenderer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/ReverseWorldRenderer.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import com.google.common.primitives.Floats; @@ -9,10 +28,13 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import org.apache.logging.log4j.LogManager; -import java.nio.*; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.FloatBuffer; +import java.nio.IntBuffer; +import java.nio.ShortBuffer; import java.util.Arrays; import java.util.BitSet; -import java.util.Comparator; @SideOnly(Side.CLIENT) public class ReverseWorldRenderer { @@ -564,4 +586,4 @@ public class ReverseWorldRenderer { return this.stateVertexFormat; } } -} \ No newline at end of file +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/SBInfo.java b/src/main/java/io/github/moulberry/notenoughupdates/util/SBInfo.java index 6519d547..9419be4f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/SBInfo.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/SBInfo.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import com.google.common.reflect.TypeToken; @@ -37,7 +56,12 @@ import java.nio.file.Files; import java.nio.file.Path; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -369,7 +393,9 @@ public class SBInfo { for (String line : lines) { if (line.contains("⏣")) { String l = Utils.cleanColour(line).replaceAll("[^A-Za-z0-9() ]", "").trim(); - if(!l.equals(location)) { new ScoreboardLocationChangeListener(location, l); } + if (!l.equals(location)) { + new ScoreboardLocationChangeListener(location, l); + } location = l; break; } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/SkytilsCompat.java b/src/main/java/io/github/moulberry/notenoughupdates/util/SkytilsCompat.java index 5bc5d13c..97c11fe2 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/SkytilsCompat.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/SkytilsCompat.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import net.minecraft.item.ItemStack; @@ -6,7 +25,6 @@ import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; - public class SkytilsCompat { // Defer static initialization private static class Holder { @@ -49,7 +67,7 @@ public class SkytilsCompat { ); isSkytilsFullyPresent = true; } catch (ClassNotFoundException | NoSuchMethodException | NoSuchFieldException | IllegalAccessException | - InvocationTargetException e) { + InvocationTargetException e) { System.err.println("Failed to get Skytils class even tho Skytils mod is present. This is (probably) a NEU bug"); e.printStackTrace(); } @@ -64,6 +82,7 @@ public class SkytilsCompat { public static boolean isSkytilsPresent() { return Holder.isSkytilsPresent; } + public static void renderSkytilsRarity(ItemStack stack, int x, int y) { renderSkytilsRarity(stack, x, y, false); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/SpecialColour.java b/src/main/java/io/github/moulberry/notenoughupdates/util/SpecialColour.java index 27a40565..e3318e3c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/SpecialColour.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/SpecialColour.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import java.awt.*; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/TexLoc.java b/src/main/java/io/github/moulberry/notenoughupdates/util/TexLoc.java index b38db88f..bcce86bb 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/TexLoc.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/TexLoc.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import org.lwjgl.input.Keyboard; 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 4f420de1..b6447706 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import com.google.common.base.Splitter; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/XPInformation.java b/src/main/java/io/github/moulberry/notenoughupdates/util/XPInformation.java index aef2490e..158f9917 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/XPInformation.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/XPInformation.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.util; import com.google.common.base.Splitter; diff --git a/src/main/resources/assets/notenoughupdates/dream.json b/src/main/resources/assets/notenoughupdates/dream.json index 6f27e89e..9dda86c6 100644 --- a/src/main/resources/assets/notenoughupdates/dream.json +++ b/src/main/resources/assets/notenoughupdates/dream.json @@ -1,49 +1,49 @@ { "entity": "Player", "modifiers": [ - { - "type": "playerdata", - "skin": "notenoughupdates:dreamskin.png" - }, - { - "type": "riding", - "entity": "ArmorStand", - "modifiers": [ - { - "type": "age", - "baby": true - }, - { - "type": "riding", - "entity": "Zombie", - "modifiers": [ - { - "type": "equipment", - "hand": "BOW", - "feet": "DIAMOND_BOOTS" - }, - { - "type": "age", - "baby": true - }, - { - "type": "riding", - "entity": "Sheep", - "modifiers": [ - { - "type": "age", - "baby": true - } - ] - } - ] - } - ] - }, - { - "type": "equipment", - "hand": "DIAMOND_SWORD", - "feet": "DIAMOND_BOOTS" - } + { + "type": "playerdata", + "skin": "notenoughupdates:dreamskin.png" + }, + { + "type": "riding", + "entity": "ArmorStand", + "modifiers": [ + { + "type": "age", + "baby": true + }, + { + "type": "riding", + "entity": "Zombie", + "modifiers": [ + { + "type": "equipment", + "hand": "BOW", + "feet": "DIAMOND_BOOTS" + }, + { + "type": "age", + "baby": true + }, + { + "type": "riding", + "entity": "Sheep", + "modifiers": [ + { + "type": "age", + "baby": true + } + ] + } + ] + } + ] + }, + { + "type": "equipment", + "hand": "DIAMOND_SWORD", + "feet": "DIAMOND_BOOTS" + } ] } diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/1.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/1.json index 23e86d67..860548cf 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/1.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/1.json @@ -1,3 +1,3 @@ { - "radiusSq": 0.25 -} \ No newline at end of file + "radiusSq": 0.25 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/10.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/10.json index 23e86d67..860548cf 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/10.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/10.json @@ -1,3 +1,3 @@ { - "radiusSq": 0.25 -} \ No newline at end of file + "radiusSq": 0.25 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/11.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/11.json index 23e86d67..860548cf 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/11.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/11.json @@ -1,3 +1,3 @@ { - "radiusSq": 0.25 -} \ No newline at end of file + "radiusSq": 0.25 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/2.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/2.json index 9576ae4f..69245cb7 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/2.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/2.json @@ -1,3 +1,3 @@ { - "radiusSq": 1 -} \ No newline at end of file + "radiusSq": 1 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/3.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/3.json index 9576ae4f..69245cb7 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/3.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/3.json @@ -1,3 +1,3 @@ { - "radiusSq": 1 -} \ No newline at end of file + "radiusSq": 1 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/4.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/4.json index 9576ae4f..69245cb7 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/4.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/4.json @@ -1,3 +1,3 @@ { - "radiusSq": 1 -} \ No newline at end of file + "radiusSq": 1 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/5.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/5.json index 23e86d67..860548cf 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/5.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/5.json @@ -1,3 +1,3 @@ { - "radiusSq": 0.25 -} \ No newline at end of file + "radiusSq": 0.25 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/6.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/6.json index 9576ae4f..69245cb7 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/6.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/6.json @@ -1,3 +1,3 @@ { - "radiusSq": 1 -} \ No newline at end of file + "radiusSq": 1 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/7.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/7.json index 9576ae4f..69245cb7 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/7.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/7.json @@ -1,3 +1,3 @@ { - "radiusSq": 1 -} \ No newline at end of file + "radiusSq": 1 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/8.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/8.json index b2625fc5..b21bf2b8 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/8.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/8.json @@ -1,3 +1,3 @@ { - "radiusSq": 0.21 -} \ No newline at end of file + "radiusSq": 0.21 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/9.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/9.json index 9576ae4f..69245cb7 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/9.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/9.json @@ -1,3 +1,3 @@ { - "radiusSq": 1 -} \ No newline at end of file + "radiusSq": 1 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/1.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/1.json index 23e86d67..860548cf 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/1.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/1.json @@ -1,3 +1,3 @@ { - "radiusSq": 0.25 -} \ No newline at end of file + "radiusSq": 0.25 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/10.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/10.json index 23e86d67..860548cf 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/10.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/10.json @@ -1,3 +1,3 @@ { - "radiusSq": 0.25 -} \ No newline at end of file + "radiusSq": 0.25 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/11.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/11.json index 23e86d67..860548cf 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/11.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/11.json @@ -1,3 +1,3 @@ { - "radiusSq": 0.25 -} \ No newline at end of file + "radiusSq": 0.25 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/2.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/2.json index 9576ae4f..69245cb7 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/2.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/2.json @@ -1,3 +1,3 @@ { - "radiusSq": 1 -} \ No newline at end of file + "radiusSq": 1 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/3.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/3.json index 9576ae4f..69245cb7 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/3.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/3.json @@ -1,3 +1,3 @@ { - "radiusSq": 1 -} \ No newline at end of file + "radiusSq": 1 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/4.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/4.json index 9576ae4f..69245cb7 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/4.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/4.json @@ -1,3 +1,3 @@ { - "radiusSq": 1 -} \ No newline at end of file + "radiusSq": 1 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/5.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/5.json index 23e86d67..860548cf 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/5.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/5.json @@ -1,3 +1,3 @@ { - "radiusSq": 0.25 -} \ No newline at end of file + "radiusSq": 0.25 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/6.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/6.json index 9576ae4f..69245cb7 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/6.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/6.json @@ -1,3 +1,3 @@ { - "radiusSq": 1 -} \ No newline at end of file + "radiusSq": 1 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/7.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/7.json index 9576ae4f..69245cb7 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/7.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/7.json @@ -1,3 +1,3 @@ { - "radiusSq": 1 -} \ No newline at end of file + "radiusSq": 1 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/8.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/8.json index 8c12699d..42f0d5e6 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/8.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/8.json @@ -1,3 +1,3 @@ { - "radiusSq": 0.22 -} \ No newline at end of file + "radiusSq": 0.22 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/9.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/9.json index 9576ae4f..69245cb7 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/9.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/9.json @@ -1,3 +1,3 @@ { - "radiusSq": 1 -} \ No newline at end of file + "radiusSq": 1 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/1.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/1.json index 23e86d67..860548cf 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/1.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/1.json @@ -1,3 +1,3 @@ { - "radiusSq": 0.25 -} \ No newline at end of file + "radiusSq": 0.25 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/10.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/10.json index 23e86d67..860548cf 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/10.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/10.json @@ -1,3 +1,3 @@ { - "radiusSq": 0.25 -} \ No newline at end of file + "radiusSq": 0.25 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/11.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/11.json index 23e86d67..860548cf 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/11.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/11.json @@ -1,3 +1,3 @@ { - "radiusSq": 0.25 -} \ No newline at end of file + "radiusSq": 0.25 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/2.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/2.json index 9576ae4f..69245cb7 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/2.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/2.json @@ -1,3 +1,3 @@ { - "radiusSq": 1 -} \ No newline at end of file + "radiusSq": 1 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/3.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/3.json index 9576ae4f..69245cb7 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/3.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/3.json @@ -1,3 +1,3 @@ { - "radiusSq": 1 -} \ No newline at end of file + "radiusSq": 1 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/4.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/4.json index 9576ae4f..69245cb7 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/4.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/4.json @@ -1,3 +1,3 @@ { - "radiusSq": 1 -} \ No newline at end of file + "radiusSq": 1 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/5.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/5.json index 23e86d67..860548cf 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/5.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/5.json @@ -1,3 +1,3 @@ { - "radiusSq": 0.25 -} \ No newline at end of file + "radiusSq": 0.25 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/6.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/6.json index 9576ae4f..69245cb7 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/6.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/6.json @@ -1,3 +1,3 @@ { - "radiusSq": 1 -} \ No newline at end of file + "radiusSq": 1 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/7.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/7.json index 9576ae4f..69245cb7 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/7.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/7.json @@ -1,3 +1,3 @@ { - "radiusSq": 1 -} \ No newline at end of file + "radiusSq": 1 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/8.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/8.json index 8c12699d..42f0d5e6 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/8.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/8.json @@ -1,3 +1,3 @@ { - "radiusSq": 0.22 -} \ No newline at end of file + "radiusSq": 0.22 +} diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/9.json b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/9.json index 9576ae4f..69245cb7 100644 --- a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/9.json +++ b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/9.json @@ -1,3 +1,3 @@ { - "radiusSq": 1 -} \ No newline at end of file + "radiusSq": 1 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-1.json index 5b97e666..981f0029 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-1.json @@ -1 +1,8 @@ -{"8:7":true,"9:7":true,"9:1":true,"7:8":true,"2:0":true,"8:3":true} \ No newline at end of file +{ + "8:7": true, + "9:7": true, + "9:1": true, + "7:8": true, + "2:0": true, + "8:3": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-2.json index ec49e91c..05e5c008 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-2.json @@ -1 +1,16 @@ -{"12:11":189,"14:9":true,"15:7":true,"9:15":true,"13:10":188,"10:10":185,"7:13":184,"15:8":true,"14:8":true,"8:12":184,"1:14":true,"14:10":189,"13:11":189,"4:12":true} \ No newline at end of file +{ + "12:11": 189, + "14:9": true, + "15:7": true, + "9:15": true, + "13:10": 188, + "10:10": 185, + "7:13": 184, + "15:8": true, + "14:8": true, + "8:12": 184, + "1:14": true, + "14:10": 189, + "13:11": 189, + "4:12": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-3.json index 70660f8d..1763c9aa 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-3.json @@ -1 +1,14 @@ -{"1:5":true,"0:6":true,"0:4":true,"1:6":[177,178],"1:4":true,"0:7":[177,179]} \ No newline at end of file +{ + "1:5": true, + "0:6": true, + "0:4": true, + "1:6": [ + 177, + 178 + ], + "1:4": true, + "0:7": [ + 177, + 179 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-4.json index 16206a50..1956eeb5 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-4.json @@ -1 +1,36 @@ -{"6:0":true,"1:11":[199,201],"10:4":true,"10:3":true,"7:2":true,"2:9":true,"10:2":true,"0:10":[199,217],"3:12":199,"2:8":true,"7:0":true,"6:2":true,"2:11":true,"15:4":true,"2:12":[169,200],"15:3":true,"6:1":true,"15:2":true,"2:14":[169,172],"15:13":true,"2:10":true,"7:1":true} \ No newline at end of file +{ + "6:0": true, + "1:11": [ + 199, + 201 + ], + "10:4": true, + "10:3": true, + "7:2": true, + "2:9": true, + "10:2": true, + "0:10": [ + 199, + 217 + ], + "3:12": 199, + "2:8": true, + "7:0": true, + "6:2": true, + "2:11": true, + "15:4": true, + "2:12": [ + 169, + 200 + ], + "15:3": true, + "6:1": true, + "15:2": true, + "2:14": [ + 169, + 172 + ], + "15:13": true, + "2:10": true, + "7:1": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-5.json index 897faaee..7f1786f9 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-5.json @@ -1 +1,12 @@ -{"7:15":true,"6:13":true,"7:13":231,"6:14":true,"6:12":true,"6:15":true,"8:15":true,"7:0":true,"8:0":true,"5:13":true} \ No newline at end of file +{ + "7:15": true, + "6:13": true, + "7:13": 231, + "6:14": true, + "6:12": true, + "6:15": true, + "8:15": true, + "7:0": true, + "8:0": true, + "5:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-6.json index ef35b97d..99a4c6e4 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-6.json @@ -1 +1,31 @@ -{"12:1":200,"11:5":true,"12:5":true,"11:1":200,"10:12":true,"11:8":true,"12:8":true,"10:10":true,"4:1":true,"11:9":true,"10:0":true,"9:10":true,"5:1":true,"3:2":200,"11:7":true,"12:7":true,"11:0":201,"12:6":true,"10:9":true,"12:0":201,"9:9":true,"13:1":true,"4:2":200,"11:4":true,"9:11":true,"10:5":true,"5:0":true,"10:11":true,"8:15":true} \ No newline at end of file +{ + "12:1": 200, + "11:5": true, + "12:5": true, + "11:1": 200, + "10:12": true, + "11:8": true, + "12:8": true, + "10:10": true, + "4:1": true, + "11:9": true, + "10:0": true, + "9:10": true, + "5:1": true, + "3:2": 200, + "11:7": true, + "12:7": true, + "11:0": 201, + "12:6": true, + "10:9": true, + "12:0": 201, + "9:9": true, + "13:1": true, + "4:2": 200, + "11:4": true, + "9:11": true, + "10:5": true, + "5:0": true, + "10:11": true, + "8:15": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-7.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-7.json index d23b3f4b..8c286333 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-7.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_-7.json @@ -1 +1,7 @@ -{"11:15":[202,203],"10:15":true} \ No newline at end of file +{ + "11:15": [ + 202, + 203 + ], + "10:15": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_0.json index 99a12616..a794f893 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_0.json @@ -1 +1,27 @@ -{"14:14":true,"4:14":true,"3:13":true,"13:13":true,"10:14":true,"0:13":true,"15:14":true,"11:13":true,"12:13":true,"2:14":true,"1:13":true,"12:14":true,"2:13":true,"1:14":true,"7:13":true,"11:14":true,"15:13":true,"13:14":true,"10:13":true,"5:13":true,"0:14":true,"3:14":true,"14:13":true,"9:13":true,"4:13":true} \ No newline at end of file +{ + "14:14": true, + "4:14": true, + "3:13": true, + "13:13": true, + "10:14": true, + "0:13": true, + "15:14": true, + "11:13": true, + "12:13": true, + "2:14": true, + "1:13": true, + "12:14": true, + "2:13": true, + "1:14": true, + "7:13": true, + "11:14": true, + "15:13": true, + "13:14": true, + "10:13": true, + "5:13": true, + "0:14": true, + "3:14": true, + "14:13": true, + "9:13": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_3.json index 857daba9..8d8fb9d1 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_3.json @@ -1 +1,101 @@ -{"9:14":true,"2:7":[171,194],"8:8":true,"7:12":[174,176],"10:14":true,"11:11":true,"10:12":true,"6:13":175,"2:9":true,"9:15":184,"9:12":true,"3:6":170,"10:15":true,"7:14":176,"8:7":true,"5:5":true,"7:13":175,"2:8":[192,194],"9:10":true,"4:5":true,"6:14":true,"10:13":true,"8:9":true,"7:10":172,"6:12":176,"1:7":171,"9:13":true,"8:13":174,"2:12":true,"7:7":true,"9:9":true,"8:10":171,"7:9":172,"3:5":true,"0:11":true,"9:7":true,"2:14":true,"7:8":true,"8:12":173,"4:6":true,"2:13":true,"5:6":true,"6:7":true,"8:14":175,"9:8":true,"3:13":true,"1:5":171,"0:13":true,"6:6":true,"8:5":true,"5:7":true,"8:11":172,"4:7":171,"9:6":true,"3:12":true,"0:15":true,"0:12":true,"2:5":[171,192],"0:14":true,"3:14":true,"7:6":true,"4:14":true,"1:6":170,"11:10":true,"6:5":true,"5:14":true,"11:13":true,"5:12":176,"8:6":true,"4:12":true,"3:7":171,"9:11":[173,190],"10:11":true,"11:14":true,"11:12":true,"5:13":true,"7:5":true,"11:15":true,"7:11":173,"4:13":true,"2:6":[170,193]} \ No newline at end of file +{ + "9:14": true, + "2:7": [ + 171, + 194 + ], + "8:8": true, + "7:12": [ + 174, + 176 + ], + "10:14": true, + "11:11": true, + "10:12": true, + "6:13": 175, + "2:9": true, + "9:15": 184, + "9:12": true, + "3:6": 170, + "10:15": true, + "7:14": 176, + "8:7": true, + "5:5": true, + "7:13": 175, + "2:8": [ + 192, + 194 + ], + "9:10": true, + "4:5": true, + "6:14": true, + "10:13": true, + "8:9": true, + "7:10": 172, + "6:12": 176, + "1:7": 171, + "9:13": true, + "8:13": 174, + "2:12": true, + "7:7": true, + "9:9": true, + "8:10": 171, + "7:9": 172, + "3:5": true, + "0:11": true, + "9:7": true, + "2:14": true, + "7:8": true, + "8:12": 173, + "4:6": true, + "2:13": true, + "5:6": true, + "6:7": true, + "8:14": 175, + "9:8": true, + "3:13": true, + "1:5": 171, + "0:13": true, + "6:6": true, + "8:5": true, + "5:7": true, + "8:11": 172, + "4:7": 171, + "9:6": true, + "3:12": true, + "0:15": true, + "0:12": true, + "2:5": [ + 171, + 192 + ], + "0:14": true, + "3:14": true, + "7:6": true, + "4:14": true, + "1:6": 170, + "11:10": true, + "6:5": true, + "5:14": true, + "11:13": true, + "5:12": 176, + "8:6": true, + "4:12": true, + "3:7": 171, + "9:11": [ + 173, + 190 + ], + "10:11": true, + "11:14": true, + "11:12": true, + "5:13": true, + "7:5": true, + "11:15": true, + "7:11": 173, + "4:13": true, + "2:6": [ + 170, + 193 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_4.json index 31878b3e..39157aec 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_4.json @@ -1 +1,95 @@ -{"1:1":true,"11:5":true,"3:0":true,"0:6":true,"0:0":true,"8:1":171,"3:6":true,"5:5":true,"0:2":true,"4:5":true,"3:2":true,"3:4":true,"0:3":true,"3:3":true,"0:4":true,"2:1":true,"11:0":true,"4:3":true,"5:4":true,"5:3":true,"6:1":true,"4:4":true,"3:5":true,"4:2":true,"0:11":true,"5:2":true,"0:5":true,"11:4":true,"9:1":[171,187],"4:6":true,"5:0":true,"10:1":true,"5:6":true,"11:3":true,"4:0":true,"11:2":true,"7:1":true,"9:3":171,"6:0":true,"10:4":true,"10:3":true,"1:5":true,"7:2":true,"6:6":true,"11:1":true,"9:4":171,"8:5":true,"7:4":true,"9:2":171,"10:2":true,"0:10":true,"7:3":true,"9:6":true,"4:1":true,"6:4":true,"10:0":true,"5:1":true,"9:0":[171,185],"6:3":true,"7:0":171,"2:5":true,"6:2":true,"7:6":true,"1:6":true,"6:5":true,"2:2":true,"0:8":true,"1:0":true,"2:4":true,"8:0":171,"0:1":true,"8:6":true,"3:1":true,"2:3":true,"10:5":true,"1:3":true,"9:5":true,"8:2":171,"1:4":true,"0:7":true,"2:0":true,"8:4":true,"1:2":true,"7:5":true,"8:3":true,"0:9":true,"2:6":true} \ No newline at end of file +{ + "1:1": true, + "11:5": true, + "3:0": true, + "0:6": true, + "0:0": true, + "8:1": 171, + "3:6": true, + "5:5": true, + "0:2": true, + "4:5": true, + "3:2": true, + "3:4": true, + "0:3": true, + "3:3": true, + "0:4": true, + "2:1": true, + "11:0": true, + "4:3": true, + "5:4": true, + "5:3": true, + "6:1": true, + "4:4": true, + "3:5": true, + "4:2": true, + "0:11": true, + "5:2": true, + "0:5": true, + "11:4": true, + "9:1": [ + 171, + 187 + ], + "4:6": true, + "5:0": true, + "10:1": true, + "5:6": true, + "11:3": true, + "4:0": true, + "11:2": true, + "7:1": true, + "9:3": 171, + "6:0": true, + "10:4": true, + "10:3": true, + "1:5": true, + "7:2": true, + "6:6": true, + "11:1": true, + "9:4": 171, + "8:5": true, + "7:4": true, + "9:2": 171, + "10:2": true, + "0:10": true, + "7:3": true, + "9:6": true, + "4:1": true, + "6:4": true, + "10:0": true, + "5:1": true, + "9:0": [ + 171, + 185 + ], + "6:3": true, + "7:0": 171, + "2:5": true, + "6:2": true, + "7:6": true, + "1:6": true, + "6:5": true, + "2:2": true, + "0:8": true, + "1:0": true, + "2:4": true, + "8:0": 171, + "0:1": true, + "8:6": true, + "3:1": true, + "2:3": true, + "10:5": true, + "1:3": true, + "9:5": true, + "8:2": 171, + "1:4": true, + "0:7": true, + "2:0": true, + "8:4": true, + "1:2": true, + "7:5": true, + "8:3": true, + "0:9": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_6.json index 35cdf158..7520ac2c 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_6.json @@ -1 +1,219 @@ -{"8:8":true,"6:10":true,"13:13":true,"3:0":true,"3:6":true,"13:15":true,"10:10":true,"8:7":true,"5:5":true,"4:11":true,"9:10":true,"5:11":true,"4:5":true,"13:12":true,"3:2":true,"13:14":true,"3:4":true,"8:9":true,"7:10":true,"3:3":true,"0:4":true,"14:14":true,"4:3":true,"5:4":true,"2:12":true,"7:7":true,"5:3":true,"2:15":true,"15:14":true,"9:9":true,"4:4":true,"8:10":true,"7:9":true,"6:8":true,"3:5":true,"15:12":true,"14:15":true,"13:1":[152,153],"4:2":true,"15:15":true,"14:12":true,"9:7":true,"5:2":true,"2:14":true,"1:13":true,"0:5":true,"2:13":true,"7:8":true,"6:9":true,"4:6":true,"1:14":true,"5:0":true,"5:6":true,"4:0":true,"15:13":true,"1:15":true,"6:7":true,"1:12":true,"9:8":true,"14:13":true,"3:13":true,"1:5":true,"0:13":true,"13:0":true,"14:11":true,"4:1":true,"3:12":true,"0:15":true,"5:1":true,"3:15":true,"0:12":true,"15:11":true,"2:5":true,"0:14":true,"3:14":true,"4:14":true,"1:6":true,"5:14":[159,175],"2:2":true,"5:12":true,"2:4":true,"13:11":true,"4:15":162,"4:12":[162,164],"3:1":true,"5:15":[160,161],"2:3":true,"15:0":[150,151],"1:3":true,"1:4":true,"14:0":true,"2:0":true,"2:6":true,"12:11":true,"9:14":true,"2:7":true,"7:12":true,"10:14":true,"7:15":[165,202],"11:11":true,"10:12":true,"2:9":true,"9:12":true,"8:1":true,"10:15":true,"1:8":true,"7:13":true,"2:8":true,"6:14":[165,173],"10:13":true,"6:12":true,"1:7":true,"6:15":[157,159],"9:13":true,"11:0":true,"8:13":true,"1:10":true,"12:0":true,"6:1":true,"11:4":155,"9:1":true,"8:12":true,"10:1":true,"11:3":[154,156],"12:2":[154,156],"11:2":157,"7:1":true,"12:1":[154,156],"9:3":true,"6:0":true,"10:4":true,"5:9":true,"10:3":156,"7:2":true,"6:6":true,"4:9":true,"11:1":157,"9:4":true,"8:5":true,"5:7":true,"3:10":true,"7:4":true,"9:2":true,"8:11":true,"4:7":true,"10:2":true,"7:3":true,"9:6":true,"6:4":true,"10:0":true,"10:6":true,"9:0":true,"6:3":true,"7:0":true,"5:8":true,"6:2":true,"7:6":true,"4:8":true,"6:5":true,"3:8":true,"6:11":true,"11:13":true,"8:0":true,"8:6":true,"12:13":true,"12:14":true,"10:5":true,"9:11":true,"5:10":true,"3:7":true,"10:11":true,"9:5":true,"4:10":true,"11:14":true,"8:2":true,"12:15":true,"11:12":true,"8:4":true,"7:5":true,"3:9":true,"12:12":true,"11:15":true,"8:3":true,"7:11":true} \ No newline at end of file +{ + "8:8": true, + "6:10": true, + "13:13": true, + "3:0": true, + "3:6": true, + "13:15": true, + "10:10": true, + "8:7": true, + "5:5": true, + "4:11": true, + "9:10": true, + "5:11": true, + "4:5": true, + "13:12": true, + "3:2": true, + "13:14": true, + "3:4": true, + "8:9": true, + "7:10": true, + "3:3": true, + "0:4": true, + "14:14": true, + "4:3": true, + "5:4": true, + "2:12": true, + "7:7": true, + "5:3": true, + "2:15": true, + "15:14": true, + "9:9": true, + "4:4": true, + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": true, + "15:12": true, + "14:15": true, + "13:1": [ + 152, + 153 + ], + "4:2": true, + "15:15": true, + "14:12": true, + "9:7": true, + "5:2": true, + "2:14": true, + "1:13": true, + "0:5": true, + "2:13": true, + "7:8": true, + "6:9": true, + "4:6": true, + "1:14": true, + "5:0": true, + "5:6": true, + "4:0": true, + "15:13": true, + "1:15": true, + "6:7": true, + "1:12": true, + "9:8": true, + "14:13": true, + "3:13": true, + "1:5": true, + "0:13": true, + "13:0": true, + "14:11": true, + "4:1": true, + "3:12": true, + "0:15": true, + "5:1": true, + "3:15": true, + "0:12": true, + "15:11": true, + "2:5": true, + "0:14": true, + "3:14": true, + "4:14": true, + "1:6": true, + "5:14": [ + 159, + 175 + ], + "2:2": true, + "5:12": true, + "2:4": true, + "13:11": true, + "4:15": 162, + "4:12": [ + 162, + 164 + ], + "3:1": true, + "5:15": [ + 160, + 161 + ], + "2:3": true, + "15:0": [ + 150, + 151 + ], + "1:3": true, + "1:4": true, + "14:0": true, + "2:0": true, + "2:6": true, + "12:11": true, + "9:14": true, + "2:7": true, + "7:12": true, + "10:14": true, + "7:15": [ + 165, + 202 + ], + "11:11": true, + "10:12": true, + "2:9": true, + "9:12": true, + "8:1": true, + "10:15": true, + "1:8": true, + "7:13": true, + "2:8": true, + "6:14": [ + 165, + 173 + ], + "10:13": true, + "6:12": true, + "1:7": true, + "6:15": [ + 157, + 159 + ], + "9:13": true, + "11:0": true, + "8:13": true, + "1:10": true, + "12:0": true, + "6:1": true, + "11:4": 155, + "9:1": true, + "8:12": true, + "10:1": true, + "11:3": [ + 154, + 156 + ], + "12:2": [ + 154, + 156 + ], + "11:2": 157, + "7:1": true, + "12:1": [ + 154, + 156 + ], + "9:3": true, + "6:0": true, + "10:4": true, + "5:9": true, + "10:3": 156, + "7:2": true, + "6:6": true, + "4:9": true, + "11:1": 157, + "9:4": true, + "8:5": true, + "5:7": true, + "3:10": true, + "7:4": true, + "9:2": true, + "8:11": true, + "4:7": true, + "10:2": true, + "7:3": true, + "9:6": true, + "6:4": true, + "10:0": true, + "10:6": true, + "9:0": true, + "6:3": true, + "7:0": true, + "5:8": true, + "6:2": true, + "7:6": true, + "4:8": true, + "6:5": true, + "3:8": true, + "6:11": true, + "11:13": true, + "8:0": true, + "8:6": true, + "12:13": true, + "12:14": true, + "10:5": true, + "9:11": true, + "5:10": true, + "3:7": true, + "10:11": true, + "9:5": true, + "4:10": true, + "11:14": true, + "8:2": true, + "12:15": true, + "11:12": true, + "8:4": true, + "7:5": true, + "3:9": true, + "12:12": true, + "11:15": true, + "8:3": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_7.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_7.json index 5bfc81a7..a9da93d7 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_7.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_7.json @@ -1 +1,244 @@ -{"1:1":true,"6:10":true,"13:13":true,"3:0":true,"0:6":true,"0:0":true,"3:6":true,"14:1":true,"13:15":true,"10:10":true,"5:5":true,"4:11":true,"0:2":true,"9:10":true,"5:11":true,"4:5":true,"13:12":true,"3:2":true,"15:1":true,"13:14":true,"3:4":true,"0:3":true,"8:9":true,"2:1":true,"14:14":true,"5:4":true,"2:12":true,"10:9":true,"7:7":true,"5:3":true,"15:14":true,"9:9":true,"4:4":true,"10:7":true,"8:10":true,"7:9":true,"6:8":true,"3:5":true,"15:12":true,"14:15":true,"13:1":true,"4:2":true,"15:15":true,"14:12":true,"9:7":true,"3:11":true,"5:2":true,"0:5":true,"7:8":true,"4:6":true,"5:0":true,"5:6":true,"4:0":true,"15:13":true,"10:8":true,"6:7":true,"9:8":true,"14:13":true,"1:11":true,"1:5":true,"11:8":true,"13:6":true,"13:0":true,"12:8":true,"14:11":true,"4:1":true,"3:12":true,"11:9":true,"15:5":true,"14:5":true,"5:1":true,"15:11":true,"12:9":true,"11:7":true,"2:5":true,"13:4":true,"12:7":true,"2:11":true,"15:4":true,"14:3":true,"1:6":true,"11:10":true,"12:10":true,"2:2":true,"15:3":true,"1:0":true,"14:4":true,"5:12":true,"2:4":true,"14:2":true,"13:11":true,"0:1":true,"15:2":true,"4:12":true,"3:1":true,"13:5":true,"15:0":true,"14:6":true,"1:3":true,"1:4":true,"15:6":true,"14:0":true,"2:0":true,"5:13":true,"1:2":true,"4:13":171,"2:6":true,"15:9":true,"12:11":true,"9:14":true,"11:5":true,"2:7":true,"7:12":true,"12:5":true,"10:14":true,"7:15":[158,170],"14:9":true,"11:11":true,"10:12":true,"6:13":true,"2:9":true,"15:7":true,"9:15":true,"14:7":true,"9:12":true,"8:1":[155,157],"13:10":true,"10:15":true,"7:14":true,"1:8":true,"7:13":true,"2:8":true,"6:14":[157,158],"1:9":true,"15:8":true,"10:13":true,"6:12":true,"1:7":true,"14:8":true,"9:13":true,"11:0":true,"12:6":true,"8:13":true,"13:8":true,"12:0":true,"6:1":true,"12:3":true,"11:4":true,"9:1":[162,202],"15:10":true,"14:10":true,"13:7":true,"12:4":true,"11:3":[172,202],"8:15":true,"2:10":true,"11:2":[180,195],"8:14":true,"13:9":true,"7:1":true,"12:1":[148,151],"9:3":true,"6:0":true,"10:4":true,"10:3":true,"7:2":true,"6:6":true,"4:9":true,"9:4":true,"8:5":true,"5:7":true,"3:10":true,"7:4":true,"9:2":true,"8:11":true,"4:7":true,"10:2":[162,202],"0:10":true,"7:3":true,"6:4":true,"6:3":true,"7:0":true,"5:8":true,"6:2":true,"7:6":true,"4:8":true,"6:5":true,"3:8":true,"0:8":true,"6:11":true,"11:13":true,"8:0":[162,202],"8:6":true,"12:13":true,"12:14":true,"10:5":true,"9:11":true,"5:10":true,"3:7":true,"10:11":true,"9:5":true,"4:10":true,"11:14":true,"8:2":true,"0:7":true,"12:15":true,"11:12":true,"8:4":true,"7:5":true,"3:9":true,"12:12":true,"11:15":true,"8:3":true,"0:9":true,"7:11":true} \ No newline at end of file +{ + "1:1": true, + "6:10": true, + "13:13": true, + "3:0": true, + "0:6": true, + "0:0": true, + "3:6": true, + "14:1": true, + "13:15": true, + "10:10": true, + "5:5": true, + "4:11": true, + "0:2": true, + "9:10": true, + "5:11": true, + "4:5": true, + "13:12": true, + "3:2": true, + "15:1": true, + "13:14": true, + "3:4": true, + "0:3": true, + "8:9": true, + "2:1": true, + "14:14": true, + "5:4": true, + "2:12": true, + "10:9": true, + "7:7": true, + "5:3": true, + "15:14": true, + "9:9": true, + "4:4": true, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": true, + "15:12": true, + "14:15": true, + "13:1": true, + "4:2": true, + "15:15": true, + "14:12": true, + "9:7": true, + "3:11": true, + "5:2": true, + "0:5": true, + "7:8": true, + "4:6": true, + "5:0": true, + "5:6": true, + "4:0": true, + "15:13": true, + "10:8": true, + "6:7": true, + "9:8": true, + "14:13": true, + "1:11": true, + "1:5": true, + "11:8": true, + "13:6": true, + "13:0": true, + "12:8": true, + "14:11": true, + "4:1": true, + "3:12": true, + "11:9": true, + "15:5": true, + "14:5": true, + "5:1": true, + "15:11": true, + "12:9": true, + "11:7": true, + "2:5": true, + "13:4": true, + "12:7": true, + "2:11": true, + "15:4": true, + "14:3": true, + "1:6": true, + "11:10": true, + "12:10": true, + "2:2": true, + "15:3": true, + "1:0": true, + "14:4": true, + "5:12": true, + "2:4": true, + "14:2": true, + "13:11": true, + "0:1": true, + "15:2": true, + "4:12": true, + "3:1": true, + "13:5": true, + "15:0": true, + "14:6": true, + "1:3": true, + "1:4": true, + "15:6": true, + "14:0": true, + "2:0": true, + "5:13": true, + "1:2": true, + "4:13": 171, + "2:6": true, + "15:9": true, + "12:11": true, + "9:14": true, + "11:5": true, + "2:7": true, + "7:12": true, + "12:5": true, + "10:14": true, + "7:15": [ + 158, + 170 + ], + "14:9": true, + "11:11": true, + "10:12": true, + "6:13": true, + "2:9": true, + "15:7": true, + "9:15": true, + "14:7": true, + "9:12": true, + "8:1": [ + 155, + 157 + ], + "13:10": true, + "10:15": true, + "7:14": true, + "1:8": true, + "7:13": true, + "2:8": true, + "6:14": [ + 157, + 158 + ], + "1:9": true, + "15:8": true, + "10:13": true, + "6:12": true, + "1:7": true, + "14:8": true, + "9:13": true, + "11:0": true, + "12:6": true, + "8:13": true, + "13:8": true, + "12:0": true, + "6:1": true, + "12:3": true, + "11:4": true, + "9:1": [ + 162, + 202 + ], + "15:10": true, + "14:10": true, + "13:7": true, + "12:4": true, + "11:3": [ + 172, + 202 + ], + "8:15": true, + "2:10": true, + "11:2": [ + 180, + 195 + ], + "8:14": true, + "13:9": true, + "7:1": true, + "12:1": [ + 148, + 151 + ], + "9:3": true, + "6:0": true, + "10:4": true, + "10:3": true, + "7:2": true, + "6:6": true, + "4:9": true, + "9:4": true, + "8:5": true, + "5:7": true, + "3:10": true, + "7:4": true, + "9:2": true, + "8:11": true, + "4:7": true, + "10:2": [ + 162, + 202 + ], + "0:10": true, + "7:3": true, + "6:4": true, + "6:3": true, + "7:0": true, + "5:8": true, + "6:2": true, + "7:6": true, + "4:8": true, + "6:5": true, + "3:8": true, + "0:8": true, + "6:11": true, + "11:13": true, + "8:0": [ + 162, + 202 + ], + "8:6": true, + "12:13": true, + "12:14": true, + "10:5": true, + "9:11": true, + "5:10": true, + "3:7": true, + "10:11": true, + "9:5": true, + "4:10": true, + "11:14": true, + "8:2": true, + "0:7": true, + "12:15": true, + "11:12": true, + "8:4": true, + "7:5": true, + "3:9": true, + "12:12": true, + "11:15": true, + "8:3": true, + "0:9": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_8.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_8.json index d6f006c3..d419dc47 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-10_8.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-10_8.json @@ -1 +1,89 @@ -{"15:9":true,"12:11":true,"11:5":true,"13:13":true,"12:5":true,"14:9":true,"15:7":true,"14:7":true,"14:1":true,"13:15":true,"10:10":true,"13:12":true,"15:1":true,"15:8":true,"14:8":true,"11:0":true,"14:14":true,"12:6":true,"10:9":true,"13:8":true,"15:14":true,"12:0":true,"11:6":true,"10:7":true,"15:12":true,"14:15":true,"13:1":true,"15:15":true,"14:12":true,"9:7":151,"12:3":true,"11:4":true,"9:1":true,"15:10":true,"14:10":true,"10:1":true,"13:7":true,"12:4":true,"11:3":true,"15:13":true,"12:2":true,"10:8":true,"11:2":true,"13:9":true,"14:13":true,"12:1":true,"10:3":true,"11:1":true,"11:8":true,"13:6":true,"13:0":true,"10:2":true,"12:8":true,"14:11":true,"13:2":true,"9:6":151,"11:9":true,"15:5":true,"10:0":true,"14:5":true,"10:6":true,"15:11":true,"12:9":true,"9:0":true,"13:3":true,"11:7":true,"13:4":true,"15:4":true,"14:3":true,"11:10":true,"12:10":true,"15:3":true,"14:4":true,"8:0":[158,170],"14:2":true,"13:11":true,"15:2":true,"13:5":true,"15:0":true,"14:6":true,"15:6":true,"14:0":true,"12:15":true,"12:12":true} \ No newline at end of file +{ + "15:9": true, + "12:11": true, + "11:5": true, + "13:13": true, + "12:5": true, + "14:9": true, + "15:7": true, + "14:7": true, + "14:1": true, + "13:15": true, + "10:10": true, + "13:12": true, + "15:1": true, + "15:8": true, + "14:8": true, + "11:0": true, + "14:14": true, + "12:6": true, + "10:9": true, + "13:8": true, + "15:14": true, + "12:0": true, + "11:6": true, + "10:7": true, + "15:12": true, + "14:15": true, + "13:1": true, + "15:15": true, + "14:12": true, + "9:7": 151, + "12:3": true, + "11:4": true, + "9:1": true, + "15:10": true, + "14:10": true, + "10:1": true, + "13:7": true, + "12:4": true, + "11:3": true, + "15:13": true, + "12:2": true, + "10:8": true, + "11:2": true, + "13:9": true, + "14:13": true, + "12:1": true, + "10:3": true, + "11:1": true, + "11:8": true, + "13:6": true, + "13:0": true, + "10:2": true, + "12:8": true, + "14:11": true, + "13:2": true, + "9:6": 151, + "11:9": true, + "15:5": true, + "10:0": true, + "14:5": true, + "10:6": true, + "15:11": true, + "12:9": true, + "9:0": true, + "13:3": true, + "11:7": true, + "13:4": true, + "15:4": true, + "14:3": true, + "11:10": true, + "12:10": true, + "15:3": true, + "14:4": true, + "8:0": [ + 158, + 170 + ], + "14:2": true, + "13:11": true, + "15:2": true, + "13:5": true, + "15:0": true, + "14:6": true, + "15:6": true, + "14:0": true, + "12:15": true, + "12:12": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-11_-3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-11_-3.json index 352ead0c..ed4788e9 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-11_-3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-11_-3.json @@ -1 +1,188 @@ -{"12:11":true,"9:14":true,"11:5":true,"2:7":true,"8:8":true,"7:12":true,"6:10":true,"12:5":true,"10:14":true,"7:15":true,"14:9":true,"11:11":true,"10:12":true,"6:13":true,"2:9":true,"9:15":true,"0:6":true,"14:7":true,"9:12":true,"3:6":true,"13:10":true,"10:15":true,"7:14":true,"1:8":true,"10:10":true,"8:7":true,"5:5":true,"4:11":true,"7:13":true,"2:8":true,"5:11":true,"4:5":true,"13:12":true,"6:14":true,"1:9":true,"15:8":true,"10:13":true,"3:4":true,"6:12":true,"3:3":true,"1:7":true,"6:15":true,"9:13":true,"12:6":true,"4:3":true,"8:13":true,"5:4":true,"2:12":true,"10:9":true,"7:7":true,"5:3":true,"2:15":true,"1:10":true,"13:8":true,"11:6":true,"4:4":true,"10:7":true,"6:8":true,"3:5":true,"13:1":181,"0:11":true,"9:7":true,"3:11":true,"2:14":true,"1:13":true,"0:5":true,"12:3":true,"11:4":true,"8:12":true,"6:9":true,"4:6":true,"2:13":true,"14:10":true,"10:1":179,"5:6":true,"13:7":true,"12:4":true,"11:3":true,"8:15":true,"12:2":true,"2:10":true,"1:15":true,"10:8":true,"11:2":true,"8:14":true,"1:12":true,"13:9":true,"9:8":true,"12:1":[180,181],"9:3":true,"10:4":true,"3:13":true,"5:9":true,"10:3":true,"1:5":true,"0:13":true,"7:2":true,"6:6":true,"4:9":true,"11:1":180,"9:4":true,"8:5":true,"5:7":true,"3:10":true,"11:8":true,"7:4":true,"13:6":true,"9:2":true,"4:7":true,"10:2":true,"0:10":true,"12:8":true,"7:3":true,"14:11":true,"13:2":true,"9:6":true,"3:12":true,"0:15":true,"11:9":true,"6:4":true,"14:5":true,"10:6":true,"3:15":true,"12:9":true,"6:3":true,"13:3":true,"11:7":true,"2:5":true,"0:14":true,"5:8":true,"13:4":true,"12:7":true,"3:14":true,"6:2":true,"7:6":true,"4:8":true,"2:11":true,"15:4":true,"14:3":true,"4:14":true,"1:6":true,"11:10":true,"6:5":true,"3:8":true,"12:10":true,"5:14":true,"0:8":true,"15:3":true,"6:11":true,"14:4":true,"11:13":true,"5:12":true,"2:4":true,"14:2":true,"13:11":true,"4:15":true,"15:2":true,"8:6":true,"4:12":true,"13:5":true,"12:13":true,"5:15":true,"10:5":true,"9:11":true,"5:10":true,"3:7":true,"10:11":true,"9:5":true,"4:10":true,"11:14":true,"8:2":true,"0:7":true,"11:12":true,"8:4":true,"5:13":true,"7:5":true,"3:9":true,"12:12":true,"11:15":true,"8:3":true,"0:9":true,"4:13":true,"2:6":true} \ No newline at end of file +{ + "12:11": true, + "9:14": true, + "11:5": true, + "2:7": true, + "8:8": true, + "7:12": true, + "6:10": true, + "12:5": true, + "10:14": true, + "7:15": true, + "14:9": true, + "11:11": true, + "10:12": true, + "6:13": true, + "2:9": true, + "9:15": true, + "0:6": true, + "14:7": true, + "9:12": true, + "3:6": true, + "13:10": true, + "10:15": true, + "7:14": true, + "1:8": true, + "10:10": true, + "8:7": true, + "5:5": true, + "4:11": true, + "7:13": true, + "2:8": true, + "5:11": true, + "4:5": true, + "13:12": true, + "6:14": true, + "1:9": true, + "15:8": true, + "10:13": true, + "3:4": true, + "6:12": true, + "3:3": true, + "1:7": true, + "6:15": true, + "9:13": true, + "12:6": true, + "4:3": true, + "8:13": true, + "5:4": true, + "2:12": true, + "10:9": true, + "7:7": true, + "5:3": true, + "2:15": true, + "1:10": true, + "13:8": true, + "11:6": true, + "4:4": true, + "10:7": true, + "6:8": true, + "3:5": true, + "13:1": 181, + "0:11": true, + "9:7": true, + "3:11": true, + "2:14": true, + "1:13": true, + "0:5": true, + "12:3": true, + "11:4": true, + "8:12": true, + "6:9": true, + "4:6": true, + "2:13": true, + "14:10": true, + "10:1": 179, + "5:6": true, + "13:7": true, + "12:4": true, + "11:3": true, + "8:15": true, + "12:2": true, + "2:10": true, + "1:15": true, + "10:8": true, + "11:2": true, + "8:14": true, + "1:12": true, + "13:9": true, + "9:8": true, + "12:1": [ + 180, + 181 + ], + "9:3": true, + "10:4": true, + "3:13": true, + "5:9": true, + "10:3": true, + "1:5": true, + "0:13": true, + "7:2": true, + "6:6": true, + "4:9": true, + "11:1": 180, + "9:4": true, + "8:5": true, + "5:7": true, + "3:10": true, + "11:8": true, + "7:4": true, + "13:6": true, + "9:2": true, + "4:7": true, + "10:2": true, + "0:10": true, + "12:8": true, + "7:3": true, + "14:11": true, + "13:2": true, + "9:6": true, + "3:12": true, + "0:15": true, + "11:9": true, + "6:4": true, + "14:5": true, + "10:6": true, + "3:15": true, + "12:9": true, + "6:3": true, + "13:3": true, + "11:7": true, + "2:5": true, + "0:14": true, + "5:8": true, + "13:4": true, + "12:7": true, + "3:14": true, + "6:2": true, + "7:6": true, + "4:8": true, + "2:11": true, + "15:4": true, + "14:3": true, + "4:14": true, + "1:6": true, + "11:10": true, + "6:5": true, + "3:8": true, + "12:10": true, + "5:14": true, + "0:8": true, + "15:3": true, + "6:11": true, + "14:4": true, + "11:13": true, + "5:12": true, + "2:4": true, + "14:2": true, + "13:11": true, + "4:15": true, + "15:2": true, + "8:6": true, + "4:12": true, + "13:5": true, + "12:13": true, + "5:15": true, + "10:5": true, + "9:11": true, + "5:10": true, + "3:7": true, + "10:11": true, + "9:5": true, + "4:10": true, + "11:14": true, + "8:2": true, + "0:7": true, + "11:12": true, + "8:4": true, + "5:13": true, + "7:5": true, + "3:9": true, + "12:12": true, + "11:15": true, + "8:3": true, + "0:9": true, + "4:13": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-11_-4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-11_-4.json index 643d735d..3988841a 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-11_-4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-11_-4.json @@ -1 +1,20 @@ -{"15:9":true,"12:6":true,"14:9":true,"11:6":true,"11:8":199,"15:7":true,"13:6":true,"14:7":true,"12:8":true,"10:5":true,"15:10":[199,217],"10:6":true,"13:7":true,"12:7":true,"13:9":true} \ No newline at end of file +{ + "15:9": true, + "12:6": true, + "14:9": true, + "11:6": true, + "11:8": 199, + "15:7": true, + "13:6": true, + "14:7": true, + "12:8": true, + "10:5": true, + "15:10": [ + 199, + 217 + ], + "10:6": true, + "13:7": true, + "12:7": true, + "13:9": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-11_-5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-11_-5.json index b7fc8ac8..3de191fa 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-11_-5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-11_-5.json @@ -1 +1,25 @@ -{"10:4":true,"12:5":true,"7:15":true,"9:4":true,"5:12":213,"4:12":[211,212],"7:14":true,"11:4":true,"10:5":true,"10:6":true,"12:4":true,"6:14":[214,216],"5:13":[211,216],"6:15":215} \ No newline at end of file +{ + "10:4": true, + "12:5": true, + "7:15": true, + "9:4": true, + "5:12": 213, + "4:12": [ + 211, + 212 + ], + "7:14": true, + "11:4": true, + "10:5": true, + "10:6": true, + "12:4": true, + "6:14": [ + 214, + 216 + ], + "5:13": [ + 211, + 216 + ], + "6:15": 215 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-11_-6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-11_-6.json index e79a0352..84cd9a00 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-11_-6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-11_-6.json @@ -1 +1,11 @@ -{"12:6":[203,205],"8:13":[213,214],"8:12":212} \ No newline at end of file +{ + "12:6": [ + 203, + 205 + ], + "8:13": [ + 213, + 214 + ], + "8:12": 212 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-11_2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-11_2.json index 4d8c42a8..99a82999 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-11_2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-11_2.json @@ -1 +1,23 @@ -{"11:10":161,"13:13":159,"11:11":[160,161],"11:8":156,"9:2":true,"12:13":[160,161],"9:1":true,"11:9":167,"10:0":true,"10:1":true,"9:0":true,"12:12":[159,161]} \ No newline at end of file +{ + "11:10": 161, + "13:13": 159, + "11:11": [ + 160, + 161 + ], + "11:8": 156, + "9:2": true, + "12:13": [ + 160, + 161 + ], + "9:1": true, + "11:9": 167, + "10:0": true, + "10:1": true, + "9:0": true, + "12:12": [ + 159, + 161 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-11_5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-11_5.json index b605be36..31bc4325 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-11_5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-11_5.json @@ -1 +1,29 @@ -{"12:1":true,"9:14":[164,165],"11:5":true,"12:5":true,"7:15":true,"11:1":true,"14:1":true,"15:5":true,"14:5":true,"15:1":true,"10:13":[163,165],"6:15":true,"11:13":true,"13:1":true,"13:5":true,"10:5":true,"9:5":true,"8:15":166,"11:12":true,"8:14":true,"7:1":175} \ No newline at end of file +{ + "12:1": true, + "9:14": [ + 164, + 165 + ], + "11:5": true, + "12:5": true, + "7:15": true, + "11:1": true, + "14:1": true, + "15:5": true, + "14:5": true, + "15:1": true, + "10:13": [ + 163, + 165 + ], + "6:15": true, + "11:13": true, + "13:1": true, + "13:5": true, + "10:5": true, + "9:5": true, + "8:15": 166, + "11:12": true, + "8:14": true, + "7:1": 175 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-11_6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-11_6.json index 22ad94f8..dd61311b 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-11_6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-11_6.json @@ -1 +1,85 @@ -{"12:11":true,"8:8":true,"13:13":true,"11:11":true,"10:12":true,"13:15":true,"10:10":true,"8:7":true,"5:5":167,"9:10":true,"4:5":true,"13:12":true,"13:14":true,"8:9":true,"7:10":true,"14:14":true,"5:4":true,"7:7":true,"5:3":true,"15:14":true,"9:9":true,"6:1":true,"4:4":true,"8:10":true,"7:9":true,"6:8":true,"15:12":true,"14:15":true,"15:15":true,"14:12":true,"5:2":true,"7:8":true,"6:9":[163,166],"4:6":true,"5:6":[166,167],"15:13":true,"6:7":true,"9:8":true,"7:1":true,"14:13":true,"6:0":true,"7:2":true,"6:6":true,"5:7":[165,166],"7:4":true,"9:2":true,"8:11":165,"4:7":true,"7:3":true,"14:11":true,"6:4":true,"6:3":true,"7:0":true,"5:8":[163,165],"6:2":true,"7:6":true,"11:10":true,"6:5":true,"12:10":true,"11:13":true,"13:11":true,"12:13":true,"12:14":true,"9:11":true,"10:11":true,"8:2":true,"11:12":true,"8:4":true,"7:5":true,"12:12":true,"8:3":true} \ No newline at end of file +{ + "12:11": true, + "8:8": true, + "13:13": true, + "11:11": true, + "10:12": true, + "13:15": true, + "10:10": true, + "8:7": true, + "5:5": 167, + "9:10": true, + "4:5": true, + "13:12": true, + "13:14": true, + "8:9": true, + "7:10": true, + "14:14": true, + "5:4": true, + "7:7": true, + "5:3": true, + "15:14": true, + "9:9": true, + "6:1": true, + "4:4": true, + "8:10": true, + "7:9": true, + "6:8": true, + "15:12": true, + "14:15": true, + "15:15": true, + "14:12": true, + "5:2": true, + "7:8": true, + "6:9": [ + 163, + 166 + ], + "4:6": true, + "5:6": [ + 166, + 167 + ], + "15:13": true, + "6:7": true, + "9:8": true, + "7:1": true, + "14:13": true, + "6:0": true, + "7:2": true, + "6:6": true, + "5:7": [ + 165, + 166 + ], + "7:4": true, + "9:2": true, + "8:11": 165, + "4:7": true, + "7:3": true, + "14:11": true, + "6:4": true, + "6:3": true, + "7:0": true, + "5:8": [ + 163, + 165 + ], + "6:2": true, + "7:6": true, + "11:10": true, + "6:5": true, + "12:10": true, + "11:13": true, + "13:11": true, + "12:13": true, + "12:14": true, + "9:11": true, + "10:11": true, + "8:2": true, + "11:12": true, + "8:4": true, + "7:5": true, + "12:12": true, + "8:3": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-11_7.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-11_7.json index 6b724e4e..feb2ef05 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-11_7.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-11_7.json @@ -1 +1,15 @@ -{"15:9":true,"14:9":true,"15:7":true,"13:6":true,"14:7":true,"13:5":true,"15:0":true,"14:6":true,"15:5":true,"15:6":true,"14:0":true,"15:8":true,"14:8":true} \ No newline at end of file +{ + "15:9": true, + "14:9": true, + "15:7": true, + "13:6": true, + "14:7": true, + "13:5": true, + "15:0": true, + "14:6": true, + "15:5": true, + "15:6": true, + "14:0": true, + "15:8": true, + "14:8": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-1_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-1_0.json index 2734cb56..bd0f39ea 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-1_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-1_0.json @@ -1 +1,58 @@ -{"12:1":true,"9:3":true,"1:11":true,"11:5":true,"10:4":true,"12:5":true,"10:3":true,"11:1":true,"15:7":true,"13:6":true,"9:2":true,"13:0":true,"14:7":true,"8:1":true,"10:2":true,"14:1":true,"13:2":true,"15:5":true,"10:0":true,"14:5":true,"15:1":true,"9:0":true,"7:0":true,"13:3":true,"0:14":145,"13:4":true,"15:4":true,"11:0":true,"14:3":true,"12:6":true,"2:12":true,"15:3":true,"12:0":true,"14:4":true,"8:0":true,"14:2":true,"13:1":true,"0:11":true,"15:2":true,"13:5":true,"15:0":true,"14:6":true,"12:3":true,"11:4":true,"9:1":true,"10:1":true,"13:7":true,"12:4":true,"11:3":true,"8:2":true,"15:6":true,"14:0":true,"12:2":true,"11:2":true,"1:12":true,"7:1":true} \ No newline at end of file +{ + "12:1": true, + "9:3": true, + "1:11": true, + "11:5": true, + "10:4": true, + "12:5": true, + "10:3": true, + "11:1": true, + "15:7": true, + "13:6": true, + "9:2": true, + "13:0": true, + "14:7": true, + "8:1": true, + "10:2": true, + "14:1": true, + "13:2": true, + "15:5": true, + "10:0": true, + "14:5": true, + "15:1": true, + "9:0": true, + "7:0": true, + "13:3": true, + "0:14": 145, + "13:4": true, + "15:4": true, + "11:0": true, + "14:3": true, + "12:6": true, + "2:12": true, + "15:3": true, + "12:0": true, + "14:4": true, + "8:0": true, + "14:2": true, + "13:1": true, + "0:11": true, + "15:2": true, + "13:5": true, + "15:0": true, + "14:6": true, + "12:3": true, + "11:4": true, + "9:1": true, + "10:1": true, + "13:7": true, + "12:4": true, + "11:3": true, + "8:2": true, + "15:6": true, + "14:0": true, + "12:2": true, + "11:2": true, + "1:12": true, + "7:1": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-1_1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-1_1.json index a52bf506..7f7300c1 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-1_1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-1_1.json @@ -1 +1,66 @@ -{"1:1":146,"10:10":true,"9:10":true,"3:2":146,"2:1":145,"4:3":145,"2:12":[143,144],"2:15":161,"9:9":true,"4:2":145,"15:15":true,"5:2":145,"2:14":136,"1:13":[137,139],"2:13":142,"1:14":136,"5:0":[167,169],"4:0":[168,169],"1:12":[140,146],"6:0":[166,167],"3:13":[143,146],"0:13":137,"4:1":145,"0:12":[143,147],"5:14":[144,145],"2:2":146,"3:1":145,"12:13":true,"12:14":true,"9:11":true,"11:14":true,"1:2":true,"11:15":true,"4:13":[144,146]} \ No newline at end of file +{ + "1:1": 146, + "10:10": true, + "9:10": true, + "3:2": 146, + "2:1": 145, + "4:3": 145, + "2:12": [ + 143, + 144 + ], + "2:15": 161, + "9:9": true, + "4:2": 145, + "15:15": true, + "5:2": 145, + "2:14": 136, + "1:13": [ + 137, + 139 + ], + "2:13": 142, + "1:14": 136, + "5:0": [ + 167, + 169 + ], + "4:0": [ + 168, + 169 + ], + "1:12": [ + 140, + 146 + ], + "6:0": [ + 166, + 167 + ], + "3:13": [ + 143, + 146 + ], + "0:13": 137, + "4:1": 145, + "0:12": [ + 143, + 147 + ], + "5:14": [ + 144, + 145 + ], + "2:2": 146, + "3:1": 145, + "12:13": true, + "12:14": true, + "9:11": true, + "11:14": true, + "1:2": true, + "11:15": true, + "4:13": [ + 144, + 146 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-1_10.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-1_10.json index aa6db439..3c099835 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-1_10.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-1_10.json @@ -1 +1,51 @@ -{"11:5":true,"14:1":true,"13:15":true,"1:7":127,"11:0":true,"5:3":127,"15:14":true,"12:0":true,"4:4":127,"3:5":127,"14:15":true,"13:1":true,"15:15":true,"12:3":true,"11:4":true,"2:13":true,"5:0":207,"14:10":true,"12:4":true,"11:3":true,"4:0":127,"11:2":true,"13:9":true,"12:1":true,"6:0":207,"10:4":true,"10:3":true,"13:0":true,"10:2":true,"12:8":true,"7:3":true,"13:2":true,"10:6":true,"5:1":127,"3:15":true,"15:11":true,"11:7":127,"3:14":true,"6:2":127,"15:4":127,"14:3":true,"0:8":127,"15:3":127,"14:2":true,"15:2":127,"9:5":true,"14:0":127,"8:4":true,"2:6":127} \ No newline at end of file +{ + "11:5": true, + "14:1": true, + "13:15": true, + "1:7": 127, + "11:0": true, + "5:3": 127, + "15:14": true, + "12:0": true, + "4:4": 127, + "3:5": 127, + "14:15": true, + "13:1": true, + "15:15": true, + "12:3": true, + "11:4": true, + "2:13": true, + "5:0": 207, + "14:10": true, + "12:4": true, + "11:3": true, + "4:0": 127, + "11:2": true, + "13:9": true, + "12:1": true, + "6:0": 207, + "10:4": true, + "10:3": true, + "13:0": true, + "10:2": true, + "12:8": true, + "7:3": true, + "13:2": true, + "10:6": true, + "5:1": 127, + "3:15": true, + "15:11": true, + "11:7": 127, + "3:14": true, + "6:2": 127, + "15:4": 127, + "14:3": true, + "0:8": 127, + "15:3": 127, + "14:2": true, + "15:2": 127, + "9:5": true, + "14:0": 127, + "8:4": true, + "2:6": 127 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-1_11.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-1_11.json index d3691eee..bac1f70b 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-1_11.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-1_11.json @@ -1 +1,67 @@ -{"12:1":true,"1:1":true,"11:5":true,"10:4":true,"2:7":115,"12:5":true,"11:1":true,"3:0":true,"13:0":true,"8:1":true,"3:6":true,"14:1":true,"13:2":true,"8:7":true,"9:6":true,"4:1":true,"0:2":true,"14:5":true,"10:6":true,"5:1":true,"4:5":true,"15:1":true,"13:3":true,"3:4":true,"2:5":true,"13:4":true,"3:3":true,"2:1":true,"15:4":true,"14:3":true,"12:6":true,"7:7":true,"2:2":true,"15:3":true,"6:1":true,"14:4":true,"11:6":true,"4:4":true,"10:7":true,"3:5":true,"2:4":true,"14:2":true,"13:1":true,"0:1":true,"9:7":true,"3:1":true,"13:5":true,"2:3":true,"12:3":true,"11:4":true,"10:5":true,"15:0":true,"9:1":true,"4:6":true,"3:7":true,"1:3":true,"10:1":true,"9:5":true,"12:4":true,"14:0":true,"2:0":true,"12:2":true,"1:2":true,"6:7":true,"7:1":true} \ No newline at end of file +{ + "12:1": true, + "1:1": true, + "11:5": true, + "10:4": true, + "2:7": 115, + "12:5": true, + "11:1": true, + "3:0": true, + "13:0": true, + "8:1": true, + "3:6": true, + "14:1": true, + "13:2": true, + "8:7": true, + "9:6": true, + "4:1": true, + "0:2": true, + "14:5": true, + "10:6": true, + "5:1": true, + "4:5": true, + "15:1": true, + "13:3": true, + "3:4": true, + "2:5": true, + "13:4": true, + "3:3": true, + "2:1": true, + "15:4": true, + "14:3": true, + "12:6": true, + "7:7": true, + "2:2": true, + "15:3": true, + "6:1": true, + "14:4": true, + "11:6": true, + "4:4": true, + "10:7": true, + "3:5": true, + "2:4": true, + "14:2": true, + "13:1": true, + "0:1": true, + "9:7": true, + "3:1": true, + "13:5": true, + "2:3": true, + "12:3": true, + "11:4": true, + "10:5": true, + "15:0": true, + "9:1": true, + "4:6": true, + "3:7": true, + "1:3": true, + "10:1": true, + "9:5": true, + "12:4": true, + "14:0": true, + "2:0": true, + "12:2": true, + "1:2": true, + "6:7": true, + "7:1": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-1_3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-1_3.json index 4fb265b7..8aaf3ecd 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-1_3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-1_3.json @@ -1 +1,16 @@ -{"7:13":true,"4:14":true,"7:12":true,"7:15":true,"0:7":true,"15:14":true,"5:12":true,"14:15":true,"4:15":true,"6:12":true,"15:15":true,"4:12":true,"7:14":true,"4:13":true} \ No newline at end of file +{ + "7:13": true, + "4:14": true, + "7:12": true, + "7:15": true, + "0:7": true, + "15:14": true, + "5:12": true, + "14:15": true, + "4:15": true, + "6:12": true, + "15:15": true, + "4:12": true, + "7:14": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-1_7.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-1_7.json index e53a59df..bdceed93 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-1_7.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-1_7.json @@ -1 +1,24 @@ -{"9:14":true,"6:0":true,"10:9":true,"10:14":true,"15:14":true,"9:9":true,"10:12":true,"14:15":true,"9:15":true,"15:15":true,"9:12":true,"10:15":true,"10:10":true,"9:11":true,"5:0":true,"10:11":true,"9:10":true,"4:0":true,"7:0":true,"10:13":true,"9:8":true,"9:13":true} \ No newline at end of file +{ + "9:14": true, + "6:0": true, + "10:9": true, + "10:14": true, + "15:14": true, + "9:9": true, + "10:12": true, + "14:15": true, + "9:15": true, + "15:15": true, + "9:12": true, + "10:15": true, + "10:10": true, + "9:11": true, + "5:0": true, + "10:11": true, + "9:10": true, + "4:0": true, + "7:0": true, + "10:13": true, + "9:8": true, + "9:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-1_8.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-1_8.json index 4d1cb0dc..bc37be21 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-1_8.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-1_8.json @@ -1 +1,40 @@ -{"12:11":true,"1:11":true,"3:13":true,"13:13":true,"6:13":true,"13:0":true,"14:11":true,"14:1":true,"13:15":true,"7:13":true,"15:11":true,"15:1":true,"9:0":true,"1:9":true,"15:8":true,"10:13":true,"14:8":true,"9:13":true,"8:13":true,"1:10":true,"13:8":true,"0:8":130,"11:13":true,"14:15":true,"13:11":true,"15:15":true,"15:2":true,"12:13":true,"1:13":true,"15:0":true,"2:13":true,"14:0":true,"15:13":true,"12:15":true,"5:13":true,"1:15":true,"14:13":true,"4:13":true} \ No newline at end of file +{ + "12:11": true, + "1:11": true, + "3:13": true, + "13:13": true, + "6:13": true, + "13:0": true, + "14:11": true, + "14:1": true, + "13:15": true, + "7:13": true, + "15:11": true, + "15:1": true, + "9:0": true, + "1:9": true, + "15:8": true, + "10:13": true, + "14:8": true, + "9:13": true, + "8:13": true, + "1:10": true, + "13:8": true, + "0:8": 130, + "11:13": true, + "14:15": true, + "13:11": true, + "15:15": true, + "15:2": true, + "12:13": true, + "1:13": true, + "15:0": true, + "2:13": true, + "14:0": true, + "15:13": true, + "12:15": true, + "5:13": true, + "1:15": true, + "14:13": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-1_9.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-1_9.json index 1bd9898c..6352e1c4 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-1_9.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-1_9.json @@ -1 +1,41 @@ -{"12:11":true,"9:14":213,"1:1":true,"10:14":214,"13:15":true,"10:10":127,"0:2":true,"7:13":true,"6:14":true,"1:9":true,"13:14":127,"10:13":215,"9:13":214,"14:14":127,"15:14":true,"15:12":127,"14:15":127,"3:11":127,"8:12":true,"13:7":127,"15:13":true,"2:10":true,"14:13":true,"12:8":127,"11:9":127,"15:5":127,"5:14":true,"0:8":127,"1:0":true,"4:12":true,"5:15":[127,208],"14:6":127,"9:11":127,"11:14":true,"12:15":true,"5:13":127} \ No newline at end of file +{ + "12:11": true, + "9:14": 213, + "1:1": true, + "10:14": 214, + "13:15": true, + "10:10": 127, + "0:2": true, + "7:13": true, + "6:14": true, + "1:9": true, + "13:14": 127, + "10:13": 215, + "9:13": 214, + "14:14": 127, + "15:14": true, + "15:12": 127, + "14:15": 127, + "3:11": 127, + "8:12": true, + "13:7": 127, + "15:13": true, + "2:10": true, + "14:13": true, + "12:8": 127, + "11:9": 127, + "15:5": 127, + "5:14": true, + "0:8": 127, + "1:0": true, + "4:12": true, + "5:15": [ + 127, + 208 + ], + "14:6": 127, + "9:11": 127, + "11:14": true, + "12:15": true, + "5:13": 127 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-2.json index 7ead9273..e4e3ff1e 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-2.json @@ -1 +1,26 @@ -{"15:4":true,"11:0":true,"11:5":true,"12:5":true,"15:3":true,"8:5":true,"8:0":true,"15:2":true,"13:0":true,"13:5":true,"10:2":true,"15:0":true,"10:5":true,"15:5":true,"10:0":true,"14:5":true,"9:5":true,"11:3":true,"8:2":true,"15:1":true,"13:3":true,"8:4":true,"8:3":true,"7:11":true} \ No newline at end of file +{ + "15:4": true, + "11:0": true, + "11:5": true, + "12:5": true, + "15:3": true, + "8:5": true, + "8:0": true, + "15:2": true, + "13:0": true, + "13:5": true, + "10:2": true, + "15:0": true, + "10:5": true, + "15:5": true, + "10:0": true, + "14:5": true, + "9:5": true, + "11:3": true, + "8:2": true, + "15:1": true, + "13:3": true, + "8:4": true, + "8:3": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-3.json index a278b911..ce28df65 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-3.json @@ -1 +1,108 @@ -{"15:9":true,"1:1":true,"11:5":true,"8:8":true,"14:9":true,"15:7":true,"3:0":170,"0:6":true,"0:0":true,"14:7":true,"8:1":true,"3:6":true,"13:10":true,"14:1":true,"8:7":true,"5:5":true,"0:2":true,"4:5":true,"15:1":true,"15:8":true,"14:8":true,"2:1":true,"11:0":true,"4:3":170,"5:4":true,"5:3":true,"13:8":true,"15:14":true,"10:7":true,"3:5":true,"15:12":true,"13:1":true,"4:2":170,"15:15":true,"9:7":true,"5:2":true,"12:3":true,"11:4":true,"9:1":true,"4:6":true,"15:10":true,"5:0":true,"14:10":true,"10:1":true,"5:6":true,"13:7":true,"11:3":true,"4:0":170,"10:8":true,"11:2":true,"13:9":true,"9:8":true,"9:3":true,"10:4":true,"10:3":true,"1:5":true,"11:1":true,"9:4":true,"8:5":true,"13:6":true,"9:2":true,"13:0":true,"10:2":true,"13:2":true,"9:6":true,"4:1":170,"15:5":true,"10:0":true,"14:5":true,"10:6":true,"5:1":170,"9:0":true,"13:3":true,"13:4":true,"15:4":true,"14:3":true,"1:6":[151,169],"15:3":true,"1:0":true,"14:4":true,"8:0":true,"14:2":true,"13:11":true,"0:1":true,"15:2":true,"8:6":true,"3:1":170,"13:5":true,"15:0":true,"14:6":true,"10:5":true,"9:5":true,"8:2":true,"15:6":true,"14:0":true,"2:0":170,"11:12":true,"8:4":true,"8:3":true,"2:6":[151,169]} \ No newline at end of file +{ + "15:9": true, + "1:1": true, + "11:5": true, + "8:8": true, + "14:9": true, + "15:7": true, + "3:0": 170, + "0:6": true, + "0:0": true, + "14:7": true, + "8:1": true, + "3:6": true, + "13:10": true, + "14:1": true, + "8:7": true, + "5:5": true, + "0:2": true, + "4:5": true, + "15:1": true, + "15:8": true, + "14:8": true, + "2:1": true, + "11:0": true, + "4:3": 170, + "5:4": true, + "5:3": true, + "13:8": true, + "15:14": true, + "10:7": true, + "3:5": true, + "15:12": true, + "13:1": true, + "4:2": 170, + "15:15": true, + "9:7": true, + "5:2": true, + "12:3": true, + "11:4": true, + "9:1": true, + "4:6": true, + "15:10": true, + "5:0": true, + "14:10": true, + "10:1": true, + "5:6": true, + "13:7": true, + "11:3": true, + "4:0": 170, + "10:8": true, + "11:2": true, + "13:9": true, + "9:8": true, + "9:3": true, + "10:4": true, + "10:3": true, + "1:5": true, + "11:1": true, + "9:4": true, + "8:5": true, + "13:6": true, + "9:2": true, + "13:0": true, + "10:2": true, + "13:2": true, + "9:6": true, + "4:1": 170, + "15:5": true, + "10:0": true, + "14:5": true, + "10:6": true, + "5:1": 170, + "9:0": true, + "13:3": true, + "13:4": true, + "15:4": true, + "14:3": true, + "1:6": [ + 151, + 169 + ], + "15:3": true, + "1:0": true, + "14:4": true, + "8:0": true, + "14:2": true, + "13:11": true, + "0:1": true, + "15:2": true, + "8:6": true, + "3:1": 170, + "13:5": true, + "15:0": true, + "14:6": true, + "10:5": true, + "9:5": true, + "8:2": true, + "15:6": true, + "14:0": true, + "2:0": 170, + "11:12": true, + "8:4": true, + "8:3": true, + "2:6": [ + 151, + 169 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-4.json index 384c6db4..5c22c130 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-4.json @@ -1 +1,205 @@ -{"1:1":170,"8:8":true,"6:10":true,"13:13":true,"3:6":true,"14:1":true,"13:15":true,"10:10":true,"8:7":true,"5:5":true,"4:11":true,"0:2":true,"9:10":true,"5:11":true,"4:5":true,"13:12":true,"3:2":true,"15:1":true,"13:14":true,"3:4":true,"0:3":true,"8:9":true,"3:3":true,"0:4":true,"2:1":170,"14:14":true,"4:3":true,"5:4":true,"2:12":true,"10:9":true,"5:3":true,"2:15":170,"15:14":true,"9:9":true,"4:4":true,"10:7":true,"8:10":true,"6:8":true,"3:5":true,"15:12":true,"14:15":true,"13:1":true,"4:2":true,"0:11":true,"15:15":true,"14:12":true,"9:7":true,"3:11":true,"5:2":true,"2:14":170,"1:13":170,"6:9":true,"4:6":true,"2:13":true,"1:14":170,"5:0":170,"5:6":true,"4:0":170,"15:13":true,"1:15":170,"10:8":true,"1:12":true,"9:8":true,"14:13":true,"1:11":true,"3:13":true,"1:5":true,"11:8":true,"13:6":true,"13:0":true,"14:11":true,"13:2":true,"4:1":170,"3:12":true,"11:9":true,"15:5":true,"14:5":true,"5:1":170,"3:15":170,"15:11":true,"13:3":true,"11:7":true,"2:5":true,"13:4":true,"3:14":170,"2:11":true,"15:4":true,"14:3":true,"4:14":true,"1:6":true,"11:10":true,"5:14":true,"2:2":true,"15:3":true,"14:4":true,"5:12":true,"2:4":true,"14:2":true,"13:11":true,"4:15":170,"15:2":true,"4:12":true,"3:1":170,"13:5":true,"5:15":true,"2:3":true,"15:0":true,"14:6":true,"1:3":true,"1:4":true,"15:6":true,"14:0":true,"5:13":true,"1:2":170,"4:13":true,"2:6":true,"15:9":true,"9:14":true,"11:5":true,"2:7":true,"10:14":true,"14:9":true,"11:11":true,"10:12":true,"2:9":true,"15:7":true,"9:15":true,"14:7":true,"9:12":true,"8:1":170,"13:10":true,"10:15":true,"1:8":true,"2:8":true,"1:9":true,"15:8":true,"10:13":true,"6:12":true,"1:7":true,"14:8":true,"9:13":true,"8:13":true,"1:10":true,"13:8":true,"11:6":true,"11:4":true,"9:1":true,"8:12":true,"15:10":true,"14:10":true,"10:1":true,"13:7":true,"11:3":true,"8:15":true,"2:10":true,"11:2":true,"8:14":true,"13:9":true,"12:1":true,"9:3":true,"10:4":true,"5:9":true,"10:3":true,"4:9":true,"11:1":true,"9:4":true,"8:5":true,"5:7":true,"3:10":true,"9:2":true,"8:11":true,"4:7":true,"10:2":true,"0:10":true,"9:6":true,"10:0":true,"10:6":true,"9:0":true,"5:8":true,"4:8":true,"3:8":true,"6:11":true,"11:13":true,"8:0":[170,212],"8:6":true,"10:5":true,"9:11":true,"5:10":true,"3:7":true,"10:11":true,"9:5":true,"4:10":true,"11:14":true,"8:2":true,"11:12":true,"8:4":true,"3:9":true,"11:15":true,"8:3":true,"0:9":true} \ No newline at end of file +{ + "1:1": 170, + "8:8": true, + "6:10": true, + "13:13": true, + "3:6": true, + "14:1": true, + "13:15": true, + "10:10": true, + "8:7": true, + "5:5": true, + "4:11": true, + "0:2": true, + "9:10": true, + "5:11": true, + "4:5": true, + "13:12": true, + "3:2": true, + "15:1": true, + "13:14": true, + "3:4": true, + "0:3": true, + "8:9": true, + "3:3": true, + "0:4": true, + "2:1": 170, + "14:14": true, + "4:3": true, + "5:4": true, + "2:12": true, + "10:9": true, + "5:3": true, + "2:15": 170, + "15:14": true, + "9:9": true, + "4:4": true, + "10:7": true, + "8:10": true, + "6:8": true, + "3:5": true, + "15:12": true, + "14:15": true, + "13:1": true, + "4:2": true, + "0:11": true, + "15:15": true, + "14:12": true, + "9:7": true, + "3:11": true, + "5:2": true, + "2:14": 170, + "1:13": 170, + "6:9": true, + "4:6": true, + "2:13": true, + "1:14": 170, + "5:0": 170, + "5:6": true, + "4:0": 170, + "15:13": true, + "1:15": 170, + "10:8": true, + "1:12": true, + "9:8": true, + "14:13": true, + "1:11": true, + "3:13": true, + "1:5": true, + "11:8": true, + "13:6": true, + "13:0": true, + "14:11": true, + "13:2": true, + "4:1": 170, + "3:12": true, + "11:9": true, + "15:5": true, + "14:5": true, + "5:1": 170, + "3:15": 170, + "15:11": true, + "13:3": true, + "11:7": true, + "2:5": true, + "13:4": true, + "3:14": 170, + "2:11": true, + "15:4": true, + "14:3": true, + "4:14": true, + "1:6": true, + "11:10": true, + "5:14": true, + "2:2": true, + "15:3": true, + "14:4": true, + "5:12": true, + "2:4": true, + "14:2": true, + "13:11": true, + "4:15": 170, + "15:2": true, + "4:12": true, + "3:1": 170, + "13:5": true, + "5:15": true, + "2:3": true, + "15:0": true, + "14:6": true, + "1:3": true, + "1:4": true, + "15:6": true, + "14:0": true, + "5:13": true, + "1:2": 170, + "4:13": true, + "2:6": true, + "15:9": true, + "9:14": true, + "11:5": true, + "2:7": true, + "10:14": true, + "14:9": true, + "11:11": true, + "10:12": true, + "2:9": true, + "15:7": true, + "9:15": true, + "14:7": true, + "9:12": true, + "8:1": 170, + "13:10": true, + "10:15": true, + "1:8": true, + "2:8": true, + "1:9": true, + "15:8": true, + "10:13": true, + "6:12": true, + "1:7": true, + "14:8": true, + "9:13": true, + "8:13": true, + "1:10": true, + "13:8": true, + "11:6": true, + "11:4": true, + "9:1": true, + "8:12": true, + "15:10": true, + "14:10": true, + "10:1": true, + "13:7": true, + "11:3": true, + "8:15": true, + "2:10": true, + "11:2": true, + "8:14": true, + "13:9": true, + "12:1": true, + "9:3": true, + "10:4": true, + "5:9": true, + "10:3": true, + "4:9": true, + "11:1": true, + "9:4": true, + "8:5": true, + "5:7": true, + "3:10": true, + "9:2": true, + "8:11": true, + "4:7": true, + "10:2": true, + "0:10": true, + "9:6": true, + "10:0": true, + "10:6": true, + "9:0": true, + "5:8": true, + "4:8": true, + "3:8": true, + "6:11": true, + "11:13": true, + "8:0": [ + 170, + 212 + ], + "8:6": true, + "10:5": true, + "9:11": true, + "5:10": true, + "3:7": true, + "10:11": true, + "9:5": true, + "4:10": true, + "11:14": true, + "8:2": true, + "11:12": true, + "8:4": true, + "3:9": true, + "11:15": true, + "8:3": true, + "0:9": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-5.json index f5fe8895..036f035b 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-5.json @@ -1 +1,172 @@ -{"15:9":true,"1:1":true,"2:7":true,"13:13":true,"12:5":true,"10:14":170,"14:9":true,"15:7":true,"3:0":true,"9:15":true,"0:0":true,"14:7":true,"9:12":true,"8:1":true,"3:6":true,"13:10":true,"10:15":[170,207],"1:8":true,"14:1":true,"13:15":true,"8:7":true,"5:5":true,"0:2":true,"2:8":true,"9:10":true,"4:5":true,"13:12":true,"3:2":true,"15:1":true,"15:8":true,"13:14":true,"3:4":true,"0:3":true,"8:9":true,"3:3":true,"1:7":true,"0:4":true,"14:8":true,"2:1":true,"11:0":true,"14:14":true,"4:3":true,"8:13":true,"5:4":true,"5:3":true,"13:8":true,"12:0":true,"15:14":true,"4:4":true,"10:7":true,"8:10":true,"3:5":true,"15:12":true,"14:15":true,"13:1":true,"4:2":true,"15:15":true,"14:12":true,"9:7":true,"5:2":true,"2:14":[151,168],"11:4":true,"9:1":true,"8:12":true,"4:6":true,"1:14":[151,168],"15:10":true,"5:0":true,"14:10":true,"10:1":true,"5:6":true,"13:7":true,"8:15":true,"4:0":true,"15:13":true,"10:8":true,"13:9":true,"14:13":true,"6:0":true,"9:3":true,"10:4":true,"10:3":true,"1:5":true,"9:4":true,"8:5":true,"5:7":true,"13:6":true,"9:2":true,"13:0":true,"4:7":true,"10:2":true,"14:11":true,"13:2":true,"9:6":true,"4:1":true,"15:5":true,"10:0":true,"14:5":true,"10:6":true,"5:1":true,"15:11":true,"9:0":true,"7:0":true,"13:3":true,"2:5":true,"0:14":[154,165],"5:8":true,"13:4":true,"3:14":[151,169],"6:2":true,"4:8":true,"15:4":true,"14:3":true,"4:14":[151,169],"1:6":true,"3:8":true,"5:14":[151,169],"2:2":true,"0:8":true,"15:3":true,"1:0":true,"14:4":true,"2:4":true,"8:0":true,"14:2":true,"13:11":true,"4:15":170,"15:2":true,"8:6":true,"3:1":true,"13:5":true,"5:15":170,"2:3":true,"15:0":true,"14:6":true,"10:5":true,"3:7":true,"1:3":true,"9:5":true,"11:14":true,"8:2":true,"1:4":true,"15:6":true,"14:0":true,"2:0":true,"8:4":true,"1:2":true,"8:3":true,"2:6":true} \ No newline at end of file +{ + "15:9": true, + "1:1": true, + "2:7": true, + "13:13": true, + "12:5": true, + "10:14": 170, + "14:9": true, + "15:7": true, + "3:0": true, + "9:15": true, + "0:0": true, + "14:7": true, + "9:12": true, + "8:1": true, + "3:6": true, + "13:10": true, + "10:15": [ + 170, + 207 + ], + "1:8": true, + "14:1": true, + "13:15": true, + "8:7": true, + "5:5": true, + "0:2": true, + "2:8": true, + "9:10": true, + "4:5": true, + "13:12": true, + "3:2": true, + "15:1": true, + "15:8": true, + "13:14": true, + "3:4": true, + "0:3": true, + "8:9": true, + "3:3": true, + "1:7": true, + "0:4": true, + "14:8": true, + "2:1": true, + "11:0": true, + "14:14": true, + "4:3": true, + "8:13": true, + "5:4": true, + "5:3": true, + "13:8": true, + "12:0": true, + "15:14": true, + "4:4": true, + "10:7": true, + "8:10": true, + "3:5": true, + "15:12": true, + "14:15": true, + "13:1": true, + "4:2": true, + "15:15": true, + "14:12": true, + "9:7": true, + "5:2": true, + "2:14": [ + 151, + 168 + ], + "11:4": true, + "9:1": true, + "8:12": true, + "4:6": true, + "1:14": [ + 151, + 168 + ], + "15:10": true, + "5:0": true, + "14:10": true, + "10:1": true, + "5:6": true, + "13:7": true, + "8:15": true, + "4:0": true, + "15:13": true, + "10:8": true, + "13:9": true, + "14:13": true, + "6:0": true, + "9:3": true, + "10:4": true, + "10:3": true, + "1:5": true, + "9:4": true, + "8:5": true, + "5:7": true, + "13:6": true, + "9:2": true, + "13:0": true, + "4:7": true, + "10:2": true, + "14:11": true, + "13:2": true, + "9:6": true, + "4:1": true, + "15:5": true, + "10:0": true, + "14:5": true, + "10:6": true, + "5:1": true, + "15:11": true, + "9:0": true, + "7:0": true, + "13:3": true, + "2:5": true, + "0:14": [ + 154, + 165 + ], + "5:8": true, + "13:4": true, + "3:14": [ + 151, + 169 + ], + "6:2": true, + "4:8": true, + "15:4": true, + "14:3": true, + "4:14": [ + 151, + 169 + ], + "1:6": true, + "3:8": true, + "5:14": [ + 151, + 169 + ], + "2:2": true, + "0:8": true, + "15:3": true, + "1:0": true, + "14:4": true, + "2:4": true, + "8:0": true, + "14:2": true, + "13:11": true, + "4:15": 170, + "15:2": true, + "8:6": true, + "3:1": true, + "13:5": true, + "5:15": 170, + "2:3": true, + "15:0": true, + "14:6": true, + "10:5": true, + "3:7": true, + "1:3": true, + "9:5": true, + "11:14": true, + "8:2": true, + "1:4": true, + "15:6": true, + "14:0": true, + "2:0": true, + "8:4": true, + "1:2": true, + "8:3": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-7.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-7.json index 0b2eacc6..2ddd3045 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-7.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_-7.json @@ -1 +1,86 @@ -{"15:9":true,"12:11":true,"9:14":true,"13:13":true,"12:5":true,"10:14":true,"14:9":true,"11:11":true,"10:12":true,"11:8":true,"13:6":true,"9:15":true,"14:7":true,"9:12":true,"8:11":true,"8:1":true,"13:10":true,"10:15":true,"12:8":true,"14:11":true,"13:15":true,"10:10":true,"11:9":true,"15:5":true,"14:5":true,"9:10":true,"13:12":true,"15:11":true,"12:9":true,"15:8":true,"13:14":true,"11:7":true,"10:13":true,"8:9":true,"13:4":true,"12:7":true,"14:8":true,"9:13":true,"15:4":true,"14:3":true,"14:14":true,"12:6":true,"8:13":true,"10:9":true,"12:10":true,"13:8":true,"15:3":true,"15:14":true,"9:9":true,"14:4":true,"11:6":true,"10:7":true,"8:10":true,"15:12":true,"14:15":true,"13:11":true,"15:2":true,"15:15":true,"14:12":true,"13:5":true,"14:6":true,"12:14":true,"9:11":true,"8:12":true,"15:10":true,"14:10":true,"10:11":true,"13:7":true,"8:15":true,"15:6":true,"15:13":[155,215],"12:15":true,"11:12":true,"10:8":true,"12:12":true,"11:15":true,"8:14":true,"8:3":true,"13:9":true,"9:8":true,"14:13":true} \ No newline at end of file +{ + "15:9": true, + "12:11": true, + "9:14": true, + "13:13": true, + "12:5": true, + "10:14": true, + "14:9": true, + "11:11": true, + "10:12": true, + "11:8": true, + "13:6": true, + "9:15": true, + "14:7": true, + "9:12": true, + "8:11": true, + "8:1": true, + "13:10": true, + "10:15": true, + "12:8": true, + "14:11": true, + "13:15": true, + "10:10": true, + "11:9": true, + "15:5": true, + "14:5": true, + "9:10": true, + "13:12": true, + "15:11": true, + "12:9": true, + "15:8": true, + "13:14": true, + "11:7": true, + "10:13": true, + "8:9": true, + "13:4": true, + "12:7": true, + "14:8": true, + "9:13": true, + "15:4": true, + "14:3": true, + "14:14": true, + "12:6": true, + "8:13": true, + "10:9": true, + "12:10": true, + "13:8": true, + "15:3": true, + "15:14": true, + "9:9": true, + "14:4": true, + "11:6": true, + "10:7": true, + "8:10": true, + "15:12": true, + "14:15": true, + "13:11": true, + "15:2": true, + "15:15": true, + "14:12": true, + "13:5": true, + "14:6": true, + "12:14": true, + "9:11": true, + "8:12": true, + "15:10": true, + "14:10": true, + "10:11": true, + "13:7": true, + "8:15": true, + "15:6": true, + "15:13": [ + 155, + 215 + ], + "12:15": true, + "11:12": true, + "10:8": true, + "12:12": true, + "11:15": true, + "8:14": true, + "8:3": true, + "13:9": true, + "9:8": true, + "14:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_0.json index ef608932..5f8b086a 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_0.json @@ -1 +1,61 @@ -{"12:11":147,"13:13":[148,149],"11:11":148,"2:9":[155,239],"2:8":154,"1:9":[154,239],"13:14":148,"14:14":147,"1:10":238,"15:14":146,"15:12":243,"14:15":[148,149],"14:12":145,"2:14":[175,176],"1:14":[174,175],"15:13":145,"2:10":238,"14:13":146,"1:11":237,"4:9":240,"5:7":153,"3:10":[238,239],"0:10":153,"9:6":152,"15:11":true,"3:14":[175,176],"2:11":[236,237],"4:14":175,"0:8":true,"3:9":240,"12:12":148,"0:9":153} \ No newline at end of file +{ + "12:11": 147, + "13:13": [ + 148, + 149 + ], + "11:11": 148, + "2:9": [ + 155, + 239 + ], + "2:8": 154, + "1:9": [ + 154, + 239 + ], + "13:14": 148, + "14:14": 147, + "1:10": 238, + "15:14": 146, + "15:12": 243, + "14:15": [ + 148, + 149 + ], + "14:12": 145, + "2:14": [ + 175, + 176 + ], + "1:14": [ + 174, + 175 + ], + "15:13": 145, + "2:10": 238, + "14:13": 146, + "1:11": 237, + "4:9": 240, + "5:7": 153, + "3:10": [ + 238, + 239 + ], + "0:10": 153, + "9:6": 152, + "15:11": true, + "3:14": [ + 175, + 176 + ], + "2:11": [ + 236, + 237 + ], + "4:14": 175, + "0:8": true, + "3:9": 240, + "12:12": 148, + "0:9": 153 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_10.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_10.json index 2f50b994..51e98b28 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_10.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_10.json @@ -1 +1,59 @@ -{"15:9":127,"6:13":true,"9:12":true,"8:1":true,"14:1":127,"7:13":true,"6:12":true,"2:12":true,"6:1":true,"13:1":127,"5:2":true,"1:13":[170,171],"12:3":127,"11:4":127,"9:1":true,"8:12":true,"2:13":169,"14:10":127,"11:3":127,"12:2":127,"11:2":true,"7:1":true,"9:3":true,"3:13":true,"10:3":true,"7:2":true,"9:2":true,"13:0":127,"10:2":true,"13:2":127,"3:12":true,"0:12":[129,133],"9:0":true,"7:0":127,"3:14":[145,173],"6:2":true,"4:14":[145,174],"5:14":true,"5:12":true,"8:0":true,"15:0":127,"8:2":true,"14:0":127,"5:13":true,"8:3":true} \ No newline at end of file +{ + "15:9": 127, + "6:13": true, + "9:12": true, + "8:1": true, + "14:1": 127, + "7:13": true, + "6:12": true, + "2:12": true, + "6:1": true, + "13:1": 127, + "5:2": true, + "1:13": [ + 170, + 171 + ], + "12:3": 127, + "11:4": 127, + "9:1": true, + "8:12": true, + "2:13": 169, + "14:10": 127, + "11:3": 127, + "12:2": 127, + "11:2": true, + "7:1": true, + "9:3": true, + "3:13": true, + "10:3": true, + "7:2": true, + "9:2": true, + "13:0": 127, + "10:2": true, + "13:2": 127, + "3:12": true, + "0:12": [ + 129, + 133 + ], + "9:0": true, + "7:0": 127, + "3:14": [ + 145, + 173 + ], + "6:2": true, + "4:14": [ + 145, + 174 + ], + "5:14": true, + "5:12": true, + "8:0": true, + "15:0": 127, + "8:2": true, + "14:0": 127, + "5:13": true, + "8:3": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_11.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_11.json index 2b5520cf..5bae7eda 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_11.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_11.json @@ -1 +1,17 @@ -{"15:4":true,"12:1":true,"15:3":true,"11:1":true,"8:0":true,"13:1":true,"15:2":true,"4:7":true,"15:0":true,"14:1":true,"15:5":true,"10:0":true,"15:6":true,"15:1":true,"9:0":true} \ No newline at end of file +{ + "15:4": true, + "12:1": true, + "15:3": true, + "11:1": true, + "8:0": true, + "13:1": true, + "15:2": true, + "4:7": true, + "15:0": true, + "14:1": true, + "15:5": true, + "10:0": true, + "15:6": true, + "15:1": true, + "9:0": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_3.json index 1f44a377..a6a343e8 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_3.json @@ -1 +1,3 @@ -{"0:3":true} \ No newline at end of file +{ + "0:3": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_4.json index 50c8d9d0..030dac50 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_4.json @@ -1 +1,193 @@ -{"15:9":true,"1:1":true,"2:7":true,"8:8":true,"7:12":true,"14:9":true,"10:12":true,"6:13":true,"2:9":true,"15:7":true,"9:15":true,"0:6":[129,148],"14:7":true,"9:12":true,"3:6":true,"1:8":true,"13:15":true,"0:2":true,"14:1":true,"10:10":true,"8:7":true,"4:11":true,"7:13":true,"2:8":true,"9:10":true,"5:11":true,"3:2":true,"1:9":true,"15:8":true,"10:13":true,"0:3":true,"8:9":true,"6:12":true,"1:7":true,"0:4":[129,132],"14:8":true,"9:13":true,"12:6":true,"4:3":[111,177],"8:13":true,"5:4":[173,179],"2:12":true,"10:9":true,"7:7":true,"5:3":[111,179],"1:10":true,"13:8":true,"15:14":true,"9:9":true,"11:6":true,"4:4":[176,177],"10:7":true,"8:10":true,"7:9":true,"13:1":233,"4:2":true,"0:11":true,"15:15":true,"9:7":true,"3:11":true,"5:2":true,"1:13":true,"0:5":[129,132],"12:3":233,"11:4":true,"8:12":true,"7:8":true,"6:9":true,"4:6":true,"2:13":true,"5:6":true,"8:15":true,"13:7":true,"12:4":true,"12:2":234,"2:10":true,"10:8":true,"6:7":true,"1:12":true,"13:9":true,"9:8":true,"9:3":126,"1:11":true,"10:4":[129,132],"3:13":true,"10:3":[129,132],"0:13":true,"7:2":[129,132],"6:6":true,"4:9":true,"9:4":true,"5:7":true,"3:10":true,"11:8":true,"13:6":true,"9:2":[129,132],"8:11":true,"4:7":true,"10:2":[129,132],"0:10":true,"12:8":true,"13:2":true,"9:6":true,"3:12":true,"11:9":true,"15:5":true,"14:5":true,"10:6":true,"0:12":true,"12:9":true,"13:3":true,"11:7":true,"13:4":true,"12:7":true,"6:2":true,"7:6":true,"4:8":true,"2:11":true,"15:4":true,"14:3":true,"1:6":true,"3:8":true,"0:8":true,"15:3":true,"6:11":true,"14:4":true,"5:12":true,"14:2":true,"0:1":true,"15:2":true,"8:6":true,"4:12":true,"13:5":true,"14:6":true,"10:5":true,"9:11":true,"5:10":true,"3:7":true,"10:11":true,"9:5":true,"4:10":true,"8:2":[129,132],"0:7":true,"15:6":true,"12:15":true,"5:13":true,"3:9":true,"11:15":true,"0:9":true,"7:11":true,"4:13":true,"2:6":true} \ No newline at end of file +{ + "15:9": true, + "1:1": true, + "2:7": true, + "8:8": true, + "7:12": true, + "14:9": true, + "10:12": true, + "6:13": true, + "2:9": true, + "15:7": true, + "9:15": true, + "0:6": [ + 129, + 148 + ], + "14:7": true, + "9:12": true, + "3:6": true, + "1:8": true, + "13:15": true, + "0:2": true, + "14:1": true, + "10:10": true, + "8:7": true, + "4:11": true, + "7:13": true, + "2:8": true, + "9:10": true, + "5:11": true, + "3:2": true, + "1:9": true, + "15:8": true, + "10:13": true, + "0:3": true, + "8:9": true, + "6:12": true, + "1:7": true, + "0:4": [ + 129, + 132 + ], + "14:8": true, + "9:13": true, + "12:6": true, + "4:3": [ + 111, + 177 + ], + "8:13": true, + "5:4": [ + 173, + 179 + ], + "2:12": true, + "10:9": true, + "7:7": true, + "5:3": [ + 111, + 179 + ], + "1:10": true, + "13:8": true, + "15:14": true, + "9:9": true, + "11:6": true, + "4:4": [ + 176, + 177 + ], + "10:7": true, + "8:10": true, + "7:9": true, + "13:1": 233, + "4:2": true, + "0:11": true, + "15:15": true, + "9:7": true, + "3:11": true, + "5:2": true, + "1:13": true, + "0:5": [ + 129, + 132 + ], + "12:3": 233, + "11:4": true, + "8:12": true, + "7:8": true, + "6:9": true, + "4:6": true, + "2:13": true, + "5:6": true, + "8:15": true, + "13:7": true, + "12:4": true, + "12:2": 234, + "2:10": true, + "10:8": true, + "6:7": true, + "1:12": true, + "13:9": true, + "9:8": true, + "9:3": 126, + "1:11": true, + "10:4": [ + 129, + 132 + ], + "3:13": true, + "10:3": [ + 129, + 132 + ], + "0:13": true, + "7:2": [ + 129, + 132 + ], + "6:6": true, + "4:9": true, + "9:4": true, + "5:7": true, + "3:10": true, + "11:8": true, + "13:6": true, + "9:2": [ + 129, + 132 + ], + "8:11": true, + "4:7": true, + "10:2": [ + 129, + 132 + ], + "0:10": true, + "12:8": true, + "13:2": true, + "9:6": true, + "3:12": true, + "11:9": true, + "15:5": true, + "14:5": true, + "10:6": true, + "0:12": true, + "12:9": true, + "13:3": true, + "11:7": true, + "13:4": true, + "12:7": true, + "6:2": true, + "7:6": true, + "4:8": true, + "2:11": true, + "15:4": true, + "14:3": true, + "1:6": true, + "3:8": true, + "0:8": true, + "15:3": true, + "6:11": true, + "14:4": true, + "5:12": true, + "14:2": true, + "0:1": true, + "15:2": true, + "8:6": true, + "4:12": true, + "13:5": true, + "14:6": true, + "10:5": true, + "9:11": true, + "5:10": true, + "3:7": true, + "10:11": true, + "9:5": true, + "4:10": true, + "8:2": [ + 129, + 132 + ], + "0:7": true, + "15:6": true, + "12:15": true, + "5:13": true, + "3:9": true, + "11:15": true, + "0:9": true, + "7:11": true, + "4:13": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_6.json index 5a4f9d06..d5fffea6 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_6.json @@ -1 +1,220 @@ -{"15:9":true,"1:1":[129,144],"11:5":true,"6:10":[129,132],"12:5":true,"14:9":true,"15:7":true,"3:0":[141,143],"0:6":[129,148],"0:0":true,"14:7":true,"8:1":true,"3:6":true,"13:10":true,"10:10":true,"5:5":[139,140],"0:2":true,"9:10":true,"4:5":[139,140],"3:2":[141,143],"15:8":true,"3:4":true,"0:3":true,"7:10":[129,132],"3:3":true,"0:4":[129,148],"14:8":true,"2:1":[129,144],"12:6":true,"4:3":[139,140],"10:9":true,"13:8":true,"9:9":true,"6:1":true,"11:6":true,"4:4":[139,140],"10:7":true,"8:10":true,"3:5":true,"4:2":[111,140],"0:11":[129,152],"9:7":true,"5:2":[111,120],"0:5":[129,148],"12:3":true,"11:4":true,"9:1":true,"4:6":true,"15:10":true,"5:0":true,"14:10":true,"10:1":true,"5:6":141,"13:7":true,"12:4":true,"11:3":true,"4:0":[141,143],"10:8":true,"13:9":true,"9:8":true,"7:1":true,"9:3":true,"6:0":true,"1:11":true,"10:4":true,"5:9":[111,179],"10:3":true,"1:5":144,"6:6":[141,168],"4:9":[111,177],"9:4":true,"8:5":true,"3:10":true,"7:4":true,"13:6":true,"9:2":true,"10:2":true,"0:10":[129,132],"7:3":true,"9:6":true,"4:1":[129,140],"15:5":true,"10:0":true,"14:5":true,"10:6":true,"5:1":true,"9:0":true,"6:3":true,"7:0":true,"13:3":true,"2:5":144,"5:8":[173,179],"13:4":true,"7:6":true,"4:8":true,"15:4":true,"14:3":true,"1:6":144,"6:5":[139,168],"2:2":144,"0:8":[129,132],"15:3":true,"1:0":true,"14:4":true,"2:4":144,"8:0":true,"0:1":true,"8:6":true,"3:1":[129,143],"13:5":true,"2:3":144,"14:6":true,"10:5":true,"5:10":[129,132],"1:3":144,"9:5":true,"4:10":[129,132],"8:2":true,"1:4":144,"0:7":[129,132],"15:6":true,"2:0":144,"8:4":true,"1:2":144,"7:5":true,"8:3":true,"0:9":[108,132],"2:6":true} \ No newline at end of file +{ + "15:9": true, + "1:1": [ + 129, + 144 + ], + "11:5": true, + "6:10": [ + 129, + 132 + ], + "12:5": true, + "14:9": true, + "15:7": true, + "3:0": [ + 141, + 143 + ], + "0:6": [ + 129, + 148 + ], + "0:0": true, + "14:7": true, + "8:1": true, + "3:6": true, + "13:10": true, + "10:10": true, + "5:5": [ + 139, + 140 + ], + "0:2": true, + "9:10": true, + "4:5": [ + 139, + 140 + ], + "3:2": [ + 141, + 143 + ], + "15:8": true, + "3:4": true, + "0:3": true, + "7:10": [ + 129, + 132 + ], + "3:3": true, + "0:4": [ + 129, + 148 + ], + "14:8": true, + "2:1": [ + 129, + 144 + ], + "12:6": true, + "4:3": [ + 139, + 140 + ], + "10:9": true, + "13:8": true, + "9:9": true, + "6:1": true, + "11:6": true, + "4:4": [ + 139, + 140 + ], + "10:7": true, + "8:10": true, + "3:5": true, + "4:2": [ + 111, + 140 + ], + "0:11": [ + 129, + 152 + ], + "9:7": true, + "5:2": [ + 111, + 120 + ], + "0:5": [ + 129, + 148 + ], + "12:3": true, + "11:4": true, + "9:1": true, + "4:6": true, + "15:10": true, + "5:0": true, + "14:10": true, + "10:1": true, + "5:6": 141, + "13:7": true, + "12:4": true, + "11:3": true, + "4:0": [ + 141, + 143 + ], + "10:8": true, + "13:9": true, + "9:8": true, + "7:1": true, + "9:3": true, + "6:0": true, + "1:11": true, + "10:4": true, + "5:9": [ + 111, + 179 + ], + "10:3": true, + "1:5": 144, + "6:6": [ + 141, + 168 + ], + "4:9": [ + 111, + 177 + ], + "9:4": true, + "8:5": true, + "3:10": true, + "7:4": true, + "13:6": true, + "9:2": true, + "10:2": true, + "0:10": [ + 129, + 132 + ], + "7:3": true, + "9:6": true, + "4:1": [ + 129, + 140 + ], + "15:5": true, + "10:0": true, + "14:5": true, + "10:6": true, + "5:1": true, + "9:0": true, + "6:3": true, + "7:0": true, + "13:3": true, + "2:5": 144, + "5:8": [ + 173, + 179 + ], + "13:4": true, + "7:6": true, + "4:8": true, + "15:4": true, + "14:3": true, + "1:6": 144, + "6:5": [ + 139, + 168 + ], + "2:2": 144, + "0:8": [ + 129, + 132 + ], + "15:3": true, + "1:0": true, + "14:4": true, + "2:4": 144, + "8:0": true, + "0:1": true, + "8:6": true, + "3:1": [ + 129, + 143 + ], + "13:5": true, + "2:3": 144, + "14:6": true, + "10:5": true, + "5:10": [ + 129, + 132 + ], + "1:3": 144, + "9:5": true, + "4:10": [ + 129, + 132 + ], + "8:2": true, + "1:4": 144, + "0:7": [ + 129, + 132 + ], + "15:6": true, + "2:0": 144, + "8:4": true, + "1:2": 144, + "7:5": true, + "8:3": true, + "0:9": [ + 108, + 132 + ], + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_7.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_7.json index cc177949..8522ddbe 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_7.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_7.json @@ -1 +1,10 @@ -{"0:15":true,"0:3":232,"2:1":233,"2:2":true,"2:4":true,"2:3":true,"1:3":true,"1:2":true} \ No newline at end of file +{ + "0:15": true, + "0:3": 232, + "2:1": 233, + "2:2": true, + "2:4": true, + "2:3": true, + "1:3": true, + "1:2": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_8.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_8.json index 3e21e3c3..032a1fb4 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_8.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_8.json @@ -1 +1,48 @@ -{"15:9":true,"3:13":true,"7:15":true,"6:13":true,"9:15":true,"8:11":true,"10:15":true,"12:8":130,"1:8":true,"4:1":true,"4:11":true,"11:9":true,"7:13":true,"2:8":true,"5:11":true,"3:15":true,"15:8":[129,131],"10:13":true,"6:15":true,"14:8":[130,131],"9:13":true,"8:13":true,"13:8":[130,131],"0:8":true,"6:11":true,"11:13":true,"4:15":true,"5:15":true,"9:11":true,"10:11":true,"8:15":true,"5:13":true,"3:9":true,"11:15":true,"0:9":true,"7:11":true,"4:13":true} \ No newline at end of file +{ + "15:9": true, + "3:13": true, + "7:15": true, + "6:13": true, + "9:15": true, + "8:11": true, + "10:15": true, + "12:8": 130, + "1:8": true, + "4:1": true, + "4:11": true, + "11:9": true, + "7:13": true, + "2:8": true, + "5:11": true, + "3:15": true, + "15:8": [ + 129, + 131 + ], + "10:13": true, + "6:15": true, + "14:8": [ + 130, + 131 + ], + "9:13": true, + "8:13": true, + "13:8": [ + 130, + 131 + ], + "0:8": true, + "6:11": true, + "11:13": true, + "4:15": true, + "5:15": true, + "9:11": true, + "10:11": true, + "8:15": true, + "5:13": true, + "3:9": true, + "11:15": true, + "0:9": true, + "7:11": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_9.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_9.json index 2e8e27c8..4670975e 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-2_9.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-2_9.json @@ -1 +1,47 @@ -{"15:9":[211,214],"9:14":true,"10:14":true,"2:2":true,"11:1":true,"11:13":true,"15:12":206,"15:7":[127,216],"14:2":true,"14:15":127,"9:15":true,"0:1":true,"15:15":[202,203],"15:2":true,"3:1":true,"12:13":true,"14:6":true,"13:2":true,"13:15":127,"12:14":true,"0:2":true,"15:10":209,"11:14":true,"8:15":true,"15:11":true,"15:1":true,"15:8":[214,215],"13:14":true,"12:2":true,"11:12":true,"10:13":true,"1:2":true,"14:8":214} \ No newline at end of file +{ + "15:9": [ + 211, + 214 + ], + "9:14": true, + "10:14": true, + "2:2": true, + "11:1": true, + "11:13": true, + "15:12": 206, + "15:7": [ + 127, + 216 + ], + "14:2": true, + "14:15": 127, + "9:15": true, + "0:1": true, + "15:15": [ + 202, + 203 + ], + "15:2": true, + "3:1": true, + "12:13": true, + "14:6": true, + "13:2": true, + "13:15": 127, + "12:14": true, + "0:2": true, + "15:10": 209, + "11:14": true, + "8:15": true, + "15:11": true, + "15:1": true, + "15:8": [ + 214, + 215 + ], + "13:14": true, + "12:2": true, + "11:12": true, + "10:13": true, + "1:2": true, + "14:8": 214 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_-3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_-3.json index 442b6330..81b28ef2 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_-3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_-3.json @@ -1 +1,12 @@ -{"13:0":[152,166],"13:2":[152,166],"13:3":true,"8:0":true} \ No newline at end of file +{ + "13:0": [ + 152, + 166 + ], + "13:2": [ + 152, + 166 + ], + "13:3": true, + "8:0": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_-4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_-4.json index f30eae4d..64b7be65 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_-4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_-4.json @@ -1 +1,33 @@ -{"11:11":234,"8:1":[205,206],"13:15":[153,166],"5:5":208,"13:12":[153,166],"13:8":true,"13:1":true,"13:9":true,"7:2":206,"13:2":[152,166],"13:4":true,"11:10":true,"12:10":true,"13:11":[152,166],"13:5":true,"10:11":true} \ No newline at end of file +{ + "11:11": 234, + "8:1": [ + 205, + 206 + ], + "13:15": [ + 153, + 166 + ], + "5:5": 208, + "13:12": [ + 153, + 166 + ], + "13:8": true, + "13:1": true, + "13:9": true, + "7:2": 206, + "13:2": [ + 152, + 166 + ], + "13:4": true, + "11:10": true, + "12:10": true, + "13:11": [ + 152, + 166 + ], + "13:5": true, + "10:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_-5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_-5.json index 1817d7ae..a4f4b826 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_-5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_-5.json @@ -1 +1,35 @@ -{"14:9":true,"10:12":199,"13:0":true,"8:11":187,"13:2":true,"10:10":[187,191],"10:13":[171,203],"13:4":true,"9:13":[171,202],"11:10":[187,188],"8:13":201,"13:1":true,"13:5":true,"15:0":true,"9:11":[187,189],"14:10":true,"14:0":true,"11:12":true} \ No newline at end of file +{ + "14:9": true, + "10:12": 199, + "13:0": true, + "8:11": 187, + "13:2": true, + "10:10": [ + 187, + 191 + ], + "10:13": [ + 171, + 203 + ], + "13:4": true, + "9:13": [ + 171, + 202 + ], + "11:10": [ + 187, + 188 + ], + "8:13": 201, + "13:1": true, + "13:5": true, + "15:0": true, + "9:11": [ + 187, + 189 + ], + "14:10": true, + "14:0": true, + "11:12": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_0.json index c6a5087f..5ef00bba 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_0.json @@ -1 +1,83 @@ -{"2:7":232,"8:8":232,"7:12":true,"6:10":true,"2:9":[231,232],"0:6":true,"3:6":231,"1:8":true,"8:7":232,"2:8":[231,232],"5:11":true,"13:12":true,"1:9":true,"15:8":true,"8:9":true,"6:12":true,"1:7":true,"2:12":true,"7:7":true,"1:10":true,"8:10":true,"6:8":true,"15:12":153,"0:11":true,"14:12":true,"3:11":232,"8:12":true,"4:6":231,"15:10":152,"5:6":true,"15:13":154,"2:10":true,"6:7":true,"1:12":true,"14:13":154,"1:11":true,"5:9":true,"6:6":true,"4:9":true,"5:7":true,"3:10":true,"8:11":true,"4:7":true,"10:2":true,"0:10":true,"3:12":231,"15:11":153,"5:8":true,"7:6":true,"4:8":true,"2:11":true,"1:6":true,"3:8":[231,232],"0:8":true,"6:11":true,"5:12":true,"8:6":231,"4:12":231,"5:10":true,"3:7":232,"4:10":[231,232],"0:7":true,"3:9":[231,232],"0:9":true,"7:11":true,"2:6":231} \ No newline at end of file +{ + "2:7": 232, + "8:8": 232, + "7:12": true, + "6:10": true, + "2:9": [ + 231, + 232 + ], + "0:6": true, + "3:6": 231, + "1:8": true, + "8:7": 232, + "2:8": [ + 231, + 232 + ], + "5:11": true, + "13:12": true, + "1:9": true, + "15:8": true, + "8:9": true, + "6:12": true, + "1:7": true, + "2:12": true, + "7:7": true, + "1:10": true, + "8:10": true, + "6:8": true, + "15:12": 153, + "0:11": true, + "14:12": true, + "3:11": 232, + "8:12": true, + "4:6": 231, + "15:10": 152, + "5:6": true, + "15:13": 154, + "2:10": true, + "6:7": true, + "1:12": true, + "14:13": 154, + "1:11": true, + "5:9": true, + "6:6": true, + "4:9": true, + "5:7": true, + "3:10": true, + "8:11": true, + "4:7": true, + "10:2": true, + "0:10": true, + "3:12": 231, + "15:11": 153, + "5:8": true, + "7:6": true, + "4:8": true, + "2:11": true, + "1:6": true, + "3:8": [ + 231, + 232 + ], + "0:8": true, + "6:11": true, + "5:12": true, + "8:6": 231, + "4:12": 231, + "5:10": true, + "3:7": 232, + "4:10": [ + 231, + 232 + ], + "0:7": true, + "3:9": [ + 231, + 232 + ], + "0:9": true, + "7:11": true, + "2:6": 231 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_1.json index ad608523..93f45ca0 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_1.json @@ -1 +1,86 @@ -{"11:5":[192,193],"12:5":[188,189],"8:7":185,"4:11":204,"2:12":[159,183],"7:7":[200,201],"11:6":[189,192],"10:7":[190,191],"9:7":186,"3:11":183,"2:14":185,"12:3":193,"11:4":195,"6:9":202,"4:6":179,"2:13":184,"1:14":[184,185],"12:4":[188,193],"1:15":185,"10:8":191,"11:2":221,"10:4":196,"5:9":203,"10:3":[220,221],"4:9":[182,183],"8:5":201,"3:10":182,"4:7":true,"9:6":[184,185],"3:12":184,"13:3":[191,192],"0:14":207,"4:8":[181,182],"14:3":190,"14:2":191,"15:2":true,"8:6":200,"10:5":185,"5:10":203,"4:10":[183,204],"8:4":162,"7:5":162} \ No newline at end of file +{ + "11:5": [ + 192, + 193 + ], + "12:5": [ + 188, + 189 + ], + "8:7": 185, + "4:11": 204, + "2:12": [ + 159, + 183 + ], + "7:7": [ + 200, + 201 + ], + "11:6": [ + 189, + 192 + ], + "10:7": [ + 190, + 191 + ], + "9:7": 186, + "3:11": 183, + "2:14": 185, + "12:3": 193, + "11:4": 195, + "6:9": 202, + "4:6": 179, + "2:13": 184, + "1:14": [ + 184, + 185 + ], + "12:4": [ + 188, + 193 + ], + "1:15": 185, + "10:8": 191, + "11:2": 221, + "10:4": 196, + "5:9": 203, + "10:3": [ + 220, + 221 + ], + "4:9": [ + 182, + 183 + ], + "8:5": 201, + "3:10": 182, + "4:7": true, + "9:6": [ + 184, + 185 + ], + "3:12": 184, + "13:3": [ + 191, + 192 + ], + "0:14": 207, + "4:8": [ + 181, + 182 + ], + "14:3": 190, + "14:2": 191, + "15:2": true, + "8:6": 200, + "10:5": 185, + "5:10": 203, + "4:10": [ + 183, + 204 + ], + "8:4": 162, + "7:5": 162 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_11.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_11.json index 4b6bb9b4..b61ddcbe 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_11.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_11.json @@ -1 +1,4 @@ -{"8:0":true,"12:0":true} \ No newline at end of file +{ + "8:0": true, + "12:0": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_2.json index c8568d98..c34866aa 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_2.json @@ -1 +1,6 @@ -{"0:0":185,"1:0":185,"0:1":186,"2:0":185} \ No newline at end of file +{ + "0:0": 185, + "1:0": 185, + "0:1": 186, + "2:0": 185 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_4.json index 004f6226..086843da 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_4.json @@ -1 +1,167 @@ -{"15:9":true,"12:11":true,"2:7":true,"8:8":true,"7:12":true,"6:10":true,"13:13":true,"14:9":true,"11:11":true,"10:12":true,"6:13":true,"2:9":true,"15:7":true,"0:6":true,"14:7":true,"9:12":true,"3:6":true,"13:10":true,"1:8":true,"14:1":216,"8:7":true,"0:2":true,"7:13":true,"2:8":true,"13:12":true,"3:2":true,"15:1":[130,151],"1:9":true,"15:8":true,"10:13":true,"3:4":true,"0:3":true,"8:9":true,"7:10":true,"6:12":true,"3:3":true,"1:7":true,"0:4":true,"14:8":true,"9:13":true,"12:6":141,"8:13":true,"10:9":true,"7:7":true,"13:8":true,"9:9":true,"11:6":141,"10:7":[139,168],"8:10":true,"7:9":true,"6:8":true,"3:5":true,"15:12":true,"14:12":true,"9:7":true,"0:5":true,"12:3":[111,177],"11:4":[173,179],"8:12":true,"7:8":true,"6:9":true,"4:6":true,"15:10":true,"14:10":true,"5:6":true,"13:7":true,"12:4":[173,177],"11:3":true,"15:13":true,"12:2":true,"6:7":true,"11:2":true,"13:9":true,"9:8":true,"14:13":true,"10:4":true,"5:9":true,"1:5":true,"7:2":true,"6:6":true,"4:9":true,"5:7":true,"7:4":true,"13:6":[141,143],"9:2":true,"8:11":true,"4:7":true,"10:2":true,"12:8":true,"7:3":true,"14:11":true,"13:2":[129,132],"9:6":true,"6:4":true,"10:6":[141,216],"15:11":true,"12:9":true,"6:3":true,"11:7":[139,140],"2:5":true,"5:8":true,"13:4":true,"12:7":true,"6:2":true,"7:6":true,"4:8":true,"1:6":true,"11:10":true,"6:5":true,"3:8":true,"12:10":true,"2:2":true,"0:8":true,"6:11":true,"11:13":true,"2:4":true,"13:11":true,"8:6":true,"12:13":true,"2:3":true,"14:6":144,"9:11":true,"3:7":true,"1:3":true,"10:11":true,"9:5":true,"8:2":true,"1:4":true,"0:7":true,"15:6":true,"11:12":true,"1:2":true,"7:5":true,"3:9":true,"12:12":true,"0:9":true,"7:11":true,"2:6":true} \ No newline at end of file +{ + "15:9": true, + "12:11": true, + "2:7": true, + "8:8": true, + "7:12": true, + "6:10": true, + "13:13": true, + "14:9": true, + "11:11": true, + "10:12": true, + "6:13": true, + "2:9": true, + "15:7": true, + "0:6": true, + "14:7": true, + "9:12": true, + "3:6": true, + "13:10": true, + "1:8": true, + "14:1": 216, + "8:7": true, + "0:2": true, + "7:13": true, + "2:8": true, + "13:12": true, + "3:2": true, + "15:1": [ + 130, + 151 + ], + "1:9": true, + "15:8": true, + "10:13": true, + "3:4": true, + "0:3": true, + "8:9": true, + "7:10": true, + "6:12": true, + "3:3": true, + "1:7": true, + "0:4": true, + "14:8": true, + "9:13": true, + "12:6": 141, + "8:13": true, + "10:9": true, + "7:7": true, + "13:8": true, + "9:9": true, + "11:6": 141, + "10:7": [ + 139, + 168 + ], + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": true, + "15:12": true, + "14:12": true, + "9:7": true, + "0:5": true, + "12:3": [ + 111, + 177 + ], + "11:4": [ + 173, + 179 + ], + "8:12": true, + "7:8": true, + "6:9": true, + "4:6": true, + "15:10": true, + "14:10": true, + "5:6": true, + "13:7": true, + "12:4": [ + 173, + 177 + ], + "11:3": true, + "15:13": true, + "12:2": true, + "6:7": true, + "11:2": true, + "13:9": true, + "9:8": true, + "14:13": true, + "10:4": true, + "5:9": true, + "1:5": true, + "7:2": true, + "6:6": true, + "4:9": true, + "5:7": true, + "7:4": true, + "13:6": [ + 141, + 143 + ], + "9:2": true, + "8:11": true, + "4:7": true, + "10:2": true, + "12:8": true, + "7:3": true, + "14:11": true, + "13:2": [ + 129, + 132 + ], + "9:6": true, + "6:4": true, + "10:6": [ + 141, + 216 + ], + "15:11": true, + "12:9": true, + "6:3": true, + "11:7": [ + 139, + 140 + ], + "2:5": true, + "5:8": true, + "13:4": true, + "12:7": true, + "6:2": true, + "7:6": true, + "4:8": true, + "1:6": true, + "11:10": true, + "6:5": true, + "3:8": true, + "12:10": true, + "2:2": true, + "0:8": true, + "6:11": true, + "11:13": true, + "2:4": true, + "13:11": true, + "8:6": true, + "12:13": true, + "2:3": true, + "14:6": 144, + "9:11": true, + "3:7": true, + "1:3": true, + "10:11": true, + "9:5": true, + "8:2": true, + "1:4": true, + "0:7": true, + "15:6": true, + "11:12": true, + "1:2": true, + "7:5": true, + "3:9": true, + "12:12": true, + "0:9": true, + "7:11": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_5.json index 1174ffa7..db267e0a 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_5.json @@ -1 +1,71 @@ -{"10:4":true,"7:12":true,"7:15":true,"9:4":true,"10:12":true,"3:10":true,"11:8":true,"2:9":true,"13:6":true,"9:15":true,"0:0":true,"9:12":true,"10:2":true,"10:15":true,"12:8":true,"13:15":true,"10:10":true,"4:11":true,"4:1":true,"3:12":true,"10:0":true,"5:11":true,"5:1":true,"3:2":true,"0:12":[221,227],"9:0":true,"6:3":true,"15:8":true,"6:12":true,"0:4":true,"6:15":true,"14:8":true,"2:1":true,"2:11":[217,222],"15:4":true,"2:12":true,"0:8":true,"6:11":true,"6:1":true,"14:4":true,"5:12":true,"14:15":true,"4:2":true,"15:15":true,"3:11":true,"3:1":true,"5:2":true,"14:6":true,"11:4":true,"6:9":true,"8:12":true,"5:10":true,"10:11":true,"10:1":true,"4:10":true,"12:4":true,"8:15":true,"15:6":true,"12:15":true,"10:8":true,"11:15":true,"1:12":224,"9:8":true} \ No newline at end of file +{ + "10:4": true, + "7:12": true, + "7:15": true, + "9:4": true, + "10:12": true, + "3:10": true, + "11:8": true, + "2:9": true, + "13:6": true, + "9:15": true, + "0:0": true, + "9:12": true, + "10:2": true, + "10:15": true, + "12:8": true, + "13:15": true, + "10:10": true, + "4:11": true, + "4:1": true, + "3:12": true, + "10:0": true, + "5:11": true, + "5:1": true, + "3:2": true, + "0:12": [ + 221, + 227 + ], + "9:0": true, + "6:3": true, + "15:8": true, + "6:12": true, + "0:4": true, + "6:15": true, + "14:8": true, + "2:1": true, + "2:11": [ + 217, + 222 + ], + "15:4": true, + "2:12": true, + "0:8": true, + "6:11": true, + "6:1": true, + "14:4": true, + "5:12": true, + "14:15": true, + "4:2": true, + "15:15": true, + "3:11": true, + "3:1": true, + "5:2": true, + "14:6": true, + "11:4": true, + "6:9": true, + "8:12": true, + "5:10": true, + "10:11": true, + "10:1": true, + "4:10": true, + "12:4": true, + "8:15": true, + "15:6": true, + "12:15": true, + "10:8": true, + "11:15": true, + "1:12": 224, + "9:8": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_6.json index 19d48785..a0f17d70 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_6.json @@ -1 +1,133 @@ -{"11:5":true,"2:7":true,"6:10":true,"12:5":true,"11:11":true,"2:9":true,"0:6":true,"8:1":true,"3:6":true,"13:10":true,"1:8":true,"14:1":true,"10:10":true,"5:5":true,"2:8":true,"9:10":true,"4:5":true,"15:1":true,"1:9":true,"3:4":true,"0:3":true,"7:10":true,"3:3":true,"1:7":true,"0:4":true,"11:0":true,"12:6":true,"4:3":true,"5:4":true,"7:7":true,"5:3":true,"1:10":true,"13:8":true,"12:0":true,"6:1":true,"11:6":true,"4:4":true,"8:10":true,"7:9":true,"6:8":true,"3:5":true,"13:1":true,"0:5":true,"12:3":true,"9:1":true,"7:8":true,"6:9":true,"4:6":true,"10:1":true,"5:6":true,"12:4":true,"12:2":true,"2:10":true,"6:7":true,"11:2":true,"7:1":true,"12:1":true,"9:3":true,"6:0":true,"10:3":true,"1:5":true,"7:2":true,"6:6":true,"11:1":true,"9:4":true,"8:5":true,"3:10":true,"11:8":true,"7:4":true,"13:6":true,"13:0":true,"0:10":true,"12:8":true,"7:3":true,"13:2":true,"9:6":true,"11:9":true,"6:4":true,"15:5":true,"10:0":true,"14:5":true,"10:6":true,"15:11":[130,151],"12:9":true,"9:0":true,"6:3":true,"7:0":true,"13:3":true,"2:5":true,"13:4":true,"6:2":true,"7:6":true,"15:4":true,"14:3":true,"1:6":true,"11:10":true,"6:5":true,"3:8":true,"12:10":true,"0:8":true,"15:3":true,"14:4":true,"2:4":true,"8:0":true,"14:2":true,"4:15":true,"15:2":true,"8:6":true,"13:5":true,"5:15":222,"2:3":true,"15:0":true,"14:6":true,"10:5":true,"3:7":true,"1:3":true,"9:5":true,"8:2":true,"1:4":true,"0:7":true,"15:6":true,"14:0":true,"8:4":true,"7:5":true,"3:9":true,"8:3":true,"0:9":true,"2:6":true} \ No newline at end of file +{ + "11:5": true, + "2:7": true, + "6:10": true, + "12:5": true, + "11:11": true, + "2:9": true, + "0:6": true, + "8:1": true, + "3:6": true, + "13:10": true, + "1:8": true, + "14:1": true, + "10:10": true, + "5:5": true, + "2:8": true, + "9:10": true, + "4:5": true, + "15:1": true, + "1:9": true, + "3:4": true, + "0:3": true, + "7:10": true, + "3:3": true, + "1:7": true, + "0:4": true, + "11:0": true, + "12:6": true, + "4:3": true, + "5:4": true, + "7:7": true, + "5:3": true, + "1:10": true, + "13:8": true, + "12:0": true, + "6:1": true, + "11:6": true, + "4:4": true, + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": true, + "13:1": true, + "0:5": true, + "12:3": true, + "9:1": true, + "7:8": true, + "6:9": true, + "4:6": true, + "10:1": true, + "5:6": true, + "12:4": true, + "12:2": true, + "2:10": true, + "6:7": true, + "11:2": true, + "7:1": true, + "12:1": true, + "9:3": true, + "6:0": true, + "10:3": true, + "1:5": true, + "7:2": true, + "6:6": true, + "11:1": true, + "9:4": true, + "8:5": true, + "3:10": true, + "11:8": true, + "7:4": true, + "13:6": true, + "13:0": true, + "0:10": true, + "12:8": true, + "7:3": true, + "13:2": true, + "9:6": true, + "11:9": true, + "6:4": true, + "15:5": true, + "10:0": true, + "14:5": true, + "10:6": true, + "15:11": [ + 130, + 151 + ], + "12:9": true, + "9:0": true, + "6:3": true, + "7:0": true, + "13:3": true, + "2:5": true, + "13:4": true, + "6:2": true, + "7:6": true, + "15:4": true, + "14:3": true, + "1:6": true, + "11:10": true, + "6:5": true, + "3:8": true, + "12:10": true, + "0:8": true, + "15:3": true, + "14:4": true, + "2:4": true, + "8:0": true, + "14:2": true, + "4:15": true, + "15:2": true, + "8:6": true, + "13:5": true, + "5:15": 222, + "2:3": true, + "15:0": true, + "14:6": true, + "10:5": true, + "3:7": true, + "1:3": true, + "9:5": true, + "8:2": true, + "1:4": true, + "0:7": true, + "15:6": true, + "14:0": true, + "8:4": true, + "7:5": true, + "3:9": true, + "8:3": true, + "0:9": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_7.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_7.json index 16de57fc..93cf5660 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_7.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_7.json @@ -1 +1,4 @@ -{"14:15":true,"15:15":true} \ No newline at end of file +{ + "14:15": true, + "15:15": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_8.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_8.json index ff34c0ae..6bf7f26c 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_8.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_8.json @@ -1 +1,36 @@ -{"9:14":157,"10:14":[157,158],"7:15":153,"13:10":true,"3:15":153,"15:1":true,"15:8":true,"3:4":true,"0:3":true,"0:14":[152,154],"6:15":[153,154],"14:8":true,"10:9":156,"2:15":[151,177],"5:15":153,"2:3":true,"15:0":true,"1:3":true,"1:14":177,"11:14":true,"1:15":true,"13:9":true} \ No newline at end of file +{ + "9:14": 157, + "10:14": [ + 157, + 158 + ], + "7:15": 153, + "13:10": true, + "3:15": 153, + "15:1": true, + "15:8": true, + "3:4": true, + "0:3": true, + "0:14": [ + 152, + 154 + ], + "6:15": [ + 153, + 154 + ], + "14:8": true, + "10:9": 156, + "2:15": [ + 151, + 177 + ], + "5:15": 153, + "2:3": true, + "15:0": true, + "1:3": true, + "1:14": 177, + "11:14": true, + "1:15": true, + "13:9": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_9.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_9.json index 022335ab..9c1516a2 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-3_9.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-3_9.json @@ -1 +1,24 @@ -{"1:1":[142,145],"3:0":true,"9:2":true,"0:0":true,"8:1":true,"7:3":true,"3:2":true,"2:1":true,"5:3":true,"2:2":141,"1:0":true,"14:2":true,"15:2":true,"5:0":true,"10:1":true,"8:2":true,"4:0":true,"2:0":true,"8:3":true} \ No newline at end of file +{ + "1:1": [ + 142, + 145 + ], + "3:0": true, + "9:2": true, + "0:0": true, + "8:1": true, + "7:3": true, + "3:2": true, + "2:1": true, + "5:3": true, + "2:2": 141, + "1:0": true, + "14:2": true, + "15:2": true, + "5:0": true, + "10:1": true, + "8:2": true, + "4:0": true, + "2:0": true, + "8:3": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_-1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_-1.json index cebe97d4..11ba2b08 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_-1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_-1.json @@ -1 +1,50 @@ -{"0:6":[145,202],"0:0":true,"1:8":true,"0:2":[198,202],"15:8":true,"0:3":[198,202],"0:4":[143,202],"14:8":true,"0:11":true,"0:5":[198,202],"0:13":[198,202],"0:10":true,"0:15":true,"0:12":true,"7:0":[141,142],"0:14":[202,240],"1:6":true,"0:8":true,"0:1":true,"0:7":[198,202],"0:9":true} \ No newline at end of file +{ + "0:6": [ + 145, + 202 + ], + "0:0": true, + "1:8": true, + "0:2": [ + 198, + 202 + ], + "15:8": true, + "0:3": [ + 198, + 202 + ], + "0:4": [ + 143, + 202 + ], + "14:8": true, + "0:11": true, + "0:5": [ + 198, + 202 + ], + "0:13": [ + 198, + 202 + ], + "0:10": true, + "0:15": true, + "0:12": true, + "7:0": [ + 141, + 142 + ], + "0:14": [ + 202, + 240 + ], + "1:6": true, + "0:8": true, + "0:1": true, + "0:7": [ + 198, + 202 + ], + "0:9": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_-5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_-5.json index e7de5fa3..879e632f 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_-5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_-5.json @@ -1 +1,20 @@ -{"2:7":true,"7:15":209,"3:6":214,"3:4":215,"2:5":215,"1:7":164,"6:15":208,"1:6":[163,164],"3:8":214,"3:5":214,"2:4":216,"2:3":216,"3:7":214,"3:9":true,"2:6":true} \ No newline at end of file +{ + "2:7": true, + "7:15": 209, + "3:6": 214, + "3:4": 215, + "2:5": 215, + "1:7": 164, + "6:15": 208, + "1:6": [ + 163, + 164 + ], + "3:8": 214, + "3:5": 214, + "2:4": 216, + "2:3": 216, + "3:7": 214, + "3:9": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_-6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_-6.json index 63ccec79..5e345adf 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_-6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_-6.json @@ -1 +1,21 @@ -{"3:12":true,"4:3":true,"5:0":true,"2:12":true,"5:1":true,"5:6":true,"4:5":true,"0:12":[220,226],"4:9":true,"5:7":true,"5:8":true,"1:12":[219,226],"5:2":true} \ No newline at end of file +{ + "3:12": true, + "4:3": true, + "5:0": true, + "2:12": true, + "5:1": true, + "5:6": true, + "4:5": true, + "0:12": [ + 220, + 226 + ], + "4:9": true, + "5:7": true, + "5:8": true, + "1:12": [ + 219, + 226 + ], + "5:2": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_0.json index fac56be4..74ee4eb5 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_0.json @@ -1 +1,102 @@ -{"15:9":true,"2:7":true,"8:8":true,"7:12":true,"6:10":true,"14:9":true,"2:9":true,"15:7":true,"0:6":true,"0:0":true,"14:7":true,"9:12":true,"3:6":true,"13:10":true,"1:8":true,"10:10":true,"8:7":232,"0:2":true,"2:8":true,"9:10":true,"1:9":true,"15:8":true,"0:3":true,"8:9":true,"7:10":true,"6:12":true,"1:7":true,"0:4":true,"14:8":true,"12:6":true,"10:9":true,"7:7":232,"1:10":true,"13:8":true,"9:9":true,"11:6":true,"10:7":true,"8:10":true,"7:9":true,"6:8":true,"0:11":true,"9:7":true,"0:5":true,"8:12":true,"7:8":true,"6:9":true,"4:6":231,"15:10":true,"14:10":true,"5:6":231,"13:7":true,"2:10":true,"10:8":true,"6:7":232,"13:9":true,"9:8":true,"5:9":true,"0:13":true,"6:6":231,"4:9":true,"5:7":true,"3:10":true,"11:8":true,"13:6":true,"4:7":true,"0:10":true,"12:8":true,"14:11":true,"9:6":231,"0:15":true,"11:9":true,"10:6":true,"0:12":true,"15:11":true,"12:9":true,"11:7":true,"2:5":true,"0:14":true,"5:8":true,"12:7":true,"7:6":231,"4:8":true,"1:6":true,"11:10":true,"3:8":true,"12:10":true,"0:8":true,"0:1":true,"8:6":231,"14:6":true,"9:11":true,"5:10":true,"3:7":true,"10:11":true,"4:10":true,"0:7":true,"15:6":true,"3:9":true,"0:9":true,"2:6":true} \ No newline at end of file +{ + "15:9": true, + "2:7": true, + "8:8": true, + "7:12": true, + "6:10": true, + "14:9": true, + "2:9": true, + "15:7": true, + "0:6": true, + "0:0": true, + "14:7": true, + "9:12": true, + "3:6": true, + "13:10": true, + "1:8": true, + "10:10": true, + "8:7": 232, + "0:2": true, + "2:8": true, + "9:10": true, + "1:9": true, + "15:8": true, + "0:3": true, + "8:9": true, + "7:10": true, + "6:12": true, + "1:7": true, + "0:4": true, + "14:8": true, + "12:6": true, + "10:9": true, + "7:7": 232, + "1:10": true, + "13:8": true, + "9:9": true, + "11:6": true, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "0:11": true, + "9:7": true, + "0:5": true, + "8:12": true, + "7:8": true, + "6:9": true, + "4:6": 231, + "15:10": true, + "14:10": true, + "5:6": 231, + "13:7": true, + "2:10": true, + "10:8": true, + "6:7": 232, + "13:9": true, + "9:8": true, + "5:9": true, + "0:13": true, + "6:6": 231, + "4:9": true, + "5:7": true, + "3:10": true, + "11:8": true, + "13:6": true, + "4:7": true, + "0:10": true, + "12:8": true, + "14:11": true, + "9:6": 231, + "0:15": true, + "11:9": true, + "10:6": true, + "0:12": true, + "15:11": true, + "12:9": true, + "11:7": true, + "2:5": true, + "0:14": true, + "5:8": true, + "12:7": true, + "7:6": 231, + "4:8": true, + "1:6": true, + "11:10": true, + "3:8": true, + "12:10": true, + "0:8": true, + "0:1": true, + "8:6": 231, + "14:6": true, + "9:11": true, + "5:10": true, + "3:7": true, + "10:11": true, + "4:10": true, + "0:7": true, + "15:6": true, + "3:9": true, + "0:9": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_1.json index c1c640ba..2ee90774 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_1.json @@ -1 +1,28 @@ -{"2:7":true,"0:13":true,"5:7":true,"0:6":true,"0:0":true,"0:10":true,"0:2":true,"0:15":true,"0:12":true,"3:4":true,"0:3":true,"0:14":true,"3:3":true,"0:4":true,"5:4":true,"5:3":true,"14:15":true,"0:11":true,"0:1":true,"2:3":true,"0:5":true,"3:7":true,"1:14":true,"5:6":true,"0:7":true,"0:9":true} \ No newline at end of file +{ + "2:7": true, + "0:13": true, + "5:7": true, + "0:6": true, + "0:0": true, + "0:10": true, + "0:2": true, + "0:15": true, + "0:12": true, + "3:4": true, + "0:3": true, + "0:14": true, + "3:3": true, + "0:4": true, + "5:4": true, + "5:3": true, + "14:15": true, + "0:11": true, + "0:1": true, + "2:3": true, + "0:5": true, + "3:7": true, + "1:14": true, + "5:6": true, + "0:7": true, + "0:9": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_10.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_10.json index f21789f0..7195ab3e 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_10.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_10.json @@ -1 +1,199 @@ -{"15:9":119,"12:11":true,"1:1":true,"11:5":119,"2:7":true,"8:8":true,"6:10":true,"13:13":true,"12:5":119,"14:9":120,"11:11":true,"10:12":true,"2:9":117,"15:7":119,"3:0":true,"0:6":true,"0:0":true,"14:7":119,"3:6":true,"13:10":true,"1:8":true,"10:10":true,"8:7":true,"5:5":120,"0:2":true,"2:8":true,"9:10":true,"4:5":true,"13:12":true,"3:2":true,"1:9":true,"15:8":119,"3:4":true,"0:3":true,"8:9":true,"7:10":true,"3:3":true,"1:7":true,"14:8":119,"2:1":true,"12:6":119,"4:3":true,"5:4":true,"10:9":true,"7:7":true,"5:3":true,"1:10":true,"13:8":120,"9:9":true,"6:1":true,"11:6":119,"4:4":true,"10:7":true,"8:10":true,"7:9":true,"6:8":true,"3:5":true,"15:12":true,"4:2":true,"0:11":true,"14:12":true,"9:7":true,"5:2":[121,139],"0:5":true,"11:4":118,"7:8":true,"6:9":true,"4:6":[120,161],"2:13":true,"1:14":true,"15:10":120,"5:0":true,"14:10":true,"5:6":120,"13:7":119,"12:4":[117,118],"11:3":true,"4:0":true,"15:13":true,"10:8":true,"6:7":true,"13:9":true,"9:8":true,"7:1":true,"14:13":true,"9:3":118,"6:0":true,"1:11":true,"10:4":119,"5:9":true,"10:3":[116,118],"1:5":true,"0:13":true,"7:2":true,"6:6":true,"4:9":119,"9:4":119,"8:5":true,"5:7":true,"11:8":true,"7:4":120,"13:6":119,"8:11":true,"4:7":120,"0:10":true,"12:8":120,"7:3":[120,163],"14:11":true,"9:6":true,"4:1":true,"0:15":true,"11:9":true,"6:4":true,"15:5":true,"14:5":118,"10:6":119,"5:1":true,"0:12":true,"15:11":120,"12:9":true,"6:3":[120,141],"11:7":120,"2:5":true,"0:14":true,"5:8":true,"13:4":true,"12:7":119,"6:2":true,"7:6":true,"4:8":120,"15:4":true,"1:6":true,"11:10":true,"6:5":120,"3:8":120,"12:10":true,"2:2":true,"0:8":true,"15:3":true,"1:0":true,"14:4":true,"2:4":true,"13:11":true,"0:1":true,"8:6":true,"3:1":true,"13:5":118,"12:13":true,"2:3":true,"14:6":118,"10:5":119,"9:11":true,"3:7":[120,161],"1:3":true,"10:11":true,"9:5":true,"8:2":true,"1:4":true,"0:7":true,"15:6":[118,161],"2:0":true,"11:12":true,"8:4":119,"1:2":true,"7:5":120,"3:9":[118,119],"12:12":true,"8:3":119,"0:9":true,"2:6":true} \ No newline at end of file +{ + "15:9": 119, + "12:11": true, + "1:1": true, + "11:5": 119, + "2:7": true, + "8:8": true, + "6:10": true, + "13:13": true, + "12:5": 119, + "14:9": 120, + "11:11": true, + "10:12": true, + "2:9": 117, + "15:7": 119, + "3:0": true, + "0:6": true, + "0:0": true, + "14:7": 119, + "3:6": true, + "13:10": true, + "1:8": true, + "10:10": true, + "8:7": true, + "5:5": 120, + "0:2": true, + "2:8": true, + "9:10": true, + "4:5": true, + "13:12": true, + "3:2": true, + "1:9": true, + "15:8": 119, + "3:4": true, + "0:3": true, + "8:9": true, + "7:10": true, + "3:3": true, + "1:7": true, + "14:8": 119, + "2:1": true, + "12:6": 119, + "4:3": true, + "5:4": true, + "10:9": true, + "7:7": true, + "5:3": true, + "1:10": true, + "13:8": 120, + "9:9": true, + "6:1": true, + "11:6": 119, + "4:4": true, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": true, + "15:12": true, + "4:2": true, + "0:11": true, + "14:12": true, + "9:7": true, + "5:2": [ + 121, + 139 + ], + "0:5": true, + "11:4": 118, + "7:8": true, + "6:9": true, + "4:6": [ + 120, + 161 + ], + "2:13": true, + "1:14": true, + "15:10": 120, + "5:0": true, + "14:10": true, + "5:6": 120, + "13:7": 119, + "12:4": [ + 117, + 118 + ], + "11:3": true, + "4:0": true, + "15:13": true, + "10:8": true, + "6:7": true, + "13:9": true, + "9:8": true, + "7:1": true, + "14:13": true, + "9:3": 118, + "6:0": true, + "1:11": true, + "10:4": 119, + "5:9": true, + "10:3": [ + 116, + 118 + ], + "1:5": true, + "0:13": true, + "7:2": true, + "6:6": true, + "4:9": 119, + "9:4": 119, + "8:5": true, + "5:7": true, + "11:8": true, + "7:4": 120, + "13:6": 119, + "8:11": true, + "4:7": 120, + "0:10": true, + "12:8": 120, + "7:3": [ + 120, + 163 + ], + "14:11": true, + "9:6": true, + "4:1": true, + "0:15": true, + "11:9": true, + "6:4": true, + "15:5": true, + "14:5": 118, + "10:6": 119, + "5:1": true, + "0:12": true, + "15:11": 120, + "12:9": true, + "6:3": [ + 120, + 141 + ], + "11:7": 120, + "2:5": true, + "0:14": true, + "5:8": true, + "13:4": true, + "12:7": 119, + "6:2": true, + "7:6": true, + "4:8": 120, + "15:4": true, + "1:6": true, + "11:10": true, + "6:5": 120, + "3:8": 120, + "12:10": true, + "2:2": true, + "0:8": true, + "15:3": true, + "1:0": true, + "14:4": true, + "2:4": true, + "13:11": true, + "0:1": true, + "8:6": true, + "3:1": true, + "13:5": 118, + "12:13": true, + "2:3": true, + "14:6": 118, + "10:5": 119, + "9:11": true, + "3:7": [ + 120, + 161 + ], + "1:3": true, + "10:11": true, + "9:5": true, + "8:2": true, + "1:4": true, + "0:7": true, + "15:6": [ + 118, + 161 + ], + "2:0": true, + "11:12": true, + "8:4": 119, + "1:2": true, + "7:5": 120, + "3:9": [ + 118, + 119 + ], + "12:12": true, + "8:3": 119, + "0:9": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_11.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_11.json index 94a5299b..442a1304 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_11.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_11.json @@ -1 +1,13 @@ -{"0:2":[156,158],"0:3":true,"0:1":[157,158],"0:0":true,"0:4":true} \ No newline at end of file +{ + "0:2": [ + 156, + 158 + ], + "0:3": true, + "0:1": [ + 157, + 158 + ], + "0:0": true, + "0:4": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_2.json index 2663a92a..b3c7f83d 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_2.json @@ -1 +1,21 @@ -{"12:1":true,"10:4":[189,190],"13:0":true,"0:0":true,"0:2":true,"0:3":true,"0:4":true,"7:7":194,"6:5":true,"14:2":187,"13:1":true,"0:1":true,"0:5":true,"14:0":true,"7:5":true,"6:7":true} \ No newline at end of file +{ + "12:1": true, + "10:4": [ + 189, + 190 + ], + "13:0": true, + "0:0": true, + "0:2": true, + "0:3": true, + "0:4": true, + "7:7": 194, + "6:5": true, + "14:2": 187, + "13:1": true, + "0:1": true, + "0:5": true, + "14:0": true, + "7:5": true, + "6:7": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_3.json index 06368a6b..26198543 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_3.json @@ -1 +1,37 @@ -{"9:14":true,"10:12":true,"9:15":true,"9:12":true,"9:13":true,"11:0":[150,151],"12:0":176,"12:3":true,"10:1":[155,156],"11:3":true,"12:1":156,"9:3":[175,176],"11:1":[156,176],"9:4":177,"9:2":175,"10:2":176,"0:10":true,"12:13":true,"12:14":true,"12:15":true,"11:12":true,"12:12":true,"0:9":true} \ No newline at end of file +{ + "9:14": true, + "10:12": true, + "9:15": true, + "9:12": true, + "9:13": true, + "11:0": [ + 150, + 151 + ], + "12:0": 176, + "12:3": true, + "10:1": [ + 155, + 156 + ], + "11:3": true, + "12:1": 156, + "9:3": [ + 175, + 176 + ], + "11:1": [ + 156, + 176 + ], + "9:4": 177, + "9:2": 175, + "10:2": 176, + "0:10": true, + "12:13": true, + "12:14": true, + "12:15": true, + "11:12": true, + "12:12": true, + "0:9": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_4.json index baade365..521c4837 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_4.json @@ -1 +1,11 @@ -{"7:13":true,"0:4":138,"12:0":true,"0:5":139,"9:1":true,"10:1":true,"12:1":true,"11:1":true,"9:0":true} \ No newline at end of file +{ + "7:13": true, + "0:4": 138, + "12:0": true, + "0:5": 139, + "9:1": true, + "10:1": true, + "12:1": true, + "11:1": true, + "9:0": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_5.json index 43d11448..93ee3533 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_5.json @@ -1 +1,14 @@ -{"13:3":152,"13:4":true,"14:8":true,"14:3":[138,140],"13:8":true,"15:3":139,"12:0":183,"14:4":true,"12:3":true} \ No newline at end of file +{ + "13:3": 152, + "13:4": true, + "14:8": true, + "14:3": [ + 138, + 140 + ], + "13:8": true, + "15:3": 139, + "12:0": 183, + "14:4": true, + "12:3": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_6.json index 08674183..eeb113d8 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_6.json @@ -1 +1,25 @@ -{"12:11":true,"9:14":true,"11:11":true,"9:15":true,"9:12":true,"9:13":true,"2:12":true,"0:11":true,"1:13":true,"2:13":true,"1:12":true,"1:11":true,"3:13":true,"0:13":true,"0:10":true,"0:12":true,"0:1":true,"12:13":true,"9:11":true,"12:14":true,"10:11":true,"12:15":true,"12:12":true} \ No newline at end of file +{ + "12:11": true, + "9:14": true, + "11:11": true, + "9:15": true, + "9:12": true, + "9:13": true, + "2:12": true, + "0:11": true, + "1:13": true, + "2:13": true, + "1:12": true, + "1:11": true, + "3:13": true, + "0:13": true, + "0:10": true, + "0:12": true, + "0:1": true, + "12:13": true, + "9:11": true, + "12:14": true, + "10:11": true, + "12:15": true, + "12:12": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_7.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_7.json index 82769773..2df26e51 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_7.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_7.json @@ -1 +1,15 @@ -{"1:1":true,"0:2":true,"10:0":true,"9:0":true,"14:8":true,"2:1":true,"11:0":true,"2:2":197,"13:8":true,"12:0":true,"1:0":true,"0:1":true,"2:0":true} \ No newline at end of file +{ + "1:1": true, + "0:2": true, + "10:0": true, + "9:0": true, + "14:8": true, + "2:1": true, + "11:0": true, + "2:2": 197, + "13:8": true, + "12:0": true, + "1:0": true, + "0:1": true, + "2:0": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_8.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_8.json index 6980d16e..059a2de6 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_8.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_8.json @@ -1 +1,76 @@ -{"2:7":true,"8:8":true,"3:6":183,"8:7":137,"0:2":[162,171],"9:10":[157,184],"4:5":162,"13:12":181,"3:4":163,"0:3":[162,172],"8:9":[133,158],"10:9":[132,133],"7:7":183,"9:9":[133,183],"8:10":157,"7:9":133,"6:8":true,"3:5":161,"14:12":[153,180],"5:6":160,"15:13":153,"10:8":[134,182],"6:7":[160,184],"9:8":[135,182],"4:7":true,"11:9":133,"13:3":true,"5:8":true,"14:3":true,"11:10":157,"15:3":true,"2:4":[161,165],"0:1":true,"3:7":true,"1:3":[162,171],"1:4":160,"3:9":true,"2:6":true} \ No newline at end of file +{ + "2:7": true, + "8:8": true, + "3:6": 183, + "8:7": 137, + "0:2": [ + 162, + 171 + ], + "9:10": [ + 157, + 184 + ], + "4:5": 162, + "13:12": 181, + "3:4": 163, + "0:3": [ + 162, + 172 + ], + "8:9": [ + 133, + 158 + ], + "10:9": [ + 132, + 133 + ], + "7:7": 183, + "9:9": [ + 133, + 183 + ], + "8:10": 157, + "7:9": 133, + "6:8": true, + "3:5": 161, + "14:12": [ + 153, + 180 + ], + "5:6": 160, + "15:13": 153, + "10:8": [ + 134, + 182 + ], + "6:7": [ + 160, + 184 + ], + "9:8": [ + 135, + 182 + ], + "4:7": true, + "11:9": 133, + "13:3": true, + "5:8": true, + "14:3": true, + "11:10": 157, + "15:3": true, + "2:4": [ + 161, + 165 + ], + "0:1": true, + "3:7": true, + "1:3": [ + 162, + 171 + ], + "1:4": 160, + "3:9": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_9.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_9.json index 9f64e883..8dd2259d 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-4_9.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-4_9.json @@ -1 +1,42 @@ -{"1:11":true,"3:13":true,"0:13":true,"3:10":true,"2:9":true,"0:6":true,"0:10":true,"4:11":true,"3:12":true,"0:15":true,"2:8":true,"0:12":true,"1:9":true,"0:14":true,"3:14":true,"2:11":true,"4:14":true,"2:12":true,"5:14":true,"1:10":true,"0:8":true,"4:15":true,"0:11":true,"4:12":true,"3:11":true,"2:14":true,"1:13":true,"0:5":true,"15:0":true,"2:13":true,"1:14":true,"4:10":true,"0:7":true,"5:13":true,"2:10":true,"1:15":true,"3:9":true,"1:12":true,"0:9":true,"4:13":true} \ No newline at end of file +{ + "1:11": true, + "3:13": true, + "0:13": true, + "3:10": true, + "2:9": true, + "0:6": true, + "0:10": true, + "4:11": true, + "3:12": true, + "0:15": true, + "2:8": true, + "0:12": true, + "1:9": true, + "0:14": true, + "3:14": true, + "2:11": true, + "4:14": true, + "2:12": true, + "5:14": true, + "1:10": true, + "0:8": true, + "4:15": true, + "0:11": true, + "4:12": true, + "3:11": true, + "2:14": true, + "1:13": true, + "0:5": true, + "15:0": true, + "2:13": true, + "1:14": true, + "4:10": true, + "0:7": true, + "5:13": true, + "2:10": true, + "1:15": true, + "3:9": true, + "1:12": true, + "0:9": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-1.json index fe872f4b..ad2dba34 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-1.json @@ -1 +1,56 @@ -{"12:11":true,"12:5":true,"14:1":true,"15:1":true,"14:14":true,"12:6":true,"15:14":240,"12:0":202,"14:15":true,"14:12":[183,186],"12:3":true,"12:4":true,"15:13":198,"12:2":[198,202],"14:13":[144,189],"12:1":[198,202],"11:8":true,"12:8":true,"14:11":[182,183],"12:9":true,"12:7":true,"14:3":[182,183],"12:10":true,"14:2":[183,186],"12:13":true,"15:0":true,"12:14":true,"14:0":[146,192],"12:15":true,"12:12":true} \ No newline at end of file +{ + "12:11": true, + "12:5": true, + "14:1": true, + "15:1": true, + "14:14": true, + "12:6": true, + "15:14": 240, + "12:0": 202, + "14:15": true, + "14:12": [ + 183, + 186 + ], + "12:3": true, + "12:4": true, + "15:13": 198, + "12:2": [ + 198, + 202 + ], + "14:13": [ + 144, + 189 + ], + "12:1": [ + 198, + 202 + ], + "11:8": true, + "12:8": true, + "14:11": [ + 182, + 183 + ], + "12:9": true, + "12:7": true, + "14:3": [ + 182, + 183 + ], + "12:10": true, + "14:2": [ + 183, + 186 + ], + "12:13": true, + "15:0": true, + "12:14": true, + "14:0": [ + 146, + 192 + ], + "12:15": true, + "12:12": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-2.json index 4ba1b08a..f45f2e4f 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-2.json @@ -1 +1,53 @@ -{"15:9":true,"12:11":202,"12:1":true,"12:5":true,"14:9":true,"14:7":[182,183],"12:8":true,"14:11":[155,198],"12:9":true,"12:7":true,"14:8":[183,186],"14:14":[148,198],"12:6":true,"12:10":true,"12:0":true,"14:15":[147,198],"15:15":true,"14:12":[152,198],"12:13":true,"12:14":true,"12:3":true,"14:10":[156,198],"12:4":true,"12:15":202,"12:2":true,"12:12":202,"14:13":[150,198]} \ No newline at end of file +{ + "15:9": true, + "12:11": 202, + "12:1": true, + "12:5": true, + "14:9": true, + "14:7": [ + 182, + 183 + ], + "12:8": true, + "14:11": [ + 155, + 198 + ], + "12:9": true, + "12:7": true, + "14:8": [ + 183, + 186 + ], + "14:14": [ + 148, + 198 + ], + "12:6": true, + "12:10": true, + "12:0": true, + "14:15": [ + 147, + 198 + ], + "15:15": true, + "14:12": [ + 152, + 198 + ], + "12:13": true, + "12:14": true, + "12:3": true, + "14:10": [ + 156, + 198 + ], + "12:4": true, + "12:15": 202, + "12:2": true, + "12:12": 202, + "14:13": [ + 150, + 198 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-3.json index d86589b5..d3194487 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-3.json @@ -1 +1,50 @@ -{"12:11":true,"12:1":true,"12:5":true,"14:9":true,"14:7":true,"12:8":true,"14:11":true,"15:5":true,"14:5":true,"12:9":true,"12:7":true,"14:8":true,"14:14":[183,186],"14:3":[182,183],"12:6":true,"12:10":true,"12:0":true,"14:4":[183,186],"14:15":[182,183],"14:12":true,"12:13":true,"14:6":true,"12:14":true,"12:3":[198,202],"14:10":true,"12:4":true,"12:15":true,"12:2":[198,202],"12:12":true,"14:13":true} \ No newline at end of file +{ + "12:11": true, + "12:1": true, + "12:5": true, + "14:9": true, + "14:7": true, + "12:8": true, + "14:11": true, + "15:5": true, + "14:5": true, + "12:9": true, + "12:7": true, + "14:8": true, + "14:14": [ + 183, + 186 + ], + "14:3": [ + 182, + 183 + ], + "12:6": true, + "12:10": true, + "12:0": true, + "14:4": [ + 183, + 186 + ], + "14:15": [ + 182, + 183 + ], + "14:12": true, + "12:13": true, + "14:6": true, + "12:14": true, + "12:3": [ + 198, + 202 + ], + "14:10": true, + "12:4": true, + "12:15": true, + "12:2": [ + 198, + 202 + ], + "12:12": true, + "14:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-4.json index 72b3a2bf..ccc6a675 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-4.json @@ -1 +1,143 @@ -{"15:9":220,"12:11":true,"7:12":220,"13:13":220,"14:9":[164,193],"11:11":222,"10:12":222,"3:0":[201,202],"0:0":true,"14:7":[164,192],"9:12":[214,222],"13:10":222,"10:10":222,"7:13":[219,220],"9:10":true,"4:5":177,"13:12":222,"10:13":219,"3:4":[201,202],"7:10":220,"0:4":204,"14:8":true,"9:13":true,"5:4":[177,203],"10:9":219,"9:9":220,"4:4":[201,202],"8:10":true,"7:9":[219,220],"3:5":[175,177],"15:12":222,"0:11":true,"14:12":true,"1:13":true,"0:5":176,"8:12":222,"15:10":222,"14:10":[162,222],"15:13":220,"1:12":true,"13:9":220,"1:5":178,"8:11":222,"14:11":[162,222],"14:5":[172,188],"0:12":true,"15:11":222,"12:9":219,"6:3":177,"13:3":184,"2:5":[176,178],"3:14":true,"15:4":[182,184],"11:10":222,"12:10":222,"15:3":175,"1:0":true,"14:4":[173,184],"2:4":[202,203],"13:11":222,"12:13":[198,219],"14:6":[167,191],"12:14":[198,202],"9:11":222,"10:11":222,"1:4":[203,204],"15:6":190,"2:0":[202,203],"12:15":true,"11:12":222,"12:12":[198,222],"0:9":true} \ No newline at end of file +{ + "15:9": 220, + "12:11": true, + "7:12": 220, + "13:13": 220, + "14:9": [ + 164, + 193 + ], + "11:11": 222, + "10:12": 222, + "3:0": [ + 201, + 202 + ], + "0:0": true, + "14:7": [ + 164, + 192 + ], + "9:12": [ + 214, + 222 + ], + "13:10": 222, + "10:10": 222, + "7:13": [ + 219, + 220 + ], + "9:10": true, + "4:5": 177, + "13:12": 222, + "10:13": 219, + "3:4": [ + 201, + 202 + ], + "7:10": 220, + "0:4": 204, + "14:8": true, + "9:13": true, + "5:4": [ + 177, + 203 + ], + "10:9": 219, + "9:9": 220, + "4:4": [ + 201, + 202 + ], + "8:10": true, + "7:9": [ + 219, + 220 + ], + "3:5": [ + 175, + 177 + ], + "15:12": 222, + "0:11": true, + "14:12": true, + "1:13": true, + "0:5": 176, + "8:12": 222, + "15:10": 222, + "14:10": [ + 162, + 222 + ], + "15:13": 220, + "1:12": true, + "13:9": 220, + "1:5": 178, + "8:11": 222, + "14:11": [ + 162, + 222 + ], + "14:5": [ + 172, + 188 + ], + "0:12": true, + "15:11": 222, + "12:9": 219, + "6:3": 177, + "13:3": 184, + "2:5": [ + 176, + 178 + ], + "3:14": true, + "15:4": [ + 182, + 184 + ], + "11:10": 222, + "12:10": 222, + "15:3": 175, + "1:0": true, + "14:4": [ + 173, + 184 + ], + "2:4": [ + 202, + 203 + ], + "13:11": 222, + "12:13": [ + 198, + 219 + ], + "14:6": [ + 167, + 191 + ], + "12:14": [ + 198, + 202 + ], + "9:11": 222, + "10:11": 222, + "1:4": [ + 203, + 204 + ], + "15:6": 190, + "2:0": [ + 202, + 203 + ], + "12:15": true, + "11:12": 222, + "12:12": [ + 198, + 222 + ], + "0:9": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-5.json index 39e0ea2a..8d791b4b 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-5.json @@ -1 +1,6 @@ -{"3:0":true,"10:5":true,"5:0":true,"4:0":true} \ No newline at end of file +{ + "3:0": true, + "10:5": true, + "5:0": true, + "4:0": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-6.json index 20dc2658..b4ec815d 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_-6.json @@ -1 +1,64 @@ -{"11:5":true,"7:12":true,"4:9":true,"11:1":true,"10:12":true,"11:8":true,"3:0":true,"13:6":true,"13:0":true,"9:12":true,"3:6":true,"13:10":230,"12:8":true,"13:2":true,"11:9":true,"4:5":true,"13:12":true,"3:2":true,"13:3":true,"11:7":true,"6:12":true,"13:4":true,"12:7":true,"6:15":true,"11:0":true,"12:6":true,"4:3":true,"11:10":true,"3:8":[214,225],"12:10":true,"13:8":true,"12:0":true,"11:6":true,"15:12":[219,227],"13:1":true,"14:12":[219,227],"3:1":true,"13:5":true,"12:3":true,"11:4":true,"8:12":true,"3:7":[214,226],"13:7":true,"12:4":true,"11:3":true,"12:2":true,"11:12":true,"12:12":true,"11:2":true,"13:9":230} \ No newline at end of file +{ + "11:5": true, + "7:12": true, + "4:9": true, + "11:1": true, + "10:12": true, + "11:8": true, + "3:0": true, + "13:6": true, + "13:0": true, + "9:12": true, + "3:6": true, + "13:10": 230, + "12:8": true, + "13:2": true, + "11:9": true, + "4:5": true, + "13:12": true, + "3:2": true, + "13:3": true, + "11:7": true, + "6:12": true, + "13:4": true, + "12:7": true, + "6:15": true, + "11:0": true, + "12:6": true, + "4:3": true, + "11:10": true, + "3:8": [ + 214, + 225 + ], + "12:10": true, + "13:8": true, + "12:0": true, + "11:6": true, + "15:12": [ + 219, + 227 + ], + "13:1": true, + "14:12": [ + 219, + 227 + ], + "3:1": true, + "13:5": true, + "12:3": true, + "11:4": true, + "8:12": true, + "3:7": [ + 214, + 226 + ], + "13:7": true, + "12:4": true, + "11:3": true, + "12:2": true, + "11:12": true, + "12:12": true, + "11:2": true, + "13:9": 230 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_0.json index 1a304ed3..03400aad 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_0.json @@ -1 +1,102 @@ -{"15:9":true,"12:1":true,"12:11":true,"8:8":true,"6:10":true,"5:9":true,"12:5":true,"0:13":true,"14:9":true,"6:6":true,"4:9":true,"5:7":true,"11:8":true,"2:9":true,"15:7":true,"13:6":true,"14:7":[150,232],"4:7":true,"13:10":true,"12:8":true,"1:8":true,"14:11":true,"14:1":true,"8:7":true,"9:6":true,"11:9":true,"14:5":true,"10:6":true,"5:11":true,"3:15":true,"12:9":true,"1:9":true,"15:8":true,"11:7":true,"0:14":true,"8:9":true,"5:8":true,"12:7":true,"14:8":true,"7:6":true,"4:8":true,"14:14":true,"14:3":true,"12:6":true,"10:9":true,"7:7":true,"12:10":true,"13:8":true,"0:8":true,"12:0":true,"9:9":true,"14:4":true,"11:6":true,"10:7":true,"7:9":true,"6:8":true,"5:12":true,"14:15":[150,183],"14:2":true,"14:12":true,"9:7":true,"8:6":true,"12:13":true,"2:14":true,"1:13":true,"12:14":true,"12:3":true,"14:6":[140,231],"7:8":true,"6:9":true,"5:10":true,"4:6":true,"2:13":true,"1:14":true,"15:10":true,"14:10":true,"5:6":true,"4:10":true,"13:7":true,"12:4":true,"15:6":true,"14:0":true,"12:2":true,"12:15":true,"10:8":true,"6:7":true,"3:9":true,"12:12":true,"13:9":true,"9:8":true,"14:13":true} \ No newline at end of file +{ + "15:9": true, + "12:1": true, + "12:11": true, + "8:8": true, + "6:10": true, + "5:9": true, + "12:5": true, + "0:13": true, + "14:9": true, + "6:6": true, + "4:9": true, + "5:7": true, + "11:8": true, + "2:9": true, + "15:7": true, + "13:6": true, + "14:7": [ + 150, + 232 + ], + "4:7": true, + "13:10": true, + "12:8": true, + "1:8": true, + "14:11": true, + "14:1": true, + "8:7": true, + "9:6": true, + "11:9": true, + "14:5": true, + "10:6": true, + "5:11": true, + "3:15": true, + "12:9": true, + "1:9": true, + "15:8": true, + "11:7": true, + "0:14": true, + "8:9": true, + "5:8": true, + "12:7": true, + "14:8": true, + "7:6": true, + "4:8": true, + "14:14": true, + "14:3": true, + "12:6": true, + "10:9": true, + "7:7": true, + "12:10": true, + "13:8": true, + "0:8": true, + "12:0": true, + "9:9": true, + "14:4": true, + "11:6": true, + "10:7": true, + "7:9": true, + "6:8": true, + "5:12": true, + "14:15": [ + 150, + 183 + ], + "14:2": true, + "14:12": true, + "9:7": true, + "8:6": true, + "12:13": true, + "2:14": true, + "1:13": true, + "12:14": true, + "12:3": true, + "14:6": [ + 140, + 231 + ], + "7:8": true, + "6:9": true, + "5:10": true, + "4:6": true, + "2:13": true, + "1:14": true, + "15:10": true, + "14:10": true, + "5:6": true, + "4:10": true, + "13:7": true, + "12:4": true, + "15:6": true, + "14:0": true, + "12:2": true, + "12:15": true, + "10:8": true, + "6:7": true, + "3:9": true, + "12:12": true, + "13:9": true, + "9:8": true, + "14:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_1.json index 9811e723..4d3f3779 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_1.json @@ -1 +1,58 @@ -{"14:3":true,"12:1":true,"9:3":true,"1:1":true,"10:3":true,"2:15":true,"1:5":true,"15:3":true,"14:9":true,"12:0":true,"1:0":true,"14:4":true,"9:4":true,"2:4":true,"3:0":true,"14:2":true,"13:0":true,"0:0":true,"14:7":true,"3:1":true,"0:5":true,"7:3":true,"15:0":true,"14:11":[182,183],"14:6":true,"14:1":true,"12:3":true,"12:14":true,"0:15":true,"14:10":[183,186],"14:5":true,"3:15":true,"3:2":true,"1:4":true,"15:1":true,"14:0":[138,202],"2:0":true,"13:3":true,"12:2":true,"2:5":true,"1:15":true,"1:2":true,"12:7":true,"12:12":true,"3:3":true,"0:4":true,"14:8":true} \ No newline at end of file +{ + "14:3": true, + "12:1": true, + "9:3": true, + "1:1": true, + "10:3": true, + "2:15": true, + "1:5": true, + "15:3": true, + "14:9": true, + "12:0": true, + "1:0": true, + "14:4": true, + "9:4": true, + "2:4": true, + "3:0": true, + "14:2": true, + "13:0": true, + "0:0": true, + "14:7": true, + "3:1": true, + "0:5": true, + "7:3": true, + "15:0": true, + "14:11": [ + 182, + 183 + ], + "14:6": true, + "14:1": true, + "12:3": true, + "12:14": true, + "0:15": true, + "14:10": [ + 183, + 186 + ], + "14:5": true, + "3:15": true, + "3:2": true, + "1:4": true, + "15:1": true, + "14:0": [ + 138, + 202 + ], + "2:0": true, + "13:3": true, + "12:2": true, + "2:5": true, + "1:15": true, + "1:2": true, + "12:7": true, + "12:12": true, + "3:3": true, + "0:4": true, + "14:8": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_10.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_10.json index abef05f3..3bcb1c7c 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_10.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_10.json @@ -1 +1,176 @@ -{"12:11":true,"9:14":true,"1:1":true,"11:5":true,"2:7":true,"6:10":true,"13:13":true,"12:5":true,"11:11":true,"6:13":true,"2:9":true,"15:7":true,"3:0":true,"9:15":true,"0:6":true,"0:0":true,"14:7":true,"3:6":true,"7:14":true,"1:8":true,"14:1":true,"13:15":true,"8:7":true,"5:5":true,"4:11":true,"0:2":true,"7:13":true,"2:8":true,"5:11":true,"4:5":true,"13:12":true,"3:2":true,"15:1":true,"6:14":true,"1:9":true,"15:8":true,"13:14":true,"3:4":true,"0:3":true,"7:10":true,"6:12":true,"3:3":true,"1:7":true,"0:4":[150,180],"6:15":true,"2:1":true,"14:14":true,"4:3":true,"8:13":true,"5:4":true,"2:12":true,"2:15":true,"1:10":true,"15:14":true,"8:10":true,"7:9":true,"6:8":true,"3:5":true,"14:15":true,"13:1":true,"4:2":true,"0:11":true,"15:15":true,"3:11":true,"2:14":true,"1:13":true,"0:5":true,"11:4":true,"7:8":true,"6:9":true,"4:6":true,"2:13":true,"1:14":true,"5:0":true,"5:6":true,"8:15":true,"4:0":true,"15:13":true,"2:10":true,"1:15":true,"6:7":true,"8:14":true,"1:12":true,"7:1":true,"14:13":true,"6:0":true,"1:11":true,"10:4":true,"3:13":true,"5:9":true,"1:5":[150,176],"0:13":true,"6:6":true,"4:9":true,"8:5":true,"5:7":true,"13:6":true,"13:0":true,"8:11":true,"4:7":true,"0:10":true,"13:2":true,"4:1":true,"3:12":true,"0:15":true,"6:4":true,"15:5":true,"14:5":true,"5:1":true,"3:15":true,"0:12":true,"15:11":true,"7:0":true,"13:3":true,"2:5":true,"0:14":true,"5:8":true,"3:14":true,"7:6":true,"4:8":true,"2:11":true,"15:4":true,"14:3":true,"4:14":true,"1:6":true,"6:5":true,"5:14":true,"2:2":true,"0:8":true,"15:3":true,"1:0":true,"14:4":true,"11:13":true,"5:12":true,"2:4":true,"14:2":true,"4:15":true,"0:1":true,"15:2":true,"8:6":true,"4:12":true,"3:1":true,"13:5":true,"5:15":true,"2:3":true,"15:0":true,"12:14":true,"10:5":true,"5:10":true,"3:7":true,"1:3":150,"9:5":true,"4:10":true,"1:4":true,"0:7":true,"15:6":true,"14:0":true,"2:0":true,"12:15":true,"5:13":true,"1:2":true,"7:5":true,"3:9":true,"12:12":true,"0:9":true,"7:11":true,"4:13":true,"2:6":true} \ No newline at end of file +{ + "12:11": true, + "9:14": true, + "1:1": true, + "11:5": true, + "2:7": true, + "6:10": true, + "13:13": true, + "12:5": true, + "11:11": true, + "6:13": true, + "2:9": true, + "15:7": true, + "3:0": true, + "9:15": true, + "0:6": true, + "0:0": true, + "14:7": true, + "3:6": true, + "7:14": true, + "1:8": true, + "14:1": true, + "13:15": true, + "8:7": true, + "5:5": true, + "4:11": true, + "0:2": true, + "7:13": true, + "2:8": true, + "5:11": true, + "4:5": true, + "13:12": true, + "3:2": true, + "15:1": true, + "6:14": true, + "1:9": true, + "15:8": true, + "13:14": true, + "3:4": true, + "0:3": true, + "7:10": true, + "6:12": true, + "3:3": true, + "1:7": true, + "0:4": [ + 150, + 180 + ], + "6:15": true, + "2:1": true, + "14:14": true, + "4:3": true, + "8:13": true, + "5:4": true, + "2:12": true, + "2:15": true, + "1:10": true, + "15:14": true, + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": true, + "14:15": true, + "13:1": true, + "4:2": true, + "0:11": true, + "15:15": true, + "3:11": true, + "2:14": true, + "1:13": true, + "0:5": true, + "11:4": true, + "7:8": true, + "6:9": true, + "4:6": true, + "2:13": true, + "1:14": true, + "5:0": true, + "5:6": true, + "8:15": true, + "4:0": true, + "15:13": true, + "2:10": true, + "1:15": true, + "6:7": true, + "8:14": true, + "1:12": true, + "7:1": true, + "14:13": true, + "6:0": true, + "1:11": true, + "10:4": true, + "3:13": true, + "5:9": true, + "1:5": [ + 150, + 176 + ], + "0:13": true, + "6:6": true, + "4:9": true, + "8:5": true, + "5:7": true, + "13:6": true, + "13:0": true, + "8:11": true, + "4:7": true, + "0:10": true, + "13:2": true, + "4:1": true, + "3:12": true, + "0:15": true, + "6:4": true, + "15:5": true, + "14:5": true, + "5:1": true, + "3:15": true, + "0:12": true, + "15:11": true, + "7:0": true, + "13:3": true, + "2:5": true, + "0:14": true, + "5:8": true, + "3:14": true, + "7:6": true, + "4:8": true, + "2:11": true, + "15:4": true, + "14:3": true, + "4:14": true, + "1:6": true, + "6:5": true, + "5:14": true, + "2:2": true, + "0:8": true, + "15:3": true, + "1:0": true, + "14:4": true, + "11:13": true, + "5:12": true, + "2:4": true, + "14:2": true, + "4:15": true, + "0:1": true, + "15:2": true, + "8:6": true, + "4:12": true, + "3:1": true, + "13:5": true, + "5:15": true, + "2:3": true, + "15:0": true, + "12:14": true, + "10:5": true, + "5:10": true, + "3:7": true, + "1:3": 150, + "9:5": true, + "4:10": true, + "1:4": true, + "0:7": true, + "15:6": true, + "14:0": true, + "2:0": true, + "12:15": true, + "5:13": true, + "1:2": true, + "7:5": true, + "3:9": true, + "12:12": true, + "0:9": true, + "7:11": true, + "4:13": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_2.json index f2f501c9..976d30de 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_2.json @@ -1 +1,40 @@ -{"14:3":[151,198],"4:3":true,"5:4":true,"6:5":true,"12:0":true,"14:4":[151,198],"4:4":[155,200],"8:5":true,"4:2":true,"14:7":true,"14:6":true,"13:2":true,"5:5":true,"4:6":true,"4:1":true,"6:4":true,"14:5":true,"4:5":[198,200],"4:0":true,"12:2":true,"7:5":true,"3:3":[154,155],"14:8":true} \ No newline at end of file +{ + "14:3": [ + 151, + 198 + ], + "4:3": true, + "5:4": true, + "6:5": true, + "12:0": true, + "14:4": [ + 151, + 198 + ], + "4:4": [ + 155, + 200 + ], + "8:5": true, + "4:2": true, + "14:7": true, + "14:6": true, + "13:2": true, + "5:5": true, + "4:6": true, + "4:1": true, + "6:4": true, + "14:5": true, + "4:5": [ + 198, + 200 + ], + "4:0": true, + "12:2": true, + "7:5": true, + "3:3": [ + 154, + 155 + ], + "14:8": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_4.json index 3ff8084e..3c775a74 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_4.json @@ -1 +1,10 @@ -{"15:9":true,"14:3":152,"13:8":166,"14:9":166,"15:10":167,"15:8":166,"13:9":166,"14:8":166} \ No newline at end of file +{ + "15:9": true, + "14:3": 152, + "13:8": 166, + "14:9": 166, + "15:10": 167, + "15:8": 166, + "13:9": 166, + "14:8": 166 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_6.json index 6e5a9552..92a6e8ef 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_6.json @@ -1 +1,4 @@ -{"3:10":158,"15:1":149} \ No newline at end of file +{ + "3:10": 158, + "15:1": 149 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_7.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_7.json index 803a589b..b6239079 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_7.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_7.json @@ -1 +1,32 @@ -{"3:13":true,"0:13":true,"7:15":true,"9:15":true,"10:15":true,"7:14":true,"3:12":true,"0:15":true,"3:15":true,"0:12":true,"6:14":true,"0:14":true,"3:14":true,"6:15":true,"2:11":true,"4:14":true,"2:12":true,"5:14":true,"2:15":true,"4:15":true,"4:12":true,"5:15":true,"2:14":true,"1:13":true,"2:13":true,"1:14":true,"8:15":true,"1:15":true,"1:12":true,"4:13":true} \ No newline at end of file +{ + "3:13": true, + "0:13": true, + "7:15": true, + "9:15": true, + "10:15": true, + "7:14": true, + "3:12": true, + "0:15": true, + "3:15": true, + "0:12": true, + "6:14": true, + "0:14": true, + "3:14": true, + "6:15": true, + "2:11": true, + "4:14": true, + "2:12": true, + "5:14": true, + "2:15": true, + "4:15": true, + "4:12": true, + "5:15": true, + "2:14": true, + "1:13": true, + "2:13": true, + "1:14": true, + "8:15": true, + "1:15": true, + "1:12": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_8.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_8.json index 3271d484..244c8eb7 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_8.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_8.json @@ -1 +1,183 @@ -{"1:1":true,"2:7":173,"6:10":true,"7:15":true,"6:13":129,"2:9":167,"15:7":true,"3:0":true,"9:15":true,"0:0":true,"14:7":true,"8:1":true,"3:6":true,"10:15":true,"7:14":true,"1:8":[169,173],"14:1":true,"10:10":true,"4:11":130,"0:2":true,"7:13":true,"2:8":[129,174],"5:11":129,"4:5":true,"3:2":true,"6:14":true,"1:9":[168,175],"3:4":true,"0:3":true,"7:10":true,"6:12":true,"3:3":true,"1:7":172,"0:4":true,"6:15":true,"2:1":true,"11:0":true,"12:6":true,"4:3":true,"5:4":true,"2:12":131,"5:3":true,"2:15":[131,151],"1:10":132,"12:0":true,"6:1":true,"4:4":true,"7:9":true,"13:1":true,"4:2":true,"0:11":true,"3:11":131,"5:2":true,"2:14":true,"1:13":true,"0:5":170,"12:3":true,"9:1":true,"6:9":true,"4:6":true,"2:13":true,"1:14":true,"5:0":true,"10:1":true,"5:6":true,"8:15":true,"4:0":true,"12:2":true,"1:15":[131,150],"10:8":true,"11:2":true,"12:1":true,"6:0":true,"10:4":true,"3:13":[131,149],"1:5":true,"0:13":true,"7:2":true,"6:6":true,"11:1":true,"9:4":true,"3:10":130,"7:4":true,"13:6":true,"9:2":true,"13:0":true,"10:2":true,"0:10":133,"13:2":true,"4:1":true,"3:12":131,"0:15":[130,150],"6:4":true,"10:0":true,"14:5":182,"5:1":true,"0:12":true,"9:0":true,"6:3":true,"7:0":true,"13:3":true,"11:7":true,"0:14":true,"3:14":[131,150],"6:2":true,"7:6":true,"2:11":132,"14:3":174,"4:14":131,"11:10":150,"3:8":true,"5:14":true,"2:2":true,"0:8":true,"15:3":[172,173],"1:0":true,"5:12":[130,144],"2:4":true,"8:0":true,"14:2":true,"4:15":true,"0:1":true,"15:2":true,"4:12":130,"3:1":true,"13:5":181,"5:15":131,"2:3":true,"10:5":true,"5:10":true,"3:7":true,"1:3":true,"4:10":128,"8:2":true,"1:4":true,"0:7":130,"15:6":true,"2:0":true,"5:13":130,"1:2":true,"7:5":true,"3:9":true,"11:15":125,"8:3":true,"0:9":132,"7:11":true,"4:13":[131,143],"2:6":true} \ No newline at end of file +{ + "1:1": true, + "2:7": 173, + "6:10": true, + "7:15": true, + "6:13": 129, + "2:9": 167, + "15:7": true, + "3:0": true, + "9:15": true, + "0:0": true, + "14:7": true, + "8:1": true, + "3:6": true, + "10:15": true, + "7:14": true, + "1:8": [ + 169, + 173 + ], + "14:1": true, + "10:10": true, + "4:11": 130, + "0:2": true, + "7:13": true, + "2:8": [ + 129, + 174 + ], + "5:11": 129, + "4:5": true, + "3:2": true, + "6:14": true, + "1:9": [ + 168, + 175 + ], + "3:4": true, + "0:3": true, + "7:10": true, + "6:12": true, + "3:3": true, + "1:7": 172, + "0:4": true, + "6:15": true, + "2:1": true, + "11:0": true, + "12:6": true, + "4:3": true, + "5:4": true, + "2:12": 131, + "5:3": true, + "2:15": [ + 131, + 151 + ], + "1:10": 132, + "12:0": true, + "6:1": true, + "4:4": true, + "7:9": true, + "13:1": true, + "4:2": true, + "0:11": true, + "3:11": 131, + "5:2": true, + "2:14": true, + "1:13": true, + "0:5": 170, + "12:3": true, + "9:1": true, + "6:9": true, + "4:6": true, + "2:13": true, + "1:14": true, + "5:0": true, + "10:1": true, + "5:6": true, + "8:15": true, + "4:0": true, + "12:2": true, + "1:15": [ + 131, + 150 + ], + "10:8": true, + "11:2": true, + "12:1": true, + "6:0": true, + "10:4": true, + "3:13": [ + 131, + 149 + ], + "1:5": true, + "0:13": true, + "7:2": true, + "6:6": true, + "11:1": true, + "9:4": true, + "3:10": 130, + "7:4": true, + "13:6": true, + "9:2": true, + "13:0": true, + "10:2": true, + "0:10": 133, + "13:2": true, + "4:1": true, + "3:12": 131, + "0:15": [ + 130, + 150 + ], + "6:4": true, + "10:0": true, + "14:5": 182, + "5:1": true, + "0:12": true, + "9:0": true, + "6:3": true, + "7:0": true, + "13:3": true, + "11:7": true, + "0:14": true, + "3:14": [ + 131, + 150 + ], + "6:2": true, + "7:6": true, + "2:11": 132, + "14:3": 174, + "4:14": 131, + "11:10": 150, + "3:8": true, + "5:14": true, + "2:2": true, + "0:8": true, + "15:3": [ + 172, + 173 + ], + "1:0": true, + "5:12": [ + 130, + 144 + ], + "2:4": true, + "8:0": true, + "14:2": true, + "4:15": true, + "0:1": true, + "15:2": true, + "4:12": 130, + "3:1": true, + "13:5": 181, + "5:15": 131, + "2:3": true, + "10:5": true, + "5:10": true, + "3:7": true, + "1:3": true, + "4:10": 128, + "8:2": true, + "1:4": true, + "0:7": 130, + "15:6": true, + "2:0": true, + "5:13": 130, + "1:2": true, + "7:5": true, + "3:9": true, + "11:15": 125, + "8:3": true, + "0:9": 132, + "7:11": true, + "4:13": [ + 131, + 143 + ], + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_9.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_9.json index cee24520..0b058a28 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-5_9.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-5_9.json @@ -1 +1,229 @@ -{"1:1":true,"8:8":true,"6:10":true,"13:13":true,"0:6":true,"0:0":true,"3:6":true,"13:15":true,"10:10":true,"8:7":true,"4:11":true,"0:2":true,"9:10":true,"5:11":true,"13:12":true,"3:2":[123,124],"13:14":true,"3:4":123,"0:3":true,"8:9":true,"7:10":true,"3:3":[123,124],"0:4":true,"2:1":128,"14:14":true,"4:3":true,"5:4":true,"2:12":true,"10:9":true,"7:7":true,"5:3":true,"2:15":true,"15:14":true,"9:9":true,"10:7":true,"8:10":true,"7:9":true,"6:8":true,"3:5":true,"15:12":true,"14:15":true,"4:2":true,"0:11":true,"15:15":true,"14:12":true,"9:7":true,"3:11":true,"5:2":true,"2:14":true,"1:13":true,"0:5":true,"2:13":true,"7:8":true,"6:9":true,"4:6":true,"1:14":true,"5:0":true,"5:6":true,"4:0":true,"15:13":true,"1:15":true,"10:8":true,"6:7":true,"1:12":true,"9:8":true,"14:13":true,"1:11":true,"3:13":true,"1:5":true,"0:13":true,"11:8":true,"13:6":true,"12:8":true,"14:11":true,"13:2":true,"4:1":true,"3:12":true,"0:15":true,"11:9":true,"15:5":true,"14:5":true,"5:1":true,"3:15":true,"0:12":true,"15:11":true,"12:9":true,"11:7":true,"2:5":true,"0:14":true,"13:4":true,"12:7":true,"3:14":true,"2:11":true,"4:14":true,"1:6":true,"11:10":true,"12:10":true,"5:14":true,"2:2":124,"1:0":true,"14:4":true,"5:12":true,"2:4":true,"13:11":true,"4:12":true,"3:1":129,"13:5":true,"2:3":true,"14:6":true,"1:3":true,"1:4":true,"15:6":true,"5:13":true,"1:2":true,"4:13":true,"2:6":true,"15:9":true,"12:11":true,"11:5":true,"2:7":true,"7:12":true,"12:5":true,"7:15":true,"14:9":true,"11:11":true,"10:12":true,"6:13":true,"2:9":true,"15:7":true,"14:7":true,"9:12":true,"8:1":true,"13:10":true,"1:8":true,"2:8":true,"6:14":true,"1:9":true,"15:8":true,"10:13":true,"6:12":true,"1:7":true,"6:15":true,"14:8":true,"12:6":true,"1:10":true,"13:8":true,"6:1":true,"11:6":true,"11:4":true,"9:1":true,"8:12":true,"12:3":true,"15:10":true,"14:10":true,"13:7":true,"11:3":true,"12:2":true,"2:10":true,"11:2":true,"8:14":true,"13:9":true,"7:1":true,"12:1":true,"9:3":true,"6:0":true,"10:4":true,"5:9":true,"10:3":true,"7:2":true,"6:6":true,"4:9":true,"11:1":true,"9:4":true,"8:5":true,"5:7":true,"3:10":true,"7:4":true,"9:2":true,"8:11":true,"4:7":true,"10:2":true,"0:10":true,"7:3":true,"9:6":true,"10:0":true,"10:6":true,"9:0":127,"6:3":true,"7:0":true,"5:8":true,"6:2":true,"7:6":true,"4:8":true,"6:5":true,"3:8":true,"0:8":true,"6:11":true,"11:13":true,"8:0":128,"8:6":true,"12:13":true,"12:14":true,"10:5":true,"9:11":true,"5:10":true,"3:7":true,"10:11":true,"9:5":true,"4:10":true,"11:14":true,"8:2":true,"0:7":true,"12:15":true,"11:12":true,"8:4":true,"7:5":true,"3:9":true,"12:12":true,"8:3":true,"0:9":true,"7:11":true} \ No newline at end of file +{ + "1:1": true, + "8:8": true, + "6:10": true, + "13:13": true, + "0:6": true, + "0:0": true, + "3:6": true, + "13:15": true, + "10:10": true, + "8:7": true, + "4:11": true, + "0:2": true, + "9:10": true, + "5:11": true, + "13:12": true, + "3:2": [ + 123, + 124 + ], + "13:14": true, + "3:4": 123, + "0:3": true, + "8:9": true, + "7:10": true, + "3:3": [ + 123, + 124 + ], + "0:4": true, + "2:1": 128, + "14:14": true, + "4:3": true, + "5:4": true, + "2:12": true, + "10:9": true, + "7:7": true, + "5:3": true, + "2:15": true, + "15:14": true, + "9:9": true, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": true, + "15:12": true, + "14:15": true, + "4:2": true, + "0:11": true, + "15:15": true, + "14:12": true, + "9:7": true, + "3:11": true, + "5:2": true, + "2:14": true, + "1:13": true, + "0:5": true, + "2:13": true, + "7:8": true, + "6:9": true, + "4:6": true, + "1:14": true, + "5:0": true, + "5:6": true, + "4:0": true, + "15:13": true, + "1:15": true, + "10:8": true, + "6:7": true, + "1:12": true, + "9:8": true, + "14:13": true, + "1:11": true, + "3:13": true, + "1:5": true, + "0:13": true, + "11:8": true, + "13:6": true, + "12:8": true, + "14:11": true, + "13:2": true, + "4:1": true, + "3:12": true, + "0:15": true, + "11:9": true, + "15:5": true, + "14:5": true, + "5:1": true, + "3:15": true, + "0:12": true, + "15:11": true, + "12:9": true, + "11:7": true, + "2:5": true, + "0:14": true, + "13:4": true, + "12:7": true, + "3:14": true, + "2:11": true, + "4:14": true, + "1:6": true, + "11:10": true, + "12:10": true, + "5:14": true, + "2:2": 124, + "1:0": true, + "14:4": true, + "5:12": true, + "2:4": true, + "13:11": true, + "4:12": true, + "3:1": 129, + "13:5": true, + "2:3": true, + "14:6": true, + "1:3": true, + "1:4": true, + "15:6": true, + "5:13": true, + "1:2": true, + "4:13": true, + "2:6": true, + "15:9": true, + "12:11": true, + "11:5": true, + "2:7": true, + "7:12": true, + "12:5": true, + "7:15": true, + "14:9": true, + "11:11": true, + "10:12": true, + "6:13": true, + "2:9": true, + "15:7": true, + "14:7": true, + "9:12": true, + "8:1": true, + "13:10": true, + "1:8": true, + "2:8": true, + "6:14": true, + "1:9": true, + "15:8": true, + "10:13": true, + "6:12": true, + "1:7": true, + "6:15": true, + "14:8": true, + "12:6": true, + "1:10": true, + "13:8": true, + "6:1": true, + "11:6": true, + "11:4": true, + "9:1": true, + "8:12": true, + "12:3": true, + "15:10": true, + "14:10": true, + "13:7": true, + "11:3": true, + "12:2": true, + "2:10": true, + "11:2": true, + "8:14": true, + "13:9": true, + "7:1": true, + "12:1": true, + "9:3": true, + "6:0": true, + "10:4": true, + "5:9": true, + "10:3": true, + "7:2": true, + "6:6": true, + "4:9": true, + "11:1": true, + "9:4": true, + "8:5": true, + "5:7": true, + "3:10": true, + "7:4": true, + "9:2": true, + "8:11": true, + "4:7": true, + "10:2": true, + "0:10": true, + "7:3": true, + "9:6": true, + "10:0": true, + "10:6": true, + "9:0": 127, + "6:3": true, + "7:0": true, + "5:8": true, + "6:2": true, + "7:6": true, + "4:8": true, + "6:5": true, + "3:8": true, + "0:8": true, + "6:11": true, + "11:13": true, + "8:0": 128, + "8:6": true, + "12:13": true, + "12:14": true, + "10:5": true, + "9:11": true, + "5:10": true, + "3:7": true, + "10:11": true, + "9:5": true, + "4:10": true, + "11:14": true, + "8:2": true, + "0:7": true, + "12:15": true, + "11:12": true, + "8:4": true, + "7:5": true, + "3:9": true, + "12:12": true, + "8:3": true, + "0:9": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_-3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_-3.json index ee4eb238..b06d77d3 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_-3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_-3.json @@ -1 +1,22 @@ -{"1:6":true,"5:4":true,"2:7":[174,218],"7:2":true,"0:1":true,"8:1":true,"3:6":true,"2:3":true,"0:5":true,"4:1":true,"0:2":true,"5:0":true,"4:5":true,"3:2":true,"1:4":true,"9:0":true,"6:3":true} \ No newline at end of file +{ + "1:6": true, + "5:4": true, + "2:7": [ + 174, + 218 + ], + "7:2": true, + "0:1": true, + "8:1": true, + "3:6": true, + "2:3": true, + "0:5": true, + "4:1": true, + "0:2": true, + "5:0": true, + "4:5": true, + "3:2": true, + "1:4": true, + "9:0": true, + "6:3": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_-4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_-4.json index d839a5ae..0bac7ab9 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_-4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_-4.json @@ -1 +1,106 @@ -{"1:1":true,"12:5":true,"3:0":true,"0:0":true,"14:7":true,"9:12":true,"8:1":true,"10:15":true,"7:14":true,"14:1":true,"0:2":true,"13:12":true,"3:2":true,"1:9":true,"15:8":[175,218],"0:3":true,"3:3":true,"0:4":true,"6:15":true,"2:1":true,"11:0":true,"4:3":true,"8:13":true,"5:4":true,"5:3":true,"1:10":true,"13:8":[175,217],"12:0":true,"15:12":true,"4:2":true,"0:11":true,"5:2":true,"1:13":true,"11:4":true,"15:10":true,"5:0":204,"13:7":true,"12:4":true,"1:12":true,"6:0":[203,204],"1:11":true,"10:4":[202,203],"10:3":true,"0:13":true,"9:4":[201,202],"7:4":true,"13:6":true,"9:2":218,"0:10":true,"14:11":true,"4:1":true,"6:4":true,"10:0":true,"5:1":161,"0:12":true,"12:9":true,"9:0":true,"6:3":true,"7:0":[202,218],"13:3":true,"13:4":true,"12:7":true,"14:3":true,"11:10":true,"1:0":true,"8:0":[201,202],"14:2":true,"0:1":true,"8:6":true,"3:1":true,"12:13":true,"1:3":true,"10:11":true,"11:14":true,"1:4":true,"2:0":true,"8:4":[201,202],"1:2":true,"7:5":true,"0:9":true} \ No newline at end of file +{ + "1:1": true, + "12:5": true, + "3:0": true, + "0:0": true, + "14:7": true, + "9:12": true, + "8:1": true, + "10:15": true, + "7:14": true, + "14:1": true, + "0:2": true, + "13:12": true, + "3:2": true, + "1:9": true, + "15:8": [ + 175, + 218 + ], + "0:3": true, + "3:3": true, + "0:4": true, + "6:15": true, + "2:1": true, + "11:0": true, + "4:3": true, + "8:13": true, + "5:4": true, + "5:3": true, + "1:10": true, + "13:8": [ + 175, + 217 + ], + "12:0": true, + "15:12": true, + "4:2": true, + "0:11": true, + "5:2": true, + "1:13": true, + "11:4": true, + "15:10": true, + "5:0": 204, + "13:7": true, + "12:4": true, + "1:12": true, + "6:0": [ + 203, + 204 + ], + "1:11": true, + "10:4": [ + 202, + 203 + ], + "10:3": true, + "0:13": true, + "9:4": [ + 201, + 202 + ], + "7:4": true, + "13:6": true, + "9:2": 218, + "0:10": true, + "14:11": true, + "4:1": true, + "6:4": true, + "10:0": true, + "5:1": 161, + "0:12": true, + "12:9": true, + "9:0": true, + "6:3": true, + "7:0": [ + 202, + 218 + ], + "13:3": true, + "13:4": true, + "12:7": true, + "14:3": true, + "11:10": true, + "1:0": true, + "8:0": [ + 201, + 202 + ], + "14:2": true, + "0:1": true, + "8:6": true, + "3:1": true, + "12:13": true, + "1:3": true, + "10:11": true, + "11:14": true, + "1:4": true, + "2:0": true, + "8:4": [ + 201, + 202 + ], + "1:2": true, + "7:5": true, + "0:9": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_-5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_-5.json index 998fbd6c..302a2cfe 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_-5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_-5.json @@ -1 +1,102 @@ -{"1:1":true,"8:8":true,"6:10":true,"0:6":true,"0:0":true,"1:8":177,"4:11":true,"0:2":177,"5:11":true,"1:9":177,"3:4":[208,209],"8:9":true,"1:7":true,"6:15":217,"5:3":209,"2:15":true,"1:10":[177,218],"12:0":209,"9:9":true,"7:9":true,"15:12":235,"0:11":177,"3:11":[237,238],"9:1":[210,212],"7:8":true,"6:9":true,"1:14":true,"10:1":[211,212],"6:7":224,"6:0":true,"1:11":[177,237],"1:5":true,"0:13":true,"7:2":[210,211],"11:1":[209,213],"13:0":[209,210],"0:10":177,"3:12":218,"5:1":[196,198],"2:5":true,"0:14":true,"6:2":210,"2:11":[218,237],"5:14":217,"0:8":177,"6:11":true,"1:0":true,"0:1":177,"5:10":true,"4:10":236,"8:2":true,"0:7":true,"14:0":[211,212],"2:0":true,"1:2":177,"0:9":[177,218],"7:11":true,"4:13":[217,218]} \ No newline at end of file +{ + "1:1": true, + "8:8": true, + "6:10": true, + "0:6": true, + "0:0": true, + "1:8": 177, + "4:11": true, + "0:2": 177, + "5:11": true, + "1:9": 177, + "3:4": [ + 208, + 209 + ], + "8:9": true, + "1:7": true, + "6:15": 217, + "5:3": 209, + "2:15": true, + "1:10": [ + 177, + 218 + ], + "12:0": 209, + "9:9": true, + "7:9": true, + "15:12": 235, + "0:11": 177, + "3:11": [ + 237, + 238 + ], + "9:1": [ + 210, + 212 + ], + "7:8": true, + "6:9": true, + "1:14": true, + "10:1": [ + 211, + 212 + ], + "6:7": 224, + "6:0": true, + "1:11": [ + 177, + 237 + ], + "1:5": true, + "0:13": true, + "7:2": [ + 210, + 211 + ], + "11:1": [ + 209, + 213 + ], + "13:0": [ + 209, + 210 + ], + "0:10": 177, + "3:12": 218, + "5:1": [ + 196, + 198 + ], + "2:5": true, + "0:14": true, + "6:2": 210, + "2:11": [ + 218, + 237 + ], + "5:14": 217, + "0:8": 177, + "6:11": true, + "1:0": true, + "0:1": 177, + "5:10": true, + "4:10": 236, + "8:2": true, + "0:7": true, + "14:0": [ + 211, + 212 + ], + "2:0": true, + "1:2": 177, + "0:9": [ + 177, + 218 + ], + "7:11": true, + "4:13": [ + 217, + 218 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_-6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_-6.json index 32fc9d93..a9d5b23b 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_-6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_-6.json @@ -1 +1,21 @@ -{"1:6":true,"1:5":true,"0:8":true,"14:15":[209,210],"0:6":true,"0:5":true,"12:8":183,"1:8":true,"1:14":true,"0:15":true,"0:7":true,"1:9":true,"1:15":true,"0:14":true,"1:7":true,"0:9":true} \ No newline at end of file +{ + "1:6": true, + "1:5": true, + "0:8": true, + "14:15": [ + 209, + 210 + ], + "0:6": true, + "0:5": true, + "12:8": 183, + "1:8": true, + "1:14": true, + "0:15": true, + "0:7": true, + "1:9": true, + "1:15": true, + "0:14": true, + "1:7": true, + "0:9": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_0.json index f4ef8dc2..55039193 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_0.json @@ -1 +1,35 @@ -{"3:13":true,"13:13":true,"10:14":true,"0:13":190,"6:13":true,"7:14":true,"7:13":true,"3:15":true,"6:14":true,"13:14":true,"10:13":true,"0:14":190,"3:14":true,"9:13":true,"14:14":true,"4:14":true,"8:13":true,"5:14":true,"15:14":true,"11:13":true,"12:13":true,"5:15":true,"2:14":190,"1:13":true,"12:14":true,"2:13":true,"1:14":190,"11:14":true,"15:13":true,"5:13":true,"8:14":true,"14:13":true,"4:13":true} \ No newline at end of file +{ + "3:13": true, + "13:13": true, + "10:14": true, + "0:13": 190, + "6:13": true, + "7:14": true, + "7:13": true, + "3:15": true, + "6:14": true, + "13:14": true, + "10:13": true, + "0:14": 190, + "3:14": true, + "9:13": true, + "14:14": true, + "4:14": true, + "8:13": true, + "5:14": true, + "15:14": true, + "11:13": true, + "12:13": true, + "5:15": true, + "2:14": 190, + "1:13": true, + "12:14": true, + "2:13": true, + "1:14": 190, + "11:14": true, + "15:13": true, + "5:13": true, + "8:14": true, + "14:13": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_1.json index 7e4d2f51..3c4e65c8 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_1.json @@ -1 +1,98 @@ -{"1:1":true,"11:5":true,"12:5":true,"3:0":true,"0:0":[190,192],"10:15":true,"1:8":true,"13:15":[198,200],"5:5":true,"2:8":true,"4:5":true,"3:2":true,"15:1":true,"1:9":true,"3:4":true,"0:4":true,"11:0":true,"5:4":true,"12:0":true,"6:1":true,"4:4":true,"3:5":true,"14:15":[198,200],"13:1":true,"15:15":[198,200],"5:2":true,"0:5":true,"11:4":true,"9:1":true,"5:0":true,"12:4":true,"4:0":true,"11:2":true,"7:1":true,"6:0":true,"10:4":true,"1:5":true,"7:2":true,"11:1":true,"8:5":true,"7:4":true,"9:2":true,"13:0":true,"0:10":true,"13:2":true,"6:4":true,"15:5":true,"10:0":true,"14:5":true,"5:1":true,"9:0":true,"7:0":true,"2:5":true,"13:4":true,"4:8":true,"15:4":true,"6:5":true,"3:8":true,"0:8":true,"1:0":[190,192],"14:4":true,"2:4":true,"8:0":true,"15:2":true,"3:1":true,"13:5":true,"15:0":true,"10:5":true,"9:5":true,"1:4":true,"0:7":true,"14:0":true,"2:0":[190,192],"12:15":true,"8:4":true,"1:2":true,"7:5":true,"11:15":true} \ No newline at end of file +{ + "1:1": true, + "11:5": true, + "12:5": true, + "3:0": true, + "0:0": [ + 190, + 192 + ], + "10:15": true, + "1:8": true, + "13:15": [ + 198, + 200 + ], + "5:5": true, + "2:8": true, + "4:5": true, + "3:2": true, + "15:1": true, + "1:9": true, + "3:4": true, + "0:4": true, + "11:0": true, + "5:4": true, + "12:0": true, + "6:1": true, + "4:4": true, + "3:5": true, + "14:15": [ + 198, + 200 + ], + "13:1": true, + "15:15": [ + 198, + 200 + ], + "5:2": true, + "0:5": true, + "11:4": true, + "9:1": true, + "5:0": true, + "12:4": true, + "4:0": true, + "11:2": true, + "7:1": true, + "6:0": true, + "10:4": true, + "1:5": true, + "7:2": true, + "11:1": true, + "8:5": true, + "7:4": true, + "9:2": true, + "13:0": true, + "0:10": true, + "13:2": true, + "6:4": true, + "15:5": true, + "10:0": true, + "14:5": true, + "5:1": true, + "9:0": true, + "7:0": true, + "2:5": true, + "13:4": true, + "4:8": true, + "15:4": true, + "6:5": true, + "3:8": true, + "0:8": true, + "1:0": [ + 190, + 192 + ], + "14:4": true, + "2:4": true, + "8:0": true, + "15:2": true, + "3:1": true, + "13:5": true, + "15:0": true, + "10:5": true, + "9:5": true, + "1:4": true, + "0:7": true, + "14:0": true, + "2:0": [ + 190, + 192 + ], + "12:15": true, + "8:4": true, + "1:2": true, + "7:5": true, + "11:15": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_2.json index f01a6ff5..5da29662 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_2.json @@ -1 +1,19 @@ -{"8:5":true,"8:1":true,"0:15":true,"15:5":176,"8:6":true,"8:2":[198,200],"8:4":[198,200],"8:3":[198,200]} \ No newline at end of file +{ + "8:5": true, + "8:1": true, + "0:15": true, + "15:5": 176, + "8:6": true, + "8:2": [ + 198, + 200 + ], + "8:4": [ + 198, + 200 + ], + "8:3": [ + 198, + 200 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_4.json index cba2dea8..90cca4a3 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_4.json @@ -1 +1,141 @@ -{"1:1":true,"8:8":true,"7:12":true,"6:10":true,"10:14":true,"7:15":[147,148],"10:12":true,"6:13":147,"3:0":true,"9:15":true,"0:0":true,"8:1":true,"3:6":true,"10:15":true,"7:14":true,"10:10":true,"8:7":true,"5:5":true,"7:13":true,"9:10":true,"5:11":true,"4:5":true,"3:2":true,"6:14":147,"10:13":true,"3:4":true,"8:9":true,"7:10":true,"6:12":true,"3:3":true,"6:15":[147,148],"2:1":true,"4:3":true,"8:13":true,"5:4":true,"7:7":true,"5:3":true,"2:15":142,"9:9":true,"6:1":true,"4:4":true,"8:10":true,"7:9":true,"6:8":true,"3:5":true,"4:2":true,"9:7":true,"5:2":true,"8:12":true,"7:8":true,"6:9":true,"4:6":true,"5:0":true,"5:6":true,"8:15":true,"4:0":true,"6:7":true,"8:14":true,"9:8":true,"7:1":true,"6:0":true,"3:13":143,"5:9":true,"7:2":true,"6:6":true,"4:9":true,"8:5":true,"5:7":true,"3:10":145,"7:4":true,"8:11":true,"4:7":true,"7:3":true,"4:1":true,"3:12":144,"6:4":true,"5:1":true,"3:15":[142,145],"6:3":true,"7:0":true,"2:5":true,"5:8":true,"3:14":142,"6:2":true,"7:6":true,"4:8":true,"4:14":[143,146],"6:5":true,"3:8":true,"5:14":147,"2:2":true,"6:11":true,"1:0":true,"5:12":147,"2:4":true,"4:15":[142,148],"8:6":true,"4:12":[145,146],"3:1":true,"5:15":[147,148],"2:3":true,"5:10":true,"3:7":true,"4:10":[146,147],"8:2":true,"2:0":true,"8:4":true,"5:13":147,"1:2":true,"7:5":true,"3:9":145,"11:15":true,"8:3":true,"7:11":true,"4:13":true} \ No newline at end of file +{ + "1:1": true, + "8:8": true, + "7:12": true, + "6:10": true, + "10:14": true, + "7:15": [ + 147, + 148 + ], + "10:12": true, + "6:13": 147, + "3:0": true, + "9:15": true, + "0:0": true, + "8:1": true, + "3:6": true, + "10:15": true, + "7:14": true, + "10:10": true, + "8:7": true, + "5:5": true, + "7:13": true, + "9:10": true, + "5:11": true, + "4:5": true, + "3:2": true, + "6:14": 147, + "10:13": true, + "3:4": true, + "8:9": true, + "7:10": true, + "6:12": true, + "3:3": true, + "6:15": [ + 147, + 148 + ], + "2:1": true, + "4:3": true, + "8:13": true, + "5:4": true, + "7:7": true, + "5:3": true, + "2:15": 142, + "9:9": true, + "6:1": true, + "4:4": true, + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": true, + "4:2": true, + "9:7": true, + "5:2": true, + "8:12": true, + "7:8": true, + "6:9": true, + "4:6": true, + "5:0": true, + "5:6": true, + "8:15": true, + "4:0": true, + "6:7": true, + "8:14": true, + "9:8": true, + "7:1": true, + "6:0": true, + "3:13": 143, + "5:9": true, + "7:2": true, + "6:6": true, + "4:9": true, + "8:5": true, + "5:7": true, + "3:10": 145, + "7:4": true, + "8:11": true, + "4:7": true, + "7:3": true, + "4:1": true, + "3:12": 144, + "6:4": true, + "5:1": true, + "3:15": [ + 142, + 145 + ], + "6:3": true, + "7:0": true, + "2:5": true, + "5:8": true, + "3:14": 142, + "6:2": true, + "7:6": true, + "4:8": true, + "4:14": [ + 143, + 146 + ], + "6:5": true, + "3:8": true, + "5:14": 147, + "2:2": true, + "6:11": true, + "1:0": true, + "5:12": 147, + "2:4": true, + "4:15": [ + 142, + 148 + ], + "8:6": true, + "4:12": [ + 145, + 146 + ], + "3:1": true, + "5:15": [ + 147, + 148 + ], + "2:3": true, + "5:10": true, + "3:7": true, + "4:10": [ + 146, + 147 + ], + "8:2": true, + "2:0": true, + "8:4": true, + "5:13": 147, + "1:2": true, + "7:5": true, + "3:9": 145, + "11:15": true, + "8:3": true, + "7:11": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_5.json index 46aeccfe..030b4d97 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_5.json @@ -1 +1,178 @@ -{"9:14":true,"1:1":true,"11:5":true,"2:7":true,"8:8":true,"7:12":true,"6:10":true,"12:5":true,"10:14":true,"7:15":true,"10:12":true,"6:13":true,"2:9":true,"9:15":true,"9:12":true,"8:1":147,"3:6":145,"10:15":true,"7:14":true,"10:10":true,"8:7":true,"5:5":147,"4:11":147,"7:13":true,"2:8":true,"9:10":true,"5:11":true,"4:5":[145,146],"6:14":true,"10:13":true,"3:4":143,"8:9":true,"7:10":true,"6:12":true,"6:15":true,"9:13":true,"12:6":true,"4:3":[144,146],"8:13":true,"5:4":147,"2:12":true,"10:9":true,"7:7":true,"5:3":true,"2:15":true,"1:10":true,"9:9":true,"6:1":147,"11:6":true,"4:4":[144,146],"10:7":true,"8:10":true,"7:9":true,"6:8":147,"3:5":144,"4:2":[144,146],"9:7":true,"5:2":147,"2:14":146,"0:5":true,"4:6":146,"12:3":true,"11:4":true,"9:1":true,"8:12":true,"7:8":true,"6:9":true,"2:13":[145,147],"5:0":147,"10:1":true,"5:6":147,"8:15":true,"13:7":true,"12:4":true,"11:3":true,"4:0":[143,146],"2:10":true,"10:8":true,"6:7":147,"11:2":true,"8:14":true,"9:8":true,"7:1":147,"9:3":true,"6:0":147,"10:4":true,"3:13":147,"5:9":147,"10:3":true,"1:5":true,"7:2":147,"6:6":147,"4:9":147,"11:1":true,"9:4":true,"8:5":true,"5:7":147,"3:10":true,"11:8":true,"7:4":147,"13:6":true,"9:2":true,"8:11":true,"4:7":146,"10:2":true,"12:8":true,"7:3":147,"9:6":true,"4:1":[145,146],"6:4":147,"10:0":true,"10:6":true,"5:1":147,"3:15":true,"9:0":true,"6:3":true,"7:0":147,"11:7":true,"5:8":147,"3:14":true,"6:2":147,"7:6":true,"4:8":147,"2:11":true,"4:14":true,"6:5":147,"3:8":true,"5:14":true,"6:11":true,"5:12":true,"8:0":true,"4:15":true,"0:1":true,"8:6":true,"4:12":147,"5:15":true,"13:5":true,"10:5":true,"9:11":true,"5:10":true,"3:7":true,"9:5":true,"4:10":147,"11:14":true,"8:2":true,"11:12":true,"8:4":true,"5:13":true,"7:5":147,"3:9":true,"11:15":true,"8:3":147,"7:11":true,"4:13":true,"2:6":true} \ No newline at end of file +{ + "9:14": true, + "1:1": true, + "11:5": true, + "2:7": true, + "8:8": true, + "7:12": true, + "6:10": true, + "12:5": true, + "10:14": true, + "7:15": true, + "10:12": true, + "6:13": true, + "2:9": true, + "9:15": true, + "9:12": true, + "8:1": 147, + "3:6": 145, + "10:15": true, + "7:14": true, + "10:10": true, + "8:7": true, + "5:5": 147, + "4:11": 147, + "7:13": true, + "2:8": true, + "9:10": true, + "5:11": true, + "4:5": [ + 145, + 146 + ], + "6:14": true, + "10:13": true, + "3:4": 143, + "8:9": true, + "7:10": true, + "6:12": true, + "6:15": true, + "9:13": true, + "12:6": true, + "4:3": [ + 144, + 146 + ], + "8:13": true, + "5:4": 147, + "2:12": true, + "10:9": true, + "7:7": true, + "5:3": true, + "2:15": true, + "1:10": true, + "9:9": true, + "6:1": 147, + "11:6": true, + "4:4": [ + 144, + 146 + ], + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": 147, + "3:5": 144, + "4:2": [ + 144, + 146 + ], + "9:7": true, + "5:2": 147, + "2:14": 146, + "0:5": true, + "4:6": 146, + "12:3": true, + "11:4": true, + "9:1": true, + "8:12": true, + "7:8": true, + "6:9": true, + "2:13": [ + 145, + 147 + ], + "5:0": 147, + "10:1": true, + "5:6": 147, + "8:15": true, + "13:7": true, + "12:4": true, + "11:3": true, + "4:0": [ + 143, + 146 + ], + "2:10": true, + "10:8": true, + "6:7": 147, + "11:2": true, + "8:14": true, + "9:8": true, + "7:1": 147, + "9:3": true, + "6:0": 147, + "10:4": true, + "3:13": 147, + "5:9": 147, + "10:3": true, + "1:5": true, + "7:2": 147, + "6:6": 147, + "4:9": 147, + "11:1": true, + "9:4": true, + "8:5": true, + "5:7": 147, + "3:10": true, + "11:8": true, + "7:4": 147, + "13:6": true, + "9:2": true, + "8:11": true, + "4:7": 146, + "10:2": true, + "12:8": true, + "7:3": 147, + "9:6": true, + "4:1": [ + 145, + 146 + ], + "6:4": 147, + "10:0": true, + "10:6": true, + "5:1": 147, + "3:15": true, + "9:0": true, + "6:3": true, + "7:0": 147, + "11:7": true, + "5:8": 147, + "3:14": true, + "6:2": 147, + "7:6": true, + "4:8": 147, + "2:11": true, + "4:14": true, + "6:5": 147, + "3:8": true, + "5:14": true, + "6:11": true, + "5:12": true, + "8:0": true, + "4:15": true, + "0:1": true, + "8:6": true, + "4:12": 147, + "5:15": true, + "13:5": true, + "10:5": true, + "9:11": true, + "5:10": true, + "3:7": true, + "9:5": true, + "4:10": 147, + "11:14": true, + "8:2": true, + "11:12": true, + "8:4": true, + "5:13": true, + "7:5": 147, + "3:9": true, + "11:15": true, + "8:3": 147, + "7:11": true, + "4:13": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_6.json index 303f3022..9eac7411 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_6.json @@ -1 +1,114 @@ -{"1:1":true,"2:7":true,"6:10":true,"2:9":true,"3:0":true,"8:1":true,"3:6":true,"5:5":true,"4:11":true,"2:8":true,"5:11":true,"4:5":true,"3:2":true,"1:9":true,"13:14":148,"3:4":true,"7:10":true,"6:12":true,"3:3":true,"6:15":true,"2:1":true,"4:3":true,"5:4":true,"2:12":true,"7:7":true,"5:3":true,"6:1":true,"4:4":true,"7:9":true,"6:8":true,"3:5":true,"4:2":true,"3:11":true,"5:2":true,"2:14":148,"9:1":true,"7:8":true,"6:9":true,"4:6":true,"5:0":true,"5:6":true,"4:0":true,"2:10":true,"6:7":true,"7:1":true,"9:3":true,"6:0":true,"3:13":true,"5:9":true,"7:2":true,"6:6":true,"4:9":true,"9:4":true,"8:5":true,"5:7":true,"3:10":true,"7:4":true,"9:2":true,"4:7":true,"7:3":true,"4:1":true,"3:12":true,"6:4":true,"10:0":true,"5:1":true,"3:15":[170,171],"9:0":true,"6:3":true,"7:0":true,"2:5":true,"5:8":true,"3:14":[147,170],"6:2":true,"7:6":true,"4:8":true,"2:11":true,"4:14":true,"6:5":true,"3:8":true,"5:14":true,"2:2":true,"6:11":true,"1:0":true,"5:12":true,"2:4":true,"8:0":true,"4:15":true,"8:6":true,"4:12":true,"3:1":true,"5:15":true,"2:3":true,"5:10":true,"3:7":true,"1:3":true,"8:2":true,"1:4":true,"2:0":true,"8:4":true,"5:13":true,"1:2":true,"7:5":true,"3:9":true,"8:3":true,"4:13":true,"2:6":true} \ No newline at end of file +{ + "1:1": true, + "2:7": true, + "6:10": true, + "2:9": true, + "3:0": true, + "8:1": true, + "3:6": true, + "5:5": true, + "4:11": true, + "2:8": true, + "5:11": true, + "4:5": true, + "3:2": true, + "1:9": true, + "13:14": 148, + "3:4": true, + "7:10": true, + "6:12": true, + "3:3": true, + "6:15": true, + "2:1": true, + "4:3": true, + "5:4": true, + "2:12": true, + "7:7": true, + "5:3": true, + "6:1": true, + "4:4": true, + "7:9": true, + "6:8": true, + "3:5": true, + "4:2": true, + "3:11": true, + "5:2": true, + "2:14": 148, + "9:1": true, + "7:8": true, + "6:9": true, + "4:6": true, + "5:0": true, + "5:6": true, + "4:0": true, + "2:10": true, + "6:7": true, + "7:1": true, + "9:3": true, + "6:0": true, + "3:13": true, + "5:9": true, + "7:2": true, + "6:6": true, + "4:9": true, + "9:4": true, + "8:5": true, + "5:7": true, + "3:10": true, + "7:4": true, + "9:2": true, + "4:7": true, + "7:3": true, + "4:1": true, + "3:12": true, + "6:4": true, + "10:0": true, + "5:1": true, + "3:15": [ + 170, + 171 + ], + "9:0": true, + "6:3": true, + "7:0": true, + "2:5": true, + "5:8": true, + "3:14": [ + 147, + 170 + ], + "6:2": true, + "7:6": true, + "4:8": true, + "2:11": true, + "4:14": true, + "6:5": true, + "3:8": true, + "5:14": true, + "2:2": true, + "6:11": true, + "1:0": true, + "5:12": true, + "2:4": true, + "8:0": true, + "4:15": true, + "8:6": true, + "4:12": true, + "3:1": true, + "5:15": true, + "2:3": true, + "5:10": true, + "3:7": true, + "1:3": true, + "8:2": true, + "1:4": true, + "2:0": true, + "8:4": true, + "5:13": true, + "1:2": true, + "7:5": true, + "3:9": true, + "8:3": true, + "4:13": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_7.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_7.json index 645ca655..81ba0e3a 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_7.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_7.json @@ -1 +1,136 @@ -{"9:14":true,"1:1":148,"8:8":true,"7:12":true,"6:10":true,"13:13":true,"10:14":true,"7:15":true,"10:12":true,"6:13":true,"2:9":true,"3:0":[148,171],"9:15":true,"9:12":true,"3:6":true,"10:15":true,"7:14":true,"13:15":true,"10:10":true,"8:7":true,"5:5":true,"4:11":true,"7:13":true,"2:8":true,"9:10":true,"5:11":true,"4:5":true,"3:2":true,"6:14":true,"1:9":true,"13:14":true,"10:13":true,"8:9":true,"7:10":true,"6:12":true,"3:3":true,"6:15":true,"9:13":true,"2:1":148,"14:14":true,"4:3":true,"8:13":true,"5:4":true,"2:12":true,"7:7":true,"5:3":true,"15:14":true,"9:9":true,"6:1":true,"4:4":true,"8:10":true,"7:9":true,"6:8":true,"3:5":true,"14:15":true,"4:2":true,"15:15":true,"9:7":true,"3:11":true,"5:2":true,"8:12":true,"7:8":true,"6:9":true,"4:6":true,"2:13":true,"5:0":true,"5:6":true,"8:15":true,"4:0":true,"15:13":true,"2:10":true,"6:7":true,"8:14":true,"9:8":true,"14:13":true,"6:0":true,"3:13":true,"5:9":true,"6:6":true,"4:9":true,"5:7":true,"3:10":true,"7:4":true,"8:11":true,"4:7":true,"7:3":true,"4:1":true,"3:12":true,"6:4":true,"5:1":true,"6:3":true,"2:5":true,"5:8":true,"3:14":true,"6:2":true,"7:6":true,"4:8":true,"2:11":true,"4:14":true,"6:5":true,"3:8":true,"5:14":true,"2:2":148,"6:11":true,"11:13":true,"5:12":true,"4:15":true,"8:6":true,"4:12":true,"3:1":true,"12:13":true,"5:15":true,"2:3":true,"12:14":true,"9:11":true,"5:10":true,"3:7":true,"1:3":148,"10:11":true,"4:10":true,"11:14":true,"2:0":148,"11:12":true,"5:13":true,"1:2":148,"7:5":true,"3:9":true,"11:15":true,"7:11":true,"4:13":true,"2:6":true} \ No newline at end of file +{ + "9:14": true, + "1:1": 148, + "8:8": true, + "7:12": true, + "6:10": true, + "13:13": true, + "10:14": true, + "7:15": true, + "10:12": true, + "6:13": true, + "2:9": true, + "3:0": [ + 148, + 171 + ], + "9:15": true, + "9:12": true, + "3:6": true, + "10:15": true, + "7:14": true, + "13:15": true, + "10:10": true, + "8:7": true, + "5:5": true, + "4:11": true, + "7:13": true, + "2:8": true, + "9:10": true, + "5:11": true, + "4:5": true, + "3:2": true, + "6:14": true, + "1:9": true, + "13:14": true, + "10:13": true, + "8:9": true, + "7:10": true, + "6:12": true, + "3:3": true, + "6:15": true, + "9:13": true, + "2:1": 148, + "14:14": true, + "4:3": true, + "8:13": true, + "5:4": true, + "2:12": true, + "7:7": true, + "5:3": true, + "15:14": true, + "9:9": true, + "6:1": true, + "4:4": true, + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": true, + "14:15": true, + "4:2": true, + "15:15": true, + "9:7": true, + "3:11": true, + "5:2": true, + "8:12": true, + "7:8": true, + "6:9": true, + "4:6": true, + "2:13": true, + "5:0": true, + "5:6": true, + "8:15": true, + "4:0": true, + "15:13": true, + "2:10": true, + "6:7": true, + "8:14": true, + "9:8": true, + "14:13": true, + "6:0": true, + "3:13": true, + "5:9": true, + "6:6": true, + "4:9": true, + "5:7": true, + "3:10": true, + "7:4": true, + "8:11": true, + "4:7": true, + "7:3": true, + "4:1": true, + "3:12": true, + "6:4": true, + "5:1": true, + "6:3": true, + "2:5": true, + "5:8": true, + "3:14": true, + "6:2": true, + "7:6": true, + "4:8": true, + "2:11": true, + "4:14": true, + "6:5": true, + "3:8": true, + "5:14": true, + "2:2": 148, + "6:11": true, + "11:13": true, + "5:12": true, + "4:15": true, + "8:6": true, + "4:12": true, + "3:1": true, + "12:13": true, + "5:15": true, + "2:3": true, + "12:14": true, + "9:11": true, + "5:10": true, + "3:7": true, + "1:3": 148, + "10:11": true, + "4:10": true, + "11:14": true, + "2:0": 148, + "11:12": true, + "5:13": true, + "1:2": 148, + "7:5": true, + "3:9": true, + "11:15": true, + "7:11": true, + "4:13": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_8.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_8.json index c412285b..741c9bfe 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_8.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_8.json @@ -1 +1,262 @@ -{"6:10":true,"13:15":true,"14:1":true,"10:10":true,"8:7":true,"4:11":true,"9:10":true,"5:11":true,"13:12":[131,172],"15:1":true,"8:9":true,"7:10":true,"2:12":true,"10:9":true,"7:7":true,"2:15":[138,152],"15:14":true,"10:7":true,"8:10":true,"7:9":true,"6:8":true,"14:15":true,"13:1":true,"0:11":true,"15:15":[131,149],"14:12":true,"9:7":true,"3:11":true,"2:14":[138,150],"1:13":[138,151],"2:13":[138,150],"1:14":[138,150],"5:0":true,"5:6":true,"4:0":true,"15:13":true,"1:15":[138,152],"10:8":true,"6:7":true,"1:12":true,"9:8":true,"1:11":true,"3:13":true,"11:8":true,"13:6":true,"13:0":true,"12:8":true,"14:11":true,"13:2":[134,168],"3:12":true,"0:15":[138,152],"11:9":true,"14:5":[133,135],"5:1":true,"3:15":[138,150],"0:12":true,"15:11":true,"12:9":true,"13:3":true,"11:7":true,"0:14":151,"13:4":true,"12:7":true,"3:14":[137,149],"2:11":true,"4:14":true,"11:10":true,"12:10":true,"5:14":true,"15:3":169,"14:4":[133,134],"5:12":true,"14:2":true,"13:11":133,"4:15":[137,173],"15:2":true,"4:12":true,"13:5":true,"5:15":[137,173],"15:0":true,"14:6":true,"15:6":true,"14:0":true,"5:13":true,"4:13":true,"15:9":true,"12:11":133,"9:14":[133,173],"11:5":true,"7:12":true,"12:5":true,"10:14":[168,173],"7:15":[136,173],"14:9":133,"11:11":true,"10:12":true,"6:13":true,"2:9":true,"15:7":true,"9:15":true,"14:7":true,"9:12":true,"8:1":true,"10:15":true,"13:10":true,"7:14":true,"7:13":true,"6:14":true,"15:8":true,"10:13":true,"6:15":[137,173],"14:8":true,"9:13":true,"11:0":true,"12:6":true,"8:13":true,"1:10":true,"13:8":true,"12:0":true,"6:1":true,"11:6":true,"12:3":true,"11:4":true,"9:1":true,"8:12":true,"15:10":133,"14:10":133,"10:1":true,"13:7":true,"12:4":true,"11:3":true,"8:15":true,"12:2":[136,139],"2:10":true,"11:2":true,"8:14":[135,170],"13:9":true,"7:1":true,"12:1":true,"9:3":true,"6:0":true,"10:4":true,"5:9":true,"10:3":true,"7:2":true,"6:6":true,"4:9":true,"11:1":[136,167],"9:4":true,"8:5":true,"5:7":true,"3:10":true,"7:4":true,"9:2":true,"8:11":true,"10:2":true,"0:10":true,"7:3":true,"9:6":true,"6:4":true,"10:0":true,"10:6":true,"9:0":true,"6:3":true,"7:0":true,"5:8":true,"6:2":true,"7:6":true,"4:8":true,"6:5":true,"11:13":[132,174],"8:0":true,"8:6":true,"10:5":true,"9:11":true,"5:10":true,"10:11":true,"9:5":true,"4:10":true,"8:2":true,"12:15":true,"11:12":true,"8:4":true,"7:5":true,"3:9":true,"12:12":132,"8:3":true,"7:11":true} \ No newline at end of file +{ + "6:10": true, + "13:15": true, + "14:1": true, + "10:10": true, + "8:7": true, + "4:11": true, + "9:10": true, + "5:11": true, + "13:12": [ + 131, + 172 + ], + "15:1": true, + "8:9": true, + "7:10": true, + "2:12": true, + "10:9": true, + "7:7": true, + "2:15": [ + 138, + 152 + ], + "15:14": true, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "14:15": true, + "13:1": true, + "0:11": true, + "15:15": [ + 131, + 149 + ], + "14:12": true, + "9:7": true, + "3:11": true, + "2:14": [ + 138, + 150 + ], + "1:13": [ + 138, + 151 + ], + "2:13": [ + 138, + 150 + ], + "1:14": [ + 138, + 150 + ], + "5:0": true, + "5:6": true, + "4:0": true, + "15:13": true, + "1:15": [ + 138, + 152 + ], + "10:8": true, + "6:7": true, + "1:12": true, + "9:8": true, + "1:11": true, + "3:13": true, + "11:8": true, + "13:6": true, + "13:0": true, + "12:8": true, + "14:11": true, + "13:2": [ + 134, + 168 + ], + "3:12": true, + "0:15": [ + 138, + 152 + ], + "11:9": true, + "14:5": [ + 133, + 135 + ], + "5:1": true, + "3:15": [ + 138, + 150 + ], + "0:12": true, + "15:11": true, + "12:9": true, + "13:3": true, + "11:7": true, + "0:14": 151, + "13:4": true, + "12:7": true, + "3:14": [ + 137, + 149 + ], + "2:11": true, + "4:14": true, + "11:10": true, + "12:10": true, + "5:14": true, + "15:3": 169, + "14:4": [ + 133, + 134 + ], + "5:12": true, + "14:2": true, + "13:11": 133, + "4:15": [ + 137, + 173 + ], + "15:2": true, + "4:12": true, + "13:5": true, + "5:15": [ + 137, + 173 + ], + "15:0": true, + "14:6": true, + "15:6": true, + "14:0": true, + "5:13": true, + "4:13": true, + "15:9": true, + "12:11": 133, + "9:14": [ + 133, + 173 + ], + "11:5": true, + "7:12": true, + "12:5": true, + "10:14": [ + 168, + 173 + ], + "7:15": [ + 136, + 173 + ], + "14:9": 133, + "11:11": true, + "10:12": true, + "6:13": true, + "2:9": true, + "15:7": true, + "9:15": true, + "14:7": true, + "9:12": true, + "8:1": true, + "10:15": true, + "13:10": true, + "7:14": true, + "7:13": true, + "6:14": true, + "15:8": true, + "10:13": true, + "6:15": [ + 137, + 173 + ], + "14:8": true, + "9:13": true, + "11:0": true, + "12:6": true, + "8:13": true, + "1:10": true, + "13:8": true, + "12:0": true, + "6:1": true, + "11:6": true, + "12:3": true, + "11:4": true, + "9:1": true, + "8:12": true, + "15:10": 133, + "14:10": 133, + "10:1": true, + "13:7": true, + "12:4": true, + "11:3": true, + "8:15": true, + "12:2": [ + 136, + 139 + ], + "2:10": true, + "11:2": true, + "8:14": [ + 135, + 170 + ], + "13:9": true, + "7:1": true, + "12:1": true, + "9:3": true, + "6:0": true, + "10:4": true, + "5:9": true, + "10:3": true, + "7:2": true, + "6:6": true, + "4:9": true, + "11:1": [ + 136, + 167 + ], + "9:4": true, + "8:5": true, + "5:7": true, + "3:10": true, + "7:4": true, + "9:2": true, + "8:11": true, + "10:2": true, + "0:10": true, + "7:3": true, + "9:6": true, + "6:4": true, + "10:0": true, + "10:6": true, + "9:0": true, + "6:3": true, + "7:0": true, + "5:8": true, + "6:2": true, + "7:6": true, + "4:8": true, + "6:5": true, + "11:13": [ + 132, + 174 + ], + "8:0": true, + "8:6": true, + "10:5": true, + "9:11": true, + "5:10": true, + "10:11": true, + "9:5": true, + "4:10": true, + "8:2": true, + "12:15": true, + "11:12": true, + "8:4": true, + "7:5": true, + "3:9": true, + "12:12": 132, + "8:3": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_9.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_9.json index e0ccf216..7d316b72 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-6_9.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-6_9.json @@ -1 +1,256 @@ -{"1:1":138,"8:8":true,"6:10":true,"13:13":true,"0:6":true,"3:6":true,"14:1":true,"13:15":true,"10:10":true,"8:7":true,"5:5":true,"4:11":true,"0:2":[138,181],"9:10":true,"5:11":true,"4:5":true,"13:12":true,"3:2":true,"15:1":true,"13:14":true,"3:4":true,"0:3":true,"8:9":true,"7:10":true,"3:3":true,"0:4":true,"2:1":138,"14:14":true,"4:3":true,"5:4":true,"2:12":true,"10:9":true,"7:7":true,"5:3":true,"2:15":true,"15:14":true,"9:9":true,"4:4":true,"10:7":true,"8:10":true,"7:9":true,"6:8":true,"3:5":true,"15:12":true,"14:15":true,"13:1":true,"4:2":true,"15:15":true,"14:12":true,"9:7":true,"3:11":true,"5:2":true,"0:5":true,"4:6":true,"7:8":true,"6:9":true,"2:13":true,"5:0":[138,173],"5:6":true,"4:0":149,"15:13":true,"1:15":true,"10:8":true,"6:7":true,"1:12":true,"9:8":true,"14:13":true,"1:11":true,"3:13":true,"1:5":true,"11:8":true,"13:6":true,"12:8":true,"14:11":true,"13:2":true,"4:1":true,"3:12":true,"0:15":true,"11:9":true,"15:5":true,"14:5":true,"5:1":true,"15:11":true,"12:9":true,"13:3":true,"11:7":true,"2:5":true,"0:14":true,"13:4":true,"12:7":true,"2:11":true,"15:4":true,"14:3":true,"4:14":true,"1:6":true,"11:10":true,"12:10":true,"5:14":true,"2:2":[138,183],"15:3":true,"1:0":138,"14:4":true,"5:12":true,"2:4":true,"14:2":true,"13:11":true,"4:15":true,"0:1":138,"15:2":true,"4:12":true,"3:1":[138,173],"13:5":true,"5:15":true,"2:3":true,"15:0":true,"14:6":true,"1:3":true,"1:4":true,"15:6":true,"14:0":true,"2:0":138,"5:13":true,"1:2":[138,182],"4:13":true,"2:6":true,"15:9":true,"12:11":true,"9:14":true,"11:5":true,"2:7":true,"7:12":true,"12:5":true,"10:14":true,"14:9":true,"11:11":true,"10:12":true,"6:13":true,"2:9":true,"15:7":true,"9:15":true,"14:7":true,"9:12":true,"8:1":true,"13:10":true,"10:15":true,"1:8":true,"2:8":true,"6:14":true,"1:9":true,"15:8":true,"10:13":true,"6:12":true,"1:7":true,"6:15":true,"14:8":true,"9:13":true,"12:6":true,"8:13":[132,148],"1:10":true,"13:8":true,"6:1":true,"11:6":true,"12:3":true,"11:4":true,"9:1":true,"8:12":true,"15:10":true,"14:10":true,"13:7":true,"12:4":true,"11:3":true,"8:15":true,"12:2":true,"2:10":true,"11:2":true,"8:14":true,"13:9":true,"7:1":true,"12:1":true,"9:3":true,"6:0":true,"10:4":true,"5:9":true,"10:3":true,"7:2":true,"6:6":true,"4:9":true,"11:1":true,"9:4":true,"8:5":true,"5:7":true,"3:10":true,"7:4":true,"9:2":true,"8:11":true,"4:7":true,"10:2":true,"0:10":true,"7:3":true,"9:6":true,"6:4":true,"10:6":true,"9:0":true,"6:3":true,"7:0":true,"5:8":true,"6:2":true,"7:6":true,"4:8":true,"6:5":true,"3:8":true,"0:8":true,"6:11":true,"11:13":true,"8:0":true,"8:6":true,"12:13":true,"10:5":true,"9:11":true,"5:10":true,"3:7":true,"10:11":true,"9:5":true,"4:10":true,"8:2":true,"0:7":true,"12:15":true,"11:12":true,"8:4":true,"7:5":true,"3:9":true,"12:12":true,"11:15":true,"8:3":true,"0:9":true,"7:11":true} \ No newline at end of file +{ + "1:1": 138, + "8:8": true, + "6:10": true, + "13:13": true, + "0:6": true, + "3:6": true, + "14:1": true, + "13:15": true, + "10:10": true, + "8:7": true, + "5:5": true, + "4:11": true, + "0:2": [ + 138, + 181 + ], + "9:10": true, + "5:11": true, + "4:5": true, + "13:12": true, + "3:2": true, + "15:1": true, + "13:14": true, + "3:4": true, + "0:3": true, + "8:9": true, + "7:10": true, + "3:3": true, + "0:4": true, + "2:1": 138, + "14:14": true, + "4:3": true, + "5:4": true, + "2:12": true, + "10:9": true, + "7:7": true, + "5:3": true, + "2:15": true, + "15:14": true, + "9:9": true, + "4:4": true, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": true, + "15:12": true, + "14:15": true, + "13:1": true, + "4:2": true, + "15:15": true, + "14:12": true, + "9:7": true, + "3:11": true, + "5:2": true, + "0:5": true, + "4:6": true, + "7:8": true, + "6:9": true, + "2:13": true, + "5:0": [ + 138, + 173 + ], + "5:6": true, + "4:0": 149, + "15:13": true, + "1:15": true, + "10:8": true, + "6:7": true, + "1:12": true, + "9:8": true, + "14:13": true, + "1:11": true, + "3:13": true, + "1:5": true, + "11:8": true, + "13:6": true, + "12:8": true, + "14:11": true, + "13:2": true, + "4:1": true, + "3:12": true, + "0:15": true, + "11:9": true, + "15:5": true, + "14:5": true, + "5:1": true, + "15:11": true, + "12:9": true, + "13:3": true, + "11:7": true, + "2:5": true, + "0:14": true, + "13:4": true, + "12:7": true, + "2:11": true, + "15:4": true, + "14:3": true, + "4:14": true, + "1:6": true, + "11:10": true, + "12:10": true, + "5:14": true, + "2:2": [ + 138, + 183 + ], + "15:3": true, + "1:0": 138, + "14:4": true, + "5:12": true, + "2:4": true, + "14:2": true, + "13:11": true, + "4:15": true, + "0:1": 138, + "15:2": true, + "4:12": true, + "3:1": [ + 138, + 173 + ], + "13:5": true, + "5:15": true, + "2:3": true, + "15:0": true, + "14:6": true, + "1:3": true, + "1:4": true, + "15:6": true, + "14:0": true, + "2:0": 138, + "5:13": true, + "1:2": [ + 138, + 182 + ], + "4:13": true, + "2:6": true, + "15:9": true, + "12:11": true, + "9:14": true, + "11:5": true, + "2:7": true, + "7:12": true, + "12:5": true, + "10:14": true, + "14:9": true, + "11:11": true, + "10:12": true, + "6:13": true, + "2:9": true, + "15:7": true, + "9:15": true, + "14:7": true, + "9:12": true, + "8:1": true, + "13:10": true, + "10:15": true, + "1:8": true, + "2:8": true, + "6:14": true, + "1:9": true, + "15:8": true, + "10:13": true, + "6:12": true, + "1:7": true, + "6:15": true, + "14:8": true, + "9:13": true, + "12:6": true, + "8:13": [ + 132, + 148 + ], + "1:10": true, + "13:8": true, + "6:1": true, + "11:6": true, + "12:3": true, + "11:4": true, + "9:1": true, + "8:12": true, + "15:10": true, + "14:10": true, + "13:7": true, + "12:4": true, + "11:3": true, + "8:15": true, + "12:2": true, + "2:10": true, + "11:2": true, + "8:14": true, + "13:9": true, + "7:1": true, + "12:1": true, + "9:3": true, + "6:0": true, + "10:4": true, + "5:9": true, + "10:3": true, + "7:2": true, + "6:6": true, + "4:9": true, + "11:1": true, + "9:4": true, + "8:5": true, + "5:7": true, + "3:10": true, + "7:4": true, + "9:2": true, + "8:11": true, + "4:7": true, + "10:2": true, + "0:10": true, + "7:3": true, + "9:6": true, + "6:4": true, + "10:6": true, + "9:0": true, + "6:3": true, + "7:0": true, + "5:8": true, + "6:2": true, + "7:6": true, + "4:8": true, + "6:5": true, + "3:8": true, + "0:8": true, + "6:11": true, + "11:13": true, + "8:0": true, + "8:6": true, + "12:13": true, + "10:5": true, + "9:11": true, + "5:10": true, + "3:7": true, + "10:11": true, + "9:5": true, + "4:10": true, + "8:2": true, + "0:7": true, + "12:15": true, + "11:12": true, + "8:4": true, + "7:5": true, + "3:9": true, + "12:12": true, + "11:15": true, + "8:3": true, + "0:9": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-1.json index 6b55f55d..fe8dced2 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-1.json @@ -1 +1,139 @@ -{"12:11":true,"11:5":171,"8:8":true,"12:5":[171,175],"7:15":true,"6:13":true,"9:15":true,"14:7":true,"8:1":true,"13:10":true,"10:15":true,"10:10":true,"8:7":true,"0:2":true,"9:10":true,"13:14":true,"8:9":true,"6:15":true,"14:8":224,"11:0":171,"14:14":true,"12:6":171,"10:9":true,"7:7":true,"13:8":true,"15:14":true,"12:0":true,"9:9":true,"6:1":true,"11:6":171,"10:7":true,"8:10":true,"7:9":true,"6:8":true,"15:12":[216,222],"0:11":[152,153],"15:15":true,"9:7":true,"12:3":[171,175],"11:4":171,"9:1":171,"7:8":true,"6:9":true,"15:10":[216,222],"14:10":[216,222],"10:1":171,"13:7":true,"12:4":171,"11:3":171,"8:15":true,"15:13":true,"12:2":171,"10:8":true,"6:7":true,"11:2":171,"9:8":true,"7:1":171,"12:1":[171,175],"9:3":171,"6:0":171,"10:4":true,"10:3":171,"7:2":true,"6:6":true,"11:1":171,"9:4":171,"8:5":true,"11:8":true,"7:4":true,"9:2":true,"10:2":171,"12:8":true,"7:3":true,"9:6":true,"11:9":true,"6:4":true,"10:0":171,"10:6":171,"0:12":true,"15:11":[216,222],"12:9":true,"9:0":171,"6:3":true,"7:0":171,"11:7":171,"12:7":[171,223],"6:2":true,"7:6":true,"15:4":true,"11:10":true,"6:5":true,"12:10":true,"6:11":true,"14:4":true,"8:0":true,"0:1":true,"8:6":true,"12:13":true,"14:6":true,"12:14":true,"10:5":171,"9:5":171,"11:14":true,"8:2":171,"12:15":true,"8:4":true,"1:2":true,"7:5":true,"11:15":true,"8:3":true} \ No newline at end of file +{ + "12:11": true, + "11:5": 171, + "8:8": true, + "12:5": [ + 171, + 175 + ], + "7:15": true, + "6:13": true, + "9:15": true, + "14:7": true, + "8:1": true, + "13:10": true, + "10:15": true, + "10:10": true, + "8:7": true, + "0:2": true, + "9:10": true, + "13:14": true, + "8:9": true, + "6:15": true, + "14:8": 224, + "11:0": 171, + "14:14": true, + "12:6": 171, + "10:9": true, + "7:7": true, + "13:8": true, + "15:14": true, + "12:0": true, + "9:9": true, + "6:1": true, + "11:6": 171, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "15:12": [ + 216, + 222 + ], + "0:11": [ + 152, + 153 + ], + "15:15": true, + "9:7": true, + "12:3": [ + 171, + 175 + ], + "11:4": 171, + "9:1": 171, + "7:8": true, + "6:9": true, + "15:10": [ + 216, + 222 + ], + "14:10": [ + 216, + 222 + ], + "10:1": 171, + "13:7": true, + "12:4": 171, + "11:3": 171, + "8:15": true, + "15:13": true, + "12:2": 171, + "10:8": true, + "6:7": true, + "11:2": 171, + "9:8": true, + "7:1": 171, + "12:1": [ + 171, + 175 + ], + "9:3": 171, + "6:0": 171, + "10:4": true, + "10:3": 171, + "7:2": true, + "6:6": true, + "11:1": 171, + "9:4": 171, + "8:5": true, + "11:8": true, + "7:4": true, + "9:2": true, + "10:2": 171, + "12:8": true, + "7:3": true, + "9:6": true, + "11:9": true, + "6:4": true, + "10:0": 171, + "10:6": 171, + "0:12": true, + "15:11": [ + 216, + 222 + ], + "12:9": true, + "9:0": 171, + "6:3": true, + "7:0": 171, + "11:7": 171, + "12:7": [ + 171, + 223 + ], + "6:2": true, + "7:6": true, + "15:4": true, + "11:10": true, + "6:5": true, + "12:10": true, + "6:11": true, + "14:4": true, + "8:0": true, + "0:1": true, + "8:6": true, + "12:13": true, + "14:6": true, + "12:14": true, + "10:5": 171, + "9:5": 171, + "11:14": true, + "8:2": 171, + "12:15": true, + "8:4": true, + "1:2": true, + "7:5": true, + "11:15": true, + "8:3": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-2.json index a1729354..0c07f450 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-2.json @@ -1 +1,149 @@ -{"12:11":[171,175],"9:14":true,"11:5":true,"8:8":171,"7:12":171,"6:10":171,"12:5":true,"10:14":true,"7:15":true,"11:11":171,"10:12":true,"6:13":true,"9:15":171,"9:12":true,"8:1":true,"10:15":171,"7:14":true,"10:10":171,"8:7":171,"7:13":171,"9:10":171,"6:14":true,"10:13":true,"8:9":171,"7:10":171,"6:12":171,"6:15":[171,175],"9:13":true,"11:0":true,"12:6":true,"8:13":171,"10:9":171,"7:7":171,"12:0":true,"9:9":171,"6:1":[169,175],"11:6":true,"10:7":171,"8:10":171,"7:9":171,"6:8":171,"9:7":171,"12:3":true,"11:4":true,"9:1":true,"8:12":171,"7:8":171,"6:9":[171,175],"14:10":true,"10:1":true,"12:4":true,"11:3":true,"8:15":171,"12:2":true,"10:8":171,"6:7":[171,175],"11:2":true,"8:14":171,"9:8":171,"7:1":169,"12:1":true,"9:3":true,"6:0":168,"10:4":true,"10:3":true,"7:2":170,"6:6":171,"11:1":true,"9:4":171,"8:5":171,"11:8":171,"7:4":171,"9:2":true,"8:11":171,"10:2":true,"12:8":true,"7:3":171,"9:6":171,"11:9":171,"6:4":171,"10:0":true,"10:6":171,"15:11":true,"12:9":[171,175],"9:0":true,"6:3":[171,175],"7:0":true,"11:7":true,"12:7":true,"6:2":170,"7:6":171,"11:10":171,"6:5":[171,175],"12:10":171,"6:11":[171,175],"11:13":true,"8:0":true,"8:6":171,"12:13":[171,175],"12:14":171,"10:5":true,"9:11":171,"10:11":171,"9:5":171,"11:14":true,"8:2":170,"12:15":[171,175],"11:12":171,"8:4":171,"7:5":171,"12:12":171,"11:15":true,"8:3":171,"7:11":171} \ No newline at end of file +{ + "12:11": [ + 171, + 175 + ], + "9:14": true, + "11:5": true, + "8:8": 171, + "7:12": 171, + "6:10": 171, + "12:5": true, + "10:14": true, + "7:15": true, + "11:11": 171, + "10:12": true, + "6:13": true, + "9:15": 171, + "9:12": true, + "8:1": true, + "10:15": 171, + "7:14": true, + "10:10": 171, + "8:7": 171, + "7:13": 171, + "9:10": 171, + "6:14": true, + "10:13": true, + "8:9": 171, + "7:10": 171, + "6:12": 171, + "6:15": [ + 171, + 175 + ], + "9:13": true, + "11:0": true, + "12:6": true, + "8:13": 171, + "10:9": 171, + "7:7": 171, + "12:0": true, + "9:9": 171, + "6:1": [ + 169, + 175 + ], + "11:6": true, + "10:7": 171, + "8:10": 171, + "7:9": 171, + "6:8": 171, + "9:7": 171, + "12:3": true, + "11:4": true, + "9:1": true, + "8:12": 171, + "7:8": 171, + "6:9": [ + 171, + 175 + ], + "14:10": true, + "10:1": true, + "12:4": true, + "11:3": true, + "8:15": 171, + "12:2": true, + "10:8": 171, + "6:7": [ + 171, + 175 + ], + "11:2": true, + "8:14": 171, + "9:8": 171, + "7:1": 169, + "12:1": true, + "9:3": true, + "6:0": 168, + "10:4": true, + "10:3": true, + "7:2": 170, + "6:6": 171, + "11:1": true, + "9:4": 171, + "8:5": 171, + "11:8": 171, + "7:4": 171, + "9:2": true, + "8:11": 171, + "10:2": true, + "12:8": true, + "7:3": 171, + "9:6": 171, + "11:9": 171, + "6:4": 171, + "10:0": true, + "10:6": 171, + "15:11": true, + "12:9": [ + 171, + 175 + ], + "9:0": true, + "6:3": [ + 171, + 175 + ], + "7:0": true, + "11:7": true, + "12:7": true, + "6:2": 170, + "7:6": 171, + "11:10": 171, + "6:5": [ + 171, + 175 + ], + "12:10": 171, + "6:11": [ + 171, + 175 + ], + "11:13": true, + "8:0": true, + "8:6": 171, + "12:13": [ + 171, + 175 + ], + "12:14": 171, + "10:5": true, + "9:11": 171, + "10:11": 171, + "9:5": 171, + "11:14": true, + "8:2": 170, + "12:15": [ + 171, + 175 + ], + "11:12": 171, + "8:4": 171, + "7:5": 171, + "12:12": 171, + "11:15": true, + "8:3": 171, + "7:11": 171 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-3.json index c16c3f4a..9505661b 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-3.json @@ -1 +1,71 @@ -{"15:9":true,"12:11":true,"5:9":true,"0:13":195,"7:15":true,"4:9":true,"3:10":[192,193],"6:13":true,"2:9":true,"9:15":true,"14:7":true,"10:15":true,"11:9":true,"15:5":true,"3:15":true,"3:2":true,"15:1":true,"12:9":true,"0:14":195,"5:8":true,"6:15":[168,175],"14:8":true,"4:8":true,"2:11":true,"2:1":true,"15:4":true,"4:14":true,"2:12":[190,194],"3:8":true,"5:14":true,"2:2":true,"13:8":true,"9:9":true,"6:11":true,"7:9":true,"15:2":true,"3:1":true,"3:11":[190,192],"12:13":true,"1:13":[194,195],"12:14":true,"6:9":true,"4:10":true,"8:15":true,"12:15":true,"5:13":true,"2:10":159,"3:9":true,"11:15":true,"1:12":[192,193],"13:9":true} \ No newline at end of file +{ + "15:9": true, + "12:11": true, + "5:9": true, + "0:13": 195, + "7:15": true, + "4:9": true, + "3:10": [ + 192, + 193 + ], + "6:13": true, + "2:9": true, + "9:15": true, + "14:7": true, + "10:15": true, + "11:9": true, + "15:5": true, + "3:15": true, + "3:2": true, + "15:1": true, + "12:9": true, + "0:14": 195, + "5:8": true, + "6:15": [ + 168, + 175 + ], + "14:8": true, + "4:8": true, + "2:11": true, + "2:1": true, + "15:4": true, + "4:14": true, + "2:12": [ + 190, + 194 + ], + "3:8": true, + "5:14": true, + "2:2": true, + "13:8": true, + "9:9": true, + "6:11": true, + "7:9": true, + "15:2": true, + "3:1": true, + "3:11": [ + 190, + 192 + ], + "12:13": true, + "1:13": [ + 194, + 195 + ], + "12:14": true, + "6:9": true, + "4:10": true, + "8:15": true, + "12:15": true, + "5:13": true, + "2:10": 159, + "3:9": true, + "11:15": true, + "1:12": [ + 192, + 193 + ], + "13:9": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-4.json index 87e54c02..28e49cd7 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-4.json @@ -1 +1,61 @@ -{"15:9":true,"9:14":true,"1:11":true,"3:13":true,"2:7":true,"7:12":true,"4:9":true,"3:10":true,"2:9":true,"13:0":true,"10:15":true,"3:12":true,"6:4":true,"15:5":true,"5:1":164,"15:11":true,"15:1":true,"6:3":true,"1:9":true,"15:8":true,"0:14":203,"13:4":true,"3:14":[177,201],"6:2":true,"2:11":true,"15:4":true,"1:6":true,"8:13":true,"2:12":true,"3:8":true,"5:3":true,"1:10":true,"15:14":true,"15:3":true,"6:11":true,"14:4":true,"3:5":true,"15:12":true,"15:2":true,"3:11":true,"5:2":164,"2:14":202,"1:13":true,"0:5":true,"15:0":true,"5:10":true,"2:13":true,"15:10":true,"12:4":true,"14:0":true,"15:13":true,"5:13":199,"2:10":true,"3:9":true,"1:12":true,"4:13":200} \ No newline at end of file +{ + "15:9": true, + "9:14": true, + "1:11": true, + "3:13": true, + "2:7": true, + "7:12": true, + "4:9": true, + "3:10": true, + "2:9": true, + "13:0": true, + "10:15": true, + "3:12": true, + "6:4": true, + "15:5": true, + "5:1": 164, + "15:11": true, + "15:1": true, + "6:3": true, + "1:9": true, + "15:8": true, + "0:14": 203, + "13:4": true, + "3:14": [ + 177, + 201 + ], + "6:2": true, + "2:11": true, + "15:4": true, + "1:6": true, + "8:13": true, + "2:12": true, + "3:8": true, + "5:3": true, + "1:10": true, + "15:14": true, + "15:3": true, + "6:11": true, + "14:4": true, + "3:5": true, + "15:12": true, + "15:2": true, + "3:11": true, + "5:2": 164, + "2:14": 202, + "1:13": true, + "0:5": true, + "15:0": true, + "5:10": true, + "2:13": true, + "15:10": true, + "12:4": true, + "14:0": true, + "15:13": true, + "5:13": 199, + "2:10": true, + "3:9": true, + "1:12": true, + "4:13": 200 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-5.json index 38a94887..01f4756c 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-5.json @@ -1 +1,72 @@ -{"15:9":177,"1:1":true,"2:7":true,"13:13":true,"11:11":199,"15:7":true,"3:0":true,"0:0":true,"14:7":[208,212],"3:6":177,"13:10":171,"1:8":177,"2:8":177,"13:12":true,"3:2":true,"15:1":true,"15:8":177,"3:3":true,"1:7":true,"2:1":true,"15:14":true,"10:7":[167,169],"7:9":[206,207],"15:12":true,"15:15":true,"14:12":true,"9:7":true,"15:10":177,"13:7":208,"15:13":true,"10:8":170,"14:13":true,"11:8":[170,208],"12:8":[207,209],"14:11":163,"15:11":[171,177],"3:8":true,"2:2":true,"15:3":177,"1:0":true,"8:0":true,"13:11":163,"15:2":true,"3:1":true,"15:0":177,"3:7":true,"15:6":[177,210],"2:0":true,"12:12":true} \ No newline at end of file +{ + "15:9": 177, + "1:1": true, + "2:7": true, + "13:13": true, + "11:11": 199, + "15:7": true, + "3:0": true, + "0:0": true, + "14:7": [ + 208, + 212 + ], + "3:6": 177, + "13:10": 171, + "1:8": 177, + "2:8": 177, + "13:12": true, + "3:2": true, + "15:1": true, + "15:8": 177, + "3:3": true, + "1:7": true, + "2:1": true, + "15:14": true, + "10:7": [ + 167, + 169 + ], + "7:9": [ + 206, + 207 + ], + "15:12": true, + "15:15": true, + "14:12": true, + "9:7": true, + "15:10": 177, + "13:7": 208, + "15:13": true, + "10:8": 170, + "14:13": true, + "11:8": [ + 170, + 208 + ], + "12:8": [ + 207, + 209 + ], + "14:11": 163, + "15:11": [ + 171, + 177 + ], + "3:8": true, + "2:2": true, + "15:3": 177, + "1:0": true, + "8:0": true, + "13:11": 163, + "15:2": true, + "3:1": true, + "15:0": 177, + "3:7": true, + "15:6": [ + 177, + 210 + ], + "2:0": true, + "12:12": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-6.json index 19ba134e..06cf2b55 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_-6.json @@ -1 +1,36 @@ -{"15:9":true,"3:13":true,"2:7":true,"1:5":true,"3:10":true,"2:9":177,"15:7":true,"3:6":true,"1:8":true,"2:8":true,"15:5":true,"3:15":true,"1:9":true,"15:8":true,"3:4":true,"2:5":true,"3:14":true,"1:7":true,"15:4":true,"1:6":true,"3:8":true,"2:15":true,"15:14":true,"3:5":true,"15:15":true,"2:14":true,"3:7":true,"1:14":true,"15:10":true,"15:6":true,"15:13":true,"1:15":true,"3:9":true,"2:6":true} \ No newline at end of file +{ + "15:9": true, + "3:13": true, + "2:7": true, + "1:5": true, + "3:10": true, + "2:9": 177, + "15:7": true, + "3:6": true, + "1:8": true, + "2:8": true, + "15:5": true, + "3:15": true, + "1:9": true, + "15:8": true, + "3:4": true, + "2:5": true, + "3:14": true, + "1:7": true, + "15:4": true, + "1:6": true, + "3:8": true, + "2:15": true, + "15:14": true, + "3:5": true, + "15:15": true, + "2:14": true, + "3:7": true, + "1:14": true, + "15:10": true, + "15:6": true, + "15:13": true, + "1:15": true, + "3:9": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_0.json index 102e124f..f8f28b67 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_0.json @@ -1 +1,152 @@ -{"12:11":true,"9:14":true,"11:5":true,"8:8":true,"7:12":true,"6:10":true,"13:13":[190,192],"12:5":true,"10:14":true,"7:15":true,"11:11":true,"10:12":171,"6:13":[171,190],"9:15":true,"9:12":171,"8:1":true,"10:15":true,"7:14":[171,190],"10:10":true,"8:7":true,"7:13":[171,192],"9:10":true,"6:14":[171,190],"13:14":true,"10:13":true,"8:9":true,"7:10":true,"6:12":true,"6:15":true,"9:13":[171,192],"11:0":true,"8:13":[171,190],"10:9":true,"7:7":true,"15:14":190,"9:9":true,"6:1":true,"11:6":true,"10:7":true,"8:10":true,"7:9":true,"6:8":true,"9:7":true,"2:14":true,"1:13":true,"2:13":true,"12:3":true,"11:4":true,"9:1":true,"8:12":171,"7:8":true,"6:9":true,"1:14":true,"10:1":true,"11:3":true,"8:15":true,"15:13":[190,192],"10:8":true,"6:7":true,"11:2":true,"8:14":true,"9:8":true,"7:1":true,"12:1":true,"9:3":true,"6:0":true,"10:4":true,"3:13":true,"10:3":true,"0:13":true,"7:2":true,"6:6":true,"11:1":true,"9:4":true,"8:5":true,"11:8":true,"7:4":true,"9:2":true,"8:11":true,"10:2":true,"7:3":true,"9:6":true,"11:9":true,"6:4":true,"10:0":true,"10:6":true,"12:9":true,"9:0":true,"6:3":true,"7:0":true,"11:7":true,"0:14":true,"12:7":true,"6:2":true,"7:6":true,"4:14":190,"11:10":true,"6:5":true,"5:14":190,"6:11":true,"11:13":[171,192],"8:0":true,"8:6":true,"12:13":[175,190],"12:14":true,"9:11":true,"10:5":true,"10:11":true,"9:5":true,"11:14":true,"8:2":true,"12:15":true,"11:12":171,"8:4":true,"5:13":true,"7:5":true,"11:15":true,"8:3":true,"7:11":true,"4:13":true} \ No newline at end of file +{ + "12:11": true, + "9:14": true, + "11:5": true, + "8:8": true, + "7:12": true, + "6:10": true, + "13:13": [ + 190, + 192 + ], + "12:5": true, + "10:14": true, + "7:15": true, + "11:11": true, + "10:12": 171, + "6:13": [ + 171, + 190 + ], + "9:15": true, + "9:12": 171, + "8:1": true, + "10:15": true, + "7:14": [ + 171, + 190 + ], + "10:10": true, + "8:7": true, + "7:13": [ + 171, + 192 + ], + "9:10": true, + "6:14": [ + 171, + 190 + ], + "13:14": true, + "10:13": true, + "8:9": true, + "7:10": true, + "6:12": true, + "6:15": true, + "9:13": [ + 171, + 192 + ], + "11:0": true, + "8:13": [ + 171, + 190 + ], + "10:9": true, + "7:7": true, + "15:14": 190, + "9:9": true, + "6:1": true, + "11:6": true, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "9:7": true, + "2:14": true, + "1:13": true, + "2:13": true, + "12:3": true, + "11:4": true, + "9:1": true, + "8:12": 171, + "7:8": true, + "6:9": true, + "1:14": true, + "10:1": true, + "11:3": true, + "8:15": true, + "15:13": [ + 190, + 192 + ], + "10:8": true, + "6:7": true, + "11:2": true, + "8:14": true, + "9:8": true, + "7:1": true, + "12:1": true, + "9:3": true, + "6:0": true, + "10:4": true, + "3:13": true, + "10:3": true, + "0:13": true, + "7:2": true, + "6:6": true, + "11:1": true, + "9:4": true, + "8:5": true, + "11:8": true, + "7:4": true, + "9:2": true, + "8:11": true, + "10:2": true, + "7:3": true, + "9:6": true, + "11:9": true, + "6:4": true, + "10:0": true, + "10:6": true, + "12:9": true, + "9:0": true, + "6:3": true, + "7:0": true, + "11:7": true, + "0:14": true, + "12:7": true, + "6:2": true, + "7:6": true, + "4:14": 190, + "11:10": true, + "6:5": true, + "5:14": 190, + "6:11": true, + "11:13": [ + 171, + 192 + ], + "8:0": true, + "8:6": true, + "12:13": [ + 175, + 190 + ], + "12:14": true, + "9:11": true, + "10:5": true, + "10:11": true, + "9:5": true, + "11:14": true, + "8:2": true, + "12:15": true, + "11:12": 171, + "8:4": true, + "5:13": true, + "7:5": true, + "11:15": true, + "8:3": true, + "7:11": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_1.json index 4574dc7f..ce03478f 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_1.json @@ -1 +1,167 @@ -{"12:11":true,"1:1":192,"11:5":true,"8:8":true,"6:10":true,"12:5":true,"7:15":true,"6:13":true,"3:0":true,"9:15":true,"0:0":true,"8:1":171,"10:15":true,"13:15":true,"10:10":true,"8:7":true,"5:5":true,"9:10":true,"4:5":true,"3:2":192,"15:1":192,"8:9":true,"7:10":true,"0:4":190,"6:15":true,"11:0":true,"12:6":true,"5:4":true,"10:9":true,"7:7":true,"12:0":true,"9:9":true,"6:1":[171,175],"11:6":true,"4:4":true,"10:7":true,"8:10":true,"7:9":true,"6:8":true,"3:5":true,"14:15":true,"13:1":192,"9:7":true,"5:2":192,"0:5":true,"12:3":true,"11:4":true,"9:1":[171,192],"7:8":true,"6:9":true,"5:0":true,"10:1":171,"12:4":true,"11:3":true,"8:15":true,"4:0":true,"10:8":true,"6:7":true,"11:2":true,"9:8":true,"7:1":[171,192],"12:1":175,"9:3":true,"6:0":[171,192],"10:4":true,"10:3":true,"1:5":true,"7:2":true,"6:6":true,"11:1":[171,192],"9:4":true,"8:5":true,"11:8":true,"7:4":true,"9:2":true,"13:0":true,"10:2":true,"12:8":true,"7:3":true,"13:2":192,"9:6":true,"11:9":true,"6:4":true,"15:5":true,"10:0":[171,192],"10:6":true,"5:1":192,"3:15":true,"12:9":true,"9:0":[171,192],"6:3":true,"7:0":[171,192],"11:7":true,"2:5":true,"13:4":true,"12:7":true,"6:2":171,"7:6":true,"15:4":true,"11:10":true,"6:5":true,"12:10":true,"6:11":true,"1:0":[190,192],"2:4":true,"8:0":[171,192],"4:15":true,"15:2":192,"8:6":true,"3:1":true,"13:5":true,"12:13":true,"5:15":true,"15:0":[190,192],"10:5":true,"9:5":true,"8:2":true,"1:4":190,"14:0":[190,192],"2:0":[190,192],"12:15":true,"8:4":true,"1:2":192,"7:5":true,"11:15":true,"8:3":true} \ No newline at end of file +{ + "12:11": true, + "1:1": 192, + "11:5": true, + "8:8": true, + "6:10": true, + "12:5": true, + "7:15": true, + "6:13": true, + "3:0": true, + "9:15": true, + "0:0": true, + "8:1": 171, + "10:15": true, + "13:15": true, + "10:10": true, + "8:7": true, + "5:5": true, + "9:10": true, + "4:5": true, + "3:2": 192, + "15:1": 192, + "8:9": true, + "7:10": true, + "0:4": 190, + "6:15": true, + "11:0": true, + "12:6": true, + "5:4": true, + "10:9": true, + "7:7": true, + "12:0": true, + "9:9": true, + "6:1": [ + 171, + 175 + ], + "11:6": true, + "4:4": true, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": true, + "14:15": true, + "13:1": 192, + "9:7": true, + "5:2": 192, + "0:5": true, + "12:3": true, + "11:4": true, + "9:1": [ + 171, + 192 + ], + "7:8": true, + "6:9": true, + "5:0": true, + "10:1": 171, + "12:4": true, + "11:3": true, + "8:15": true, + "4:0": true, + "10:8": true, + "6:7": true, + "11:2": true, + "9:8": true, + "7:1": [ + 171, + 192 + ], + "12:1": 175, + "9:3": true, + "6:0": [ + 171, + 192 + ], + "10:4": true, + "10:3": true, + "1:5": true, + "7:2": true, + "6:6": true, + "11:1": [ + 171, + 192 + ], + "9:4": true, + "8:5": true, + "11:8": true, + "7:4": true, + "9:2": true, + "13:0": true, + "10:2": true, + "12:8": true, + "7:3": true, + "13:2": 192, + "9:6": true, + "11:9": true, + "6:4": true, + "15:5": true, + "10:0": [ + 171, + 192 + ], + "10:6": true, + "5:1": 192, + "3:15": true, + "12:9": true, + "9:0": [ + 171, + 192 + ], + "6:3": true, + "7:0": [ + 171, + 192 + ], + "11:7": true, + "2:5": true, + "13:4": true, + "12:7": true, + "6:2": 171, + "7:6": true, + "15:4": true, + "11:10": true, + "6:5": true, + "12:10": true, + "6:11": true, + "1:0": [ + 190, + 192 + ], + "2:4": true, + "8:0": [ + 171, + 192 + ], + "4:15": true, + "15:2": 192, + "8:6": true, + "3:1": true, + "13:5": true, + "12:13": true, + "5:15": true, + "15:0": [ + 190, + 192 + ], + "10:5": true, + "9:5": true, + "8:2": true, + "1:4": 190, + "14:0": [ + 190, + 192 + ], + "2:0": [ + 190, + 192 + ], + "12:15": true, + "8:4": true, + "1:2": 192, + "7:5": true, + "11:15": true, + "8:3": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_2.json index 3736f0b1..c1959b3c 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_2.json @@ -1 +1,100 @@ -{"12:11":true,"9:14":true,"7:12":true,"13:13":true,"12:5":true,"10:14":true,"7:15":true,"10:12":true,"6:13":true,"3:0":true,"9:15":true,"9:12":true,"10:15":true,"7:14":true,"1:8":true,"14:1":true,"13:15":true,"4:11":true,"7:13":true,"5:11":true,"6:14":true,"1:9":true,"13:14":true,"10:13":true,"6:12":true,"1:7":true,"6:15":true,"9:13":true,"14:14":true,"8:13":true,"2:12":true,"2:15":true,"1:10":true,"15:14":true,"6:1":true,"14:15":true,"13:1":true,"0:11":true,"15:15":true,"3:11":true,"2:14":true,"1:13":true,"12:3":true,"8:12":true,"6:9":true,"2:13":true,"1:14":true,"8:15":true,"2:10":true,"1:15":true,"6:7":true,"8:14":true,"1:12":true,"12:1":true,"1:11":true,"3:13":true,"5:9":true,"0:13":true,"4:9":true,"3:10":true,"0:10":true,"4:1":true,"3:12":true,"5:1":true,"3:15":true,"0:12":true,"12:9":true,"6:3":true,"0:14":true,"12:7":true,"3:14":true,"4:8":true,"2:11":true,"4:14":true,"6:5":true,"3:8":true,"5:14":true,"0:8":true,"6:11":true,"11:13":true,"5:12":true,"4:15":true,"4:12":true,"3:1":true,"12:13":true,"5:15":true,"12:14":true,"5:10":true,"4:10":true,"11:14":true,"0:7":true,"12:15":true,"11:12":true,"5:13":true,"3:9":true,"0:9":true,"7:11":true,"4:13":true} \ No newline at end of file +{ + "12:11": true, + "9:14": true, + "7:12": true, + "13:13": true, + "12:5": true, + "10:14": true, + "7:15": true, + "10:12": true, + "6:13": true, + "3:0": true, + "9:15": true, + "9:12": true, + "10:15": true, + "7:14": true, + "1:8": true, + "14:1": true, + "13:15": true, + "4:11": true, + "7:13": true, + "5:11": true, + "6:14": true, + "1:9": true, + "13:14": true, + "10:13": true, + "6:12": true, + "1:7": true, + "6:15": true, + "9:13": true, + "14:14": true, + "8:13": true, + "2:12": true, + "2:15": true, + "1:10": true, + "15:14": true, + "6:1": true, + "14:15": true, + "13:1": true, + "0:11": true, + "15:15": true, + "3:11": true, + "2:14": true, + "1:13": true, + "12:3": true, + "8:12": true, + "6:9": true, + "2:13": true, + "1:14": true, + "8:15": true, + "2:10": true, + "1:15": true, + "6:7": true, + "8:14": true, + "1:12": true, + "12:1": true, + "1:11": true, + "3:13": true, + "5:9": true, + "0:13": true, + "4:9": true, + "3:10": true, + "0:10": true, + "4:1": true, + "3:12": true, + "5:1": true, + "3:15": true, + "0:12": true, + "12:9": true, + "6:3": true, + "0:14": true, + "12:7": true, + "3:14": true, + "4:8": true, + "2:11": true, + "4:14": true, + "6:5": true, + "3:8": true, + "5:14": true, + "0:8": true, + "6:11": true, + "11:13": true, + "5:12": true, + "4:15": true, + "4:12": true, + "3:1": true, + "12:13": true, + "5:15": true, + "12:14": true, + "5:10": true, + "4:10": true, + "11:14": true, + "0:7": true, + "12:15": true, + "11:12": true, + "5:13": true, + "3:9": true, + "0:9": true, + "7:11": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_3.json index aed53373..2266b3ad 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_3.json @@ -1 +1,122 @@ -{"15:9":true,"12:11":true,"9:14":true,"11:5":true,"7:12":true,"6:10":true,"12:5":true,"10:14":true,"7:15":true,"14:9":true,"11:11":true,"10:12":true,"6:13":true,"15:7":true,"3:0":true,"9:15":true,"14:7":true,"9:12":true,"8:1":true,"10:15":true,"7:14":true,"14:1":true,"10:10":true,"7:13":true,"9:10":true,"15:1":true,"6:14":true,"15:8":true,"10:13":true,"8:9":true,"7:10":171,"6:12":true,"6:15":true,"14:8":true,"9:13":true,"8:13":true,"13:8":true,"12:0":true,"6:1":true,"8:10":171,"7:9":171,"6:8":true,"15:12":true,"13:1":true,"12:3":true,"11:4":true,"9:1":true,"8:12":true,"7:8":true,"6:9":[171,175],"15:10":true,"5:0":true,"14:10":true,"10:1":true,"13:7":true,"12:4":true,"11:3":true,"8:15":true,"4:0":true,"15:13":true,"12:2":true,"6:7":true,"11:2":true,"8:14":true,"7:1":true,"12:1":true,"9:3":true,"6:0":true,"10:3":true,"6:6":true,"11:1":true,"13:6":true,"9:2":true,"13:0":true,"8:11":true,"10:2":true,"13:2":true,"4:1":true,"15:5":true,"14:5":true,"5:1":true,"3:15":true,"15:11":true,"12:9":true,"6:3":true,"13:3":true,"13:4":true,"12:7":true,"15:4":true,"14:3":true,"4:14":true,"6:5":true,"12:10":true,"15:3":true,"6:11":true,"14:4":true,"11:13":true,"14:2":true,"15:2":true,"13:5":true,"12:13":true,"15:0":true,"14:6":true,"12:14":true,"9:11":true,"10:11":true,"11:14":true,"8:2":true,"15:6":true,"14:0":true,"12:15":true,"11:12":true,"5:13":true,"12:12":true,"11:15":true,"0:9":true,"7:11":true} \ No newline at end of file +{ + "15:9": true, + "12:11": true, + "9:14": true, + "11:5": true, + "7:12": true, + "6:10": true, + "12:5": true, + "10:14": true, + "7:15": true, + "14:9": true, + "11:11": true, + "10:12": true, + "6:13": true, + "15:7": true, + "3:0": true, + "9:15": true, + "14:7": true, + "9:12": true, + "8:1": true, + "10:15": true, + "7:14": true, + "14:1": true, + "10:10": true, + "7:13": true, + "9:10": true, + "15:1": true, + "6:14": true, + "15:8": true, + "10:13": true, + "8:9": true, + "7:10": 171, + "6:12": true, + "6:15": true, + "14:8": true, + "9:13": true, + "8:13": true, + "13:8": true, + "12:0": true, + "6:1": true, + "8:10": 171, + "7:9": 171, + "6:8": true, + "15:12": true, + "13:1": true, + "12:3": true, + "11:4": true, + "9:1": true, + "8:12": true, + "7:8": true, + "6:9": [ + 171, + 175 + ], + "15:10": true, + "5:0": true, + "14:10": true, + "10:1": true, + "13:7": true, + "12:4": true, + "11:3": true, + "8:15": true, + "4:0": true, + "15:13": true, + "12:2": true, + "6:7": true, + "11:2": true, + "8:14": true, + "7:1": true, + "12:1": true, + "9:3": true, + "6:0": true, + "10:3": true, + "6:6": true, + "11:1": true, + "13:6": true, + "9:2": true, + "13:0": true, + "8:11": true, + "10:2": true, + "13:2": true, + "4:1": true, + "15:5": true, + "14:5": true, + "5:1": true, + "3:15": true, + "15:11": true, + "12:9": true, + "6:3": true, + "13:3": true, + "13:4": true, + "12:7": true, + "15:4": true, + "14:3": true, + "4:14": true, + "6:5": true, + "12:10": true, + "15:3": true, + "6:11": true, + "14:4": true, + "11:13": true, + "14:2": true, + "15:2": true, + "13:5": true, + "12:13": true, + "15:0": true, + "14:6": true, + "12:14": true, + "9:11": true, + "10:11": true, + "11:14": true, + "8:2": true, + "15:6": true, + "14:0": true, + "12:15": true, + "11:12": true, + "5:13": true, + "12:12": true, + "11:15": true, + "0:9": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_4.json index 0dc13427..f52dabff 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_4.json @@ -1 +1,33 @@ -{"11:0":true,"9:3":true,"5:4":true,"6:5":true,"5:3":true,"7:2":true,"12:0":true,"6:1":true,"11:1":true,"7:4":true,"8:0":true,"9:2":true,"8:1":true,"10:2":true,"5:2":true,"7:3":true,"9:1":true,"5:5":true,"6:4":true,"10:0":true,"10:1":true,"5:1":true,"8:2":true,"9:0":true,"6:3":true,"7:0":true,"8:4":true,"7:5":true,"8:3":true,"6:2":true,"7:1":true} \ No newline at end of file +{ + "11:0": true, + "9:3": true, + "5:4": true, + "6:5": true, + "5:3": true, + "7:2": true, + "12:0": true, + "6:1": true, + "11:1": true, + "7:4": true, + "8:0": true, + "9:2": true, + "8:1": true, + "10:2": true, + "5:2": true, + "7:3": true, + "9:1": true, + "5:5": true, + "6:4": true, + "10:0": true, + "10:1": true, + "5:1": true, + "8:2": true, + "9:0": true, + "6:3": true, + "7:0": true, + "8:4": true, + "7:5": true, + "8:3": true, + "6:2": true, + "7:1": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_8.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_8.json index 25cbedf1..e554d428 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_8.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_8.json @@ -1 +1,217 @@ -{"12:11":true,"9:14":true,"11:5":true,"2:7":[148,153],"8:8":true,"7:12":true,"6:10":true,"13:13":true,"10:14":true,"7:15":[136,153],"11:11":true,"10:12":true,"6:13":true,"2:9":true,"9:15":true,"0:6":[155,156],"9:12":true,"3:6":150,"10:15":true,"7:14":true,"1:8":true,"13:15":[138,153],"10:10":true,"8:7":true,"4:11":true,"7:13":true,"2:8":true,"9:10":true,"5:11":true,"4:5":151,"13:12":true,"6:14":true,"1:9":true,"13:14":[138,152],"10:13":true,"3:4":[145,146],"8:9":true,"7:10":true,"6:12":true,"3:3":[144,147],"1:7":[154,156],"0:4":153,"6:15":[134,156],"9:13":true,"14:14":[138,152],"8:13":true,"2:12":true,"7:7":true,"2:15":[135,161],"15:14":[138,152],"9:9":true,"8:10":true,"7:9":true,"6:8":true,"3:5":[146,149],"15:12":true,"14:15":[138,153],"15:15":[138,153],"14:12":true,"9:7":true,"2:14":true,"1:13":true,"0:5":154,"2:13":true,"12:3":145,"11:4":[145,147],"8:12":true,"7:8":true,"6:9":true,"1:14":true,"12:4":true,"8:15":[138,153],"15:13":[138,151],"1:15":[134,161],"6:7":true,"8:14":true,"1:12":true,"14:13":[138,152],"3:13":true,"5:9":true,"0:13":true,"6:6":true,"4:9":true,"5:7":true,"3:10":true,"7:4":181,"8:11":true,"4:7":true,"14:11":true,"9:6":true,"3:12":true,"0:15":[135,175],"10:6":true,"3:15":true,"0:12":true,"15:11":true,"2:5":true,"0:14":true,"5:8":true,"3:14":true,"4:8":true,"4:14":true,"1:6":[153,154],"11:10":true,"3:8":true,"12:10":true,"5:14":true,"0:8":157,"6:11":true,"11:13":true,"5:12":true,"13:11":true,"4:15":true,"8:6":true,"4:12":true,"12:13":true,"5:15":[133,159],"12:14":152,"10:5":true,"9:11":true,"3:7":true,"5:10":true,"10:11":true,"4:10":true,"11:14":true,"0:7":157,"12:15":[138,153],"11:12":true,"5:13":true,"3:9":true,"12:12":true,"11:15":[138,153],"8:3":181,"0:9":true,"7:11":true,"4:13":true,"2:6":[148,149]} \ No newline at end of file +{ + "12:11": true, + "9:14": true, + "11:5": true, + "2:7": [ + 148, + 153 + ], + "8:8": true, + "7:12": true, + "6:10": true, + "13:13": true, + "10:14": true, + "7:15": [ + 136, + 153 + ], + "11:11": true, + "10:12": true, + "6:13": true, + "2:9": true, + "9:15": true, + "0:6": [ + 155, + 156 + ], + "9:12": true, + "3:6": 150, + "10:15": true, + "7:14": true, + "1:8": true, + "13:15": [ + 138, + 153 + ], + "10:10": true, + "8:7": true, + "4:11": true, + "7:13": true, + "2:8": true, + "9:10": true, + "5:11": true, + "4:5": 151, + "13:12": true, + "6:14": true, + "1:9": true, + "13:14": [ + 138, + 152 + ], + "10:13": true, + "3:4": [ + 145, + 146 + ], + "8:9": true, + "7:10": true, + "6:12": true, + "3:3": [ + 144, + 147 + ], + "1:7": [ + 154, + 156 + ], + "0:4": 153, + "6:15": [ + 134, + 156 + ], + "9:13": true, + "14:14": [ + 138, + 152 + ], + "8:13": true, + "2:12": true, + "7:7": true, + "2:15": [ + 135, + 161 + ], + "15:14": [ + 138, + 152 + ], + "9:9": true, + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": [ + 146, + 149 + ], + "15:12": true, + "14:15": [ + 138, + 153 + ], + "15:15": [ + 138, + 153 + ], + "14:12": true, + "9:7": true, + "2:14": true, + "1:13": true, + "0:5": 154, + "2:13": true, + "12:3": 145, + "11:4": [ + 145, + 147 + ], + "8:12": true, + "7:8": true, + "6:9": true, + "1:14": true, + "12:4": true, + "8:15": [ + 138, + 153 + ], + "15:13": [ + 138, + 151 + ], + "1:15": [ + 134, + 161 + ], + "6:7": true, + "8:14": true, + "1:12": true, + "14:13": [ + 138, + 152 + ], + "3:13": true, + "5:9": true, + "0:13": true, + "6:6": true, + "4:9": true, + "5:7": true, + "3:10": true, + "7:4": 181, + "8:11": true, + "4:7": true, + "14:11": true, + "9:6": true, + "3:12": true, + "0:15": [ + 135, + 175 + ], + "10:6": true, + "3:15": true, + "0:12": true, + "15:11": true, + "2:5": true, + "0:14": true, + "5:8": true, + "3:14": true, + "4:8": true, + "4:14": true, + "1:6": [ + 153, + 154 + ], + "11:10": true, + "3:8": true, + "12:10": true, + "5:14": true, + "0:8": 157, + "6:11": true, + "11:13": true, + "5:12": true, + "13:11": true, + "4:15": true, + "8:6": true, + "4:12": true, + "12:13": true, + "5:15": [ + 133, + 159 + ], + "12:14": 152, + "10:5": true, + "9:11": true, + "3:7": true, + "5:10": true, + "10:11": true, + "4:10": true, + "11:14": true, + "0:7": 157, + "12:15": [ + 138, + 153 + ], + "11:12": true, + "5:13": true, + "3:9": true, + "12:12": true, + "11:15": [ + 138, + 153 + ], + "8:3": 181, + "0:9": true, + "7:11": true, + "4:13": true, + "2:6": [ + 148, + 149 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_9.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_9.json index 0bd4fdd5..970d3fc8 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-7_9.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-7_9.json @@ -1 +1,316 @@ -{"1:1":[137,158],"8:8":true,"6:10":true,"13:13":true,"3:0":[135,158],"0:6":true,"0:0":[135,157],"3:6":true,"14:1":138,"13:15":true,"10:10":true,"8:7":true,"5:5":true,"4:11":true,"0:2":true,"9:10":true,"5:11":true,"4:5":true,"13:12":true,"3:2":158,"15:1":138,"13:14":true,"3:4":[144,157],"0:3":true,"8:9":true,"7:10":true,"3:3":[144,158],"0:4":true,"2:1":[138,142],"14:14":true,"4:3":[144,157],"5:4":[144,157],"2:12":true,"10:9":true,"7:7":true,"5:3":[144,157],"2:15":true,"15:14":true,"9:9":true,"4:4":[144,157],"10:7":true,"8:10":true,"7:9":true,"6:8":true,"3:5":true,"15:12":true,"14:15":true,"13:1":138,"4:2":[144,158],"0:11":true,"15:15":true,"14:12":true,"9:7":true,"3:11":true,"5:2":[144,157],"2:14":true,"1:13":true,"0:5":true,"2:13":true,"7:8":true,"6:9":true,"4:6":true,"1:14":true,"5:0":true,"5:6":true,"4:0":true,"1:15":true,"10:8":true,"1:12":true,"9:8":true,"14:13":true,"1:11":true,"3:13":true,"1:5":true,"0:13":true,"11:8":true,"13:6":true,"13:0":138,"13:2":[138,179],"4:1":[139,157],"3:12":true,"0:15":true,"11:9":true,"15:5":true,"14:5":true,"5:1":true,"3:15":true,"0:12":true,"12:9":true,"13:3":true,"11:7":true,"2:5":true,"0:14":true,"13:4":true,"3:14":true,"2:11":true,"15:4":true,"14:3":true,"4:14":true,"1:6":true,"11:10":true,"12:10":true,"5:14":true,"15:3":true,"1:0":[136,157],"14:4":true,"5:12":true,"2:4":true,"14:2":138,"13:11":true,"4:15":true,"0:1":true,"15:2":[138,182],"4:12":true,"3:1":[139,158],"13:5":true,"5:15":true,"2:3":[144,158],"15:0":138,"14:6":true,"1:3":true,"1:4":true,"15:6":true,"14:0":138,"2:0":[140,158],"5:13":true,"1:2":[140,158],"4:13":true,"2:6":true,"15:9":true,"12:11":true,"9:14":true,"11:5":true,"2:7":true,"7:12":true,"12:5":true,"10:14":true,"7:15":true,"11:11":true,"10:12":true,"6:13":true,"2:9":true,"15:7":true,"9:15":true,"14:7":true,"9:12":true,"8:1":true,"13:10":true,"10:15":true,"7:14":true,"1:8":true,"7:13":true,"2:8":true,"6:14":true,"1:9":true,"15:8":true,"10:13":true,"6:12":true,"1:7":true,"6:15":true,"9:13":true,"11:0":true,"12:6":true,"8:13":true,"1:10":true,"6:1":140,"11:6":true,"11:4":true,"9:1":138,"8:12":true,"10:1":true,"13:7":true,"12:4":true,"11:3":true,"8:15":true,"12:2":[168,178],"2:10":true,"11:2":[138,177],"8:14":true,"13:9":true,"7:1":true,"12:1":true,"9:3":140,"6:0":true,"10:4":true,"5:9":true,"10:3":true,"7:2":141,"6:6":true,"4:9":true,"11:1":true,"9:4":true,"8:5":true,"5:7":true,"3:10":true,"7:4":143,"9:2":139,"8:11":true,"4:7":true,"10:2":true,"0:10":true,"7:3":[142,155],"9:6":true,"6:4":144,"10:6":true,"6:3":[142,156],"5:8":true,"6:2":[141,143],"7:6":true,"4:8":true,"6:5":true,"3:8":true,"0:8":true,"6:11":true,"11:13":true,"8:0":151,"8:6":true,"12:13":true,"12:14":true,"10:5":true,"9:11":true,"5:10":true,"3:7":true,"10:11":true,"9:5":true,"4:10":true,"11:14":true,"8:2":140,"0:7":true,"12:15":true,"11:12":true,"8:4":142,"7:5":true,"3:9":true,"12:12":true,"11:15":true,"8:3":141,"0:9":true,"7:11":true} \ No newline at end of file +{ + "1:1": [ + 137, + 158 + ], + "8:8": true, + "6:10": true, + "13:13": true, + "3:0": [ + 135, + 158 + ], + "0:6": true, + "0:0": [ + 135, + 157 + ], + "3:6": true, + "14:1": 138, + "13:15": true, + "10:10": true, + "8:7": true, + "5:5": true, + "4:11": true, + "0:2": true, + "9:10": true, + "5:11": true, + "4:5": true, + "13:12": true, + "3:2": 158, + "15:1": 138, + "13:14": true, + "3:4": [ + 144, + 157 + ], + "0:3": true, + "8:9": true, + "7:10": true, + "3:3": [ + 144, + 158 + ], + "0:4": true, + "2:1": [ + 138, + 142 + ], + "14:14": true, + "4:3": [ + 144, + 157 + ], + "5:4": [ + 144, + 157 + ], + "2:12": true, + "10:9": true, + "7:7": true, + "5:3": [ + 144, + 157 + ], + "2:15": true, + "15:14": true, + "9:9": true, + "4:4": [ + 144, + 157 + ], + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": true, + "15:12": true, + "14:15": true, + "13:1": 138, + "4:2": [ + 144, + 158 + ], + "0:11": true, + "15:15": true, + "14:12": true, + "9:7": true, + "3:11": true, + "5:2": [ + 144, + 157 + ], + "2:14": true, + "1:13": true, + "0:5": true, + "2:13": true, + "7:8": true, + "6:9": true, + "4:6": true, + "1:14": true, + "5:0": true, + "5:6": true, + "4:0": true, + "1:15": true, + "10:8": true, + "1:12": true, + "9:8": true, + "14:13": true, + "1:11": true, + "3:13": true, + "1:5": true, + "0:13": true, + "11:8": true, + "13:6": true, + "13:0": 138, + "13:2": [ + 138, + 179 + ], + "4:1": [ + 139, + 157 + ], + "3:12": true, + "0:15": true, + "11:9": true, + "15:5": true, + "14:5": true, + "5:1": true, + "3:15": true, + "0:12": true, + "12:9": true, + "13:3": true, + "11:7": true, + "2:5": true, + "0:14": true, + "13:4": true, + "3:14": true, + "2:11": true, + "15:4": true, + "14:3": true, + "4:14": true, + "1:6": true, + "11:10": true, + "12:10": true, + "5:14": true, + "15:3": true, + "1:0": [ + 136, + 157 + ], + "14:4": true, + "5:12": true, + "2:4": true, + "14:2": 138, + "13:11": true, + "4:15": true, + "0:1": true, + "15:2": [ + 138, + 182 + ], + "4:12": true, + "3:1": [ + 139, + 158 + ], + "13:5": true, + "5:15": true, + "2:3": [ + 144, + 158 + ], + "15:0": 138, + "14:6": true, + "1:3": true, + "1:4": true, + "15:6": true, + "14:0": 138, + "2:0": [ + 140, + 158 + ], + "5:13": true, + "1:2": [ + 140, + 158 + ], + "4:13": true, + "2:6": true, + "15:9": true, + "12:11": true, + "9:14": true, + "11:5": true, + "2:7": true, + "7:12": true, + "12:5": true, + "10:14": true, + "7:15": true, + "11:11": true, + "10:12": true, + "6:13": true, + "2:9": true, + "15:7": true, + "9:15": true, + "14:7": true, + "9:12": true, + "8:1": true, + "13:10": true, + "10:15": true, + "7:14": true, + "1:8": true, + "7:13": true, + "2:8": true, + "6:14": true, + "1:9": true, + "15:8": true, + "10:13": true, + "6:12": true, + "1:7": true, + "6:15": true, + "9:13": true, + "11:0": true, + "12:6": true, + "8:13": true, + "1:10": true, + "6:1": 140, + "11:6": true, + "11:4": true, + "9:1": 138, + "8:12": true, + "10:1": true, + "13:7": true, + "12:4": true, + "11:3": true, + "8:15": true, + "12:2": [ + 168, + 178 + ], + "2:10": true, + "11:2": [ + 138, + 177 + ], + "8:14": true, + "13:9": true, + "7:1": true, + "12:1": true, + "9:3": 140, + "6:0": true, + "10:4": true, + "5:9": true, + "10:3": true, + "7:2": 141, + "6:6": true, + "4:9": true, + "11:1": true, + "9:4": true, + "8:5": true, + "5:7": true, + "3:10": true, + "7:4": 143, + "9:2": 139, + "8:11": true, + "4:7": true, + "10:2": true, + "0:10": true, + "7:3": [ + 142, + 155 + ], + "9:6": true, + "6:4": 144, + "10:6": true, + "6:3": [ + 142, + 156 + ], + "5:8": true, + "6:2": [ + 141, + 143 + ], + "7:6": true, + "4:8": true, + "6:5": true, + "3:8": true, + "0:8": true, + "6:11": true, + "11:13": true, + "8:0": 151, + "8:6": true, + "12:13": true, + "12:14": true, + "10:5": true, + "9:11": true, + "5:10": true, + "3:7": true, + "10:11": true, + "9:5": true, + "4:10": true, + "11:14": true, + "8:2": 140, + "0:7": true, + "12:15": true, + "11:12": true, + "8:4": 142, + "7:5": true, + "3:9": true, + "12:12": true, + "11:15": true, + "8:3": 141, + "0:9": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-1.json index cd9b9487..7ab9b6cb 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-1.json @@ -1 +1,31 @@ -{"10:3":[164,165],"11:1":164,"13:0":true,"10:2":160,"14:1":true,"13:2":true,"10:0":160,"15:1":true,"11:0":164,"12:0":217,"10:7":[178,179],"15:12":[153,154],"15:2":true,"10:1":160,"11:3":[164,165],"14:0":true,"11:2":165} \ No newline at end of file +{ + "10:3": [ + 164, + 165 + ], + "11:1": 164, + "13:0": true, + "10:2": 160, + "14:1": true, + "13:2": true, + "10:0": 160, + "15:1": true, + "11:0": 164, + "12:0": 217, + "10:7": [ + 178, + 179 + ], + "15:12": [ + 153, + 154 + ], + "15:2": true, + "10:1": 160, + "11:3": [ + 164, + 165 + ], + "14:0": true, + "11:2": 165 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-2.json index e1b6709c..f9dfb020 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-2.json @@ -1 +1,25 @@ -{"11:5":164,"11:11":true,"11:6":164,"3:5":true,"0:5":167,"12:3":149,"11:4":165,"11:3":true,"4:0":true,"12:1":158,"11:1":true,"11:8":true,"11:9":true,"10:6":160,"9:0":true,"11:7":165,"11:10":true,"11:13":true,"10:5":true,"11:14":true,"12:15":216,"11:12":true,"11:15":165} \ No newline at end of file +{ + "11:5": 164, + "11:11": true, + "11:6": 164, + "3:5": true, + "0:5": 167, + "12:3": 149, + "11:4": 165, + "11:3": true, + "4:0": true, + "12:1": 158, + "11:1": true, + "11:8": true, + "11:9": true, + "10:6": 160, + "9:0": true, + "11:7": 165, + "11:10": true, + "11:13": true, + "10:5": true, + "11:14": true, + "12:15": 216, + "11:12": true, + "11:15": 165 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-3.json index 65b6d476..87cd0f65 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-3.json @@ -1 +1,34 @@ -{"9:15":true,"13:14":164,"2:15":true,"15:14":196,"15:12":[166,167],"2:14":184,"1:13":184,"1:14":[170,185],"8:15":182,"2:10":183,"1:15":185,"14:13":[165,166],"0:13":185,"9:6":true,"0:15":[170,185],"0:14":[169,185],"14:3":true} \ No newline at end of file +{ + "9:15": true, + "13:14": 164, + "2:15": true, + "15:14": 196, + "15:12": [ + 166, + 167 + ], + "2:14": 184, + "1:13": 184, + "1:14": [ + 170, + 185 + ], + "8:15": 182, + "2:10": 183, + "1:15": 185, + "14:13": [ + 165, + 166 + ], + "0:13": 185, + "9:6": true, + "0:15": [ + 170, + 185 + ], + "0:14": [ + 169, + 185 + ], + "14:3": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-4.json index aee1ef41..d984881a 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-4.json @@ -1 +1,30 @@ -{"6:10":[204,233],"5:11":204,"7:10":true,"6:12":true,"6:9":204,"14:13":true,"12:1":217,"9:3":205,"7:2":true,"7:4":[212,213],"7:3":[206,214],"13:2":true,"9:0":210,"15:4":true,"14:3":true,"6:11":true,"8:2":212,"8:4":true,"8:3":true} \ No newline at end of file +{ + "6:10": [ + 204, + 233 + ], + "5:11": 204, + "7:10": true, + "6:12": true, + "6:9": 204, + "14:13": true, + "12:1": 217, + "9:3": 205, + "7:2": true, + "7:4": [ + 212, + 213 + ], + "7:3": [ + 206, + 214 + ], + "13:2": true, + "9:0": 210, + "15:4": true, + "14:3": true, + "6:11": true, + "8:2": 212, + "8:4": true, + "8:3": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-5.json index 50f3e00b..44379810 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-5.json @@ -1 +1,21 @@ -{"2:7":true,"6:6":true,"0:6":171,"3:6":true,"10:15":211,"4:5":180,"15:8":true,"1:7":true,"7:6":true,"1:6":170,"6:5":181,"4:6":true,"3:7":true,"11:14":[211,212],"0:7":182,"2:6":true} \ No newline at end of file +{ + "2:7": true, + "6:6": true, + "0:6": 171, + "3:6": true, + "10:15": 211, + "4:5": 180, + "15:8": true, + "1:7": true, + "7:6": true, + "1:6": 170, + "6:5": 181, + "4:6": true, + "3:7": true, + "11:14": [ + 211, + 212 + ], + "0:7": 182, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-6.json index 6dd850a8..8b25f421 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_-6.json @@ -1 +1,5 @@ -{"12:6":true,"11:6":191,"10:6":192} \ No newline at end of file +{ + "12:6": true, + "11:6": 191, + "10:6": 192 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_0.json index 4041bf83..1c778a7d 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_0.json @@ -1 +1,61 @@ -{"14:14":true,"9:14":true,"1:11":true,"3:13":[159,209],"2:12":true,"3:8":true,"13:13":true,"10:14":true,"2:15":true,"1:10":true,"0:13":true,"15:14":true,"11:13":true,"3:5":true,"3:10":true,"6:13":true,"8:0":true,"3:6":true,"3:11":[150,209],"12:13":true,"2:14":true,"1:13":true,"7:14":true,"12:14":true,"3:7":true,"3:12":[150,209],"2:13":true,"1:14":true,"7:13":true,"11:14":true,"3:15":[163,210],"6:14":true,"15:13":true,"13:14":true,"10:13":true,"5:13":true,"3:4":true,"2:10":true,"1:15":true,"0:14":true,"3:9":true,"3:14":true,"1:12":true,"14:13":true,"9:13":true,"4:13":true,"2:11":true} \ No newline at end of file +{ + "14:14": true, + "9:14": true, + "1:11": true, + "3:13": [ + 159, + 209 + ], + "2:12": true, + "3:8": true, + "13:13": true, + "10:14": true, + "2:15": true, + "1:10": true, + "0:13": true, + "15:14": true, + "11:13": true, + "3:5": true, + "3:10": true, + "6:13": true, + "8:0": true, + "3:6": true, + "3:11": [ + 150, + 209 + ], + "12:13": true, + "2:14": true, + "1:13": true, + "7:14": true, + "12:14": true, + "3:7": true, + "3:12": [ + 150, + 209 + ], + "2:13": true, + "1:14": true, + "7:13": true, + "11:14": true, + "3:15": [ + 163, + 210 + ], + "6:14": true, + "15:13": true, + "13:14": true, + "10:13": true, + "5:13": true, + "3:4": true, + "2:10": true, + "1:15": true, + "0:14": true, + "3:9": true, + "3:14": true, + "1:12": true, + "14:13": true, + "9:13": true, + "4:13": true, + "2:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_1.json index 7d15d4b4..72b5e29c 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_1.json @@ -1 +1,106 @@ -{"6:0":true,"1:1":true,"11:5":true,"10:4":true,"3:13":true,"2:7":true,"12:5":true,"1:5":true,"7:2":true,"11:1":true,"9:4":true,"3:10":true,"7:4":true,"3:0":[160,210],"9:2":true,"13:0":true,"0:0":true,"3:6":[150,205],"1:8":true,"13:2":true,"5:5":true,"3:12":true,"0:2":true,"6:4":true,"2:8":true,"15:5":true,"10:0":true,"14:5":true,"5:1":true,"4:5":true,"3:2":[168,210],"15:1":true,"9:0":true,"7:0":true,"3:4":true,"2:5":true,"13:4":true,"3:14":true,"3:3":[163,210],"1:7":true,"0:4":true,"2:1":true,"15:4":true,"11:0":true,"14:3":true,"1:6":true,"6:5":true,"3:8":true,"2:2":true,"12:0":true,"1:0":true,"14:4":true,"3:5":[159,205],"2:4":true,"8:0":true,"13:1":true,"0:1":true,"15:2":192,"3:11":true,"3:1":[167,210],"13:5":true,"5:2":true,"2:3":true,"0:5":true,"15:0":true,"11:4":true,"10:5":true,"9:1":true,"3:7":[150,205],"1:3":true,"5:0":true,"9:5":true,"12:4":true,"1:4":true,"14:0":true,"4:0":true,"2:0":true,"1:2":true,"7:5":true,"3:9":true,"11:2":true,"7:1":true,"2:6":true} \ No newline at end of file +{ + "6:0": true, + "1:1": true, + "11:5": true, + "10:4": true, + "3:13": true, + "2:7": true, + "12:5": true, + "1:5": true, + "7:2": true, + "11:1": true, + "9:4": true, + "3:10": true, + "7:4": true, + "3:0": [ + 160, + 210 + ], + "9:2": true, + "13:0": true, + "0:0": true, + "3:6": [ + 150, + 205 + ], + "1:8": true, + "13:2": true, + "5:5": true, + "3:12": true, + "0:2": true, + "6:4": true, + "2:8": true, + "15:5": true, + "10:0": true, + "14:5": true, + "5:1": true, + "4:5": true, + "3:2": [ + 168, + 210 + ], + "15:1": true, + "9:0": true, + "7:0": true, + "3:4": true, + "2:5": true, + "13:4": true, + "3:14": true, + "3:3": [ + 163, + 210 + ], + "1:7": true, + "0:4": true, + "2:1": true, + "15:4": true, + "11:0": true, + "14:3": true, + "1:6": true, + "6:5": true, + "3:8": true, + "2:2": true, + "12:0": true, + "1:0": true, + "14:4": true, + "3:5": [ + 159, + 205 + ], + "2:4": true, + "8:0": true, + "13:1": true, + "0:1": true, + "15:2": 192, + "3:11": true, + "3:1": [ + 167, + 210 + ], + "13:5": true, + "5:2": true, + "2:3": true, + "0:5": true, + "15:0": true, + "11:4": true, + "10:5": true, + "9:1": true, + "3:7": [ + 150, + 205 + ], + "1:3": true, + "5:0": true, + "9:5": true, + "12:4": true, + "1:4": true, + "14:0": true, + "4:0": true, + "2:0": true, + "1:2": true, + "7:5": true, + "3:9": true, + "11:2": true, + "7:1": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_2.json index 1024acf2..a1ab3fb3 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_2.json @@ -1 +1,110 @@ -{"15:9":true,"12:11":true,"2:7":true,"8:8":true,"7:12":true,"6:10":true,"13:13":true,"14:9":true,"11:11":true,"10:12":true,"2:9":true,"15:7":true,"14:7":true,"9:12":true,"13:10":true,"1:8":true,"10:10":true,"8:7":true,"4:11":true,"2:8":true,"9:10":true,"5:11":true,"1:9":true,"15:8":true,"8:9":true,"7:10":true,"6:12":true,"1:7":true,"14:8":true,"14:14":true,"12:6":true,"2:12":true,"10:9":true,"7:7":true,"1:10":true,"13:8":true,"15:14":true,"9:9":true,"10:7":true,"8:10":true,"7:9":true,"6:8":true,"15:12":true,"14:12":true,"9:7":true,"3:11":true,"8:12":true,"7:8":true,"6:9":true,"4:6":true,"2:13":true,"15:10":true,"14:10":true,"5:6":true,"13:7":true,"15:13":true,"2:10":true,"10:8":true,"6:7":true,"13:9":true,"9:8":true,"14:13":true,"3:13":true,"5:9":true,"6:6":true,"4:9":true,"5:7":true,"3:10":true,"11:8":true,"13:6":true,"8:11":true,"12:8":true,"14:11":true,"9:6":true,"3:12":true,"11:9":true,"10:6":true,"15:11":true,"12:9":true,"11:7":true,"5:8":true,"12:7":true,"7:6":true,"4:8":true,"2:11":true,"11:10":true,"3:8":true,"12:10":true,"0:8":true,"6:11":true,"11:13":true,"5:12":true,"13:11":true,"8:6":true,"4:12":true,"12:13":true,"14:6":true,"5:10":true,"9:11":true,"3:7":true,"10:11":true,"4:10":true,"15:6":true,"3:9":true,"12:12":true,"0:9":179,"7:11":true,"2:6":true} \ No newline at end of file +{ + "15:9": true, + "12:11": true, + "2:7": true, + "8:8": true, + "7:12": true, + "6:10": true, + "13:13": true, + "14:9": true, + "11:11": true, + "10:12": true, + "2:9": true, + "15:7": true, + "14:7": true, + "9:12": true, + "13:10": true, + "1:8": true, + "10:10": true, + "8:7": true, + "4:11": true, + "2:8": true, + "9:10": true, + "5:11": true, + "1:9": true, + "15:8": true, + "8:9": true, + "7:10": true, + "6:12": true, + "1:7": true, + "14:8": true, + "14:14": true, + "12:6": true, + "2:12": true, + "10:9": true, + "7:7": true, + "1:10": true, + "13:8": true, + "15:14": true, + "9:9": true, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "15:12": true, + "14:12": true, + "9:7": true, + "3:11": true, + "8:12": true, + "7:8": true, + "6:9": true, + "4:6": true, + "2:13": true, + "15:10": true, + "14:10": true, + "5:6": true, + "13:7": true, + "15:13": true, + "2:10": true, + "10:8": true, + "6:7": true, + "13:9": true, + "9:8": true, + "14:13": true, + "3:13": true, + "5:9": true, + "6:6": true, + "4:9": true, + "5:7": true, + "3:10": true, + "11:8": true, + "13:6": true, + "8:11": true, + "12:8": true, + "14:11": true, + "9:6": true, + "3:12": true, + "11:9": true, + "10:6": true, + "15:11": true, + "12:9": true, + "11:7": true, + "5:8": true, + "12:7": true, + "7:6": true, + "4:8": true, + "2:11": true, + "11:10": true, + "3:8": true, + "12:10": true, + "0:8": true, + "6:11": true, + "11:13": true, + "5:12": true, + "13:11": true, + "8:6": true, + "4:12": true, + "12:13": true, + "14:6": true, + "5:10": true, + "9:11": true, + "3:7": true, + "10:11": true, + "4:10": true, + "15:6": true, + "3:9": true, + "12:12": true, + "0:9": 179, + "7:11": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_3.json index a3278b89..d250466e 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_3.json @@ -1 +1,42 @@ -{"15:9":true,"14:9":true,"9:10":true,"4:5":169,"3:2":true,"15:8":[198,199],"3:4":[169,170],"3:3":true,"14:8":[198,199],"2:1":173,"10:9":true,"13:8":199,"4:4":true,"8:10":true,"4:2":true,"5:2":174,"12:3":true,"12:2":true,"11:2":[186,187],"13:9":true,"10:2":186,"4:1":[173,174],"13:3":true,"3:1":173,"10:11":true} \ No newline at end of file +{ + "15:9": true, + "14:9": true, + "9:10": true, + "4:5": 169, + "3:2": true, + "15:8": [ + 198, + 199 + ], + "3:4": [ + 169, + 170 + ], + "3:3": true, + "14:8": [ + 198, + 199 + ], + "2:1": 173, + "10:9": true, + "13:8": 199, + "4:4": true, + "8:10": true, + "4:2": true, + "5:2": 174, + "12:3": true, + "12:2": true, + "11:2": [ + 186, + 187 + ], + "13:9": true, + "10:2": 186, + "4:1": [ + 173, + 174 + ], + "13:3": true, + "3:1": 173, + "10:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_4.json index 789747c8..232e64b6 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_4.json @@ -1 +1,82 @@ -{"9:3":true,"6:0":true,"1:1":true,"11:5":true,"10:4":true,"10:3":true,"1:5":true,"7:2":true,"6:6":true,"11:1":true,"9:4":true,"8:5":true,"7:4":true,"3:0":true,"9:2":true,"0:6":true,"0:0":true,"8:1":true,"3:6":true,"10:2":true,"7:3":true,"9:6":true,"5:5":true,"4:1":true,"0:2":true,"6:4":true,"5:1":true,"4:5":true,"3:2":true,"9:0":true,"6:3":true,"7:0":true,"3:4":true,"2:5":true,"0:3":true,"3:3":true,"0:4":true,"6:2":true,"7:6":true,"2:1":true,"4:3":true,"1:6":true,"5:4":true,"6:5":true,"5:3":true,"2:2":true,"6:1":true,"1:0":true,"4:4":true,"3:5":true,"2:4":true,"8:0":true,"4:2":true,"0:1":true,"8:6":true,"3:1":true,"5:2":true,"2:3":true,"0:5":true,"11:4":true,"10:5":true,"9:1":true,"4:6":true,"1:3":true,"5:0":true,"10:1":true,"9:5":true,"5:6":true,"11:3":true,"8:2":true,"1:4":true,"4:0":true,"2:0":true,"8:4":true,"1:2":true,"7:5":true,"11:2":true,"8:3":true,"7:1":true,"2:6":true} \ No newline at end of file +{ + "9:3": true, + "6:0": true, + "1:1": true, + "11:5": true, + "10:4": true, + "10:3": true, + "1:5": true, + "7:2": true, + "6:6": true, + "11:1": true, + "9:4": true, + "8:5": true, + "7:4": true, + "3:0": true, + "9:2": true, + "0:6": true, + "0:0": true, + "8:1": true, + "3:6": true, + "10:2": true, + "7:3": true, + "9:6": true, + "5:5": true, + "4:1": true, + "0:2": true, + "6:4": true, + "5:1": true, + "4:5": true, + "3:2": true, + "9:0": true, + "6:3": true, + "7:0": true, + "3:4": true, + "2:5": true, + "0:3": true, + "3:3": true, + "0:4": true, + "6:2": true, + "7:6": true, + "2:1": true, + "4:3": true, + "1:6": true, + "5:4": true, + "6:5": true, + "5:3": true, + "2:2": true, + "6:1": true, + "1:0": true, + "4:4": true, + "3:5": true, + "2:4": true, + "8:0": true, + "4:2": true, + "0:1": true, + "8:6": true, + "3:1": true, + "5:2": true, + "2:3": true, + "0:5": true, + "11:4": true, + "10:5": true, + "9:1": true, + "4:6": true, + "1:3": true, + "5:0": true, + "10:1": true, + "9:5": true, + "5:6": true, + "11:3": true, + "8:2": true, + "1:4": true, + "4:0": true, + "2:0": true, + "8:4": true, + "1:2": true, + "7:5": true, + "11:2": true, + "8:3": true, + "7:1": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_5.json index e9b7db0b..8e06143e 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_5.json @@ -1 +1,41 @@ -{"12:1":true,"1:1":true,"11:5":202,"12:5":true,"1:5":true,"11:1":true,"8:5":true,"8:1":true,"10:2":true,"14:1":true,"5:5":true,"4:1":true,"0:2":true,"15:5":true,"14:5":true,"5:1":true,"4:5":true,"15:1":true,"2:5":true,"0:3":true,"0:4":true,"2:1":true,"6:5":true,"6:1":true,"3:5":true,"13:1":true,"0:1":true,"3:1":true,"13:5":true,"0:5":true,"10:5":[198,202],"9:1":true,"10:1":true,"9:5":true,"7:5":true,"7:1":true} \ No newline at end of file +{ + "12:1": true, + "1:1": true, + "11:5": 202, + "12:5": true, + "1:5": true, + "11:1": true, + "8:5": true, + "8:1": true, + "10:2": true, + "14:1": true, + "5:5": true, + "4:1": true, + "0:2": true, + "15:5": true, + "14:5": true, + "5:1": true, + "4:5": true, + "15:1": true, + "2:5": true, + "0:3": true, + "0:4": true, + "2:1": true, + "6:5": true, + "6:1": true, + "3:5": true, + "13:1": true, + "0:1": true, + "3:1": true, + "13:5": true, + "0:5": true, + "10:5": [ + 198, + 202 + ], + "9:1": true, + "10:1": true, + "9:5": true, + "7:5": true, + "7:1": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_6.json index e47f1f03..29c4dc07 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_6.json @@ -1 +1,31 @@ -{"3:13":[146,147],"0:13":true,"14:1":true,"4:11":true,"3:12":true,"0:15":true,"5:11":[144,145],"0:12":true,"0:14":true,"4:12":[145,146],"2:14":[147,148],"2:13":true,"1:14":true,"1:15":[148,149]} \ No newline at end of file +{ + "3:13": [ + 146, + 147 + ], + "0:13": true, + "14:1": true, + "4:11": true, + "3:12": true, + "0:15": true, + "5:11": [ + 144, + 145 + ], + "0:12": true, + "0:14": true, + "4:12": [ + 145, + 146 + ], + "2:14": [ + 147, + 148 + ], + "2:13": true, + "1:14": true, + "1:15": [ + 148, + 149 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_7.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_7.json index 3154cd03..d3cf2923 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_7.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_7.json @@ -1 +1,85 @@ -{"7:15":true,"2:9":158,"0:6":[157,159],"0:0":true,"3:6":true,"7:14":true,"13:15":152,"5:5":true,"0:2":true,"4:5":true,"13:12":true,"6:14":true,"1:9":true,"3:4":149,"0:3":151,"1:7":146,"6:15":true,"5:4":true,"2:12":true,"2:15":true,"1:10":true,"4:4":true,"3:5":true,"15:12":222,"0:11":true,"14:12":true,"2:14":true,"1:13":true,"0:5":157,"4:6":true,"2:13":true,"1:14":true,"5:6":true,"2:10":true,"1:15":true,"1:12":true,"3:13":true,"0:13":true,"6:6":true,"7:4":true,"0:10":true,"7:3":true,"3:12":true,"0:15":[151,159],"6:4":true,"3:15":true,"0:12":true,"2:5":149,"0:14":true,"3:14":true,"6:2":156,"7:6":true,"4:14":true,"1:6":[147,149],"6:5":true,"5:14":true,"0:8":[147,160],"4:15":true,"0:1":true,"8:6":true,"4:12":true,"0:7":[147,159],"5:13":true,"1:2":true,"12:12":true,"0:9":true,"4:13":true,"2:6":true} \ No newline at end of file +{ + "7:15": true, + "2:9": 158, + "0:6": [ + 157, + 159 + ], + "0:0": true, + "3:6": true, + "7:14": true, + "13:15": 152, + "5:5": true, + "0:2": true, + "4:5": true, + "13:12": true, + "6:14": true, + "1:9": true, + "3:4": 149, + "0:3": 151, + "1:7": 146, + "6:15": true, + "5:4": true, + "2:12": true, + "2:15": true, + "1:10": true, + "4:4": true, + "3:5": true, + "15:12": 222, + "0:11": true, + "14:12": true, + "2:14": true, + "1:13": true, + "0:5": 157, + "4:6": true, + "2:13": true, + "1:14": true, + "5:6": true, + "2:10": true, + "1:15": true, + "1:12": true, + "3:13": true, + "0:13": true, + "6:6": true, + "7:4": true, + "0:10": true, + "7:3": true, + "3:12": true, + "0:15": [ + 151, + 159 + ], + "6:4": true, + "3:15": true, + "0:12": true, + "2:5": 149, + "0:14": true, + "3:14": true, + "6:2": 156, + "7:6": true, + "4:14": true, + "1:6": [ + 147, + 149 + ], + "6:5": true, + "5:14": true, + "0:8": [ + 147, + 160 + ], + "4:15": true, + "0:1": true, + "8:6": true, + "4:12": true, + "0:7": [ + 147, + 159 + ], + "5:13": true, + "1:2": true, + "12:12": true, + "0:9": true, + "4:13": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_8.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_8.json index 575f6f03..4863ca14 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_8.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_8.json @@ -1 +1,265 @@ -{"13:13":[172,173],"3:0":true,"0:6":[149,155],"0:0":[153,159],"14:1":true,"13:15":true,"4:11":true,"0:2":true,"5:11":true,"13:12":172,"3:2":[153,155],"13:14":true,"0:3":true,"0:4":[149,154],"2:1":[153,154],"14:14":174,"4:3":true,"5:4":[152,153],"2:12":true,"5:3":[154,155],"2:15":true,"15:14":157,"15:12":true,"14:15":true,"13:1":154,"4:2":[156,158],"0:11":true,"15:15":[136,175],"2:14":true,"1:13":true,"0:5":[149,154],"1:14":true,"4:0":true,"15:13":true,"1:15":true,"10:8":166,"1:12":true,"1:11":true,"3:13":true,"0:13":true,"13:6":157,"13:0":true,"12:8":153,"13:2":true,"4:1":true,"3:12":true,"0:15":true,"11:9":167,"14:5":157,"3:15":true,"0:12":true,"12:9":[168,169],"0:14":true,"13:4":157,"12:7":[154,156],"3:14":true,"2:11":true,"15:4":154,"14:3":155,"4:14":true,"11:10":167,"12:10":[169,170],"5:14":true,"15:3":153,"1:0":153,"5:12":true,"14:2":155,"13:11":[153,171],"4:15":true,"0:1":[154,156],"4:12":true,"3:1":[155,158],"13:5":157,"5:15":true,"15:0":true,"14:6":157,"15:6":157,"2:0":true,"5:13":true,"4:13":true,"15:9":true,"12:11":[153,170],"9:14":true,"11:5":156,"12:5":157,"10:14":true,"7:15":true,"14:9":157,"11:11":[151,152],"10:12":[149,153],"6:13":true,"15:7":157,"9:15":true,"14:7":157,"9:12":true,"8:1":true,"13:10":152,"10:15":true,"7:14":true,"7:13":true,"6:14":true,"15:8":157,"10:13":true,"6:12":true,"6:15":true,"14:8":157,"9:13":true,"12:6":157,"8:13":true,"1:10":true,"13:8":[154,156],"6:1":true,"11:6":[153,156],"12:3":true,"11:4":157,"9:1":true,"8:12":true,"15:10":true,"14:10":[153,156],"13:7":157,"12:4":157,"11:3":true,"8:15":true,"11:2":true,"8:14":true,"13:9":[153,156],"7:1":true,"9:3":true,"6:0":true,"10:4":157,"10:3":true,"9:4":156,"8:5":true,"7:4":[153,156],"9:2":true,"10:2":true,"0:10":[149,182],"7:3":true,"6:4":[152,155],"10:6":[153,154],"6:3":156,"7:0":true,"0:8":[149,157],"6:11":true,"11:13":155,"8:0":true,"12:13":155,"12:14":true,"10:5":[155,156],"5:10":183,"9:5":true,"11:14":true,"0:7":[148,155],"12:15":true,"11:12":[150,154],"8:4":[155,157],"7:5":true,"12:12":154,"11:15":true,"8:3":158,"0:9":[151,157]} \ No newline at end of file +{ + "13:13": [ + 172, + 173 + ], + "3:0": true, + "0:6": [ + 149, + 155 + ], + "0:0": [ + 153, + 159 + ], + "14:1": true, + "13:15": true, + "4:11": true, + "0:2": true, + "5:11": true, + "13:12": 172, + "3:2": [ + 153, + 155 + ], + "13:14": true, + "0:3": true, + "0:4": [ + 149, + 154 + ], + "2:1": [ + 153, + 154 + ], + "14:14": 174, + "4:3": true, + "5:4": [ + 152, + 153 + ], + "2:12": true, + "5:3": [ + 154, + 155 + ], + "2:15": true, + "15:14": 157, + "15:12": true, + "14:15": true, + "13:1": 154, + "4:2": [ + 156, + 158 + ], + "0:11": true, + "15:15": [ + 136, + 175 + ], + "2:14": true, + "1:13": true, + "0:5": [ + 149, + 154 + ], + "1:14": true, + "4:0": true, + "15:13": true, + "1:15": true, + "10:8": 166, + "1:12": true, + "1:11": true, + "3:13": true, + "0:13": true, + "13:6": 157, + "13:0": true, + "12:8": 153, + "13:2": true, + "4:1": true, + "3:12": true, + "0:15": true, + "11:9": 167, + "14:5": 157, + "3:15": true, + "0:12": true, + "12:9": [ + 168, + 169 + ], + "0:14": true, + "13:4": 157, + "12:7": [ + 154, + 156 + ], + "3:14": true, + "2:11": true, + "15:4": 154, + "14:3": 155, + "4:14": true, + "11:10": 167, + "12:10": [ + 169, + 170 + ], + "5:14": true, + "15:3": 153, + "1:0": 153, + "5:12": true, + "14:2": 155, + "13:11": [ + 153, + 171 + ], + "4:15": true, + "0:1": [ + 154, + 156 + ], + "4:12": true, + "3:1": [ + 155, + 158 + ], + "13:5": 157, + "5:15": true, + "15:0": true, + "14:6": 157, + "15:6": 157, + "2:0": true, + "5:13": true, + "4:13": true, + "15:9": true, + "12:11": [ + 153, + 170 + ], + "9:14": true, + "11:5": 156, + "12:5": 157, + "10:14": true, + "7:15": true, + "14:9": 157, + "11:11": [ + 151, + 152 + ], + "10:12": [ + 149, + 153 + ], + "6:13": true, + "15:7": 157, + "9:15": true, + "14:7": 157, + "9:12": true, + "8:1": true, + "13:10": 152, + "10:15": true, + "7:14": true, + "7:13": true, + "6:14": true, + "15:8": 157, + "10:13": true, + "6:12": true, + "6:15": true, + "14:8": 157, + "9:13": true, + "12:6": 157, + "8:13": true, + "1:10": true, + "13:8": [ + 154, + 156 + ], + "6:1": true, + "11:6": [ + 153, + 156 + ], + "12:3": true, + "11:4": 157, + "9:1": true, + "8:12": true, + "15:10": true, + "14:10": [ + 153, + 156 + ], + "13:7": 157, + "12:4": 157, + "11:3": true, + "8:15": true, + "11:2": true, + "8:14": true, + "13:9": [ + 153, + 156 + ], + "7:1": true, + "9:3": true, + "6:0": true, + "10:4": 157, + "10:3": true, + "9:4": 156, + "8:5": true, + "7:4": [ + 153, + 156 + ], + "9:2": true, + "10:2": true, + "0:10": [ + 149, + 182 + ], + "7:3": true, + "6:4": [ + 152, + 155 + ], + "10:6": [ + 153, + 154 + ], + "6:3": 156, + "7:0": true, + "0:8": [ + 149, + 157 + ], + "6:11": true, + "11:13": 155, + "8:0": true, + "12:13": 155, + "12:14": true, + "10:5": [ + 155, + 156 + ], + "5:10": 183, + "9:5": true, + "11:14": true, + "0:7": [ + 148, + 155 + ], + "12:15": true, + "11:12": [ + 150, + 154 + ], + "8:4": [ + 155, + 157 + ], + "7:5": true, + "12:12": 154, + "11:15": true, + "8:3": 158, + "0:9": [ + 151, + 157 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_9.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_9.json index 9990588f..65c19273 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-8_9.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-8_9.json @@ -1 +1,213 @@ -{"1:1":true,"13:13":true,"3:0":true,"0:6":[171,173],"0:0":true,"3:6":174,"14:1":true,"10:10":[152,154],"8:7":true,"5:5":177,"0:2":true,"9:10":154,"4:5":176,"13:12":true,"3:2":true,"15:1":true,"3:4":true,"0:3":true,"8:9":154,"7:10":156,"3:3":true,"0:4":true,"2:1":true,"14:14":true,"4:3":true,"5:4":true,"10:9":152,"7:7":true,"5:3":true,"15:14":true,"9:9":153,"4:4":true,"10:7":true,"8:10":155,"7:9":155,"3:5":175,"15:12":true,"14:15":true,"13:1":true,"4:2":true,"15:15":true,"14:12":true,"9:7":true,"5:2":true,"0:5":[171,175],"7:8":154,"4:6":175,"5:0":true,"5:6":176,"4:0":true,"15:13":true,"10:8":true,"6:7":[175,176],"14:13":true,"1:5":[170,173],"11:8":true,"13:6":true,"13:0":true,"12:8":true,"14:11":true,"13:2":true,"4:1":true,"11:9":[137,142],"15:5":true,"14:5":true,"5:1":true,"15:11":true,"12:9":true,"13:3":true,"11:7":true,"2:5":174,"13:4":true,"12:7":true,"15:4":true,"14:3":true,"11:10":true,"12:10":true,"2:2":true,"15:3":true,"1:0":true,"14:4":true,"2:4":true,"14:2":true,"13:11":true,"0:1":true,"15:2":true,"3:1":true,"13:5":true,"2:3":true,"15:0":true,"14:6":true,"1:3":true,"1:4":true,"15:6":true,"14:0":true,"2:0":true,"1:2":true,"2:6":173,"15:9":true,"12:11":true,"9:14":true,"11:5":true,"7:12":true,"12:5":true,"10:14":true,"14:9":true,"11:11":true,"10:12":true,"15:7":true,"14:7":true,"9:12":true,"8:1":true,"13:10":true,"10:15":true,"7:13":155,"15:8":true,"10:13":true,"14:8":true,"9:13":true,"11:0":true,"12:6":true,"8:13":true,"13:8":true,"12:0":true,"6:1":true,"11:6":true,"12:3":true,"11:4":true,"9:1":true,"8:12":true,"15:10":true,"14:10":true,"10:1":true,"13:7":true,"12:4":true,"11:3":true,"12:2":true,"11:2":true,"13:9":true,"7:1":true,"12:1":true,"9:3":true,"6:0":true,"10:4":true,"10:3":true,"7:2":true,"6:6":177,"11:1":true,"9:4":true,"8:5":true,"5:7":[174,175],"7:4":true,"9:2":true,"8:11":true,"4:7":[173,174],"10:2":true,"7:3":true,"9:6":true,"6:4":true,"10:0":true,"10:6":true,"9:0":true,"6:3":true,"7:0":true,"6:2":true,"7:6":true,"6:5":true,"11:13":true,"8:0":true,"8:6":true,"12:13":true,"12:14":true,"10:5":true,"9:11":true,"3:7":173,"10:11":true,"9:5":true,"11:14":true,"8:2":true,"12:15":true,"11:12":true,"8:4":true,"7:5":true,"12:12":true,"11:15":true,"8:3":true,"7:11":true} \ No newline at end of file +{ + "1:1": true, + "13:13": true, + "3:0": true, + "0:6": [ + 171, + 173 + ], + "0:0": true, + "3:6": 174, + "14:1": true, + "10:10": [ + 152, + 154 + ], + "8:7": true, + "5:5": 177, + "0:2": true, + "9:10": 154, + "4:5": 176, + "13:12": true, + "3:2": true, + "15:1": true, + "3:4": true, + "0:3": true, + "8:9": 154, + "7:10": 156, + "3:3": true, + "0:4": true, + "2:1": true, + "14:14": true, + "4:3": true, + "5:4": true, + "10:9": 152, + "7:7": true, + "5:3": true, + "15:14": true, + "9:9": 153, + "4:4": true, + "10:7": true, + "8:10": 155, + "7:9": 155, + "3:5": 175, + "15:12": true, + "14:15": true, + "13:1": true, + "4:2": true, + "15:15": true, + "14:12": true, + "9:7": true, + "5:2": true, + "0:5": [ + 171, + 175 + ], + "7:8": 154, + "4:6": 175, + "5:0": true, + "5:6": 176, + "4:0": true, + "15:13": true, + "10:8": true, + "6:7": [ + 175, + 176 + ], + "14:13": true, + "1:5": [ + 170, + 173 + ], + "11:8": true, + "13:6": true, + "13:0": true, + "12:8": true, + "14:11": true, + "13:2": true, + "4:1": true, + "11:9": [ + 137, + 142 + ], + "15:5": true, + "14:5": true, + "5:1": true, + "15:11": true, + "12:9": true, + "13:3": true, + "11:7": true, + "2:5": 174, + "13:4": true, + "12:7": true, + "15:4": true, + "14:3": true, + "11:10": true, + "12:10": true, + "2:2": true, + "15:3": true, + "1:0": true, + "14:4": true, + "2:4": true, + "14:2": true, + "13:11": true, + "0:1": true, + "15:2": true, + "3:1": true, + "13:5": true, + "2:3": true, + "15:0": true, + "14:6": true, + "1:3": true, + "1:4": true, + "15:6": true, + "14:0": true, + "2:0": true, + "1:2": true, + "2:6": 173, + "15:9": true, + "12:11": true, + "9:14": true, + "11:5": true, + "7:12": true, + "12:5": true, + "10:14": true, + "14:9": true, + "11:11": true, + "10:12": true, + "15:7": true, + "14:7": true, + "9:12": true, + "8:1": true, + "13:10": true, + "10:15": true, + "7:13": 155, + "15:8": true, + "10:13": true, + "14:8": true, + "9:13": true, + "11:0": true, + "12:6": true, + "8:13": true, + "13:8": true, + "12:0": true, + "6:1": true, + "11:6": true, + "12:3": true, + "11:4": true, + "9:1": true, + "8:12": true, + "15:10": true, + "14:10": true, + "10:1": true, + "13:7": true, + "12:4": true, + "11:3": true, + "12:2": true, + "11:2": true, + "13:9": true, + "7:1": true, + "12:1": true, + "9:3": true, + "6:0": true, + "10:4": true, + "10:3": true, + "7:2": true, + "6:6": 177, + "11:1": true, + "9:4": true, + "8:5": true, + "5:7": [ + 174, + 175 + ], + "7:4": true, + "9:2": true, + "8:11": true, + "4:7": [ + 173, + 174 + ], + "10:2": true, + "7:3": true, + "9:6": true, + "6:4": true, + "10:0": true, + "10:6": true, + "9:0": true, + "6:3": true, + "7:0": true, + "6:2": true, + "7:6": true, + "6:5": true, + "11:13": true, + "8:0": true, + "8:6": true, + "12:13": true, + "12:14": true, + "10:5": true, + "9:11": true, + "3:7": 173, + "10:11": true, + "9:5": true, + "11:14": true, + "8:2": true, + "12:15": true, + "11:12": true, + "8:4": true, + "7:5": true, + "12:12": true, + "11:15": true, + "8:3": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-1.json index d31fa63e..3b14a2de 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-1.json @@ -1 +1,20 @@ -{"11:5":true,"8:5":true,"0:6":197,"7:14":[165,168],"10:6":true,"6:14":[166,167],"11:6":true,"10:7":true,"9:7":true,"5:15":166,"0:5":196,"8:14":true} \ No newline at end of file +{ + "11:5": true, + "8:5": true, + "0:6": 197, + "7:14": [ + 165, + 168 + ], + "10:6": true, + "6:14": [ + 166, + 167 + ], + "11:6": true, + "10:7": true, + "9:7": true, + "5:15": 166, + "0:5": 196, + "8:14": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-2.json index aca1f76c..3f60da15 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-2.json @@ -1 +1,36 @@ -{"0:6":true,"0:0":[168,212],"14:1":[169,170],"0:2":true,"3:4":true,"5:3":true,"13:1":169,"10:1":211,"10:3":211,"13:0":168,"10:2":211,"13:2":true,"15:5":true,"2:5":true,"14:3":168,"1:0":168,"14:2":169,"0:1":[167,216],"15:0":[169,170],"15:6":true,"14:0":168,"1:2":216} \ No newline at end of file +{ + "0:6": true, + "0:0": [ + 168, + 212 + ], + "14:1": [ + 169, + 170 + ], + "0:2": true, + "3:4": true, + "5:3": true, + "13:1": 169, + "10:1": 211, + "10:3": 211, + "13:0": 168, + "10:2": 211, + "13:2": true, + "15:5": true, + "2:5": true, + "14:3": 168, + "1:0": 168, + "14:2": 169, + "0:1": [ + 167, + 216 + ], + "15:0": [ + 169, + 170 + ], + "15:6": true, + "14:0": 168, + "1:2": 216 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-3.json index 9a2f6ba9..84181f40 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-3.json @@ -1 +1,31 @@ -{"12:5":true,"10:12":true,"10:13":true,"12:6":true,"15:14":185,"14:15":168,"15:15":169,"3:11":169,"12:4":210,"13:6":201,"13:2":211,"15:5":201,"14:5":201,"13:3":[210,211],"11:7":208,"13:4":[201,211],"12:7":201,"14:3":201,"14:4":true,"14:2":212,"13:5":201,"14:6":201,"10:11":true} \ No newline at end of file +{ + "12:5": true, + "10:12": true, + "10:13": true, + "12:6": true, + "15:14": 185, + "14:15": 168, + "15:15": 169, + "3:11": 169, + "12:4": 210, + "13:6": 201, + "13:2": 211, + "15:5": 201, + "14:5": 201, + "13:3": [ + 210, + 211 + ], + "11:7": 208, + "13:4": [ + 201, + 211 + ], + "12:7": 201, + "14:3": 201, + "14:4": true, + "14:2": 212, + "13:5": 201, + "14:6": 201, + "10:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-4.json index 3994b683..146a0bba 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-4.json @@ -1 +1,23 @@ -{"7:7":true,"5:9":true,"10:3":true,"0:13":true,"6:6":true,"4:9":true,"6:8":true,"5:7":true,"5:12":true,"7:8":true,"5:10":true,"1:3":true,"0:2":true,"5:11":true,"1:4":true,"0:12":true,"0:14":true,"1:2":true,"6:7":true,"5:8":true,"0:4":true} \ No newline at end of file +{ + "7:7": true, + "5:9": true, + "10:3": true, + "0:13": true, + "6:6": true, + "4:9": true, + "6:8": true, + "5:7": true, + "5:12": true, + "7:8": true, + "5:10": true, + "1:3": true, + "0:2": true, + "5:11": true, + "1:4": true, + "0:12": true, + "0:14": true, + "1:2": true, + "6:7": true, + "5:8": true, + "0:4": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-5.json index 8cf4d4b1..ead7e176 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-5.json @@ -1 +1,49 @@ -{"8:8":true,"6:6":true,"5:7":true,"0:0":188,"12:8":[172,173],"0:2":true,"10:10":[222,223],"14:5":[200,201],"9:10":224,"8:9":true,"5:8":true,"2:11":true,"15:4":[201,202],"2:12":true,"10:9":223,"7:7":true,"2:15":true,"9:9":true,"14:4":200,"8:10":true,"7:9":true,"6:8":true,"0:1":true,"2:14":true,"14:6":[200,201],"9:11":224,"7:8":true,"2:13":true,"10:11":223,"5:6":true,"13:7":172,"6:7":true} \ No newline at end of file +{ + "8:8": true, + "6:6": true, + "5:7": true, + "0:0": 188, + "12:8": [ + 172, + 173 + ], + "0:2": true, + "10:10": [ + 222, + 223 + ], + "14:5": [ + 200, + 201 + ], + "9:10": 224, + "8:9": true, + "5:8": true, + "2:11": true, + "15:4": [ + 201, + 202 + ], + "2:12": true, + "10:9": 223, + "7:7": true, + "2:15": true, + "9:9": true, + "14:4": 200, + "8:10": true, + "7:9": true, + "6:8": true, + "0:1": true, + "2:14": true, + "14:6": [ + 200, + 201 + ], + "9:11": 224, + "7:8": true, + "2:13": true, + "10:11": 223, + "5:6": true, + "13:7": 172, + "6:7": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-6.json index 69ff3534..2bb76172 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_-6.json @@ -1 +1,22 @@ -{"7:12":true,"0:2":201,"3:4":true,"0:3":[201,216],"6:12":true,"3:14":226,"7:6":true,"4:14":226,"5:14":true,"4:4":true,"2:4":true,"2:3":201,"1:3":201,"1:4":true,"5:13":true,"7:11":true,"4:13":true} \ No newline at end of file +{ + "7:12": true, + "0:2": 201, + "3:4": true, + "0:3": [ + 201, + 216 + ], + "6:12": true, + "3:14": 226, + "7:6": true, + "4:14": 226, + "5:14": true, + "4:4": true, + "2:4": true, + "2:3": 201, + "1:3": 201, + "1:4": true, + "5:13": true, + "7:11": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_0.json index 5d27980e..405d0278 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_0.json @@ -1 +1,29 @@ -{"12:1":true,"9:14":true,"8:13":true,"3:13":true,"0:13":true,"13:13":true,"10:14":true,"5:14":true,"12:0":true,"14:4":true,"11:1":true,"11:13":true,"6:13":true,"1:13":true,"7:14":true,"12:3":true,"7:13":true,"6:14":true,"15:13":true,"0:14":true,"12:2":true,"10:13":true,"5:13":true,"13:4":true,"11:2":true,"8:14":true,"9:13":true} \ No newline at end of file +{ + "12:1": true, + "9:14": true, + "8:13": true, + "3:13": true, + "0:13": true, + "13:13": true, + "10:14": true, + "5:14": true, + "12:0": true, + "14:4": true, + "11:1": true, + "11:13": true, + "6:13": true, + "1:13": true, + "7:14": true, + "12:3": true, + "7:13": true, + "6:14": true, + "15:13": true, + "0:14": true, + "12:2": true, + "10:13": true, + "5:13": true, + "13:4": true, + "11:2": true, + "8:14": true, + "9:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_2.json index f2607f0a..a73a600d 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_2.json @@ -1 +1,23 @@ -{"11:0":true,"15:9":true,"12:1":true,"12:11":true,"6:10":true,"13:13":[177,179],"12:10":true,"14:9":true,"12:0":true,"6:11":true,"11:1":true,"13:10":true,"12:8":true,"15:8":true,"12:2":true,"13:9":true,"14:8":true,"14:13":178} \ No newline at end of file +{ + "11:0": true, + "15:9": true, + "12:1": true, + "12:11": true, + "6:10": true, + "13:13": [ + 177, + 179 + ], + "12:10": true, + "14:9": true, + "12:0": true, + "6:11": true, + "11:1": true, + "13:10": true, + "12:8": true, + "15:8": true, + "12:2": true, + "13:9": true, + "14:8": true, + "14:13": 178 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_3.json index 1ccf4ded..aee761df 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_3.json @@ -1 +1,6 @@ -{"10:7":true,"9:7":true,"10:6":true,"10:8":true} \ No newline at end of file +{ + "10:7": true, + "9:7": true, + "10:6": true, + "10:8": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_4.json index 4471b7ad..66948398 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_4.json @@ -1 +1,84 @@ -{"12:1":true,"9:3":true,"11:5":true,"10:4":true,"12:5":true,"10:3":true,"7:2":true,"11:1":true,"9:4":true,"8:5":true,"7:4":true,"13:6":true,"9:2":true,"13:0":true,"8:1":true,"10:2":true,"7:3":true,"14:1":true,"13:2":true,"9:6":true,"5:5":true,"6:4":true,"15:5":true,"10:0":true,"14:5":true,"10:6":true,"5:1":true,"15:1":true,"9:0":true,"6:3":true,"7:0":true,"0:3":true,"13:3":true,"13:4":true,"6:2":true,"7:6":true,"15:4":true,"11:0":true,"14:3":true,"12:6":true,"5:4":true,"6:5":true,"5:3":true,"15:3":true,"12:0":true,"6:1":true,"14:4":true,"11:6":true,"8:0":true,"14:2":true,"13:1":true,"0:1":[174,175],"15:2":true,"8:6":true,"13:5":true,"5:2":true,"0:5":[174,175],"15:0":true,"14:6":true,"12:3":true,"11:4":true,"10:5":true,"9:1":true,"10:1":true,"9:5":true,"12:4":true,"11:3":true,"8:2":true,"15:6":true,"14:0":true,"12:2":true,"8:4":true,"7:5":true,"11:2":true,"8:3":true,"7:1":true} \ No newline at end of file +{ + "12:1": true, + "9:3": true, + "11:5": true, + "10:4": true, + "12:5": true, + "10:3": true, + "7:2": true, + "11:1": true, + "9:4": true, + "8:5": true, + "7:4": true, + "13:6": true, + "9:2": true, + "13:0": true, + "8:1": true, + "10:2": true, + "7:3": true, + "14:1": true, + "13:2": true, + "9:6": true, + "5:5": true, + "6:4": true, + "15:5": true, + "10:0": true, + "14:5": true, + "10:6": true, + "5:1": true, + "15:1": true, + "9:0": true, + "6:3": true, + "7:0": true, + "0:3": true, + "13:3": true, + "13:4": true, + "6:2": true, + "7:6": true, + "15:4": true, + "11:0": true, + "14:3": true, + "12:6": true, + "5:4": true, + "6:5": true, + "5:3": true, + "15:3": true, + "12:0": true, + "6:1": true, + "14:4": true, + "11:6": true, + "8:0": true, + "14:2": true, + "13:1": true, + "0:1": [ + 174, + 175 + ], + "15:2": true, + "8:6": true, + "13:5": true, + "5:2": true, + "0:5": [ + 174, + 175 + ], + "15:0": true, + "14:6": true, + "12:3": true, + "11:4": true, + "10:5": true, + "9:1": true, + "10:1": true, + "9:5": true, + "12:4": true, + "11:3": true, + "8:2": true, + "15:6": true, + "14:0": true, + "12:2": true, + "8:4": true, + "7:5": true, + "11:2": true, + "8:3": true, + "7:1": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_7.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_7.json index 771280f8..822d27e8 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_7.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_7.json @@ -1 +1,292 @@ -{"1:1":true,"8:8":true,"6:10":true,"13:13":true,"3:0":true,"0:6":true,"0:0":true,"3:6":true,"14:1":true,"10:10":true,"8:7":true,"5:5":true,"4:11":true,"0:2":true,"9:10":true,"5:11":true,"4:5":true,"13:12":true,"3:2":true,"15:1":true,"3:4":true,"0:3":true,"8:9":true,"7:10":true,"3:3":true,"0:4":true,"2:1":true,"4:3":true,"5:4":true,"2:12":[152,154],"10:9":true,"7:7":true,"5:3":true,"15:14":[154,155],"9:9":true,"4:4":true,"10:7":true,"8:10":true,"7:9":true,"6:8":true,"3:5":true,"15:12":true,"13:1":true,"4:2":true,"0:11":true,"14:12":true,"9:7":true,"3:11":[154,173],"5:2":true,"1:13":true,"0:5":true,"2:13":[149,151],"7:8":true,"6:9":true,"4:6":true,"1:14":true,"5:0":true,"5:6":true,"4:0":true,"15:13":true,"1:15":true,"10:8":true,"6:7":true,"1:12":true,"9:8":true,"14:13":true,"1:11":true,"3:13":true,"1:5":true,"0:13":true,"11:8":true,"13:6":true,"13:0":true,"12:8":true,"14:11":true,"13:2":true,"4:1":true,"3:12":[150,175],"0:15":true,"11:9":true,"14:5":true,"5:1":true,"3:15":true,"0:12":true,"15:11":true,"12:9":true,"13:3":true,"11:7":true,"2:5":true,"0:14":true,"13:4":true,"12:7":true,"3:14":[164,175],"2:11":155,"15:4":true,"14:3":true,"1:6":true,"11:10":true,"12:10":true,"2:2":true,"15:3":true,"1:0":true,"14:4":true,"5:12":[147,152],"2:4":true,"14:2":true,"13:11":true,"0:1":true,"15:2":true,"4:12":[148,152],"3:1":true,"13:5":true,"2:3":true,"15:0":true,"14:6":true,"1:3":true,"1:4":true,"15:6":150,"14:0":true,"2:0":true,"5:13":147,"1:2":true,"2:6":true,"15:9":true,"12:11":true,"9:14":152,"11:5":true,"2:7":true,"7:12":true,"12:5":true,"10:14":151,"7:15":[149,151],"14:9":true,"11:11":true,"10:12":151,"6:13":[148,149],"2:9":true,"15:7":[148,157],"9:15":152,"14:7":true,"9:12":151,"8:1":true,"13:10":true,"10:15":152,"7:14":[148,151],"1:8":true,"7:13":true,"2:8":true,"6:14":[146,147],"1:9":[155,202],"15:8":true,"10:13":151,"6:12":true,"1:7":true,"6:15":[146,148],"14:8":true,"9:13":true,"12:6":true,"8:13":true,"1:10":true,"13:8":true,"6:1":true,"11:6":true,"12:3":true,"11:4":true,"8:12":true,"15:10":true,"14:10":true,"13:7":true,"12:4":true,"11:3":true,"8:15":152,"12:2":true,"2:10":[155,192],"11:2":true,"8:14":152,"13:9":true,"7:1":true,"12:1":true,"9:3":true,"6:0":true,"10:4":true,"5:9":true,"10:3":true,"7:2":true,"4:9":true,"9:4":true,"8:5":true,"5:7":true,"3:10":true,"7:4":true,"9:2":true,"8:11":true,"4:7":true,"10:2":true,"0:10":true,"7:3":true,"9:6":true,"10:6":true,"6:3":true,"7:0":true,"5:8":true,"6:2":true,"7:6":true,"4:8":true,"3:8":true,"0:8":[156,202],"6:11":true,"11:13":[149,150],"8:6":true,"12:13":[147,148],"10:5":true,"9:11":true,"5:10":true,"3:7":true,"10:11":true,"9:5":true,"4:10":true,"11:14":true,"8:2":true,"0:7":true,"11:12":150,"8:4":true,"7:5":true,"3:9":true,"12:12":true,"11:15":true,"8:3":true,"0:9":[156,194],"7:11":true} \ No newline at end of file +{ + "1:1": true, + "8:8": true, + "6:10": true, + "13:13": true, + "3:0": true, + "0:6": true, + "0:0": true, + "3:6": true, + "14:1": true, + "10:10": true, + "8:7": true, + "5:5": true, + "4:11": true, + "0:2": true, + "9:10": true, + "5:11": true, + "4:5": true, + "13:12": true, + "3:2": true, + "15:1": true, + "3:4": true, + "0:3": true, + "8:9": true, + "7:10": true, + "3:3": true, + "0:4": true, + "2:1": true, + "4:3": true, + "5:4": true, + "2:12": [ + 152, + 154 + ], + "10:9": true, + "7:7": true, + "5:3": true, + "15:14": [ + 154, + 155 + ], + "9:9": true, + "4:4": true, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": true, + "15:12": true, + "13:1": true, + "4:2": true, + "0:11": true, + "14:12": true, + "9:7": true, + "3:11": [ + 154, + 173 + ], + "5:2": true, + "1:13": true, + "0:5": true, + "2:13": [ + 149, + 151 + ], + "7:8": true, + "6:9": true, + "4:6": true, + "1:14": true, + "5:0": true, + "5:6": true, + "4:0": true, + "15:13": true, + "1:15": true, + "10:8": true, + "6:7": true, + "1:12": true, + "9:8": true, + "14:13": true, + "1:11": true, + "3:13": true, + "1:5": true, + "0:13": true, + "11:8": true, + "13:6": true, + "13:0": true, + "12:8": true, + "14:11": true, + "13:2": true, + "4:1": true, + "3:12": [ + 150, + 175 + ], + "0:15": true, + "11:9": true, + "14:5": true, + "5:1": true, + "3:15": true, + "0:12": true, + "15:11": true, + "12:9": true, + "13:3": true, + "11:7": true, + "2:5": true, + "0:14": true, + "13:4": true, + "12:7": true, + "3:14": [ + 164, + 175 + ], + "2:11": 155, + "15:4": true, + "14:3": true, + "1:6": true, + "11:10": true, + "12:10": true, + "2:2": true, + "15:3": true, + "1:0": true, + "14:4": true, + "5:12": [ + 147, + 152 + ], + "2:4": true, + "14:2": true, + "13:11": true, + "0:1": true, + "15:2": true, + "4:12": [ + 148, + 152 + ], + "3:1": true, + "13:5": true, + "2:3": true, + "15:0": true, + "14:6": true, + "1:3": true, + "1:4": true, + "15:6": 150, + "14:0": true, + "2:0": true, + "5:13": 147, + "1:2": true, + "2:6": true, + "15:9": true, + "12:11": true, + "9:14": 152, + "11:5": true, + "2:7": true, + "7:12": true, + "12:5": true, + "10:14": 151, + "7:15": [ + 149, + 151 + ], + "14:9": true, + "11:11": true, + "10:12": 151, + "6:13": [ + 148, + 149 + ], + "2:9": true, + "15:7": [ + 148, + 157 + ], + "9:15": 152, + "14:7": true, + "9:12": 151, + "8:1": true, + "13:10": true, + "10:15": 152, + "7:14": [ + 148, + 151 + ], + "1:8": true, + "7:13": true, + "2:8": true, + "6:14": [ + 146, + 147 + ], + "1:9": [ + 155, + 202 + ], + "15:8": true, + "10:13": 151, + "6:12": true, + "1:7": true, + "6:15": [ + 146, + 148 + ], + "14:8": true, + "9:13": true, + "12:6": true, + "8:13": true, + "1:10": true, + "13:8": true, + "6:1": true, + "11:6": true, + "12:3": true, + "11:4": true, + "8:12": true, + "15:10": true, + "14:10": true, + "13:7": true, + "12:4": true, + "11:3": true, + "8:15": 152, + "12:2": true, + "2:10": [ + 155, + 192 + ], + "11:2": true, + "8:14": 152, + "13:9": true, + "7:1": true, + "12:1": true, + "9:3": true, + "6:0": true, + "10:4": true, + "5:9": true, + "10:3": true, + "7:2": true, + "4:9": true, + "9:4": true, + "8:5": true, + "5:7": true, + "3:10": true, + "7:4": true, + "9:2": true, + "8:11": true, + "4:7": true, + "10:2": true, + "0:10": true, + "7:3": true, + "9:6": true, + "10:6": true, + "6:3": true, + "7:0": true, + "5:8": true, + "6:2": true, + "7:6": true, + "4:8": true, + "3:8": true, + "0:8": [ + 156, + 202 + ], + "6:11": true, + "11:13": [ + 149, + 150 + ], + "8:6": true, + "12:13": [ + 147, + 148 + ], + "10:5": true, + "9:11": true, + "5:10": true, + "3:7": true, + "10:11": true, + "9:5": true, + "4:10": true, + "11:14": true, + "8:2": true, + "0:7": true, + "11:12": 150, + "8:4": true, + "7:5": true, + "3:9": true, + "12:12": true, + "11:15": true, + "8:3": true, + "0:9": [ + 156, + 194 + ], + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_8.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_8.json index d412a806..dec30d93 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_8.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_8.json @@ -1 +1,279 @@ -{"1:1":true,"8:8":true,"6:10":true,"13:13":true,"3:0":true,"0:6":true,"0:0":true,"3:6":true,"13:15":true,"10:10":true,"8:7":true,"5:5":true,"4:11":true,"0:2":true,"9:10":true,"5:11":true,"4:5":true,"13:12":true,"3:2":true,"13:14":true,"3:4":true,"0:3":true,"8:9":true,"7:10":true,"3:3":true,"0:4":true,"2:1":true,"14:14":true,"4:3":true,"5:4":true,"2:12":true,"10:9":true,"7:7":true,"5:3":true,"2:15":true,"15:14":true,"9:9":true,"4:4":true,"8:10":true,"7:9":true,"6:8":true,"3:5":true,"15:12":true,"14:15":true,"4:2":true,"0:11":true,"15:15":true,"14:12":true,"9:7":true,"3:11":true,"5:2":true,"2:14":true,"1:13":true,"0:5":true,"2:13":true,"7:8":true,"6:9":true,"4:6":true,"1:14":true,"5:0":true,"5:6":true,"15:13":true,"1:15":true,"10:8":true,"6:7":true,"1:12":true,"9:8":true,"14:13":true,"1:11":true,"3:13":true,"1:5":true,"0:13":true,"11:8":true,"13:6":155,"12:8":true,"14:11":true,"4:1":true,"3:12":true,"0:15":true,"11:9":true,"14:5":[151,152],"5:1":true,"3:15":true,"0:12":true,"15:11":true,"12:9":true,"13:3":[152,153],"11:7":true,"2:5":true,"0:14":true,"13:4":[149,153],"12:7":true,"2:11":true,"4:14":true,"1:6":true,"11:10":true,"12:10":true,"5:14":true,"2:2":true,"1:0":true,"5:12":true,"2:4":true,"13:11":true,"4:15":true,"0:1":true,"4:12":true,"3:1":true,"13:5":[147,154],"5:15":true,"2:3":true,"14:6":[148,154],"1:3":true,"1:4":true,"2:0":true,"5:13":true,"4:13":true,"2:6":true,"15:9":true,"12:11":true,"9:14":true,"2:7":true,"7:12":true,"12:5":155,"10:14":true,"7:15":true,"14:9":true,"11:11":true,"10:12":true,"6:13":true,"2:9":true,"15:7":[150,154],"9:15":true,"14:7":[148,155],"9:12":true,"8:1":152,"13:10":true,"10:15":true,"7:14":true,"1:8":true,"7:13":true,"2:8":true,"6:14":true,"1:9":true,"15:8":[150,155],"10:13":true,"6:12":true,"1:7":true,"6:15":true,"14:8":true,"9:13":true,"11:0":[146,151],"12:6":true,"8:13":true,"1:10":true,"6:1":true,"11:6":true,"11:4":154,"9:1":153,"8:12":true,"12:3":[147,154],"15:10":true,"14:10":true,"10:1":153,"12:4":[146,154],"11:3":[146,154],"8:15":true,"12:2":[149,153],"2:10":true,"11:2":[147,153],"8:14":true,"13:9":true,"7:1":152,"9:3":true,"6:0":[148,151],"10:4":true,"5:9":true,"10:3":154,"7:2":true,"6:6":true,"4:9":true,"11:1":[148,152],"9:4":true,"5:7":true,"3:10":true,"7:4":true,"9:2":153,"8:11":true,"4:7":true,"10:2":153,"0:10":true,"7:3":true,"9:6":true,"6:4":true,"10:0":152,"10:6":true,"9:0":152,"6:3":true,"7:0":152,"5:8":true,"6:2":true,"7:6":true,"4:8":true,"3:8":true,"0:8":true,"6:11":true,"11:13":true,"8:0":152,"8:6":true,"12:13":true,"12:14":true,"10:5":true,"9:11":true,"5:10":true,"3:7":true,"10:11":true,"9:5":true,"4:10":true,"11:14":true,"8:2":true,"0:7":true,"12:15":true,"11:12":true,"8:4":true,"3:9":true,"12:12":true,"11:15":true,"8:3":true,"0:9":true,"7:11":true} \ No newline at end of file +{ + "1:1": true, + "8:8": true, + "6:10": true, + "13:13": true, + "3:0": true, + "0:6": true, + "0:0": true, + "3:6": true, + "13:15": true, + "10:10": true, + "8:7": true, + "5:5": true, + "4:11": true, + "0:2": true, + "9:10": true, + "5:11": true, + "4:5": true, + "13:12": true, + "3:2": true, + "13:14": true, + "3:4": true, + "0:3": true, + "8:9": true, + "7:10": true, + "3:3": true, + "0:4": true, + "2:1": true, + "14:14": true, + "4:3": true, + "5:4": true, + "2:12": true, + "10:9": true, + "7:7": true, + "5:3": true, + "2:15": true, + "15:14": true, + "9:9": true, + "4:4": true, + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": true, + "15:12": true, + "14:15": true, + "4:2": true, + "0:11": true, + "15:15": true, + "14:12": true, + "9:7": true, + "3:11": true, + "5:2": true, + "2:14": true, + "1:13": true, + "0:5": true, + "2:13": true, + "7:8": true, + "6:9": true, + "4:6": true, + "1:14": true, + "5:0": true, + "5:6": true, + "15:13": true, + "1:15": true, + "10:8": true, + "6:7": true, + "1:12": true, + "9:8": true, + "14:13": true, + "1:11": true, + "3:13": true, + "1:5": true, + "0:13": true, + "11:8": true, + "13:6": 155, + "12:8": true, + "14:11": true, + "4:1": true, + "3:12": true, + "0:15": true, + "11:9": true, + "14:5": [ + 151, + 152 + ], + "5:1": true, + "3:15": true, + "0:12": true, + "15:11": true, + "12:9": true, + "13:3": [ + 152, + 153 + ], + "11:7": true, + "2:5": true, + "0:14": true, + "13:4": [ + 149, + 153 + ], + "12:7": true, + "2:11": true, + "4:14": true, + "1:6": true, + "11:10": true, + "12:10": true, + "5:14": true, + "2:2": true, + "1:0": true, + "5:12": true, + "2:4": true, + "13:11": true, + "4:15": true, + "0:1": true, + "4:12": true, + "3:1": true, + "13:5": [ + 147, + 154 + ], + "5:15": true, + "2:3": true, + "14:6": [ + 148, + 154 + ], + "1:3": true, + "1:4": true, + "2:0": true, + "5:13": true, + "4:13": true, + "2:6": true, + "15:9": true, + "12:11": true, + "9:14": true, + "2:7": true, + "7:12": true, + "12:5": 155, + "10:14": true, + "7:15": true, + "14:9": true, + "11:11": true, + "10:12": true, + "6:13": true, + "2:9": true, + "15:7": [ + 150, + 154 + ], + "9:15": true, + "14:7": [ + 148, + 155 + ], + "9:12": true, + "8:1": 152, + "13:10": true, + "10:15": true, + "7:14": true, + "1:8": true, + "7:13": true, + "2:8": true, + "6:14": true, + "1:9": true, + "15:8": [ + 150, + 155 + ], + "10:13": true, + "6:12": true, + "1:7": true, + "6:15": true, + "14:8": true, + "9:13": true, + "11:0": [ + 146, + 151 + ], + "12:6": true, + "8:13": true, + "1:10": true, + "6:1": true, + "11:6": true, + "11:4": 154, + "9:1": 153, + "8:12": true, + "12:3": [ + 147, + 154 + ], + "15:10": true, + "14:10": true, + "10:1": 153, + "12:4": [ + 146, + 154 + ], + "11:3": [ + 146, + 154 + ], + "8:15": true, + "12:2": [ + 149, + 153 + ], + "2:10": true, + "11:2": [ + 147, + 153 + ], + "8:14": true, + "13:9": true, + "7:1": 152, + "9:3": true, + "6:0": [ + 148, + 151 + ], + "10:4": true, + "5:9": true, + "10:3": 154, + "7:2": true, + "6:6": true, + "4:9": true, + "11:1": [ + 148, + 152 + ], + "9:4": true, + "5:7": true, + "3:10": true, + "7:4": true, + "9:2": 153, + "8:11": true, + "4:7": true, + "10:2": 153, + "0:10": true, + "7:3": true, + "9:6": true, + "6:4": true, + "10:0": 152, + "10:6": true, + "9:0": 152, + "6:3": true, + "7:0": 152, + "5:8": true, + "6:2": true, + "7:6": true, + "4:8": true, + "3:8": true, + "0:8": true, + "6:11": true, + "11:13": true, + "8:0": 152, + "8:6": true, + "12:13": true, + "12:14": true, + "10:5": true, + "9:11": true, + "5:10": true, + "3:7": true, + "10:11": true, + "9:5": true, + "4:10": true, + "11:14": true, + "8:2": true, + "0:7": true, + "12:15": true, + "11:12": true, + "8:4": true, + "3:9": true, + "12:12": true, + "11:15": true, + "8:3": true, + "0:9": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_9.json b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_9.json index 27bc3ed4..e59d8282 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/-9_9.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/-9_9.json @@ -1 +1,74 @@ -{"12:1":true,"9:3":true,"11:5":true,"10:4":true,"12:5":true,"10:3":true,"7:2":true,"11:1":true,"7:4":149,"9:2":true,"13:0":true,"0:0":true,"8:1":true,"10:2":true,"7:3":true,"14:1":true,"13:2":true,"4:1":true,"15:5":true,"10:0":true,"14:5":true,"5:1":true,"3:2":true,"15:1":true,"9:0":true,"6:3":true,"7:0":true,"13:3":true,"13:4":true,"6:2":true,"2:1":true,"15:4":true,"11:0":true,"14:3":true,"12:6":153,"5:3":true,"15:3":true,"12:0":true,"6:1":true,"1:0":true,"14:4":true,"8:0":true,"14:2":true,"13:1":true,"4:2":true,"15:2":true,"3:1":true,"13:5":true,"5:2":true,"15:0":true,"12:3":true,"11:4":true,"10:5":[151,152],"9:1":true,"10:1":true,"12:4":true,"11:3":true,"8:2":true,"14:0":true,"4:0":true,"2:0":true,"12:2":true,"8:4":[150,151],"11:2":true,"8:3":true,"7:1":true} \ No newline at end of file +{ + "12:1": true, + "9:3": true, + "11:5": true, + "10:4": true, + "12:5": true, + "10:3": true, + "7:2": true, + "11:1": true, + "7:4": 149, + "9:2": true, + "13:0": true, + "0:0": true, + "8:1": true, + "10:2": true, + "7:3": true, + "14:1": true, + "13:2": true, + "4:1": true, + "15:5": true, + "10:0": true, + "14:5": true, + "5:1": true, + "3:2": true, + "15:1": true, + "9:0": true, + "6:3": true, + "7:0": true, + "13:3": true, + "13:4": true, + "6:2": true, + "2:1": true, + "15:4": true, + "11:0": true, + "14:3": true, + "12:6": 153, + "5:3": true, + "15:3": true, + "12:0": true, + "6:1": true, + "1:0": true, + "14:4": true, + "8:0": true, + "14:2": true, + "13:1": true, + "4:2": true, + "15:2": true, + "3:1": true, + "13:5": true, + "5:2": true, + "15:0": true, + "12:3": true, + "11:4": true, + "10:5": [ + 151, + 152 + ], + "9:1": true, + "10:1": true, + "12:4": true, + "11:3": true, + "8:2": true, + "14:0": true, + "4:0": true, + "2:0": true, + "12:2": true, + "8:4": [ + 150, + 151 + ], + "11:2": true, + "8:3": true, + "7:1": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/0_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/0_0.json index a30cb4a9..58bf1e76 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/0_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/0_0.json @@ -1 +1,72 @@ -{"6:0":true,"1:1":true,"2:7":true,"1:5":true,"7:2":true,"3:0":true,"0:6":true,"0:0":true,"13:0":true,"8:1":true,"3:6":true,"7:3":true,"5:5":true,"4:1":true,"0:2":true,"6:4":true,"10:0":true,"5:1":true,"4:5":true,"3:2":true,"9:0":true,"6:3":true,"7:0":true,"3:4":true,"2:5":true,"0:3":true,"3:3":true,"1:7":true,"0:4":true,"6:2":true,"2:1":true,"11:0":true,"4:3":true,"1:6":true,"5:4":true,"5:3":true,"2:2":true,"12:0":true,"6:1":true,"1:0":true,"4:4":true,"3:5":true,"2:4":true,"8:0":true,"14:15":true,"4:2":true,"0:1":true,"15:15":[146,233],"3:1":true,"5:2":true,"2:3":true,"0:5":true,"15:0":true,"9:1":true,"4:6":true,"3:7":true,"1:3":true,"5:0":true,"8:2":true,"1:4":true,"0:7":true,"14:0":true,"4:0":true,"2:0":true,"1:2":true,"7:1":true,"2:6":true} \ No newline at end of file +{ + "6:0": true, + "1:1": true, + "2:7": true, + "1:5": true, + "7:2": true, + "3:0": true, + "0:6": true, + "0:0": true, + "13:0": true, + "8:1": true, + "3:6": true, + "7:3": true, + "5:5": true, + "4:1": true, + "0:2": true, + "6:4": true, + "10:0": true, + "5:1": true, + "4:5": true, + "3:2": true, + "9:0": true, + "6:3": true, + "7:0": true, + "3:4": true, + "2:5": true, + "0:3": true, + "3:3": true, + "1:7": true, + "0:4": true, + "6:2": true, + "2:1": true, + "11:0": true, + "4:3": true, + "1:6": true, + "5:4": true, + "5:3": true, + "2:2": true, + "12:0": true, + "6:1": true, + "1:0": true, + "4:4": true, + "3:5": true, + "2:4": true, + "8:0": true, + "14:15": true, + "4:2": true, + "0:1": true, + "15:15": [ + 146, + 233 + ], + "3:1": true, + "5:2": true, + "2:3": true, + "0:5": true, + "15:0": true, + "9:1": true, + "4:6": true, + "3:7": true, + "1:3": true, + "5:0": true, + "8:2": true, + "1:4": true, + "0:7": true, + "14:0": true, + "4:0": true, + "2:0": true, + "1:2": true, + "7:1": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/0_10.json b/src/main/resources/assets/notenoughupdates/dwarven_data/0_10.json index 27c8872f..5c459232 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/0_10.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/0_10.json @@ -1 +1,59 @@ -{"9:3":127,"6:0":true,"1:11":true,"11:5":true,"3:13":true,"12:5":[205,207],"0:13":true,"6:6":true,"11:1":127,"5:7":true,"15:7":true,"3:0":true,"10:2":true,"4:1":127,"3:12":true,"0:2":127,"3:2":true,"0:12":true,"0:3":127,"0:14":true,"0:4":127,"4:8":true,"2:1":127,"12:6":202,"2:2":127,"12:0":127,"11:6":202,"4:12":[113,114],"3:1":127,"13:5":127,"2:3":127,"1:13":true,"0:5":127,"14:6":true,"11:4":true,"2:13":true,"1:3":127,"5:0":true,"12:4":[127,208],"11:3":127,"1:4":127,"4:0":true,"2:0":true,"8:4":true,"2:10":true,"1:2":127,"7:5":true,"3:9":true} \ No newline at end of file +{ + "9:3": 127, + "6:0": true, + "1:11": true, + "11:5": true, + "3:13": true, + "12:5": [ + 205, + 207 + ], + "0:13": true, + "6:6": true, + "11:1": 127, + "5:7": true, + "15:7": true, + "3:0": true, + "10:2": true, + "4:1": 127, + "3:12": true, + "0:2": 127, + "3:2": true, + "0:12": true, + "0:3": 127, + "0:14": true, + "0:4": 127, + "4:8": true, + "2:1": 127, + "12:6": 202, + "2:2": 127, + "12:0": 127, + "11:6": 202, + "4:12": [ + 113, + 114 + ], + "3:1": 127, + "13:5": 127, + "2:3": 127, + "1:13": true, + "0:5": 127, + "14:6": true, + "11:4": true, + "2:13": true, + "1:3": 127, + "5:0": true, + "12:4": [ + 127, + 208 + ], + "11:3": 127, + "1:4": 127, + "4:0": true, + "2:0": true, + "8:4": true, + "2:10": true, + "1:2": 127, + "7:5": true, + "3:9": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/0_3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/0_3.json index c490d54b..e5302331 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/0_3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/0_3.json @@ -1 +1,21 @@ -{"9:14":true,"2:15":true,"0:13":true,"10:12":true,"9:15":true,"9:12":true,"10:15":true,"12:13":true,"12:14":true,"1:14":true,"0:15":true,"12:15":true,"11:12":true,"1:15":true,"0:14":true,"11:15":true,"12:12":true,"9:8":true,"9:13":true} \ No newline at end of file +{ + "9:14": true, + "2:15": true, + "0:13": true, + "10:12": true, + "9:15": true, + "9:12": true, + "10:15": true, + "12:13": true, + "12:14": true, + "1:14": true, + "0:15": true, + "12:15": true, + "11:12": true, + "1:15": true, + "0:14": true, + "11:15": true, + "12:12": true, + "9:8": true, + "9:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/0_7.json b/src/main/resources/assets/notenoughupdates/dwarven_data/0_7.json index 519dafcc..8ca05ce1 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/0_7.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/0_7.json @@ -1 +1,31 @@ -{"7:12":true,"6:10":true,"0:13":127,"7:15":true,"6:13":true,"7:14":true,"0:15":true,"7:13":true,"10:0":true,"9:0":true,"6:14":true,"0:14":true,"7:10":true,"6:12":true,"6:15":true,"11:0":true,"2:15":127,"12:0":true,"6:11":true,"7:9":true,"0:1":true,"7:8":[117,120],"6:9":true,"1:14":127,"1:15":127,"7:11":true} \ No newline at end of file +{ + "7:12": true, + "6:10": true, + "0:13": 127, + "7:15": true, + "6:13": true, + "7:14": true, + "0:15": true, + "7:13": true, + "10:0": true, + "9:0": true, + "6:14": true, + "0:14": true, + "7:10": true, + "6:12": true, + "6:15": true, + "11:0": true, + "2:15": 127, + "12:0": true, + "6:11": true, + "7:9": true, + "0:1": true, + "7:8": [ + 117, + 120 + ], + "6:9": true, + "1:14": 127, + "1:15": 127, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/0_8.json b/src/main/resources/assets/notenoughupdates/dwarven_data/0_8.json index 83229162..a4dfb68b 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/0_8.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/0_8.json @@ -1 +1,45 @@ -{"15:9":true,"1:11":true,"1:1":true,"3:13":true,"13:13":true,"0:13":true,"6:13":true,"3:0":127,"4:11":true,"0:15":true,"0:2":true,"7:13":true,"3:15":true,"0:12":true,"15:11":true,"7:0":true,"10:13":true,"0:14":true,"0:3":true,"9:13":true,"2:11":true,"2:1":127,"8:13":true,"2:15":true,"0:8":true,"1:0":127,"11:13":true,"4:15":true,"0:11":true,"0:1":true,"15:15":true,"3:11":true,"12:13":true,"1:13":true,"2:13":true,"15:10":true,"15:13":true,"2:0":127,"5:13":true,"1:15":true,"1:2":true,"14:13":true,"4:13":true} \ No newline at end of file +{ + "15:9": true, + "1:11": true, + "1:1": true, + "3:13": true, + "13:13": true, + "0:13": true, + "6:13": true, + "3:0": 127, + "4:11": true, + "0:15": true, + "0:2": true, + "7:13": true, + "3:15": true, + "0:12": true, + "15:11": true, + "7:0": true, + "10:13": true, + "0:14": true, + "0:3": true, + "9:13": true, + "2:11": true, + "2:1": 127, + "8:13": true, + "2:15": true, + "0:8": true, + "1:0": 127, + "11:13": true, + "4:15": true, + "0:11": true, + "0:1": true, + "15:15": true, + "3:11": true, + "12:13": true, + "1:13": true, + "2:13": true, + "15:10": true, + "15:13": true, + "2:0": 127, + "5:13": true, + "1:15": true, + "1:2": true, + "14:13": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/0_9.json b/src/main/resources/assets/notenoughupdates/dwarven_data/0_9.json index 7dfe7b5f..bc399186 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/0_9.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/0_9.json @@ -1 +1,52 @@ -{"15:9":127,"6:10":127,"10:14":127,"7:15":[115,116],"6:13":117,"9:15":116,"7:14":117,"15:1":true,"6:14":true,"6:12":117,"0:4":true,"6:15":116,"9:13":true,"2:15":true,"0:11":127,"2:14":true,"1:13":true,"8:12":127,"2:13":true,"1:14":true,"14:10":true,"8:15":[115,117],"1:12":127,"5:9":127,"1:5":true,"0:13":true,"14:11":true,"3:15":true,"0:12":127,"0:14":true,"3:14":true,"4:8":127,"11:13":127,"5:12":117,"13:11":true,"4:15":true,"5:15":true,"15:0":true,"3:7":true,"5:13":117,"12:12":true,"11:15":true,"7:11":127,"2:6":true} \ No newline at end of file +{ + "15:9": 127, + "6:10": 127, + "10:14": 127, + "7:15": [ + 115, + 116 + ], + "6:13": 117, + "9:15": 116, + "7:14": 117, + "15:1": true, + "6:14": true, + "6:12": 117, + "0:4": true, + "6:15": 116, + "9:13": true, + "2:15": true, + "0:11": 127, + "2:14": true, + "1:13": true, + "8:12": 127, + "2:13": true, + "1:14": true, + "14:10": true, + "8:15": [ + 115, + 117 + ], + "1:12": 127, + "5:9": 127, + "1:5": true, + "0:13": true, + "14:11": true, + "3:15": true, + "0:12": 127, + "0:14": true, + "3:14": true, + "4:8": 127, + "11:13": 127, + "5:12": 117, + "13:11": true, + "4:15": true, + "5:15": true, + "15:0": true, + "3:7": true, + "5:13": 117, + "12:12": true, + "11:15": true, + "7:11": 127, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/10_1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/10_1.json index e31b7d9f..b8dde378 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/10_1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/10_1.json @@ -1 +1,202 @@ -{"15:9":true,"9:14":true,"11:5":[167,169],"2:7":true,"8:8":true,"7:12":true,"6:10":true,"12:5":[167,171],"10:14":true,"7:15":true,"14:9":true,"10:12":true,"6:13":true,"2:9":true,"15:7":167,"9:15":true,"0:6":[151,154],"14:7":168,"9:12":true,"10:15":true,"7:14":true,"1:8":true,"4:11":true,"7:13":true,"2:8":true,"9:10":true,"5:11":true,"6:14":true,"1:9":true,"15:8":true,"10:13":true,"8:9":true,"7:10":true,"6:12":true,"1:7":true,"0:4":[156,157],"6:15":true,"14:8":true,"9:13":true,"2:1":true,"12:6":true,"8:13":true,"2:12":true,"10:9":true,"7:7":true,"2:15":true,"1:10":true,"13:8":true,"9:9":true,"11:6":true,"10:7":true,"8:10":true,"7:9":true,"6:8":true,"0:11":true,"9:7":true,"3:11":true,"2:14":true,"1:13":true,"0:5":[154,190],"11:4":170,"8:12":true,"7:8":true,"6:9":true,"2:13":true,"1:14":true,"15:10":true,"13:7":true,"8:15":true,"2:10":true,"1:15":true,"10:8":true,"6:7":true,"8:14":true,"1:12":true,"13:9":true,"9:8":true,"1:11":true,"3:13":true,"5:9":true,"1:5":[151,189],"0:13":true,"4:9":true,"5:7":true,"3:10":true,"11:8":true,"13:6":170,"8:11":true,"4:7":true,"0:10":true,"12:8":true,"9:6":true,"3:12":true,"0:15":true,"11:9":true,"15:5":168,"14:5":169,"10:6":true,"3:15":true,"0:12":true,"11:7":true,"2:5":[151,226],"0:14":true,"5:8":true,"13:4":[166,167],"12:7":true,"3:14":true,"4:8":true,"2:11":true,"15:4":[164,165],"4:14":true,"1:6":150,"3:8":true,"5:14":true,"2:2":[187,221],"0:8":154,"6:11":true,"14:4":[165,169],"5:12":true,"2:4":[152,222],"4:15":true,"8:6":true,"4:12":true,"13:5":[167,170],"5:15":true,"2:3":[187,222],"14:6":169,"10:5":[168,170],"9:11":true,"5:10":true,"3:7":true,"1:3":156,"9:5":true,"4:10":true,"11:14":true,"1:4":[154,155],"0:7":[151,154],"15:6":168,"12:15":true,"5:13":true,"3:9":true,"11:15":true,"0:9":true,"7:11":true,"4:13":true,"2:6":[192,223]} \ No newline at end of file +{ + "15:9": true, + "9:14": true, + "11:5": [ + 167, + 169 + ], + "2:7": true, + "8:8": true, + "7:12": true, + "6:10": true, + "12:5": [ + 167, + 171 + ], + "10:14": true, + "7:15": true, + "14:9": true, + "10:12": true, + "6:13": true, + "2:9": true, + "15:7": 167, + "9:15": true, + "0:6": [ + 151, + 154 + ], + "14:7": 168, + "9:12": true, + "10:15": true, + "7:14": true, + "1:8": true, + "4:11": true, + "7:13": true, + "2:8": true, + "9:10": true, + "5:11": true, + "6:14": true, + "1:9": true, + "15:8": true, + "10:13": true, + "8:9": true, + "7:10": true, + "6:12": true, + "1:7": true, + "0:4": [ + 156, + 157 + ], + "6:15": true, + "14:8": true, + "9:13": true, + "2:1": true, + "12:6": true, + "8:13": true, + "2:12": true, + "10:9": true, + "7:7": true, + "2:15": true, + "1:10": true, + "13:8": true, + "9:9": true, + "11:6": true, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "0:11": true, + "9:7": true, + "3:11": true, + "2:14": true, + "1:13": true, + "0:5": [ + 154, + 190 + ], + "11:4": 170, + "8:12": true, + "7:8": true, + "6:9": true, + "2:13": true, + "1:14": true, + "15:10": true, + "13:7": true, + "8:15": true, + "2:10": true, + "1:15": true, + "10:8": true, + "6:7": true, + "8:14": true, + "1:12": true, + "13:9": true, + "9:8": true, + "1:11": true, + "3:13": true, + "5:9": true, + "1:5": [ + 151, + 189 + ], + "0:13": true, + "4:9": true, + "5:7": true, + "3:10": true, + "11:8": true, + "13:6": 170, + "8:11": true, + "4:7": true, + "0:10": true, + "12:8": true, + "9:6": true, + "3:12": true, + "0:15": true, + "11:9": true, + "15:5": 168, + "14:5": 169, + "10:6": true, + "3:15": true, + "0:12": true, + "11:7": true, + "2:5": [ + 151, + 226 + ], + "0:14": true, + "5:8": true, + "13:4": [ + 166, + 167 + ], + "12:7": true, + "3:14": true, + "4:8": true, + "2:11": true, + "15:4": [ + 164, + 165 + ], + "4:14": true, + "1:6": 150, + "3:8": true, + "5:14": true, + "2:2": [ + 187, + 221 + ], + "0:8": 154, + "6:11": true, + "14:4": [ + 165, + 169 + ], + "5:12": true, + "2:4": [ + 152, + 222 + ], + "4:15": true, + "8:6": true, + "4:12": true, + "13:5": [ + 167, + 170 + ], + "5:15": true, + "2:3": [ + 187, + 222 + ], + "14:6": 169, + "10:5": [ + 168, + 170 + ], + "9:11": true, + "5:10": true, + "3:7": true, + "1:3": 156, + "9:5": true, + "4:10": true, + "11:14": true, + "1:4": [ + 154, + 155 + ], + "0:7": [ + 151, + 154 + ], + "15:6": 168, + "12:15": true, + "5:13": true, + "3:9": true, + "11:15": true, + "0:9": true, + "7:11": true, + "4:13": true, + "2:6": [ + 192, + 223 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/10_3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/10_3.json index 9c96f830..98cae537 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/10_3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/10_3.json @@ -1 +1,215 @@ -{"8:8":true,"6:10":true,"13:13":true,"0:6":true,"3:6":true,"14:1":true,"10:10":true,"8:7":true,"5:5":true,"4:11":true,"0:2":true,"9:10":true,"5:11":true,"4:5":true,"13:12":true,"15:1":true,"13:14":[161,163],"3:4":true,"0:3":true,"8:9":true,"7:10":true,"3:3":true,"0:4":true,"2:1":true,"14:14":true,"4:3":true,"5:4":true,"2:12":true,"10:9":true,"7:7":true,"5:3":true,"2:15":true,"15:14":true,"9:9":true,"4:4":true,"10:7":true,"3:5":true,"15:12":true,"14:15":160,"13:1":true,"0:11":true,"15:15":true,"14:12":true,"9:7":true,"3:11":true,"2:14":true,"1:13":true,"0:5":true,"2:13":true,"7:8":true,"6:9":true,"4:6":true,"1:14":true,"5:6":true,"15:13":true,"1:15":true,"10:8":true,"1:12":true,"9:8":true,"14:13":true,"1:11":true,"3:13":true,"1:5":true,"0:13":true,"11:8":true,"13:6":true,"13:0":true,"12:8":true,"14:11":true,"13:2":true,"3:12":true,"0:15":true,"11:9":true,"14:5":true,"3:15":true,"0:12":true,"15:11":true,"12:9":true,"13:3":true,"11:7":true,"2:5":true,"0:14":true,"13:4":true,"12:7":true,"2:11":true,"14:3":true,"1:6":true,"11:10":true,"12:10":true,"2:2":true,"15:3":true,"14:4":true,"2:4":true,"14:2":true,"13:11":true,"4:15":true,"15:2":true,"4:12":true,"13:5":true,"5:15":true,"2:3":true,"15:0":true,"14:6":true,"1:4":true,"15:6":true,"14:0":true,"5:13":153,"4:13":true,"2:6":true,"15:9":true,"12:11":true,"2:7":true,"7:12":[149,150],"12:5":true,"14:9":true,"11:11":true,"10:12":true,"2:9":true,"15:7":true,"14:7":true,"9:12":[150,151],"13:10":true,"1:8":true,"2:8":true,"1:9":true,"15:8":true,"6:12":[148,149],"1:7":true,"14:8":true,"11:0":true,"1:10":true,"13:8":true,"12:0":true,"11:4":true,"9:1":true,"8:12":[149,151],"12:3":true,"15:10":true,"14:10":true,"10:1":true,"13:7":true,"12:4":true,"11:3":true,"12:2":true,"2:10":true,"11:2":true,"13:9":true,"12:1":true,"5:9":true,"10:3":true,"6:6":true,"4:9":true,"11:1":true,"8:5":true,"3:10":true,"7:4":true,"9:2":true,"8:11":148,"10:2":true,"0:10":true,"9:6":true,"6:4":true,"10:0":true,"10:6":true,"9:0":true,"6:3":true,"5:8":true,"7:6":true,"4:8":true,"6:5":true,"3:8":true,"0:8":true,"6:11":147,"11:13":[161,163],"8:0":true,"8:6":true,"12:13":true,"12:14":[161,162],"9:11":true,"5:10":true,"10:11":true,"4:10":true,"0:7":true,"11:12":true,"7:5":true,"3:9":true,"12:12":true,"0:9":true,"7:11":[147,148]} \ No newline at end of file +{ + "8:8": true, + "6:10": true, + "13:13": true, + "0:6": true, + "3:6": true, + "14:1": true, + "10:10": true, + "8:7": true, + "5:5": true, + "4:11": true, + "0:2": true, + "9:10": true, + "5:11": true, + "4:5": true, + "13:12": true, + "15:1": true, + "13:14": [ + 161, + 163 + ], + "3:4": true, + "0:3": true, + "8:9": true, + "7:10": true, + "3:3": true, + "0:4": true, + "2:1": true, + "14:14": true, + "4:3": true, + "5:4": true, + "2:12": true, + "10:9": true, + "7:7": true, + "5:3": true, + "2:15": true, + "15:14": true, + "9:9": true, + "4:4": true, + "10:7": true, + "3:5": true, + "15:12": true, + "14:15": 160, + "13:1": true, + "0:11": true, + "15:15": true, + "14:12": true, + "9:7": true, + "3:11": true, + "2:14": true, + "1:13": true, + "0:5": true, + "2:13": true, + "7:8": true, + "6:9": true, + "4:6": true, + "1:14": true, + "5:6": true, + "15:13": true, + "1:15": true, + "10:8": true, + "1:12": true, + "9:8": true, + "14:13": true, + "1:11": true, + "3:13": true, + "1:5": true, + "0:13": true, + "11:8": true, + "13:6": true, + "13:0": true, + "12:8": true, + "14:11": true, + "13:2": true, + "3:12": true, + "0:15": true, + "11:9": true, + "14:5": true, + "3:15": true, + "0:12": true, + "15:11": true, + "12:9": true, + "13:3": true, + "11:7": true, + "2:5": true, + "0:14": true, + "13:4": true, + "12:7": true, + "2:11": true, + "14:3": true, + "1:6": true, + "11:10": true, + "12:10": true, + "2:2": true, + "15:3": true, + "14:4": true, + "2:4": true, + "14:2": true, + "13:11": true, + "4:15": true, + "15:2": true, + "4:12": true, + "13:5": true, + "5:15": true, + "2:3": true, + "15:0": true, + "14:6": true, + "1:4": true, + "15:6": true, + "14:0": true, + "5:13": 153, + "4:13": true, + "2:6": true, + "15:9": true, + "12:11": true, + "2:7": true, + "7:12": [ + 149, + 150 + ], + "12:5": true, + "14:9": true, + "11:11": true, + "10:12": true, + "2:9": true, + "15:7": true, + "14:7": true, + "9:12": [ + 150, + 151 + ], + "13:10": true, + "1:8": true, + "2:8": true, + "1:9": true, + "15:8": true, + "6:12": [ + 148, + 149 + ], + "1:7": true, + "14:8": true, + "11:0": true, + "1:10": true, + "13:8": true, + "12:0": true, + "11:4": true, + "9:1": true, + "8:12": [ + 149, + 151 + ], + "12:3": true, + "15:10": true, + "14:10": true, + "10:1": true, + "13:7": true, + "12:4": true, + "11:3": true, + "12:2": true, + "2:10": true, + "11:2": true, + "13:9": true, + "12:1": true, + "5:9": true, + "10:3": true, + "6:6": true, + "4:9": true, + "11:1": true, + "8:5": true, + "3:10": true, + "7:4": true, + "9:2": true, + "8:11": 148, + "10:2": true, + "0:10": true, + "9:6": true, + "6:4": true, + "10:0": true, + "10:6": true, + "9:0": true, + "6:3": true, + "5:8": true, + "7:6": true, + "4:8": true, + "6:5": true, + "3:8": true, + "0:8": true, + "6:11": 147, + "11:13": [ + 161, + 163 + ], + "8:0": true, + "8:6": true, + "12:13": true, + "12:14": [ + 161, + 162 + ], + "9:11": true, + "5:10": true, + "10:11": true, + "4:10": true, + "0:7": true, + "11:12": true, + "7:5": true, + "3:9": true, + "12:12": true, + "0:9": true, + "7:11": [ + 147, + 148 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/10_4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/10_4.json index d59a6e28..967958bf 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/10_4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/10_4.json @@ -1 +1,47 @@ -{"12:11":true,"9:14":true,"10:14":true,"0:13":true,"10:12":156,"6:13":true,"3:0":true,"9:15":true,"0:0":true,"13:10":true,"7:14":true,"0:15":true,"7:13":true,"3:15":true,"6:14":true,"10:13":true,"0:14":true,"3:14":true,"6:15":true,"9:13":true,"4:14":true,"8:13":true,"5:14":true,"2:15":true,"1:0":true,"11:13":true,"13:11":true,"4:15":true,"0:1":true,"5:15":true,"2:14":true,"1:13":true,"15:0":true,"2:13":true,"1:14":true,"5:0":true,"14:0":160,"4:0":true,"2:0":true,"11:12":true,"5:13":true,"1:15":true,"12:12":true,"8:14":true,"4:13":true} \ No newline at end of file +{ + "12:11": true, + "9:14": true, + "10:14": true, + "0:13": true, + "10:12": 156, + "6:13": true, + "3:0": true, + "9:15": true, + "0:0": true, + "13:10": true, + "7:14": true, + "0:15": true, + "7:13": true, + "3:15": true, + "6:14": true, + "10:13": true, + "0:14": true, + "3:14": true, + "6:15": true, + "9:13": true, + "4:14": true, + "8:13": true, + "5:14": true, + "2:15": true, + "1:0": true, + "11:13": true, + "13:11": true, + "4:15": true, + "0:1": true, + "5:15": true, + "2:14": true, + "1:13": true, + "15:0": true, + "2:13": true, + "1:14": true, + "5:0": true, + "14:0": 160, + "4:0": true, + "2:0": true, + "11:12": true, + "5:13": true, + "1:15": true, + "12:12": true, + "8:14": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/10_5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/10_5.json index 44c446c1..075087ce 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/10_5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/10_5.json @@ -1 +1,96 @@ -{"1:1":true,"1:11":[170,189],"10:4":156,"2:7":true,"1:5":true,"0:13":[161,170],"4:9":[158,160],"3:10":[158,161],"2:9":true,"3:0":true,"0:6":true,"0:0":true,"0:10":true,"13:2":154,"3:12":true,"0:2":true,"0:15":true,"2:8":true,"0:12":[170,171],"15:1":true,"2:5":true,"0:3":true,"0:14":true,"5:8":158,"2:1":true,"2:11":[158,226],"2:12":[159,222],"7:7":[156,158],"2:2":true,"2:15":true,"0:8":true,"1:0":true,"6:8":[156,158],"2:4":true,"14:2":153,"0:1":true,"0:11":[171,190],"8:6":[156,158],"3:1":true,"2:14":true,"2:3":true,"1:13":true,"0:5":true,"2:13":true,"1:14":true,"5:0":true,"11:3":155,"1:4":true,"4:0":true,"2:0":true,"2:10":[192,223],"1:2":true,"1:15":true,"1:12":[160,169],"2:6":true} \ No newline at end of file +{ + "1:1": true, + "1:11": [ + 170, + 189 + ], + "10:4": 156, + "2:7": true, + "1:5": true, + "0:13": [ + 161, + 170 + ], + "4:9": [ + 158, + 160 + ], + "3:10": [ + 158, + 161 + ], + "2:9": true, + "3:0": true, + "0:6": true, + "0:0": true, + "0:10": true, + "13:2": 154, + "3:12": true, + "0:2": true, + "0:15": true, + "2:8": true, + "0:12": [ + 170, + 171 + ], + "15:1": true, + "2:5": true, + "0:3": true, + "0:14": true, + "5:8": 158, + "2:1": true, + "2:11": [ + 158, + 226 + ], + "2:12": [ + 159, + 222 + ], + "7:7": [ + 156, + 158 + ], + "2:2": true, + "2:15": true, + "0:8": true, + "1:0": true, + "6:8": [ + 156, + 158 + ], + "2:4": true, + "14:2": 153, + "0:1": true, + "0:11": [ + 171, + 190 + ], + "8:6": [ + 156, + 158 + ], + "3:1": true, + "2:14": true, + "2:3": true, + "1:13": true, + "0:5": true, + "2:13": true, + "1:14": true, + "5:0": true, + "11:3": 155, + "1:4": true, + "4:0": true, + "2:0": true, + "2:10": [ + 192, + 223 + ], + "1:2": true, + "1:15": true, + "1:12": [ + 160, + 169 + ], + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/11_1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/11_1.json index 0540c5c2..225a6e2d 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/11_1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/11_1.json @@ -1 +1,72 @@ -{"4:14":true,"1:11":true,"1:6":true,"3:13":true,"2:7":[162,166],"6:10":true,"5:9":158,"3:8":161,"5:14":true,"1:10":true,"1:5":true,"0:8":[166,167],"4:9":true,"5:12":true,"3:10":163,"6:13":true,"2:9":[164,166],"4:15":true,"0:6":167,"4:7":true,"4:12":[162,164],"3:6":true,"3:11":167,"1:8":true,"5:10":[157,161],"4:11":[162,163],"3:7":true,"3:12":165,"2:8":165,"5:11":true,"4:10":[162,164],"3:15":true,"1:4":true,"0:7":167,"1:9":166,"5:13":true,"2:10":true,"6:12":true,"3:9":[163,164],"1:12":true,"1:7":166,"0:4":true,"0:9":true,"4:8":true,"4:13":true,"2:6":162} \ No newline at end of file +{ + "4:14": true, + "1:11": true, + "1:6": true, + "3:13": true, + "2:7": [ + 162, + 166 + ], + "6:10": true, + "5:9": 158, + "3:8": 161, + "5:14": true, + "1:10": true, + "1:5": true, + "0:8": [ + 166, + 167 + ], + "4:9": true, + "5:12": true, + "3:10": 163, + "6:13": true, + "2:9": [ + 164, + 166 + ], + "4:15": true, + "0:6": 167, + "4:7": true, + "4:12": [ + 162, + 164 + ], + "3:6": true, + "3:11": 167, + "1:8": true, + "5:10": [ + 157, + 161 + ], + "4:11": [ + 162, + 163 + ], + "3:7": true, + "3:12": 165, + "2:8": 165, + "5:11": true, + "4:10": [ + 162, + 164 + ], + "3:15": true, + "1:4": true, + "0:7": 167, + "1:9": 166, + "5:13": true, + "2:10": true, + "6:12": true, + "3:9": [ + 163, + 164 + ], + "1:12": true, + "1:7": 166, + "0:4": true, + "0:9": true, + "4:8": true, + "4:13": true, + "2:6": 162 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/11_3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/11_3.json index ccf6e685..b60a43f7 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/11_3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/11_3.json @@ -1 +1,60 @@ -{"1:11":true,"0:13":true,"6:6":true,"4:9":true,"5:7":true,"3:10":true,"2:9":true,"0:0":true,"4:7":true,"3:6":true,"0:10":true,"1:8":true,"5:5":true,"4:1":true,"0:15":true,"6:4":true,"2:8":true,"5:1":true,"4:5":true,"0:12":true,"6:3":true,"1:9":true,"0:14":true,"7:6":true,"4:8":true,"2:11":true,"4:3":true,"5:4":true,"7:7":true,"6:5":true,"3:8":true,"5:3":true,"1:10":true,"0:8":true,"6:1":[156,158],"4:4":true,"6:8":true,"4:2":true,"0:11":true,"3:1":true,"5:2":true,"4:6":true,"3:7":true,"5:0":[155,164],"5:6":true,"0:7":true,"4:0":166,"2:10":true,"6:7":true,"3:9":true,"1:12":true,"0:9":true} \ No newline at end of file +{ + "1:11": true, + "0:13": true, + "6:6": true, + "4:9": true, + "5:7": true, + "3:10": true, + "2:9": true, + "0:0": true, + "4:7": true, + "3:6": true, + "0:10": true, + "1:8": true, + "5:5": true, + "4:1": true, + "0:15": true, + "6:4": true, + "2:8": true, + "5:1": true, + "4:5": true, + "0:12": true, + "6:3": true, + "1:9": true, + "0:14": true, + "7:6": true, + "4:8": true, + "2:11": true, + "4:3": true, + "5:4": true, + "7:7": true, + "6:5": true, + "3:8": true, + "5:3": true, + "1:10": true, + "0:8": true, + "6:1": [ + 156, + 158 + ], + "4:4": true, + "6:8": true, + "4:2": true, + "0:11": true, + "3:1": true, + "5:2": true, + "4:6": true, + "3:7": true, + "5:0": [ + 155, + 164 + ], + "5:6": true, + "0:7": true, + "4:0": 166, + "2:10": true, + "6:7": true, + "3:9": true, + "1:12": true, + "0:9": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/11_4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/11_4.json index b1c880dc..ee4dac0f 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/11_4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/11_4.json @@ -1 +1,17 @@ -{"2:15":true,"1:5":true,"4:9":true,"5:7":true,"0:1":true,"0:0":true,"0:5":true,"1:3":true,"0:2":true,"5:6":true,"1:4":true,"1:2":true,"0:3":true,"5:8":true,"4:8":true} \ No newline at end of file +{ + "2:15": true, + "1:5": true, + "4:9": true, + "5:7": true, + "0:1": true, + "0:0": true, + "0:5": true, + "1:3": true, + "0:2": true, + "5:6": true, + "1:4": true, + "1:2": true, + "0:3": true, + "5:8": true, + "4:8": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/1_-1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/1_-1.json index 07c13c50..5f3ff028 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/1_-1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/1_-1.json @@ -1 +1,119 @@ -{"7:12":196,"13:13":198,"7:15":[189,196],"10:12":199,"6:13":true,"9:15":[188,198],"9:12":198,"8:1":true,"10:15":[187,199],"14:1":[200,201],"13:15":198,"7:13":[189,196],"13:12":[198,202],"13:14":true,"10:13":[187,199],"8:9":173,"6:12":true,"6:15":true,"9:13":[188,198],"14:14":true,"8:13":[189,197],"2:12":true,"2:15":true,"15:14":196,"8:10":[172,174],"7:9":true,"15:12":[196,201],"14:15":true,"15:15":196,"14:12":[197,201],"1:13":true,"9:1":233,"8:12":197,"2:13":true,"8:15":[189,197],"15:13":196,"1:15":true,"1:12":true,"14:13":197,"9:3":147,"10:4":148,"3:13":true,"0:13":true,"8:5":true,"11:8":167,"13:0":153,"13:2":152,"3:12":true,"0:15":true,"3:15":true,"0:12":true,"13:3":157,"11:7":167,"12:7":166,"11:13":[186,199],"5:12":true,"4:15":true,"15:2":200,"4:12":true,"12:13":[185,199],"5:15":true,"11:14":226,"8:2":true,"14:0":198,"12:15":true,"11:12":true,"8:4":true,"5:13":true,"12:12":true,"11:15":true,"8:3":true,"4:13":true} \ No newline at end of file +{ + "7:12": 196, + "13:13": 198, + "7:15": [ + 189, + 196 + ], + "10:12": 199, + "6:13": true, + "9:15": [ + 188, + 198 + ], + "9:12": 198, + "8:1": true, + "10:15": [ + 187, + 199 + ], + "14:1": [ + 200, + 201 + ], + "13:15": 198, + "7:13": [ + 189, + 196 + ], + "13:12": [ + 198, + 202 + ], + "13:14": true, + "10:13": [ + 187, + 199 + ], + "8:9": 173, + "6:12": true, + "6:15": true, + "9:13": [ + 188, + 198 + ], + "14:14": true, + "8:13": [ + 189, + 197 + ], + "2:12": true, + "2:15": true, + "15:14": 196, + "8:10": [ + 172, + 174 + ], + "7:9": true, + "15:12": [ + 196, + 201 + ], + "14:15": true, + "15:15": 196, + "14:12": [ + 197, + 201 + ], + "1:13": true, + "9:1": 233, + "8:12": 197, + "2:13": true, + "8:15": [ + 189, + 197 + ], + "15:13": 196, + "1:15": true, + "1:12": true, + "14:13": 197, + "9:3": 147, + "10:4": 148, + "3:13": true, + "0:13": true, + "8:5": true, + "11:8": 167, + "13:0": 153, + "13:2": 152, + "3:12": true, + "0:15": true, + "3:15": true, + "0:12": true, + "13:3": 157, + "11:7": 167, + "12:7": 166, + "11:13": [ + 186, + 199 + ], + "5:12": true, + "4:15": true, + "15:2": 200, + "4:12": true, + "12:13": [ + 185, + 199 + ], + "5:15": true, + "11:14": 226, + "8:2": true, + "14:0": 198, + "12:15": true, + "11:12": true, + "8:4": true, + "5:13": true, + "12:12": true, + "11:15": true, + "8:3": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/1_-2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/1_-2.json index f84a02d8..fbe1c1b7 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/1_-2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/1_-2.json @@ -1 +1,36 @@ -{"3:0":true,"0:0":true,"8:1":234,"0:2":true,"3:3":true,"0:4":true,"4:3":true,"5:3":[177,178],"3:5":true,"9:7":192,"0:5":true,"5:0":true,"6:7":233,"9:8":[191,192],"1:5":true,"7:4":174,"4:7":true,"7:0":[195,223],"2:5":true,"4:8":true,"1:0":true,"1:3":true,"8:4":true,"3:9":true,"11:15":224} \ No newline at end of file +{ + "3:0": true, + "0:0": true, + "8:1": 234, + "0:2": true, + "3:3": true, + "0:4": true, + "4:3": true, + "5:3": [ + 177, + 178 + ], + "3:5": true, + "9:7": 192, + "0:5": true, + "5:0": true, + "6:7": 233, + "9:8": [ + 191, + 192 + ], + "1:5": true, + "7:4": 174, + "4:7": true, + "7:0": [ + 195, + 223 + ], + "2:5": true, + "4:8": true, + "1:0": true, + "1:3": true, + "8:4": true, + "3:9": true, + "11:15": 224 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/1_-3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/1_-3.json index 2585400c..9499a2e1 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/1_-3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/1_-3.json @@ -1 +1,151 @@ -{"9:14":[179,221],"1:1":true,"11:5":true,"2:7":true,"8:8":true,"6:10":true,"12:5":true,"10:14":[179,222],"2:9":true,"3:0":true,"0:6":true,"0:0":true,"8:1":true,"3:6":true,"7:14":true,"1:8":true,"14:1":true,"8:7":true,"5:5":true,"2:8":true,"4:5":true,"3:2":true,"15:1":true,"1:9":true,"13:14":true,"3:4":true,"8:9":true,"3:3":true,"1:7":true,"2:1":true,"11:0":true,"14:14":true,"12:6":true,"4:3":true,"7:7":true,"15:14":true,"12:0":true,"6:1":true,"11:6":true,"8:10":true,"6:8":true,"3:5":true,"13:1":true,"0:11":true,"5:2":true,"0:5":true,"12:3":true,"11:4":true,"7:8":true,"6:9":true,"4:6":true,"1:14":true,"5:6":true,"12:4":true,"11:3":true,"12:2":true,"2:10":true,"6:7":true,"11:2":true,"8:14":[179,220],"1:12":true,"7:1":true,"12:1":true,"6:0":true,"5:9":true,"1:5":true,"7:2":true,"6:6":true,"4:9":true,"11:1":true,"8:5":true,"5:7":true,"3:10":true,"7:4":true,"13:6":true,"13:0":true,"8:11":true,"4:7":true,"0:10":true,"7:3":true,"13:2":true,"6:4":true,"15:5":true,"14:5":true,"0:12":true,"6:3":true,"7:0":true,"13:3":true,"2:5":true,"0:14":true,"5:8":true,"13:4":true,"6:2":true,"7:6":true,"4:8":true,"15:4":true,"14:3":true,"1:6":true,"6:5":true,"3:8":true,"2:2":true,"0:8":true,"15:3":true,"1:0":true,"14:4":true,"2:4":true,"8:0":true,"14:2":true,"15:2":true,"8:6":true,"3:1":true,"13:5":true,"2:3":true,"15:0":true,"14:6":true,"12:14":[184,224],"5:10":true,"3:7":true,"1:3":true,"4:10":true,"11:14":[184,223],"8:2":true,"1:4":true,"0:7":true,"15:6":true,"14:0":true,"2:0":true,"8:4":true,"1:2":true,"7:5":true,"3:9":true,"8:3":true,"0:9":true,"2:6":true} \ No newline at end of file +{ + "9:14": [ + 179, + 221 + ], + "1:1": true, + "11:5": true, + "2:7": true, + "8:8": true, + "6:10": true, + "12:5": true, + "10:14": [ + 179, + 222 + ], + "2:9": true, + "3:0": true, + "0:6": true, + "0:0": true, + "8:1": true, + "3:6": true, + "7:14": true, + "1:8": true, + "14:1": true, + "8:7": true, + "5:5": true, + "2:8": true, + "4:5": true, + "3:2": true, + "15:1": true, + "1:9": true, + "13:14": true, + "3:4": true, + "8:9": true, + "3:3": true, + "1:7": true, + "2:1": true, + "11:0": true, + "14:14": true, + "12:6": true, + "4:3": true, + "7:7": true, + "15:14": true, + "12:0": true, + "6:1": true, + "11:6": true, + "8:10": true, + "6:8": true, + "3:5": true, + "13:1": true, + "0:11": true, + "5:2": true, + "0:5": true, + "12:3": true, + "11:4": true, + "7:8": true, + "6:9": true, + "4:6": true, + "1:14": true, + "5:6": true, + "12:4": true, + "11:3": true, + "12:2": true, + "2:10": true, + "6:7": true, + "11:2": true, + "8:14": [ + 179, + 220 + ], + "1:12": true, + "7:1": true, + "12:1": true, + "6:0": true, + "5:9": true, + "1:5": true, + "7:2": true, + "6:6": true, + "4:9": true, + "11:1": true, + "8:5": true, + "5:7": true, + "3:10": true, + "7:4": true, + "13:6": true, + "13:0": true, + "8:11": true, + "4:7": true, + "0:10": true, + "7:3": true, + "13:2": true, + "6:4": true, + "15:5": true, + "14:5": true, + "0:12": true, + "6:3": true, + "7:0": true, + "13:3": true, + "2:5": true, + "0:14": true, + "5:8": true, + "13:4": true, + "6:2": true, + "7:6": true, + "4:8": true, + "15:4": true, + "14:3": true, + "1:6": true, + "6:5": true, + "3:8": true, + "2:2": true, + "0:8": true, + "15:3": true, + "1:0": true, + "14:4": true, + "2:4": true, + "8:0": true, + "14:2": true, + "15:2": true, + "8:6": true, + "3:1": true, + "13:5": true, + "2:3": true, + "15:0": true, + "14:6": true, + "12:14": [ + 184, + 224 + ], + "5:10": true, + "3:7": true, + "1:3": true, + "4:10": true, + "11:14": [ + 184, + 223 + ], + "8:2": true, + "1:4": true, + "0:7": true, + "15:6": true, + "14:0": true, + "2:0": true, + "8:4": true, + "1:2": true, + "7:5": true, + "3:9": true, + "8:3": true, + "0:9": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/1_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/1_0.json index e9baac3c..82bb1ab6 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/1_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/1_0.json @@ -1 +1,89 @@ -{"3:0":true,"0:0":true,"13:10":214,"4:11":[146,151],"5:11":150,"11:0":[199,226],"12:0":[199,226],"3:11":145,"2:14":148,"1:13":145,"2:13":[145,149],"9:1":[174,175],"1:14":148,"15:10":213,"5:0":true,"14:10":[213,214],"4:0":true,"1:15":147,"6:0":true,"3:13":[149,150],"4:9":146,"3:10":145,"13:0":[198,226],"10:2":173,"3:12":145,"0:15":147,"10:0":[175,200],"9:0":[175,199],"7:0":[196,197],"1:0":true,"8:0":[197,198],"4:12":[146,150],"15:0":[196,202],"5:10":[147,152],"4:10":[146,147],"8:2":143,"14:0":true,"2:0":true,"4:13":149} \ No newline at end of file +{ + "3:0": true, + "0:0": true, + "13:10": 214, + "4:11": [ + 146, + 151 + ], + "5:11": 150, + "11:0": [ + 199, + 226 + ], + "12:0": [ + 199, + 226 + ], + "3:11": 145, + "2:14": 148, + "1:13": 145, + "2:13": [ + 145, + 149 + ], + "9:1": [ + 174, + 175 + ], + "1:14": 148, + "15:10": 213, + "5:0": true, + "14:10": [ + 213, + 214 + ], + "4:0": true, + "1:15": 147, + "6:0": true, + "3:13": [ + 149, + 150 + ], + "4:9": 146, + "3:10": 145, + "13:0": [ + 198, + 226 + ], + "10:2": 173, + "3:12": 145, + "0:15": 147, + "10:0": [ + 175, + 200 + ], + "9:0": [ + 175, + 199 + ], + "7:0": [ + 196, + 197 + ], + "1:0": true, + "8:0": [ + 197, + 198 + ], + "4:12": [ + 146, + 150 + ], + "15:0": [ + 196, + 202 + ], + "5:10": [ + 147, + 152 + ], + "4:10": [ + 146, + 147 + ], + "8:2": 143, + "14:0": true, + "2:0": true, + "4:13": 149 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/1_10.json b/src/main/resources/assets/notenoughupdates/dwarven_data/1_10.json index 1c619aa1..15873317 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/1_10.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/1_10.json @@ -1 +1,90 @@ -{"11:5":true,"7:12":true,"13:13":true,"12:5":true,"10:12":true,"3:0":true,"8:1":true,"14:1":true,"13:12":true,"3:2":127,"15:1":true,"1:9":true,"15:8":true,"13:14":true,"10:13":true,"14:8":true,"9:13":true,"2:1":true,"12:6":true,"4:3":127,"5:4":true,"5:3":true,"13:8":true,"11:6":true,"10:7":true,"13:1":true,"4:2":[127,202],"14:12":true,"9:7":true,"5:2":true,"9:1":true,"8:12":true,"13:7":true,"12:4":true,"15:13":true,"12:2":true,"2:10":127,"10:8":true,"11:2":true,"7:1":true,"14:13":true,"12:1":true,"10:4":true,"10:3":true,"7:2":true,"11:8":true,"13:6":true,"9:2":true,"10:2":true,"12:8":true,"13:2":true,"9:6":true,"15:5":true,"14:5":true,"10:6":true,"5:1":201,"9:0":true,"6:3":127,"7:0":true,"13:3":true,"11:7":true,"13:4":true,"12:7":true,"6:2":127,"7:6":true,"15:4":true,"0:8":true,"15:3":true,"1:0":127,"14:4":true,"11:13":true,"8:0":true,"14:2":true,"15:2":true,"8:6":true,"3:1":true,"14:6":true,"12:14":true,"10:5":true,"9:5":true,"11:14":true,"15:6":true,"14:0":true,"2:0":true,"11:12":true} \ No newline at end of file +{ + "11:5": true, + "7:12": true, + "13:13": true, + "12:5": true, + "10:12": true, + "3:0": true, + "8:1": true, + "14:1": true, + "13:12": true, + "3:2": 127, + "15:1": true, + "1:9": true, + "15:8": true, + "13:14": true, + "10:13": true, + "14:8": true, + "9:13": true, + "2:1": true, + "12:6": true, + "4:3": 127, + "5:4": true, + "5:3": true, + "13:8": true, + "11:6": true, + "10:7": true, + "13:1": true, + "4:2": [ + 127, + 202 + ], + "14:12": true, + "9:7": true, + "5:2": true, + "9:1": true, + "8:12": true, + "13:7": true, + "12:4": true, + "15:13": true, + "12:2": true, + "2:10": 127, + "10:8": true, + "11:2": true, + "7:1": true, + "14:13": true, + "12:1": true, + "10:4": true, + "10:3": true, + "7:2": true, + "11:8": true, + "13:6": true, + "9:2": true, + "10:2": true, + "12:8": true, + "13:2": true, + "9:6": true, + "15:5": true, + "14:5": true, + "10:6": true, + "5:1": 201, + "9:0": true, + "6:3": 127, + "7:0": true, + "13:3": true, + "11:7": true, + "13:4": true, + "12:7": true, + "6:2": 127, + "7:6": true, + "15:4": true, + "0:8": true, + "15:3": true, + "1:0": 127, + "14:4": true, + "11:13": true, + "8:0": true, + "14:2": true, + "15:2": true, + "8:6": true, + "3:1": true, + "14:6": true, + "12:14": true, + "10:5": true, + "9:5": true, + "11:14": true, + "15:6": true, + "14:0": true, + "2:0": true, + "11:12": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/1_7.json b/src/main/resources/assets/notenoughupdates/dwarven_data/1_7.json index 8c280ebc..a961528d 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/1_7.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/1_7.json @@ -1 +1,7 @@ -{"13:15":true,"10:14":true,"12:15":true,"11:15":true,"10:15":true} \ No newline at end of file +{ + "13:15": true, + "10:14": true, + "12:15": true, + "11:15": true, + "10:15": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/1_8.json b/src/main/resources/assets/notenoughupdates/dwarven_data/1_8.json index 84dcdb8b..646a75b5 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/1_8.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/1_8.json @@ -1 +1,44 @@ -{"12:1":true,"12:11":true,"5:9":true,"13:13":true,"7:15":true,"11:1":true,"11:11":true,"6:13":true,"9:15":true,"13:0":true,"8:11":true,"10:15":true,"1:8":true,"13:15":true,"7:13":true,"2:8":true,"10:0":true,"15:8":true,"10:13":true,"6:15":true,"14:8":true,"4:8":true,"9:13":true,"11:0":true,"8:13":true,"3:8":true,"0:8":true,"12:0":true,"6:11":true,"11:13":true,"5:15":true,"12:13":true,"9:1":true,"9:11":true,"10:1":true,"10:11":true,"8:15":true,"12:15":true,"5:13":true,"11:15":true,"13:9":true,"7:11":true} \ No newline at end of file +{ + "12:1": true, + "12:11": true, + "5:9": true, + "13:13": true, + "7:15": true, + "11:1": true, + "11:11": true, + "6:13": true, + "9:15": true, + "13:0": true, + "8:11": true, + "10:15": true, + "1:8": true, + "13:15": true, + "7:13": true, + "2:8": true, + "10:0": true, + "15:8": true, + "10:13": true, + "6:15": true, + "14:8": true, + "4:8": true, + "9:13": true, + "11:0": true, + "8:13": true, + "3:8": true, + "0:8": true, + "12:0": true, + "6:11": true, + "11:13": true, + "5:15": true, + "12:13": true, + "9:1": true, + "9:11": true, + "10:1": true, + "10:11": true, + "8:15": true, + "12:15": true, + "5:13": true, + "11:15": true, + "13:9": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/1_9.json b/src/main/resources/assets/notenoughupdates/dwarven_data/1_9.json index 2b778aa2..e84aa3ad 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/1_9.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/1_9.json @@ -1 +1,96 @@ -{"15:9":true,"8:8":true,"13:13":true,"7:15":127,"14:9":true,"6:13":127,"15:7":true,"7:14":127,"10:10":true,"8:7":true,"5:5":true,"0:2":true,"9:10":true,"4:5":true,"13:12":true,"3:2":true,"6:14":127,"15:8":true,"13:14":true,"3:4":true,"8:9":true,"7:10":[117,118],"1:7":true,"0:4":true,"14:8":true,"14:14":true,"10:9":true,"7:7":true,"2:15":true,"13:8":true,"15:14":true,"9:9":true,"8:10":true,"7:9":119,"6:8":120,"3:5":true,"15:12":true,"13:1":true,"4:2":true,"15:15":true,"7:8":true,"15:10":true,"14:10":true,"5:6":true,"8:15":true,"15:13":true,"6:7":true,"1:12":[116,117],"13:9":true,"14:13":true,"6:6":true,"5:7":true,"8:11":117,"12:8":true,"14:11":true,"11:9":true,"5:1":true,"3:15":true,"0:12":[117,118],"12:9":true,"3:14":true,"7:6":true,"4:14":true,"11:10":true,"6:5":true,"5:14":127,"2:2":true,"0:8":true,"15:3":true,"11:13":true,"5:12":true,"2:4":true,"14:2":true,"13:11":true,"15:2":true,"12:13":true,"12:14":true,"9:11":true,"1:4":true,"15:6":true,"5:13":true,"1:2":true,"11:15":true,"4:13":true,"2:6":true} \ No newline at end of file +{ + "15:9": true, + "8:8": true, + "13:13": true, + "7:15": 127, + "14:9": true, + "6:13": 127, + "15:7": true, + "7:14": 127, + "10:10": true, + "8:7": true, + "5:5": true, + "0:2": true, + "9:10": true, + "4:5": true, + "13:12": true, + "3:2": true, + "6:14": 127, + "15:8": true, + "13:14": true, + "3:4": true, + "8:9": true, + "7:10": [ + 117, + 118 + ], + "1:7": true, + "0:4": true, + "14:8": true, + "14:14": true, + "10:9": true, + "7:7": true, + "2:15": true, + "13:8": true, + "15:14": true, + "9:9": true, + "8:10": true, + "7:9": 119, + "6:8": 120, + "3:5": true, + "15:12": true, + "13:1": true, + "4:2": true, + "15:15": true, + "7:8": true, + "15:10": true, + "14:10": true, + "5:6": true, + "8:15": true, + "15:13": true, + "6:7": true, + "1:12": [ + 116, + 117 + ], + "13:9": true, + "14:13": true, + "6:6": true, + "5:7": true, + "8:11": 117, + "12:8": true, + "14:11": true, + "11:9": true, + "5:1": true, + "3:15": true, + "0:12": [ + 117, + 118 + ], + "12:9": true, + "3:14": true, + "7:6": true, + "4:14": true, + "11:10": true, + "6:5": true, + "5:14": 127, + "2:2": true, + "0:8": true, + "15:3": true, + "11:13": true, + "5:12": true, + "2:4": true, + "14:2": true, + "13:11": true, + "15:2": true, + "12:13": true, + "12:14": true, + "9:11": true, + "1:4": true, + "15:6": true, + "5:13": true, + "1:2": true, + "11:15": true, + "4:13": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/2_-1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/2_-1.json index 70315fcb..d8d42d25 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/2_-1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/2_-1.json @@ -1 +1,18 @@ -{"10:12":true,"9:12":true,"13:12":true,"11:0":196,"9:9":true,"0:11":205,"10:8":true,"9:8":true,"1:11":205,"8:11":true,"14:11":true,"10:0":197,"15:11":true,"11:12":true,"12:12":true,"7:11":true} \ No newline at end of file +{ + "10:12": true, + "9:12": true, + "13:12": true, + "11:0": 196, + "9:9": true, + "0:11": 205, + "10:8": true, + "9:8": true, + "1:11": 205, + "8:11": true, + "14:11": true, + "10:0": 197, + "15:11": true, + "11:12": true, + "12:12": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/2_-2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/2_-2.json index ea803f53..511a2a33 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/2_-2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/2_-2.json @@ -1 +1,48 @@ -{"12:11":233,"13:13":true,"6:13":true,"13:0":true,"13:10":234,"14:11":true,"14:1":true,"15:5":[174,175],"13:12":true,"15:1":true,"6:12":227,"15:4":[173,174],"15:3":[173,174],"9:9":[213,215],"11:6":[211,213],"10:7":[211,212],"8:10":214,"13:11":true,"13:1":true,"14:12":true,"12:13":true,"15:0":true,"15:6":[174,175],"14:0":true,"12:12":234} \ No newline at end of file +{ + "12:11": 233, + "13:13": true, + "6:13": true, + "13:0": true, + "13:10": 234, + "14:11": true, + "14:1": true, + "15:5": [ + 174, + 175 + ], + "13:12": true, + "15:1": true, + "6:12": 227, + "15:4": [ + 173, + 174 + ], + "15:3": [ + 173, + 174 + ], + "9:9": [ + 213, + 215 + ], + "11:6": [ + 211, + 213 + ], + "10:7": [ + 211, + 212 + ], + "8:10": 214, + "13:11": true, + "13:1": true, + "14:12": true, + "12:13": true, + "15:0": true, + "15:6": [ + 174, + 175 + ], + "14:0": true, + "12:12": 234 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/2_-4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/2_-4.json index 06c33ad1..9a9539b0 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/2_-4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/2_-4.json @@ -1 +1,71 @@ -{"9:14":true,"7:12":true,"5:9":true,"13:13":true,"4:9":true,"11:1":true,"9:4":true,"7:4":true,"9:12":true,"0:10":true,"7:14":true,"9:6":true,"4:1":true,"3:12":true,"0:2":true,"7:13":true,"6:4":true,"9:10":true,"5:1":true,"13:12":true,"3:15":true,"3:2":true,"9:0":true,"6:14":true,"6:3":true,"7:0":true,"3:4":true,"0:3":true,"7:10":true,"5:8":true,"0:4":true,"6:15":true,"6:2":true,"7:6":true,"4:8":true,"9:13":true,"11:0":true,"4:14":true,"4:3":true,"5:4":true,"7:7":true,"3:8":true,"5:14":true,"5:3":true,"9:9":true,"4:4":true,"7:9":true,"3:5":true,"4:15":true,"4:2":true,"0:11":true,"9:7":true,"3:1":true,"3:11":true,"5:15":true,"5:2":true,"9:11":true,"9:1":true,"7:8":true,"6:9":true,"5:10":true,"9:5":true,"4:10":true,"7:5":true,"3:9":true,"0:9":true,"9:8":true,"7:11":true,"7:1":true} \ No newline at end of file +{ + "9:14": true, + "7:12": true, + "5:9": true, + "13:13": true, + "4:9": true, + "11:1": true, + "9:4": true, + "7:4": true, + "9:12": true, + "0:10": true, + "7:14": true, + "9:6": true, + "4:1": true, + "3:12": true, + "0:2": true, + "7:13": true, + "6:4": true, + "9:10": true, + "5:1": true, + "13:12": true, + "3:15": true, + "3:2": true, + "9:0": true, + "6:14": true, + "6:3": true, + "7:0": true, + "3:4": true, + "0:3": true, + "7:10": true, + "5:8": true, + "0:4": true, + "6:15": true, + "6:2": true, + "7:6": true, + "4:8": true, + "9:13": true, + "11:0": true, + "4:14": true, + "4:3": true, + "5:4": true, + "7:7": true, + "3:8": true, + "5:14": true, + "5:3": true, + "9:9": true, + "4:4": true, + "7:9": true, + "3:5": true, + "4:15": true, + "4:2": true, + "0:11": true, + "9:7": true, + "3:1": true, + "3:11": true, + "5:15": true, + "5:2": true, + "9:11": true, + "9:1": true, + "7:8": true, + "6:9": true, + "5:10": true, + "9:5": true, + "4:10": true, + "7:5": true, + "3:9": true, + "0:9": true, + "9:8": true, + "7:11": true, + "7:1": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/2_-5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/2_-5.json index b7f553d7..2390fe19 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/2_-5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/2_-5.json @@ -1 +1,60 @@ -{"9:14":true,"7:12":true,"6:10":true,"5:9":true,"12:5":true,"7:15":true,"4:9":true,"11:11":true,"11:8":true,"6:13":true,"9:15":true,"9:12":true,"4:7":true,"7:14":true,"4:11":true,"0:2":true,"11:9":true,"7:13":true,"9:10":true,"5:11":true,"3:2":true,"9:0":true,"3:4":true,"0:3":true,"0:14":true,"7:10":true,"6:12":true,"5:8":true,"0:4":true,"4:8":true,"9:13":true,"11:10":true,"5:4":true,"0:8":true,"6:11":true,"4:4":true,"11:13":true,"7:9":true,"6:8":true,"5:12":true,"3:5":true,"2:4":true,"0:1":true,"4:12":true,"3:1":true,"9:11":true,"7:8":true,"6:9":true,"5:10":true,"4:10":true,"11:14":true,"1:4":true,"11:12":true,"5:13":true,"11:15":true,"7:11":true,"7:1":true,"4:13":true} \ No newline at end of file +{ + "9:14": true, + "7:12": true, + "6:10": true, + "5:9": true, + "12:5": true, + "7:15": true, + "4:9": true, + "11:11": true, + "11:8": true, + "6:13": true, + "9:15": true, + "9:12": true, + "4:7": true, + "7:14": true, + "4:11": true, + "0:2": true, + "11:9": true, + "7:13": true, + "9:10": true, + "5:11": true, + "3:2": true, + "9:0": true, + "3:4": true, + "0:3": true, + "0:14": true, + "7:10": true, + "6:12": true, + "5:8": true, + "0:4": true, + "4:8": true, + "9:13": true, + "11:10": true, + "5:4": true, + "0:8": true, + "6:11": true, + "4:4": true, + "11:13": true, + "7:9": true, + "6:8": true, + "5:12": true, + "3:5": true, + "2:4": true, + "0:1": true, + "4:12": true, + "3:1": true, + "9:11": true, + "7:8": true, + "6:9": true, + "5:10": true, + "4:10": true, + "11:14": true, + "1:4": true, + "11:12": true, + "5:13": true, + "11:15": true, + "7:11": true, + "7:1": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/2_-7.json b/src/main/resources/assets/notenoughupdates/dwarven_data/2_-7.json index 175d154e..c1e5c107 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/2_-7.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/2_-7.json @@ -1 +1,40 @@ -{"12:11":true,"1:11":true,"2:7":true,"2:12":true,"13:13":true,"1:10":true,"13:8":true,"10:7":true,"5:7":true,"13:11":true,"9:7":true,"4:7":true,"13:10":true,"12:13":true,"10:15":true,"5:15":true,"1:13":true,"1:8":true,"13:15":true,"8:7":true,"2:13":true,"1:14":true,"0:15":true,"11:9":true,"13:12":true,"13:7":true,"3:15":true,"1:9":true,"13:14":true,"1:15":true,"6:7":true,"3:9":true,"12:7":true,"12:12":true,"1:12":true,"1:7":true,"13:9":true,"2:11":true} \ No newline at end of file +{ + "12:11": true, + "1:11": true, + "2:7": true, + "2:12": true, + "13:13": true, + "1:10": true, + "13:8": true, + "10:7": true, + "5:7": true, + "13:11": true, + "9:7": true, + "4:7": true, + "13:10": true, + "12:13": true, + "10:15": true, + "5:15": true, + "1:13": true, + "1:8": true, + "13:15": true, + "8:7": true, + "2:13": true, + "1:14": true, + "0:15": true, + "11:9": true, + "13:12": true, + "13:7": true, + "3:15": true, + "1:9": true, + "13:14": true, + "1:15": true, + "6:7": true, + "3:9": true, + "12:7": true, + "12:12": true, + "1:12": true, + "1:7": true, + "13:9": true, + "2:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/2_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/2_0.json index 046b2dbc..e6bb771d 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/2_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/2_0.json @@ -1 +1,87 @@ -{"1:1":true,"3:0":[196,202],"0:0":[193,203],"8:1":205,"14:1":205,"15:1":205,"11:0":[157,202],"5:4":true,"7:7":true,"12:0":[141,202],"4:4":true,"9:1":159,"5:0":true,"4:0":true,"12:2":true,"11:2":true,"7:1":205,"6:0":true,"7:2":[154,158],"6:6":true,"11:1":156,"13:0":[141,202],"10:2":true,"13:2":[157,159],"6:4":true,"10:0":[142,202],"9:0":[143,202],"6:3":true,"7:0":[152,202],"6:2":157,"1:0":true,"8:0":[150,202],"14:2":158,"0:1":true,"15:0":[198,202],"11:14":214,"14:0":[198,202],"2:0":[196,202],"12:15":true,"11:15":[212,213]} \ No newline at end of file +{ + "1:1": true, + "3:0": [ + 196, + 202 + ], + "0:0": [ + 193, + 203 + ], + "8:1": 205, + "14:1": 205, + "15:1": 205, + "11:0": [ + 157, + 202 + ], + "5:4": true, + "7:7": true, + "12:0": [ + 141, + 202 + ], + "4:4": true, + "9:1": 159, + "5:0": true, + "4:0": true, + "12:2": true, + "11:2": true, + "7:1": 205, + "6:0": true, + "7:2": [ + 154, + 158 + ], + "6:6": true, + "11:1": 156, + "13:0": [ + 141, + 202 + ], + "10:2": true, + "13:2": [ + 157, + 159 + ], + "6:4": true, + "10:0": [ + 142, + 202 + ], + "9:0": [ + 143, + 202 + ], + "6:3": true, + "7:0": [ + 152, + 202 + ], + "6:2": 157, + "1:0": true, + "8:0": [ + 150, + 202 + ], + "14:2": 158, + "0:1": true, + "15:0": [ + 198, + 202 + ], + "11:14": 214, + "14:0": [ + 198, + 202 + ], + "2:0": [ + 196, + 202 + ], + "12:15": true, + "11:15": [ + 212, + 213 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/2_10.json b/src/main/resources/assets/notenoughupdates/dwarven_data/2_10.json index 59e038d9..18003fa5 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/2_10.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/2_10.json @@ -1 +1,278 @@ -{"1:1":true,"8:8":[139,141],"6:10":true,"13:13":true,"0:0":true,"3:6":true,"14:1":true,"13:15":true,"8:7":true,"5:5":154,"4:11":[165,166],"0:2":true,"5:11":[134,176],"13:12":true,"3:2":182,"15:1":true,"13:14":true,"0:3":true,"8:9":true,"7:10":true,"0:4":true,"2:1":true,"14:14":true,"5:4":154,"10:9":true,"7:7":true,"5:3":155,"15:14":true,"9:9":141,"10:7":true,"8:10":true,"7:9":true,"3:5":[169,173],"15:12":true,"14:15":true,"13:1":true,"15:15":true,"14:12":true,"9:7":true,"0:5":true,"7:8":true,"6:9":[134,135],"15:13":true,"10:8":true,"6:7":true,"1:12":true,"9:8":true,"14:13":true,"1:5":true,"11:8":true,"13:6":[168,169],"13:0":true,"12:8":true,"14:11":true,"11:9":true,"15:5":[146,173],"14:5":[144,174],"0:12":true,"15:11":true,"12:9":true,"13:3":true,"2:5":true,"13:4":true,"15:4":[147,149],"14:3":true,"4:14":146,"11:10":true,"12:10":true,"5:14":true,"2:2":183,"1:0":true,"5:12":[134,176],"2:4":true,"14:2":true,"13:11":true,"0:1":true,"15:2":true,"4:12":[132,165],"13:5":[145,173],"2:3":[180,183],"15:0":true,"14:6":[168,169],"1:3":true,"1:4":true,"15:6":[168,172],"14:0":true,"2:0":true,"5:13":[167,176],"1:2":true,"4:13":[164,166],"2:6":true,"15:9":true,"12:11":true,"11:5":true,"2:7":true,"12:5":[148,170],"14:9":true,"11:11":true,"6:13":[169,174],"2:9":true,"13:10":true,"10:15":true,"1:8":true,"2:8":true,"15:8":true,"6:12":[140,174],"1:7":true,"14:8":158,"13:8":true,"6:1":156,"12:3":true,"11:4":[139,170],"15:10":true,"14:10":true,"10:1":[171,178],"12:4":[142,174],"11:3":[135,176],"12:2":true,"11:2":[131,178],"13:9":true,"7:1":[154,155],"12:1":true,"10:4":[134,138],"5:9":[170,174],"10:3":[131,173],"6:6":true,"4:9":[166,176],"11:1":[169,170],"9:4":132,"8:5":true,"7:4":true,"4:7":[168,169],"10:2":[174,176],"6:4":true,"10:0":[174,178],"10:6":true,"6:3":true,"7:0":true,"6:2":true,"7:6":true,"4:8":[167,175],"6:5":true,"3:8":true,"0:8":true,"6:11":[136,172],"11:13":true,"8:6":true,"12:13":true,"3:7":true,"12:14":true,"10:5":true,"5:10":[168,176],"9:5":true,"4:10":[166,177],"11:14":true,"12:15":true,"11:12":true,"7:5":true,"3:9":true,"12:12":true,"11:15":true,"7:11":true} \ No newline at end of file +{ + "1:1": true, + "8:8": [ + 139, + 141 + ], + "6:10": true, + "13:13": true, + "0:0": true, + "3:6": true, + "14:1": true, + "13:15": true, + "8:7": true, + "5:5": 154, + "4:11": [ + 165, + 166 + ], + "0:2": true, + "5:11": [ + 134, + 176 + ], + "13:12": true, + "3:2": 182, + "15:1": true, + "13:14": true, + "0:3": true, + "8:9": true, + "7:10": true, + "0:4": true, + "2:1": true, + "14:14": true, + "5:4": 154, + "10:9": true, + "7:7": true, + "5:3": 155, + "15:14": true, + "9:9": 141, + "10:7": true, + "8:10": true, + "7:9": true, + "3:5": [ + 169, + 173 + ], + "15:12": true, + "14:15": true, + "13:1": true, + "15:15": true, + "14:12": true, + "9:7": true, + "0:5": true, + "7:8": true, + "6:9": [ + 134, + 135 + ], + "15:13": true, + "10:8": true, + "6:7": true, + "1:12": true, + "9:8": true, + "14:13": true, + "1:5": true, + "11:8": true, + "13:6": [ + 168, + 169 + ], + "13:0": true, + "12:8": true, + "14:11": true, + "11:9": true, + "15:5": [ + 146, + 173 + ], + "14:5": [ + 144, + 174 + ], + "0:12": true, + "15:11": true, + "12:9": true, + "13:3": true, + "2:5": true, + "13:4": true, + "15:4": [ + 147, + 149 + ], + "14:3": true, + "4:14": 146, + "11:10": true, + "12:10": true, + "5:14": true, + "2:2": 183, + "1:0": true, + "5:12": [ + 134, + 176 + ], + "2:4": true, + "14:2": true, + "13:11": true, + "0:1": true, + "15:2": true, + "4:12": [ + 132, + 165 + ], + "13:5": [ + 145, + 173 + ], + "2:3": [ + 180, + 183 + ], + "15:0": true, + "14:6": [ + 168, + 169 + ], + "1:3": true, + "1:4": true, + "15:6": [ + 168, + 172 + ], + "14:0": true, + "2:0": true, + "5:13": [ + 167, + 176 + ], + "1:2": true, + "4:13": [ + 164, + 166 + ], + "2:6": true, + "15:9": true, + "12:11": true, + "11:5": true, + "2:7": true, + "12:5": [ + 148, + 170 + ], + "14:9": true, + "11:11": true, + "6:13": [ + 169, + 174 + ], + "2:9": true, + "13:10": true, + "10:15": true, + "1:8": true, + "2:8": true, + "15:8": true, + "6:12": [ + 140, + 174 + ], + "1:7": true, + "14:8": 158, + "13:8": true, + "6:1": 156, + "12:3": true, + "11:4": [ + 139, + 170 + ], + "15:10": true, + "14:10": true, + "10:1": [ + 171, + 178 + ], + "12:4": [ + 142, + 174 + ], + "11:3": [ + 135, + 176 + ], + "12:2": true, + "11:2": [ + 131, + 178 + ], + "13:9": true, + "7:1": [ + 154, + 155 + ], + "12:1": true, + "10:4": [ + 134, + 138 + ], + "5:9": [ + 170, + 174 + ], + "10:3": [ + 131, + 173 + ], + "6:6": true, + "4:9": [ + 166, + 176 + ], + "11:1": [ + 169, + 170 + ], + "9:4": 132, + "8:5": true, + "7:4": true, + "4:7": [ + 168, + 169 + ], + "10:2": [ + 174, + 176 + ], + "6:4": true, + "10:0": [ + 174, + 178 + ], + "10:6": true, + "6:3": true, + "7:0": true, + "6:2": true, + "7:6": true, + "4:8": [ + 167, + 175 + ], + "6:5": true, + "3:8": true, + "0:8": true, + "6:11": [ + 136, + 172 + ], + "11:13": true, + "8:6": true, + "12:13": true, + "3:7": true, + "12:14": true, + "10:5": true, + "5:10": [ + 168, + 176 + ], + "9:5": true, + "4:10": [ + 166, + 177 + ], + "11:14": true, + "12:15": true, + "11:12": true, + "7:5": true, + "3:9": true, + "12:12": true, + "11:15": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/2_3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/2_3.json index 86d84cb3..e0fb583d 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/2_3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/2_3.json @@ -1 +1,3 @@ -{"1:4":true} \ No newline at end of file +{ + "1:4": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/2_4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/2_4.json index 182d0153..3f26cae9 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/2_4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/2_4.json @@ -1 +1,145 @@ -{"15:9":true,"1:1":true,"2:7":true,"8:8":true,"7:12":true,"14:9":true,"10:12":true,"6:13":true,"2:9":true,"15:7":true,"0:6":true,"14:7":true,"9:12":true,"3:6":true,"1:8":true,"10:10":true,"8:7":true,"4:11":true,"7:13":true,"2:8":true,"9:10":true,"5:11":true,"3:2":true,"1:9":true,"15:8":true,"10:13":true,"3:4":true,"0:3":true,"8:9":true,"6:12":true,"1:7":true,"14:8":true,"9:13":true,"12:6":true,"4:3":true,"8:13":true,"5:4":true,"2:12":true,"10:9":true,"7:7":true,"5:3":true,"1:10":true,"13:8":true,"9:9":true,"11:6":true,"4:4":true,"10:7":true,"8:10":true,"7:9":true,"4:2":true,"0:11":true,"9:7":true,"3:11":true,"5:2":true,"1:13":true,"8:12":true,"7:8":true,"6:9":true,"4:6":true,"2:13":true,"5:6":true,"13:7":true,"2:10":true,"10:8":true,"6:7":true,"1:12":true,"13:9":true,"9:8":true,"9:3":true,"1:11":true,"10:4":true,"3:13":true,"10:3":true,"0:13":true,"7:2":true,"6:6":true,"4:9":true,"9:4":true,"5:7":true,"3:10":true,"11:8":true,"13:6":true,"9:2":true,"8:11":true,"4:7":true,"10:2":true,"0:10":true,"12:8":true,"13:2":true,"9:6":true,"3:12":true,"11:9":true,"15:5":true,"14:5":true,"10:6":true,"0:12":true,"12:9":true,"13:3":true,"11:7":true,"13:4":true,"12:7":true,"6:2":true,"7:6":true,"4:8":true,"2:11":true,"15:4":true,"14:3":true,"1:6":true,"3:8":true,"0:8":true,"15:3":true,"6:11":true,"14:4":true,"5:12":true,"14:2":[154,157],"0:1":true,"15:2":[154,157],"8:6":true,"4:12":true,"13:5":true,"14:6":true,"9:11":true,"5:10":true,"10:5":true,"3:7":true,"10:11":true,"9:5":true,"4:10":true,"8:2":true,"0:7":true,"15:6":true,"5:13":true,"3:9":true,"0:9":true,"7:11":true,"4:13":true,"2:6":true} \ No newline at end of file +{ + "15:9": true, + "1:1": true, + "2:7": true, + "8:8": true, + "7:12": true, + "14:9": true, + "10:12": true, + "6:13": true, + "2:9": true, + "15:7": true, + "0:6": true, + "14:7": true, + "9:12": true, + "3:6": true, + "1:8": true, + "10:10": true, + "8:7": true, + "4:11": true, + "7:13": true, + "2:8": true, + "9:10": true, + "5:11": true, + "3:2": true, + "1:9": true, + "15:8": true, + "10:13": true, + "3:4": true, + "0:3": true, + "8:9": true, + "6:12": true, + "1:7": true, + "14:8": true, + "9:13": true, + "12:6": true, + "4:3": true, + "8:13": true, + "5:4": true, + "2:12": true, + "10:9": true, + "7:7": true, + "5:3": true, + "1:10": true, + "13:8": true, + "9:9": true, + "11:6": true, + "4:4": true, + "10:7": true, + "8:10": true, + "7:9": true, + "4:2": true, + "0:11": true, + "9:7": true, + "3:11": true, + "5:2": true, + "1:13": true, + "8:12": true, + "7:8": true, + "6:9": true, + "4:6": true, + "2:13": true, + "5:6": true, + "13:7": true, + "2:10": true, + "10:8": true, + "6:7": true, + "1:12": true, + "13:9": true, + "9:8": true, + "9:3": true, + "1:11": true, + "10:4": true, + "3:13": true, + "10:3": true, + "0:13": true, + "7:2": true, + "6:6": true, + "4:9": true, + "9:4": true, + "5:7": true, + "3:10": true, + "11:8": true, + "13:6": true, + "9:2": true, + "8:11": true, + "4:7": true, + "10:2": true, + "0:10": true, + "12:8": true, + "13:2": true, + "9:6": true, + "3:12": true, + "11:9": true, + "15:5": true, + "14:5": true, + "10:6": true, + "0:12": true, + "12:9": true, + "13:3": true, + "11:7": true, + "13:4": true, + "12:7": true, + "6:2": true, + "7:6": true, + "4:8": true, + "2:11": true, + "15:4": true, + "14:3": true, + "1:6": true, + "3:8": true, + "0:8": true, + "15:3": true, + "6:11": true, + "14:4": true, + "5:12": true, + "14:2": [ + 154, + 157 + ], + "0:1": true, + "15:2": [ + 154, + 157 + ], + "8:6": true, + "4:12": true, + "13:5": true, + "14:6": true, + "9:11": true, + "5:10": true, + "10:5": true, + "3:7": true, + "10:11": true, + "9:5": true, + "4:10": true, + "8:2": true, + "0:7": true, + "15:6": true, + "5:13": true, + "3:9": true, + "0:9": true, + "7:11": true, + "4:13": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/2_6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/2_6.json index 458177bc..71567b5a 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/2_6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/2_6.json @@ -1 +1,132 @@ -{"15:9":true,"1:1":true,"11:5":true,"6:10":true,"12:5":true,"14:9":true,"15:7":true,"3:0":true,"0:6":true,"0:0":true,"14:7":true,"8:1":true,"3:6":true,"13:10":true,"10:10":true,"5:5":true,"0:2":true,"9:10":true,"5:11":true,"4:5":true,"3:2":true,"15:8":true,"3:4":true,"0:3":true,"7:10":true,"3:3":true,"0:4":true,"6:15":true,"14:8":true,"2:1":true,"12:6":true,"4:3":true,"10:9":true,"13:8":true,"9:9":true,"6:1":true,"11:6":true,"4:4":true,"10:7":true,"8:10":true,"3:5":true,"4:2":true,"0:11":true,"9:7":true,"5:2":true,"0:5":true,"12:3":true,"11:4":true,"9:1":true,"4:6":true,"15:10":true,"5:0":true,"14:10":true,"10:1":true,"5:6":true,"13:7":true,"12:4":true,"11:3":true,"4:0":true,"10:8":true,"13:9":true,"9:8":true,"7:1":true,"9:3":true,"6:0":true,"1:11":true,"10:4":true,"5:9":true,"10:3":true,"1:5":true,"6:6":true,"4:9":true,"9:4":true,"8:5":true,"3:10":true,"7:4":true,"13:6":true,"9:2":true,"10:2":true,"7:3":true,"9:6":true,"4:1":true,"15:5":true,"10:0":true,"14:5":true,"10:6":true,"5:1":true,"9:0":true,"6:3":true,"7:0":true,"13:3":true,"2:5":true,"5:8":true,"13:4":true,"7:6":true,"4:8":true,"15:4":true,"14:3":true,"1:6":true,"6:5":true,"3:8":true,"2:2":true,"15:3":true,"1:0":true,"14:4":true,"5:12":true,"2:4":true,"8:0":true,"0:1":true,"8:6":true,"3:1":true,"13:5":true,"2:3":true,"14:6":true,"10:5":true,"5:10":true,"1:3":true,"9:5":true,"4:10":true,"8:2":true,"1:4":true,"15:6":true,"2:0":true,"8:4":true,"5:13":true,"1:2":true,"7:5":true,"8:3":true,"0:9":true,"2:6":true} \ No newline at end of file +{ + "15:9": true, + "1:1": true, + "11:5": true, + "6:10": true, + "12:5": true, + "14:9": true, + "15:7": true, + "3:0": true, + "0:6": true, + "0:0": true, + "14:7": true, + "8:1": true, + "3:6": true, + "13:10": true, + "10:10": true, + "5:5": true, + "0:2": true, + "9:10": true, + "5:11": true, + "4:5": true, + "3:2": true, + "15:8": true, + "3:4": true, + "0:3": true, + "7:10": true, + "3:3": true, + "0:4": true, + "6:15": true, + "14:8": true, + "2:1": true, + "12:6": true, + "4:3": true, + "10:9": true, + "13:8": true, + "9:9": true, + "6:1": true, + "11:6": true, + "4:4": true, + "10:7": true, + "8:10": true, + "3:5": true, + "4:2": true, + "0:11": true, + "9:7": true, + "5:2": true, + "0:5": true, + "12:3": true, + "11:4": true, + "9:1": true, + "4:6": true, + "15:10": true, + "5:0": true, + "14:10": true, + "10:1": true, + "5:6": true, + "13:7": true, + "12:4": true, + "11:3": true, + "4:0": true, + "10:8": true, + "13:9": true, + "9:8": true, + "7:1": true, + "9:3": true, + "6:0": true, + "1:11": true, + "10:4": true, + "5:9": true, + "10:3": true, + "1:5": true, + "6:6": true, + "4:9": true, + "9:4": true, + "8:5": true, + "3:10": true, + "7:4": true, + "13:6": true, + "9:2": true, + "10:2": true, + "7:3": true, + "9:6": true, + "4:1": true, + "15:5": true, + "10:0": true, + "14:5": true, + "10:6": true, + "5:1": true, + "9:0": true, + "6:3": true, + "7:0": true, + "13:3": true, + "2:5": true, + "5:8": true, + "13:4": true, + "7:6": true, + "4:8": true, + "15:4": true, + "14:3": true, + "1:6": true, + "6:5": true, + "3:8": true, + "2:2": true, + "15:3": true, + "1:0": true, + "14:4": true, + "5:12": true, + "2:4": true, + "8:0": true, + "0:1": true, + "8:6": true, + "3:1": true, + "13:5": true, + "2:3": true, + "14:6": true, + "10:5": true, + "5:10": true, + "1:3": true, + "9:5": true, + "4:10": true, + "8:2": true, + "1:4": true, + "15:6": true, + "2:0": true, + "8:4": true, + "5:13": true, + "1:2": true, + "7:5": true, + "8:3": true, + "0:9": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/2_7.json b/src/main/resources/assets/notenoughupdates/dwarven_data/2_7.json index 3b0bf529..2c97d46a 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/2_7.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/2_7.json @@ -1 +1,3 @@ -{"4:12":true} \ No newline at end of file +{ + "4:12": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/2_8.json b/src/main/resources/assets/notenoughupdates/dwarven_data/2_8.json index 56f5e08c..706c7308 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/2_8.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/2_8.json @@ -1 +1,103 @@ -{"12:11":true,"6:10":[142,201],"7:15":[155,156],"11:11":true,"10:12":true,"9:15":153,"9:12":true,"10:15":[149,154],"13:10":119,"1:8":true,"13:15":[149,153],"4:11":[150,151],"2:8":true,"9:10":120,"13:14":[142,189],"10:13":true,"6:15":[132,160],"9:13":true,"14:14":true,"8:13":true,"15:14":[150,151],"7:9":200,"15:12":[143,190],"14:15":[151,152],"14:12":[142,189],"6:9":true,"15:10":true,"14:10":119,"15:13":true,"9:8":172,"14:13":[142,190],"13:6":[176,177],"3:15":[153,161],"15:11":[142,190],"0:8":true,"13:11":true,"4:15":[133,162],"5:15":[132,161],"12:14":true,"9:11":true,"10:11":true,"12:15":[141,189],"11:12":true,"11:15":[141,188]} \ No newline at end of file +{ + "12:11": true, + "6:10": [ + 142, + 201 + ], + "7:15": [ + 155, + 156 + ], + "11:11": true, + "10:12": true, + "9:15": 153, + "9:12": true, + "10:15": [ + 149, + 154 + ], + "13:10": 119, + "1:8": true, + "13:15": [ + 149, + 153 + ], + "4:11": [ + 150, + 151 + ], + "2:8": true, + "9:10": 120, + "13:14": [ + 142, + 189 + ], + "10:13": true, + "6:15": [ + 132, + 160 + ], + "9:13": true, + "14:14": true, + "8:13": true, + "15:14": [ + 150, + 151 + ], + "7:9": 200, + "15:12": [ + 143, + 190 + ], + "14:15": [ + 151, + 152 + ], + "14:12": [ + 142, + 189 + ], + "6:9": true, + "15:10": true, + "14:10": 119, + "15:13": true, + "9:8": 172, + "14:13": [ + 142, + 190 + ], + "13:6": [ + 176, + 177 + ], + "3:15": [ + 153, + 161 + ], + "15:11": [ + 142, + 190 + ], + "0:8": true, + "13:11": true, + "4:15": [ + 133, + 162 + ], + "5:15": [ + 132, + 161 + ], + "12:14": true, + "9:11": true, + "10:11": true, + "12:15": [ + 141, + 189 + ], + "11:12": true, + "11:15": [ + 141, + 188 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/2_9.json b/src/main/resources/assets/notenoughupdates/dwarven_data/2_9.json index b1c8feb6..0019a44d 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/2_9.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/2_9.json @@ -1 +1,265 @@ -{"8:8":true,"6:10":true,"13:13":185,"0:6":true,"14:1":191,"13:15":184,"10:10":true,"8:7":true,"5:5":[157,158],"0:2":true,"9:10":true,"13:12":true,"15:1":192,"13:14":185,"0:3":true,"8:9":true,"7:10":true,"0:4":true,"2:1":true,"14:14":184,"4:3":158,"5:4":158,"2:12":true,"10:9":true,"7:7":true,"2:15":true,"15:14":[141,183],"9:9":true,"10:7":true,"8:10":true,"7:9":true,"6:8":158,"3:5":177,"15:12":[132,186],"14:15":[134,183],"13:1":[152,153],"4:2":158,"0:11":true,"15:15":true,"14:12":[152,187],"9:7":true,"3:11":182,"2:14":182,"1:13":true,"2:13":true,"7:8":true,"6:9":true,"1:14":true,"5:0":[132,133],"5:6":158,"4:0":133,"15:13":184,"1:15":true,"10:8":true,"6:7":true,"1:12":true,"9:8":true,"14:13":186,"1:11":true,"1:5":true,"0:13":true,"11:8":true,"13:6":true,"13:0":[150,190],"12:8":true,"14:11":188,"13:2":true,"3:12":182,"11:9":true,"15:5":true,"14:5":true,"0:12":true,"15:11":[132,188],"12:9":true,"13:3":true,"11:7":true,"2:5":true,"0:14":true,"13:4":true,"12:7":true,"2:11":true,"15:4":true,"1:6":true,"11:10":true,"12:10":true,"2:2":true,"15:3":192,"14:4":true,"2:4":true,"14:2":192,"13:11":true,"15:2":192,"3:1":158,"13:5":true,"2:3":[174,183],"15:0":192,"14:6":true,"1:3":true,"1:4":true,"15:6":true,"14:0":[152,191],"1:2":true,"2:6":true,"15:9":190,"12:11":true,"11:5":true,"2:7":true,"7:12":true,"12:5":true,"10:14":[174,175],"7:15":[155,157],"14:9":191,"11:11":true,"10:12":true,"2:9":true,"9:12":[154,182],"13:10":true,"10:15":[174,176],"7:14":true,"7:13":true,"2:8":true,"15:8":190,"10:13":true,"6:12":160,"1:7":true,"14:8":191,"9:13":[153,181],"11:0":[141,188],"12:6":true,"8:13":true,"1:10":true,"13:8":true,"12:0":[147,149],"6:1":[132,133],"11:6":true,"11:4":true,"8:12":true,"12:3":true,"15:10":189,"14:10":[132,189],"13:7":true,"12:4":true,"11:3":true,"8:15":154,"12:2":true,"2:10":true,"11:2":true,"8:14":true,"13:9":true,"12:1":[149,151],"10:4":184,"6:6":true,"11:1":[144,189],"3:10":[181,183],"8:11":true,"9:6":true,"10:6":true,"7:6":true,"3:8":[180,182],"0:8":true,"6:11":true,"11:13":[172,185],"12:13":185,"12:14":185,"10:5":true,"9:11":[155,182],"3:7":[179,180],"10:11":true,"11:14":[171,172],"0:7":true,"12:15":184,"11:12":true,"3:9":[181,183],"12:12":true,"0:9":true,"7:11":true} \ No newline at end of file +{ + "8:8": true, + "6:10": true, + "13:13": 185, + "0:6": true, + "14:1": 191, + "13:15": 184, + "10:10": true, + "8:7": true, + "5:5": [ + 157, + 158 + ], + "0:2": true, + "9:10": true, + "13:12": true, + "15:1": 192, + "13:14": 185, + "0:3": true, + "8:9": true, + "7:10": true, + "0:4": true, + "2:1": true, + "14:14": 184, + "4:3": 158, + "5:4": 158, + "2:12": true, + "10:9": true, + "7:7": true, + "2:15": true, + "15:14": [ + 141, + 183 + ], + "9:9": true, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": 158, + "3:5": 177, + "15:12": [ + 132, + 186 + ], + "14:15": [ + 134, + 183 + ], + "13:1": [ + 152, + 153 + ], + "4:2": 158, + "0:11": true, + "15:15": true, + "14:12": [ + 152, + 187 + ], + "9:7": true, + "3:11": 182, + "2:14": 182, + "1:13": true, + "2:13": true, + "7:8": true, + "6:9": true, + "1:14": true, + "5:0": [ + 132, + 133 + ], + "5:6": 158, + "4:0": 133, + "15:13": 184, + "1:15": true, + "10:8": true, + "6:7": true, + "1:12": true, + "9:8": true, + "14:13": 186, + "1:11": true, + "1:5": true, + "0:13": true, + "11:8": true, + "13:6": true, + "13:0": [ + 150, + 190 + ], + "12:8": true, + "14:11": 188, + "13:2": true, + "3:12": 182, + "11:9": true, + "15:5": true, + "14:5": true, + "0:12": true, + "15:11": [ + 132, + 188 + ], + "12:9": true, + "13:3": true, + "11:7": true, + "2:5": true, + "0:14": true, + "13:4": true, + "12:7": true, + "2:11": true, + "15:4": true, + "1:6": true, + "11:10": true, + "12:10": true, + "2:2": true, + "15:3": 192, + "14:4": true, + "2:4": true, + "14:2": 192, + "13:11": true, + "15:2": 192, + "3:1": 158, + "13:5": true, + "2:3": [ + 174, + 183 + ], + "15:0": 192, + "14:6": true, + "1:3": true, + "1:4": true, + "15:6": true, + "14:0": [ + 152, + 191 + ], + "1:2": true, + "2:6": true, + "15:9": 190, + "12:11": true, + "11:5": true, + "2:7": true, + "7:12": true, + "12:5": true, + "10:14": [ + 174, + 175 + ], + "7:15": [ + 155, + 157 + ], + "14:9": 191, + "11:11": true, + "10:12": true, + "2:9": true, + "9:12": [ + 154, + 182 + ], + "13:10": true, + "10:15": [ + 174, + 176 + ], + "7:14": true, + "7:13": true, + "2:8": true, + "15:8": 190, + "10:13": true, + "6:12": 160, + "1:7": true, + "14:8": 191, + "9:13": [ + 153, + 181 + ], + "11:0": [ + 141, + 188 + ], + "12:6": true, + "8:13": true, + "1:10": true, + "13:8": true, + "12:0": [ + 147, + 149 + ], + "6:1": [ + 132, + 133 + ], + "11:6": true, + "11:4": true, + "8:12": true, + "12:3": true, + "15:10": 189, + "14:10": [ + 132, + 189 + ], + "13:7": true, + "12:4": true, + "11:3": true, + "8:15": 154, + "12:2": true, + "2:10": true, + "11:2": true, + "8:14": true, + "13:9": true, + "12:1": [ + 149, + 151 + ], + "10:4": 184, + "6:6": true, + "11:1": [ + 144, + 189 + ], + "3:10": [ + 181, + 183 + ], + "8:11": true, + "9:6": true, + "10:6": true, + "7:6": true, + "3:8": [ + 180, + 182 + ], + "0:8": true, + "6:11": true, + "11:13": [ + 172, + 185 + ], + "12:13": 185, + "12:14": 185, + "10:5": true, + "9:11": [ + 155, + 182 + ], + "3:7": [ + 179, + 180 + ], + "10:11": true, + "11:14": [ + 171, + 172 + ], + "0:7": true, + "12:15": 184, + "11:12": true, + "3:9": [ + 181, + 183 + ], + "12:12": true, + "0:9": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/3_-1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/3_-1.json index d4457364..1935090e 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/3_-1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/3_-1.json @@ -1 +1,27 @@ -{"15:4":true,"15:9":true,"2:12":true,"7:12":true,"15:3":true,"6:11":true,"10:12":true,"15:12":true,"13:11":true,"15:2":true,"14:12":true,"14:7":true,"9:12":true,"4:12":true,"14:6":true,"8:12":true,"3:12":true,"15:10":true,"5:11":true,"0:12":true,"15:11":true,"15:8":true,"11:12":true,"1:12":true,"14:8":true} \ No newline at end of file +{ + "15:4": true, + "15:9": true, + "2:12": true, + "7:12": true, + "15:3": true, + "6:11": true, + "10:12": true, + "15:12": true, + "13:11": true, + "15:2": true, + "14:12": true, + "14:7": true, + "9:12": true, + "4:12": true, + "14:6": true, + "8:12": true, + "3:12": true, + "15:10": true, + "5:11": true, + "0:12": true, + "15:11": true, + "15:8": true, + "11:12": true, + "1:12": true, + "14:8": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/3_-10.json b/src/main/resources/assets/notenoughupdates/dwarven_data/3_-10.json index b6c9743e..cac50614 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/3_-10.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/3_-10.json @@ -1 +1,5 @@ -{"5:12":true,"4:12":true,"3:11":true} \ No newline at end of file +{ + "5:12": true, + "4:12": true, + "3:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/3_-3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/3_-3.json index 5b792a9b..2bff09f0 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/3_-3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/3_-3.json @@ -1 +1,30 @@ -{"15:4":true,"14:3":203,"4:14":true,"4:3":true,"12:5":true,"5:14":true,"2:15":true,"7:15":true,"4:9":true,"14:4":true,"4:4":true,"5:12":true,"6:13":true,"4:15":true,"4:2":true,"5:15":true,"5:10":true,"0:15":true,"5:11":true,"3:15":true,"6:14":true,"5:13":true,"1:15":true,"0:14":true,"6:12":true,"13:4":true,"3:14":true,"6:15":true} \ No newline at end of file +{ + "15:4": true, + "14:3": 203, + "4:14": true, + "4:3": true, + "12:5": true, + "5:14": true, + "2:15": true, + "7:15": true, + "4:9": true, + "14:4": true, + "4:4": true, + "5:12": true, + "6:13": true, + "4:15": true, + "4:2": true, + "5:15": true, + "5:10": true, + "0:15": true, + "5:11": true, + "3:15": true, + "6:14": true, + "5:13": true, + "1:15": true, + "0:14": true, + "6:12": true, + "13:4": true, + "3:14": true, + "6:15": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/3_-4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/3_-4.json index 2cee3332..29e72fe4 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/3_-4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/3_-4.json @@ -1 +1,19 @@ -{"5:9":true,"4:9":true,"2:9":true,"4:7":true,"0:10":true,"4:11":true,"10:0":182,"5:11":true,"7:0":true,"5:8":true,"4:8":true,"3:8":true,"6:9":true,"5:10":true,"4:10":true,"3:9":true,"7:1":true} \ No newline at end of file +{ + "5:9": true, + "4:9": true, + "2:9": true, + "4:7": true, + "0:10": true, + "4:11": true, + "10:0": 182, + "5:11": true, + "7:0": true, + "5:8": true, + "4:8": true, + "3:8": true, + "6:9": true, + "5:10": true, + "4:10": true, + "3:9": true, + "7:1": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/3_-5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/3_-5.json index 09062bf7..0cf9c03f 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/3_-5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/3_-5.json @@ -1 +1,34 @@ -{"11:5":true,"10:4":true,"10:3":[185,186],"10:14":true,"6:6":187,"10:12":true,"3:0":true,"10:15":true,"10:2":[183,185],"5:5":186,"10:6":true,"10:13":true,"4:3":true,"6:5":187,"5:3":181,"9:7":true,"11:4":true,"10:5":[186,187],"11:3":[183,184],"6:7":187} \ No newline at end of file +{ + "11:5": true, + "10:4": true, + "10:3": [ + 185, + 186 + ], + "10:14": true, + "6:6": 187, + "10:12": true, + "3:0": true, + "10:15": true, + "10:2": [ + 183, + 185 + ], + "5:5": 186, + "10:6": true, + "10:13": true, + "4:3": true, + "6:5": 187, + "5:3": 181, + "9:7": true, + "11:4": true, + "10:5": [ + 186, + 187 + ], + "11:3": [ + 183, + 184 + ], + "6:7": 187 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/3_-6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/3_-6.json index eb9d426f..cab1d428 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/3_-6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/3_-6.json @@ -1 +1,58 @@ -{"12:11":true,"1:1":[188,189],"7:12":true,"6:13":true,"2:9":true,"0:6":true,"13:10":true,"7:14":true,"1:8":true,"0:2":true,"7:13":true,"2:8":true,"5:11":true,"6:14":true,"1:9":true,"0:3":true,"6:12":true,"0:4":true,"2:1":[187,188],"8:13":true,"10:7":214,"0:5":true,"8:14":188,"1:5":true,"9:4":217,"3:10":true,"4:1":185,"3:12":true,"5:14":true,"2:2":[189,190],"0:8":true,"6:11":true,"5:12":true,"13:11":true,"0:1":true,"3:1":[185,186],"5:15":true,"1:3":true,"4:10":true,"1:4":true,"0:7":true,"5:13":true,"1:2":true,"7:11":true} \ No newline at end of file +{ + "12:11": true, + "1:1": [ + 188, + 189 + ], + "7:12": true, + "6:13": true, + "2:9": true, + "0:6": true, + "13:10": true, + "7:14": true, + "1:8": true, + "0:2": true, + "7:13": true, + "2:8": true, + "5:11": true, + "6:14": true, + "1:9": true, + "0:3": true, + "6:12": true, + "0:4": true, + "2:1": [ + 187, + 188 + ], + "8:13": true, + "10:7": 214, + "0:5": true, + "8:14": 188, + "1:5": true, + "9:4": 217, + "3:10": true, + "4:1": 185, + "3:12": true, + "5:14": true, + "2:2": [ + 189, + 190 + ], + "0:8": true, + "6:11": true, + "5:12": true, + "13:11": true, + "0:1": true, + "3:1": [ + 185, + 186 + ], + "5:15": true, + "1:3": true, + "4:10": true, + "1:4": true, + "0:7": true, + "5:13": true, + "1:2": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/3_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/3_0.json index 0d735233..1ac48101 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/3_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/3_0.json @@ -1 +1,55 @@ -{"7:12":true,"3:0":true,"0:0":[198,202],"8:7":146,"11:0":true,"2:12":true,"7:7":[146,147],"12:0":true,"6:1":true,"3:5":[151,153],"15:12":222,"13:1":205,"0:11":true,"5:0":true,"5:6":[149,150],"4:0":true,"1:12":225,"6:0":true,"12:1":true,"1:11":true,"0:13":224,"6:6":149,"13:0":true,"8:11":true,"0:10":true,"10:0":true,"5:1":true,"9:0":true,"7:0":true,"2:11":true,"1:0":true,"8:0":true,"15:0":[198,202],"14:0":[198,202],"2:0":true} \ No newline at end of file +{ + "7:12": true, + "3:0": true, + "0:0": [ + 198, + 202 + ], + "8:7": 146, + "11:0": true, + "2:12": true, + "7:7": [ + 146, + 147 + ], + "12:0": true, + "6:1": true, + "3:5": [ + 151, + 153 + ], + "15:12": 222, + "13:1": 205, + "0:11": true, + "5:0": true, + "5:6": [ + 149, + 150 + ], + "4:0": true, + "1:12": 225, + "6:0": true, + "12:1": true, + "1:11": true, + "0:13": 224, + "6:6": 149, + "13:0": true, + "8:11": true, + "0:10": true, + "10:0": true, + "5:1": true, + "9:0": true, + "7:0": true, + "2:11": true, + "1:0": true, + "8:0": true, + "15:0": [ + 198, + 202 + ], + "14:0": [ + 198, + 202 + ], + "2:0": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/3_11.json b/src/main/resources/assets/notenoughupdates/dwarven_data/3_11.json index 051878c9..07a9fcf6 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/3_11.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/3_11.json @@ -1 +1,47 @@ -{"11:0":152,"12:11":true,"9:3":true,"9:14":true,"6:0":152,"1:1":true,"1:11":true,"1:10":true,"9:9":true,"1:0":true,"11:11":true,"9:4":true,"3:0":153,"13:11":true,"9:15":true,"9:2":true,"0:1":true,"0:0":true,"9:7":true,"9:12":true,"3:1":152,"14:11":true,"9:1":true,"9:6":true,"4:1":152,"1:3":true,"0:2":true,"5:0":153,"10:11":true,"9:5":true,"9:10":true,"5:1":true,"15:11":true,"9:0":true,"4:0":153,"2:0":true,"0:3":true,"1:12":true,"0:4":true,"9:8":true,"9:13":true,"2:1":[150,152]} \ No newline at end of file +{ + "11:0": 152, + "12:11": true, + "9:3": true, + "9:14": true, + "6:0": 152, + "1:1": true, + "1:11": true, + "1:10": true, + "9:9": true, + "1:0": true, + "11:11": true, + "9:4": true, + "3:0": 153, + "13:11": true, + "9:15": true, + "9:2": true, + "0:1": true, + "0:0": true, + "9:7": true, + "9:12": true, + "3:1": 152, + "14:11": true, + "9:1": true, + "9:6": true, + "4:1": 152, + "1:3": true, + "0:2": true, + "5:0": 153, + "10:11": true, + "9:5": true, + "9:10": true, + "5:1": true, + "15:11": true, + "9:0": true, + "4:0": 153, + "2:0": true, + "0:3": true, + "1:12": true, + "0:4": true, + "9:8": true, + "9:13": true, + "2:1": [ + 150, + 152 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/3_3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/3_3.json index dfd5cdf8..8cde17ab 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/3_3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/3_3.json @@ -1 +1,22 @@ -{"7:12":true,"7:2":true,"7:15":true,"7:4":true,"7:3":true,"7:14":true,"14:1":true,"7:13":true,"2:5":true,"6:12":true,"4:14":true,"6:1":true,"5:12":true,"3:5":true,"14:2":true,"4:15":true,"4:12":true,"8:2":true,"7:1":true,"4:13":true} \ No newline at end of file +{ + "7:12": true, + "7:2": true, + "7:15": true, + "7:4": true, + "7:3": true, + "7:14": true, + "14:1": true, + "7:13": true, + "2:5": true, + "6:12": true, + "4:14": true, + "6:1": true, + "5:12": true, + "3:5": true, + "14:2": true, + "4:15": true, + "4:12": true, + "8:2": true, + "7:1": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/3_4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/3_4.json index f6207f88..e99a3f13 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/3_4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/3_4.json @@ -1 +1,52 @@ -{"6:0":true,"0:6":true,"4:1":true,"0:2":true,"5:1":true,"7:0":true,"0:3":true,"7:10":[167,168],"6:12":172,"0:4":true,"6:15":[173,174],"0:8":true,"9:9":[166,167],"6:11":[166,170],"6:1":true,"10:7":167,"8:10":[164,167],"5:15":[174,176],"0:5":true,"5:0":true,"0:7":true,"4:0":true,"10:8":[166,167],"0:9":true,"7:11":[165,166],"7:1":true} \ No newline at end of file +{ + "6:0": true, + "0:6": true, + "4:1": true, + "0:2": true, + "5:1": true, + "7:0": true, + "0:3": true, + "7:10": [ + 167, + 168 + ], + "6:12": 172, + "0:4": true, + "6:15": [ + 173, + 174 + ], + "0:8": true, + "9:9": [ + 166, + 167 + ], + "6:11": [ + 166, + 170 + ], + "6:1": true, + "10:7": 167, + "8:10": [ + 164, + 167 + ], + "5:15": [ + 174, + 176 + ], + "0:5": true, + "5:0": true, + "0:7": true, + "4:0": true, + "10:8": [ + 166, + 167 + ], + "0:9": true, + "7:11": [ + 165, + 166 + ], + "7:1": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/3_5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/3_5.json index ded0da87..2703053d 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/3_5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/3_5.json @@ -1 +1,19 @@ -{"5:11":true,"4:10":true,"7:15":[138,171],"8:15":[140,171],"6:14":true,"5:12":true,"6:13":true,"5:13":true,"6:12":true,"6:15":true,"7:14":171} \ No newline at end of file +{ + "5:11": true, + "4:10": true, + "7:15": [ + 138, + 171 + ], + "8:15": [ + 140, + 171 + ], + "6:14": true, + "5:12": true, + "6:13": true, + "5:13": true, + "6:12": true, + "6:15": true, + "7:14": 171 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/3_6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/3_6.json index e283ddec..02d5d9bb 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/3_6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/3_6.json @@ -1 +1,79 @@ -{"8:8":true,"7:12":true,"10:14":true,"7:15":true,"10:12":true,"9:15":true,"0:6":true,"9:12":true,"8:1":181,"13:10":[171,172],"10:15":true,"7:14":true,"4:11":true,"7:13":true,"5:11":true,"0:3":true,"8:9":true,"0:4":true,"6:15":true,"8:13":true,"15:14":170,"9:9":true,"15:12":172,"14:12":171,"9:7":true,"0:5":true,"8:12":true,"7:8":true,"15:13":171,"9:8":true,"7:2":183,"8:5":true,"8:11":true,"0:10":true,"7:3":true,"14:11":[170,171],"9:6":[189,190],"12:9":[170,171],"7:0":170,"7:6":true,"4:14":true,"0:8":true,"6:11":true,"4:15":true,"8:6":true,"4:12":true,"5:15":true,"10:11":196,"9:5":[187,188],"8:2":169,"0:7":true,"12:15":194,"8:4":186,"7:5":true,"11:15":true,"8:3":[183,185],"0:9":true,"7:11":true,"4:13":true} \ No newline at end of file +{ + "8:8": true, + "7:12": true, + "10:14": true, + "7:15": true, + "10:12": true, + "9:15": true, + "0:6": true, + "9:12": true, + "8:1": 181, + "13:10": [ + 171, + 172 + ], + "10:15": true, + "7:14": true, + "4:11": true, + "7:13": true, + "5:11": true, + "0:3": true, + "8:9": true, + "0:4": true, + "6:15": true, + "8:13": true, + "15:14": 170, + "9:9": true, + "15:12": 172, + "14:12": 171, + "9:7": true, + "0:5": true, + "8:12": true, + "7:8": true, + "15:13": 171, + "9:8": true, + "7:2": 183, + "8:5": true, + "8:11": true, + "0:10": true, + "7:3": true, + "14:11": [ + 170, + 171 + ], + "9:6": [ + 189, + 190 + ], + "12:9": [ + 170, + 171 + ], + "7:0": 170, + "7:6": true, + "4:14": true, + "0:8": true, + "6:11": true, + "4:15": true, + "8:6": true, + "4:12": true, + "5:15": true, + "10:11": 196, + "9:5": [ + 187, + 188 + ], + "8:2": 169, + "0:7": true, + "12:15": 194, + "8:4": 186, + "7:5": true, + "11:15": true, + "8:3": [ + 183, + 185 + ], + "0:9": true, + "7:11": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/3_7.json b/src/main/resources/assets/notenoughupdates/dwarven_data/3_7.json index 208d6c92..beb2731e 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/3_7.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/3_7.json @@ -1 +1,16 @@ -{"6:0":true,"7:15":true,"12:0":true,"12:13":true,"10:15":true,"12:14":true,"10:0":true,"5:0":true,"10:1":true,"11:14":true,"4:0":true,"7:0":true,"11:2":true,"6:15":true} \ No newline at end of file +{ + "6:0": true, + "7:15": true, + "12:0": true, + "12:13": true, + "10:15": true, + "12:14": true, + "10:0": true, + "5:0": true, + "10:1": true, + "11:14": true, + "4:0": true, + "7:0": true, + "11:2": true, + "6:15": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/4_-1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/4_-1.json index 24c0a054..57fcf162 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/4_-1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/4_-1.json @@ -1 +1,49 @@ -{"1:1":true,"11:11":true,"3:0":true,"4:11":205,"0:2":true,"9:10":225,"3:2":true,"2:1":true,"2:15":true,"8:10":225,"0:11":true,"3:11":205,"2:14":true,"1:13":[164,166],"4:6":true,"1:14":165,"5:0":true,"5:6":true,"4:0":true,"1:12":[198,201],"5:7":true,"8:11":225,"4:7":true,"0:10":true,"4:1":true,"3:15":true,"0:12":[165,202],"5:8":true,"3:14":true,"4:8":true,"2:2":true,"0:1":true,"3:1":true,"9:11":224,"10:11":true,"2:0":true,"1:2":true,"7:11":true} \ No newline at end of file +{ + "1:1": true, + "11:11": true, + "3:0": true, + "4:11": 205, + "0:2": true, + "9:10": 225, + "3:2": true, + "2:1": true, + "2:15": true, + "8:10": 225, + "0:11": true, + "3:11": 205, + "2:14": true, + "1:13": [ + 164, + 166 + ], + "4:6": true, + "1:14": 165, + "5:0": true, + "5:6": true, + "4:0": true, + "1:12": [ + 198, + 201 + ], + "5:7": true, + "8:11": 225, + "4:7": true, + "0:10": true, + "4:1": true, + "3:15": true, + "0:12": [ + 165, + 202 + ], + "5:8": true, + "3:14": true, + "4:8": true, + "2:2": true, + "0:1": true, + "3:1": true, + "9:11": 224, + "10:11": true, + "2:0": true, + "1:2": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/4_-2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/4_-2.json index eb8125af..520d0e1f 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/4_-2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/4_-2.json @@ -1 +1,8 @@ -{"15:7":true,"14:7":true,"3:15":true,"0:4":212,"2:15":true,"12:12":true} \ No newline at end of file +{ + "15:7": true, + "14:7": true, + "3:15": true, + "0:4": 212, + "2:15": true, + "12:12": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/4_-8.json b/src/main/resources/assets/notenoughupdates/dwarven_data/4_-8.json index e604dcb9..76bfe654 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/4_-8.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/4_-8.json @@ -1 +1,69 @@ -{"15:9":true,"12:11":true,"13:13":true,"10:14":true,"14:9":true,"11:11":true,"10:12":true,"3:0":226,"14:7":true,"9:12":true,"13:10":true,"13:15":true,"10:10":true,"13:12":true,"15:1":210,"15:8":true,"13:14":true,"10:13":true,"14:8":true,"9:13":true,"14:14":true,"12:6":true,"13:8":true,"15:14":true,"15:12":true,"14:15":true,"15:15":true,"14:12":true,"15:10":true,"14:10":true,"13:7":true,"15:13":true,"13:9":true,"14:13":true,"11:8":true,"13:6":true,"12:8":true,"14:11":true,"11:9":true,"15:5":true,"10:0":221,"14:5":true,"15:11":true,"12:9":true,"13:4":true,"12:7":true,"15:4":true,"14:3":true,"11:10":true,"12:10":true,"15:3":true,"14:4":true,"11:13":true,"14:2":210,"13:11":true,"15:2":211,"13:5":true,"12:13":true,"14:6":true,"12:14":true,"10:11":true,"11:14":true,"15:6":true,"12:15":true,"11:12":true,"12:12":true,"11:15":true} \ No newline at end of file +{ + "15:9": true, + "12:11": true, + "13:13": true, + "10:14": true, + "14:9": true, + "11:11": true, + "10:12": true, + "3:0": 226, + "14:7": true, + "9:12": true, + "13:10": true, + "13:15": true, + "10:10": true, + "13:12": true, + "15:1": 210, + "15:8": true, + "13:14": true, + "10:13": true, + "14:8": true, + "9:13": true, + "14:14": true, + "12:6": true, + "13:8": true, + "15:14": true, + "15:12": true, + "14:15": true, + "15:15": true, + "14:12": true, + "15:10": true, + "14:10": true, + "13:7": true, + "15:13": true, + "13:9": true, + "14:13": true, + "11:8": true, + "13:6": true, + "12:8": true, + "14:11": true, + "11:9": true, + "15:5": true, + "10:0": 221, + "14:5": true, + "15:11": true, + "12:9": true, + "13:4": true, + "12:7": true, + "15:4": true, + "14:3": true, + "11:10": true, + "12:10": true, + "15:3": true, + "14:4": true, + "11:13": true, + "14:2": 210, + "13:11": true, + "15:2": 211, + "13:5": true, + "12:13": true, + "14:6": true, + "12:14": true, + "10:11": true, + "11:14": true, + "15:6": true, + "12:15": true, + "11:12": true, + "12:12": true, + "11:15": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/4_-9.json b/src/main/resources/assets/notenoughupdates/dwarven_data/4_-9.json index a4276076..ded6312e 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/4_-9.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/4_-9.json @@ -1 +1,4 @@ -{"0:12":true,"1:12":true} \ No newline at end of file +{ + "0:12": true, + "1:12": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/4_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/4_0.json index f9d3a234..2e59477c 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/4_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/4_0.json @@ -1 +1,129 @@ -{"6:10":[212,214],"13:13":true,"7:15":true,"15:7":true,"3:0":[161,202],"0:0":[198,202],"8:1":true,"7:14":true,"5:5":true,"7:13":true,"13:12":true,"7:10":true,"6:15":true,"11:0":[158,204],"4:3":165,"5:4":true,"12:0":[159,199],"4:2":[164,165],"0:11":202,"15:15":true,"9:1":169,"5:0":[198,202],"10:1":168,"12:4":true,"8:15":true,"4:0":[198,202],"12:2":166,"2:10":203,"11:2":167,"8:14":true,"9:3":169,"6:0":[198,202],"1:11":203,"10:3":168,"7:2":true,"11:1":167,"7:4":true,"9:2":169,"13:0":[160,198],"10:2":168,"7:3":true,"13:2":159,"4:1":205,"6:4":true,"15:5":[159,160],"10:0":[198,204],"14:5":159,"9:0":[198,202],"6:3":true,"7:0":[198,202],"13:3":true,"13:4":true,"6:2":true,"2:11":204,"15:4":[159,161],"14:3":true,"6:5":true,"15:3":[158,160],"1:0":true,"14:4":true,"8:0":[198,202],"14:2":160,"15:2":true,"3:1":[162,205],"13:5":true,"14:6":158,"8:2":true,"15:6":true,"2:0":true,"12:15":true,"7:5":168,"3:9":true,"8:3":true} \ No newline at end of file +{ + "6:10": [ + 212, + 214 + ], + "13:13": true, + "7:15": true, + "15:7": true, + "3:0": [ + 161, + 202 + ], + "0:0": [ + 198, + 202 + ], + "8:1": true, + "7:14": true, + "5:5": true, + "7:13": true, + "13:12": true, + "7:10": true, + "6:15": true, + "11:0": [ + 158, + 204 + ], + "4:3": 165, + "5:4": true, + "12:0": [ + 159, + 199 + ], + "4:2": [ + 164, + 165 + ], + "0:11": 202, + "15:15": true, + "9:1": 169, + "5:0": [ + 198, + 202 + ], + "10:1": 168, + "12:4": true, + "8:15": true, + "4:0": [ + 198, + 202 + ], + "12:2": 166, + "2:10": 203, + "11:2": 167, + "8:14": true, + "9:3": 169, + "6:0": [ + 198, + 202 + ], + "1:11": 203, + "10:3": 168, + "7:2": true, + "11:1": 167, + "7:4": true, + "9:2": 169, + "13:0": [ + 160, + 198 + ], + "10:2": 168, + "7:3": true, + "13:2": 159, + "4:1": 205, + "6:4": true, + "15:5": [ + 159, + 160 + ], + "10:0": [ + 198, + 204 + ], + "14:5": 159, + "9:0": [ + 198, + 202 + ], + "6:3": true, + "7:0": [ + 198, + 202 + ], + "13:3": true, + "13:4": true, + "6:2": true, + "2:11": 204, + "15:4": [ + 159, + 161 + ], + "14:3": true, + "6:5": true, + "15:3": [ + 158, + 160 + ], + "1:0": true, + "14:4": true, + "8:0": [ + 198, + 202 + ], + "14:2": 160, + "15:2": true, + "3:1": [ + 162, + 205 + ], + "13:5": true, + "14:6": 158, + "8:2": true, + "15:6": true, + "2:0": true, + "12:15": true, + "7:5": 168, + "3:9": true, + "8:3": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/4_6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/4_6.json index 5dd48953..b283ecd9 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/4_6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/4_6.json @@ -1 +1,61 @@ -{"9:14":true,"8:8":true,"7:12":true,"10:14":true,"7:15":true,"11:11":true,"10:12":true,"6:13":true,"15:7":true,"9:15":true,"9:12":true,"10:15":true,"7:14":true,"13:15":true,"10:10":true,"7:13":true,"9:10":true,"15:1":true,"6:14":true,"10:13":true,"8:9":true,"7:10":true,"6:15":true,"9:13":true,"8:13":true,"10:9":true,"2:15":175,"9:9":true,"8:10":true,"7:9":true,"9:7":true,"8:12":true,"8:15":true,"2:10":150,"1:15":190,"10:8":true,"8:14":true,"8:5":true,"11:8":true,"8:11":true,"12:8":true,"9:6":true,"3:12":158,"11:9":true,"15:5":true,"15:4":true,"11:10":true,"15:3":true,"11:13":true,"15:2":true,"8:6":true,"15:0":true,"9:11":true,"10:11":true,"11:14":true,"15:6":true,"12:15":true,"11:12":true,"11:15":true} \ No newline at end of file +{ + "9:14": true, + "8:8": true, + "7:12": true, + "10:14": true, + "7:15": true, + "11:11": true, + "10:12": true, + "6:13": true, + "15:7": true, + "9:15": true, + "9:12": true, + "10:15": true, + "7:14": true, + "13:15": true, + "10:10": true, + "7:13": true, + "9:10": true, + "15:1": true, + "6:14": true, + "10:13": true, + "8:9": true, + "7:10": true, + "6:15": true, + "9:13": true, + "8:13": true, + "10:9": true, + "2:15": 175, + "9:9": true, + "8:10": true, + "7:9": true, + "9:7": true, + "8:12": true, + "8:15": true, + "2:10": 150, + "1:15": 190, + "10:8": true, + "8:14": true, + "8:5": true, + "11:8": true, + "8:11": true, + "12:8": true, + "9:6": true, + "3:12": 158, + "11:9": true, + "15:5": true, + "15:4": true, + "11:10": true, + "15:3": true, + "11:13": true, + "15:2": true, + "8:6": true, + "15:0": true, + "9:11": true, + "10:11": true, + "11:14": true, + "15:6": true, + "12:15": true, + "11:12": true, + "11:15": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/5_-5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/5_-5.json index 07d74c09..5abb4b54 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/5_-5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/5_-5.json @@ -1 +1,7 @@ -{"9:12":210,"8:15":[205,206]} \ No newline at end of file +{ + "9:12": 210, + "8:15": [ + 205, + 206 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/5_-6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/5_-6.json index 9d96fa2f..81d36f69 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/5_-6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/5_-6.json @@ -1 +1,8 @@ -{"15:4":217,"15:5":216,"15:3":218,"15:6":true,"15:8":true,"15:7":true} \ No newline at end of file +{ + "15:4": 217, + "15:5": 216, + "15:3": 218, + "15:6": true, + "15:8": true, + "15:7": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/5_-8.json b/src/main/resources/assets/notenoughupdates/dwarven_data/5_-8.json index 7854cd61..b18293dd 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/5_-8.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/5_-8.json @@ -1 +1,102 @@ -{"1:1":true,"7:12":true,"6:10":true,"7:15":true,"2:9":true,"0:6":true,"3:6":true,"7:14":true,"1:8":true,"5:5":true,"4:11":true,"0:2":212,"7:13":true,"2:8":true,"5:11":true,"4:5":true,"3:2":212,"6:14":true,"1:9":true,"3:4":true,"0:3":true,"7:10":true,"6:12":true,"3:3":212,"0:4":true,"6:15":true,"4:3":212,"8:13":212,"5:4":212,"2:12":true,"5:3":212,"2:15":true,"1:10":true,"4:4":true,"7:9":true,"6:8":true,"3:5":true,"0:11":true,"3:11":true,"2:14":true,"1:13":true,"0:5":true,"8:12":222,"7:8":true,"6:9":true,"4:6":true,"2:13":true,"1:14":true,"5:6":true,"8:15":true,"2:10":true,"1:15":true,"8:14":true,"1:12":true,"1:11":true,"3:13":true,"5:9":true,"1:5":true,"0:13":true,"6:6":true,"4:9":true,"3:10":true,"0:10":true,"3:12":true,"0:15":true,"6:4":212,"3:15":true,"0:12":true,"2:5":true,"0:14":true,"5:8":true,"3:14":true,"4:8":true,"2:11":true,"4:14":true,"1:6":true,"6:5":true,"3:8":true,"5:14":true,"2:2":212,"0:8":true,"6:11":true,"5:12":true,"2:4":true,"4:15":true,"0:1":211,"4:12":true,"5:15":true,"2:3":true,"5:10":true,"1:3":true,"4:10":true,"1:4":true,"5:13":true,"1:2":212,"3:9":true,"0:9":true,"7:11":true,"4:13":true,"2:6":true} \ No newline at end of file +{ + "1:1": true, + "7:12": true, + "6:10": true, + "7:15": true, + "2:9": true, + "0:6": true, + "3:6": true, + "7:14": true, + "1:8": true, + "5:5": true, + "4:11": true, + "0:2": 212, + "7:13": true, + "2:8": true, + "5:11": true, + "4:5": true, + "3:2": 212, + "6:14": true, + "1:9": true, + "3:4": true, + "0:3": true, + "7:10": true, + "6:12": true, + "3:3": 212, + "0:4": true, + "6:15": true, + "4:3": 212, + "8:13": 212, + "5:4": 212, + "2:12": true, + "5:3": 212, + "2:15": true, + "1:10": true, + "4:4": true, + "7:9": true, + "6:8": true, + "3:5": true, + "0:11": true, + "3:11": true, + "2:14": true, + "1:13": true, + "0:5": true, + "8:12": 222, + "7:8": true, + "6:9": true, + "4:6": true, + "2:13": true, + "1:14": true, + "5:6": true, + "8:15": true, + "2:10": true, + "1:15": true, + "8:14": true, + "1:12": true, + "1:11": true, + "3:13": true, + "5:9": true, + "1:5": true, + "0:13": true, + "6:6": true, + "4:9": true, + "3:10": true, + "0:10": true, + "3:12": true, + "0:15": true, + "6:4": 212, + "3:15": true, + "0:12": true, + "2:5": true, + "0:14": true, + "5:8": true, + "3:14": true, + "4:8": true, + "2:11": true, + "4:14": true, + "1:6": true, + "6:5": true, + "3:8": true, + "5:14": true, + "2:2": 212, + "0:8": true, + "6:11": true, + "5:12": true, + "2:4": true, + "4:15": true, + "0:1": 211, + "4:12": true, + "5:15": true, + "2:3": true, + "5:10": true, + "1:3": true, + "4:10": true, + "1:4": true, + "5:13": true, + "1:2": 212, + "3:9": true, + "0:9": true, + "7:11": true, + "4:13": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/5_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/5_0.json index 53a6fea3..cfa532fa 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/5_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/5_0.json @@ -1 +1,10 @@ -{"1:1":true,"7:3":198,"6:3":[196,197],"13:14":193,"5:3":196} \ No newline at end of file +{ + "1:1": true, + "7:3": 198, + "6:3": [ + 196, + 197 + ], + "13:14": 193, + "5:3": 196 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/5_10.json b/src/main/resources/assets/notenoughupdates/dwarven_data/5_10.json index deaaa360..c87f7fa3 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/5_10.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/5_10.json @@ -1 +1,161 @@ -{"9:14":true,"1:1":[153,171],"11:5":true,"2:7":true,"7:12":true,"6:10":true,"12:5":true,"10:14":true,"10:12":true,"6:13":true,"2:9":true,"3:0":[168,169],"0:6":true,"0:0":true,"9:12":true,"3:6":[171,227],"7:14":true,"14:1":true,"10:10":true,"5:5":true,"0:2":[151,173],"7:13":true,"9:10":true,"4:5":true,"6:14":true,"1:9":true,"10:13":true,"0:3":true,"8:9":true,"7:10":true,"6:12":true,"1:7":true,"9:13":true,"12:6":true,"8:13":true,"2:12":true,"10:9":true,"1:10":true,"12:0":true,"9:9":true,"11:6":true,"8:10":true,"7:9":true,"3:5":true,"13:1":true,"0:11":true,"3:11":true,"2:14":true,"1:13":true,"0:5":true,"12:3":true,"11:4":true,"8:12":true,"6:9":true,"4:6":[171,227],"2:13":true,"1:14":true,"5:0":[169,170],"5:6":[165,227],"12:4":true,"4:0":[168,170],"12:2":true,"2:10":true,"8:14":true,"1:12":true,"12:1":true,"1:11":true,"10:4":true,"3:13":true,"1:5":true,"0:13":true,"6:6":[164,227],"9:4":true,"8:5":true,"5:7":true,"3:10":true,"7:4":true,"13:6":true,"13:0":true,"8:11":true,"4:7":true,"0:10":true,"7:3":true,"13:2":true,"9:6":true,"3:12":true,"14:5":true,"10:6":true,"0:12":true,"13:3":true,"2:5":[172,201],"0:14":true,"13:4":true,"3:14":true,"7:6":[164,227],"2:11":true,"15:4":true,"1:6":true,"6:5":true,"2:2":true,"6:11":true,"1:0":152,"14:4":true,"14:2":true,"0:1":[152,172],"8:6":true,"13:5":true,"14:6":true,"10:5":true,"3:7":true,"9:11":true,"1:3":true,"10:11":true,"9:5":true,"1:4":true,"14:0":true,"2:0":168,"1:2":172,"7:5":true,"3:9":true,"0:9":true,"7:11":true,"2:6":true} \ No newline at end of file +{ + "9:14": true, + "1:1": [ + 153, + 171 + ], + "11:5": true, + "2:7": true, + "7:12": true, + "6:10": true, + "12:5": true, + "10:14": true, + "10:12": true, + "6:13": true, + "2:9": true, + "3:0": [ + 168, + 169 + ], + "0:6": true, + "0:0": true, + "9:12": true, + "3:6": [ + 171, + 227 + ], + "7:14": true, + "14:1": true, + "10:10": true, + "5:5": true, + "0:2": [ + 151, + 173 + ], + "7:13": true, + "9:10": true, + "4:5": true, + "6:14": true, + "1:9": true, + "10:13": true, + "0:3": true, + "8:9": true, + "7:10": true, + "6:12": true, + "1:7": true, + "9:13": true, + "12:6": true, + "8:13": true, + "2:12": true, + "10:9": true, + "1:10": true, + "12:0": true, + "9:9": true, + "11:6": true, + "8:10": true, + "7:9": true, + "3:5": true, + "13:1": true, + "0:11": true, + "3:11": true, + "2:14": true, + "1:13": true, + "0:5": true, + "12:3": true, + "11:4": true, + "8:12": true, + "6:9": true, + "4:6": [ + 171, + 227 + ], + "2:13": true, + "1:14": true, + "5:0": [ + 169, + 170 + ], + "5:6": [ + 165, + 227 + ], + "12:4": true, + "4:0": [ + 168, + 170 + ], + "12:2": true, + "2:10": true, + "8:14": true, + "1:12": true, + "12:1": true, + "1:11": true, + "10:4": true, + "3:13": true, + "1:5": true, + "0:13": true, + "6:6": [ + 164, + 227 + ], + "9:4": true, + "8:5": true, + "5:7": true, + "3:10": true, + "7:4": true, + "13:6": true, + "13:0": true, + "8:11": true, + "4:7": true, + "0:10": true, + "7:3": true, + "13:2": true, + "9:6": true, + "3:12": true, + "14:5": true, + "10:6": true, + "0:12": true, + "13:3": true, + "2:5": [ + 172, + 201 + ], + "0:14": true, + "13:4": true, + "3:14": true, + "7:6": [ + 164, + 227 + ], + "2:11": true, + "15:4": true, + "1:6": true, + "6:5": true, + "2:2": true, + "6:11": true, + "1:0": 152, + "14:4": true, + "14:2": true, + "0:1": [ + 152, + 172 + ], + "8:6": true, + "13:5": true, + "14:6": true, + "10:5": true, + "3:7": true, + "9:11": true, + "1:3": true, + "10:11": true, + "9:5": true, + "1:4": true, + "14:0": true, + "2:0": 168, + "1:2": 172, + "7:5": true, + "3:9": true, + "0:9": true, + "7:11": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/5_7.json b/src/main/resources/assets/notenoughupdates/dwarven_data/5_7.json index 85efb804..14670145 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/5_7.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/5_7.json @@ -1 +1,227 @@ -{"12:11":true,"9:14":true,"1:1":true,"11:5":true,"2:7":[122,123],"7:12":true,"6:10":true,"13:13":true,"12:5":true,"10:14":true,"7:15":true,"14:9":true,"11:11":true,"10:12":true,"2:9":true,"3:0":true,"9:15":true,"0:6":true,"0:0":true,"14:7":true,"9:12":true,"3:6":true,"13:10":true,"10:15":true,"7:14":true,"1:8":[120,173],"14:1":true,"13:15":true,"10:10":true,"4:11":true,"0:2":true,"7:13":true,"2:8":[119,171],"9:10":true,"5:11":[170,171],"4:5":true,"13:12":true,"15:1":true,"1:9":[174,175],"13:14":true,"10:13":true,"3:4":true,"0:3":true,"8:9":true,"7:10":true,"1:7":122,"0:4":true,"14:8":true,"9:13":true,"11:0":true,"14:14":true,"12:6":true,"8:13":true,"10:9":true,"5:3":true,"2:15":[175,177],"1:10":true,"13:8":true,"15:14":true,"9:9":true,"11:6":true,"4:4":true,"10:7":true,"8:10":true,"7:9":true,"6:8":true,"3:5":true,"15:12":true,"14:15":true,"0:11":true,"15:15":true,"14:12":true,"2:14":true,"0:5":true,"12:3":true,"11:4":true,"8:12":true,"7:8":true,"6:9":true,"4:6":true,"2:13":true,"15:10":true,"14:10":true,"10:1":true,"5:6":true,"13:7":true,"12:4":true,"8:15":true,"15:13":true,"12:2":true,"8:14":true,"13:9":true,"7:1":true,"14:13":true,"12:1":true,"1:11":true,"3:13":true,"5:9":126,"1:5":[122,123],"11:1":true,"5:7":true,"11:8":true,"13:6":true,"8:11":true,"4:7":true,"0:10":true,"12:8":true,"14:11":true,"13:2":true,"3:12":true,"11:9":true,"10:0":true,"15:11":true,"12:9":true,"9:0":true,"13:3":true,"11:7":true,"2:5":true,"5:8":true,"13:4":true,"12:7":true,"3:14":176,"6:2":true,"4:8":true,"15:4":true,"14:3":true,"4:14":[172,175],"1:6":[122,123],"11:10":true,"3:8":[118,122],"12:10":true,"5:14":[165,171],"0:8":[174,175],"15:3":true,"6:11":true,"1:0":true,"11:13":true,"5:12":[169,172],"2:4":true,"8:0":true,"14:2":true,"13:11":true,"4:15":[164,174],"0:1":true,"15:2":true,"4:12":true,"13:5":true,"12:13":true,"5:15":true,"15:0":true,"14:6":true,"12:14":true,"9:11":true,"3:7":true,"1:3":true,"4:10":171,"11:14":true,"1:4":true,"0:7":[121,172],"14:0":true,"2:0":true,"12:15":true,"11:12":true,"5:13":[167,173],"3:9":[171,172],"12:12":true,"11:15":true,"0:9":[176,177],"7:11":true,"4:13":174,"2:6":true} \ No newline at end of file +{ + "12:11": true, + "9:14": true, + "1:1": true, + "11:5": true, + "2:7": [ + 122, + 123 + ], + "7:12": true, + "6:10": true, + "13:13": true, + "12:5": true, + "10:14": true, + "7:15": true, + "14:9": true, + "11:11": true, + "10:12": true, + "2:9": true, + "3:0": true, + "9:15": true, + "0:6": true, + "0:0": true, + "14:7": true, + "9:12": true, + "3:6": true, + "13:10": true, + "10:15": true, + "7:14": true, + "1:8": [ + 120, + 173 + ], + "14:1": true, + "13:15": true, + "10:10": true, + "4:11": true, + "0:2": true, + "7:13": true, + "2:8": [ + 119, + 171 + ], + "9:10": true, + "5:11": [ + 170, + 171 + ], + "4:5": true, + "13:12": true, + "15:1": true, + "1:9": [ + 174, + 175 + ], + "13:14": true, + "10:13": true, + "3:4": true, + "0:3": true, + "8:9": true, + "7:10": true, + "1:7": 122, + "0:4": true, + "14:8": true, + "9:13": true, + "11:0": true, + "14:14": true, + "12:6": true, + "8:13": true, + "10:9": true, + "5:3": true, + "2:15": [ + 175, + 177 + ], + "1:10": true, + "13:8": true, + "15:14": true, + "9:9": true, + "11:6": true, + "4:4": true, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": true, + "15:12": true, + "14:15": true, + "0:11": true, + "15:15": true, + "14:12": true, + "2:14": true, + "0:5": true, + "12:3": true, + "11:4": true, + "8:12": true, + "7:8": true, + "6:9": true, + "4:6": true, + "2:13": true, + "15:10": true, + "14:10": true, + "10:1": true, + "5:6": true, + "13:7": true, + "12:4": true, + "8:15": true, + "15:13": true, + "12:2": true, + "8:14": true, + "13:9": true, + "7:1": true, + "14:13": true, + "12:1": true, + "1:11": true, + "3:13": true, + "5:9": 126, + "1:5": [ + 122, + 123 + ], + "11:1": true, + "5:7": true, + "11:8": true, + "13:6": true, + "8:11": true, + "4:7": true, + "0:10": true, + "12:8": true, + "14:11": true, + "13:2": true, + "3:12": true, + "11:9": true, + "10:0": true, + "15:11": true, + "12:9": true, + "9:0": true, + "13:3": true, + "11:7": true, + "2:5": true, + "5:8": true, + "13:4": true, + "12:7": true, + "3:14": 176, + "6:2": true, + "4:8": true, + "15:4": true, + "14:3": true, + "4:14": [ + 172, + 175 + ], + "1:6": [ + 122, + 123 + ], + "11:10": true, + "3:8": [ + 118, + 122 + ], + "12:10": true, + "5:14": [ + 165, + 171 + ], + "0:8": [ + 174, + 175 + ], + "15:3": true, + "6:11": true, + "1:0": true, + "11:13": true, + "5:12": [ + 169, + 172 + ], + "2:4": true, + "8:0": true, + "14:2": true, + "13:11": true, + "4:15": [ + 164, + 174 + ], + "0:1": true, + "15:2": true, + "4:12": true, + "13:5": true, + "12:13": true, + "5:15": true, + "15:0": true, + "14:6": true, + "12:14": true, + "9:11": true, + "3:7": true, + "1:3": true, + "4:10": 171, + "11:14": true, + "1:4": true, + "0:7": [ + 121, + 172 + ], + "14:0": true, + "2:0": true, + "12:15": true, + "11:12": true, + "5:13": [ + 167, + 173 + ], + "3:9": [ + 171, + 172 + ], + "12:12": true, + "11:15": true, + "0:9": [ + 176, + 177 + ], + "7:11": true, + "4:13": 174, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/5_8.json b/src/main/resources/assets/notenoughupdates/dwarven_data/5_8.json index 0a576965..e6c41903 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/5_8.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/5_8.json @@ -1 +1,157 @@ -{"15:9":true,"12:11":true,"9:14":true,"8:8":true,"7:12":true,"6:10":true,"13:13":true,"12:5":true,"10:14":true,"7:15":true,"14:9":true,"11:11":true,"10:12":true,"6:13":true,"9:15":true,"14:7":true,"9:12":true,"8:1":true,"13:10":true,"10:15":true,"7:14":true,"14:1":true,"10:10":true,"8:7":true,"7:13":true,"9:10":true,"5:11":true,"13:12":true,"15:1":true,"6:14":true,"15:8":true,"13:14":true,"10:13":true,"8:9":true,"7:10":true,"6:12":true,"6:15":true,"14:8":true,"9:13":true,"2:1":true,"14:14":true,"12:6":true,"10:9":true,"7:7":true,"2:15":true,"13:8":true,"12:0":true,"9:9":true,"11:6":true,"10:7":true,"8:10":true,"7:9":true,"6:8":true,"13:1":true,"9:7":true,"12:3":true,"11:4":true,"9:1":true,"7:8":true,"6:9":true,"15:10":true,"14:10":true,"10:1":true,"5:6":true,"13:7":true,"11:3":true,"4:0":[162,169],"12:2":true,"10:8":true,"6:7":true,"11:2":true,"13:9":true,"9:8":true,"14:13":true,"12:1":true,"9:3":true,"10:4":true,"5:9":true,"10:3":true,"6:6":true,"11:1":true,"9:4":true,"8:5":true,"5:7":true,"11:8":true,"13:6":true,"9:2":true,"13:0":true,"8:11":true,"10:2":true,"12:8":true,"14:11":true,"13:2":true,"9:6":true,"4:1":[160,167],"11:9":true,"15:5":true,"10:0":true,"14:5":true,"10:6":true,"3:15":true,"15:11":true,"12:9":true,"9:0":true,"13:3":true,"11:7":true,"5:8":true,"12:7":true,"7:6":true,"15:4":true,"14:3":true,"11:10":true,"6:5":true,"12:10":true,"15:3":true,"6:11":true,"14:4":true,"11:13":true,"5:12":true,"8:0":true,"4:15":true,"14:2":true,"13:11":true,"15:2":true,"8:6":true,"5:15":true,"13:5":true,"12:13":true,"15:0":true,"14:6":true,"12:14":true,"10:5":true,"9:11":true,"5:10":true,"10:11":true,"9:5":true,"11:14":true,"8:2":true,"15:6":true,"14:0":true,"2:0":true,"12:15":true,"11:12":true,"5:13":true,"7:5":true,"12:12":true,"11:15":true,"8:3":true,"7:11":true} \ No newline at end of file +{ + "15:9": true, + "12:11": true, + "9:14": true, + "8:8": true, + "7:12": true, + "6:10": true, + "13:13": true, + "12:5": true, + "10:14": true, + "7:15": true, + "14:9": true, + "11:11": true, + "10:12": true, + "6:13": true, + "9:15": true, + "14:7": true, + "9:12": true, + "8:1": true, + "13:10": true, + "10:15": true, + "7:14": true, + "14:1": true, + "10:10": true, + "8:7": true, + "7:13": true, + "9:10": true, + "5:11": true, + "13:12": true, + "15:1": true, + "6:14": true, + "15:8": true, + "13:14": true, + "10:13": true, + "8:9": true, + "7:10": true, + "6:12": true, + "6:15": true, + "14:8": true, + "9:13": true, + "2:1": true, + "14:14": true, + "12:6": true, + "10:9": true, + "7:7": true, + "2:15": true, + "13:8": true, + "12:0": true, + "9:9": true, + "11:6": true, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "13:1": true, + "9:7": true, + "12:3": true, + "11:4": true, + "9:1": true, + "7:8": true, + "6:9": true, + "15:10": true, + "14:10": true, + "10:1": true, + "5:6": true, + "13:7": true, + "11:3": true, + "4:0": [ + 162, + 169 + ], + "12:2": true, + "10:8": true, + "6:7": true, + "11:2": true, + "13:9": true, + "9:8": true, + "14:13": true, + "12:1": true, + "9:3": true, + "10:4": true, + "5:9": true, + "10:3": true, + "6:6": true, + "11:1": true, + "9:4": true, + "8:5": true, + "5:7": true, + "11:8": true, + "13:6": true, + "9:2": true, + "13:0": true, + "8:11": true, + "10:2": true, + "12:8": true, + "14:11": true, + "13:2": true, + "9:6": true, + "4:1": [ + 160, + 167 + ], + "11:9": true, + "15:5": true, + "10:0": true, + "14:5": true, + "10:6": true, + "3:15": true, + "15:11": true, + "12:9": true, + "9:0": true, + "13:3": true, + "11:7": true, + "5:8": true, + "12:7": true, + "7:6": true, + "15:4": true, + "14:3": true, + "11:10": true, + "6:5": true, + "12:10": true, + "15:3": true, + "6:11": true, + "14:4": true, + "11:13": true, + "5:12": true, + "8:0": true, + "4:15": true, + "14:2": true, + "13:11": true, + "15:2": true, + "8:6": true, + "5:15": true, + "13:5": true, + "12:13": true, + "15:0": true, + "14:6": true, + "12:14": true, + "10:5": true, + "9:11": true, + "5:10": true, + "10:11": true, + "9:5": true, + "11:14": true, + "8:2": true, + "15:6": true, + "14:0": true, + "2:0": true, + "12:15": true, + "11:12": true, + "5:13": true, + "7:5": true, + "12:12": true, + "11:15": true, + "8:3": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/5_9.json b/src/main/resources/assets/notenoughupdates/dwarven_data/5_9.json index cd6ee4fd..da6f35d7 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/5_9.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/5_9.json @@ -1 +1,197 @@ -{"12:11":true,"11:5":true,"2:7":true,"8:8":true,"7:12":[156,193],"6:10":true,"13:13":true,"12:5":true,"14:9":true,"10:12":true,"2:9":true,"15:7":true,"0:6":true,"14:7":true,"9:12":true,"3:6":true,"13:10":true,"1:8":true,"14:1":true,"13:15":true,"8:7":true,"5:5":true,"4:11":[154,170],"7:13":[157,193],"2:8":true,"9:10":true,"5:11":[156,158],"4:5":true,"13:12":true,"3:2":true,"15:1":true,"1:9":true,"15:8":true,"13:14":true,"3:4":true,"0:3":true,"8:9":true,"7:10":[154,161],"3:3":true,"1:7":true,"0:4":true,"14:8":true,"11:0":true,"14:14":true,"12:6":true,"4:3":true,"2:12":true,"10:9":true,"7:7":true,"2:15":155,"1:10":true,"13:8":true,"12:0":true,"11:6":true,"4:4":true,"10:7":true,"7:9":true,"6:8":true,"3:5":true,"15:12":true,"14:15":true,"13:1":true,"4:2":true,"0:11":true,"14:12":true,"9:7":true,"3:11":true,"2:14":[151,153],"1:13":true,"0:5":true,"2:13":true,"12:3":true,"11:4":true,"7:8":true,"6:9":true,"4:6":true,"1:14":true,"10:1":true,"5:6":true,"13:7":true,"12:4":true,"11:3":true,"12:2":true,"2:10":true,"1:15":true,"10:8":true,"6:7":true,"11:2":true,"8:14":true,"1:12":true,"13:9":true,"9:8":true,"12:1":true,"9:3":true,"1:11":true,"5:9":true,"10:3":true,"1:5":true,"0:13":true,"4:9":true,"11:1":true,"5:7":true,"3:10":true,"11:8":true,"7:4":true,"13:6":true,"8:11":193,"4:7":true,"0:10":true,"12:8":true,"13:2":true,"3:12":true,"0:15":true,"11:9":true,"15:5":true,"10:0":true,"14:5":true,"0:12":true,"12:9":true,"13:3":true,"11:7":true,"2:5":true,"0:14":true,"5:8":true,"13:4":true,"12:7":true,"3:14":155,"7:6":true,"4:8":true,"2:11":true,"15:4":true,"14:3":true,"1:6":true,"3:8":true,"12:10":true,"0:8":true,"15:3":true,"14:4":true,"11:13":true,"5:12":157,"2:4":true,"14:2":true,"13:11":true,"15:2":true,"4:12":[155,156],"13:5":true,"12:13":true,"2:3":true,"14:6":true,"12:14":true,"3:7":true,"5:10":[155,160],"1:3":true,"4:10":true,"1:4":true,"0:7":true,"15:6":true,"12:15":true,"11:12":true,"8:4":true,"7:5":true,"3:9":true,"12:12":true,"8:3":true,"0:9":true,"7:11":[155,160],"4:13":157,"2:6":true} \ No newline at end of file +{ + "12:11": true, + "11:5": true, + "2:7": true, + "8:8": true, + "7:12": [ + 156, + 193 + ], + "6:10": true, + "13:13": true, + "12:5": true, + "14:9": true, + "10:12": true, + "2:9": true, + "15:7": true, + "0:6": true, + "14:7": true, + "9:12": true, + "3:6": true, + "13:10": true, + "1:8": true, + "14:1": true, + "13:15": true, + "8:7": true, + "5:5": true, + "4:11": [ + 154, + 170 + ], + "7:13": [ + 157, + 193 + ], + "2:8": true, + "9:10": true, + "5:11": [ + 156, + 158 + ], + "4:5": true, + "13:12": true, + "3:2": true, + "15:1": true, + "1:9": true, + "15:8": true, + "13:14": true, + "3:4": true, + "0:3": true, + "8:9": true, + "7:10": [ + 154, + 161 + ], + "3:3": true, + "1:7": true, + "0:4": true, + "14:8": true, + "11:0": true, + "14:14": true, + "12:6": true, + "4:3": true, + "2:12": true, + "10:9": true, + "7:7": true, + "2:15": 155, + "1:10": true, + "13:8": true, + "12:0": true, + "11:6": true, + "4:4": true, + "10:7": true, + "7:9": true, + "6:8": true, + "3:5": true, + "15:12": true, + "14:15": true, + "13:1": true, + "4:2": true, + "0:11": true, + "14:12": true, + "9:7": true, + "3:11": true, + "2:14": [ + 151, + 153 + ], + "1:13": true, + "0:5": true, + "2:13": true, + "12:3": true, + "11:4": true, + "7:8": true, + "6:9": true, + "4:6": true, + "1:14": true, + "10:1": true, + "5:6": true, + "13:7": true, + "12:4": true, + "11:3": true, + "12:2": true, + "2:10": true, + "1:15": true, + "10:8": true, + "6:7": true, + "11:2": true, + "8:14": true, + "1:12": true, + "13:9": true, + "9:8": true, + "12:1": true, + "9:3": true, + "1:11": true, + "5:9": true, + "10:3": true, + "1:5": true, + "0:13": true, + "4:9": true, + "11:1": true, + "5:7": true, + "3:10": true, + "11:8": true, + "7:4": true, + "13:6": true, + "8:11": 193, + "4:7": true, + "0:10": true, + "12:8": true, + "13:2": true, + "3:12": true, + "0:15": true, + "11:9": true, + "15:5": true, + "10:0": true, + "14:5": true, + "0:12": true, + "12:9": true, + "13:3": true, + "11:7": true, + "2:5": true, + "0:14": true, + "5:8": true, + "13:4": true, + "12:7": true, + "3:14": 155, + "7:6": true, + "4:8": true, + "2:11": true, + "15:4": true, + "14:3": true, + "1:6": true, + "3:8": true, + "12:10": true, + "0:8": true, + "15:3": true, + "14:4": true, + "11:13": true, + "5:12": 157, + "2:4": true, + "14:2": true, + "13:11": true, + "15:2": true, + "4:12": [ + 155, + 156 + ], + "13:5": true, + "12:13": true, + "2:3": true, + "14:6": true, + "12:14": true, + "3:7": true, + "5:10": [ + 155, + 160 + ], + "1:3": true, + "4:10": true, + "1:4": true, + "0:7": true, + "15:6": true, + "12:15": true, + "11:12": true, + "8:4": true, + "7:5": true, + "3:9": true, + "12:12": true, + "8:3": true, + "0:9": true, + "7:11": [ + 155, + 160 + ], + "4:13": 157, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/6_-3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/6_-3.json index ea179d82..9afd8d50 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/6_-3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/6_-3.json @@ -1 +1,12 @@ -{"10:14":[203,205],"13:15":true,"14:15":204,"12:14":222,"12:15":true,"5:13":208,"4:13":208} \ No newline at end of file +{ + "10:14": [ + 203, + 205 + ], + "13:15": true, + "14:15": 204, + "12:14": 222, + "12:15": true, + "5:13": 208, + "4:13": 208 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/6_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/6_0.json index 57d53e17..138ea888 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/6_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/6_0.json @@ -1 +1,65 @@ -{"9:14":true,"7:12":true,"13:13":true,"10:14":true,"7:15":true,"11:11":true,"10:12":true,"6:13":true,"13:6":true,"9:15":true,"9:12":true,"8:11":true,"13:10":true,"10:15":true,"7:14":true,"13:15":true,"10:10":true,"11:9":true,"7:13":true,"10:6":true,"13:12":true,"6:14":true,"13:14":true,"11:7":true,"10:13":true,"6:12":true,"6:15":true,"9:13":true,"14:14":true,"4:14":[188,224],"8:13":true,"10:9":true,"13:8":true,"15:14":true,"6:11":true,"11:13":true,"10:7":true,"14:15":true,"13:11":true,"4:15":true,"15:15":true,"10:5":[212,213],"9:11":true,"8:12":true,"9:5":true,"13:7":true,"11:14":true,"8:15":true,"11:12":true,"11:15":true,"8:14":true,"13:9":true,"7:11":true,"4:13":[188,223]} \ No newline at end of file +{ + "9:14": true, + "7:12": true, + "13:13": true, + "10:14": true, + "7:15": true, + "11:11": true, + "10:12": true, + "6:13": true, + "13:6": true, + "9:15": true, + "9:12": true, + "8:11": true, + "13:10": true, + "10:15": true, + "7:14": true, + "13:15": true, + "10:10": true, + "11:9": true, + "7:13": true, + "10:6": true, + "13:12": true, + "6:14": true, + "13:14": true, + "11:7": true, + "10:13": true, + "6:12": true, + "6:15": true, + "9:13": true, + "14:14": true, + "4:14": [ + 188, + 224 + ], + "8:13": true, + "10:9": true, + "13:8": true, + "15:14": true, + "6:11": true, + "11:13": true, + "10:7": true, + "14:15": true, + "13:11": true, + "4:15": true, + "15:15": true, + "10:5": [ + 212, + 213 + ], + "9:11": true, + "8:12": true, + "9:5": true, + "13:7": true, + "11:14": true, + "8:15": true, + "11:12": true, + "11:15": true, + "8:14": true, + "13:9": true, + "7:11": true, + "4:13": [ + 188, + 223 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/6_1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/6_1.json index 106e74e5..66594b9d 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/6_1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/6_1.json @@ -1 +1,233 @@ -{"12:11":171,"9:14":true,"11:5":true,"8:8":true,"7:12":true,"6:10":true,"13:13":[182,186],"10:14":236,"7:15":true,"11:11":[172,237],"10:12":true,"6:13":true,"9:15":235,"0:6":true,"9:12":true,"8:1":true,"13:10":[170,186],"10:15":235,"7:14":true,"14:1":true,"13:15":true,"10:10":true,"8:7":true,"5:5":true,"4:11":true,"0:2":[187,221],"7:13":true,"9:10":true,"5:11":true,"4:5":true,"13:12":true,"15:1":true,"6:14":true,"13:14":true,"10:13":[172,236],"0:3":[187,222],"8:9":true,"7:10":true,"6:12":true,"0:4":[189,222],"6:15":true,"9:13":true,"11:0":true,"14:14":true,"4:3":true,"8:13":true,"10:9":true,"7:7":true,"13:8":[182,186],"15:14":true,"9:9":true,"6:1":true,"11:6":true,"4:4":true,"10:7":true,"8:10":true,"7:9":true,"6:8":true,"15:12":true,"14:15":true,"13:1":true,"4:2":true,"0:11":true,"15:15":true,"14:12":true,"9:7":true,"0:5":[192,226],"11:4":true,"9:1":true,"8:12":true,"7:8":true,"6:9":true,"4:6":true,"15:10":true,"14:10":true,"10:1":true,"13:7":true,"11:3":true,"8:15":true,"4:0":true,"15:13":true,"10:8":true,"6:7":true,"11:2":true,"8:14":true,"13:9":[182,186],"9:8":true,"7:1":true,"14:13":true,"9:3":true,"6:0":true,"1:11":true,"10:4":true,"10:3":true,"1:5":true,"0:13":true,"7:2":true,"6:6":true,"4:9":true,"11:1":true,"9:4":true,"8:5":true,"11:8":true,"7:4":true,"13:6":true,"9:2":true,"13:0":true,"8:11":true,"4:7":true,"10:2":true,"0:10":true,"12:8":true,"7:3":true,"14:11":true,"13:2":true,"9:6":true,"4:1":true,"0:15":[187,221],"11:9":true,"6:4":true,"15:5":true,"10:0":true,"14:5":true,"10:6":true,"0:12":true,"15:11":true,"12:9":true,"9:0":true,"6:3":true,"7:0":true,"13:3":true,"11:7":true,"2:5":true,"0:14":[187,221],"13:4":true,"6:2":true,"7:6":true,"4:8":true,"2:11":true,"15:4":true,"14:3":true,"4:14":true,"11:10":true,"6:5":true,"12:10":[171,172],"0:8":true,"15:3":true,"6:11":true,"14:4":true,"11:13":true,"8:0":true,"14:2":true,"13:11":true,"4:15":true,"0:1":[187,221],"15:2":true,"8:6":true,"4:12":true,"13:5":true,"12:13":true,"15:0":true,"14:6":true,"12:14":true,"10:5":true,"9:11":true,"10:11":true,"9:5":true,"4:10":true,"11:14":[236,251],"8:2":true,"0:7":true,"15:6":true,"14:0":true,"12:15":true,"11:12":[171,251],"8:4":true,"7:5":true,"12:12":true,"11:15":true,"8:3":true,"0:9":true,"7:11":true,"4:13":true} \ No newline at end of file +{ + "12:11": 171, + "9:14": true, + "11:5": true, + "8:8": true, + "7:12": true, + "6:10": true, + "13:13": [ + 182, + 186 + ], + "10:14": 236, + "7:15": true, + "11:11": [ + 172, + 237 + ], + "10:12": true, + "6:13": true, + "9:15": 235, + "0:6": true, + "9:12": true, + "8:1": true, + "13:10": [ + 170, + 186 + ], + "10:15": 235, + "7:14": true, + "14:1": true, + "13:15": true, + "10:10": true, + "8:7": true, + "5:5": true, + "4:11": true, + "0:2": [ + 187, + 221 + ], + "7:13": true, + "9:10": true, + "5:11": true, + "4:5": true, + "13:12": true, + "15:1": true, + "6:14": true, + "13:14": true, + "10:13": [ + 172, + 236 + ], + "0:3": [ + 187, + 222 + ], + "8:9": true, + "7:10": true, + "6:12": true, + "0:4": [ + 189, + 222 + ], + "6:15": true, + "9:13": true, + "11:0": true, + "14:14": true, + "4:3": true, + "8:13": true, + "10:9": true, + "7:7": true, + "13:8": [ + 182, + 186 + ], + "15:14": true, + "9:9": true, + "6:1": true, + "11:6": true, + "4:4": true, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "15:12": true, + "14:15": true, + "13:1": true, + "4:2": true, + "0:11": true, + "15:15": true, + "14:12": true, + "9:7": true, + "0:5": [ + 192, + 226 + ], + "11:4": true, + "9:1": true, + "8:12": true, + "7:8": true, + "6:9": true, + "4:6": true, + "15:10": true, + "14:10": true, + "10:1": true, + "13:7": true, + "11:3": true, + "8:15": true, + "4:0": true, + "15:13": true, + "10:8": true, + "6:7": true, + "11:2": true, + "8:14": true, + "13:9": [ + 182, + 186 + ], + "9:8": true, + "7:1": true, + "14:13": true, + "9:3": true, + "6:0": true, + "1:11": true, + "10:4": true, + "10:3": true, + "1:5": true, + "0:13": true, + "7:2": true, + "6:6": true, + "4:9": true, + "11:1": true, + "9:4": true, + "8:5": true, + "11:8": true, + "7:4": true, + "13:6": true, + "9:2": true, + "13:0": true, + "8:11": true, + "4:7": true, + "10:2": true, + "0:10": true, + "12:8": true, + "7:3": true, + "14:11": true, + "13:2": true, + "9:6": true, + "4:1": true, + "0:15": [ + 187, + 221 + ], + "11:9": true, + "6:4": true, + "15:5": true, + "10:0": true, + "14:5": true, + "10:6": true, + "0:12": true, + "15:11": true, + "12:9": true, + "9:0": true, + "6:3": true, + "7:0": true, + "13:3": true, + "11:7": true, + "2:5": true, + "0:14": [ + 187, + 221 + ], + "13:4": true, + "6:2": true, + "7:6": true, + "4:8": true, + "2:11": true, + "15:4": true, + "14:3": true, + "4:14": true, + "11:10": true, + "6:5": true, + "12:10": [ + 171, + 172 + ], + "0:8": true, + "15:3": true, + "6:11": true, + "14:4": true, + "11:13": true, + "8:0": true, + "14:2": true, + "13:11": true, + "4:15": true, + "0:1": [ + 187, + 221 + ], + "15:2": true, + "8:6": true, + "4:12": true, + "13:5": true, + "12:13": true, + "15:0": true, + "14:6": true, + "12:14": true, + "10:5": true, + "9:11": true, + "10:11": true, + "9:5": true, + "4:10": true, + "11:14": [ + 236, + 251 + ], + "8:2": true, + "0:7": true, + "15:6": true, + "14:0": true, + "12:15": true, + "11:12": [ + 171, + 251 + ], + "8:4": true, + "7:5": true, + "12:12": true, + "11:15": true, + "8:3": true, + "0:9": true, + "7:11": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/6_2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/6_2.json index 0c4de502..17a53bab 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/6_2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/6_2.json @@ -1 +1,184 @@ -{"12:11":true,"9:14":[168,232],"11:5":true,"7:12":true,"13:13":true,"12:5":true,"10:14":[168,232],"7:15":233,"11:11":true,"10:12":true,"6:13":true,"9:15":233,"0:0":[149,155],"9:12":true,"8:1":233,"13:10":true,"10:15":[168,233],"7:14":232,"14:1":true,"13:15":true,"10:10":true,"7:13":true,"9:10":true,"13:12":true,"15:1":true,"6:14":true,"13:14":true,"10:13":[165,231],"8:9":true,"7:10":true,"6:12":true,"6:15":true,"9:13":[169,231],"11:0":[234,252],"14:14":true,"12:6":true,"4:3":true,"8:13":[169,231],"5:4":true,"10:9":true,"13:8":true,"15:14":254,"12:0":true,"9:9":true,"6:1":true,"4:4":true,"10:7":true,"8:10":true,"7:9":true,"14:15":true,"13:1":true,"4:2":true,"15:15":true,"12:3":true,"11:4":true,"9:1":233,"8:12":true,"6:9":true,"10:1":[159,233],"13:7":true,"12:4":true,"11:3":true,"8:15":true,"4:0":true,"12:2":true,"10:8":true,"11:2":true,"8:14":232,"13:9":true,"9:8":true,"7:1":true,"12:1":true,"9:3":231,"6:0":true,"10:4":true,"10:3":true,"7:2":true,"11:1":true,"9:4":true,"8:5":[189,190],"7:4":true,"13:6":true,"9:2":232,"13:0":true,"8:11":true,"10:2":232,"12:8":true,"7:3":231,"13:2":true,"9:6":true,"4:1":true,"11:9":true,"6:4":true,"10:0":[234,240],"10:6":true,"12:9":true,"9:0":[234,240],"6:3":true,"7:0":true,"13:3":true,"11:7":true,"13:4":true,"12:7":true,"6:2":true,"14:3":true,"4:14":[188,224],"6:5":true,"12:10":true,"6:11":true,"14:4":true,"11:13":true,"8:0":true,"14:2":true,"13:11":true,"4:15":true,"15:2":true,"13:5":true,"15:0":true,"10:5":true,"9:11":true,"5:10":true,"10:11":true,"9:5":189,"11:14":true,"8:2":[158,232],"1:4":true,"14:0":true,"11:12":true,"8:4":[228,230],"7:5":true,"11:15":true,"8:3":231,"7:11":true,"4:13":[188,223]} \ No newline at end of file +{ + "12:11": true, + "9:14": [ + 168, + 232 + ], + "11:5": true, + "7:12": true, + "13:13": true, + "12:5": true, + "10:14": [ + 168, + 232 + ], + "7:15": 233, + "11:11": true, + "10:12": true, + "6:13": true, + "9:15": 233, + "0:0": [ + 149, + 155 + ], + "9:12": true, + "8:1": 233, + "13:10": true, + "10:15": [ + 168, + 233 + ], + "7:14": 232, + "14:1": true, + "13:15": true, + "10:10": true, + "7:13": true, + "9:10": true, + "13:12": true, + "15:1": true, + "6:14": true, + "13:14": true, + "10:13": [ + 165, + 231 + ], + "8:9": true, + "7:10": true, + "6:12": true, + "6:15": true, + "9:13": [ + 169, + 231 + ], + "11:0": [ + 234, + 252 + ], + "14:14": true, + "12:6": true, + "4:3": true, + "8:13": [ + 169, + 231 + ], + "5:4": true, + "10:9": true, + "13:8": true, + "15:14": 254, + "12:0": true, + "9:9": true, + "6:1": true, + "4:4": true, + "10:7": true, + "8:10": true, + "7:9": true, + "14:15": true, + "13:1": true, + "4:2": true, + "15:15": true, + "12:3": true, + "11:4": true, + "9:1": 233, + "8:12": true, + "6:9": true, + "10:1": [ + 159, + 233 + ], + "13:7": true, + "12:4": true, + "11:3": true, + "8:15": true, + "4:0": true, + "12:2": true, + "10:8": true, + "11:2": true, + "8:14": 232, + "13:9": true, + "9:8": true, + "7:1": true, + "12:1": true, + "9:3": 231, + "6:0": true, + "10:4": true, + "10:3": true, + "7:2": true, + "11:1": true, + "9:4": true, + "8:5": [ + 189, + 190 + ], + "7:4": true, + "13:6": true, + "9:2": 232, + "13:0": true, + "8:11": true, + "10:2": 232, + "12:8": true, + "7:3": 231, + "13:2": true, + "9:6": true, + "4:1": true, + "11:9": true, + "6:4": true, + "10:0": [ + 234, + 240 + ], + "10:6": true, + "12:9": true, + "9:0": [ + 234, + 240 + ], + "6:3": true, + "7:0": true, + "13:3": true, + "11:7": true, + "13:4": true, + "12:7": true, + "6:2": true, + "14:3": true, + "4:14": [ + 188, + 224 + ], + "6:5": true, + "12:10": true, + "6:11": true, + "14:4": true, + "11:13": true, + "8:0": true, + "14:2": true, + "13:11": true, + "4:15": true, + "15:2": true, + "13:5": true, + "15:0": true, + "10:5": true, + "9:11": true, + "5:10": true, + "10:11": true, + "9:5": 189, + "11:14": true, + "8:2": [ + 158, + 232 + ], + "1:4": true, + "14:0": true, + "11:12": true, + "8:4": [ + 228, + 230 + ], + "7:5": true, + "11:15": true, + "8:3": 231, + "7:11": true, + "4:13": [ + 188, + 223 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/6_3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/6_3.json index bb5f8edd..c20fc48e 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/6_3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/6_3.json @@ -1 +1,236 @@ -{"15:9":[160,162],"9:14":true,"11:5":[165,237],"8:8":true,"7:12":true,"6:10":true,"13:13":true,"12:5":[164,165],"10:14":true,"7:15":true,"14:9":[161,164],"11:11":true,"10:12":true,"6:13":true,"9:15":true,"0:6":true,"9:12":true,"8:1":[188,235],"13:10":true,"10:15":true,"7:14":true,"14:1":true,"13:15":true,"10:10":true,"8:7":true,"4:11":true,"0:2":true,"7:13":true,"9:10":true,"4:5":true,"13:12":true,"15:1":254,"6:14":true,"13:14":true,"10:13":true,"0:3":true,"8:9":true,"7:10":true,"6:12":true,"0:4":true,"6:15":true,"14:8":[162,163],"9:13":true,"11:0":true,"14:14":true,"12:6":[163,164],"4:3":true,"8:13":true,"10:9":true,"7:7":true,"13:8":[162,186],"15:14":true,"12:0":true,"9:9":true,"6:1":true,"11:6":[164,237],"4:4":true,"10:7":236,"8:10":true,"7:9":true,"6:8":true,"15:12":true,"14:15":true,"13:1":true,"4:2":true,"0:11":true,"15:15":true,"14:12":true,"9:7":true,"0:5":true,"12:3":true,"11:4":[165,251],"9:1":true,"8:12":true,"7:8":true,"6:9":true,"4:6":true,"15:10":[163,254],"14:10":true,"10:1":235,"13:7":[163,186],"12:4":165,"11:3":[165,252],"8:15":true,"4:0":true,"15:13":true,"12:2":true,"10:8":true,"6:7":true,"11:2":true,"8:14":true,"13:9":true,"9:8":true,"7:1":true,"14:13":true,"12:1":true,"9:3":236,"6:0":true,"10:4":[188,236],"10:3":[188,236],"0:13":true,"7:2":true,"6:6":true,"4:9":true,"11:1":true,"9:4":true,"8:5":true,"11:8":true,"7:4":true,"13:6":[165,186],"9:2":236,"13:0":true,"8:11":true,"4:7":true,"10:2":236,"0:10":true,"7:3":true,"14:11":true,"13:2":true,"9:6":true,"4:1":true,"0:15":true,"11:9":true,"6:4":true,"15:5":254,"10:0":[168,234],"14:5":true,"10:6":true,"0:12":true,"15:11":true,"9:0":234,"6:3":true,"7:0":234,"13:3":[167,186],"11:7":true,"0:14":true,"13:4":true,"12:7":162,"6:2":true,"7:6":true,"4:8":true,"15:4":254,"14:3":254,"4:14":true,"11:10":true,"6:5":true,"0:8":true,"15:3":254,"6:11":true,"14:4":254,"11:13":true,"8:0":true,"14:2":254,"13:11":true,"4:15":true,"0:1":true,"15:2":254,"8:6":true,"4:12":true,"13:5":true,"15:0":true,"14:6":true,"10:5":true,"9:11":true,"10:11":true,"9:5":true,"4:10":true,"11:14":true,"8:2":236,"0:7":true,"15:6":true,"14:0":true,"11:12":true,"8:4":true,"7:5":true,"11:15":true,"8:3":true,"0:9":true,"7:11":true,"4:13":true} \ No newline at end of file +{ + "15:9": [ + 160, + 162 + ], + "9:14": true, + "11:5": [ + 165, + 237 + ], + "8:8": true, + "7:12": true, + "6:10": true, + "13:13": true, + "12:5": [ + 164, + 165 + ], + "10:14": true, + "7:15": true, + "14:9": [ + 161, + 164 + ], + "11:11": true, + "10:12": true, + "6:13": true, + "9:15": true, + "0:6": true, + "9:12": true, + "8:1": [ + 188, + 235 + ], + "13:10": true, + "10:15": true, + "7:14": true, + "14:1": true, + "13:15": true, + "10:10": true, + "8:7": true, + "4:11": true, + "0:2": true, + "7:13": true, + "9:10": true, + "4:5": true, + "13:12": true, + "15:1": 254, + "6:14": true, + "13:14": true, + "10:13": true, + "0:3": true, + "8:9": true, + "7:10": true, + "6:12": true, + "0:4": true, + "6:15": true, + "14:8": [ + 162, + 163 + ], + "9:13": true, + "11:0": true, + "14:14": true, + "12:6": [ + 163, + 164 + ], + "4:3": true, + "8:13": true, + "10:9": true, + "7:7": true, + "13:8": [ + 162, + 186 + ], + "15:14": true, + "12:0": true, + "9:9": true, + "6:1": true, + "11:6": [ + 164, + 237 + ], + "4:4": true, + "10:7": 236, + "8:10": true, + "7:9": true, + "6:8": true, + "15:12": true, + "14:15": true, + "13:1": true, + "4:2": true, + "0:11": true, + "15:15": true, + "14:12": true, + "9:7": true, + "0:5": true, + "12:3": true, + "11:4": [ + 165, + 251 + ], + "9:1": true, + "8:12": true, + "7:8": true, + "6:9": true, + "4:6": true, + "15:10": [ + 163, + 254 + ], + "14:10": true, + "10:1": 235, + "13:7": [ + 163, + 186 + ], + "12:4": 165, + "11:3": [ + 165, + 252 + ], + "8:15": true, + "4:0": true, + "15:13": true, + "12:2": true, + "10:8": true, + "6:7": true, + "11:2": true, + "8:14": true, + "13:9": true, + "9:8": true, + "7:1": true, + "14:13": true, + "12:1": true, + "9:3": 236, + "6:0": true, + "10:4": [ + 188, + 236 + ], + "10:3": [ + 188, + 236 + ], + "0:13": true, + "7:2": true, + "6:6": true, + "4:9": true, + "11:1": true, + "9:4": true, + "8:5": true, + "11:8": true, + "7:4": true, + "13:6": [ + 165, + 186 + ], + "9:2": 236, + "13:0": true, + "8:11": true, + "4:7": true, + "10:2": 236, + "0:10": true, + "7:3": true, + "14:11": true, + "13:2": true, + "9:6": true, + "4:1": true, + "0:15": true, + "11:9": true, + "6:4": true, + "15:5": 254, + "10:0": [ + 168, + 234 + ], + "14:5": true, + "10:6": true, + "0:12": true, + "15:11": true, + "9:0": 234, + "6:3": true, + "7:0": 234, + "13:3": [ + 167, + 186 + ], + "11:7": true, + "0:14": true, + "13:4": true, + "12:7": 162, + "6:2": true, + "7:6": true, + "4:8": true, + "15:4": 254, + "14:3": 254, + "4:14": true, + "11:10": true, + "6:5": true, + "0:8": true, + "15:3": 254, + "6:11": true, + "14:4": 254, + "11:13": true, + "8:0": true, + "14:2": 254, + "13:11": true, + "4:15": true, + "0:1": true, + "15:2": 254, + "8:6": true, + "4:12": true, + "13:5": true, + "15:0": true, + "14:6": true, + "10:5": true, + "9:11": true, + "10:11": true, + "9:5": true, + "4:10": true, + "11:14": true, + "8:2": 236, + "0:7": true, + "15:6": true, + "14:0": true, + "11:12": true, + "8:4": true, + "7:5": true, + "11:15": true, + "8:3": true, + "0:9": true, + "7:11": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/6_5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/6_5.json index 5df021c3..e318a13a 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/6_5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/6_5.json @@ -1 +1,303 @@ -{"8:8":[161,236],"6:10":true,"13:13":[182,186],"0:6":true,"14:1":true,"13:15":true,"10:10":236,"8:7":[164,236],"5:5":true,"4:11":true,"0:2":true,"9:10":236,"5:11":true,"4:5":true,"13:12":true,"15:1":true,"13:14":[182,186],"0:3":true,"8:9":[162,236],"7:10":236,"0:4":true,"14:14":true,"4:3":true,"2:12":true,"10:9":236,"7:7":true,"2:15":true,"15:14":true,"9:9":236,"4:4":true,"10:7":236,"8:10":236,"7:9":[163,236],"6:8":true,"15:12":254,"14:15":true,"13:1":true,"4:2":true,"0:11":true,"15:15":true,"14:12":254,"9:7":236,"3:11":true,"2:14":true,"1:13":true,"0:5":true,"2:13":true,"7:8":true,"6:9":true,"4:6":true,"1:14":true,"4:0":true,"15:13":true,"1:15":true,"10:8":236,"6:7":true,"9:8":[160,236],"14:13":254,"1:11":true,"3:13":true,"1:5":true,"0:13":true,"11:8":[236,251],"13:6":[182,186],"13:0":true,"12:8":182,"14:11":true,"13:2":[166,186],"4:1":true,"3:12":true,"0:15":true,"11:9":[236,251],"15:5":254,"14:5":254,"3:15":true,"0:12":true,"15:11":254,"12:9":true,"13:3":[182,186],"11:7":[236,251],"2:5":true,"0:14":true,"13:4":[182,186],"12:7":true,"3:14":true,"2:11":true,"15:4":254,"14:3":254,"4:14":true,"11:10":true,"12:10":true,"5:14":true,"15:3":254,"14:4":254,"14:2":[166,254],"13:11":true,"4:15":[129,227],"0:1":true,"15:2":[165,254],"4:12":true,"13:5":[182,186],"15:0":true,"14:6":254,"15:6":true,"14:0":true,"5:13":[124,128],"4:13":true,"12:11":true,"9:14":236,"11:5":[236,237],"7:12":true,"12:5":182,"10:14":236,"7:15":235,"11:11":true,"10:12":236,"6:13":true,"9:15":235,"9:12":236,"8:1":true,"13:10":true,"10:15":235,"7:14":true,"7:13":true,"6:14":true,"10:13":236,"6:12":236,"6:15":true,"9:13":236,"11:0":true,"12:6":[153,182],"8:13":[126,236],"13:8":true,"6:1":true,"11:6":[236,237],"11:4":[166,251],"9:1":true,"8:12":236,"15:10":254,"14:10":254,"10:1":true,"13:7":true,"12:4":182,"11:3":[166,252],"8:15":true,"12:2":[166,168],"11:2":true,"8:14":[127,236],"13:9":true,"7:1":true,"9:3":true,"6:0":true,"10:4":true,"5:9":true,"10:3":true,"7:2":true,"6:6":true,"4:9":true,"11:1":true,"9:4":true,"8:5":true,"5:7":true,"3:10":true,"7:4":true,"9:2":true,"8:11":true,"4:7":true,"10:2":true,"0:10":true,"7:3":true,"9:6":[165,236],"6:4":true,"10:0":true,"10:6":236,"9:0":true,"6:3":true,"7:0":true,"6:2":true,"7:6":236,"4:8":true,"6:5":true,"0:8":true,"6:11":true,"11:13":[236,252],"8:0":true,"8:6":true,"12:13":182,"12:14":182,"10:5":[166,236],"9:11":236,"10:11":true,"9:5":true,"4:10":true,"11:14":[236,251],"8:2":true,"0:7":true,"12:15":182,"11:12":true,"8:4":true,"7:5":true,"12:12":182,"11:15":[235,237],"8:3":true,"0:9":true,"7:11":236} \ No newline at end of file +{ + "8:8": [ + 161, + 236 + ], + "6:10": true, + "13:13": [ + 182, + 186 + ], + "0:6": true, + "14:1": true, + "13:15": true, + "10:10": 236, + "8:7": [ + 164, + 236 + ], + "5:5": true, + "4:11": true, + "0:2": true, + "9:10": 236, + "5:11": true, + "4:5": true, + "13:12": true, + "15:1": true, + "13:14": [ + 182, + 186 + ], + "0:3": true, + "8:9": [ + 162, + 236 + ], + "7:10": 236, + "0:4": true, + "14:14": true, + "4:3": true, + "2:12": true, + "10:9": 236, + "7:7": true, + "2:15": true, + "15:14": true, + "9:9": 236, + "4:4": true, + "10:7": 236, + "8:10": 236, + "7:9": [ + 163, + 236 + ], + "6:8": true, + "15:12": 254, + "14:15": true, + "13:1": true, + "4:2": true, + "0:11": true, + "15:15": true, + "14:12": 254, + "9:7": 236, + "3:11": true, + "2:14": true, + "1:13": true, + "0:5": true, + "2:13": true, + "7:8": true, + "6:9": true, + "4:6": true, + "1:14": true, + "4:0": true, + "15:13": true, + "1:15": true, + "10:8": 236, + "6:7": true, + "9:8": [ + 160, + 236 + ], + "14:13": 254, + "1:11": true, + "3:13": true, + "1:5": true, + "0:13": true, + "11:8": [ + 236, + 251 + ], + "13:6": [ + 182, + 186 + ], + "13:0": true, + "12:8": 182, + "14:11": true, + "13:2": [ + 166, + 186 + ], + "4:1": true, + "3:12": true, + "0:15": true, + "11:9": [ + 236, + 251 + ], + "15:5": 254, + "14:5": 254, + "3:15": true, + "0:12": true, + "15:11": 254, + "12:9": true, + "13:3": [ + 182, + 186 + ], + "11:7": [ + 236, + 251 + ], + "2:5": true, + "0:14": true, + "13:4": [ + 182, + 186 + ], + "12:7": true, + "3:14": true, + "2:11": true, + "15:4": 254, + "14:3": 254, + "4:14": true, + "11:10": true, + "12:10": true, + "5:14": true, + "15:3": 254, + "14:4": 254, + "14:2": [ + 166, + 254 + ], + "13:11": true, + "4:15": [ + 129, + 227 + ], + "0:1": true, + "15:2": [ + 165, + 254 + ], + "4:12": true, + "13:5": [ + 182, + 186 + ], + "15:0": true, + "14:6": 254, + "15:6": true, + "14:0": true, + "5:13": [ + 124, + 128 + ], + "4:13": true, + "12:11": true, + "9:14": 236, + "11:5": [ + 236, + 237 + ], + "7:12": true, + "12:5": 182, + "10:14": 236, + "7:15": 235, + "11:11": true, + "10:12": 236, + "6:13": true, + "9:15": 235, + "9:12": 236, + "8:1": true, + "13:10": true, + "10:15": 235, + "7:14": true, + "7:13": true, + "6:14": true, + "10:13": 236, + "6:12": 236, + "6:15": true, + "9:13": 236, + "11:0": true, + "12:6": [ + 153, + 182 + ], + "8:13": [ + 126, + 236 + ], + "13:8": true, + "6:1": true, + "11:6": [ + 236, + 237 + ], + "11:4": [ + 166, + 251 + ], + "9:1": true, + "8:12": 236, + "15:10": 254, + "14:10": 254, + "10:1": true, + "13:7": true, + "12:4": 182, + "11:3": [ + 166, + 252 + ], + "8:15": true, + "12:2": [ + 166, + 168 + ], + "11:2": true, + "8:14": [ + 127, + 236 + ], + "13:9": true, + "7:1": true, + "9:3": true, + "6:0": true, + "10:4": true, + "5:9": true, + "10:3": true, + "7:2": true, + "6:6": true, + "4:9": true, + "11:1": true, + "9:4": true, + "8:5": true, + "5:7": true, + "3:10": true, + "7:4": true, + "9:2": true, + "8:11": true, + "4:7": true, + "10:2": true, + "0:10": true, + "7:3": true, + "9:6": [ + 165, + 236 + ], + "6:4": true, + "10:0": true, + "10:6": 236, + "9:0": true, + "6:3": true, + "7:0": true, + "6:2": true, + "7:6": 236, + "4:8": true, + "6:5": true, + "0:8": true, + "6:11": true, + "11:13": [ + 236, + 252 + ], + "8:0": true, + "8:6": true, + "12:13": 182, + "12:14": 182, + "10:5": [ + 166, + 236 + ], + "9:11": 236, + "10:11": true, + "9:5": true, + "4:10": true, + "11:14": [ + 236, + 251 + ], + "8:2": true, + "0:7": true, + "12:15": 182, + "11:12": true, + "8:4": true, + "7:5": true, + "12:12": 182, + "11:15": [ + 235, + 237 + ], + "8:3": true, + "0:9": true, + "7:11": 236 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/6_6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/6_6.json index 23298771..efbef311 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/6_6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/6_6.json @@ -1 +1,298 @@ -{"15:9":[116,232],"12:11":true,"1:1":true,"11:5":true,"2:7":true,"8:8":123,"6:10":125,"7:15":true,"14:9":118,"11:11":true,"2:9":true,"15:7":[116,184],"3:0":true,"9:15":true,"0:0":true,"14:7":[109,184],"8:1":233,"3:6":true,"10:15":true,"1:8":true,"14:1":true,"13:15":true,"8:7":[118,165],"5:5":[112,113],"4:11":true,"0:2":true,"2:8":true,"5:11":true,"4:5":112,"3:2":123,"15:1":true,"1:9":true,"15:8":true,"0:3":true,"8:9":124,"7:10":125,"6:12":true,"1:7":true,"6:15":true,"14:8":true,"2:1":true,"11:0":[234,237],"12:6":[111,115],"4:3":[188,223],"5:4":111,"10:9":[122,123],"7:7":true,"2:15":true,"1:10":true,"13:8":119,"12:0":true,"9:9":[123,124],"6:1":233,"11:6":[112,120],"4:4":111,"10:7":[116,189],"7:9":124,"6:8":[120,123],"14:15":true,"13:1":true,"4:2":[171,224],"0:11":true,"15:15":true,"9:7":[117,121],"11:4":true,"9:1":233,"7:8":123,"6:9":[123,124],"4:6":113,"15:10":[117,118],"14:10":[118,119],"10:1":true,"5:6":[113,117],"13:7":[114,184],"11:3":true,"8:15":true,"4:0":[174,226],"2:10":true,"1:15":true,"10:8":[121,166],"6:7":[117,120],"11:2":true,"1:12":true,"13:9":120,"9:8":[122,164],"7:1":233,"9:3":true,"6:0":234,"1:11":true,"10:4":true,"5:9":[121,122],"10:3":true,"0:13":true,"7:2":232,"6:6":116,"4:9":119,"11:1":true,"9:4":true,"8:5":true,"5:7":[117,121],"3:10":true,"11:8":[120,167],"7:4":true,"13:6":[110,182],"9:2":true,"13:0":true,"4:7":118,"10:2":true,"0:10":true,"12:8":[120,166],"7:3":[110,231],"14:11":true,"13:2":true,"9:6":true,"4:1":[123,225],"3:12":true,"11:9":122,"6:4":[111,230],"10:0":234,"10:6":true,"3:15":true,"0:12":true,"15:11":true,"12:9":[120,121],"9:0":234,"6:3":[110,231],"7:0":234,"13:3":true,"11:7":[116,120],"5:8":[118,122],"13:4":true,"12:7":[114,120],"6:2":232,"7:6":true,"4:8":true,"2:11":true,"6:5":[112,190],"3:8":true,"2:2":true,"0:8":true,"1:0":true,"5:12":true,"8:0":234,"14:2":true,"13:11":true,"4:15":true,"0:1":true,"15:2":true,"8:6":true,"4:12":true,"3:1":true,"13:5":true,"5:15":true,"2:3":true,"15:0":true,"10:5":true,"9:11":true,"5:10":true,"3:7":true,"1:3":true,"10:11":true,"9:5":true,"4:10":true,"8:2":232,"14:0":true,"2:0":true,"12:15":true,"8:4":true,"5:13":true,"1:2":true,"7:5":[115,190],"3:9":true,"11:15":true,"8:3":[109,231],"0:9":true,"2:6":true} \ No newline at end of file +{ + "15:9": [ + 116, + 232 + ], + "12:11": true, + "1:1": true, + "11:5": true, + "2:7": true, + "8:8": 123, + "6:10": 125, + "7:15": true, + "14:9": 118, + "11:11": true, + "2:9": true, + "15:7": [ + 116, + 184 + ], + "3:0": true, + "9:15": true, + "0:0": true, + "14:7": [ + 109, + 184 + ], + "8:1": 233, + "3:6": true, + "10:15": true, + "1:8": true, + "14:1": true, + "13:15": true, + "8:7": [ + 118, + 165 + ], + "5:5": [ + 112, + 113 + ], + "4:11": true, + "0:2": true, + "2:8": true, + "5:11": true, + "4:5": 112, + "3:2": 123, + "15:1": true, + "1:9": true, + "15:8": true, + "0:3": true, + "8:9": 124, + "7:10": 125, + "6:12": true, + "1:7": true, + "6:15": true, + "14:8": true, + "2:1": true, + "11:0": [ + 234, + 237 + ], + "12:6": [ + 111, + 115 + ], + "4:3": [ + 188, + 223 + ], + "5:4": 111, + "10:9": [ + 122, + 123 + ], + "7:7": true, + "2:15": true, + "1:10": true, + "13:8": 119, + "12:0": true, + "9:9": [ + 123, + 124 + ], + "6:1": 233, + "11:6": [ + 112, + 120 + ], + "4:4": 111, + "10:7": [ + 116, + 189 + ], + "7:9": 124, + "6:8": [ + 120, + 123 + ], + "14:15": true, + "13:1": true, + "4:2": [ + 171, + 224 + ], + "0:11": true, + "15:15": true, + "9:7": [ + 117, + 121 + ], + "11:4": true, + "9:1": 233, + "7:8": 123, + "6:9": [ + 123, + 124 + ], + "4:6": 113, + "15:10": [ + 117, + 118 + ], + "14:10": [ + 118, + 119 + ], + "10:1": true, + "5:6": [ + 113, + 117 + ], + "13:7": [ + 114, + 184 + ], + "11:3": true, + "8:15": true, + "4:0": [ + 174, + 226 + ], + "2:10": true, + "1:15": true, + "10:8": [ + 121, + 166 + ], + "6:7": [ + 117, + 120 + ], + "11:2": true, + "1:12": true, + "13:9": 120, + "9:8": [ + 122, + 164 + ], + "7:1": 233, + "9:3": true, + "6:0": 234, + "1:11": true, + "10:4": true, + "5:9": [ + 121, + 122 + ], + "10:3": true, + "0:13": true, + "7:2": 232, + "6:6": 116, + "4:9": 119, + "11:1": true, + "9:4": true, + "8:5": true, + "5:7": [ + 117, + 121 + ], + "3:10": true, + "11:8": [ + 120, + 167 + ], + "7:4": true, + "13:6": [ + 110, + 182 + ], + "9:2": true, + "13:0": true, + "4:7": 118, + "10:2": true, + "0:10": true, + "12:8": [ + 120, + 166 + ], + "7:3": [ + 110, + 231 + ], + "14:11": true, + "13:2": true, + "9:6": true, + "4:1": [ + 123, + 225 + ], + "3:12": true, + "11:9": 122, + "6:4": [ + 111, + 230 + ], + "10:0": 234, + "10:6": true, + "3:15": true, + "0:12": true, + "15:11": true, + "12:9": [ + 120, + 121 + ], + "9:0": 234, + "6:3": [ + 110, + 231 + ], + "7:0": 234, + "13:3": true, + "11:7": [ + 116, + 120 + ], + "5:8": [ + 118, + 122 + ], + "13:4": true, + "12:7": [ + 114, + 120 + ], + "6:2": 232, + "7:6": true, + "4:8": true, + "2:11": true, + "6:5": [ + 112, + 190 + ], + "3:8": true, + "2:2": true, + "0:8": true, + "1:0": true, + "5:12": true, + "8:0": 234, + "14:2": true, + "13:11": true, + "4:15": true, + "0:1": true, + "15:2": true, + "8:6": true, + "4:12": true, + "3:1": true, + "13:5": true, + "5:15": true, + "2:3": true, + "15:0": true, + "10:5": true, + "9:11": true, + "5:10": true, + "3:7": true, + "1:3": true, + "10:11": true, + "9:5": true, + "4:10": true, + "8:2": 232, + "14:0": true, + "2:0": true, + "12:15": true, + "8:4": true, + "5:13": true, + "1:2": true, + "7:5": [ + 115, + 190 + ], + "3:9": true, + "11:15": true, + "8:3": [ + 109, + 231 + ], + "0:9": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/7_-1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/7_-1.json index 96e0e727..beb62e5f 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/7_-1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/7_-1.json @@ -1 +1,4 @@ -{"12:1":true,"9:0":233} \ No newline at end of file +{ + "12:1": true, + "9:0": 233 +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/7_-2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/7_-2.json index 3200d788..471796ed 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/7_-2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/7_-2.json @@ -1 +1,22 @@ -{"14:1":true,"4:11":true,"15:1":true,"0:3":true,"0:4":true,"12:0":true,"13:1":true,"0:5":true,"12:2":228,"1:5":true,"11:1":228,"15:4":true,"15:3":true,"5:12":true,"14:2":true,"15:2":true,"15:0":true,"4:10":true,"5:13":true,"2:6":true} \ No newline at end of file +{ + "14:1": true, + "4:11": true, + "15:1": true, + "0:3": true, + "0:4": true, + "12:0": true, + "13:1": true, + "0:5": true, + "12:2": 228, + "1:5": true, + "11:1": 228, + "15:4": true, + "15:3": true, + "5:12": true, + "14:2": true, + "15:2": true, + "15:0": true, + "4:10": true, + "5:13": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/7_-3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/7_-3.json index 5d043173..3e1ceb41 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/7_-3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/7_-3.json @@ -1 +1,28 @@ -{"11:11":true,"15:7":true,"12:8":222,"11:9":222,"15:11":true,"15:8":true,"10:9":[222,223],"12:10":true,"15:14":true,"9:9":[222,223],"11:13":true,"15:12":true,"15:15":true,"12:13":true,"15:10":true,"15:6":true,"15:13":true,"12:15":true,"12:12":true,"11:15":true} \ No newline at end of file +{ + "11:11": true, + "15:7": true, + "12:8": 222, + "11:9": 222, + "15:11": true, + "15:8": true, + "10:9": [ + 222, + 223 + ], + "12:10": true, + "15:14": true, + "9:9": [ + 222, + 223 + ], + "11:13": true, + "15:12": true, + "15:15": true, + "12:13": true, + "15:10": true, + "15:6": true, + "15:13": true, + "12:15": true, + "12:12": true, + "11:15": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/7_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/7_0.json index eda3d134..91d97e1c 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/7_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/7_0.json @@ -1 +1,24 @@ -{"9:14":true,"10:14":true,"7:15":true,"9:15":true,"10:15":true,"7:14":true,"13:15":true,"13:14":true,"14:14":true,"15:14":true,"15:15":true,"1:14":true,"8:15":true,"1:15":true,"8:14":true,"9:6":true,"0:15":true,"0:14":true,"12:14":true,"11:14":true,"12:15":true,"11:15":true} \ No newline at end of file +{ + "9:14": true, + "10:14": true, + "7:15": true, + "9:15": true, + "10:15": true, + "7:14": true, + "13:15": true, + "13:14": true, + "14:14": true, + "15:14": true, + "15:15": true, + "1:14": true, + "8:15": true, + "1:15": true, + "8:14": true, + "9:6": true, + "0:15": true, + "0:14": true, + "12:14": true, + "11:14": true, + "12:15": true, + "11:15": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/7_1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/7_1.json index f0ae8c33..984bdc75 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/7_1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/7_1.json @@ -1 +1,115 @@ -{"12:11":true,"9:14":true,"1:1":true,"11:5":true,"8:8":254,"7:12":true,"13:13":true,"12:5":true,"10:14":true,"7:15":true,"11:11":true,"9:15":true,"0:6":true,"0:0":true,"8:1":true,"10:15":true,"7:14":true,"10:10":true,"0:2":true,"7:13":true,"15:1":true,"0:3":true,"0:4":true,"9:13":true,"11:0":true,"14:14":true,"12:6":true,"8:13":true,"10:9":true,"1:10":true,"15:14":true,"12:0":true,"9:9":true,"11:6":[181,254],"10:7":true,"0:11":true,"15:15":true,"9:7":true,"1:13":true,"0:5":true,"1:14":true,"9:1":true,"11:4":true,"8:12":true,"10:1":true,"12:4":true,"11:3":true,"8:15":true,"15:13":true,"1:15":true,"10:8":254,"8:14":true,"1:12":true,"9:8":254,"7:1":true,"14:13":true,"9:3":true,"1:11":true,"1:5":true,"0:13":true,"7:2":true,"11:1":true,"11:8":[183,254],"7:4":true,"9:2":true,"13:0":true,"10:2":true,"0:10":true,"12:8":true,"7:3":true,"0:15":true,"11:9":true,"10:0":true,"10:6":254,"0:12":true,"12:9":true,"9:0":true,"7:0":true,"13:3":true,"11:7":true,"0:14":true,"12:7":254,"14:3":true,"1:6":true,"11:10":true,"12:10":true,"15:3":true,"1:0":true,"11:13":true,"8:0":true,"14:2":true,"0:1":true,"15:2":true,"15:0":true,"1:3":true,"11:14":true,"8:2":true,"1:4":true,"14:0":true,"11:12":true,"8:4":true,"1:2":true,"7:5":254,"12:12":true,"11:15":true,"8:3":true,"7:11":true} \ No newline at end of file +{ + "12:11": true, + "9:14": true, + "1:1": true, + "11:5": true, + "8:8": 254, + "7:12": true, + "13:13": true, + "12:5": true, + "10:14": true, + "7:15": true, + "11:11": true, + "9:15": true, + "0:6": true, + "0:0": true, + "8:1": true, + "10:15": true, + "7:14": true, + "10:10": true, + "0:2": true, + "7:13": true, + "15:1": true, + "0:3": true, + "0:4": true, + "9:13": true, + "11:0": true, + "14:14": true, + "12:6": true, + "8:13": true, + "10:9": true, + "1:10": true, + "15:14": true, + "12:0": true, + "9:9": true, + "11:6": [ + 181, + 254 + ], + "10:7": true, + "0:11": true, + "15:15": true, + "9:7": true, + "1:13": true, + "0:5": true, + "1:14": true, + "9:1": true, + "11:4": true, + "8:12": true, + "10:1": true, + "12:4": true, + "11:3": true, + "8:15": true, + "15:13": true, + "1:15": true, + "10:8": 254, + "8:14": true, + "1:12": true, + "9:8": 254, + "7:1": true, + "14:13": true, + "9:3": true, + "1:11": true, + "1:5": true, + "0:13": true, + "7:2": true, + "11:1": true, + "11:8": [ + 183, + 254 + ], + "7:4": true, + "9:2": true, + "13:0": true, + "10:2": true, + "0:10": true, + "12:8": true, + "7:3": true, + "0:15": true, + "11:9": true, + "10:0": true, + "10:6": 254, + "0:12": true, + "12:9": true, + "9:0": true, + "7:0": true, + "13:3": true, + "11:7": true, + "0:14": true, + "12:7": 254, + "14:3": true, + "1:6": true, + "11:10": true, + "12:10": true, + "15:3": true, + "1:0": true, + "11:13": true, + "8:0": true, + "14:2": true, + "0:1": true, + "15:2": true, + "15:0": true, + "1:3": true, + "11:14": true, + "8:2": true, + "1:4": true, + "14:0": true, + "11:12": true, + "8:4": true, + "1:2": true, + "7:5": 254, + "12:12": true, + "11:15": true, + "8:3": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/7_2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/7_2.json index 98887d05..daccb954 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/7_2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/7_2.json @@ -1 +1,66 @@ -{"9:14":true,"1:1":true,"11:5":true,"10:14":true,"7:15":254,"11:11":true,"9:15":254,"0:0":true,"8:1":true,"10:15":true,"7:14":254,"13:15":true,"0:2":true,"15:1":true,"13:14":true,"11:0":true,"14:14":true,"15:14":true,"12:0":true,"11:6":true,"13:1":true,"15:15":true,"11:4":true,"9:1":true,"1:14":254,"10:1":true,"11:3":true,"8:15":254,"12:2":true,"1:15":true,"11:2":true,"8:14":254,"7:1":true,"12:1":true,"7:2":true,"11:1":true,"11:8":true,"9:2":true,"13:0":true,"10:2":true,"13:2":true,"0:15":true,"11:9":true,"10:0":true,"9:0":true,"7:0":true,"11:7":true,"0:14":254,"11:10":true,"1:0":true,"11:13":true,"8:0":true,"14:2":true,"0:1":true,"15:2":true,"12:14":true,"15:0":true,"11:14":true,"8:2":true,"14:0":true,"12:15":true,"11:12":true,"1:2":true,"11:15":true} \ No newline at end of file +{ + "9:14": true, + "1:1": true, + "11:5": true, + "10:14": true, + "7:15": 254, + "11:11": true, + "9:15": 254, + "0:0": true, + "8:1": true, + "10:15": true, + "7:14": 254, + "13:15": true, + "0:2": true, + "15:1": true, + "13:14": true, + "11:0": true, + "14:14": true, + "15:14": true, + "12:0": true, + "11:6": true, + "13:1": true, + "15:15": true, + "11:4": true, + "9:1": true, + "1:14": 254, + "10:1": true, + "11:3": true, + "8:15": 254, + "12:2": true, + "1:15": true, + "11:2": true, + "8:14": 254, + "7:1": true, + "12:1": true, + "7:2": true, + "11:1": true, + "11:8": true, + "9:2": true, + "13:0": true, + "10:2": true, + "13:2": true, + "0:15": true, + "11:9": true, + "10:0": true, + "9:0": true, + "7:0": true, + "11:7": true, + "0:14": 254, + "11:10": true, + "1:0": true, + "11:13": true, + "8:0": true, + "14:2": true, + "0:1": true, + "15:2": true, + "12:14": true, + "15:0": true, + "11:14": true, + "8:2": true, + "14:0": true, + "12:15": true, + "11:12": true, + "1:2": true, + "11:15": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/7_3.json b/src/main/resources/assets/notenoughupdates/dwarven_data/7_3.json index c58be254..8dfb29e5 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/7_3.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/7_3.json @@ -1 +1,135 @@ -{"12:11":true,"9:14":true,"1:1":254,"11:5":true,"8:8":true,"7:12":true,"13:13":true,"12:5":true,"10:14":true,"7:15":true,"11:11":true,"9:15":true,"0:6":true,"0:0":254,"8:1":true,"10:15":true,"7:14":true,"10:10":true,"0:2":254,"7:13":true,"15:1":true,"0:3":true,"0:4":254,"9:13":true,"11:0":[181,254],"14:14":true,"12:6":true,"8:13":true,"10:9":true,"2:15":155,"1:10":true,"15:14":true,"12:0":true,"9:9":true,"11:6":true,"10:7":true,"13:1":true,"0:11":254,"15:15":true,"9:7":true,"2:14":[155,156],"1:13":[157,254],"0:5":254,"11:4":true,"9:1":true,"8:12":true,"1:14":254,"10:1":true,"12:4":true,"11:3":true,"8:15":true,"15:13":true,"1:15":true,"10:8":true,"11:2":[183,184],"8:14":true,"1:12":[158,254],"9:8":true,"7:1":true,"14:13":true,"9:3":254,"1:11":[159,254],"1:5":254,"0:13":254,"7:2":true,"11:1":[182,254],"11:8":true,"7:4":254,"9:2":254,"10:2":254,"0:10":[160,254],"12:8":true,"7:3":254,"0:15":true,"11:9":true,"10:0":254,"10:6":true,"0:12":254,"12:9":true,"9:0":254,"7:0":254,"13:3":true,"11:7":true,"0:14":254,"12:7":true,"14:3":true,"1:6":254,"11:10":true,"12:10":true,"15:3":true,"1:0":254,"11:13":true,"8:0":254,"14:2":true,"0:1":254,"15:2":true,"15:0":true,"1:3":true,"11:14":true,"8:2":254,"1:4":true,"11:12":true,"8:4":true,"1:2":true,"7:5":true,"12:12":true,"11:15":true,"8:3":254,"7:11":true} \ No newline at end of file +{ + "12:11": true, + "9:14": true, + "1:1": 254, + "11:5": true, + "8:8": true, + "7:12": true, + "13:13": true, + "12:5": true, + "10:14": true, + "7:15": true, + "11:11": true, + "9:15": true, + "0:6": true, + "0:0": 254, + "8:1": true, + "10:15": true, + "7:14": true, + "10:10": true, + "0:2": 254, + "7:13": true, + "15:1": true, + "0:3": true, + "0:4": 254, + "9:13": true, + "11:0": [ + 181, + 254 + ], + "14:14": true, + "12:6": true, + "8:13": true, + "10:9": true, + "2:15": 155, + "1:10": true, + "15:14": true, + "12:0": true, + "9:9": true, + "11:6": true, + "10:7": true, + "13:1": true, + "0:11": 254, + "15:15": true, + "9:7": true, + "2:14": [ + 155, + 156 + ], + "1:13": [ + 157, + 254 + ], + "0:5": 254, + "11:4": true, + "9:1": true, + "8:12": true, + "1:14": 254, + "10:1": true, + "12:4": true, + "11:3": true, + "8:15": true, + "15:13": true, + "1:15": true, + "10:8": true, + "11:2": [ + 183, + 184 + ], + "8:14": true, + "1:12": [ + 158, + 254 + ], + "9:8": true, + "7:1": true, + "14:13": true, + "9:3": 254, + "1:11": [ + 159, + 254 + ], + "1:5": 254, + "0:13": 254, + "7:2": true, + "11:1": [ + 182, + 254 + ], + "11:8": true, + "7:4": 254, + "9:2": 254, + "10:2": 254, + "0:10": [ + 160, + 254 + ], + "12:8": true, + "7:3": 254, + "0:15": true, + "11:9": true, + "10:0": 254, + "10:6": true, + "0:12": 254, + "12:9": true, + "9:0": 254, + "7:0": 254, + "13:3": true, + "11:7": true, + "0:14": 254, + "12:7": true, + "14:3": true, + "1:6": 254, + "11:10": true, + "12:10": true, + "15:3": true, + "1:0": 254, + "11:13": true, + "8:0": 254, + "14:2": true, + "0:1": 254, + "15:2": true, + "15:0": true, + "1:3": true, + "11:14": true, + "8:2": 254, + "1:4": true, + "11:12": true, + "8:4": true, + "1:2": true, + "7:5": true, + "12:12": true, + "11:15": true, + "8:3": 254, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/7_4.json b/src/main/resources/assets/notenoughupdates/dwarven_data/7_4.json index c3b7ea88..9c649007 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/7_4.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/7_4.json @@ -1 +1,122 @@ -{"9:14":true,"1:1":true,"11:5":true,"8:8":true,"10:14":true,"7:15":true,"11:11":true,"10:12":true,"2:9":true,"9:15":true,"0:6":true,"0:0":true,"9:12":true,"8:1":true,"10:15":true,"7:14":true,"1:8":true,"13:15":true,"10:10":true,"0:2":true,"9:10":true,"15:1":true,"1:9":true,"13:14":true,"10:13":true,"9:13":true,"11:0":true,"14:14":true,"4:3":true,"8:13":true,"2:12":true,"10:9":true,"5:3":true,"1:10":true,"15:14":true,"12:0":true,"9:9":true,"11:6":true,"10:7":true,"14:15":true,"13:1":true,"0:11":true,"15:15":true,"9:7":true,"3:11":true,"2:14":true,"1:13":true,"0:5":true,"11:4":true,"9:1":true,"8:12":true,"2:13":true,"1:14":true,"10:1":true,"12:4":true,"11:3":true,"8:15":true,"12:2":true,"2:10":true,"1:15":true,"10:8":true,"11:2":true,"8:14":true,"1:12":true,"9:8":true,"7:1":true,"12:1":true,"1:11":true,"10:3":true,"0:13":true,"7:2":true,"11:1":true,"9:4":true,"3:10":true,"11:8":true,"9:2":true,"13:0":true,"10:2":true,"0:10":true,"7:3":true,"13:2":true,"3:12":true,"0:15":true,"11:9":true,"10:0":true,"0:12":true,"9:0":true,"7:0":true,"13:3":true,"11:7":true,"0:14":true,"2:11":true,"15:4":true,"14:3":true,"11:10":true,"0:8":true,"15:3":true,"1:0":true,"14:4":true,"11:13":true,"8:0":true,"14:2":true,"0:1":true,"15:2":true,"15:0":true,"12:14":true,"9:11":true,"10:11":true,"11:14":true,"8:2":true,"0:7":true,"14:0":true,"2:0":true,"12:15":true,"11:12":true,"8:4":true,"1:2":true,"11:15":true,"8:3":true,"0:9":true} \ No newline at end of file +{ + "9:14": true, + "1:1": true, + "11:5": true, + "8:8": true, + "10:14": true, + "7:15": true, + "11:11": true, + "10:12": true, + "2:9": true, + "9:15": true, + "0:6": true, + "0:0": true, + "9:12": true, + "8:1": true, + "10:15": true, + "7:14": true, + "1:8": true, + "13:15": true, + "10:10": true, + "0:2": true, + "9:10": true, + "15:1": true, + "1:9": true, + "13:14": true, + "10:13": true, + "9:13": true, + "11:0": true, + "14:14": true, + "4:3": true, + "8:13": true, + "2:12": true, + "10:9": true, + "5:3": true, + "1:10": true, + "15:14": true, + "12:0": true, + "9:9": true, + "11:6": true, + "10:7": true, + "14:15": true, + "13:1": true, + "0:11": true, + "15:15": true, + "9:7": true, + "3:11": true, + "2:14": true, + "1:13": true, + "0:5": true, + "11:4": true, + "9:1": true, + "8:12": true, + "2:13": true, + "1:14": true, + "10:1": true, + "12:4": true, + "11:3": true, + "8:15": true, + "12:2": true, + "2:10": true, + "1:15": true, + "10:8": true, + "11:2": true, + "8:14": true, + "1:12": true, + "9:8": true, + "7:1": true, + "12:1": true, + "1:11": true, + "10:3": true, + "0:13": true, + "7:2": true, + "11:1": true, + "9:4": true, + "3:10": true, + "11:8": true, + "9:2": true, + "13:0": true, + "10:2": true, + "0:10": true, + "7:3": true, + "13:2": true, + "3:12": true, + "0:15": true, + "11:9": true, + "10:0": true, + "0:12": true, + "9:0": true, + "7:0": true, + "13:3": true, + "11:7": true, + "0:14": true, + "2:11": true, + "15:4": true, + "14:3": true, + "11:10": true, + "0:8": true, + "15:3": true, + "1:0": true, + "14:4": true, + "11:13": true, + "8:0": true, + "14:2": true, + "0:1": true, + "15:2": true, + "15:0": true, + "12:14": true, + "9:11": true, + "10:11": true, + "11:14": true, + "8:2": true, + "0:7": true, + "14:0": true, + "2:0": true, + "12:15": true, + "11:12": true, + "8:4": true, + "1:2": true, + "11:15": true, + "8:3": true, + "0:9": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/7_5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/7_5.json index 106d07c3..898cca1f 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/7_5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/7_5.json @@ -1 +1,120 @@ -{"12:11":true,"9:14":true,"1:1":true,"11:5":[182,254],"8:8":true,"7:12":254,"13:13":true,"12:5":true,"10:14":true,"7:15":true,"11:11":true,"9:15":true,"0:6":true,"0:0":true,"8:1":254,"10:15":true,"7:14":true,"10:10":true,"0:2":254,"7:13":true,"15:1":true,"0:3":254,"0:4":254,"9:13":true,"11:0":true,"14:14":true,"12:6":true,"8:13":true,"10:9":true,"1:10":254,"15:14":true,"12:0":true,"9:9":254,"11:6":true,"10:7":true,"0:11":254,"15:15":true,"9:7":true,"1:13":true,"0:5":254,"11:4":[181,182],"9:1":254,"8:12":true,"1:14":true,"10:1":254,"12:4":true,"11:3":true,"8:15":true,"15:13":true,"1:15":true,"10:8":true,"11:2":[156,165],"8:14":true,"1:12":true,"9:8":254,"7:1":254,"14:13":true,"9:3":254,"1:11":true,"1:5":254,"0:13":true,"7:2":254,"11:1":[156,254],"11:8":true,"7:4":254,"9:2":254,"10:2":254,"0:10":254,"12:8":true,"7:3":254,"0:15":true,"11:9":true,"10:0":true,"10:6":true,"0:12":254,"12:9":true,"9:0":254,"7:0":254,"13:3":true,"11:7":true,"0:14":true,"12:7":true,"14:3":true,"1:6":true,"11:10":true,"12:10":true,"15:3":true,"1:0":true,"11:13":true,"8:0":254,"14:2":true,"0:1":true,"15:2":true,"15:0":true,"1:3":254,"11:14":true,"8:2":254,"1:4":true,"11:12":true,"8:4":254,"1:2":254,"7:5":254,"12:12":true,"11:15":true,"8:3":254,"7:11":true} \ No newline at end of file +{ + "12:11": true, + "9:14": true, + "1:1": true, + "11:5": [ + 182, + 254 + ], + "8:8": true, + "7:12": 254, + "13:13": true, + "12:5": true, + "10:14": true, + "7:15": true, + "11:11": true, + "9:15": true, + "0:6": true, + "0:0": true, + "8:1": 254, + "10:15": true, + "7:14": true, + "10:10": true, + "0:2": 254, + "7:13": true, + "15:1": true, + "0:3": 254, + "0:4": 254, + "9:13": true, + "11:0": true, + "14:14": true, + "12:6": true, + "8:13": true, + "10:9": true, + "1:10": 254, + "15:14": true, + "12:0": true, + "9:9": 254, + "11:6": true, + "10:7": true, + "0:11": 254, + "15:15": true, + "9:7": true, + "1:13": true, + "0:5": 254, + "11:4": [ + 181, + 182 + ], + "9:1": 254, + "8:12": true, + "1:14": true, + "10:1": 254, + "12:4": true, + "11:3": true, + "8:15": true, + "15:13": true, + "1:15": true, + "10:8": true, + "11:2": [ + 156, + 165 + ], + "8:14": true, + "1:12": true, + "9:8": 254, + "7:1": 254, + "14:13": true, + "9:3": 254, + "1:11": true, + "1:5": 254, + "0:13": true, + "7:2": 254, + "11:1": [ + 156, + 254 + ], + "11:8": true, + "7:4": 254, + "9:2": 254, + "10:2": 254, + "0:10": 254, + "12:8": true, + "7:3": 254, + "0:15": true, + "11:9": true, + "10:0": true, + "10:6": true, + "0:12": 254, + "12:9": true, + "9:0": 254, + "7:0": 254, + "13:3": true, + "11:7": true, + "0:14": true, + "12:7": true, + "14:3": true, + "1:6": true, + "11:10": true, + "12:10": true, + "15:3": true, + "1:0": true, + "11:13": true, + "8:0": 254, + "14:2": true, + "0:1": true, + "15:2": true, + "15:0": true, + "1:3": 254, + "11:14": true, + "8:2": 254, + "1:4": true, + "11:12": true, + "8:4": 254, + "1:2": 254, + "7:5": 254, + "12:12": true, + "11:15": true, + "8:3": 254, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/7_6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/7_6.json index 6b6caa51..54740b3d 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/7_6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/7_6.json @@ -1 +1,179 @@ -{"15:9":true,"12:11":true,"1:1":true,"11:5":true,"2:7":true,"13:13":true,"7:15":[187,223],"14:9":true,"11:11":true,"2:9":[112,236],"15:7":true,"9:15":true,"0:0":true,"14:7":true,"8:1":true,"13:10":true,"10:15":true,"1:8":114,"13:15":true,"10:10":true,"8:7":true,"4:11":[189,221],"0:2":true,"5:11":[192,219],"13:12":true,"15:1":true,"1:9":[110,236],"15:8":true,"13:14":true,"6:12":[109,110],"1:7":true,"6:15":[187,223],"14:8":true,"11:0":true,"14:14":true,"2:12":true,"10:9":true,"7:7":true,"2:15":true,"1:10":[114,115],"13:8":true,"15:14":true,"12:0":true,"9:9":true,"11:6":true,"10:7":true,"8:10":true,"15:12":true,"14:15":true,"13:1":true,"0:11":true,"15:15":true,"14:12":true,"9:7":true,"3:11":[109,222],"11:4":true,"9:1":true,"15:10":true,"14:10":true,"10:1":true,"13:7":true,"11:3":true,"8:15":[187,230],"15:13":true,"12:2":true,"2:10":[110,113],"1:15":true,"6:7":true,"11:2":true,"13:9":true,"7:1":true,"14:13":true,"12:1":true,"1:11":true,"5:9":true,"7:2":true,"4:9":true,"11:1":true,"5:7":true,"9:2":true,"4:7":true,"10:2":true,"0:10":116,"12:8":true,"14:11":true,"13:2":true,"3:12":113,"0:15":true,"11:9":true,"10:0":true,"3:15":true,"15:11":true,"12:9":true,"9:0":true,"7:0":true,"11:7":true,"12:7":true,"2:11":[112,223],"11:10":true,"12:10":true,"0:8":true,"1:0":true,"5:12":[108,111],"8:0":true,"14:2":true,"13:11":true,"4:15":[187,223],"0:1":true,"15:2":true,"4:12":[110,112],"5:15":[187,223],"15:0":true,"3:7":184,"10:11":true,"8:2":true,"0:7":[115,184],"15:6":true,"12:15":true,"1:2":true,"3:9":true,"12:12":true,"11:15":true,"0:9":[111,233]} \ No newline at end of file +{ + "15:9": true, + "12:11": true, + "1:1": true, + "11:5": true, + "2:7": true, + "13:13": true, + "7:15": [ + 187, + 223 + ], + "14:9": true, + "11:11": true, + "2:9": [ + 112, + 236 + ], + "15:7": true, + "9:15": true, + "0:0": true, + "14:7": true, + "8:1": true, + "13:10": true, + "10:15": true, + "1:8": 114, + "13:15": true, + "10:10": true, + "8:7": true, + "4:11": [ + 189, + 221 + ], + "0:2": true, + "5:11": [ + 192, + 219 + ], + "13:12": true, + "15:1": true, + "1:9": [ + 110, + 236 + ], + "15:8": true, + "13:14": true, + "6:12": [ + 109, + 110 + ], + "1:7": true, + "6:15": [ + 187, + 223 + ], + "14:8": true, + "11:0": true, + "14:14": true, + "2:12": true, + "10:9": true, + "7:7": true, + "2:15": true, + "1:10": [ + 114, + 115 + ], + "13:8": true, + "15:14": true, + "12:0": true, + "9:9": true, + "11:6": true, + "10:7": true, + "8:10": true, + "15:12": true, + "14:15": true, + "13:1": true, + "0:11": true, + "15:15": true, + "14:12": true, + "9:7": true, + "3:11": [ + 109, + 222 + ], + "11:4": true, + "9:1": true, + "15:10": true, + "14:10": true, + "10:1": true, + "13:7": true, + "11:3": true, + "8:15": [ + 187, + 230 + ], + "15:13": true, + "12:2": true, + "2:10": [ + 110, + 113 + ], + "1:15": true, + "6:7": true, + "11:2": true, + "13:9": true, + "7:1": true, + "14:13": true, + "12:1": true, + "1:11": true, + "5:9": true, + "7:2": true, + "4:9": true, + "11:1": true, + "5:7": true, + "9:2": true, + "4:7": true, + "10:2": true, + "0:10": 116, + "12:8": true, + "14:11": true, + "13:2": true, + "3:12": 113, + "0:15": true, + "11:9": true, + "10:0": true, + "3:15": true, + "15:11": true, + "12:9": true, + "9:0": true, + "7:0": true, + "11:7": true, + "12:7": true, + "2:11": [ + 112, + 223 + ], + "11:10": true, + "12:10": true, + "0:8": true, + "1:0": true, + "5:12": [ + 108, + 111 + ], + "8:0": true, + "14:2": true, + "13:11": true, + "4:15": [ + 187, + 223 + ], + "0:1": true, + "15:2": true, + "4:12": [ + 110, + 112 + ], + "5:15": [ + 187, + 223 + ], + "15:0": true, + "3:7": 184, + "10:11": true, + "8:2": true, + "0:7": [ + 115, + 184 + ], + "15:6": true, + "12:15": true, + "1:2": true, + "3:9": true, + "12:12": true, + "11:15": true, + "0:9": [ + 111, + 233 + ] +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/8_-1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/8_-1.json index e6dc6263..4a306305 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/8_-1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/8_-1.json @@ -1 +1,29 @@ -{"10:4":true,"9:4":true,"9:2":true,"13:0":true,"14:7":true,"8:1":true,"10:2":true,"9:6":true,"10:0":true,"15:11":true,"9:0":true,"7:0":true,"12:7":true,"11:0":true,"12:6":true,"13:8":true,"12:0":true,"11:6":true,"10:7":true,"15:12":186,"15:0":true,"14:6":true,"10:5":true,"14:10":true,"10:1":true,"14:0":true,"13:9":true} \ No newline at end of file +{ + "10:4": true, + "9:4": true, + "9:2": true, + "13:0": true, + "14:7": true, + "8:1": true, + "10:2": true, + "9:6": true, + "10:0": true, + "15:11": true, + "9:0": true, + "7:0": true, + "12:7": true, + "11:0": true, + "12:6": true, + "13:8": true, + "12:0": true, + "11:6": true, + "10:7": true, + "15:12": 186, + "15:0": true, + "14:6": true, + "10:5": true, + "14:10": true, + "10:1": true, + "14:0": true, + "13:9": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/8_-2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/8_-2.json index 3dbb3534..613e25ff 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/8_-2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/8_-2.json @@ -1 +1,50 @@ -{"12:11":true,"1:1":true,"8:8":true,"7:12":true,"13:13":true,"7:15":true,"11:11":true,"3:0":true,"10:15":true,"10:10":true,"13:15":true,"8:7":true,"4:11":186,"0:2":true,"13:12":true,"6:14":true,"14:14":true,"9:9":true,"15:15":true,"9:7":true,"0:5":true,"5:0":true,"10:8":true,"9:8":true,"8:5":true,"7:4":true,"8:11":true,"7:3":true,"9:6":true,"4:1":true,"11:9":true,"6:4":true,"5:1":true,"6:2":true,"7:6":true,"1:6":186,"11:10":true,"6:5":true,"2:2":true,"5:12":186,"0:1":true,"8:6":true,"3:1":true,"12:14":true,"12:15":true,"5:13":true,"7:5":true,"3:9":true} \ No newline at end of file +{ + "12:11": true, + "1:1": true, + "8:8": true, + "7:12": true, + "13:13": true, + "7:15": true, + "11:11": true, + "3:0": true, + "10:15": true, + "10:10": true, + "13:15": true, + "8:7": true, + "4:11": 186, + "0:2": true, + "13:12": true, + "6:14": true, + "14:14": true, + "9:9": true, + "15:15": true, + "9:7": true, + "0:5": true, + "5:0": true, + "10:8": true, + "9:8": true, + "8:5": true, + "7:4": true, + "8:11": true, + "7:3": true, + "9:6": true, + "4:1": true, + "11:9": true, + "6:4": true, + "5:1": true, + "6:2": true, + "7:6": true, + "1:6": 186, + "11:10": true, + "6:5": true, + "2:2": true, + "5:12": 186, + "0:1": true, + "8:6": true, + "3:1": true, + "12:14": true, + "12:15": true, + "5:13": true, + "7:5": true, + "3:9": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/8_0.json b/src/main/resources/assets/notenoughupdates/dwarven_data/8_0.json index da92c247..a4650235 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/8_0.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/8_0.json @@ -1 +1,21 @@ -{"9:14":true,"4:14":true,"10:14":true,"5:14":true,"7:15":true,"14:15":true,"9:15":true,"10:15":true,"5:15":true,"7:14":true,"13:15":true,"11:14":true,"8:15":true,"6:14":true,"12:15":true,"1:15":true,"11:15":true,"8:14":true,"6:15":true} \ No newline at end of file +{ + "9:14": true, + "4:14": true, + "10:14": true, + "5:14": true, + "7:15": true, + "14:15": true, + "9:15": true, + "10:15": true, + "5:15": true, + "7:14": true, + "13:15": true, + "11:14": true, + "8:15": true, + "6:14": true, + "12:15": true, + "1:15": true, + "11:15": true, + "8:14": true, + "6:15": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/8_1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/8_1.json index 4b3610ad..917a084f 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/8_1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/8_1.json @@ -1 +1,144 @@ -{"9:14":true,"1:1":true,"11:5":[163,254],"8:8":true,"7:12":true,"6:10":true,"10:14":true,"7:15":true,"11:11":true,"10:12":254,"3:0":true,"9:15":true,"0:0":true,"8:1":true,"10:15":true,"7:14":true,"14:1":true,"8:7":true,"0:2":true,"7:13":true,"3:2":true,"15:1":true,"10:13":true,"0:3":true,"8:9":254,"7:10":[184,254],"6:12":true,"3:3":true,"9:13":true,"2:1":true,"11:0":true,"4:3":true,"7:7":true,"5:3":true,"2:15":true,"12:0":true,"9:9":true,"8:10":254,"7:9":[184,254],"6:8":true,"13:1":true,"4:2":true,"9:7":true,"2:14":true,"1:13":true,"11:4":[163,254],"1:14":true,"9:1":true,"7:8":[183,254],"6:9":254,"2:13":true,"5:0":true,"10:1":true,"11:3":true,"8:15":true,"4:0":true,"12:2":true,"1:15":true,"10:8":true,"6:7":254,"11:2":true,"8:14":true,"9:8":true,"7:1":true,"12:1":true,"9:3":true,"6:0":true,"10:4":true,"3:13":true,"10:3":true,"0:13":true,"7:2":true,"6:6":true,"11:1":true,"7:4":true,"9:2":true,"13:0":true,"10:2":true,"7:3":true,"13:2":true,"0:15":true,"6:4":true,"10:0":true,"3:15":true,"9:0":true,"7:0":true,"13:3":true,"0:14":true,"13:4":[165,167],"3:14":true,"7:6":true,"15:4":[159,166],"14:3":true,"4:14":true,"6:5":true,"2:2":true,"15:3":true,"6:11":true,"1:0":true,"14:4":true,"11:13":254,"8:0":true,"14:2":true,"0:1":true,"15:2":true,"8:6":true,"3:1":true,"2:3":true,"15:0":true,"1:3":true,"11:14":true,"8:2":true,"14:0":true,"2:0":true,"11:12":254,"5:13":true,"1:2":true,"7:5":true,"11:15":true,"7:11":true,"4:13":true} \ No newline at end of file +{ + "9:14": true, + "1:1": true, + "11:5": [ + 163, + 254 + ], + "8:8": true, + "7:12": true, + "6:10": true, + "10:14": true, + "7:15": true, + "11:11": true, + "10:12": 254, + "3:0": true, + "9:15": true, + "0:0": true, + "8:1": true, + "10:15": true, + "7:14": true, + "14:1": true, + "8:7": true, + "0:2": true, + "7:13": true, + "3:2": true, + "15:1": true, + "10:13": true, + "0:3": true, + "8:9": 254, + "7:10": [ + 184, + 254 + ], + "6:12": true, + "3:3": true, + "9:13": true, + "2:1": true, + "11:0": true, + "4:3": true, + "7:7": true, + "5:3": true, + "2:15": true, + "12:0": true, + "9:9": true, + "8:10": 254, + "7:9": [ + 184, + 254 + ], + "6:8": true, + "13:1": true, + "4:2": true, + "9:7": true, + "2:14": true, + "1:13": true, + "11:4": [ + 163, + 254 + ], + "1:14": true, + "9:1": true, + "7:8": [ + 183, + 254 + ], + "6:9": 254, + "2:13": true, + "5:0": true, + "10:1": true, + "11:3": true, + "8:15": true, + "4:0": true, + "12:2": true, + "1:15": true, + "10:8": true, + "6:7": 254, + "11:2": true, + "8:14": true, + "9:8": true, + "7:1": true, + "12:1": true, + "9:3": true, + "6:0": true, + "10:4": true, + "3:13": true, + "10:3": true, + "0:13": true, + "7:2": true, + "6:6": true, + "11:1": true, + "7:4": true, + "9:2": true, + "13:0": true, + "10:2": true, + "7:3": true, + "13:2": true, + "0:15": true, + "6:4": true, + "10:0": true, + "3:15": true, + "9:0": true, + "7:0": true, + "13:3": true, + "0:14": true, + "13:4": [ + 165, + 167 + ], + "3:14": true, + "7:6": true, + "15:4": [ + 159, + 166 + ], + "14:3": true, + "4:14": true, + "6:5": true, + "2:2": true, + "15:3": true, + "6:11": true, + "1:0": true, + "14:4": true, + "11:13": 254, + "8:0": true, + "14:2": true, + "0:1": true, + "15:2": true, + "8:6": true, + "3:1": true, + "2:3": true, + "15:0": true, + "1:3": true, + "11:14": true, + "8:2": true, + "14:0": true, + "2:0": true, + "11:12": 254, + "5:13": true, + "1:2": true, + "7:5": true, + "11:15": true, + "7:11": true, + "4:13": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/9_-1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/9_-1.json index 4887712a..979a9b2f 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/9_-1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/9_-1.json @@ -1 +1,35 @@ -{"9:14":true,"1:6":true,"8:13":true,"7:12":true,"6:10":true,"5:9":true,"1:5":true,"0:13":true,"4:9":true,"3:5":true,"2:4":true,"9:15":true,"0:1":true,"0:0":true,"4:7":true,"3:6":true,"7:14":true,"5:10":true,"1:3":true,"1:14":186,"7:13":true,"5:11":[220,221],"8:15":true,"0:7":true,"1:2":true,"1:15":true,"6:12":true,"5:8":true,"7:11":true,"2:6":true} \ No newline at end of file +{ + "9:14": true, + "1:6": true, + "8:13": true, + "7:12": true, + "6:10": true, + "5:9": true, + "1:5": true, + "0:13": true, + "4:9": true, + "3:5": true, + "2:4": true, + "9:15": true, + "0:1": true, + "0:0": true, + "4:7": true, + "3:6": true, + "7:14": true, + "5:10": true, + "1:3": true, + "1:14": 186, + "7:13": true, + "5:11": [ + 220, + 221 + ], + "8:15": true, + "0:7": true, + "1:2": true, + "1:15": true, + "6:12": true, + "5:8": true, + "7:11": true, + "2:6": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/9_1.json b/src/main/resources/assets/notenoughupdates/dwarven_data/9_1.json index c4fd1b66..f957a1ba 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/9_1.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/9_1.json @@ -1 +1,280 @@ -{"1:1":true,"8:8":true,"6:10":true,"13:13":true,"3:0":true,"0:0":true,"3:6":true,"14:1":true,"13:15":true,"10:10":true,"8:7":true,"5:5":true,"4:11":254,"0:2":true,"9:10":true,"5:11":[182,186],"4:5":true,"13:12":true,"3:2":true,"13:14":true,"3:4":true,"0:3":true,"8:9":true,"7:10":true,"3:3":true,"0:4":true,"2:1":true,"14:14":true,"4:3":true,"5:4":true,"2:12":true,"10:9":true,"7:7":true,"5:3":true,"2:15":true,"15:14":true,"9:9":true,"4:4":true,"10:7":true,"8:10":true,"7:9":true,"6:8":true,"3:5":true,"15:12":true,"14:15":true,"4:2":true,"15:15":true,"14:12":true,"9:7":true,"3:11":true,"5:2":true,"2:14":true,"1:13":true,"2:13":true,"7:8":true,"6:9":true,"4:6":true,"1:14":true,"5:0":true,"5:6":true,"4:0":true,"15:13":true,"1:15":254,"10:8":true,"6:7":true,"1:12":true,"9:8":true,"14:13":true,"1:11":true,"3:13":true,"1:5":true,"11:8":true,"12:8":true,"14:11":true,"4:1":true,"3:12":true,"11:9":true,"15:5":[157,158],"14:5":true,"5:1":true,"3:15":true,"15:11":true,"12:9":true,"11:7":true,"2:5":true,"12:7":true,"3:14":true,"2:11":true,"14:3":true,"4:14":true,"1:6":254,"11:10":[160,236],"12:10":[159,236],"5:14":true,"2:2":true,"1:0":true,"14:4":true,"5:12":[182,186],"2:4":true,"14:2":true,"13:11":true,"4:15":true,"0:1":true,"4:12":true,"3:1":true,"13:5":true,"5:15":true,"2:3":true,"14:6":true,"1:3":true,"1:4":true,"15:6":[155,158],"14:0":true,"2:0":true,"5:13":true,"1:2":true,"4:13":true,"2:6":true,"15:9":[154,156],"12:11":true,"9:14":[172,236],"11:5":true,"7:12":[236,251],"12:5":true,"10:14":true,"7:15":true,"14:9":[157,233],"11:11":[159,236],"10:12":true,"6:13":true,"15:7":[155,158],"9:15":true,"14:7":[232,233],"9:12":true,"8:1":true,"10:15":true,"7:14":true,"7:13":[236,252],"6:14":true,"15:8":[155,157],"10:13":true,"6:15":true,"14:8":[158,233],"9:13":true,"11:0":true,"12:6":true,"8:13":[174,236],"1:10":true,"12:0":true,"11:6":true,"11:4":true,"9:1":true,"8:12":true,"12:3":true,"15:10":true,"14:10":[169,232],"10:1":true,"12:4":true,"11:3":true,"8:15":[176,235],"12:2":true,"2:10":254,"11:2":true,"8:14":[175,236],"13:9":[159,160],"7:1":true,"12:1":true,"9:3":true,"10:4":true,"5:9":true,"10:3":true,"7:2":true,"11:1":true,"9:4":true,"8:5":true,"5:7":true,"3:10":254,"7:4":true,"9:2":true,"8:11":true,"10:2":true,"7:3":true,"9:6":true,"10:0":true,"10:6":true,"9:0":true,"7:0":true,"5:8":true,"7:6":true,"6:11":true,"11:13":true,"8:0":true,"8:6":true,"12:13":true,"12:14":true,"10:5":true,"9:11":true,"5:10":[157,186],"3:7":true,"10:11":true,"9:5":true,"4:10":254,"11:14":true,"8:2":true,"12:15":true,"11:12":true,"8:4":true,"7:5":true,"12:12":true,"11:15":true,"8:3":true,"7:11":true} \ No newline at end of file +{ + "1:1": true, + "8:8": true, + "6:10": true, + "13:13": true, + "3:0": true, + "0:0": true, + "3:6": true, + "14:1": true, + "13:15": true, + "10:10": true, + "8:7": true, + "5:5": true, + "4:11": 254, + "0:2": true, + "9:10": true, + "5:11": [ + 182, + 186 + ], + "4:5": true, + "13:12": true, + "3:2": true, + "13:14": true, + "3:4": true, + "0:3": true, + "8:9": true, + "7:10": true, + "3:3": true, + "0:4": true, + "2:1": true, + "14:14": true, + "4:3": true, + "5:4": true, + "2:12": true, + "10:9": true, + "7:7": true, + "5:3": true, + "2:15": true, + "15:14": true, + "9:9": true, + "4:4": true, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": true, + "15:12": true, + "14:15": true, + "4:2": true, + "15:15": true, + "14:12": true, + "9:7": true, + "3:11": true, + "5:2": true, + "2:14": true, + "1:13": true, + "2:13": true, + "7:8": true, + "6:9": true, + "4:6": true, + "1:14": true, + "5:0": true, + "5:6": true, + "4:0": true, + "15:13": true, + "1:15": 254, + "10:8": true, + "6:7": true, + "1:12": true, + "9:8": true, + "14:13": true, + "1:11": true, + "3:13": true, + "1:5": true, + "11:8": true, + "12:8": true, + "14:11": true, + "4:1": true, + "3:12": true, + "11:9": true, + "15:5": [ + 157, + 158 + ], + "14:5": true, + "5:1": true, + "3:15": true, + "15:11": true, + "12:9": true, + "11:7": true, + "2:5": true, + "12:7": true, + "3:14": true, + "2:11": true, + "14:3": true, + "4:14": true, + "1:6": 254, + "11:10": [ + 160, + 236 + ], + "12:10": [ + 159, + 236 + ], + "5:14": true, + "2:2": true, + "1:0": true, + "14:4": true, + "5:12": [ + 182, + 186 + ], + "2:4": true, + "14:2": true, + "13:11": true, + "4:15": true, + "0:1": true, + "4:12": true, + "3:1": true, + "13:5": true, + "5:15": true, + "2:3": true, + "14:6": true, + "1:3": true, + "1:4": true, + "15:6": [ + 155, + 158 + ], + "14:0": true, + "2:0": true, + "5:13": true, + "1:2": true, + "4:13": true, + "2:6": true, + "15:9": [ + 154, + 156 + ], + "12:11": true, + "9:14": [ + 172, + 236 + ], + "11:5": true, + "7:12": [ + 236, + 251 + ], + "12:5": true, + "10:14": true, + "7:15": true, + "14:9": [ + 157, + 233 + ], + "11:11": [ + 159, + 236 + ], + "10:12": true, + "6:13": true, + "15:7": [ + 155, + 158 + ], + "9:15": true, + "14:7": [ + 232, + 233 + ], + "9:12": true, + "8:1": true, + "10:15": true, + "7:14": true, + "7:13": [ + 236, + 252 + ], + "6:14": true, + "15:8": [ + 155, + 157 + ], + "10:13": true, + "6:15": true, + "14:8": [ + 158, + 233 + ], + "9:13": true, + "11:0": true, + "12:6": true, + "8:13": [ + 174, + 236 + ], + "1:10": true, + "12:0": true, + "11:6": true, + "11:4": true, + "9:1": true, + "8:12": true, + "12:3": true, + "15:10": true, + "14:10": [ + 169, + 232 + ], + "10:1": true, + "12:4": true, + "11:3": true, + "8:15": [ + 176, + 235 + ], + "12:2": true, + "2:10": 254, + "11:2": true, + "8:14": [ + 175, + 236 + ], + "13:9": [ + 159, + 160 + ], + "7:1": true, + "12:1": true, + "9:3": true, + "10:4": true, + "5:9": true, + "10:3": true, + "7:2": true, + "11:1": true, + "9:4": true, + "8:5": true, + "5:7": true, + "3:10": 254, + "7:4": true, + "9:2": true, + "8:11": true, + "10:2": true, + "7:3": true, + "9:6": true, + "10:0": true, + "10:6": true, + "9:0": true, + "7:0": true, + "5:8": true, + "7:6": true, + "6:11": true, + "11:13": true, + "8:0": true, + "8:6": true, + "12:13": true, + "12:14": true, + "10:5": true, + "9:11": true, + "5:10": [ + 157, + 186 + ], + "3:7": true, + "10:11": true, + "9:5": true, + "4:10": 254, + "11:14": true, + "8:2": true, + "12:15": true, + "11:12": true, + "8:4": true, + "7:5": true, + "12:12": true, + "11:15": true, + "8:3": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/9_2.json b/src/main/resources/assets/notenoughupdates/dwarven_data/9_2.json index c7c85d2d..77777607 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/9_2.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/9_2.json @@ -1 +1,217 @@ -{"1:1":true,"8:8":true,"6:10":true,"3:0":true,"0:6":true,"3:6":true,"14:1":true,"13:15":true,"10:10":true,"8:7":true,"5:5":true,"9:10":true,"5:11":true,"4:5":true,"3:2":true,"15:1":true,"3:4":true,"8:9":true,"7:10":true,"2:1":true,"14:14":true,"4:3":true,"5:4":true,"10:9":true,"7:7":true,"5:3":true,"2:15":true,"9:9":true,"4:4":true,"10:7":true,"8:10":true,"7:9":true,"6:8":true,"3:5":true,"14:15":true,"13:1":true,"4:2":true,"9:7":true,"5:2":true,"2:14":true,"7:8":true,"6:9":true,"1:14":true,"5:0":[182,186],"5:6":true,"4:0":254,"1:15":true,"10:8":true,"6:7":true,"9:8":true,"14:13":true,"11:8":true,"13:6":true,"13:0":true,"12:8":true,"13:2":true,"4:1":true,"11:9":true,"15:5":true,"14:5":true,"5:1":[182,186],"3:15":true,"12:9":true,"13:3":true,"11:7":true,"2:5":true,"12:7":true,"3:14":true,"15:4":true,"14:3":true,"4:14":true,"1:6":true,"5:14":true,"2:2":true,"15:3":true,"1:0":true,"14:4":true,"5:12":true,"14:2":true,"4:15":true,"15:2":true,"3:1":true,"13:5":true,"5:15":true,"15:0":true,"14:6":true,"15:6":true,"14:0":true,"2:0":254,"5:13":true,"1:2":true,"2:6":true,"15:9":true,"12:11":true,"9:14":true,"11:5":true,"2:7":true,"7:12":true,"12:5":true,"10:14":true,"7:15":true,"14:9":true,"11:11":true,"10:12":true,"6:13":true,"15:7":true,"9:15":true,"14:7":true,"9:12":true,"8:1":[177,233],"10:15":true,"7:14":true,"1:8":true,"7:13":true,"6:14":true,"15:8":true,"10:13":true,"6:12":true,"1:7":true,"6:15":true,"14:8":true,"9:13":true,"11:0":true,"12:6":true,"8:13":true,"13:8":true,"12:0":true,"6:1":182,"11:6":true,"12:3":true,"11:4":true,"9:1":[132,233],"8:12":true,"10:1":true,"13:7":true,"12:4":true,"11:3":true,"8:15":true,"12:2":true,"11:2":true,"8:14":true,"13:9":true,"7:1":[181,251],"12:1":true,"9:3":true,"6:0":true,"10:4":true,"5:9":true,"10:3":true,"7:2":true,"6:6":true,"11:1":true,"9:4":true,"8:5":true,"5:7":true,"7:4":true,"9:2":true,"8:11":true,"10:2":true,"7:3":true,"9:6":true,"6:4":true,"10:0":true,"10:6":true,"9:0":[174,240],"6:3":true,"7:0":true,"5:8":true,"6:2":true,"7:6":true,"6:5":true,"0:8":true,"6:11":true,"11:13":true,"8:0":[177,240],"8:6":true,"12:13":true,"12:14":true,"10:5":true,"9:11":true,"5:10":true,"10:11":true,"9:5":true,"11:14":true,"8:2":true,"0:7":true,"12:15":true,"11:12":true,"8:4":true,"7:5":true,"12:12":true,"11:15":true,"8:3":true,"7:11":true} \ No newline at end of file +{ + "1:1": true, + "8:8": true, + "6:10": true, + "3:0": true, + "0:6": true, + "3:6": true, + "14:1": true, + "13:15": true, + "10:10": true, + "8:7": true, + "5:5": true, + "9:10": true, + "5:11": true, + "4:5": true, + "3:2": true, + "15:1": true, + "3:4": true, + "8:9": true, + "7:10": true, + "2:1": true, + "14:14": true, + "4:3": true, + "5:4": true, + "10:9": true, + "7:7": true, + "5:3": true, + "2:15": true, + "9:9": true, + "4:4": true, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": true, + "14:15": true, + "13:1": true, + "4:2": true, + "9:7": true, + "5:2": true, + "2:14": true, + "7:8": true, + "6:9": true, + "1:14": true, + "5:0": [ + 182, + 186 + ], + "5:6": true, + "4:0": 254, + "1:15": true, + "10:8": true, + "6:7": true, + "9:8": true, + "14:13": true, + "11:8": true, + "13:6": true, + "13:0": true, + "12:8": true, + "13:2": true, + "4:1": true, + "11:9": true, + "15:5": true, + "14:5": true, + "5:1": [ + 182, + 186 + ], + "3:15": true, + "12:9": true, + "13:3": true, + "11:7": true, + "2:5": true, + "12:7": true, + "3:14": true, + "15:4": true, + "14:3": true, + "4:14": true, + "1:6": true, + "5:14": true, + "2:2": true, + "15:3": true, + "1:0": true, + "14:4": true, + "5:12": true, + "14:2": true, + "4:15": true, + "15:2": true, + "3:1": true, + "13:5": true, + "5:15": true, + "15:0": true, + "14:6": true, + "15:6": true, + "14:0": true, + "2:0": 254, + "5:13": true, + "1:2": true, + "2:6": true, + "15:9": true, + "12:11": true, + "9:14": true, + "11:5": true, + "2:7": true, + "7:12": true, + "12:5": true, + "10:14": true, + "7:15": true, + "14:9": true, + "11:11": true, + "10:12": true, + "6:13": true, + "15:7": true, + "9:15": true, + "14:7": true, + "9:12": true, + "8:1": [ + 177, + 233 + ], + "10:15": true, + "7:14": true, + "1:8": true, + "7:13": true, + "6:14": true, + "15:8": true, + "10:13": true, + "6:12": true, + "1:7": true, + "6:15": true, + "14:8": true, + "9:13": true, + "11:0": true, + "12:6": true, + "8:13": true, + "13:8": true, + "12:0": true, + "6:1": 182, + "11:6": true, + "12:3": true, + "11:4": true, + "9:1": [ + 132, + 233 + ], + "8:12": true, + "10:1": true, + "13:7": true, + "12:4": true, + "11:3": true, + "8:15": true, + "12:2": true, + "11:2": true, + "8:14": true, + "13:9": true, + "7:1": [ + 181, + 251 + ], + "12:1": true, + "9:3": true, + "6:0": true, + "10:4": true, + "5:9": true, + "10:3": true, + "7:2": true, + "6:6": true, + "11:1": true, + "9:4": true, + "8:5": true, + "5:7": true, + "7:4": true, + "9:2": true, + "8:11": true, + "10:2": true, + "7:3": true, + "9:6": true, + "6:4": true, + "10:0": true, + "10:6": true, + "9:0": [ + 174, + 240 + ], + "6:3": true, + "7:0": true, + "5:8": true, + "6:2": true, + "7:6": true, + "6:5": true, + "0:8": true, + "6:11": true, + "11:13": true, + "8:0": [ + 177, + 240 + ], + "8:6": true, + "12:13": true, + "12:14": true, + "10:5": true, + "9:11": true, + "5:10": true, + "10:11": true, + "9:5": true, + "11:14": true, + "8:2": true, + "0:7": true, + "12:15": true, + "11:12": true, + "8:4": true, + "7:5": true, + "12:12": true, + "11:15": true, + "8:3": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/9_5.json b/src/main/resources/assets/notenoughupdates/dwarven_data/9_5.json index 51fce837..03686205 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/9_5.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/9_5.json @@ -1 +1,253 @@ -{"1:1":true,"8:8":true,"6:10":true,"13:13":true,"3:0":true,"0:0":true,"3:6":true,"14:1":true,"13:15":172,"10:10":true,"8:7":true,"5:5":true,"4:11":true,"0:2":true,"9:10":true,"5:11":true,"4:5":true,"13:12":true,"3:2":true,"15:1":true,"13:14":true,"3:4":true,"0:3":true,"8:9":true,"7:10":true,"3:3":true,"2:1":true,"14:14":[172,228],"4:3":true,"5:4":true,"2:12":true,"10:9":true,"7:7":true,"5:3":true,"2:15":true,"15:14":[158,171],"9:9":true,"4:4":true,"10:7":true,"8:10":true,"7:9":true,"6:8":true,"3:5":true,"15:12":[172,173],"14:15":[158,227],"13:1":true,"4:2":true,"15:15":[164,170],"14:12":true,"9:7":true,"3:11":true,"5:2":true,"2:14":true,"1:13":true,"2:13":true,"7:8":true,"6:9":true,"4:6":true,"1:14":true,"5:0":true,"5:6":true,"4:0":true,"15:13":[171,172],"1:15":true,"10:8":true,"6:7":true,"1:12":true,"9:8":true,"14:13":[173,229],"1:11":true,"3:13":true,"1:5":true,"11:8":true,"13:6":true,"13:0":true,"12:8":true,"14:11":true,"13:2":true,"4:1":true,"3:12":true,"11:9":true,"15:5":true,"14:5":true,"5:1":true,"3:15":true,"15:11":true,"12:9":true,"13:3":true,"11:7":true,"2:5":true,"13:4":true,"12:7":true,"3:14":true,"2:11":true,"15:4":true,"14:3":true,"4:14":true,"1:6":true,"11:10":true,"12:10":true,"5:14":true,"2:2":true,"15:3":true,"1:0":true,"14:4":true,"5:12":true,"2:4":true,"14:2":true,"13:11":true,"4:15":true,"15:2":true,"4:12":true,"3:1":true,"13:5":true,"5:15":true,"2:3":true,"15:0":true,"14:6":true,"1:3":true,"1:4":true,"14:0":true,"2:0":true,"5:13":true,"1:2":true,"4:13":true,"2:6":true,"15:9":true,"12:11":true,"9:14":true,"11:5":true,"7:12":true,"12:5":true,"10:14":true,"7:15":true,"14:9":true,"11:11":true,"10:12":true,"6:13":true,"15:7":true,"9:15":true,"14:7":true,"9:12":true,"8:1":true,"13:10":true,"10:15":true,"7:14":true,"7:13":true,"6:14":true,"15:8":true,"10:13":true,"6:12":true,"6:15":true,"14:8":true,"9:13":true,"11:0":true,"12:6":true,"8:13":true,"1:10":true,"13:8":true,"12:0":true,"6:1":true,"11:6":true,"11:4":true,"9:1":true,"8:12":true,"12:3":true,"15:10":true,"14:10":true,"10:1":true,"13:7":true,"12:4":true,"11:3":true,"8:15":true,"12:2":true,"2:10":true,"11:2":true,"8:14":true,"13:9":true,"7:1":true,"12:1":true,"9:3":true,"6:0":true,"10:4":true,"5:9":true,"10:3":true,"7:2":true,"6:6":true,"11:1":true,"9:4":true,"8:5":true,"5:7":true,"3:10":true,"7:4":true,"9:2":true,"8:11":true,"10:2":true,"7:3":true,"9:6":true,"6:4":true,"10:0":true,"10:6":true,"9:0":true,"6:3":true,"7:0":true,"5:8":true,"6:2":true,"7:6":true,"6:5":true,"6:11":true,"11:13":true,"8:0":true,"8:6":true,"12:13":true,"12:14":true,"10:5":true,"9:11":true,"5:10":true,"10:11":true,"9:5":true,"4:10":true,"11:14":true,"8:2":true,"12:15":true,"11:12":true,"8:4":true,"7:5":true,"12:12":true,"11:15":true,"8:3":true,"7:11":true} \ No newline at end of file +{ + "1:1": true, + "8:8": true, + "6:10": true, + "13:13": true, + "3:0": true, + "0:0": true, + "3:6": true, + "14:1": true, + "13:15": 172, + "10:10": true, + "8:7": true, + "5:5": true, + "4:11": true, + "0:2": true, + "9:10": true, + "5:11": true, + "4:5": true, + "13:12": true, + "3:2": true, + "15:1": true, + "13:14": true, + "3:4": true, + "0:3": true, + "8:9": true, + "7:10": true, + "3:3": true, + "2:1": true, + "14:14": [ + 172, + 228 + ], + "4:3": true, + "5:4": true, + "2:12": true, + "10:9": true, + "7:7": true, + "5:3": true, + "2:15": true, + "15:14": [ + 158, + 171 + ], + "9:9": true, + "4:4": true, + "10:7": true, + "8:10": true, + "7:9": true, + "6:8": true, + "3:5": true, + "15:12": [ + 172, + 173 + ], + "14:15": [ + 158, + 227 + ], + "13:1": true, + "4:2": true, + "15:15": [ + 164, + 170 + ], + "14:12": true, + "9:7": true, + "3:11": true, + "5:2": true, + "2:14": true, + "1:13": true, + "2:13": true, + "7:8": true, + "6:9": true, + "4:6": true, + "1:14": true, + "5:0": true, + "5:6": true, + "4:0": true, + "15:13": [ + 171, + 172 + ], + "1:15": true, + "10:8": true, + "6:7": true, + "1:12": true, + "9:8": true, + "14:13": [ + 173, + 229 + ], + "1:11": true, + "3:13": true, + "1:5": true, + "11:8": true, + "13:6": true, + "13:0": true, + "12:8": true, + "14:11": true, + "13:2": true, + "4:1": true, + "3:12": true, + "11:9": true, + "15:5": true, + "14:5": true, + "5:1": true, + "3:15": true, + "15:11": true, + "12:9": true, + "13:3": true, + "11:7": true, + "2:5": true, + "13:4": true, + "12:7": true, + "3:14": true, + "2:11": true, + "15:4": true, + "14:3": true, + "4:14": true, + "1:6": true, + "11:10": true, + "12:10": true, + "5:14": true, + "2:2": true, + "15:3": true, + "1:0": true, + "14:4": true, + "5:12": true, + "2:4": true, + "14:2": true, + "13:11": true, + "4:15": true, + "15:2": true, + "4:12": true, + "3:1": true, + "13:5": true, + "5:15": true, + "2:3": true, + "15:0": true, + "14:6": true, + "1:3": true, + "1:4": true, + "14:0": true, + "2:0": true, + "5:13": true, + "1:2": true, + "4:13": true, + "2:6": true, + "15:9": true, + "12:11": true, + "9:14": true, + "11:5": true, + "7:12": true, + "12:5": true, + "10:14": true, + "7:15": true, + "14:9": true, + "11:11": true, + "10:12": true, + "6:13": true, + "15:7": true, + "9:15": true, + "14:7": true, + "9:12": true, + "8:1": true, + "13:10": true, + "10:15": true, + "7:14": true, + "7:13": true, + "6:14": true, + "15:8": true, + "10:13": true, + "6:12": true, + "6:15": true, + "14:8": true, + "9:13": true, + "11:0": true, + "12:6": true, + "8:13": true, + "1:10": true, + "13:8": true, + "12:0": true, + "6:1": true, + "11:6": true, + "11:4": true, + "9:1": true, + "8:12": true, + "12:3": true, + "15:10": true, + "14:10": true, + "10:1": true, + "13:7": true, + "12:4": true, + "11:3": true, + "8:15": true, + "12:2": true, + "2:10": true, + "11:2": true, + "8:14": true, + "13:9": true, + "7:1": true, + "12:1": true, + "9:3": true, + "6:0": true, + "10:4": true, + "5:9": true, + "10:3": true, + "7:2": true, + "6:6": true, + "11:1": true, + "9:4": true, + "8:5": true, + "5:7": true, + "3:10": true, + "7:4": true, + "9:2": true, + "8:11": true, + "10:2": true, + "7:3": true, + "9:6": true, + "6:4": true, + "10:0": true, + "10:6": true, + "9:0": true, + "6:3": true, + "7:0": true, + "5:8": true, + "6:2": true, + "7:6": true, + "6:5": true, + "6:11": true, + "11:13": true, + "8:0": true, + "8:6": true, + "12:13": true, + "12:14": true, + "10:5": true, + "9:11": true, + "5:10": true, + "10:11": true, + "9:5": true, + "4:10": true, + "11:14": true, + "8:2": true, + "12:15": true, + "11:12": true, + "8:4": true, + "7:5": true, + "12:12": true, + "11:15": true, + "8:3": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/9_6.json b/src/main/resources/assets/notenoughupdates/dwarven_data/9_6.json index fab5a1e8..1cad6220 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/9_6.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/9_6.json @@ -1 +1,129 @@ -{"1:1":true,"11:5":true,"2:7":true,"8:8":true,"12:5":true,"7:15":true,"2:9":true,"3:0":true,"9:15":true,"8:1":true,"10:15":true,"14:1":true,"13:15":true,"8:7":true,"5:5":true,"4:11":true,"5:11":true,"3:2":true,"15:1":true,"1:9":true,"1:7":true,"6:15":true,"2:1":true,"11:0":true,"12:6":true,"5:4":true,"5:3":true,"2:15":true,"12:0":234,"6:1":true,"11:6":true,"10:7":true,"14:15":true,"13:1":true,"4:2":true,"0:11":true,"15:15":true,"9:7":true,"3:11":true,"5:2":true,"12:3":true,"11:4":true,"9:1":true,"7:8":true,"5:0":true,"10:1":true,"5:6":true,"12:4":true,"11:3":true,"8:15":true,"4:0":true,"12:2":true,"1:15":true,"10:8":true,"11:2":true,"9:8":true,"7:1":true,"12:1":true,"9:3":true,"6:0":true,"1:11":true,"10:4":true,"10:3":true,"0:13":true,"7:2":true,"11:1":true,"9:4":true,"8:5":true,"5:7":true,"7:4":true,"13:6":true,"9:2":true,"13:0":172,"8:11":true,"4:7":true,"10:2":true,"7:3":true,"13:2":true,"9:6":true,"4:1":true,"0:15":true,"10:0":true,"14:5":true,"10:6":true,"5:1":true,"3:15":true,"9:0":true,"7:0":true,"13:3":true,"11:7":true,"0:14":true,"13:4":true,"12:7":true,"2:11":true,"15:4":true,"14:3":true,"2:2":true,"15:3":true,"6:11":true,"1:0":true,"14:4":true,"8:0":true,"14:2":true,"4:15":true,"15:2":true,"8:6":true,"3:1":true,"13:5":true,"5:15":true,"15:0":true,"10:5":true,"9:11":true,"3:7":true,"9:5":true,"8:2":true,"0:7":true,"14:0":true,"2:0":true,"12:15":true,"8:4":true,"1:2":true,"7:5":true,"3:9":true,"11:15":true,"8:3":true,"0:9":true,"7:11":true} \ No newline at end of file +{ + "1:1": true, + "11:5": true, + "2:7": true, + "8:8": true, + "12:5": true, + "7:15": true, + "2:9": true, + "3:0": true, + "9:15": true, + "8:1": true, + "10:15": true, + "14:1": true, + "13:15": true, + "8:7": true, + "5:5": true, + "4:11": true, + "5:11": true, + "3:2": true, + "15:1": true, + "1:9": true, + "1:7": true, + "6:15": true, + "2:1": true, + "11:0": true, + "12:6": true, + "5:4": true, + "5:3": true, + "2:15": true, + "12:0": 234, + "6:1": true, + "11:6": true, + "10:7": true, + "14:15": true, + "13:1": true, + "4:2": true, + "0:11": true, + "15:15": true, + "9:7": true, + "3:11": true, + "5:2": true, + "12:3": true, + "11:4": true, + "9:1": true, + "7:8": true, + "5:0": true, + "10:1": true, + "5:6": true, + "12:4": true, + "11:3": true, + "8:15": true, + "4:0": true, + "12:2": true, + "1:15": true, + "10:8": true, + "11:2": true, + "9:8": true, + "7:1": true, + "12:1": true, + "9:3": true, + "6:0": true, + "1:11": true, + "10:4": true, + "10:3": true, + "0:13": true, + "7:2": true, + "11:1": true, + "9:4": true, + "8:5": true, + "5:7": true, + "7:4": true, + "13:6": true, + "9:2": true, + "13:0": 172, + "8:11": true, + "4:7": true, + "10:2": true, + "7:3": true, + "13:2": true, + "9:6": true, + "4:1": true, + "0:15": true, + "10:0": true, + "14:5": true, + "10:6": true, + "5:1": true, + "3:15": true, + "9:0": true, + "7:0": true, + "13:3": true, + "11:7": true, + "0:14": true, + "13:4": true, + "12:7": true, + "2:11": true, + "15:4": true, + "14:3": true, + "2:2": true, + "15:3": true, + "6:11": true, + "1:0": true, + "14:4": true, + "8:0": true, + "14:2": true, + "4:15": true, + "15:2": true, + "8:6": true, + "3:1": true, + "13:5": true, + "5:15": true, + "15:0": true, + "10:5": true, + "9:11": true, + "3:7": true, + "9:5": true, + "8:2": true, + "0:7": true, + "14:0": true, + "2:0": true, + "12:15": true, + "8:4": true, + "1:2": true, + "7:5": true, + "3:9": true, + "11:15": true, + "8:3": true, + "0:9": true, + "7:11": true +} diff --git a/src/main/resources/assets/notenoughupdates/dwarven_data/all.json b/src/main/resources/assets/notenoughupdates/dwarven_data/all.json index 18d6bee9..a0831fbf 100644 --- a/src/main/resources/assets/notenoughupdates/dwarven_data/all.json +++ b/src/main/resources/assets/notenoughupdates/dwarven_data/all.json @@ -1 +1,206 @@ -{"1_-6":true,"0_-1":true,"8_8":true,"6_10":true,"-1_-2":true,"-9_5":true,"-2_-9":true,"-1_4":true,"-7_10":true,"-2_5":true,"10_10":true,"-1_6":true,"5_11":true,"4_5":true,"0_-5":true,"0_-3":true,"-1_-4":true,"-3_-10":true,"2_12":true,"5_4":true,"0_-9":true,"7_7":true,"-1_-8":true,"9_9":true,"8_10":true,"7_9":true,"6_8":true,"-4_-9":true,"9_7":true,"-3_-8":true,"0_5":true,"-1_-10":true,"-11_1":true,"5_6":true,"-13_1":true,"10_8":true,"1_11":true,"-9_1":true,"7_16":true,"4_-7":true,"-13_-3":true,"9_16":true,"-12_11":true,"12_8":true,"11_9":true,"1_-8":true,"-13_-1":true,"2_-9":true,"-11_-1":true,"11_7":true,"2_5":true,"1_-10":true,"1_6":true,"-14_11":true,"6_17":true,"12_10":true,"-10_11":true,"-12_0":true,"1_-4":true,"4_12":true,"2_-3":true,"10_17":true,"-1_-6":true,"1_4":true,"-4_-7":true,"-12_-2":true,"0_-7":true,"-3_-6":true,"7_15":true,"11_11":true,"10_12":true,"9_15":true,"7_13":true,"-11_10":true,"6_14":true,"-12_9":true,"6_12":true,"-5_-7":true,"-13_10":true,"9_13":true,"5_16":true,"8_12":true,"6_-7":true,"-10_9":true,"-7_-7":true,"8_14":true,"11_2":true,"2_-11":true,"-5_-9":true,"9_4":true,"8_5":true,"0_-11":true,"-6_11":true,"9_0":true,"-7_-9":true,"11_13":true,"-7_5":true,"-2_-11":true,"9_11":true,"12_12":true,"8_3":true,"7_11":true,"8_-3":true,"0_-4":true,"-1_-3":true,"0_6":true,"-12_1":true,"-1_-5":true,"8_7":true,"4_11":true,"5_5":true,"-2_-10":true,"1_-7":true,"9_10":true,"-1_-1":true,"8_9":true,"7_10":true,"0_4":true,"2_-6":true,"0_-2":true,"-9_6":true,"10_9":true,"-10_1":true,"4_4":true,"10_7":true,"0_11":true,"7_8":true,"6_9":true,"-4_-8":true,"0_-10":true,"-1_5":true,"-3_-9":true,"0_-8":true,"-1_-9":true,"6_7":true,"9_8":true,"5_-7":true,"2_-10":true,"-11_-2":true,"1_5":true,"-11_4":true,"1_-9":true,"-13_-2":true,"10_16":true,"-2_-6":true,"3_12":true,"-11_0":true,"12_9":true,"12_7":true,"6_16":true,"-13_0":true,"2_11":true,"-10_5":true,"11_10":true,"-12_-1":true,"-1_-7":true,"5_12":true,"0_-6":true,"-3_-7":true,"-11_11":true,"9_17":true,"8_16":true,"-13_11":true,"1_-5":true,"-12_-3":true,"-10_10":true,"12_11":true,"9_14":true,"11_5":true,"7_12":true,"-6_-7":true,"6_13":true,"9_12":true,"7_14":true,"5_17":true,"10_13":true,"6_15":true,"1_-11":true,"8_13":true,"-11_9":true,"6_-6":true,"-12_10":true,"8_15":true,"9_3":true,"-5_11":true,"3_-11":true,"8_11":true,"10_2":true,"-1_-11":true,"6_4":true,"10_6":true,"-5_-8":true,"-6_-9":true,"-6_3":true,"6_11":true,"8_6":true,"12_13":true,"-7_11":true,"10_11":true,"8_2":true,"11_12":true,"8_4":true,"-7_-8":true,"-8_10":true} \ No newline at end of file +{ + "1_-6": true, + "0_-1": true, + "8_8": true, + "6_10": true, + "-1_-2": true, + "-9_5": true, + "-2_-9": true, + "-1_4": true, + "-7_10": true, + "-2_5": true, + "10_10": true, + "-1_6": true, + "5_11": true, + "4_5": true, + "0_-5": true, + "0_-3": true, + "-1_-4": true, + "-3_-10": true, + "2_12": true, + "5_4": true, + "0_-9": true, + "7_7": true, + "-1_-8": true, + "9_9": true, + "8_10": true, + "7_9": true, + "6_8": true, + "-4_-9": true, + "9_7": true, + "-3_-8": true, + "0_5": true, + "-1_-10": true, + "-11_1": true, + "5_6": true, + "-13_1": true, + "10_8": true, + "1_11": true, + "-9_1": true, + "7_16": true, + "4_-7": true, + "-13_-3": true, + "9_16": true, + "-12_11": true, + "12_8": true, + "11_9": true, + "1_-8": true, + "-13_-1": true, + "2_-9": true, + "-11_-1": true, + "11_7": true, + "2_5": true, + "1_-10": true, + "1_6": true, + "-14_11": true, + "6_17": true, + "12_10": true, + "-10_11": true, + "-12_0": true, + "1_-4": true, + "4_12": true, + "2_-3": true, + "10_17": true, + "-1_-6": true, + "1_4": true, + "-4_-7": true, + "-12_-2": true, + "0_-7": true, + "-3_-6": true, + "7_15": true, + "11_11": true, + "10_12": true, + "9_15": true, + "7_13": true, + "-11_10": true, + "6_14": true, + "-12_9": true, + "6_12": true, + "-5_-7": true, + "-13_10": true, + "9_13": true, + "5_16": true, + "8_12": true, + "6_-7": true, + "-10_9": true, + "-7_-7": true, + "8_14": true, + "11_2": true, + "2_-11": true, + "-5_-9": true, + "9_4": true, + "8_5": true, + "0_-11": true, + "-6_11": true, + "9_0": true, + "-7_-9": true, + "11_13": true, + "-7_5": true, + "-2_-11": true, + "9_11": true, + "12_12": true, + "8_3": true, + "7_11": true, + "8_-3": true, + "0_-4": true, + "-1_-3": true, + "0_6": true, + "-12_1": true, + "-1_-5": true, + "8_7": true, + "4_11": true, + "5_5": true, + "-2_-10": true, + "1_-7": true, + "9_10": true, + "-1_-1": true, + "8_9": true, + "7_10": true, + "0_4": true, + "2_-6": true, + "0_-2": true, + "-9_6": true, + "10_9": true, + "-10_1": true, + "4_4": true, + "10_7": true, + "0_11": true, + "7_8": true, + "6_9": true, + "-4_-8": true, + "0_-10": true, + "-1_5": true, + "-3_-9": true, + "0_-8": true, + "-1_-9": true, + "6_7": true, + "9_8": true, + "5_-7": true, + "2_-10": true, + "-11_-2": true, + "1_5": true, + "-11_4": true, + "1_-9": true, + "-13_-2": true, + "10_16": true, + "-2_-6": true, + "3_12": true, + "-11_0": true, + "12_9": true, + "12_7": true, + "6_16": true, + "-13_0": true, + "2_11": true, + "-10_5": true, + "11_10": true, + "-12_-1": true, + "-1_-7": true, + "5_12": true, + "0_-6": true, + "-3_-7": true, + "-11_11": true, + "9_17": true, + "8_16": true, + "-13_11": true, + "1_-5": true, + "-12_-3": true, + "-10_10": true, + "12_11": true, + "9_14": true, + "11_5": true, + "7_12": true, + "-6_-7": true, + "6_13": true, + "9_12": true, + "7_14": true, + "5_17": true, + "10_13": true, + "6_15": true, + "1_-11": true, + "8_13": true, + "-11_9": true, + "6_-6": true, + "-12_10": true, + "8_15": true, + "9_3": true, + "-5_11": true, + "3_-11": true, + "8_11": true, + "10_2": true, + "-1_-11": true, + "6_4": true, + "10_6": true, + "-5_-8": true, + "-6_-9": true, + "-6_3": true, + "6_11": true, + "8_6": true, + "12_13": true, + "-7_11": true, + "10_11": true, + "8_2": true, + "11_12": true, + "8_4": true, + "-7_-8": true, + "-8_10": true +} diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/style1/dynamic_config.json b/src/main/resources/assets/notenoughupdates/dynamic_54/style1/dynamic_config.json index 05dbf61a..43135433 100644 --- a/src/main/resources/assets/notenoughupdates/dynamic_54/style1/dynamic_config.json +++ b/src/main/resources/assets/notenoughupdates/dynamic_54/style1/dynamic_config.json @@ -1,3 +1,3 @@ { - "text-colour": "FF000000" -} \ No newline at end of file + "text-colour": "FF000000" +} diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/style2/dynamic_config.json b/src/main/resources/assets/notenoughupdates/dynamic_54/style2/dynamic_config.json index 05dbf61a..43135433 100644 --- a/src/main/resources/assets/notenoughupdates/dynamic_54/style2/dynamic_config.json +++ b/src/main/resources/assets/notenoughupdates/dynamic_54/style2/dynamic_config.json @@ -1,3 +1,3 @@ { - "text-colour": "FF000000" -} \ No newline at end of file + "text-colour": "FF000000" +} diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/style3/dynamic_config.json b/src/main/resources/assets/notenoughupdates/dynamic_54/style3/dynamic_config.json index 5ae75066..11b64060 100644 --- a/src/main/resources/assets/notenoughupdates/dynamic_54/style3/dynamic_config.json +++ b/src/main/resources/assets/notenoughupdates/dynamic_54/style3/dynamic_config.json @@ -1,3 +1,3 @@ { - "text-colour": "FFC8C8C8" -} \ No newline at end of file + "text-colour": "FFC8C8C8" +} diff --git a/src/main/resources/assets/notenoughupdates/invbuttons/extraicons.json b/src/main/resources/assets/notenoughupdates/invbuttons/extraicons.json index 5a99f3f0..d4e501c4 100644 --- a/src/main/resources/assets/notenoughupdates/invbuttons/extraicons.json +++ b/src/main/resources/assets/notenoughupdates/invbuttons/extraicons.json @@ -1,18 +1,18 @@ { - "baubles ring": "baubles", - "baubles gold ring": "baubles_gold", - "cross x": "cross", - "green check mark": "green_check", - "white check mark": "white_check", - "question mark help": "question", - "settings cog config": "settings", - "accessory ring": "accessory", - "accessory ring gold": "accessory_gold", - "armor chestplate": "armor", - "armor gold chestplate": "armor_gold", - "pet cat": "pet", - "pet cat gold": "pet_gold", - "skyblock menu": "skyblock_menu", - "recipe book": "recipe", - "search glass": "search" -} \ No newline at end of file + "baubles ring": "baubles", + "baubles gold ring": "baubles_gold", + "cross x": "cross", + "green check mark": "green_check", + "white check mark": "white_check", + "question mark help": "question", + "settings cog config": "settings", + "accessory ring": "accessory", + "accessory ring gold": "accessory_gold", + "armor chestplate": "armor", + "armor gold chestplate": "armor_gold", + "pet cat": "pet", + "pet cat gold": "pet_gold", + "skyblock menu": "skyblock_menu", + "recipe book": "recipe", + "search glass": "search" +} diff --git a/src/main/resources/assets/notenoughupdates/invbuttons/presets.json b/src/main/resources/assets/notenoughupdates/invbuttons/presets.json index d3065f30..4de328ae 100644 --- a/src/main/resources/assets/notenoughupdates/invbuttons/presets.json +++ b/src/main/resources/assets/notenoughupdates/invbuttons/presets.json @@ -1,2739 +1,2739 @@ { - "Empty":[ - { - "x":87, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"", - "icon":"" - }, - { - "x":108, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"", - "icon":"" - }, - { - "x":129, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"", - "icon":"" - }, - { - "x":150, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"", - "icon":"" - }, - { - "x":87, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":108, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":129, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":150, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":87, - "y":25, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":105, - "y":25, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":87, - "y":43, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":105, - "y":43, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":143, - "y":35, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":60, - "y":8, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"", - "icon":"" - }, - { - "x":60, - "y":60, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":26, - "y":8, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":26, - "y":60, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":2, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":22, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":42, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":62, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":-84, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":-64, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":0, - "command":"", - "icon":"" - }, - { - "x":2, - "y":-44, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":-24, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":4, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":25, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":46, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":67, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":88, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":109, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":130, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":151, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":22, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":42, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":62, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":-84, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":-64, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":-44, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":-24, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":4, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":25, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":46, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":67, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":88, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":109, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":130, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":151, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - } - ], - "Empty (Dark)":[ - { - "x":87, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"", - "icon":"" - }, - { - "x":108, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"", - "icon":"" - }, - { - "x":129, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"", - "icon":"" - }, - { - "x":150, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"", - "icon":"" - }, - { - "x":87, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":108, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":129, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":150, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":87, - "y":25, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":105, - "y":25, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":87, - "y":43, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":105, - "y":43, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":143, - "y":35, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":60, - "y":8, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"", - "icon":"" - }, - { - "x":60, - "y":60, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":26, - "y":8, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":26, - "y":60, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":2, - "y":2, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":2, - "y":22, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":2, - "y":42, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":2, - "y":62, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":2, - "y":-84, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":1, - "command":"" - }, - { - "x":2, - "y":-64, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":1, - "command":"", - "icon":"" - }, - { - "x":2, - "y":-44, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":1, - "command":"" - }, - { - "x":2, - "y":-24, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":1, - "command":"" - }, - { - "x":4, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":25, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":46, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":67, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":88, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":109, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":130, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":151, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":-19, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":-19, - "y":22, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":-19, - "y":42, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":-19, - "y":62, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":1, - "command":"" - }, - { - "x":-19, - "y":-84, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":1, - "command":"" - }, - { - "x":-19, - "y":-64, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":1, - "command":"" - }, - { - "x":-19, - "y":-44, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":1, - "command":"" - }, - { - "x":-19, - "y":-24, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":1, - "command":"" - }, - { - "x":4, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":1, - "command":"" - }, - { - "x":25, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":1, - "command":"" - }, - { - "x":46, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":1, - "command":"" - }, - { - "x":67, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":1, - "command":"" - }, - { - "x":88, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":1, - "command":"" - }, - { - "x":109, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":1, - "command":"" - }, - { - "x":130, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":1, - "command":"" - }, - { - "x":151, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":1, - "command":"" - } - ], - "Simple":[ - { - "x":87, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"/warp home", - "icon":"skull:c9c8881e42915a9d29bb61a16fb26d059913204d265df5b439b3d792acd56" - }, - { - "x":108, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"/warp hub", - "icon":"skull:d7cc6687423d0570d556ac53e0676cb563bbdd9717cd8269bdebed6f6d4e7bf8" - }, - { - "x":129, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"/enderchest", - "icon":"ENDER_CHEST" - }, - { - "x":150, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"/pets", - "icon":"extra:pet_gold" - }, - { - "x":87, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":108, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":129, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":150, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":87, - "y":25, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":105, - "y":25, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":87, - "y":43, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":105, - "y":43, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":143, - "y":35, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":60, - "y":8, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":2, - "command":"/wardrobe", - "icon":"extra:baubles_gold" - }, - { - "x":60, - "y":60, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":26, - "y":8, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":26, - "y":60, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":2, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":22, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":42, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":62, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":-84, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":-64, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":0, - "command":"", - "icon":"BONE" - }, - { - "x":2, - "y":-44, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":-24, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":4, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":25, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":46, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":67, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":88, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":109, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":130, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":151, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":22, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":42, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":62, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":-84, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":-64, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":-44, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":-24, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":4, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":25, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":46, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":67, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":88, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":109, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":130, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":151, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - } - ], - "All Warps":[ - { - "x": 87, - "y": 63, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "pets", - "icon": "extra:pet_gold" - }, - { - "x": 108, - "y": 63, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "/wardrobe", - "icon": "extra:armor" - }, - { - "x": 129, - "y": 63, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "/enderchest", - "icon": "ENDER_CHEST" - }, - { - "x": 150, - "y": 63, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "hotm", - "icon": "skull:86f06eaa3004aeed09b3d5b45d976de584e691c0e9cade133635de93d23b9edb" - }, - { - "x": 87, - "y": 5, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "", - "icon": "GOLD_BLOCK" - }, - { - "x": 108, - "y": 5, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 129, - "y": 5, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 150, - "y": 5, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "/pv", - "icon": "PAINTING" - }, - { - "x": 87, - "y": 25, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 105, - "y": 25, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 87, - "y": 43, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 105, - "y": 43, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 143, - "y": 35, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 60, - "y": 8, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "", - "icon": "extra:baubles_gold" - }, - { - "x": 60, - "y": 60, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 26, - "y": 8, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 26, - "y": 60, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 2, - "y": 2, - "playerInvOnly": false, - "anchorRight": true, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "/ah", - "icon": "GOLD_BLOCK" - }, - { - "x": 2, - "y": 22, - "playerInvOnly": false, - "anchorRight": true, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "/bz", - "icon": "GOLD_BARDING" - }, - { - "x": 2, - "y": 42, - "playerInvOnly": false, - "anchorRight": true, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 2, - "y": 62, - "playerInvOnly": false, - "anchorRight": true, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "warp museum", - "icon": "skull:438cf3f8e54afc3b3f91d20a49f324dca1486007fe545399055524c17941f4dc" - }, - { - "x": 2, - "y": -84, - "playerInvOnly": false, - "anchorRight": true, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "/warp home", - "icon": "skull:c9c8881e42915a9d29bb61a16fb26d059913204d265df5b439b3d792acd56" - }, - { - "x": 2, - "y": -64, - "playerInvOnly": false, - "anchorRight": true, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "/warp hub", - "icon": "skull:d7cc6687423d0570d556ac53e0676cb563bbdd9717cd8269bdebed6f6d4e7bf8" - }, - { - "x": 2, - "y": -44, - "playerInvOnly": false, - "anchorRight": true, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "/warp dungeon_hub", - "icon": "skull:9b56895b9659896ad647f58599238af532d46db9c1b0389b8bbeb70999dab33d" - }, - { - "x": 2, - "y": -24, - "playerInvOnly": false, - "anchorRight": true, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "/warp end", - "icon": "skull:7840b87d52271d2a755dedc82877e0ed3df67dcc42ea479ec146176b02779a5" - }, - { - "x": 4, - "y": -19, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 25, - "y": -19, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 46, - "y": -19, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 67, - "y": -19, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 88, - "y": -19, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 109, - "y": -19, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 130, - "y": -19, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 151, - "y": -19, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": -19, - "y": 2, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": -19, - "y": 22, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": -19, - "y": 42, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": -19, - "y": 62, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": -19, - "y": -84, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "" - }, - { - "x": -19, - "y": -64, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "" - }, - { - "x": -19, - "y": -44, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "warp barn", - "icon": "skull:4d3a6bd98ac1833c664c4909ff8d2dc62ce887bdcf3cc5b3848651ae5af6b" - }, - { - "x": -19, - "y": -24, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "warp desert", - "icon": "skull:51539dddf9ed255ece6348193cd75012c82c93aec381f05572cecf7379711b3b" - }, - { - "x": 4, - "y": 2, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "/warp gold", - "icon": "skull:73bc965d579c3c6039f0a17eb7c2e6faf538c7a5de8e60ec7a719360d0a857a9" - }, - { - "x": 25, - "y": 2, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "/warp deep", - "icon": "skull:569a1f114151b4521373f34bc14c2963a5011cdc25a6554c48c708cd96ebfc" - }, - { - "x": 46, - "y": 2, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "/warp crystals", - "icon": "skull:21dbe30b027acbceb612563bd877cd7ebb719ea6ed1399027dcee58bb9049d4a" - }, - { - "x": 67, - "y": 2, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "/warp forge", - "icon": "skull:5cbd9f5ec1ed007259996491e69ff649a3106cf920227b1bb3a71ee7a89863f" - }, - { - "x": 88, - "y": 2, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "/warp mines", - "icon": "skull:6b20b23c1aa2be0270f016b4c90d6ee6b8330a17cfef87869d6ad60b2ffbf3b5" - }, - { - "x": 109, - "y": 2, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "/warp park", - "icon": "skull:a221f813dacee0fef8c59f76894dbb26415478d9ddfc44c2e708a6d3b7549b" - }, - { - "x": 130, - "y": 2, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "/warp spider", - "icon": "skull:9d7e3b19ac4f3dee9c5677c135333b9d35a7f568b63d1ef4ada4b068b5a25" - }, - { - "x": 151, - "y": 2, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "/warp nether", - "icon": "skull:c3687e25c632bce8aa61e0d64c24e694c3eea629ea944f4cf30dcfb4fbce071" - } - ], - "More Buttons":[ - { - "x":87, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"/sbmenu", - "icon":"SKYBLOCK_MENU" - }, - { - "x":108, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"enderchest", - "icon":"ENDER_CHEST" - }, - { - "x":129, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"pets", - "icon":"BONE" - }, - { - "x":150, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"effects", - "icon":"POTION" - }, - { - "x":87, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"/recipes", - "icon":"extra:recipe" - }, - { - "x":108, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"/collections", - "icon":"PAINTING" - }, - { - "x":129, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"/scg", - "icon":"BOOK" - }, - { - "x":150, - "y":5, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"/calendar", - "icon":"BOOK_AND_QUILL" - }, - { - "x":87, - "y":25, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"", - "icon":"CHEST" - }, - { - "x":105, - "y":25, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":87, - "y":43, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":105, - "y":43, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":143, - "y":35, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"craft", - "icon":"WORKBENCH" - }, - { - "x":60, - "y":8, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":2, - "command":"/wardrobe", - "icon":"extra:baubles_gold" - }, - { - "x":60, - "y":60, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":26, - "y":8, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":26, - "y":60, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":2, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":0, - "command":"/warp hub", - "icon":"skull:d7cc6687423d0570d556ac53e0676cb563bbdd9717cd8269bdebed6f6d4e7bf8" - }, - { - "x":2, - "y":22, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":0, - "command":"/warp home", - "icon":"skull:c9c8881e42915a9d29bb61a16fb26d059913204d265df5b439b3d792acd56" - }, - { - "x":2, - "y":42, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":62, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":-84, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":0, - "command":"", - "icon":"" - }, - { - "x":2, - "y":-64, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":0, - "command":"", - "icon":"BONE" - }, - { - "x":2, - "y":-44, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":2, - "y":-24, - "playerInvOnly":false, - "anchorRight":true, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":4, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":25, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":46, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":67, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":88, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":109, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":130, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":151, - "y":-19, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"/ah", - "icon":"GOLD_BLOCK" - }, - { - "x":-19, - "y":22, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"/bz", - "icon":"GOLD_BARDING" - }, - { - "x":-19, - "y":42, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":62, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":-84, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":-64, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":-44, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":-19, - "y":-24, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":4, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":25, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":46, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":67, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":88, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":109, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":130, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - }, - { - "x":151, - "y":2, - "playerInvOnly":false, - "anchorRight":false, - "anchorBottom":true, - "backgroundIndex":0, - "command":"" - } - ], - "Dungeons":[ - { - "x":87, - "y":63, - "playerInvOnly":true, - "anchorRight":false, - "anchorBottom":false, - "backgroundIndex":0, - "command":"", - "icon":"" - }, - { - "x": 108, - "y": 63, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "warp dungeon_hub", - "icon": "skull:9b56895b9659896ad647f58599238af532d46db9c1b0389b8bbeb70999dab33d" - }, - { - "x": 129, - "y": 63, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "reparty", - "icon": "COMMAND" - }, - { - "x": 150, - "y": 63, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "pets", - "icon": "extra:pet_gold" - }, - { - "x": 87, - "y": 5, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 108, - "y": 5, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 129, - "y": 5, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 150, - "y": 5, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 87, - "y": 25, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 105, - "y": 25, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 87, - "y": 43, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 105, - "y": 43, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 143, - "y": 35, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 60, - "y": 8, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 2, - "command": "/wardrobe", - "icon": "extra:baubles_gold" - }, - { - "x": 60, - "y": 60, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 26, - "y": 8, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 26, - "y": 60, - "playerInvOnly": true, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 2, - "y": 2, - "playerInvOnly": false, - "anchorRight": true, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 2, - "y": 22, - "playerInvOnly": false, - "anchorRight": true, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 2, - "y": 42, - "playerInvOnly": false, - "anchorRight": true, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 2, - "y": 62, - "playerInvOnly": false, - "anchorRight": true, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 2, - "y": -84, - "playerInvOnly": false, - "anchorRight": true, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 2, - "y": -64, - "playerInvOnly": false, - "anchorRight": true, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "", - "icon": "" - }, - { - "x": 2, - "y": -44, - "playerInvOnly": false, - "anchorRight": true, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 2, - "y": -24, - "playerInvOnly": false, - "anchorRight": true, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 4, - "y": -19, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "joindungeon master_catacombs 1", - "icon": "DIAMOND_BONZO_HEAD" - }, - { - "x": 25, - "y": -19, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "joindungeon master_catacombs 2", - "icon": "DIAMOND_SCARF_HEAD" - }, - { - "x": 46, - "y": -19, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "joindungeon master_catacombs 3", - "icon": "DIAMOND_PROFESSOR_HEAD" - }, - { - "x": 67, - "y": -19, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "joindungeon master_catacombs 4", - "icon": "DIAMOND_THORN_HEAD" - }, - { - "x": 88, - "y": -19, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "joindungeon master_catacombs 5", - "icon": "DIAMOND_LIVID_HEAD" - }, - { - "x": 109, - "y": -19, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "joindungeon master_catacombs 6", - "icon": "DIAMOND_SADAN_HEAD" - }, - { - "x": 130, - "y": -19, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "joindungeon master_catacombs 7", - "icon": "DIAMOND_NECRON_HEAD" - }, - { - "x": 151, - "y": -19, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "" - }, - { - "x": -19, - "y": 2, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "joindungeon catacombs 1", - "icon": "GOLD_BONZO_HEAD" - }, - { - "x": -19, - "y": 22, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "joindungeon catacombs 2", - "icon": "GOLD_SCARF_HEAD" - }, - { - "x": -19, - "y": 42, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "joindungeon catacombs 3", - "icon": "GOLD_PROFESSOR_HEAD" - }, - { - "x": -19, - "y": 62, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": false, - "backgroundIndex": 0, - "command": "joindungeon catacombs 4", - "icon": "GOLD_THORN_HEAD" - }, - { - "x": -19, - "y": -84, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "joindungeon catacombs 5", - "icon": "GOLD_LIVID_HEAD" - }, - { - "x": -19, - "y": -64, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "/joindungeon catacombs 6", - "icon": "GOLD_SADAN_HEAD" - }, - { - "x": -19, - "y": -44, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "joindungeon catacombs 7", - "icon": "GOLD_NECRON_HEAD" - }, - { - "x": -19, - "y": -24, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 4, - "y": 2, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 25, - "y": 2, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 46, - "y": 2, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 67, - "y": 2, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 88, - "y": 2, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 109, - "y": 2, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 130, - "y": 2, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "" - }, - { - "x": 151, - "y": 2, - "playerInvOnly": false, - "anchorRight": false, - "anchorBottom": true, - "backgroundIndex": 0, - "command": "" - } - ] + "Empty": [ + { + "x": 87, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "", + "icon": "" + }, + { + "x": 108, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "", + "icon": "" + }, + { + "x": 129, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "", + "icon": "" + }, + { + "x": 150, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "", + "icon": "" + }, + { + "x": 87, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 108, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 129, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 150, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 87, + "y": 25, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 105, + "y": 25, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 87, + "y": 43, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 105, + "y": 43, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 143, + "y": 35, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 60, + "y": 8, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "", + "icon": "" + }, + { + "x": 60, + "y": 60, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 26, + "y": 8, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 26, + "y": 60, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": 2, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": 22, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": 42, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": 62, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": -84, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": -64, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "", + "icon": "" + }, + { + "x": 2, + "y": -44, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": -24, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 4, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 25, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 46, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 67, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 88, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 109, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 130, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 151, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 22, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 42, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 62, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": -84, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": -64, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": -44, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": -24, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 4, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 25, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 46, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 67, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 88, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 109, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 130, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 151, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + } + ], + "Empty (Dark)": [ + { + "x": 87, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "", + "icon": "" + }, + { + "x": 108, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "", + "icon": "" + }, + { + "x": 129, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "", + "icon": "" + }, + { + "x": 150, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "", + "icon": "" + }, + { + "x": 87, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 108, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 129, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 150, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 87, + "y": 25, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 105, + "y": 25, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 87, + "y": 43, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 105, + "y": 43, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 143, + "y": 35, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 60, + "y": 8, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "", + "icon": "" + }, + { + "x": 60, + "y": 60, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 26, + "y": 8, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 26, + "y": 60, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 2, + "y": 2, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 2, + "y": 22, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 2, + "y": 42, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 2, + "y": 62, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 2, + "y": -84, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 2, + "y": -64, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 1, + "command": "", + "icon": "" + }, + { + "x": 2, + "y": -44, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 2, + "y": -24, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 4, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 25, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 46, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 67, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 88, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 109, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 130, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 151, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": -19, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": -19, + "y": 22, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": -19, + "y": 42, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": -19, + "y": 62, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 1, + "command": "" + }, + { + "x": -19, + "y": -84, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 1, + "command": "" + }, + { + "x": -19, + "y": -64, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 1, + "command": "" + }, + { + "x": -19, + "y": -44, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 1, + "command": "" + }, + { + "x": -19, + "y": -24, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 4, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 25, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 46, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 67, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 88, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 109, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 130, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 1, + "command": "" + }, + { + "x": 151, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 1, + "command": "" + } + ], + "Simple": [ + { + "x": 87, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/warp home", + "icon": "skull:c9c8881e42915a9d29bb61a16fb26d059913204d265df5b439b3d792acd56" + }, + { + "x": 108, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/warp hub", + "icon": "skull:d7cc6687423d0570d556ac53e0676cb563bbdd9717cd8269bdebed6f6d4e7bf8" + }, + { + "x": 129, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/enderchest", + "icon": "ENDER_CHEST" + }, + { + "x": 150, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/pets", + "icon": "extra:pet_gold" + }, + { + "x": 87, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 108, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 129, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 150, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 87, + "y": 25, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 105, + "y": 25, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 87, + "y": 43, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 105, + "y": 43, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 143, + "y": 35, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 60, + "y": 8, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 2, + "command": "/wardrobe", + "icon": "extra:baubles_gold" + }, + { + "x": 60, + "y": 60, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 26, + "y": 8, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 26, + "y": 60, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": 2, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": 22, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": 42, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": 62, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": -84, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": -64, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "", + "icon": "BONE" + }, + { + "x": 2, + "y": -44, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": -24, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 4, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 25, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 46, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 67, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 88, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 109, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 130, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 151, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 22, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 42, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 62, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": -84, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": -64, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": -44, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": -24, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 4, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 25, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 46, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 67, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 88, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 109, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 130, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 151, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + } + ], + "All Warps": [ + { + "x": 87, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "pets", + "icon": "extra:pet_gold" + }, + { + "x": 108, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/wardrobe", + "icon": "extra:armor" + }, + { + "x": 129, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/enderchest", + "icon": "ENDER_CHEST" + }, + { + "x": 150, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "hotm", + "icon": "skull:86f06eaa3004aeed09b3d5b45d976de584e691c0e9cade133635de93d23b9edb" + }, + { + "x": 87, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "", + "icon": "GOLD_BLOCK" + }, + { + "x": 108, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 129, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 150, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/pv", + "icon": "PAINTING" + }, + { + "x": 87, + "y": 25, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 105, + "y": 25, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 87, + "y": 43, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 105, + "y": 43, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 143, + "y": 35, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 60, + "y": 8, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "", + "icon": "extra:baubles_gold" + }, + { + "x": 60, + "y": 60, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 26, + "y": 8, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 26, + "y": 60, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": 2, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/ah", + "icon": "GOLD_BLOCK" + }, + { + "x": 2, + "y": 22, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/bz", + "icon": "GOLD_BARDING" + }, + { + "x": 2, + "y": 42, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": 62, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "warp museum", + "icon": "skull:438cf3f8e54afc3b3f91d20a49f324dca1486007fe545399055524c17941f4dc" + }, + { + "x": 2, + "y": -84, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp home", + "icon": "skull:c9c8881e42915a9d29bb61a16fb26d059913204d265df5b439b3d792acd56" + }, + { + "x": 2, + "y": -64, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp hub", + "icon": "skull:d7cc6687423d0570d556ac53e0676cb563bbdd9717cd8269bdebed6f6d4e7bf8" + }, + { + "x": 2, + "y": -44, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp dungeon_hub", + "icon": "skull:9b56895b9659896ad647f58599238af532d46db9c1b0389b8bbeb70999dab33d" + }, + { + "x": 2, + "y": -24, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp end", + "icon": "skull:7840b87d52271d2a755dedc82877e0ed3df67dcc42ea479ec146176b02779a5" + }, + { + "x": 4, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 25, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 46, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 67, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 88, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 109, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 130, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 151, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 22, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 42, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 62, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": -84, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": -64, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": -44, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "warp barn", + "icon": "skull:4d3a6bd98ac1833c664c4909ff8d2dc62ce887bdcf3cc5b3848651ae5af6b" + }, + { + "x": -19, + "y": -24, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "warp desert", + "icon": "skull:51539dddf9ed255ece6348193cd75012c82c93aec381f05572cecf7379711b3b" + }, + { + "x": 4, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp gold", + "icon": "skull:73bc965d579c3c6039f0a17eb7c2e6faf538c7a5de8e60ec7a719360d0a857a9" + }, + { + "x": 25, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp deep", + "icon": "skull:569a1f114151b4521373f34bc14c2963a5011cdc25a6554c48c708cd96ebfc" + }, + { + "x": 46, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp crystals", + "icon": "skull:21dbe30b027acbceb612563bd877cd7ebb719ea6ed1399027dcee58bb9049d4a" + }, + { + "x": 67, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp forge", + "icon": "skull:5cbd9f5ec1ed007259996491e69ff649a3106cf920227b1bb3a71ee7a89863f" + }, + { + "x": 88, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp mines", + "icon": "skull:6b20b23c1aa2be0270f016b4c90d6ee6b8330a17cfef87869d6ad60b2ffbf3b5" + }, + { + "x": 109, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp park", + "icon": "skull:a221f813dacee0fef8c59f76894dbb26415478d9ddfc44c2e708a6d3b7549b" + }, + { + "x": 130, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp spider", + "icon": "skull:9d7e3b19ac4f3dee9c5677c135333b9d35a7f568b63d1ef4ada4b068b5a25" + }, + { + "x": 151, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/warp nether", + "icon": "skull:c3687e25c632bce8aa61e0d64c24e694c3eea629ea944f4cf30dcfb4fbce071" + } + ], + "More Buttons": [ + { + "x": 87, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/sbmenu", + "icon": "SKYBLOCK_MENU" + }, + { + "x": 108, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "enderchest", + "icon": "ENDER_CHEST" + }, + { + "x": 129, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "pets", + "icon": "BONE" + }, + { + "x": 150, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "effects", + "icon": "POTION" + }, + { + "x": 87, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/recipes", + "icon": "extra:recipe" + }, + { + "x": 108, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/collections", + "icon": "PAINTING" + }, + { + "x": 129, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/scg", + "icon": "BOOK" + }, + { + "x": 150, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/calendar", + "icon": "BOOK_AND_QUILL" + }, + { + "x": 87, + "y": 25, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "", + "icon": "CHEST" + }, + { + "x": 105, + "y": 25, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 87, + "y": 43, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 105, + "y": 43, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 143, + "y": 35, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "craft", + "icon": "WORKBENCH" + }, + { + "x": 60, + "y": 8, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 2, + "command": "/wardrobe", + "icon": "extra:baubles_gold" + }, + { + "x": 60, + "y": 60, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 26, + "y": 8, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 26, + "y": 60, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": 2, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/warp hub", + "icon": "skull:d7cc6687423d0570d556ac53e0676cb563bbdd9717cd8269bdebed6f6d4e7bf8" + }, + { + "x": 2, + "y": 22, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/warp home", + "icon": "skull:c9c8881e42915a9d29bb61a16fb26d059913204d265df5b439b3d792acd56" + }, + { + "x": 2, + "y": 42, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": 62, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": -84, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "", + "icon": "" + }, + { + "x": 2, + "y": -64, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "", + "icon": "BONE" + }, + { + "x": 2, + "y": -44, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": -24, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 4, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 25, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 46, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 67, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 88, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 109, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 130, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 151, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/ah", + "icon": "GOLD_BLOCK" + }, + { + "x": -19, + "y": 22, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "/bz", + "icon": "GOLD_BARDING" + }, + { + "x": -19, + "y": 42, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 62, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": -84, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": -64, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": -44, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": -24, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 4, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 25, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 46, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 67, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 88, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 109, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 130, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 151, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + } + ], + "Dungeons": [ + { + "x": 87, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "", + "icon": "" + }, + { + "x": 108, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "warp dungeon_hub", + "icon": "skull:9b56895b9659896ad647f58599238af532d46db9c1b0389b8bbeb70999dab33d" + }, + { + "x": 129, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "reparty", + "icon": "COMMAND" + }, + { + "x": 150, + "y": 63, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "pets", + "icon": "extra:pet_gold" + }, + { + "x": 87, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 108, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 129, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 150, + "y": 5, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 87, + "y": 25, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 105, + "y": 25, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 87, + "y": 43, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 105, + "y": 43, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 143, + "y": 35, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 60, + "y": 8, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 2, + "command": "/wardrobe", + "icon": "extra:baubles_gold" + }, + { + "x": 60, + "y": 60, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 26, + "y": 8, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 26, + "y": 60, + "playerInvOnly": true, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": 2, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": 22, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": 42, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": 62, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": -84, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": -64, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "", + "icon": "" + }, + { + "x": 2, + "y": -44, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 2, + "y": -24, + "playerInvOnly": false, + "anchorRight": true, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 4, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "joindungeon master_catacombs 1", + "icon": "DIAMOND_BONZO_HEAD" + }, + { + "x": 25, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "joindungeon master_catacombs 2", + "icon": "DIAMOND_SCARF_HEAD" + }, + { + "x": 46, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "joindungeon master_catacombs 3", + "icon": "DIAMOND_PROFESSOR_HEAD" + }, + { + "x": 67, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "joindungeon master_catacombs 4", + "icon": "DIAMOND_THORN_HEAD" + }, + { + "x": 88, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "joindungeon master_catacombs 5", + "icon": "DIAMOND_LIVID_HEAD" + }, + { + "x": 109, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "joindungeon master_catacombs 6", + "icon": "DIAMOND_SADAN_HEAD" + }, + { + "x": 130, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "joindungeon master_catacombs 7", + "icon": "DIAMOND_NECRON_HEAD" + }, + { + "x": 151, + "y": -19, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "" + }, + { + "x": -19, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "joindungeon catacombs 1", + "icon": "GOLD_BONZO_HEAD" + }, + { + "x": -19, + "y": 22, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "joindungeon catacombs 2", + "icon": "GOLD_SCARF_HEAD" + }, + { + "x": -19, + "y": 42, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "joindungeon catacombs 3", + "icon": "GOLD_PROFESSOR_HEAD" + }, + { + "x": -19, + "y": 62, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": false, + "backgroundIndex": 0, + "command": "joindungeon catacombs 4", + "icon": "GOLD_THORN_HEAD" + }, + { + "x": -19, + "y": -84, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "joindungeon catacombs 5", + "icon": "GOLD_LIVID_HEAD" + }, + { + "x": -19, + "y": -64, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "/joindungeon catacombs 6", + "icon": "GOLD_SADAN_HEAD" + }, + { + "x": -19, + "y": -44, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "joindungeon catacombs 7", + "icon": "GOLD_NECRON_HEAD" + }, + { + "x": -19, + "y": -24, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 4, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 25, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 46, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 67, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 88, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 109, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 130, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + }, + { + "x": 151, + "y": 2, + "playerInvOnly": false, + "anchorRight": false, + "anchorBottom": true, + "backgroundIndex": 0, + "command": "" + } + ] } diff --git a/src/main/resources/assets/notenoughupdates/official-wiki.css b/src/main/resources/assets/notenoughupdates/official-wiki.css index a9f82a32..f942a3f0 100644 --- a/src/main/resources/assets/notenoughupdates/official-wiki.css +++ b/src/main/resources/assets/notenoughupdates/official-wiki.css @@ -1 +1,22622 @@ -.client-js .mw-dismissable-notice { display: none}.mw-dismissable-notice-close { visibility: hidden}.sitedir-ltr .mw-dismissable-notice-close { float: right}.sitedir-rtl .mw-dismissable-notice-close { float: left}.sitedir-ltr .mw-dismissable-notice-body { margin: .5em 20% .5em 5em}.sitedir-rtl .mw-dismissable-notice-body { margin: .5em 5em .5em 20%}.hlist dl,.hlist ol,.hlist ul { margin: 0; padding: 0}.hlist dl dl,.hlist ol dl,.hlist ul dl,.hlist dl ol,.hlist ol ol,.hlist ul ol,.hlist dl ul,.hlist ol ul,.hlist ul ul { display: inline}.hlist dd,.hlist dt,.hlist li { margin: 0; display: inline}ul.hlist li,.hlist>ul li,.hlist>dl li { display: inline-block; margin-right: 8px}.hlist-separated li:after { content: '•'!important; padding-left: 8px; font-size: 1em; line-height: 1}.hlist-separated :last-child:after { content: none!important}.mw-ui-button { background-color: #f8f9fa; color: #202122; display: inline-block; -moz-box-sizing: border-box; box-sizing: border-box; border: 1px solid #a2a9b1; border-radius: 2px; cursor: pointer; vertical-align: middle; font-family: inherit; font-size: 1em; font-weight: 700; line-height: 1.28571429em; text-align: center; -webkit-appearance: none}.mw-ui-button:not(.mw-ui-icon-element) { min-height: 32px; min-width: 4em; max-width: 28.75em; margin: 0; padding: 5px 12px}.mw-ui-button:not(:disabled) { -webkit-transition: background-color 100ms,color 100ms,border-color 100ms,box-shadow 100ms; transition: background-color 100ms,color 100ms,border-color 100ms,box-shadow 100ms}.mw-ui-button:not(:disabled):visited { color: #202122}.mw-ui-button:not(:disabled):hover { background-color: #fff; color: #404244; border-color: #a2a9b1}.mw-ui-button:not(:disabled):focus { color: #202122; border-color: #36c; box-shadow: inset 0 0 0 1px #36c,inset 0 0 0 2px #fff; outline-width: 0}.mw-ui-button:not(:disabled):focus::-moz-focus-inner { border-color: transparent; padding: 0}.mw-ui-button:not(:disabled):active,.mw-ui-button:not(:disabled).is-on { background-color: #c8ccd1; color: #000; border-color: #72777d; box-shadow: none}.mw-ui-button:disabled { background-color: #c8ccd1; color: #fff; border-color: #c8ccd1; cursor: default}.mw-ui-button.mw-ui-icon-element:not(.mw-ui-icon-with-label-desktop) { color: transparent!important}.mw-ui-button.mw-ui-icon-element:not(.mw-ui-icon-with-label-desktop) span { display: block; position: absolute!important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; margin: -1px; border: 0; padding: 0; overflow: hidden}@media all and (max-width: 1000px) { .mw-ui-button.mw-ui-icon-element.mw-ui-icon-with-label-desktop { color:transparent!important } .mw-ui-button.mw-ui-icon-element span { display: block; position: absolute!important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; margin: -1px; border: 0; padding: 0; overflow: hidden }}.mw-ui-button.mw-ui-quiet,.mw-ui-button.mw-ui-quiet.mw-ui-progressive,.mw-ui-button.mw-ui-quiet.mw-ui-destructive { background-color: transparent; color: #202122; border-color: transparent; font-weight: 700}.mw-ui-button.mw-ui-quiet:not(.mw-ui-icon-element),.mw-ui-button.mw-ui-quiet.mw-ui-progressive:not(.mw-ui-icon-element),.mw-ui-button.mw-ui-quiet.mw-ui-destructive:not(.mw-ui-icon-element) { min-height: 32px}input[type=checkbox]:hover+.mw-ui-button.mw-ui-quiet,input[type=checkbox]:hover+.mw-ui-button.mw-ui-quiet.mw-ui-progressive,input[type=checkbox]:hover+.mw-ui-button.mw-ui-quiet.mw-ui-destructive,.mw-ui-button.mw-ui-quiet:hover,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:hover,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:hover { background-color: rgba(0,24,73,.02745098); color: #202122; border-color: transparent}input[type=checkbox]:focus+.mw-ui-button.mw-ui-quiet,input[type=checkbox]:focus+.mw-ui-button.mw-ui-quiet.mw-ui-progressive,input[type=checkbox]:focus+.mw-ui-button.mw-ui-quiet.mw-ui-destructive,.mw-ui-button.mw-ui-quiet:focus,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:focus,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:focus { color: #202122; border-color: #36c; box-shadow: inset 0 0 0 1px #36c,inset 0 0 0 2px #fff}input[type=checkbox]:active+.mw-ui-button.mw-ui-quiet,input[type=checkbox]:active+.mw-ui-button.mw-ui-quiet.mw-ui-progressive,input[type=checkbox]:active+.mw-ui-button.mw-ui-quiet.mw-ui-destructive,.mw-ui-button.mw-ui-quiet:active,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:active,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:active { background-color: rgba(0,36,73,.08235294); color: #000; border-color: #72777d; box-shadow: none}.mw-ui-button.mw-ui-quiet:disabled,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled,.mw-ui-button.mw-ui-quiet:disabled:hover,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled:hover,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled:hover,.mw-ui-button.mw-ui-quiet:disabled:active,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled:active,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled:active { background-color: transparent; color: #72777d; border-color: transparent}.mw-ui-button.mw-ui-progressive:not(:disabled) { background-color: #36c; color: #fff; border-color: #36c}.mw-ui-button.mw-ui-progressive:not(:disabled):hover { background-color: #447ff5; border-color: #447ff5}.mw-ui-button.mw-ui-progressive:not(:disabled):focus { box-shadow: inset 0 0 0 1px #36c,inset 0 0 0 2px #fff}.mw-ui-button.mw-ui-progressive:not(:disabled):active,.mw-ui-button.mw-ui-progressive:not(:disabled).is-on { background-color: #2a4b8d; border-color: #2a4b8d; box-shadow: none}.mw-ui-button.mw-ui-progressive:disabled { background-color: #c8ccd1; color: #fff; border-color: #c8ccd1}.mw-ui-button.mw-ui-progressive.mw-ui-quiet { color: #36c; background-color: transparent; border-color: transparent}input[type=checkbox]:hover+.mw-ui-button.mw-ui-progressive.mw-ui-quiet,.mw-ui-button.mw-ui-progressive.mw-ui-quiet:hover { background-color: rgba(52,123,255,.2); border-color: transparent; color: #447ff5}input[type=checkbox]:focus+.mw-ui-button.mw-ui-progressive.mw-ui-quiet,.mw-ui-button.mw-ui-progressive.mw-ui-quiet:focus { color: #36c; border-color: #36c}input[type=checkbox]:active+.mw-ui-button.mw-ui-progressive.mw-ui-quiet,.mw-ui-button.mw-ui-progressive.mw-ui-quiet:active { color: #fff; background-color: #2a4b8d; border-color: #2a4b8d}.mw-ui-button.mw-ui-destructive:not(:disabled) { background-color: #d33; color: #fff; border-color: #d33}.mw-ui-button.mw-ui-destructive:not(:disabled):hover { background-color: #ff4242; border-color: #ff4242}.mw-ui-button.mw-ui-destructive:not(:disabled):focus { box-shadow: inset 0 0 0 1px #d33,inset 0 0 0 2px #fff}.mw-ui-button.mw-ui-destructive:not(:disabled):active,.mw-ui-button.mw-ui-destructive:not(:disabled).is-on { background-color: #b32424; border-color: #b32424; box-shadow: none}.mw-ui-button.mw-ui-destructive:disabled { background-color: #c8ccd1; color: #fff; border-color: #c8ccd1}.mw-ui-button.mw-ui-destructive.mw-ui-quiet { color: #d33; background-color: transparent; border-color: transparent}input[type=checkbox]:hover+.mw-ui-button.mw-ui-destructive.mw-ui-quiet,.mw-ui-button.mw-ui-destructive.mw-ui-quiet:hover { background-color: rgba(209,29,19,.2); border-color: transparent; color: #ff4242}input[type=checkbox]:focus+.mw-ui-button.mw-ui-destructive.mw-ui-quiet,.mw-ui-button.mw-ui-destructive.mw-ui-quiet:focus { color: #d33; border-color: #d33}input[type=checkbox]:active+.mw-ui-button.mw-ui-destructive.mw-ui-quiet,.mw-ui-button.mw-ui-destructive.mw-ui-quiet:active { color: #fff; background-color: #b32424; border-color: #b32424}.mw-ui-button.mw-ui-big { font-size: 1.3em}.mw-ui-button.mw-ui-block { display: block; width: 100%; margin-left: auto; margin-right: auto}a.mw-ui-button { text-decoration: none}a.mw-ui-button:hover,a.mw-ui-button:focus { text-decoration: none}.mw-ui-button-group>* { min-width: 48px; border-radius: 0; float: left}.mw-ui-button-group>*:first-child { border-top-left-radius: 2px; border-bottom-left-radius: 2px}.mw-ui-button-group>*:not(:first-child) { border-left: 0}.mw-ui-button-group>*:last-child { border-top-right-radius: 2px; border-bottom-right-radius: 2px}.mw-ui-button-group .is-on .button { cursor: default}.mw-ui-icon { font-size: initial; position: relative; display: inline-block; box-sizing: content-box!important; width: 1.25em; height: 1.25em; min-width: 1.25em; min-height: 1.25em; flex-basis: 1.25em; vertical-align: middle; line-height: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; -moz-appearance: none; -webkit-appearance: none; background-color: transparent; border: 0; margin: 0; padding: 0}.mw-ui-icon:before { content: ''; display: block; width: 100%; height: 100%; min-width: 1.25em; min-height: 1.25em; background-repeat: no-repeat; background-size: 1.25em 1.25em; background-position: center}.mw-ui-icon-flush-top { margin-top: -.75em}.mw-ui-icon-flush-left { margin-left: -.75em}.mw-ui-icon-flush-right { margin-right: -.75em}.mw-ui-icon-element { border-radius: 2px; padding: .75em; -webkit-transition: background-color 100ms; transition: background-color 100ms; color: transparent}.mw-ui-icon-element:focus,.mw-ui-icon-element:active,.mw-ui-icon-element:visited { color: transparent}.mw-ui-icon-element:active { background-color: rgba(0,0,0,.03)}@media(hover: hover) { .mw-ui-icon-element:not(.disabled):hover { background-color:rgba(0,0,0,.03) }}.mw-ui-icon-small { width: 1em; height: 1em; min-width: 1em; min-height: 1em; flex-basis: 1em; line-height: 1em}.mw-ui-icon-small:before { content: ''; display: block; width: 100%; height: 100%; min-width: 1em; min-height: 1em; background-repeat: no-repeat; background-size: 1em 1em; background-position: center}.mw-ui-icon-small.mw-ui-icon-element { padding: .5625em}.mw-ui-icon-small.mw-ui-icon-flush-left { margin-left: -.5625em}.mw-ui-icon-small.mw-ui-icon-flush-right { margin-right: -.5625em}.mw-ui-icon-small.mw-ui-icon-before:before { min-width: 1em; min-height: 1em; margin-right: .5625em}.mw-ui-icon-before { width: auto; max-width: 100%}.mw-ui-icon-before:before { display: inline-block; font-size: initial; width: auto; min-width: 1.25em; min-height: 1.25em; margin-right: 8px; vertical-align: middle}.mw-ui-icon-before span { vertical-align: middle}@media all and (min-width: 1000px) { .mw-ui-icon-with-label-desktop { color:#54595d; width: auto; line-height: inherit; flex-basis: auto } .mw-ui-icon-with-label-desktop:hover,.mw-ui-icon-with-label-desktop:focus,.mw-ui-icon-with-label-desktop:active,.mw-ui-icon-with-label-desktop:visited { color: #54595d; text-decoration: none } .mw-ui-icon-with-label-desktop:before { width: auto; display: inline-block; margin-right: 8px; vertical-align: text-bottom }}.minerva__tab-container { white-space: nowrap; overflow-x: auto}.minerva__tab-container .minerva__tab { font-size: .85em; margin: 0 10px 0 0; color: #54595d; font-weight: 700; padding-bottom: 6px; display: inline-block}.minerva__tab-container .minerva__tab:visited,.minerva__tab-container .minerva__tab:hover,.minerva__tab-container .minerva__tab:active,.minerva__tab-container .minerva__tab.new,.minerva__tab-container .minerva__tab.new:visited,.minerva__tab-container .minerva__tab.new:active,.minerva__tab-container .minerva__tab.new:hover { color: #54595d; text-decoration: none}.minerva__tab-container .minerva__tab:last-child { margin-right: 0}.minerva__tab-container .minerva__tab.selected { border-bottom: 2px solid #54595d}.toggle-list__list--drop-down { -webkit-transform: translateY(-8px); -ms-transform: translateY(-8px); transform: translateY(-8px); -webkit-tap-highlight-color: transparent}.minerva-animations-ready .toggle-list__list--drop-down { -webkit-transition: opacity 100ms ease-in-out,-webkit-tap-highlight-color 0s ease-in-out,transform 100ms ease-in-out,visibility 100ms ease-in-out; transition: opacity 100ms ease-in-out,-webkit-tap-highlight-color 0s ease-in-out,transform 100ms ease-in-out,visibility 100ms ease-in-out}.toggle-list__checkbox:checked~.toggle-list__list--drop-down { -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0)}.toggle-list-item { display: block; padding: .75em .875em}.toggle-list-item:hover { background: #eaecf0}.toggle-list-item__anchor { display: block; line-height: 1}.toggle-list-item__anchor:hover { text-decoration: none}.toggle-list-item__anchor:visited,.toggle-list-item__anchor:active { color: #54595d}.toggle-list-item__icon { vertical-align: middle}.toggle-list-item__label { text-align: left; color: #54595d; font-weight: 700; white-space: nowrap; vertical-align: middle; font-size: .875em}.minerva-user-menu-list { top: 100%; right: -.75em; min-width: 200px; border-radius: 2px}.minerva--history-page-action-enabled .page-actions-menu__list-item { flex-basis: auto}.minerva--history-page-action-enabled .page-actions-menu__list-item:first-child { flex-grow: 0}.page-actions-overflow-list { top: 100%; right: -.75em; border-radius: 2px}.mw-ui-icon-minerva-ellipsis:before { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg)}@media screen { @counter-style meetei { system: numeric; symbols: '\ABF0''\ABF1''\ABF2''\ABF3''\ABF4''\ABF5''\ABF6''\ABF7''\ABF8''\ABF9'; suffix: ') ' } @counter-style santali { system: numeric; symbols: '\1C50''\1C51''\1C52''\1C53''\1C54''\1C55''\1C56''\1C57''\1C58''\1C59' } ol:lang(azb) li,ol:lang(bcc) li,ol:lang(bgn) li,ol:lang(bqi) li,ol:lang(fa) li,ol:lang(glk) li,ol:lang(kk-arab) li,ol:lang(lrc) li,ol:lang(luz) li,ol:lang(mzn) li { list-style-type: persian } ol:lang(ckb) li,ol:lang(sdh) li { list-style-type: arabic-indic } ol:lang(hi) li,ol:lang(mai) li,ol:lang(mr) li,ol:lang(ne) li { list-style-type: devanagari } ol:lang(as) li,ol:lang(bn) li { list-style-type: bengali } ol:lang(mni) li { list-style-type: meetei } ol:lang(or) li { list-style-type: oriya } ol:lang(sat) li { list-style-type: santali }}div,span,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,ins,em,img,small,strike,strong,sub,sup,tt,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,input,button,select,audio,video { margin: 0; padding: 0; border: 0; font: inherit; font-size: 100%; vertical-align: baseline; background: 0 0}table,caption,tbody,tfoot,thead,tr,th,td { font-size: 100%}caption { font-weight: 700}button { border: 0; background-color: transparent; cursor: pointer}input { line-height: normal}ul { list-style: none}table { border-collapse: collapse}html,body { height: 100%}html { font-size: 100%; -webkit-text-size-adjust: none}body { background-color: transparent; color: #202122; margin: 0}main { display: block}.mw-body { border-top: 1px solid transparent; padding-bottom: 32px}.overlay-enabled,.mw-body { background-color: transparent}.header-container { border-bottom: 1px solid #c8ccd1; padding: 0 16px}.header-container.header-chrome { background-color: #eaecf0; border: 0; box-shadow: inset 0 -1px 3px rgba(0,0,0,.08)}.navigation-drawer--loading,#footer-info-lastmod { display: none}.header { display: table; width: 100%; border-spacing: 0; border-collapse: collapse; height: 3.375em; white-space: nowrap; border-top: 1px solid #c8ccd1; margin-top: -1px}.header>div,.header>.navigation-drawer { position: relative; vertical-align: middle; display: table-cell}.header>div a { display: block}.header .branding-box { width: auto; opacity: .66}.header .branding-box h1,.header .branding-box a { margin-left: 5px; font-size: 1em; text-decoration: none; color: #202122}.header .branding-box h1 span,.header .branding-box a span { line-height: 1; font-size: inherit}.header .branding-box h1 img,.header .branding-box a img { vertical-align: middle}.header .branding-box h1>*,.header .branding-box a>* { float: left}.header .branding-box h1 sup,.header .branding-box a sup { color: #54595d; display: none}.beta .header .branding-box h1 sup,.beta .header .branding-box a sup { display: initial}.header>.header-title { vertical-align: middle}#searchInput { cursor: text}.search-box,.header .search-box { display: none; width: auto}.search-box .search { background-color: #fff; background-position: left .5em center; background-repeat: no-repeat; background-size: 1.125em; -webkit-appearance: none; width: 100%; margin-top: 0; height: 2.25em; border: 1px solid #fff; border-radius: 2px; padding: 7px 0 7px 2.0625em; box-shadow: 0 1px 1px rgba(0,0,0,.05); outline: 0; -webkit-transition: border-color 250ms,box-shadow 250ms; transition: border-color 250ms,box-shadow 250ms}.client-nojs .search-box .search:focus,.search-overlay .search-box .search:focus { border-color: #36c; box-shadow: inset 0 0 0 1px #36c,0 1px 1px rgba(0,0,0,.05)}input.search::-webkit-search-decoration,input.search::-webkit-search-cancel-button,input.search::-webkit-search-results-button,input.search::-webkit-search-results-decoration { display: none}.content h2 { clear: left}.content .collapsible-heading .edit-page { visibility: hidden}.content .collapsible-heading.open-block .edit-page { visibility: visible}.content .mw-parser-output>h2,.content .section-heading { border-bottom: 1px solid #eaecf0; margin-bottom: .5em}.content .mw-parser-output>h1,.content .mw-parser-output>h2,.content .mw-parser-output>h3,.content .mw-parser-output>h4,.content .mw-parser-output>h5,.content .section-heading,.content .in-block { display: table}.content .mw-parser-output>h1 .mw-headline,.content .mw-parser-output>h2 .mw-headline,.content .mw-parser-output>h3 .mw-headline,.content .mw-parser-output>h4 .mw-headline,.content .mw-parser-output>h5 .mw-headline,.content .section-heading .mw-headline,.content .in-block .mw-headline { width: 100%}.content .mw-parser-output>h1>span,.content .mw-parser-output>h2>span,.content .mw-parser-output>h3>span,.content .mw-parser-output>h4>span,.content .mw-parser-output>h5>span,.content .section-heading>span,.content .in-block>span { display: table-cell; vertical-align: middle}.content .mw-parser-output>h1>.mw-editsection>.mw-ui-icon-element,.content .mw-parser-output>h2>.mw-editsection>.mw-ui-icon-element,.content .mw-parser-output>h3>.mw-editsection>.mw-ui-icon-element,.content .mw-parser-output>h4>.mw-editsection>.mw-ui-icon-element,.content .mw-parser-output>h5>.mw-editsection>.mw-ui-icon-element,.content .section-heading>.mw-editsection>.mw-ui-icon-element,.content .in-block>.mw-editsection>.mw-ui-icon-element { margin-top: -.75em; margin-bottom: -.75em}.client-nojs .section-heading .indicator { display: none}#page-secondary-actions { clear: both}#page-secondary-actions a { margin: 10px 2px 2px 0}#bodyContent .panel .content,.overlay .content-header,.overlay .panel,.page-list.side-list .list-thumb,.page-list li,.topic-title-list li,.site-link-list li,.drawer,.messagebox,.errorbox,.successbox,.warningbox,.list-header,.mw-revision { padding-left: 16px; padding-right: 16px}.talk-overlay .comment .comment-content,.image-list,.pre-content,#mw-content-text>form>.oo-ui-fieldLayout>.oo-ui-fieldLayout-body,#mw-content-text>form>.oo-ui-widget,.content,.post-content { margin: 0 16px}.minerva__subtitle { margin-top: 10px; margin-bottom: 10px}.minerva__subtitle:empty { margin: 0}@media all and (min-width: 720px) { .page-summary-list,.topic-title-list,.site-link-list,.overlay .panel,.list-header { padding-left:3.35em; padding-right: 3.35em }}.heading-holder { padding: 20px 0 0; position: relative}.heading-holder .tagline { color: #54595d; font-size: .85em}.page-heading { margin-bottom: 12px}.mw-ui-icon-element.disabled,.language-selector.disabled { cursor: default; opacity: .25}#page-actions { position: relative}.page-actions-menu { -moz-box-sizing: border-box; box-sizing: border-box; border-top: 1px solid #eaecf0; border-bottom: 1px solid #c8ccd1; margin-top: -1px}.page-actions-menu__list { display: flex; height: 3em; justify-content: space-between}.page-actions-menu__list-item { display: flex; justify-content: flex-end; align-items: center; min-width: 0; overflow: hidden}.page-actions-menu__list-item>a { font-weight: 500}.page-actions-menu__list-item li>*:hover { box-shadow: none}.page-actions-menu__list-item:first-child { flex-grow: 1; justify-content: flex-start; margin-left: -8px}.page-actions-menu__list-item:last-child { margin-right: -8px}.client-nojs .watch-this-article { visibility: hidden}.client-nojs .is-authenticated .watch-this-article { visibility: visible}@media all and (max-width: 320px - 1) { .client-nojs #page-actions { display:none } .client-nojs #section_0 { border: 0 }}.minerva-user-navigation { display: flex; min-width: 7em; min-height: 3.375em; height: 100%; width: 100%; align-items: center; justify-content: flex-end; position: relative}.minerva-user-navigation>*:last-child { margin-right: -.75em}.view-border-box *,.view-border-box { -moz-box-sizing: border-box; box-sizing: border-box}.client-js .mw-redirectedfrom,.printfooter,.jsonly { display: none}.client-js .jsonly { display: inherit}.hidden { display: none!important}#mw-mf-viewport { position: relative; height: 100%}#mw-mf-page-center { width: 100%; min-height: 100%; position: relative; background-color: #eaecf0}.content { position: relative; z-index: 0}.minerva-footer { border-top: solid 1px #c8ccd1; overflow: auto; padding-bottom: 6px}.client-nojs footer .indicator,.client-nojs .mw-footer .indicator { display: none}footer .hlist li:after,.mw-footer .hlist li:after { color: #36c}footer>.post-content,.mw-footer>.post-content { overflow: auto; margin-top: 42px}footer>.post-content>*,.mw-footer>.post-content>* { margin-bottom: 9px}footer>.post-content>h2,.mw-footer>.post-content>h2 { border-bottom: solid 1px #c8ccd1; padding-bottom: 10px; margin-top: 42px; font-size: 1em; font-weight: 700}footer>.post-content>h2:first-child,.mw-footer>.post-content>h2:first-child { margin-top: 0}footer>.post-content .hlist,.mw-footer>.post-content .hlist,footer>.post-content .license,.mw-footer>.post-content .license { font-size: .875em}.last-modified-bar { border-bottom: solid 1px #c8ccd1; background-color: #eaecf0; color: #72777d; padding-top: .75em; padding-bottom: .75em; font-size: .875em; -webkit-transition: background-color 250ms,color 250ms; transition: background-color 250ms,color 250ms}.last-modified-bar a,.last-modified-bar a:visited { color: #54595d}.last-modified-bar a:nth-child(1),.last-modified-bar a:visited:nth-child(1) { font-weight: 700}.last-modified-bar a.external { background-image: none; padding-right: 0}.last-modified-bar__content { align-items: center; display: -ms-flexbox; display: flex}.last-modified-bar__text { padding-right: 3.5em; padding-left: .75em; line-height: 1.65; vertical-align: middle; flex-grow: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap}@media(max-width: 720px) { .last-modified-bar__text { padding-right:1em }}@media print { .noprint,.banner-container,.header,.minerva__tab-container,.page-actions-menu,.post-content { display: none } h1,h2,h3,h4,h5,h6 { page-break-after: avoid } table,figure,img { page-break-inside: avoid } img { max-width: 100% } img.image-lazy-loaded { -webkit-animation: none!important; animation: none!important }}@media print and (max-device-width: 720px) { @page { margin:50px 0 } html { padding: 0 50px } .header-container,.header-container.header-chrome { background: #fff; box-shadow: none!important } .header { border-top: 0; display: block; height: auto; padding: 0 16px } .header .branding-box { padding-left: 0!important } .header .branding-box sup { display: none!important } .header>nav,.header>div { display: none!important } .header>.branding-box { height: auto; display: block!important; padding: 0 0 51px 50px } .header>.branding-box h1 { font-size: inherit } .header>.branding-box h1>* { float: none } .header>.branding-box h1 img { height: 41px; width: auto; vertical-align: inherit } .hatnote,.pre-content #page-actions { display: none } .pre-content { display: block; padding: 51px 0 35px } .pre-content h1 { font-size: 70px; font-weight: 400; font-style: italic; font-stretch: normal; line-height: normal; letter-spacing: normal; text-align: left; color: #000 } .pre-content .tagline { font-size: 36px } .mw-body>.content { padding-top: 55px; position: relative } .mw-body>.content:before { top: 0 } .thumbinner { width: auto!important } .thumbinner>a { width: 100% } .thumb { position: relative; padding: 58px 0!important; text-align: left; margin: 0!important } .thumb:after { bottom: 30px } .thumb:after,.mw-body>.content:before { position: absolute; left: 0; content: ''; display: block; width: 55px; height: 2px; background: #999 } .thumbcaption { margin-top: 23px!important; width: 100%; font-style: italic; font-size: 28px } [class|=mw-content] { font-size: 36px } [class|=mw-content] a { text-decoration: underline; color: #202122 } [class|=mw-content] blockquote { color: #54595d; padding: 5px 39px; font-style: italic } [class|=mw-content] .section-heading { border-bottom: 0; padding-bottom: 0; margin-bottom: 16px } [class|=mw-content] h2 { font-size: 48px } [class|=mw-content] h3 { font-size: 40px; margin-bottom: 13px } [class|=mw-content] h4,[class|=mw-content] h5,[class|=mw-content] h6 { font-size: 36px; margin-bottom: 12px } [class|=mw-content] .wikitable { font-size: 16px } [class|=mw-content] .infobox { font-size: 30px } .references .mw-cite-backlink { display: none } .references .reference-text { font-style: italic } .references a { text-decoration: none } .references .external.text { background-image: none } .printfooter { display: block; padding-top: 108px; font-size: 30px } #mw-mf-page-center>footer { border-top: solid 4px #000; padding-top: 23px; background: #fff!important } #mw-mf-page-center>footer .mw-ui-icon:before { display: none!important } #mw-mf-page-center>footer .last-modified-bar { background: 0 0!important; border: 0!important } #mw-mf-page-center>footer .last-modifier-tagline { font-size: 36px; padding-top: 0!important; padding-bottom: 16px!important } #mw-mf-page-center>footer .last-modified-bar,#mw-mf-page-center>footer .last-modified-bar a { font-weight: 700!important; color: #000!important } #mw-mf-page-center>footer .post-content { margin-top: 15px!important; display: block } #mw-mf-page-center>footer .post-content .hlist,#mw-mf-page-center>footer .post-content h2 { display: none } #mw-mf-page-center>footer .post-content .license a,#mw-mf-page-center>footer .post-content .license { font-size: 30px; color: #999; font-weight: 400 }}@font-face { font-family: raleway; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCFPrEHJA.woff2) format('woff2'); unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face { font-family: raleway; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCMPrEHJA.woff2) format('woff2'); unicode-range: U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face { font-family: raleway; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCHPrEHJA.woff2) format('woff2'); unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face { font-family: raleway; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCGPrEHJA.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: raleway; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrE.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face { font-family: neuton; font-style: italic; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBRrPtMoH62xUZCyrg2Wi_FBw.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: neuton; font-style: italic; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBRrPtMoH62xUZCyrg4Wi8.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face { font-family: neuton; font-style: normal; font-weight: 200; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKAKkvcwr4Pro.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: neuton; font-style: normal; font-weight: 200; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKAKkvfQr4.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face { font-family: neuton; font-style: normal; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKZKovcwr4Pro.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: neuton; font-style: normal; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKZKovfQr4.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face { font-family: neuton; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBTrPtMoH62xUZCwYg6Qis.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: neuton; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBTrPtMoH62xUZCz4g6.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face { font-family: neuton; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKdK0vcwr4Pro.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: neuton; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKdK0vfQr4.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face { font-family: neuton; font-style: normal; font-weight: 800; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKaK4vcwr4Pro.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: neuton; font-style: normal; font-weight: 800; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKaK4vfQr4.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@media screen and (min-width: 1000px) { .header { max-width:1250px!important }}.banner-container,.header,.page-header-bar,.overlay-header,.content,.overlay-content,.content-unstyled,.pre-content,.post-content,.last-modified-bar,#mw-content-text>form { max-width: 1250px!important}.page-Main_Page .page-heading,.page-Main_Page .pre-content { display: none!important}.page-Main_Page pre { display: none}.page-Main_Page .blocks-list { display: flex; flex-wrap: wrap; justify-content: space-evenly; list-style: none; column-gap: 20px; row-gap: 20px; padding: 0; margin: 0}.page-Main_Page .blocks-item { box-sizing: border-box; color: #ffc376; display: flex; flex: 1 0 180px; text-align: center; margin: 0!important; border: 1px solid #ecebeb; border-radius: 8px; box-shadow: 0 2px 15px rgba(175,175,175,.2); flex-flow: wrap; position: relative}.page-Main_Page .blocks-item:hover { box-shadow: 0 2px 15px rgba(231,135,27,.4)!important; cursor: pointer; top: -2px}.page-Main_Page .blocks-item>a { color: #ffc376; padding: 0 10px 15px; display: flex; flex-direction: column; flex: 1; justify-content: center; border-radius: inherit; text-decoration: none; background-color: transparent}.page-Main_Page .block-icon { background-position: top center; background-repeat: no-repeat; background-size: contain; height: 140px; margin: 0; transition: all .1s ease-in-out}.page-Main_Page .blocks-item-title { margin: 0; font-size: 22px; color: #ffc376}.page-Main_Page .blocks-item-description:not(:empty) { margin-top: 10px}.page-Main_Page .blocks-item-description { font-weight: 300; margin: 0; color: #1a1a1a}.page-Main_Page .block-icon:before { content: ""; display: block; position: relative}.page-Main_Page .blocks-item#block-accessories>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.png) 2x)}.page-Main_Page .blocks-item#block-accessories>a>.block-icon:before,.page-Main_Page .blocks-item#block-accessories:hover>a>.block-icon,.page-Main_Page .blocks-item#block-accessories>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.ro.png) 2x)}.page-Main_Page .blocks-item#block-armor>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.png) 2x)}.page-Main_Page .blocks-item#block-armor>a>.block-icon:before,.page-Main_Page .blocks-item#block-armor:hover>a>.block-icon,.page-Main_Page .blocks-item#block-armor>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.ro.png) 2x)}.page-Main_Page .blocks-item#block-collections>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.png) 2x)}.page-Main_Page .blocks-item#block-collections>a>.block-icon:before,.page-Main_Page .blocks-item#block-collections:hover>a>.block-icon,.page-Main_Page .blocks-item#block-collections>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.ro.png) 2x)}.page-Main_Page .blocks-item#block-hub>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.png) 2x)}.page-Main_Page .blocks-item#block-hub>a>.block-icon:before,.page-Main_Page .blocks-item#block-hub:hover>a>.block-icon,.page-Main_Page .blocks-item#block-hub>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.ro.png) 2x)}.page-Main_Page .blocks-item#block-fairysouls>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.png) 2x)}.page-Main_Page .blocks-item#block-fairysouls>a>.block-icon:before,.page-Main_Page .blocks-item#block-fairysouls:hover>a>.block-icon,.page-Main_Page .blocks-item#block-fairysouls>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.ro.png) 2x)}.page-Main_Page .blocks-item#block-island>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.png) 2x)}.page-Main_Page .blocks-item#block-island>a>.block-icon:before,.page-Main_Page .blocks-item#block-island:hover>a>.block-icon,.page-Main_Page .blocks-item#block-island>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.ro.png) 2x)}.page-Main_Page .blocks-item#block-locations>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.png) 2x)}.page-Main_Page .blocks-item#block-locations>a>.block-icon:before,.page-Main_Page .blocks-item#block-locations:hover>a>.block-icon,.page-Main_Page .blocks-item#block-locations>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.ro.png) 2x)}.page-Main_Page .blocks-item#block-minions>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.png) 2x)}.page-Main_Page .blocks-item#block-minions>a>.block-icon:before,.page-Main_Page .blocks-item#block-minions:hover>a>.block-icon,.page-Main_Page .blocks-item#block-minions>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.ro.png) 2x)}.page-Main_Page .blocks-item#block-pets>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.png) 2x)}.page-Main_Page .blocks-item#block-pets>a>.block-icon:before,.page-Main_Page .blocks-item#block-pets:hover>a>.block-icon,.page-Main_Page .blocks-item#block-pets>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.ro.png) 2x)}.page-Main_Page .blocks-item#block-reforging>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.png) 2x)}.page-Main_Page .blocks-item#block-reforging>a>.block-icon:before,.page-Main_Page .blocks-item#block-reforging:hover>a>.block-icon,.page-Main_Page .blocks-item#block-reforging>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.ro.png) 2x)}.page-Main_Page .blocks-item#block-skills>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.png) 2x)}.page-Main_Page .blocks-item#block-skills>a>.block-icon:before,.page-Main_Page .blocks-item#block-skills:hover>a>.block-icon,.page-Main_Page .blocks-item#block-skills>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.ro.png) 2x)}.page-Main_Page .blocks-item#block-stats>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.png) 2x)}.page-Main_Page .blocks-item#block-stats>a>.block-icon:before,.page-Main_Page .blocks-item#block-stats:hover>a>.block-icon,.page-Main_Page .blocks-item#block-stats>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.ro.png) 2x)}.page-Main_Page .blocks-item#block-weapons>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.png) 2x)}.page-Main_Page .blocks-item#block-weapons>a>.block-icon:before,.page-Main_Page .blocks-item#block-weapons:hover>a>.block-icon,.page-Main_Page .blocks-item#block-weapons>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.ro.png) 2x)}.page-Main_Page #wrapper { display: flex; flex-direction: row; column-gap: 50px; row-gap: 50px; justify-content: space-between}.page-Main_Page #wrapper #content { display: flex; flex-direction: column; row-gap: 50px}.page-Main_Page #wrapper #content #introduction { display: flex; flex-direction: row; column-gap: 25px; row-gap: 25px; align-content: center}.page-Main_Page #wrapper #content #introduction #welcome { margin: .5em 0}.page-Main_Page #wrapper #content #introduction .blocks-item { margin: 0!important}.page-Main_Page #wrapper #content #statistics .stats-list { display: flex; flex-wrap: wrap; list-style: none; justify-content: space-evenly; padding: 0; row-gap: 25px}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item { margin: 0}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon { background-position: center; background-size: contain; background-repeat: no-repeat; height: 55px; width: 55px; display: inline-block; position: relative; vertical-align: middle}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon.stats-icon-edits { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/edits.png)}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon.stats-icon-pages { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/pages.png)}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon.stats-icon-files { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/files.png)}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-item-text { vertical-align: middle; display: inline-flex; position: relative; flex-direction: column; flex-wrap: nowrap; justify-content: center; align-content: center; margin: 0 15px}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-item-text span:first-child { font-size: 20px}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-item-text span:nth-child(2) { font-size: 16px}.page-Main_Page #wrapper #content #other-game-content ul { columns: 200px auto}.page-Main_Page #wrapper #content .content-heading { height: 50px; background-color: #1f1f1f; border: 1px solid #333; border-image: url(https://wiki.hypixel.net/images/hypixel/borders/classic_border.png) 1000 1000 repeat!important; border-image-width: 35px!important; border-image-outset: 2px!important; margin: 0 0 1em; font-size: 20px; display: flex; justify-content: center; align-items: center}.page-Main_Page #wrapper #sidebar { display: flex; flex-direction: column; row-gap: 50px}.page-Main_Page #wrapper #sidebar .sidebar-heading { text-align: center; font-size: 20px}.page-Main_Page #wrapper #sidebar .sidebar-content { display: flex; flex-direction: column; flex-wrap: nowrap; row-gap: 15px; background-color: #1f1f1f; padding: 20px; border-radius: 3px; border: 1px solid #333; border-image: url(https://wiki.hypixel.net/images/hypixel/borders/square_border.png) 500 500 repeat; border-image-width: 35px!important; border-image-outset: 2px!important}.page-Main_Page #wrapper #sidebar #clock { display: none}.page-Main_Page #wrapper #sidebar #clock p { text-align: center; margin: 0}.page-Main_Page #wrapper #sidebar #clock #clock-time { font-size: 2em}.page-Main_Page #wrapper #sidebar #clock #clock-date { font-size: 1em}@media(max-width: 1000px) { #wrapper { flex-wrap:wrap }}@media(max-width: 720px) { #introduction { flex-wrap:wrap; justify-content: center } .stats-list { flex-direction: column; align-content: center }}.mw-ui-button.mw-ui-progressive { background-color: #e7871b; color: #fff; border: 1px solid #e7871b}.oo-ui-panelLayout-framed { background-color: #eaecf0!important; border-radius: 4px; border: none!important}.oo-ui-dropdownInputWidget.oo-ui-widget-enabled { background-color: transparent}ul.mw-contributions-list li { min-height: 0!important}ul.special li { min-height: 0!important}body { color: transparent; background-color: transparent; font-family: Raleway,helvetica,serif!important}#content h1,#content h2,#content h3 { font-family: Neuton,Raleway,helvetica,serif!important}html,#mw-mf-page-center,#mw-script-doc,#content,.navbox,.navbox-subgroup,.overlay.search-overlay { background-color: #fff!important}.overlay.search-overlay { background-color: #fff!important}.overlay.search-overlay .search-box { display: block!important; position: relative!important}a.external { background-image: none!important; padding-right: 0!important}.mw-body h2.list-header { margin-top: 16px}.page-heading>h1 { font-size: 1.7em!important; font-weight: 400!important; line-height: 1.3; word-wrap: break-word; word-break: break-word}.list-header { background-color: transparent; color: inherit}#toc ul { list-style: decimal}#mw-toc-heading::before { background-image: url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJsaXN0IiBjbGFzcz0ic3ZnLWlubGluZS0tZmEgZmEtbGlzdCBmYS13LTE2IiByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Ik04MCAzNjhIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2NjRhMTYgMTYgMCAwIDAgMTYgMTZoNjRhMTYgMTYgMCAwIDAgMTYtMTZ2LTY0YTE2IDE2IDAgMCAwLTE2LTE2em0wLTMyMEgxNkExNiAxNiAwIDAgMCAwIDY0djY0YTE2IDE2IDAgMCAwIDE2IDE2aDY0YTE2IDE2IDAgMCAwIDE2LTE2VjY0YTE2IDE2IDAgMCAwLTE2LTE2em0wIDE2MEgxNmExNiAxNiAwIDAgMC0xNiAxNnY2NGExNiAxNiAwIDAgMCAxNiAxNmg2NGExNiAxNiAwIDAgMCAxNi0xNnYtNjRhMTYgMTYgMCAwIDAtMTYtMTZ6bTQxNiAxNzZIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAtMzIwSDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZWODBhMTYgMTYgMCAwIDAtMTYtMTZ6bTAgMTYwSDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2eiI+PC9wYXRoPjwvc3ZnPg==); content: ""; float: left; height: 14px; left: -14px; position: relative; top: 5px; width: 14px}#footer-company { padding: 0 50px 0 0}#footer-links { display: flex; flex: 1; flex-direction: column; flex-wrap: wrap; font-size: 15px; max-height: 120px}#footer-links>li { padding: 4px 10px}#footer-logo { max-height: 64px}#footer-socials { font-size: 16px; vertical-align: top; color: gray; display: block; padding: 0 4px}#footer-socials .fab { min-width: 18px; text-align: center; vertical-align: middle}#footer-socials a:hover { color: gray!important}#footer-socials a:hover>.fa-discord { color: #7289da}#footer-socials a:hover>.fa-facebook { color: #4267b2}#footer-socials a:hover>.fa-instagram { color: #405de6}#footer-socials a:hover>.fa-tiktok { color: #000}#footer-socials a:hover>.fa-twitter { color: #1da1f2}#footer-socials a:hover>.fa-youtube { color: red}#mw-content-text>form { width: 100%!important}.branding-box { background: url(https://wiki.hypixel.net/images/hypixel-full.png) no-repeat; background-origin: content-box; background-size: contain; background-position: center; opacity: 1!important; padding: 10px 0; cursor: pointer; height: 100%}.branding-box>a { height: 100%; width: 100%}.branding-box>a>span { color: transparent}.client-nojs .search-box .search:focus { border: none; box-shadow: none}.search-overlay .search-box .search:focus { border: none; box-shadow: none}.toggle-list__toggle,#mw-mf-main-menu-button { border: none; box-shadow: none; outline: none!important}.footer { background-image: linear-gradient(to bottom,rgba(26,26,26,0.92),#1a1a1a),url(https://wiki.hypixel.net/images/artwork.png); background-position: center; background-repeat: no-repeat; background-size: cover; border-top: 1px solid #ddd; color: #fff; margin-top: 60px; padding: 30px 0; user-select: none}.footer a { color: gray!important; text-decoration: none!important; transition: .12s ease-in-out}.footer a:hover { color: #fff!important}.footer-copyright { color: gray; display: block; padding: 0 4px}.footer-inner { display: flex; flex-wrap: wrap; justify-content: space-between; margin: 0 auto; max-width: 1160px; padding: 0!important; width: 65%!important}.header { height: 71px!important; user-select: none}.header-chrome:before { background-image: radial-gradient(farthest-side at top,rgba(255,255,255,0.5),#ffffff),url(https://wiki.hypixel.net/images/artwork.png)!important; background-position: center; background-repeat: no-repeat; background-size: cover; content: ""; height: 72px; left: 0; max-width: 100%!important; position: absolute; width: 100%!important}.last-modified-bar { margin: auto; width: 90%; background-color: #eaecf0!important; border-radius: 4px}.minerva__tab.selected { border-bottom: 2px solid #e7871b!important}.mw-editform .editOptions { margin-top: 20px}.mw-ui-icon-element.cancel { height: 44px; margin: 10px; padding: 0; vertical-align: middle; width: 44px}.mw-ui-icon-element:not(.disabled):hover { background-color: rgba(0,0,0,.1)}.overlay-footer-container { display: none}.overlay.search-overlay.visible { animation-duration: .1s!important}.minerva__tab-container { display: none}.page-actions-menu,#filetoc,.warningbox { border-radius: 4px; margin-bottom: 16px; padding: 0 20px; background-color: #eaecf0; border: 1px solid #c8ccd1}.warningbox { padding: 10px 25px!important}.warningbox,#mw-clearyourcache { margin-bottom: 16px!important}.search { -webkit-appearance: none!important; background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&format=original&skin=minerva&version=1qbws); background-position: left .8em center!important; background-size: 18px!important; border: 1px solid #fff!important; border-radius: 6px!important; box-shadow: 0 0 10px #bbb!important; box-sizing: border-box!important; color: #666!important; font-family: BlinkMacSystemFont,segoe ui,helvetica,Arial,sans-serif!important; font-size: 14px!important; height: 40px!important; line-height: 1.15!important; max-width: 380px; padding-left: 40px!important; padding-right: 20px!important; transition: border .12s ease-in-out!important; width: 100%!important}.search:focus { outline: 1px solid #ffc376!important}.search-box .search { border-radius: 4px}.content kbd { border-radius: 4px}.content samp { border-radius: 4px}.content code { border-radius: 4px}.content pre { border-radius: 4px}footer { border: none!important}fieldset { margin: 10px 0}#mw-mf-page-left { box-shadow: 0 5px 17px 0 rgba(0,0,0,.24),0 0 1px #a2a9b1!important; position: absolute!important; height: max-content; border-radius: 3px; -webkit-transition: opacity 100ms ease-in-out,-webkit-tap-highlight-color 0s ease-in-out,transform 100ms ease-in-out,visibility 100ms ease-in-out!important; transition: opacity 100ms ease-in-out,-webkit-tap-highlight-color 0s ease-in-out,transform 100ms ease-in-out,visibility 100ms ease-in-out!important; top: 45px!important; left: -12px!important; transform: translate(0,-10px)!important}#mw-mf-page-left li { border: none!important}#mw-mf-page-left li:hover { background-color: #eaecf0!important}#mw-mf-page-left ul { padding-bottom: 0!important}#mw-mf-page-left ul li a { color: #54595d!important}#mw-mf-page-left ul li a:hover { box-shadow: none!important}form.search-box { display: block; width: 100%}input { outline: none}#main-menu-input:checked~#mw-mf-page-left { transform: translate(0,0)!important}.hlist { display: none}.last-modified-bar.active { background-color: #218e47!important}.wikitable>tr>th,.wikitable>tr>td,.wikitable>*>tr>th,.wikitable>*>tr>td { padding: .25em .55em!important}.suggestions { border-radius: 6px!important}.suggestions-result,.suggestions-special { padding: .5em 1em!important}.suggestions-results,.suggestions-special { border-color: #ccc!important}kbd,samp,code,pre,.page-actions-menu,#filetoc,.warningbox,.last-modified-bar { border: 1px solid #333; border-image: url(https://wiki.hypixel.net/images/hypixel/borders/classic_border.png) 1000 1000 repeat!important; border-image-width: 35px!important; border-image-outset: 2px!important}@media only screen { .oo-ui-tabOptionWidget { color: #fff!important } .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected { background-color: #212121 } .suggestions-results,.suggestions-special { background-color: #1f1f1f!important; border-color: #333!important } .suggestions-results .special-label,.suggestions-special .special-label { color: #ccc!important } .suggestions-results .suggestions-result,.suggestions-special .suggestions-result,.suggestions-results .special-query,.suggestions-special .special-query { color: #fff!important } .search { color: #ccc!important } html,body,#mw-mf-page-center,#mw-script-doc,#content,.navbox,.navbox-subgroup,.overlay.search-overlay,.oo-ui-tabSelectWidget-framed,.oo-ui-tagMultiselectWidget-handle,.mw-prefs-buttons,.mw-scribunto-message,.mw-scribunto-console-fieldset,.mw-history-compareselectedversions { background-color: transparent!important; color: #fff } .mw-rcfilters-ui-watchlistTopSectionWidget-separator { border-color: #212121!important } .mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-content-title,.mw-rcfilters-ui-filterTagMultiselectWidget-emptyFilters { color: #fff!important } .oo-ui-tabSelectWidget-framed { border-bottom-color: transparent } .oo-ui-tagMultiselectWidget-handle,.oo-ui-buttonGroupWidget,.oo-ui-dropdownWidget-handle,.oo-ui-optionWidget,.oo-ui-selectWidget,.oo-ui-optionWidget-selected { background-color: #1a1a1a!important; color: #fff!important; border-color: #212121!important } .oo-ui-optionWidget-highlighted { background-color: #212121!important } .oo-ui-optionWidget-selected { background-color: #1f1f1f!important } input,select,.oo-ui-buttonElement-button,#mw-scribunto-input,.diff-context { color: #fff!important; background-color: #1f1f1f!important; border: 1px solid #333!important } legend { color: #aaa } .content .mw-parser-output>h2 { border-bottom: 2px solid #333 } .content .mw-parser-output>h3 { border-bottom: 1px solid #333; margin-bottom: .5em } .content .section-heading { border-bottom: 1px solid #aaa } .content kbd,.content samp,.content code,.content pre,.content .toc,.content .infobox { background-color: #1f1f1f!important; border-color: #333!important } .content .infobox td { border-color: #333!important } .infobox tr { color: #fff!important } table.wikitable>tr>th,table.wikitable>tr>td { background-color: #212121; border-color: #333!important } table.wikitable>tr>th { background-color: #2b2b2b } table.wikitable>tr:nth-child(odd)>td { background: #2b2b2b } table.wikitable>*>tr>th,table.wikitable>*>tr>td { background-color: #212121; border-color: #333!important } table.wikitable>*>tr>th { background-color: #2b2b2b } table.wikitable>*>tr:nth-child(odd)>td { background: #2b2b2b } .mw-datatable>tr>th,.mw_metadata>tr>th,.mw-datatable>tr>td,.mw_metadata>tr>td { background-color: #212121!important; border-color: #333!important } .mw-datatable>tr>th,.mw_metadata>tr>th { background-color: #2b2b2b!important } .mw-datatable>*>tr>th,.mw_metadata>*>tr>th,.mw-datatable>*>tr>td,.mw_metadata>*>tr>td { background-color: #212121!important; border-color: #333!important } .mw-datatable>*>tr>th,.mw_metadata>*>tr>th { background-color: #2b2b2b!important } .footer { background-image: linear-gradient(to bottom,rgba(26,26,26,0.85),#1a1a1a),url(https://wiki.hypixel.net/images/artwork.png); border-top: 1px solid #1a1a1a } .header-chrome:before { background-image: radial-gradient(farthest-side at top,rgba(26,26,26,0.5),#1a1a1a),url(https://wiki.hypixel.net/images/artwork.png)!important } .oo-ui-iconElement-icon,.oo-ui-indicatorElement-indicator { filter: invert(1) hue-rotate(180deg) brightness(1.2) } .mw-ui-icon:not(.mw-ui-icon-wikimedia-history-invert):before { filter: invert(1) hue-rotate(180deg) brightness(1.2) } .mw-ui-icon:not(.mw-ui-icon-mf-expand-invert):before { filter: invert(1) hue-rotate(180deg) brightness(1.2) } .last-modified-bar { background-color: #1f1f1f!important } .last-modified-bar .last-modified-bar__text { color: #fff!important } .oo-ui-panelLayout-framed { background-color: #1f1f1f!important } .minerva__tab { color: #aaa!important } .mw-ui-icon-with-label-desktop:hover,.mw-ui-icon-with-label-desktop:focus,.mw-ui-icon-with-label-desktop:active,.mw-ui-icon-with-label-desktop:visited { color: #aaa!important } .page-heading>h1,.page-heading>.tagline { color: #fff!important } .toggle-list__list { color: #fff!important; background-color: #1f1f1f!important; box-shadow: 0 5px 17px 0 rgba(0,0,0,.24),0 0 1px #000!important; border: 1px solid #333 } .search { box-shadow: 0 0 10px #1f1f1f!important } .search,.page-actions-menu,#filetoc,.warningbox { background-color: #1f1f1f!important; border-color: #333!important } .toggle-list-item:hover { background: #000; color: #fff } .blocks-item-description,.mw-mf-user { color: #fff!important } .blocks-item { box-shadow: 0 2px 15px rgba(35,35,35,.5)!important; border: 1px solid #333!important; background-color: #212121 } .mw-ui-button { background-color: #1f1f1f!important; border: 1px solid #333!important; color: #fff!important } .mw-ui-button:hover { background-color: #212121!important } .mw-history-undo a,.mw-rollback-link a { background-color: #1f1f1f!important; border: 1px solid #333!important; color: #fff!important } .mw-history-undo a:hover,.mw-rollback-link a:hover { background-color: #212121!important } .toggle-list-item__label { color: #aaa!important } .page-list .info,.page-list .component { color: #aaa!important } .page-list li { border-color: #333!important } .topic-title-list .info,.topic-title-list .component { color: #aaa!important } .topic-title-list li { border-color: #333!important } .site-link-list .info,.site-link-list .component { color: #aaa!important } .site-link-list li { border-color: #333!important } .page-list.side-list .list-thumb { color: #aaa!important } .topic-title-list.side-list .list-thumb { color: #aaa!important } .site-link-list.side-list .list-thumb { color: #aaa!important } ul.mw-contributions-list li { border-color: #1f1f1f!important } ul.special li { border-color: #1f1f1f!important } .ns-special .content-header { border-color: #1f1f1f!important } .mw-prefs-buttons { border-color: #1f1f1f!important } #mw-mf-page-left { box-shadow: 0 5px 17px 0 rgba(0,0,0,.24),0 0 1px #000!important } #mw-mf-page-left ul li { background-color: #1f1f1f!important; color: #fff!important } #mw-mf-page-left ul li a { color: #aaa!important } #mw-mf-page-left li:hover { background-color: #000!important } .mw-ui-icon-element:not(.disabled):hover { background-color: rgba(0,0,0,.4) }}@media only screen and (min-width: 720px) { .header .branding-box { width:auto!important; min-width: 82px } .overlay.search-overlay .overlay-title { padding-left: 236px!important; width: 380px!important } #page-actions a { color: #fff!important } #page-actions label { color: #fff!important }}@media only screen and (max-width: 720px) { #footer-company { padding:0 0 30px; text-align: center; width: 100% } #footer-links { max-height: 100%; text-align: center } .header-chrome:before { background-image: linear-gradient(to bottom,rgba(255,255,255,0.5),#ffffff),url(https://wiki.hypixel.net/images/artwork.png)!important; height: 170px!important } .last-modified-bar { margin: 0 16px } .header-chrome:before { background-image: linear-gradient(to bottom,rgba(26,26,26,0.5),#1a1a1a),url(https://wiki.hypixel.net/images/artwork.png)!important }}@media only screen and (min-width: 1000px) { .footer-inner { padding:0; width: 90% }}@media only screen and (max-width: 1000px) { #footer-links { max-width:100% } .footer-inner { padding: 0 5%!important; width: calc(90%)!important }}.infobox { border: 15px solid #232445!important; border-image: url(https://wiki.hypixel.net/images/hypixel/borders/square_border.png) 1000 1000 repeat!important; border-image-width: 100px!important; border-image-outset: 2px!important; border-collapse: separate!important}.infobox { background-color: #f2f2f2; border-collapse: collapse; clear: both; display: table!important; float: right; margin: 0!important; margin-left: 20px!important; width: 320px; margin-bottom: 15px!important; table-layout: fixed}.infobox table { border-collapse: inherit!important}.infobox img { display: block; margin: 20px auto; max-width: 150px; height: auto}.infobox td { border-top: 1px solid #c7c7c7; padding: 2px 8px; text-align: right}.infobox td:first-of-type { font-weight: 700; text-align: left}.infobox td:last-child { float: right; width: 100%; text-align: right}.infobox tr:first-of-type>th { font-size: 16px; font-weight: 700; padding: 10px 0; text-align: center}.infobox.minor { border-image-width: 0 100px 100px 100px!important; border-width: 0 15px 15px!important; margin-top: -15px!important}.infobox tr:first-of-type>td { border-top: none}.mw-parser-output .infobox:last-of-type { margin-bottom: 15px}span.color-divine,span.color-light_blue,span.color-aqua { color: #5ff!important}span.color-black { color: #000!important}span.color-rare,span.color-blue { color: #55f!important}span.color-dark_aqua { color: #0aa!important}span.color-dark_blue { color: #00a!important}span.color-dark_gray { color: #555!important}span.color-dark_green { color: #0a0!important}span.color-epic,span.color-dark_purple { color: #a0a!important}span.color-dark_red { color: #a00!important}span.color-legendary,span.color-orange,span.color-gold { color: #fa0!important}span.color-gray { color: #aaa!important}span.color-uncommon,span.color-green { color: #5f5!important}span.color-pink,span.color-mythic,span.color-light_purple { color: #f5f!important}span.color-supreme,span.color-special,span.color-very-special,span.color-red { color: #f55!important}span.color-common,span.color-white { color: #fff!important}span.color-yellow { color: #ff5!important}.tabber__header__prev:after,.tabber__header__next:after { filter: invert(1)}:not(.infobox) .tabber__tab--active { background-color: rgba(51,102,204,.2)}:not(.infobox) .tabber__panel,:not(.infobox) .tabber__header { background-color: #1f1f1f; border: 1px solid #333}:not(.infobox) .tabber__panel { padding: 1em!important}:not(.infobox) .tabber__panel h1,:not(.infobox) .tabber__panel h2,:not(.infobox) .tabber__panel h3 { margin-top: 0}.diff-addedline .diffchange { background: #0083ff}.codeEditor-status { color: #000!important}#toctogglecheckbox:not(:checked)+.toctitle { border-bottom: 1px solid #333; margin-bottom: 10px}a.new { color: #d33!important}.contributionscores { width: 100%}.contributionscores td { text-align: center!important}.contributionscores .header { display: table-row}.contributionscores .content { width: auto}.wikiEditor-ui-toolbar { background-color: #1f1f1f!important}.wikiEditor-ui-toolbar .label:after { filter: invert(1) hue-rotate(180deg) brightness(1.2)}.wikiEditor-ui-toolbar .tabs .tab a::before { filter: invert(1) hue-rotate(180deg) brightness(1.2)}.wikiEditor-ui .wikiEditor-ui-view { border: 1px solid #54595d}.wikiEditor-ui-toolbar { box-shadow: 0 10px 9px 0 rgba(0,0,0,.1)}.wikiEditor-ui-toolbar .sections .section { border-top: none}.wikiEditor-ui-toolbar .group { border-right: none; border-left: none}.tabber__panel { overflow: visible}:not(.tabber__panel--active).tabber__panel { display: none}.tabber__section { height: auto!important; overflow: visible}.infobox td { font-size: 13px}.minecraft-inventory td { font-size: 15px!important}.content { padding: 0}.tabber__tab--active,.tabber__tab--active:visited { box-shadow: inset 0 -2px 0 0 #ffc376; border-width: 0 1px; background-color: rgba(255,195,118,.1)!important; font-weight: 700}.tabber__tab--active a:active,.tabber__tab a:visited { color: #ffc376!important}.tabber__tab:hover { box-shadow: inset 0 -2px 0 0 #ffc376; color: #ffc376; filter: brightness(1.5)}.tabber__tab a:active,.tabber__tab a:visited { color: #bdbcb9!important}.tabber__tabs { box-shadow: none!important}.tabber__tabs a:first-of-type { border-left: none}.tabber__tab { color: #36c; line-height: 30px; font-weight: 400}.tabber { margin-bottom: 5px}#mw-mf-page-left ul { list-style-type: none; padding-left: 0}#mw-mf-page-left li { margin-bottom: 0}#mw-mf-page-left ul li a { color: #aaa!important}#mw-mf-main-menu-button:hover+#mw-mf-page-left,#mw-mf-page-left:hover { visibility: visible}.mw-hypixel-right ul { padding-left: 0}.mw-hypixel-right li { margin-bottom: 0}.mw-hypixel-right a { text-decoration: none}table.mw-collapsible :first-child tr:first-child th:last-child::before { color: #ffc376!important}.infobox.minor img,.remove-img-span img { display: inline!important; margin: 0!important}.infobox.minor tr:first-of-type>th { padding: 7px; border-bottom: 1px solid #333!important}.infobox.minor tr:nth-of-type(2)>td { border-top: none}.occupants-minor,.resources-minor { text-align: left!important; font-weight: 400; padding: 5px 0 0!important}.occupants-minor:first-of-type,.resources-minor:first-of-type { border-right: 1px solid #333!important}.occupants-minor li,.resources-minor li,.materials-minor li { margin-bottom: 0!important}.occupants-minor ul,.resources-minor ul,.materials-minor ul { list-style: none!important; padding: 7px!important; font-weight: 400!important}.color-wheel-minor { border-radius: 50px; border-style: solid; border-width: 30px; height: 0; width: 0; transform: rotate(45deg)}.loot-drops-minor li { list-style-type: none; margin-bottom: 0}.gemstone-slot-minor { text-align: center!important; padding: 5px}.upgrades-low-minor { text-align: center!important; font-weight: 400!important; border-right: 1px solid #333!important}.upgrades-right-minor { padding: 2px!important; padding-top: 5px!important; text-align: center!important}.upgrades-text-minor { font-size: 15px!important; font-weight: 700!important}.attributes-minor { text-align: center!important; font-weight: 400!important; border-right: 1px #333 solid!important}.attributes-text-minor { font-size: 13px!important; font-weight: 700!important}.container-navbox { max-width: 100%; height: auto; padding: 6px; font-size: 15px; background-color: #1f1f1f; border: 1px solid #c8ccd1; border-color: #333!important; border-image: url(https://wiki.hypixel.net/images/hypixel/borders/classic_border.png) 1000 1000 repeat!important; border-image-width: 35px!important; border-image-outset: 2px!important; clear: both}.container-navbox-header { width: auto; height: 35px; padding: 10px; border-bottom: 2px solid #333; text-align: center; display: flex; flex-direction: row; align-items: center; justify-content: space-between; font-size: 18px; vertical-align: middle}.container-navbox-header p { margin: 0!important}.container-navbox-section { max-width: 100%; height: auto; border-bottom: 2px solid #333; display: flex; flex-direction: row; background-color: #1f1f1f; column-gap: 5px}.container-navbox-section:last-child { border-bottom: none}.container-navbox-group-header { width: 200px; max-height: 100%; padding: 1em; display: flex; align-items: center; background-color: #1f1f1f; font-weight: 700; white-space: pre-wrap; column-gap: 10px}.container-navbox-group { width: 100%; padding: 15px 1em}.container-navbox-group ul { columns: 220px auto}.container-navbox-group ul li { margin-bottom: 5px}.dropdown:hover .dropdown-content { visibility: visible; opacity: 1}blockquote { font-family: Raleway,helvetica,serif!important}.cata-image-loot-tabber * .tabber__tabs a::before { content: ""; width: 35px; height: 45px; background-position: center; background-repeat: no-repeat; background-size: cover}.cata-image-loot-tabber * .tabber__tabs a:nth-child(1)::before { background-image: url(https://wiki.hypixel.net/images/a/a8/SkyBlock_furniture_wood_chest_plus.png)}.cata-image-loot-tabber * .tabber__tabs a:nth-child(2)::before { background-image: url(https://wiki.hypixel.net/images/b/be/SkyBlock_furniture_gold_chest_plus.png)}.cata-image-loot-tabber * .tabber__tabs a:nth-child(3)::before { background-image: url(https://wiki.hypixel.net/images/e/e9/SkyBlock_furniture_diamond_chest_plus.png)}.cata-image-loot-tabber * .tabber__tabs a:nth-child(4)::before { background-image: url(https://wiki.hypixel.net/images/8/82/SkyBlock_furniture_emerald_chest_plus.png)}.cata-image-loot-tabber * .tabber__tabs a:nth-child(5)::before { background-image: url(https://wiki.hypixel.net/images/b/be/SkyBlock_furniture_ender_chest_plus.png)}.cata-image-loot-tabber * .tabber__tabs a:nth-child(6)::before { background-image: url(https://wiki.hypixel.net/images/b/be/SkyBlock_furniture_ender_chest_plus.png)}.boss-quote-table-quote { font-family: sans,serif; font-size: 40px; font-weight: 700; color: #f55; padding: 16px 10px; line-height: .5}.toc>ul { margin: 0 5em 0 32px!important}.toctogglecheckbox~ul { display: none}.toctogglecheckbox:not(:checked)~ul { display: block}.dialogue-headine { padding: .5em 0; line-height: 1.3; word-wrap: break-word; word-break: break-word; font-weight: 700}.content code { padding: .1em .4em}code { border-image: none!important}.mw-parser-output { display: inline-block; width: 100%; max-width: 100%}@media(min-width: 1000px) { .header-container.header-chrome { position:fixed; z-index: 2; width: 100%; top: 0; padding: 0!important } .header-container.header-chrome:before { box-shadow: 0 0 20px 10px #1a1a1a } #mw-mf-page-center,#mw-mf-page-center::before { top: 100px!important } .minerva-user-menu-list { top: 60px }}@media(max-width: 1000px) { .hypixel-site-navigation .toggle-list__toggle { padding-left:0!important; padding-right: 0!important } #hypixel-site-navigation-wrapper { padding: 0 .75em }}@media(max-width: 720px) { .header { flex-wrap:wrap!important; height: auto!important; justify-content: space-around!important } #hypixel-site-navigation-wrapper { order: 3; flex-wrap: wrap!important; row-gap: 15px; justify-content: space-around } #hypixel-site-navigation-wrapper .toggle-list__list { left: 0!important; width: 100%!important } .branding-box { width: 80px; height: 40px } .search-box { width: 100%!important; left: 0!important }}.main-menu-mask { display: none!important}#hypixel-site-navigation-wrapper { display: flex; flex-wrap: nowrap}.hypixel-site-navigation { color: #fff!important; text-shadow: 1px 1px rgba(0,0,0,.5)}.hypixel-site-navigation a { color: inherit!important}.hypixel-site-navigation .toggle-list__toggle { padding: .75em}.hypixel-site-navigation .toggle-list__toggle:hover { background-color: rgba(0,0,0,.4)}.hypixel-site-navigation .toggle-list__list { top: 100%; min-width: 200px}.hypixel-site-navigation .toggle-list__list .toggle-list-item .toggle-list-item__anchor { min-height: 20px}.toggle-list__list,.minerva-user-menu-list { border-radius: 3px}.minerva-user-navigation { width: auto!important; min-width: revert!important}.header { display: flex; justify-content: space-between; align-content: center; align-items: center; flex-direction: row; flex-wrap: nowrap}.hypixel-site-navigation>label::after { content: ""; background-image: linear-gradient(transparent,transparent),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+ZXhwYW5kPC90aXRsZT48ZyBmaWxsPSIjYTJhOWIxIj48cGF0aCBkPSJNMTcuNSA0Ljc1bC03LjUgNy41LTcuNS03LjVMMSA2LjI1bDkgOSA5LTl6Ii8+PC9nPjwvc3ZnPg==); display: inline-block; vertical-align: middle; min-width: 1em; min-height: 1em; padding: 0 0 0 20px; background-repeat: no-repeat; background-size: 1em 1em; background-position: center}#mw-mf-page-left ul li a span,.toggle-list-item__label { color: #fff!important}.mw-ui-icon-wikimedia-flag-ltr-base20:before { background-image: url(https://wiki.hypixel.net/resources/lib/ooui/themes/wikimediaui/images/icons/flag-ltr.svg)}.mw-ui-icon-wikimedia-articleRedirect-ltr-base20:before { background-image: url(https://wiki.hypixel.net/resources/lib/ooui/themes/wikimediaui/images/icons/articleRedirect-ltr.svg)}@media(max-width: 720px) { table.infobox { display:table!important } table.wikitable { display: block!important }}table.infobox { display: revert!important}.infobox ul { list-style: none}#userloginForm .mw-userlogin-rememberme { display: block!important}.mw-hp-tree { color: #5f5; margin-left: 20px}.mw-hp-tree li { margin-bottom: 0; list-style-type: disc}.mw-hp-tree li::marker { color: #fff}.mw-hp-tree ul:first-of-type { margin-top: 6px}.mw-hp-tree ul:last-of-type { margin-bottom: 6px}.mw-hp-tree-container { margin-left: 5px}.mw-hp-tree-text::after { content: "Expand"; color: #ba91ff; display: inline-block}.mw-hp-tree-text-down::after { content: "Collapse"; color: #7698ff; display: inline-block}.mw-hp-tree-anchor { cursor: pointer; user-select: none}.mw-hp-tree-nested { display: none}.mw-hp-tree-active { display: block}.mw-display-qrcode { border: 2px solid #fff}.mw-overlays-container .search-overlay { top: 71px}.mw-overlays-container .search-overlay .search-content,.mw-overlays-container .search-overlay .results { margin-left: 0!important}.mw-overlays-container .search-overlay .search-content { z-index: 4; position: relative; border: none!important}.mw-overlays-container .search-overlay .overlay-content { padding-top: 0!important; z-index: 3}.mw-overlays-container .search-overlay .overlay-header { flex-wrap: nowrap!important}.mw-overlays-container .search-overlay .overlay-title { padding-right: 15px}.mw-overlays-container .search-overlay .search { max-width: unset!important}.mw-overlays-container .search-overlay .clear { right: 5px!important}.mw-overlays-container .search-overlay .results { position: relative; box-shadow: none!important; background: 0 0!important}.mw-overlays-container .search-overlay .results ul>li { color: #fff; background: #1f1f1f; border: 1px solid #333!important; border-radius: 6px; margin: 5px 0; box-shadow: 0 0 10px #1f1f1f!important}.mw-overlays-container .search-overlay .results .list-thumb { background-color: #212121; border-radius: 6px}.mw-overlays-container .search-overlay .results .page-summary h2,.mw-overlays-container .search-overlay .results .page-summary h3 { color: #fff}@media(min-width: 720px) { .overlay-content { padding-left:236px!important } .overlay-header-container { z-index: 4!important } .search-content,.results { width: 380px!important }}@media(max-width: 720px) { div.overlay-header-container { position:relative!important; top: -71px!important } .overlay-content { padding: 0 15px } .search-content,.results { width: 100%!important }}table.sortable .headerSort { padding-right: 21px!important; position: relative}table.sortable .headerSort:after { background-image: inherit; content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-repeat: no-repeat; background-position: center right; filter: invert(100%); pointer-events: none}.warningbox>p { color: #fff; margin: .5em 0}.suggestions-special { border-radius: 6px}.mw-dismissable-notice { background-color: #1f1f1f; border-radius: 8px; border: 1px solid #333; border-image-width: 35px!important; border-image-outset: 2px!important}.mw-dismissable-notice { position: fixed; display: block; bottom: 25px; z-index: 6; width: 100%; max-width: 92%!important; box-shadow: 0 -5px 30px 20px rgba(0,0,0,.3); margin: 0!important; left: 50%; transform: translateX(-50%)}.mw-dismissable-notice-body { padding: 20px; margin: 0!important}.mw-dismissable-notice-close { padding: 20px}.banner-container { position: relative}.warningbox { color: #fff!important}#content { position: relative; z-index: 1; background-color: transparent!important}div#mw-mf-page-center::before { content: ""; position: fixed; top: 0; bottom: 0; right: 0; height: 100%; width: 100%; background-image: linear-gradient(#1a1a1a,transparent),url(https://wiki.hypixel.net/images/hypixel/background.png); background-image: linear-gradient(#1a1a1a,transparent),image-set(url(https://wiki.hypixel.net/images/hypixel/background.png) 1x,url(https://wiki.hypixel.net/images/hypixel/background-large.png) 2x); background-attachment: fixed; background-color: #1a1a1a; background-position: center; background-repeat: no-repeat; background-size: cover; opacity: .075; z-index: 0; pointer-events: none}.page-Main_Page #wrapper #content { background: 0 0!important}.last-modified-bar,.footer { position: relative}.last-modified-bar a,.last-modified-bar a:visited { color: #fff}.overlay { z-index: 2!important}.mwe-math-element { overflow: auto; display: block}#page-secondary-actions { display: none}.loot-drops-minor li { margin-bottom: 0!important}.warningbox { color: #fff}.warningbox>p { margin: .5em 0!important; font-size: 17px}.toctitle>.mw-ui-icon-minerva-listBullet { display: none}.infobox img { max-width: 100%!important}.hp-loottable td { border: 2px solid #1a1a1a!important}.hp-loottable td:last-child { color: #5f5}.is-affected-by-mf { outline: dotted 3px transparent; outline-offset: -1px; outline-color: #5ff}.is-affected-by-pl { outline: dotted 3px transparent; outline-offset: -1px; outline-color: #f5f}.is-affected-by-mf.is-affected-by-pl { outline-color: #b591b7!important}.cata-image-loot-tabber * .tabber__tabs a:nth-child(1)::before { background-image: url(https://wiki.hypixel.net/images/b/b9/SkyBlock_furniture_dungeon_wood_reward_chest.png); height: 65px}.cata-image-loot-tabber * .tabber__tabs a:nth-child(2)::before { background-image: url(https://wiki.hypixel.net/images/8/85/SkyBlock_furniture_dungeon_gold_reward_chest.png); height: 65px}.cata-image-loot-tabber * .tabber__tabs a:nth-child(3)::before { background-image: url(https://wiki.hypixel.net/images/9/98/SkyBlock_furniture_dungeon_diamond_reward_chest.png); height: 65px; width: 40px}.cata-image-loot-tabber * .tabber__tabs a:nth-child(4)::before { background-image: url(https://wiki.hypixel.net/images/e/e4/SkyBlock_furniture_dungeon_emerald_reward_chest.png); height: 65px; width: 40px}.cata-image-loot-tabber * .tabber__tabs a:nth-child(5)::before { background-image: url(https://wiki.hypixel.net/images/4/40/SkyBlock_furniture_dungeon_obsidian_reward_chest.png); height: 65px; width: 50px}.cata-image-loot-tabber * .tabber__tabs a:nth-child(6)::before { background-image: url(https://wiki.hypixel.net/images/8/87/SkyBlock_furniture_dungeon_bedrock_reward_chest.png); height: 65px; width: 55px}.diff-deletedline .diffchange { background: #988e78!important}.hide { display: none}.page-notif-box { border: 2px solid #333!important; border-left-width: 10px!important; border-radius: 6px; border-collapse: separate!important; width: 75%; background-color: #1f1f1f!important; box-shadow: 0 0 10px #1f1f1f!important; display: flex; margin: auto!important; color: #fff; font-weight: 700; margin-top: 25px!important; margin-bottom: 25px!important}.page-notif-box tr>td { border: none; padding: .25em .9em}.page-notif-box img { max-width: revert!important; flex-shrink: 0}.page-notif-box-updating,.page-notif-box-changed { border-color: #e7871b!important}.page-notif-box-no-obtain,.page-notif-box-cannot-obtain { border-color: #e30000!important}.page-notif-box-alpha { border-color: #0d6f67!important}.hp-input { height: 35px; width: 100%; border: none!important}.dungeon-calc-container td,.loot-calc-container td { border: 2px solid #1a1a1a}.dungeon-calc-button,.loot-calc-button { cursor: pointer; vertical-align: bottom; background-color: #3f7dfb!important; transition-duration: .35s; padding: 5px!important}.dungeon-calc-button:hover,.loot-calc-button:hover { background-color: #5e93fe!important}.hp-loottable td:last-child { color: #5f5}.dungeon-loottable td:last-child { color: #5f5}.listspacing li { margin-bottom: 0!important}.listspacing li:last-child { margin-bottom: 1em!important}.listdisplay li { display: inline!important}.categoryboxcontainer { max-width: 100%; height: 35px; background-color: #1f1f1f; border: 1px solid #333; padding: 3px; font-size: 15px; clear: both}.categoryboxcontainer li { display: inline-block; padding-left: 5px; padding-right: 5px; line-height: 35px}.categoryboxcontainer li:first-child { padding-left: 0; border-left: none}.categoryboxcontainer li:nth-child(2) { border-left: none}.categoryboxcontainer li:empty { display: none}.tooltiptemp { position: relative!important; display: inline-block!important; text-decoration: underline dotted; cursor: help}.tooltiptemp .tooltiptexttemp { visibility: hidden; width: 240px; background-color: #000; color: #fff; text-align: center; border: 1px #333 solid; border-radius: 6px; padding: 5px 0; position: absolute; z-index: 1; bottom: 100%!important; left: 50%!important; margin-left: -120px!important; opacity: 0; transition: opacity 1s}.tooltiptemp .tooltiptexttemp::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: #000 transparent transparent transparent}.tooltiptemp:hover .tooltiptexttemp { visibility: visible; opacity: 1}.tooltiptemp p { margin: 0}.raw-mctooltip { position: relative!important; display: inline-block!important; font-weight: 400}.raw-mctooltip:hover .raw-mctooltiptext { display: inline}.raw-mctooltiptext { display: none; font-family: minecraft,helvetica,serif; margin: 0}.content .mw-parser-output>h2 { padding: .25em 0; font-size: 1.8em; margin-top: 35px}.content .mw-parser-output>h2,.content .mw-parser-output>h3 { text-transform: uppercase; font-weight: 400}.heading-holder { padding: 0!important}.mw-body-content blockquote { background-color: #212121; border-radius: 6px; border: 1px solid #333!important; border-left-width: 5px!important; display: table}.tabber__tab { font-weight: 400!important; column-gap: 10px}.tabber__header .tabber__tab:not(.tabber__tab--active) { color: #fff}.mw-collapsible-toggle { padding-left: 5px}.tabber__header,.tabber__section,.tabber__panel { scroll-snap-type: none!important; overscroll-behavior: none!important; scroll-snap-align: none!important; overflow: hidden!important}.mw-userlogin-help { display: none}@media(min-width: 720px) { .header .branding-box { max-height:55px }}@font-face { font-family: minecraft; src: url(https://wiki.hypixel.net/fonts/minecraft.woff) format("woff")}.minecraft-inventory { -moz-user-select: none; -ms-user-select: none; -webkit-user-select: none; background-color: #c6c6c6; border: 4px solid; border-color: #fff #555 #555 #fff; border-radius: 4px; box-shadow: 0 0 0 1px #000; color: #404040; display: inline-block; font-family: minecraft,serif; font-size: 15px; font-weight: 400; padding: 2px 6px 6px; user-select: none; margin: 10px 0}.minecraft-inventory table { border-collapse: separate; margin: 0!important}.minecraft-inventory td { background: #8b8b8b no-repeat center center/32px 32px; border: 2px solid; border-color: #373737 #fff #fff #373737; box-sizing: border-box; padding: 0; position: relative; width: 36px}.minecraft-inventory td>.external { background: 0 0; padding: 0}.minecraft-inventory td>a:hover { text-decoration: none}.minecraft-inventory td:hover:after { background: #fff; content: ""; float: left; height: 100%; left: 0; opacity: .5; pointer-events: none; position: absolute; top: 0; width: 100%}.minecraft-inventory td:hover .mctooltip { display: block}.minecraft-inventory>span { padding: 2px}.minecraft-inventory tr { height: 36px}.minecraft-inventory .enchanted::before { content: ""; height: 32px; left: 0; position: absolute; top: 0; width: 32px; background-image: url(https://wiki.hypixel.net/images/minecraft/glint.webp); mix-blend-mode: color-dodge}.minecraft-inventory .enchanted::after { content: ""; height: 32px; left: 0; position: absolute; top: 0; width: 32px; background-image: url(https://wiki.hypixel.net/images/minecraft/item-spritesheet_cutout.png); background-position: inherit}.minecraft-inventory .amount { margin: 0; position: relative; z-index: 999}.minecraft-inventory .sbsprite { background-repeat: no-repeat; color: #fff; direction: rtl; display: block; text-shadow: 2px 2px #3f3f3f; background-image: url(https://wiki.hypixel.net/images/skyblock/item-spritesheet.png); height: 22px; line-height: 44px; margin: 0 5px; text-indent: -8px; width: 22px}.minecraft-inventory .mcsprite { background-repeat: no-repeat; color: #fff; direction: rtl; display: block; text-shadow: 2px 2px #3f3f3f; background-image: url(https://wiki.hypixel.net/images/minecraft/item-spritesheet.png); height: 32px; line-height: 54px; text-indent: -2px; width: 32px}.minecraft-inventory .sbpet { background-repeat: no-repeat; color: #fff; direction: rtl; display: block; text-shadow: 2px 2px #3f3f3f; background-image: url(https://wiki.hypixel.net/images/skyblock/pet-spritesheet.png); height: 22px; line-height: 44px; margin: 0 6px; text-indent: -8px; width: 20px}.mctooltip { background: rgba(16,0,16,.93); border: 2px solid; border-image: linear-gradient(to bottom,rgba(80,0,255,0.31),rgba(40,0,127,0.31)); border-image-slice: 1; border-radius: 4px; box-shadow: 0 0 0 2px rgba(16,0,16,.93); display: none; line-height: 18px; margin-left: 15px; margin-top: -30px; padding: 4px 4px 3px; position: fixed; text-indent: initial; text-shadow: 2px 2px #3f3f3f; z-index: 9999}.mctooltip>span { direction: ltr; display: block; white-space: nowrap; text-align: left}.mctooltip>span:nth-child(1):not(:last-child) { padding-bottom: 5px}.mctooltip>span:nth-child(n+2) { float: left}.mctooltip>span:nth-child(n+2):not(:last-child) { padding-right: 4px}.mctooltip>span.inline { display: inline-block!important}.mctooltip .rarity-divine { color: #5ff}.mctooltip .rarity-rare { color: #55f; text-shadow: 2px 2px #15153f}.mctooltip .rarity-epic { color: #a0a; text-shadow: 2px 2px #2a002a}.mctooltip .rarity-supreme { color: #a00; text-shadow: 2px 2px #2a0000}.mctooltip .rarity-legendary { color: #fa0; text-shadow: 2px 2px #2a2a00}.mctooltip .rarity-uncommon { color: #5f5; text-shadow: 2px 2px #153f15}.mctooltip .rarity-mythic { color: #f5f; text-shadow: 2px 2px #3f153f}.mctooltip .rarity-veryspecial { color: #f55; text-shadow: 2px 2px #3f1515}.mctooltip .rarity-special { color: #f55; text-shadow: 2px 2px #3f1515}.mctooltip .color-aqua { text-shadow: 2px 2px #153f3f}.mctooltip .color-black { text-shadow: 2px 2px #000}.mctooltip .color-blue { text-shadow: 2px 2px #15153f}.mctooltip .color-dark_aqua { text-shadow: 2px 2px #002a2a}.mctooltip .color-dark_blue { text-shadow: 2px 2px #00002a}.mctooltip .color-dark_gray { text-shadow: 2px 2px #151515}.mctooltip .color-dark_green { text-shadow: 2px 2px #002a00}.mctooltip .color-dark_purple { text-shadow: 2px 2px #2a002a}.mctooltip .color-dark_red { text-shadow: 2px 2px #2a0000}.mctooltip .color-gold { text-shadow: 2px 2px #2a2a00}.mctooltip .color-gray { text-shadow: 2px 2px #2a2a2a}.mctooltip .color-green { text-shadow: 2px 2px #153f15}.mctooltip .color-light_purple { text-shadow: 2px 2px #3f153f}.mctooltip .color-red { text-shadow: 2px 2px #3f1515}.mctooltip .color-white { text-shadow: 2px 2px #3f3f3f}.mctooltip .color-yellow { text-shadow: 2px 2px #3f3f15}.color-aqua { color: #5ff}.color-black { color: #000}.color-blue { color: #55f}.color-dark_aqua { color: #0aa}.color-dark_blue { color: #00a}.color-dark_gray { color: #555}.color-dark_green { color: #0a0}.color-dark_purple { color: #a0a}.color-dark_red { color: #a00}.color-gold { color: #fa0}.color-gray { color: #aaa}.color-green { color: #5f5}.color-light_purple { color: #f5f}.color-red { color: #f55}.color-white { color: #fff}.color-yellow { color: #ff5}.mcentity { background-image: url(https://wiki.hypixel.net/images/minecraft/entity-spritesheet.png); height: 16px; width: 16px}.mcblock { background-image: url(https://wiki.hypixel.net/images/minecraft/block-spritesheet.png); height: 16px; width: 16px}.sbspray { background-image: url(https://wiki.hypixel.net/images/skyblock/spray-spritesheet.png); height: 128px; width: 128px}.sbnpc { background-image: url(https://wiki.hypixel.net/images/skyblock/npc-spritesheet.png); height: 120px; width: 270px}.sbnpc-_56ms { background-position: 0 0}.sbnpc-adventurer { background-position: -120px 0}.sbnpc-agents { background-position: -240px 0}.sbnpc-anita { background-position: -360px 0}.sbnpc-archeologist { background-position: -480px 0}.sbnpc-armorsmith { background-position: -600px 0}.sbnpc-arthur { background-position: -720px 0}.sbnpc-artist { background-position: -840px 0}.sbnpc-artist_2 { background-position: -960px 0}.sbnpc-auction_agent_0 { background-position: -1080px 0}.sbnpc-auction_agent_1 { background-position: -1200px 0}.sbnpc-auction_agent_2 { background-position: -1320px 0}.sbnpc-auction_agent_3 { background-position: -1440px 0}.sbnpc-auction_master { background-position: -1560px 0}.sbnpc-baker { background-position: -1680px 0}.sbnpc-banker { background-position: -1800px 0}.sbnpc-bartender { background-position: -1920px 0}.sbnpc-bazaar { background-position: -2040px 0}.sbnpc-bazaar_assistant { background-position: -2160px 0}.sbnpc-beekeeper { background-position: -2280px 0}.sbnpc-bestiary { background-position: -2400px 0}.sbnpc-beth { background-position: -2520px 0}.sbnpc-blue_shark { background-position: -2640px 0}.sbnpc-bodyguard_1 { background-position: -2760px 0}.sbnpc-bodyguard_2 { background-position: 0 -270px}.sbnpc-bonzo { background-position: -120px -270px}.sbnpc-bonzo_summon_0 { background-position: -240px -270px}.sbnpc-bonzo_summon_1 { background-position: -360px -270px}.sbnpc-bonzo_summon_2 { background-position: -480px -270px}.sbnpc-bonzo_undead { background-position: -600px -270px}.sbnpc-builder { background-position: -720px -270px}.sbnpc-candidate { background-position: -840px -270px}.sbnpc-cannibal_undead { background-position: -960px -270px}.sbnpc-carpenter { background-position: -1080px -270px}.sbnpc-catacombs_blacksmith { background-position: -1200px -270px}.sbnpc-century_simon { background-position: -1320px -270px}.sbnpc-charlie { background-position: -1440px -270px}.sbnpc-clerk_election { background-position: -1560px -270px}.sbnpc-community_shop { background-position: -1680px -270px}.sbnpc-crypt_dreadlord { background-position: -1800px -270px}.sbnpc-crypt_souleater { background-position: -1920px -270px}.sbnpc-crystal_sentry { background-position: -2040px -270px}.sbnpc-dante_grey { background-position: -2160px -270px}.sbnpc-dante_statue { background-position: -2280px -270px}.sbnpc-default_lost_adventurer { background-position: -2400px -270px}.sbnpc-derp_candidate { background-position: -2520px -270px}.sbnpc-diamond_guy { background-position: -2640px -270px}.sbnpc-dictator { background-position: -2760px -270px}.sbnpc-dirt_guy { background-position: 0 -540px}.sbnpc-donpireso { background-position: -120px -540px}.sbnpc-duncan { background-position: -240px -540px}.sbnpc-dungeons_candidate { background-position: -360px -540px}.sbnpc-dungeons_hub_selector { background-position: -480px -540px}.sbnpc-dusk { background-position: -600px -540px}.sbnpc-dwarf_banker { background-position: -720px -540px}.sbnpc-dwarf_citizen_female_5 { background-position: -840px -540px}.sbnpc-dwarf_citizen_female_6 { background-position: -960px -540px}.sbnpc-dwarf_citizen_female_7 { background-position: -1080px -540px}.sbnpc-dwarf_citizen_male_1 { background-position: -1200px -540px}.sbnpc-dwarf_citizen_male_2 { background-position: -1320px -540px}.sbnpc-dwarf_citizen_male_3 { background-position: -1440px -540px}.sbnpc-dwarf_citizen_male_4 { background-position: -1560px -540px}.sbnpc-dwarf_council_female_5 { background-position: -1680px -540px}.sbnpc-dwarf_council_female_6 { background-position: -1800px -540px}.sbnpc-dwarf_council_female_7 { background-position: -1920px -540px}.sbnpc-dwarf_council_female_8 { background-position: -2040px -540px}.sbnpc-dwarf_council_male_1 { background-position: -2160px -540px}.sbnpc-dwarf_council_male_2 { background-position: -2280px -540px}.sbnpc-dwarf_council_male_3 { background-position: -2400px -540px}.sbnpc-dwarf_council_male_4 { background-position: -2520px -540px}.sbnpc-dwarf_militia_1 { background-position: -2640px -540px}.sbnpc-dwarf_militia_2 { background-position: -2760px -540px}.sbnpc-dwarf_militia_3 { background-position: 0 -810px}.sbnpc-dwarf_militia_4 { background-position: -120px -810px}.sbnpc-dwarf_militia_5 { background-position: -240px -810px}.sbnpc-dwarf_militia_6 { background-position: -360px -810px}.sbnpc-dwarf_royalguard_female_5 { background-position: -480px -810px}.sbnpc-dwarf_royalguard_female_6 { background-position: -600px -810px}.sbnpc-dwarf_royalguard_female_7 { background-position: -720px -810px}.sbnpc-dwarf_royalguard_female_8 { background-position: -840px -810px}.sbnpc-dwarf_royalguard_male_1 { background-position: -960px -810px}.sbnpc-dwarf_royalguard_male_2 { background-position: -1080px -810px}.sbnpc-dwarf_royalguard_male_3 { background-position: -1200px -810px}.sbnpc-dwarf_royalguard_male_4 { background-position: -1320px -810px}.sbnpc-economist_candidate { background-position: -1440px -810px}.sbnpc-elle { background-position: -1560px -810px}.sbnpc-emissary_female_1 { background-position: -1680px -810px}.sbnpc-emissary_female_2 { background-position: -1800px -810px}.sbnpc-emissary_female_3 { background-position: -1920px -810px}.sbnpc-emissary_male_1 { background-position: -2040px -810px}.sbnpc-emissary_male_2 { background-position: -2160px -810px}.sbnpc-emissary_male_3 { background-position: -2280px -810px}.sbnpc-end_dealer { background-position: -2400px -810px}.sbnpc-enderman_liquid_hot_magma { background-position: -2520px -810px}.sbnpc-enraged_revenant_horror { background-position: -2640px -810px}.sbnpc-entity_liquid_hot_magma { background-position: -2760px -810px}.sbnpc-event_master { background-position: 0 -1080px}.sbnpc-events_candidate { background-position: -120px -1080px}.sbnpc-fairy { background-position: -240px -1080px}.sbnpc-farm_merchant { background-position: -360px -1080px}.sbnpc-farmer { background-position: -480px -1080px}.sbnpc-farmer_jon { background-position: -600px -1080px}.sbnpc-fire_guy { background-position: -720px -1080px}.sbnpc-fish_merchant { background-position: -840px -1080px}.sbnpc-fisherman { background-position: -960px -1080px}.sbnpc-fishing_candidate { background-position: -1080px -1080px}.sbnpc-flamer_undead { background-position: -1200px -1080px}.sbnpc-forger { background-position: -1320px -1080px}.sbnpc-frank_undead { background-position: -1440px -1080px}.sbnpc-friendly_hiker { background-position: -1560px -1080px}.sbnpc-frost_undead { background-position: -1680px -1080px}.sbnpc-frosty { background-position: -1800px -1080px}.sbnpc-frozen_lost_adventurer { background-position: -1920px -1080px}.sbnpc-furry_e_boy { background-position: -2040px -1080px}.sbnpc-gatekeeper { background-position: -2160px -1080px}.sbnpc-giant_undead { background-position: -2280px -1080px}.sbnpc-goblin { background-position: -2400px -1080px}.sbnpc-goblin_armor_1 { background-position: -2520px -1080px}.sbnpc-goblin_armor_2 { background-position: -2640px -1080px}.sbnpc-goblin_armor_3 { background-position: -2760px -1080px}.sbnpc-goblin_armor_4 { background-position: 0 -1350px}.sbnpc-goblin_king_1 { background-position: -120px -1350px}.sbnpc-goblin_murderlover { background-position: -240px -1350px}.sbnpc-goblin_naked_1 { background-position: -360px -1350px}.sbnpc-goblin_naked_2 { background-position: -480px -1350px}.sbnpc-goblin_naked_3 { background-position: -600px -1350px}.sbnpc-goblin_naked_4 { background-position: -720px -1350px}.sbnpc-goblin_naked_5 { background-position: -840px -1350px}.sbnpc-gold_forger { background-position: -960px -1350px}.sbnpc-goon { background-position: -1080px -1350px}.sbnpc-grandma_wolf { background-position: -1200px -1350px}.sbnpc-great_white_shark { background-position: -1320px -1350px}.sbnpc-guber { background-position: -1440px -1350px}.sbnpc-guildford { background-position: -1560px -1350px}.sbnpc-gulliver { background-position: -1680px -1350px}.sbnpc-gustave { background-position: -1800px -1350px}.sbnpc-haymitch { background-position: -1920px -1350px}.sbnpc-hephaestus { background-position: -2040px -1350px}.sbnpc-holy_lost_adventurer { background-position: -2160px -1350px}.sbnpc-hub_selector { background-position: -2280px -1350px}.sbnpc-hungry_hiker { background-position: -2400px -1350px}.sbnpc-hunter_ava { background-position: -2520px -1350px}.sbnpc-ice_fisherman { background-position: -2640px -1350px}.sbnpc-iron_forger { background-position: -2760px -1350px}.sbnpc-jacob { background-position: 0 -1620px}.sbnpc-jake { background-position: -120px -1620px}.sbnpc-juliette { background-position: -240px -1620px}.sbnpc-kessie { background-position: -360px -1620px}.sbnpc-king_midas { background-position: -480px -1620px}.sbnpc-lapis_miner { background-position: -600px -1620px}.sbnpc-lazy_miner { background-position: -720px -1620px}.sbnpc-leech_undead { background-position: -840px -1620px}.sbnpc-lift_operator { background-position: -960px -1620px}.sbnpc-liquid_hot_magma { background-position: -1080px -1620px}.sbnpc-livid { background-position: -1200px -1620px}.sbnpc-livid_undead { background-position: -1320px -1620px}.sbnpc-lonely_philosopher { background-position: -1440px -1620px}.sbnpc-lumber_merchant { background-position: -1560px -1620px}.sbnpc-lumberjack { background-position: -1680px -1620px}.sbnpc-mason { background-position: -1800px -1620px}.sbnpc-master_tactician { background-position: -1920px -1620px}.sbnpc-mayhem_main { background-position: -2040px -1620px}.sbnpc-mayor { background-position: -2160px -1620px}.sbnpc-melancholic_viking { background-position: -2280px -1620px}.sbnpc-melody { background-position: -2400px -1620px}.sbnpc-mine_merchant { background-position: -2520px -1620px}.sbnpc-mining_candidate { background-position: -2640px -1620px}.sbnpc-minos_champion { background-position: -2760px -1620px}.sbnpc-minos_inquisitor { background-position: 0 -1890px}.sbnpc-minotaur { background-position: -120px -1890px}.sbnpc-mort { background-position: -240px -1890px}.sbnpc-mr_dead_undead { background-position: -360px -1890px}.sbnpc-mute_undead { background-position: -480px -1890px}.sbnpc-nitroholic { background-position: -600px -1890px}.sbnpc-nurse_shark { background-position: -720px -1890px}.sbnpc-old_man_garry { background-position: -840px -1890px}.sbnpc-ooze_undead { background-position: -960px -1890px}.sbnpc-ophelia { background-position: -1080px -1890px}.sbnpc-oringo { background-position: -1200px -1890px}.sbnpc-parasite_undead { background-position: -1320px -1890px}.sbnpc-pat { background-position: -1440px -1890px}.sbnpc-personal_bank_upgrader { background-position: -1560px -1890px}.sbnpc-pet_collector { background-position: -1680px -1890px}.sbnpc-pet_sitter { background-position: -1800px -1890px}.sbnpc-pets_candidate { background-position: -1920px -1890px}.sbnpc-placeholder_candidate { background-position: -2040px -1890px}.sbnpc-player_jerry { background-position: -2160px -1890px}.sbnpc-potato_king { background-position: -2280px -1890px}.sbnpc-professor { background-position: -2400px -1890px}.sbnpc-psycho_undead { background-position: -2520px -1890px}.sbnpc-putrid_undead { background-position: -2640px -1890px}.sbnpc-puzzler { background-position: -2760px -1890px}.sbnpc-rainmaker { background-position: 0 -2160px}.sbnpc-reaper_undead { background-position: -120px -2160px}.sbnpc-redstone_engineer { background-position: -240px -2160px}.sbnpc-refraction { background-position: -360px -2160px}.sbnpc-relenter { background-position: -480px -2160px}.sbnpc-revenant_horror { background-position: -600px -2160px}.sbnpc-revoker_undead { background-position: -720px -2160px}.sbnpc-rick { background-position: -840px -2160px}.sbnpc-romero_final { background-position: -960px -2160px}.sbnpc-romero_normal { background-position: -1080px -2160px}.sbnpc-sadan { background-position: -1200px -2160px}.sbnpc-salesman_christmas { background-position: -1320px -2160px}.sbnpc-salesman_easter { background-position: -1440px -2160px}.sbnpc-salesman_generic { background-position: -1560px -2160px}.sbnpc-salesman_halloween { background-position: -1680px -2160px}.sbnpc-salesman_summer { background-position: -1800px -2160px}.sbnpc-scarf_archer { background-position: -1920px -2160px}.sbnpc-scarf_mage { background-position: -2040px -2160px}.sbnpc-scarf_priest { background-position: -2160px -2160px}.sbnpc-scarf_undead { background-position: -2280px -2160px}.sbnpc-scarf_warrior { background-position: -2400px -2160px}.sbnpc-scoop { background-position: -2520px -2160px}.sbnpc-scorpius { background-position: -2640px -2160px}.sbnpc-shadow_assassin { background-position: -2760px -2160px}.sbnpc-shady_bartender { background-position: 0 -2430px}.sbnpc-shady_cousin { background-position: -120px -2430px}.sbnpc-shaggy { background-position: -240px -2430px}.sbnpc-shepherd { background-position: -360px -2430px}.sbnpc-simon_hat { background-position: -480px -2430px}.sbnpc-sirius { background-position: -600px -2430px}.sbnpc-skeletor_prime { background-position: -720px -2430px}.sbnpc-skull_undead { background-position: -840px -2430px}.sbnpc-slayer { background-position: -960px -2430px}.sbnpc-slayer_candidate { background-position: -1080px -2430px}.sbnpc-snowmaker { background-position: -1200px -2430px}.sbnpc-spirit_bear { background-position: -1320px -2430px}.sbnpc-spooky { background-position: -1440px -2430px}.sbnpc-st_jerry { background-position: -1560px -2430px}.sbnpc-sylent { background-position: -1680px -2430px}.sbnpc-tailor_assistant { background-position: -1800px -2430px}.sbnpc-tailor_owner { background-position: -1920px -2430px}.sbnpc-tammy { background-position: -2040px -2430px}.sbnpc-tear_undead { background-position: -2160px -2430px}.sbnpc-technoblade { background-position: -2280px -2430px}.sbnpc-terracotta { background-position: -2400px -2430px}.sbnpc-terry { background-position: -2520px -2430px}.sbnpc-thirty_virus { background-position: -2640px -2430px}.sbnpc-tiger_shark { background-position: -2760px -2430px}.sbnpc-timedeo { background-position: -2880px 0}.sbnpc-tomioka { background-position: -2880px -270px}.sbnpc-tony { background-position: -2880px -540px}.sbnpc-treasure_horder { background-position: -2880px -810px}.sbnpc-treasure_hunter { background-position: -2880px -1080px}.sbnpc-trevor { background-position: -2880px -1350px}.sbnpc-trinity { background-position: -2880px -1620px}.sbnpc-unstable_lost_adventurer { background-position: -2880px -1890px}.sbnpc-vader_undead { background-position: -2880px -2160px}.sbnpc-vinny { background-position: -2880px -2430px}.sbnpc-walker_undead { background-position: 0 -2700px}.sbnpc-walter { background-position: -120px -2700px}.sbnpc-weaponsmith { background-position: -240px -2700px}.sbnpc-weirdo_0 { background-position: -360px -2700px}.sbnpc-weirdo_1 { background-position: -480px -2700px}.sbnpc-weirdo_2 { background-position: -600px -2700px}.sbnpc-winona { background-position: -720px -2700px}.sbnpc-winter_banker { background-position: -840px -2700px}.sbnpc-wizard { background-position: -960px -2700px}.sbnpc-wizard_candidate { background-position: -1080px -2700px}.sbnpc-wizard_quest { background-position: -1200px -2700px}.sbnpc-wolf_shaman { background-position: -1320px -2700px}.sbnpc-wool_weaver { background-position: -1440px -2700px}.sbnpc-young_lost_adventurer { background-position: -1560px -2700px}.sbnpc-zog { background-position: -1680px -2700px}.sbnpc-zombie_commander { background-position: -1800px -2700px}.sbsprite-cobblestone_generator_10 { background-position: 0 0}.sbsprite-cobblestone_generator_11 { background-position: -22px 0}.sbsprite-danger_3_portal { background-position: -44px 0}.sbsprite-resource_regenerator_crystal { background-position: -66px 0}.sbsprite-sugar_cane_generator_12 { background-position: -88px 0}.sbsprite-cobblestone_generator_12 { background-position: -110px 0}.sbsprite-sugar_cane_generator_11 { background-position: -132px 0}.sbsprite-sugar_cane_generator_10 { background-position: -154px 0}.sbsprite-small_shelves { background-position: -176px 0}.sbsprite-bingo_talisman { background-position: -198px 0}.sbsprite-red_scarf { background-position: -220px 0}.sbsprite-wither_helmet { background-position: -242px 0}.sbsprite-glowstone_generator_11 { background-position: -264px 0}.sbsprite-glowstone_generator_10 { background-position: -286px 0}.sbsprite-fast_travel_crypt { background-position: -308px 0}.sbsprite-present_personality { background-position: -330px 0}.sbsprite-extra_large_gemstone_sack { background-position: -352px 0}.sbsprite-gold_bonzo_head { background-position: -374px 0}.sbsprite-shadow_assassin_mauve { background-position: -396px 0}.sbsprite-ender_artifact { background-position: -418px 0}.sbsprite-sheep_generator_1 { background-position: -440px 0}.sbsprite-beach_chair_plus { background-position: -462px 0}.sbsprite-sheep_generator_2 { background-position: -484px 0}.sbsprite-sheep_generator_3 { background-position: -506px 0}.sbsprite-sheep_generator_4 { background-position: -528px 0}.sbsprite-sheep_generator_5 { background-position: -550px 0}.sbsprite-sheep_generator_6 { background-position: -572px 0}.sbsprite-frozen_spider { background-position: -594px 0}.sbsprite-sheep_generator_7 { background-position: -616px 0}.sbsprite-sheep_generator_8 { background-position: -638px 0}.sbsprite-sheep_generator_9 { background-position: -660px 0}.sbsprite-nether_wart_island_crystal { background-position: -682px 0}.sbsprite-medium_fishing_sack { background-position: -704px 0}.sbsprite-gold_generator_9 { background-position: -726px 0}.sbsprite-gold_generator_7 { background-position: -748px 0}.sbsprite-gold_generator_8 { background-position: -770px 0}.sbsprite-gold_generator_5 { background-position: -792px 0}.sbsprite-penguin_10 { background-position: -814px 0}.sbsprite-diver_helmet { background-position: -836px 0}.sbsprite-gold_generator_6 { background-position: -858px 0}.sbsprite-penguin_11 { background-position: -880px 0}.sbsprite-gold_generator_3 { background-position: -902px 0}.sbsprite-gold_generator_4 { background-position: -924px 0}.sbsprite-pet_skin_sheep_purple { background-position: -946px 0}.sbsprite-gold_generator_1 { background-position: -968px 0}.sbsprite-gold_generator_2 { background-position: -990px 0}.sbsprite-jar_of_pickles { background-position: -1012px 0}.sbsprite-griffin_upgrade_stone_legendary { background-position: -1034px 0}.sbsprite-pet_skin_sheep_orange { background-position: 0 -22px}.sbsprite-talisman { background-position: -22px -22px}.sbsprite-jungle_generator_7 { background-position: -44px -22px}.sbsprite-jungle_generator_6 { background-position: -66px -22px}.sbsprite-tutti_frutti_poison { background-position: -88px -22px}.sbsprite-fishing_generator_11 { background-position: -110px -22px}.sbsprite-jungle_generator_9 { background-position: -132px -22px}.sbsprite-fishing_generator_10 { background-position: -154px -22px}.sbsprite-jungle_generator_8 { background-position: -176px -22px}.sbsprite-jungle_generator_3 { background-position: -198px -22px}.sbsprite-witch_mask { background-position: -220px -22px}.sbsprite-yellow { background-position: -242px -22px}.sbsprite-jungle_generator_2 { background-position: -264px -22px}.sbsprite-jungle_generator_5 { background-position: -286px -22px}.sbsprite-jungle_generator_4 { background-position: -308px -22px}.sbsprite-bat_person_artifact { background-position: -330px -22px}.sbsprite-cocoa_generator_11 { background-position: -352px -22px}.sbsprite-cocoa_generator_12 { background-position: -374px -22px}.sbsprite-jungle_generator_1 { background-position: -396px -22px}.sbsprite-cocoa_generator_10 { background-position: -418px -22px}.sbsprite-beheaded_horror { background-position: -440px -22px}.sbsprite-clay_generator_6 { background-position: -462px -22px}.sbsprite-clay_generator_7 { background-position: -484px -22px}.sbsprite-clay_generator_8 { background-position: -506px -22px}.sbsprite-clay_generator_9 { background-position: -528px -22px}.sbsprite-clay_generator_2 { background-position: -550px -22px}.sbsprite-clay_generator_3 { background-position: -572px -22px}.sbsprite-clay_generator_4 { background-position: -594px -22px}.sbsprite-clay_generator_5 { background-position: -616px -22px}.sbsprite-gold_livid_head { background-position: -638px -22px}.sbsprite-clay_generator_1 { background-position: -660px -22px}.sbsprite-medium_slayer_sack { background-position: -682px -22px}.sbsprite-pet_skin_wither { background-position: -704px -22px}.sbsprite-pink_frosted_donut_3 { background-position: -726px -22px}.sbsprite-pink_frosted_donut_2 { background-position: -748px -22px}.sbsprite-pink_frosted_donut_5 { background-position: -770px -22px}.sbsprite-garland { background-position: -792px -22px}.sbsprite-pink_frosted_donut_4 { background-position: -814px -22px}.sbsprite-pink_frosted_donut_7 { background-position: -836px -22px}.sbsprite-pink_frosted_donut_6 { background-position: -858px -22px}.sbsprite-pink_frosted_donut_9 { background-position: -880px -22px}.sbsprite-pink_frosted_donut_8 { background-position: -902px -22px}.sbsprite-rune_jerry { background-position: -924px -22px}.sbsprite-feather_ring { background-position: -946px -22px}.sbsprite-perfect_forge { background-position: -968px -22px}.sbsprite-bingo_relic { background-position: -990px -22px}.sbsprite-revenant_catalyst { background-position: -1012px -22px}.sbsprite-sun_2 { background-position: -1034px -22px}.sbsprite-sun_1 { background-position: 0 -44px}.sbsprite-pet_skin_tiger_twilight { background-position: -22px -44px}.sbsprite-blessing_of_life { background-position: -44px -44px}.sbsprite-plasma { background-position: -66px -44px}.sbsprite-carrot_patch { background-position: -88px -44px}.sbsprite-pink_frosted_donut_1 { background-position: -110px -44px}.sbsprite-bestiary_the_park { background-position: -132px -44px}.sbsprite-end_stone_10 { background-position: -154px -44px}.sbsprite-end_stone_11 { background-position: -176px -44px}.sbsprite-griffin_upgrade_stone_epic { background-position: -198px -44px}.sbsprite-iron_generator_10 { background-position: -220px -44px}.sbsprite-pet_skin_rock_embarrassed { background-position: -242px -44px}.sbsprite-fast_travel_barn { background-position: -264px -44px}.sbsprite-iron_generator_11 { background-position: -286px -44px}.sbsprite-iron_generator_12 { background-position: -308px -44px}.sbsprite-large_runes_sack { background-position: -330px -44px}.sbsprite-rune_redstone { background-position: -352px -44px}.sbsprite-horseman_candle { background-position: -374px -44px}.sbsprite-tepid_green_tea { background-position: -396px -44px}.sbsprite-large_agronomy_sack { background-position: -418px -44px}.sbsprite-wise_shimmer { background-position: -440px -44px}.sbsprite-maxor_the_fish { background-position: -462px -44px}.sbsprite-revenant_generator_4 { background-position: -484px -44px}.sbsprite-revenant_generator_5 { background-position: -506px -44px}.sbsprite-revenant_generator_6 { background-position: -528px -44px}.sbsprite-revenant_generator_7 { background-position: -550px -44px}.sbsprite-revenant_generator_1 { background-position: -572px -44px}.sbsprite-revenant_generator_2 { background-position: -594px -44px}.sbsprite-epoch_cake_orange { background-position: -616px -44px}.sbsprite-revenant_generator_3 { background-position: -638px -44px}.sbsprite-large_gemstone_sack { background-position: -660px -44px}.sbsprite-mender_crown { background-position: -682px -44px}.sbsprite-mummy_10 { background-position: -704px -44px}.sbsprite-revenant_generator_8 { background-position: -726px -44px}.sbsprite-revenant_generator_9 { background-position: -748px -44px}.sbsprite-mummy_11 { background-position: -770px -44px}.sbsprite-hard_stone_generator_9 { background-position: -792px -44px}.sbsprite-hard_stone_generator_8 { background-position: -814px -44px}.sbsprite-hard_stone_generator_7 { background-position: -836px -44px}.sbsprite-hard_stone_generator_6 { background-position: -858px -44px}.sbsprite-hard_stone_generator_5 { background-position: -880px -44px}.sbsprite-hard_stone_generator_4 { background-position: -902px -44px}.sbsprite-medium_talisman_bag { background-position: -924px -44px}.sbsprite-hard_stone_generator_3 { background-position: -946px -44px}.sbsprite-black_small_backpack { background-position: -968px -44px}.sbsprite-hard_stone_generator_2 { background-position: -990px -44px}.sbsprite-harp { background-position: -1012px -44px}.sbsprite-hard_stone_generator_1 { background-position: -1034px -44px}.sbsprite-pet_skin_sheep_green { background-position: 0 -66px}.sbsprite-magma_cube_generator_10 { background-position: -22px -66px}.sbsprite-fishing_crystal { background-position: -44px -66px}.sbsprite-magma_cube_generator_11 { background-position: -66px -66px}.sbsprite-rough_amber_gem { background-position: -88px -66px}.sbsprite-oak_generator_5 { background-position: -110px -66px}.sbsprite-oak_generator_4 { background-position: -132px -66px}.sbsprite-oak_generator_3 { background-position: -154px -66px}.sbsprite-oak_generator_2 { background-position: -176px -66px}.sbsprite-red_claw_ring { background-position: -198px -66px}.sbsprite-oak_generator_9 { background-position: -220px -66px}.sbsprite-oak_generator_8 { background-position: -242px -66px}.sbsprite-purple_small_backpack { background-position: -264px -66px}.sbsprite-oak_generator_7 { background-position: -286px -66px}.sbsprite-oak_generator_6 { background-position: -308px -66px}.sbsprite-picnic_set { background-position: -330px -66px}.sbsprite-oak_generator_1 { background-position: -352px -66px}.sbsprite-pet_skin_sheep_neon_red { background-position: -374px -66px}.sbsprite-hot_stuff { background-position: -396px -66px}.sbsprite-skeleton_generator_11 { background-position: -418px -66px}.sbsprite-skeleton_generator_10 { background-position: -440px -66px}.sbsprite-mayor_jerry { background-position: -462px -66px}.sbsprite-generals_armor_of_the_resistance_helmet { background-position: -484px -66px}.sbsprite-recall_potion { background-position: -506px -66px}.sbsprite-portable_builder { background-position: -528px -66px}.sbsprite-rune_ice { background-position: -550px -66px}.sbsprite-zombie_brain_mixin { background-position: -572px -66px}.sbsprite-pet_skin_rabbit_aquamarine { background-position: -594px -66px}.sbsprite-rune_music { background-position: -616px -66px}.sbsprite-magnetic_talisman { background-position: -638px -66px}.sbsprite-light_grey_jumbo_backpack { background-position: -660px -66px}.sbsprite-onyx { background-position: -682px -66px}.sbsprite-rune_fire { background-position: -704px -66px}.sbsprite-pet_skin_sheep_black { background-position: -726px -66px}.sbsprite-ice_fireplace { background-position: -748px -66px}.sbsprite-sun_personality { background-position: -770px -66px}.sbsprite-pet { background-position: -792px -66px}.sbsprite-melon_2 { background-position: -814px -66px}.sbsprite-melon_3 { background-position: -836px -66px}.sbsprite-epoch_cake_purple { background-position: -858px -66px}.sbsprite-melon_1 { background-position: -880px -66px}.sbsprite-krampus_helmet { background-position: -902px -66px}.sbsprite-coffee_table { background-position: -924px -66px}.sbsprite-necromancer_lord_helmet { background-position: -946px -66px}.sbsprite-melon_8 { background-position: -968px -66px}.sbsprite-blue_ice_hunk { background-position: -990px -66px}.sbsprite-divan_helmet { background-position: -1012px -66px}.sbsprite-melon_9 { background-position: -1034px -66px}.sbsprite-melon_6 { background-position: 0 -88px}.sbsprite-melon_7 { background-position: -22px -88px}.sbsprite-melon_4 { background-position: -44px -88px}.sbsprite-melon_5 { background-position: -66px -88px}.sbsprite-blue_candy { background-position: -88px -88px}.sbsprite-squid_hat { background-position: -110px -88px}.sbsprite-dungeon_green_support_orb { background-position: -132px -88px}.sbsprite-coin_diamond_3 { background-position: -154px -88px}.sbsprite-pink { background-position: -176px -88px}.sbsprite-coin_diamond_2 { background-position: -198px -88px}.sbsprite-repelling_candle { background-position: -220px -88px}.sbsprite-enderman_generator_11 { background-position: -242px -88px}.sbsprite-power_artifact { background-position: -264px -88px}.sbsprite-enderman_generator_10 { background-position: -286px -88px}.sbsprite-amethyst_crystal { background-position: -308px -88px}.sbsprite-crimson_essence { background-position: -330px -88px}.sbsprite-blue_small_backpack { background-position: -352px -88px}.sbsprite-grey_jumbo_backpack { background-position: -374px -88px}.sbsprite-wither_essence { background-position: -396px -88px}.sbsprite-brown_jumbo_backpack { background-position: -418px -88px}.sbsprite-archer_dungeon_ability_1 { background-position: -440px -88px}.sbsprite-crochet_tiger_plushie { background-position: -462px -88px}.sbsprite-final_destination_helmet { background-position: -484px -88px}.sbsprite-luxurious_spool { background-position: -506px -88px}.sbsprite-auto_recombobulator { background-position: -528px -88px}.sbsprite-killer_11 { background-position: -550px -88px}.sbsprite-spooky_bait { background-position: -572px -88px}.sbsprite-killer_10 { background-position: -594px -88px}.sbsprite-fast_travel_howl { background-position: -616px -88px}.sbsprite-etherwarp_conduit { background-position: -638px -88px}.sbsprite-forest_island_crystal { background-position: -660px -88px}.sbsprite-spirit_mask { background-position: -682px -88px}.sbsprite-sacks { background-position: -704px -88px}.sbsprite-obsidian_generator_10 { background-position: -726px -88px}.sbsprite-chicken_generator_10 { background-position: -748px -88px}.sbsprite-chicken_generator_12 { background-position: -770px -88px}.sbsprite-wood_singularity { background-position: -792px -88px}.sbsprite-chicken_generator_11 { background-position: -814px -88px}.sbsprite-sun_6 { background-position: -836px -88px}.sbsprite-builder_melon { background-position: -858px -88px}.sbsprite-santa_1 { background-position: -880px -88px}.sbsprite-sun_5 { background-position: -902px -88px}.sbsprite-dirt_bottle { background-position: -924px -88px}.sbsprite-sun_4 { background-position: -946px -88px}.sbsprite-handy_blood_chalice { background-position: -968px -88px}.sbsprite-sun_3 { background-position: -990px -88px}.sbsprite-sun_9 { background-position: -1012px -88px}.sbsprite-superior_fragment { background-position: -1034px -88px}.sbsprite-sun_8 { background-position: 0 -110px}.sbsprite-sun_7 { background-position: -22px -110px}.sbsprite-your_essence { background-position: -44px -110px}.sbsprite-pink_greater_backpack { background-position: -66px -110px}.sbsprite-unstable_fragment { background-position: -88px -110px}.sbsprite-obsidian_generator_11 { background-position: -110px -110px}.sbsprite-obsidian_generator_12 { background-position: -132px -110px}.sbsprite-perfect_sapphire_gem { background-position: -154px -110px}.sbsprite-gravel_generator_11 { background-position: -176px -110px}.sbsprite-gravel_generator_10 { background-position: -198px -110px}.sbsprite-candy_corn { background-position: -220px -110px}.sbsprite-mineral_talisman { background-position: -242px -110px}.sbsprite-divan_alloy { background-position: -264px -110px}.sbsprite-moil_log { background-position: -286px -110px}.sbsprite-super_magic_mushroom_soup { background-position: -308px -110px}.sbsprite-easter_basket { background-position: -330px -110px}.sbsprite-hunter_talisman { background-position: -352px -110px}.sbsprite-medium_potion_bag { background-position: -374px -110px}.sbsprite-pet_skin_megalodon_bullhead { background-position: -396px -110px}.sbsprite-broken_piggy_bank { background-position: -418px -110px}.sbsprite-mayor_technoblade { background-position: -440px -110px}.sbsprite-farming_talisman { background-position: -462px -110px}.sbsprite-flawed_sapphire_gem { background-position: -484px -110px}.sbsprite-light_blue_large_backpack { background-position: -506px -110px}.sbsprite-kindred { background-position: -528px -110px}.sbsprite-pocket_espresso_machine { background-position: -550px -110px}.sbsprite-overflux_power_orb { background-position: -572px -110px}.sbsprite-potato_spreading { background-position: -594px -110px}.sbsprite-acacia_generator_11 { background-position: -616px -110px}.sbsprite-birch_generator_6 { background-position: -638px -110px}.sbsprite-acacia_generator_10 { background-position: -660px -110px}.sbsprite-birch_generator_5 { background-position: -682px -110px}.sbsprite-birch_generator_4 { background-position: -704px -110px}.sbsprite-birch_generator_3 { background-position: -726px -110px}.sbsprite-holy_dragon_helmet { background-position: -748px -110px}.sbsprite-basketball_personality { background-position: -770px -110px}.sbsprite-birch_generator_9 { background-position: -792px -110px}.sbsprite-birch_generator_8 { background-position: -814px -110px}.sbsprite-birch_generator_7 { background-position: -836px -110px}.sbsprite-birch_generator_2 { background-position: -858px -110px}.sbsprite-birch_generator_1 { background-position: -880px -110px}.sbsprite-anubis { background-position: -902px -110px}.sbsprite-santa_8 { background-position: -924px -110px}.sbsprite-santa_9 { background-position: -946px -110px}.sbsprite-santa_6 { background-position: -968px -110px}.sbsprite-santa_7 { background-position: -990px -110px}.sbsprite-santa_4 { background-position: -1012px -110px}.sbsprite-candy_talisman { background-position: -1034px -110px}.sbsprite-santa_5 { background-position: 0 -132px}.sbsprite-santa_2 { background-position: -22px -132px}.sbsprite-santa_3 { background-position: -44px -132px}.sbsprite-small_combat_sack { background-position: -66px -132px}.sbsprite-speed_racer { background-position: -88px -132px}.sbsprite-pet_skin_parrot_blue_macaw { background-position: -110px -132px}.sbsprite-red_large_backpack { background-position: -132px -132px}.sbsprite-sea_archer_helmet { background-position: -154px -132px}.sbsprite-happy_mask { background-position: -176px -132px}.sbsprite-blue_large_backpack { background-position: -198px -132px}.sbsprite-enderman_generator_4 { background-position: -220px -132px}.sbsprite-enderman_generator_3 { background-position: -242px -132px}.sbsprite-enderman_generator_2 { background-position: -264px -132px}.sbsprite-enderman_generator_1 { background-position: -286px -132px}.sbsprite-enderman_generator_8 { background-position: -308px -132px}.sbsprite-enderman_generator_7 { background-position: -330px -132px}.sbsprite-enderman_generator_6 { background-position: -352px -132px}.sbsprite-enderman_generator_5 { background-position: -374px -132px}.sbsprite-green_candy { background-position: -396px -132px}.sbsprite-bestiary_milestone { background-position: -418px -132px}.sbsprite-colossal_exp_bottle_upgrade { background-position: -440px -132px}.sbsprite-sun_11 { background-position: -462px -132px}.sbsprite-sun_10 { background-position: -484px -132px}.sbsprite-vampire_witch_mask { background-position: -506px -132px}.sbsprite-pet_skin_sheep_yellow { background-position: -528px -132px}.sbsprite-bank_upgrade_palatial { background-position: -550px -132px}.sbsprite-flawed_ruby_gem { background-position: -572px -132px}.sbsprite-redstone_generator_9 { background-position: -594px -132px}.sbsprite-redstone_generator_7 { background-position: -616px -132px}.sbsprite-redstone_generator_8 { background-position: -638px -132px}.sbsprite-arachne_fragment { background-position: -660px -132px}.sbsprite-spider_generator_10 { background-position: -682px -132px}.sbsprite-spider_generator_11 { background-position: -704px -132px}.sbsprite-epoch_cake_red { background-position: -726px -132px}.sbsprite-orange_jumbo_backpack { background-position: -748px -132px}.sbsprite-giant_the_fish { background-position: -770px -132px}.sbsprite-minnow_bait { background-position: -792px -132px}.sbsprite-enderman_generator_9 { background-position: -814px -132px}.sbsprite-mastiff_puppy { background-position: -836px -132px}.sbsprite-talisman_enrichment_critical_damage { background-position: -858px -132px}.sbsprite-fast_travel_forge { background-position: -880px -132px}.sbsprite-goblin_omelette { background-position: -902px -132px}.sbsprite-builder_ancient_fruit { background-position: -924px -132px}.sbsprite-master_skull_tier_10 { background-position: -946px -132px}.sbsprite-hardened_wood { background-position: -968px -132px}.sbsprite-large_winter_sack { background-position: -990px -132px}.sbsprite-talisman_enrichment_intelligence { background-position: -1012px -132px}.sbsprite-snow_snowglobe { background-position: -1034px -132px}.sbsprite-summoning_eye { background-position: 0 -154px}.sbsprite-cavespider_generator_10 { background-position: -22px -154px}.sbsprite-clownfish_10 { background-position: -44px -154px}.sbsprite-cavespider_generator_11 { background-position: -66px -154px}.sbsprite-revenant_generator_12 { background-position: -88px -154px}.sbsprite-clownfish_11 { background-position: -110px -154px}.sbsprite-revenant_generator_11 { background-position: -132px -154px}.sbsprite-revenant_generator_10 { background-position: -154px -154px}.sbsprite-red_small_backpack { background-position: -176px -154px}.sbsprite-soulflow { background-position: -198px -154px}.sbsprite-farming_fortune { background-position: -220px -154px}.sbsprite-dungeon_stone_berserk { background-position: -242px -154px}.sbsprite-green_greater_backpack { background-position: -264px -154px}.sbsprite-mastiff_helmet { background-position: -286px -154px}.sbsprite-purple { background-position: -308px -154px}.sbsprite-skeleton_generator_7 { background-position: -330px -154px}.sbsprite-skeleton_generator_6 { background-position: -352px -154px}.sbsprite-skeleton_generator_9 { background-position: -374px -154px}.sbsprite-skeleton_generator_8 { background-position: -396px -154px}.sbsprite-speed_ring { background-position: -418px -154px}.sbsprite-skeleton_generator_3 { background-position: -440px -154px}.sbsprite-rabbit_hutch { background-position: -462px -154px}.sbsprite-skeleton_generator_2 { background-position: -484px -154px}.sbsprite-skeleton_generator_5 { background-position: -506px -154px}.sbsprite-minion_storage_expander { background-position: -528px -154px}.sbsprite-skeleton_generator_4 { background-position: -550px -154px}.sbsprite-werewolf_helmet { background-position: -572px -154px}.sbsprite-light_blue_small_backpack { background-position: -594px -154px}.sbsprite-skeleton_generator_1 { background-position: -616px -154px}.sbsprite-lapis_chest { background-position: -638px -154px}.sbsprite-healing_talisman { background-position: -660px -154px}.sbsprite-magma_cube_head { background-position: -682px -154px}.sbsprite-shadow_goggles { background-position: -704px -154px}.sbsprite-ice_generator_11 { background-position: -726px -154px}.sbsprite-fine_jasper_gem { background-position: -748px -154px}.sbsprite-candy_artifact { background-position: -770px -154px}.sbsprite-pet_skin_dragon_neon_blue { background-position: -792px -154px}.sbsprite-fast_travel_desert { background-position: -814px -154px}.sbsprite-rune_end { background-position: -836px -154px}.sbsprite-old_shimmer { background-position: -858px -154px}.sbsprite-skyblock_bench { background-position: -880px -154px}.sbsprite-hay_bale { background-position: -902px -154px}.sbsprite-crit_chance { background-position: -924px -154px}.sbsprite-dungeon_stone { background-position: -946px -154px}.sbsprite-artifact_potion_affinity { background-position: -968px -154px}.sbsprite-yoggie { background-position: -990px -154px}.sbsprite-starred_adaptive_helmet { background-position: -1012px -154px}.sbsprite-foraging_3_portal { background-position: -1034px -154px}.sbsprite-pet_skin_dragon_neon_red { background-position: 0 -176px}.sbsprite-ditto_skull { background-position: -22px -176px}.sbsprite-pig_generator_6 { background-position: -44px -176px}.sbsprite-redstone_generator_1 { background-position: -66px -176px}.sbsprite-pig_generator_5 { background-position: -88px -176px}.sbsprite-redstone_generator_2 { background-position: -110px -176px}.sbsprite-pig_generator_8 { background-position: -132px -176px}.sbsprite-pig_generator_7 { background-position: -154px -176px}.sbsprite-flawless_amethyst_gem { background-position: -176px -176px}.sbsprite-redstone_generator_5 { background-position: -198px -176px}.sbsprite-wither_catalyst { background-position: -220px -176px}.sbsprite-pig_generator_9 { background-position: -242px -176px}.sbsprite-redstone_generator_6 { background-position: -264px -176px}.sbsprite-cyan_jumbo_backpack { background-position: -286px -176px}.sbsprite-redstone_generator_3 { background-position: -308px -176px}.sbsprite-redstone_generator_4 { background-position: -330px -176px}.sbsprite-ice_generator_10 { background-position: -352px -176px}.sbsprite-pig_generator_2 { background-position: -374px -176px}.sbsprite-builder_lettuce { background-position: -396px -176px}.sbsprite-first_master_star { background-position: -418px -176px}.sbsprite-pig_generator_1 { background-position: -440px -176px}.sbsprite-pig_generator_4 { background-position: -462px -176px}.sbsprite-green_medium_backpack { background-position: -484px -176px}.sbsprite-pig_generator_3 { background-position: -506px -176px}.sbsprite-sugar_cane_generator_9 { background-position: -528px -176px}.sbsprite-greater_backpack { background-position: -550px -176px}.sbsprite-sugar_cane_generator_6 { background-position: -572px -176px}.sbsprite-sugar_cane_generator_5 { background-position: -594px -176px}.sbsprite-pet_skin_sheep_neon_blue { background-position: -616px -176px}.sbsprite-sugar_cane_generator_8 { background-position: -638px -176px}.sbsprite-sugar_cane_generator_7 { background-position: -660px -176px}.sbsprite-sugar_cane_generator_2 { background-position: -682px -176px}.sbsprite-sugar_cane_generator_1 { background-position: -704px -176px}.sbsprite-cauldron { background-position: -726px -176px}.sbsprite-sugar_cane_generator_4 { background-position: -748px -176px}.sbsprite-sugar_cane_generator_3 { background-position: -770px -176px}.sbsprite-wheat_island_crystal { background-position: -792px -176px}.sbsprite-boss_collection_scarf { background-position: -814px -176px}.sbsprite-deep_sea_orb { background-position: -836px -176px}.sbsprite-pet_skin_elephant_red { background-position: -858px -176px}.sbsprite-pink_large_backpack { background-position: -880px -176px}.sbsprite-gemstone_collection { background-position: -902px -176px}.sbsprite-carpentry_bench { background-position: -924px -176px}.sbsprite-pet_skin_wolf_henzo_doggo { background-position: -946px -176px}.sbsprite-sloth_11 { background-position: -968px -176px}.sbsprite-sloth_10 { background-position: -990px -176px}.sbsprite-vampire_mask { background-position: -1012px -176px}.sbsprite-reindeer_personality { background-position: -1034px -176px}.sbsprite-minos_hunter_helmet { background-position: 0 -198px}.sbsprite-catacombs_2 { background-position: -22px -198px}.sbsprite-catacombs_3 { background-position: -44px -198px}.sbsprite-catacombs_1 { background-position: -66px -198px}.sbsprite-catacombs_6 { background-position: -88px -198px}.sbsprite-small_runes_sack { background-position: -110px -198px}.sbsprite-catacombs_4 { background-position: -132px -198px}.sbsprite-catacombs_5 { background-position: -154px -198px}.sbsprite-clownfish_hat { background-position: -176px -198px}.sbsprite-fine_topaz_gem { background-position: -198px -198px}.sbsprite-beastmaster_crest_uncommon { background-position: -220px -198px}.sbsprite-superlite_motor { background-position: -242px -198px}.sbsprite-red_greater_backpack { background-position: -264px -198px}.sbsprite-hunter_ring { background-position: -286px -198px}.sbsprite-necromancer_brooch { background-position: -308px -198px}.sbsprite-spooky_shard { background-position: -330px -198px}.sbsprite-grey_medium_backpack { background-position: -352px -198px}.sbsprite-diamond_chest { background-position: -374px -198px}.sbsprite-slime_hat { background-position: -396px -198px}.sbsprite-hermit_crab_2 { background-position: -418px -198px}.sbsprite-enderman_cortex_rewriter { background-position: -440px -198px}.sbsprite-hermit_crab_1 { background-position: -462px -198px}.sbsprite-carrot_generator_11 { background-position: -484px -198px}.sbsprite-carrot_generator_12 { background-position: -506px -198px}.sbsprite-mushroom_generator_4 { background-position: -528px -198px}.sbsprite-carrot_generator_10 { background-position: -550px -198px}.sbsprite-mushroom_generator_3 { background-position: -572px -198px}.sbsprite-mushroom_generator_6 { background-position: -594px -198px}.sbsprite-mushroom_generator_5 { background-position: -616px -198px}.sbsprite-mushroom_generator_8 { background-position: -638px -198px}.sbsprite-mushroom_generator_7 { background-position: -660px -198px}.sbsprite-mushroom_generator_9 { background-position: -682px -198px}.sbsprite-diamond_professor_head { background-position: -704px -198px}.sbsprite-large_foraging_sack { background-position: -726px -198px}.sbsprite-robotron_reflector { background-position: -748px -198px}.sbsprite-wish_ultimate { background-position: -770px -198px}.sbsprite-tessellated_ender_pearl { background-position: -792px -198px}.sbsprite-pet_skin_sheep_red { background-position: -814px -198px}.sbsprite-spirit_decoy { background-position: -836px -198px}.sbsprite-stacked_pumpkins { background-position: -858px -198px}.sbsprite-medium_runes_sack { background-position: -880px -198px}.sbsprite-mushroom_generator_2 { background-position: -902px -198px}.sbsprite-young_dragon_helmet { background-position: -924px -198px}.sbsprite-mushroom_generator_1 { background-position: -946px -198px}.sbsprite-hermit_crab_6 { background-position: -968px -198px}.sbsprite-gravity_talisman { background-position: -990px -198px}.sbsprite-hermit_crab_5 { background-position: -1012px -198px}.sbsprite-hermit_crab_4 { background-position: -1034px -198px}.sbsprite-hermit_crab_3 { background-position: 0 -220px}.sbsprite-melon_10 { background-position: -22px -220px}.sbsprite-party_time_event { background-position: -44px -220px}.sbsprite-grinch_10 { background-position: -66px -220px}.sbsprite-melon_11 { background-position: -88px -220px}.sbsprite-hermit_crab_9 { background-position: -110px -220px}.sbsprite-hermit_crab_8 { background-position: -132px -220px}.sbsprite-grinch_11 { background-position: -154px -220px}.sbsprite-hermit_crab_7 { background-position: -176px -220px}.sbsprite-flower_generator_10 { background-position: -198px -220px}.sbsprite-race_giant_mushroom { background-position: -220px -220px}.sbsprite-flower_generator_11 { background-position: -242px -220px}.sbsprite-flower_generator_12 { background-position: -264px -220px}.sbsprite-redstone_chest { background-position: -286px -220px}.sbsprite-undead_catalyst { background-position: -308px -220px}.sbsprite-master_skull_tier_7 { background-position: -330px -220px}.sbsprite-reindeer_9 { background-position: -352px -220px}.sbsprite-master_skull_tier_6 { background-position: -374px -220px}.sbsprite-rune_slimy { background-position: -396px -220px}.sbsprite-master_skull_tier_9 { background-position: -418px -220px}.sbsprite-medium_shelves { background-position: -440px -220px}.sbsprite-master_skull_tier_8 { background-position: -462px -220px}.sbsprite-plasmaflux_power_orb { background-position: -484px -220px}.sbsprite-adaptive_helmet { background-position: -506px -220px}.sbsprite-pet_skin_endermite_radiant { background-position: -528px -220px}.sbsprite-master_skull_tier_1 { background-position: -550px -220px}.sbsprite-master_skull_tier_3 { background-position: -572px -220px}.sbsprite-oil_barrel { background-position: -594px -220px}.sbsprite-master_skull_tier_2 { background-position: -616px -220px}.sbsprite-master_skull_tier_5 { background-position: -638px -220px}.sbsprite-master_skull_tier_4 { background-position: -660px -220px}.sbsprite-pet_skin_guardian { background-position: -682px -220px}.sbsprite-flawless_jade_gem { background-position: -704px -220px}.sbsprite-survivor_cube { background-position: -726px -220px}.sbsprite-undead_2 { background-position: -748px -220px}.sbsprite-undead_3 { background-position: -770px -220px}.sbsprite-undead_4 { background-position: -792px -220px}.sbsprite-undead_5 { background-position: -814px -220px}.sbsprite-undead_6 { background-position: -836px -220px}.sbsprite-undead_7 { background-position: -858px -220px}.sbsprite-undead_8 { background-position: -880px -220px}.sbsprite-undead_9 { background-position: -902px -220px}.sbsprite-enchanted_book_bundle_vicious { background-position: -924px -220px}.sbsprite-endstone_chest { background-position: -946px -220px}.sbsprite-titanium_fuel_tank { background-position: -968px -220px}.sbsprite-golden_ball { background-position: -990px -220px}.sbsprite-undead_1 { background-position: -1012px -220px}.sbsprite-happy_emoji_5 { background-position: -1034px -220px}.sbsprite-reindeer_1 { background-position: 0 -242px}.sbsprite-warden_heart { background-position: -22px -242px}.sbsprite-happy_emoji_4 { background-position: -44px -242px}.sbsprite-reindeer_2 { background-position: -66px -242px}.sbsprite-happy_emoji_7 { background-position: -88px -242px}.sbsprite-reindeer_3 { background-position: -110px -242px}.sbsprite-happy_emoji_6 { background-position: -132px -242px}.sbsprite-kalhuiki_mask { background-position: -154px -242px}.sbsprite-reindeer_4 { background-position: -176px -242px}.sbsprite-happy_emoji_1 { background-position: -198px -242px}.sbsprite-reindeer_5 { background-position: -220px -242px}.sbsprite-reindeer_6 { background-position: -242px -242px}.sbsprite-happy_emoji_3 { background-position: -264px -242px}.sbsprite-reindeer_7 { background-position: -286px -242px}.sbsprite-happy_emoji_2 { background-position: -308px -242px}.sbsprite-reindeer_8 { background-position: -330px -242px}.sbsprite-happy_emoji_9 { background-position: -352px -242px}.sbsprite-festive_skeleton_personality { background-position: -374px -242px}.sbsprite-happy_emoji_8 { background-position: -396px -242px}.sbsprite-mimic_fragment { background-position: -418px -242px}.sbsprite-pet_skin_parrot_gold_macaw { background-position: -440px -242px}.sbsprite-mithril_drill_engine { background-position: -462px -242px}.sbsprite-titan_helmet { background-position: -484px -242px}.sbsprite-warden_helmet { background-position: -506px -242px}.sbsprite-nether_wart_pouch { background-position: -528px -242px}.sbsprite-red_nose { background-position: -550px -242px}.sbsprite-emerald_generator_12 { background-position: -572px -242px}.sbsprite-farming_1_portal { background-position: -594px -242px}.sbsprite-pet_skin_horse_zombie { background-position: -616px -242px}.sbsprite-devour_ring { background-position: -638px -242px}.sbsprite-mining_1_portal { background-position: -660px -242px}.sbsprite-builder_lilac_fruit { background-position: -682px -242px}.sbsprite-diamond_livid_head { background-position: -704px -242px}.sbsprite-fast_travel_dungeon_hub { background-position: -726px -242px}.sbsprite-emerald_generator_10 { background-position: -748px -242px}.sbsprite-emerald_generator_11 { background-position: -770px -242px}.sbsprite-bestiary_catacombs { background-position: -792px -242px}.sbsprite-fine_amber_gem { background-position: -814px -242px}.sbsprite-beach_ball_personality { background-position: -836px -242px}.sbsprite-cow_generator_11 { background-position: -858px -242px}.sbsprite-cow_generator_12 { background-position: -880px -242px}.sbsprite-mummy_personality { background-position: -902px -242px}.sbsprite-rune_wet { background-position: -924px -242px}.sbsprite-jumbo_backpack_upgrade { background-position: -946px -242px}.sbsprite-shadow_assassin_admiral { background-position: -968px -242px}.sbsprite-beating_heart { background-position: -990px -242px}.sbsprite-giant_tooth { background-position: -1012px -242px}.sbsprite-black_large_backpack { background-position: -1034px -242px}.sbsprite-corleonite { background-position: 0 -264px}.sbsprite-magma_cube_generator_1 { background-position: -22px -264px}.sbsprite-magma_cube_generator_5 { background-position: -44px -264px}.sbsprite-gold_candy { background-position: -66px -264px}.sbsprite-magma_cube_generator_4 { background-position: -88px -264px}.sbsprite-magma_cube_generator_3 { background-position: -110px -264px}.sbsprite-magma_cube_generator_2 { background-position: -132px -264px}.sbsprite-magma_cube_generator_9 { background-position: -154px -264px}.sbsprite-dining_table { background-position: -176px -264px}.sbsprite-magma_cube_generator_8 { background-position: -198px -264px}.sbsprite-magma_cube_generator_7 { background-position: -220px -264px}.sbsprite-magma_cube_generator_6 { background-position: -242px -264px}.sbsprite-sadan_brooch { background-position: -264px -264px}.sbsprite-birch_generator_11 { background-position: -286px -264px}.sbsprite-birch_generator_10 { background-position: -308px -264px}.sbsprite-strong_dragon_helmet { background-position: -330px -264px}.sbsprite-greater_enchanted_chest_upgrade { background-position: -352px -264px}.sbsprite-pink_frosted_donut_11 { background-position: -374px -264px}.sbsprite-molten_cube { background-position: -396px -264px}.sbsprite-pink_frosted_donut_10 { background-position: -418px -264px}.sbsprite-ultimate_carrot_candy_upgrade { background-position: -440px -264px}.sbsprite-old_baby { background-position: -462px -264px}.sbsprite-coin_lapis { background-position: -484px -264px}.sbsprite-superior_shimmer { background-position: -506px -264px}.sbsprite-diver_fragment { background-position: -528px -264px}.sbsprite-blue_greater_backpack { background-position: -550px -264px}.sbsprite-piggy_bank { background-position: -572px -264px}.sbsprite-flawed_jade_gem { background-position: -594px -264px}.sbsprite-dungeon_boss_key { background-position: -616px -264px}.sbsprite-spider_catalyst { background-position: -638px -264px}.sbsprite-shark_scale_helmet { background-position: -660px -264px}.sbsprite-ghost_book { background-position: -682px -264px}.sbsprite-titanium_alloy { background-position: -704px -264px}.sbsprite-pet_skin_enderman_slayer { background-position: -726px -264px}.sbsprite-hegemony_artifact { background-position: -748px -264px}.sbsprite-potion_affinity_talisman { background-position: -770px -264px}.sbsprite-trick_or_treat_bag { background-position: -792px -264px}.sbsprite-fake_gold_ring { background-position: -814px -264px}.sbsprite-dr_paper { background-position: -836px -264px}.sbsprite-fuel_tank { background-position: -858px -264px}.sbsprite-rough_amethyst_gem { background-position: -880px -264px}.sbsprite-flawless_sapphire_gem { background-position: -902px -264px}.sbsprite-pink_small_backpack { background-position: -924px -264px}.sbsprite-cow_generator_10 { background-position: -946px -264px}.sbsprite-mithril_infusion { background-position: -968px -264px}.sbsprite-beastmaster_crest_common { background-position: -990px -264px}.sbsprite-shiny_relic { background-position: -1012px -264px}.sbsprite-concentrated_stone { background-position: -1034px -264px}.sbsprite-sloth_personality { background-position: 0 -286px}.sbsprite-stocking { background-position: -22px -286px}.sbsprite-egg_pile { background-position: -44px -286px}.sbsprite-blessing_of_wisdom { background-position: -66px -286px}.sbsprite-happy_snowman { background-position: -88px -286px}.sbsprite-gingerbread_10 { background-position: -110px -286px}.sbsprite-gingerbread_11 { background-position: -132px -286px}.sbsprite-diamond_generator_11 { background-position: -154px -286px}.sbsprite-diamond_generator_10 { background-position: -176px -286px}.sbsprite-medium_backpack { background-position: -198px -286px}.sbsprite-rune_white_spiral { background-position: -220px -286px}.sbsprite-diamond_generator_12 { background-position: -242px -286px}.sbsprite-blacksmith_plus { background-position: -264px -286px}.sbsprite-light_blue_greater_backpack { background-position: -286px -286px}.sbsprite-watcher_eye { background-position: -308px -286px}.sbsprite-pet_skin_silverfish { background-position: -330px -286px}.sbsprite-rough_ruby_gem { background-position: -352px -286px}.sbsprite-fine_amethyst_gem { background-position: -374px -286px}.sbsprite-flawed_topaz_gem { background-position: -396px -286px}.sbsprite-spirit_bone { background-position: -418px -286px}.sbsprite-snow_blaster { background-position: -440px -286px}.sbsprite-unknown_item { background-position: -462px -286px}.sbsprite-spider_essence { background-position: -484px -286px}.sbsprite-light_bait { background-position: -506px -286px}.sbsprite-beastmaster_crest_legendary { background-position: -528px -286px}.sbsprite-mayor_diana { background-position: -550px -286px}.sbsprite-enchanted_jack_o_lantern { background-position: -572px -286px}.sbsprite-medium_foraging_sack { background-position: -594px -286px}.sbsprite-emerald_chest { background-position: -616px -286px}.sbsprite-carrot_generator_6 { background-position: -638px -286px}.sbsprite-reindeer_11 { background-position: -660px -286px}.sbsprite-carrot_generator_7 { background-position: -682px -286px}.sbsprite-reindeer_10 { background-position: -704px -286px}.sbsprite-carrot_generator_4 { background-position: -726px -286px}.sbsprite-carrot_generator_5 { background-position: -748px -286px}.sbsprite-carrot_generator_2 { background-position: -770px -286px}.sbsprite-carrot_generator_3 { background-position: -792px -286px}.sbsprite-carrot_generator_1 { background-position: -814px -286px}.sbsprite-carrot_generator_8 { background-position: -836px -286px}.sbsprite-dragon_scale { background-position: -858px -286px}.sbsprite-carrot_generator_9 { background-position: -880px -286px}.sbsprite-protector_dragon_helmet { background-position: -902px -286px}.sbsprite-rune_hearts { background-position: -924px -286px}.sbsprite-pet_skin_sheep_magenta { background-position: -946px -286px}.sbsprite-shadow_assassin_helmet { background-position: -968px -286px}.sbsprite-gemstone_gauntlet_gold { background-position: -990px -286px}.sbsprite-lucky_dice { background-position: -1012px -286px}.sbsprite-wolf_ring { background-position: -1034px -286px}.sbsprite-haunt_ability { background-position: 0 -308px}.sbsprite-undead_essence { background-position: -22px -308px}.sbsprite-bitter_ice_tea { background-position: -44px -308px}.sbsprite-beastmaster_crest_rare { background-position: -66px -308px}.sbsprite-enchanted_titanium { background-position: -88px -308px}.sbsprite-red_claw_talisman { background-position: -110px -308px}.sbsprite-intimidation_talisman { background-position: -132px -308px}.sbsprite-ice_bait { background-position: -154px -308px}.sbsprite-empty_soda_can { background-position: -176px -308px}.sbsprite-jerry_candy { background-position: -198px -308px}.sbsprite-ghast_generator_3 { background-position: -220px -308px}.sbsprite-fancy_flower_pot { background-position: -242px -308px}.sbsprite-ghast_generator_2 { background-position: -264px -308px}.sbsprite-cyan_greater_backpack { background-position: -286px -308px}.sbsprite-ghast_generator_5 { background-position: -308px -308px}.sbsprite-ghast_generator_4 { background-position: -330px -308px}.sbsprite-ghast_generator_7 { background-position: -352px -308px}.sbsprite-cold_ones { background-position: -374px -308px}.sbsprite-ghast_generator_6 { background-position: -396px -308px}.sbsprite-mega_jerry_lure { background-position: -418px -308px}.sbsprite-ghast_generator_9 { background-position: -440px -308px}.sbsprite-rune_smokey { background-position: -462px -308px}.sbsprite-ghast_generator_8 { background-position: -484px -308px}.sbsprite-healer_dungeon_ability_2 { background-position: -506px -308px}.sbsprite-healer_dungeon_ability_3 { background-position: -528px -308px}.sbsprite-ghast_generator_1 { background-position: -550px -308px}.sbsprite-brown_medium_backpack { background-position: -572px -308px}.sbsprite-healer_dungeon_ability_1 { background-position: -594px -308px}.sbsprite-ice_cream_2 { background-position: -616px -308px}.sbsprite-ice_cream_1 { background-position: -638px -308px}.sbsprite-ice_cream_4 { background-position: -660px -308px}.sbsprite-ice_cream_3 { background-position: -682px -308px}.sbsprite-ice_cream_6 { background-position: -704px -308px}.sbsprite-ice_cream_5 { background-position: -726px -308px}.sbsprite-ice_cream_8 { background-position: -748px -308px}.sbsprite-ice_cream_7 { background-position: -770px -308px}.sbsprite-ice_cream_9 { background-position: -792px -308px}.sbsprite-ice_cream_10 { background-position: -814px -308px}.sbsprite-ice_cream_11 { background-position: -836px -308px}.sbsprite-coin_iron { background-position: -858px -308px}.sbsprite-chewed_gum { background-position: -880px -308px}.sbsprite-training_weights { background-position: -902px -308px}.sbsprite-orange_large_backpack { background-position: -924px -308px}.sbsprite-campfire_talisman_24 { background-position: -946px -308px}.sbsprite-campfire_talisman_25 { background-position: -968px -308px}.sbsprite-campfire_talisman_26 { background-position: -990px -308px}.sbsprite-campfire_talisman_27 { background-position: -1012px -308px}.sbsprite-campfire_talisman_28 { background-position: -1034px -308px}.sbsprite-campfire_talisman_29 { background-position: 0 -330px}.sbsprite-candle_table { background-position: -22px -330px}.sbsprite-jingle_bells { background-position: -44px -330px}.sbsprite-lynx_talisman { background-position: -66px -330px}.sbsprite-campfire_talisman_20 { background-position: -88px -330px}.sbsprite-campfire_talisman_21 { background-position: -110px -330px}.sbsprite-campfire_talisman_22 { background-position: -132px -330px}.sbsprite-campfire_talisman_23 { background-position: -154px -330px}.sbsprite-perfect_ruby_gem { background-position: -176px -330px}.sbsprite-pet_skin_megalodon_baby { background-position: -198px -330px}.sbsprite-jungle_amulet { background-position: -220px -330px}.sbsprite-reaper_mask { background-position: -242px -330px}.sbsprite-enchanting_plus { background-position: -264px -330px}.sbsprite-catacombs_expert_ring { background-position: -286px -330px}.sbsprite-ice_knight_statue { background-position: -308px -330px}.sbsprite-bits_talisman { background-position: -330px -330px}.sbsprite-dark_orb { background-position: -352px -330px}.sbsprite-blessing_of_power { background-position: -374px -330px}.sbsprite-beastmaster_crest_epic { background-position: -396px -330px}.sbsprite-bulky_stone { background-position: -418px -330px}.sbsprite-yellow_small_backpack { background-position: -440px -330px}.sbsprite-small_potion_bag { background-position: -462px -330px}.sbsprite-green_jumbo_backpack { background-position: -484px -330px}.sbsprite-zombie_heart { background-position: -506px -330px}.sbsprite-pet_skin_black_cat_ivory { background-position: -528px -330px}.sbsprite-titanium_relic { background-position: -550px -330px}.sbsprite-fast_travel_jungle { background-position: -572px -330px}.sbsprite-pet_skin_rabbit { background-position: -594px -330px}.sbsprite-enderman_mask { background-position: -616px -330px}.sbsprite-perfect_amethyst_gem { background-position: -638px -330px}.sbsprite-boss_collection_sadan { background-position: -660px -330px}.sbsprite-blessing_of_stone { background-position: -682px -330px}.sbsprite-master_catacombs_pass_0 { background-position: -704px -330px}.sbsprite-snowman { background-position: -726px -330px}.sbsprite-candy_the_fish { background-position: -748px -330px}.sbsprite-gold_chest { background-position: -770px -330px}.sbsprite-master_catacombs_pass_6 { background-position: -792px -330px}.sbsprite-master_catacombs_pass_5 { background-position: -814px -330px}.sbsprite-master_catacombs_pass_8 { background-position: -836px -330px}.sbsprite-master_catacombs_pass_7 { background-position: -858px -330px}.sbsprite-master_catacombs_pass_2 { background-position: -880px -330px}.sbsprite-master_catacombs_pass_1 { background-position: -902px -330px}.sbsprite-master_catacombs_pass_4 { background-position: -924px -330px}.sbsprite-master_catacombs_pass_3 { background-position: -946px -330px}.sbsprite-candy_bowl { background-position: -968px -330px}.sbsprite-large_talisman_bag { background-position: -990px -330px}.sbsprite-secret_dungeon_redstone_key { background-position: -1012px -330px}.sbsprite-knockoff_cola { background-position: -1034px -330px}.sbsprite-grinch_2 { background-position: 0 -352px}.sbsprite-grinch_3 { background-position: -22px -352px}.sbsprite-grinch_4 { background-position: -44px -352px}.sbsprite-personal_bank_item { background-position: -66px -352px}.sbsprite-grinch_5 { background-position: -88px -352px}.sbsprite-grinch_6 { background-position: -110px -352px}.sbsprite-blessing_of_time { background-position: -132px -352px}.sbsprite-grinch_7 { background-position: -154px -352px}.sbsprite-grinch_8 { background-position: -176px -352px}.sbsprite-grinch_9 { background-position: -198px -352px}.sbsprite-crit_damage { background-position: -220px -352px}.sbsprite-grinch_1 { background-position: -242px -352px}.sbsprite-bunny_4 { background-position: -264px -352px}.sbsprite-bunny_3 { background-position: -286px -352px}.sbsprite-the_watchers_head { background-position: -308px -352px}.sbsprite-bunny_2 { background-position: -330px -352px}.sbsprite-bunny_1 { background-position: -352px -352px}.sbsprite-bunny_8 { background-position: -374px -352px}.sbsprite-bunny_7 { background-position: -396px -352px}.sbsprite-master_catacombs_pass_9 { background-position: -418px -352px}.sbsprite-bat_person_helmet { background-position: -440px -352px}.sbsprite-bunny_6 { background-position: -462px -352px}.sbsprite-bunny_5 { background-position: -484px -352px}.sbsprite-refined_amber { background-position: -506px -352px}.sbsprite-pet_skin_rock_derp { background-position: -528px -352px}.sbsprite-pet_skin_sheep_gray { background-position: -550px -352px}.sbsprite-flawed_amber_gem { background-position: -572px -352px}.sbsprite-pumpkin_11 { background-position: -594px -352px}.sbsprite-pumpkin_10 { background-position: -616px -352px}.sbsprite-white_small_backpack { background-position: -638px -352px}.sbsprite-blaze_hat { background-position: -660px -352px}.sbsprite-woodcutting_crystal { background-position: -682px -352px}.sbsprite-bunny_9 { background-position: -704px -352px}.sbsprite-roofed_forest_island { background-position: -726px -352px}.sbsprite-campfire_talisman_13 { background-position: -748px -352px}.sbsprite-campfire_talisman_14 { background-position: -770px -352px}.sbsprite-rune_lava { background-position: -792px -352px}.sbsprite-campfire_talisman_15 { background-position: -814px -352px}.sbsprite-campfire_talisman_16 { background-position: -836px -352px}.sbsprite-campfire_talisman_17 { background-position: -858px -352px}.sbsprite-campfire_talisman_18 { background-position: -880px -352px}.sbsprite-golden_dante_statue { background-position: -902px -352px}.sbsprite-campfire_talisman_19 { background-position: -924px -352px}.sbsprite-foraging_4_portal { background-position: -946px -352px}.sbsprite-new_year_cake_bag { background-position: -968px -352px}.sbsprite-santa_personality { background-position: -990px -352px}.sbsprite-campfire_talisman_10 { background-position: -1012px -352px}.sbsprite-campfire_talisman_11 { background-position: -1034px -352px}.sbsprite-campfire_talisman_12 { background-position: 0 -374px}.sbsprite-jerry_stone { background-position: -22px -374px}.sbsprite-cyclops_personality { background-position: -44px -374px}.sbsprite-desert_island_crystal { background-position: -66px -374px}.sbsprite-happy_emoji_personality { background-position: -88px -374px}.sbsprite-rough_sapphire_gem { background-position: -110px -374px}.sbsprite-fallen_star_hat { background-position: -132px -374px}.sbsprite-blaze_generator_10 { background-position: -154px -374px}.sbsprite-blaze_generator_11 { background-position: -176px -374px}.sbsprite-goblin_omelette_blue_cheese { background-position: -198px -374px}.sbsprite-treasure_artifact { background-position: -220px -374px}.sbsprite-hermit_crab_personality { background-position: -242px -374px}.sbsprite-orange { background-position: -264px -374px}.sbsprite-pond_island { background-position: -286px -374px}.sbsprite-fast_travel_void { background-position: -308px -374px}.sbsprite-transmission_tuner { background-position: -330px -374px}.sbsprite-bestiary_the_end { background-position: -352px -374px}.sbsprite-danger_1_portal { background-position: -374px -374px}.sbsprite-pink_jumbo_backpack { background-position: -396px -374px}.sbsprite-sea_walker_helmet { background-position: -418px -374px}.sbsprite-wise_fragment { background-position: -440px -374px}.sbsprite-jerry_talisman_golden { background-position: -462px -374px}.sbsprite-superior_baby { background-position: -484px -374px}.sbsprite-flower_bed { background-position: -506px -374px}.sbsprite-cactus_generator_1 { background-position: -528px -374px}.sbsprite-endstone_geode { background-position: -550px -374px}.sbsprite-holy_baby { background-position: -572px -374px}.sbsprite-cactus_generator_3 { background-position: -594px -374px}.sbsprite-cactus_generator_2 { background-position: -616px -374px}.sbsprite-cactus_generator_5 { background-position: -638px -374px}.sbsprite-cactus_generator_4 { background-position: -660px -374px}.sbsprite-cactus_generator_7 { background-position: -682px -374px}.sbsprite-cactus_generator_6 { background-position: -704px -374px}.sbsprite-cactus_generator_9 { background-position: -726px -374px}.sbsprite-protector_shimmer { background-position: -748px -374px}.sbsprite-cactus_generator_8 { background-position: -770px -374px}.sbsprite-rune_sparkling { background-position: -792px -374px}.sbsprite-bingo_ring { background-position: -814px -374px}.sbsprite-griffin_upgrade_stone_rare { background-position: -836px -374px}.sbsprite-chick_nest { background-position: -858px -374px}.sbsprite-solved_prism { background-position: -880px -374px}.sbsprite-king_talisman { background-position: -902px -374px}.sbsprite-treasure_ring { background-position: -924px -374px}.sbsprite-black_medium_backpack { background-position: -946px -374px}.sbsprite-surfboard { background-position: -968px -374px}.sbsprite-mithril_fuel_tank { background-position: -990px -374px}.sbsprite-fast_travel_home { background-position: -1012px -374px}.sbsprite-water_trough { background-position: -1034px -374px}.sbsprite-mayor_dante { background-position: 0 -396px}.sbsprite-cheese_fuel { background-position: -22px -396px}.sbsprite-pet_skin_lion_lioness { background-position: -44px -396px}.sbsprite-pink_bunny_personality { background-position: -66px -396px}.sbsprite-goldor_the_fish { background-position: -88px -396px}.sbsprite-speed_wither_helmet { background-position: -110px -396px}.sbsprite-pink_medium_backpack { background-position: -132px -396px}.sbsprite-mayor_derpy { background-position: -154px -396px}.sbsprite-talisman_enrichment_health { background-position: -176px -396px}.sbsprite-enderpack { background-position: -198px -396px}.sbsprite-pet_skin_rock_thinking { background-position: -220px -396px}.sbsprite-soul_fragment { background-position: -242px -396px}.sbsprite-skyblock_chair { background-position: -264px -396px}.sbsprite-mayor_paul { background-position: -286px -396px}.sbsprite-autopet_rules_2 { background-position: -308px -396px}.sbsprite-bat_talisman { background-position: -330px -396px}.sbsprite-killer_4 { background-position: -352px -396px}.sbsprite-killer_5 { background-position: -374px -396px}.sbsprite-killer_6 { background-position: -396px -396px}.sbsprite-killer_7 { background-position: -418px -396px}.sbsprite-killer_8 { background-position: -440px -396px}.sbsprite-killer_9 { background-position: -462px -396px}.sbsprite-builder_appalled_pumpkin { background-position: -484px -396px}.sbsprite-holy_shimmer { background-position: -506px -396px}.sbsprite-royal_pigeon { background-position: -528px -396px}.sbsprite-life_preserver { background-position: -550px -396px}.sbsprite-killer_1 { background-position: -572px -396px}.sbsprite-killer_2 { background-position: -594px -396px}.sbsprite-killer_3 { background-position: -616px -396px}.sbsprite-pet_skin_rock_cool { background-position: -638px -396px}.sbsprite-dingy { background-position: -660px -396px}.sbsprite-intimidation_ring { background-position: -682px -396px}.sbsprite-easter_egg_6 { background-position: -704px -396px}.sbsprite-builder_kiwi { background-position: -726px -396px}.sbsprite-easter_egg_5 { background-position: -748px -396px}.sbsprite-easter_egg_4 { background-position: -770px -396px}.sbsprite-rough_jade_gem { background-position: -792px -396px}.sbsprite-easter_egg_3 { background-position: -814px -396px}.sbsprite-easter_egg_2 { background-position: -836px -396px}.sbsprite-easter_egg_1 { background-position: -858px -396px}.sbsprite-snow_generator_11 { background-position: -880px -396px}.sbsprite-snow_generator_10 { background-position: -902px -396px}.sbsprite-easter_egg_9 { background-position: -924px -396px}.sbsprite-easter_egg_8 { background-position: -946px -396px}.sbsprite-easter_egg_7 { background-position: -968px -396px}.sbsprite-medium_gemstone_sack { background-position: -990px -396px}.sbsprite-large_enchanted_agronomy_sack { background-position: -1012px -396px}.sbsprite-blessed_fruit { background-position: -1034px -396px}.sbsprite-dungeon_stone_archer { background-position: 0 -418px}.sbsprite-arrow_swapper { background-position: -22px -418px}.sbsprite-snow_cannon { background-position: -44px -418px}.sbsprite-jerry_box_mega { background-position: -66px -418px}.sbsprite-pet_skin_sheep_brown { background-position: -88px -418px}.sbsprite-brewing_plus { background-position: -110px -418px}.sbsprite-mayor_barry { background-position: -132px -418px}.sbsprite-bat_ring { background-position: -154px -418px}.sbsprite-candle_arch { background-position: -176px -418px}.sbsprite-mithril_plate { background-position: -198px -418px}.sbsprite-carrot_bait { background-position: -220px -418px}.sbsprite-speed_artifact { background-position: -242px -418px}.sbsprite-salmon_hat { background-position: -264px -418px}.sbsprite-mini_sandcastle { background-position: -286px -418px}.sbsprite-scavenger_talisman { background-position: -308px -418px}.sbsprite-fast_travel_kuudra { background-position: -330px -418px}.sbsprite-foraging_fortune { background-position: -352px -418px}.sbsprite-bunny_personality { background-position: -374px -418px}.sbsprite-sandcastle_personality { background-position: -396px -418px}.sbsprite-undead_11 { background-position: -418px -418px}.sbsprite-magenta_jumbo_backpack { background-position: -440px -418px}.sbsprite-undead_10 { background-position: -462px -418px}.sbsprite-diamond_necron_head { background-position: -484px -418px}.sbsprite-wet_pumpkin { background-position: -506px -418px}.sbsprite-gemstone_gauntlet { background-position: -528px -418px}.sbsprite-cobblestone_generator_9 { background-position: -550px -418px}.sbsprite-cobblestone_generator_8 { background-position: -572px -418px}.sbsprite-iron_generator_1 { background-position: -594px -418px}.sbsprite-cobblestone_generator_7 { background-position: -616px -418px}.sbsprite-control_switch { background-position: -638px -418px}.sbsprite-iron_generator_2 { background-position: -660px -418px}.sbsprite-cobblestone_generator_6 { background-position: -682px -418px}.sbsprite-pumpkin_bomb { background-position: -704px -418px}.sbsprite-cobblestone_generator_5 { background-position: -726px -418px}.sbsprite-cobblestone_generator_4 { background-position: -748px -418px}.sbsprite-dwarven_tankard { background-position: -770px -418px}.sbsprite-jerry_talisman_purple { background-position: -792px -418px}.sbsprite-cobblestone_generator_3 { background-position: -814px -418px}.sbsprite-cobblestone_generator_2 { background-position: -836px -418px}.sbsprite-reindeer_plush { background-position: -858px -418px}.sbsprite-cobblestone_generator_1 { background-position: -880px -418px}.sbsprite-big_xtree { background-position: -902px -418px}.sbsprite-farming_island { background-position: -924px -418px}.sbsprite-rune_endersnake { background-position: -946px -418px}.sbsprite-rune { background-position: -968px -418px}.sbsprite-sweet_flesh { background-position: -990px -418px}.sbsprite-shark_10 { background-position: -1012px -418px}.sbsprite-shark_12 { background-position: -1034px -418px}.sbsprite-viking_tear { background-position: 0 -440px}.sbsprite-shark_11 { background-position: -22px -440px}.sbsprite-iron_generator_7 { background-position: -44px -440px}.sbsprite-iron_generator_8 { background-position: -66px -440px}.sbsprite-iron_generator_9 { background-position: -88px -440px}.sbsprite-beacon_skull { background-position: -110px -440px}.sbsprite-coin_gold_2 { background-position: -132px -440px}.sbsprite-iron_generator_3 { background-position: -154px -440px}.sbsprite-iron_generator_4 { background-position: -176px -440px}.sbsprite-sea_creature_ring { background-position: -198px -440px}.sbsprite-iron_generator_5 { background-position: -220px -440px}.sbsprite-iron_generator_6 { background-position: -242px -440px}.sbsprite-nether_warts_generator_7 { background-position: -264px -440px}.sbsprite-nether_warts_generator_8 { background-position: -286px -440px}.sbsprite-nether_warts_generator_9 { background-position: -308px -440px}.sbsprite-nether_warts_generator_3 { background-position: -330px -440px}.sbsprite-wolf_fur_mixin { background-position: -352px -440px}.sbsprite-mayor_marina { background-position: -374px -440px}.sbsprite-candy_ring { background-position: -396px -440px}.sbsprite-nether_warts_generator_4 { background-position: -418px -440px}.sbsprite-nether_warts_generator_5 { background-position: -440px -440px}.sbsprite-nether_warts_generator_6 { background-position: -462px -440px}.sbsprite-large_backpack { background-position: -484px -440px}.sbsprite-fine_sapphire_gem { background-position: -506px -440px}.sbsprite-nether_warts_generator_1 { background-position: -528px -440px}.sbsprite-nether_warts_generator_2 { background-position: -550px -440px}.sbsprite-griffin_upgrade_stone_uncommon { background-position: -572px -440px}.sbsprite-grey_greater_backpack { background-position: -594px -440px}.sbsprite-shiny_orb { background-position: -616px -440px}.sbsprite-large_enchanted_husbandry_sack { background-position: -638px -440px}.sbsprite-milk_cookies { background-position: -660px -440px}.sbsprite-spider_artifact { background-position: -682px -440px}.sbsprite-green_gift { background-position: -704px -440px}.sbsprite-fast_travel_park { background-position: -726px -440px}.sbsprite-jungle_heart { background-position: -748px -440px}.sbsprite-toil_log { background-position: -770px -440px}.sbsprite-absolute_ender_pearl { background-position: -792px -440px}.sbsprite-catacombs_pass_10 { background-position: -814px -440px}.sbsprite-protector_fragment { background-position: -836px -440px}.sbsprite-ice_generator_1 { background-position: -858px -440px}.sbsprite-ice_generator_2 { background-position: -880px -440px}.sbsprite-old_fragment { background-position: -902px -440px}.sbsprite-ice_generator_3 { background-position: -924px -440px}.sbsprite-traveling_zoo { background-position: -946px -440px}.sbsprite-ice_generator_4 { background-position: -968px -440px}.sbsprite-ice_generator_5 { background-position: -990px -440px}.sbsprite-ice_generator_6 { background-position: -1012px -440px}.sbsprite-ice_generator_7 { background-position: -1034px -440px}.sbsprite-ice_generator_8 { background-position: 0 -462px}.sbsprite-ice_generator_9 { background-position: -22px -462px}.sbsprite-lady_bug_personality { background-position: -44px -462px}.sbsprite-pet_skin_rock_laugh { background-position: -66px -462px}.sbsprite-experimentation_table { background-position: -88px -462px}.sbsprite-titanium_ore { background-position: -110px -462px}.sbsprite-blue_medium_backpack { background-position: -132px -462px}.sbsprite-ice_sofa { background-position: -154px -462px}.sbsprite-rune_lightning { background-position: -176px -462px}.sbsprite-tarantula_talisman { background-position: -198px -462px}.sbsprite-mayor_aatrox { background-position: -220px -462px}.sbsprite-race_crystal_core { background-position: -242px -462px}.sbsprite-black_cat_plush { background-position: -264px -462px}.sbsprite-small_agronomy_sack { background-position: -286px -462px}.sbsprite-magenta_greater_backpack { background-position: -308px -462px}.sbsprite-pet_skin_sheep_light_gray { background-position: -330px -462px}.sbsprite-diamond_scarf_head { background-position: -352px -462px}.sbsprite-hay_bed { background-position: -374px -462px}.sbsprite-talisman_enrichment_sea_creature_chance { background-position: -396px -462px}.sbsprite-strong_shimmer { background-position: -418px -462px}.sbsprite-shady_ring { background-position: -440px -462px}.sbsprite-dante_talisman { background-position: -462px -462px}.sbsprite-pink_bunny_1 { background-position: -484px -462px}.sbsprite-black_greater_backpack { background-position: -506px -462px}.sbsprite-builder_cactus { background-position: -528px -462px}.sbsprite-magenta_small_backpack { background-position: -550px -462px}.sbsprite-talisman_enrichment_defense { background-position: -572px -462px}.sbsprite-pink_bunny_3 { background-position: -594px -462px}.sbsprite-talisman_enrichment_magic_find { background-position: -616px -462px}.sbsprite-pink_bunny_2 { background-position: -638px -462px}.sbsprite-pink_bunny_5 { background-position: -660px -462px}.sbsprite-pink_bunny_4 { background-position: -682px -462px}.sbsprite-salmon_opal { background-position: -704px -462px}.sbsprite-pink_bunny_7 { background-position: -726px -462px}.sbsprite-pink_bunny_6 { background-position: -748px -462px}.sbsprite-pink_bunny_9 { background-position: -770px -462px}.sbsprite-pink_bunny_8 { background-position: -792px -462px}.sbsprite-refined_mithril { background-position: -814px -462px}.sbsprite-happy_emoji_10 { background-position: -836px -462px}.sbsprite-happy_emoji_11 { background-position: -858px -462px}.sbsprite-mine_talisman { background-position: -880px -462px}.sbsprite-old_dragon_helmet { background-position: -902px -462px}.sbsprite-boss_collection_livid { background-position: -924px -462px}.sbsprite-green_small_backpack { background-position: -946px -462px}.sbsprite-rune_bite { background-position: -968px -462px}.sbsprite-jungle_generator_11 { background-position: -990px -462px}.sbsprite-mega_luck { background-position: -1012px -462px}.sbsprite-jungle_generator_10 { background-position: -1034px -462px}.sbsprite-pet_skin_chicken_baby_chick { background-position: 0 -484px}.sbsprite-pile_of_cash { background-position: -22px -484px}.sbsprite-dungeoneering { background-position: -44px -484px}.sbsprite-base_griffin_upgrade_stone { background-position: -66px -484px}.sbsprite-red_tent { background-position: -88px -484px}.sbsprite-dungeon_red_support_orb { background-position: -110px -484px}.sbsprite-fast_travel_nether { background-position: -132px -484px}.sbsprite-night_vision_charm { background-position: -154px -484px}.sbsprite-zombie_grave { background-position: -176px -484px}.sbsprite-fish_bait { background-position: -198px -484px}.sbsprite-ice_lolly_personality { background-position: -220px -484px}.sbsprite-grizzly_paw { background-position: -242px -484px}.sbsprite-large_potion_bag { background-position: -264px -484px}.sbsprite-poorly_wrapped_rock { background-position: -286px -484px}.sbsprite-drill_engine { background-position: -308px -484px}.sbsprite-dark_oak_generator_10 { background-position: -330px -484px}.sbsprite-dungeon_normal_key { background-position: -352px -484px}.sbsprite-dark_oak_generator_11 { background-position: -374px -484px}.sbsprite-unstable_shimmer { background-position: -396px -484px}.sbsprite-green_egg { background-position: -418px -484px}.sbsprite-rough_topaz_gem { background-position: -440px -484px}.sbsprite-mana_flux_power_orb { background-position: -462px -484px}.sbsprite-amber_material { background-position: -484px -484px}.sbsprite-grinch_personality { background-position: -506px -484px}.sbsprite-fast_travel_crystals { background-position: -528px -484px}.sbsprite-lapis_generator_2 { background-position: -550px -484px}.sbsprite-lapis_generator_3 { background-position: -572px -484px}.sbsprite-rune_sack { background-position: -594px -484px}.sbsprite-lapis_generator_4 { background-position: -616px -484px}.sbsprite-tightly_tied_hay_bale { background-position: -638px -484px}.sbsprite-beach_ball { background-position: -660px -484px}.sbsprite-lapis_generator_5 { background-position: -682px -484px}.sbsprite-lapis_generator_10 { background-position: -704px -484px}.sbsprite-lapis_generator_12 { background-position: -726px -484px}.sbsprite-light_grey_large_backpack { background-position: -748px -484px}.sbsprite-lapis_generator_1 { background-position: -770px -484px}.sbsprite-lapis_generator_11 { background-position: -792px -484px}.sbsprite-pet_item_quick_claw { background-position: -814px -484px}.sbsprite-basketball_9 { background-position: -836px -484px}.sbsprite-deck_chair { background-position: -858px -484px}.sbsprite-lady_bug_9 { background-position: -880px -484px}.sbsprite-basketball_8 { background-position: -902px -484px}.sbsprite-lady_bug_8 { background-position: -924px -484px}.sbsprite-basketball_7 { background-position: -946px -484px}.sbsprite-basketball_6 { background-position: -968px -484px}.sbsprite-rune_pestilence { background-position: -990px -484px}.sbsprite-basketball_5 { background-position: -1012px -484px}.sbsprite-mithril_generator_12 { background-position: -1034px -484px}.sbsprite-sea_creature_talisman { background-position: 0 -506px}.sbsprite-basketball_4 { background-position: -22px -506px}.sbsprite-mithril_generator_11 { background-position: -44px -506px}.sbsprite-basketball_3 { background-position: -66px -506px}.sbsprite-mithril_generator_10 { background-position: -88px -506px}.sbsprite-basketball_2 { background-position: -110px -506px}.sbsprite-blue_egg { background-position: -132px -506px}.sbsprite-basketball_1 { background-position: -154px -506px}.sbsprite-lady_bug_1 { background-position: -176px -506px}.sbsprite-emerald_ring { background-position: -198px -506px}.sbsprite-lady_bug_3 { background-position: -220px -506px}.sbsprite-lady_bug_2 { background-position: -242px -506px}.sbsprite-lady_bug_5 { background-position: -264px -506px}.sbsprite-lapis_generator_6 { background-position: -286px -506px}.sbsprite-epoch_cake_green { background-position: -308px -506px}.sbsprite-lady_bug_4 { background-position: -330px -506px}.sbsprite-lapis_generator_7 { background-position: -352px -506px}.sbsprite-medium_husbandry_sack { background-position: -374px -506px}.sbsprite-bunny_11 { background-position: -396px -506px}.sbsprite-lady_bug_7 { background-position: -418px -506px}.sbsprite-lapis_generator_8 { background-position: -440px -506px}.sbsprite-bunny_10 { background-position: -462px -506px}.sbsprite-candy_relic { background-position: -484px -506px}.sbsprite-lady_bug_6 { background-position: -506px -506px}.sbsprite-lapis_generator_9 { background-position: -528px -506px}.sbsprite-red_jumbo_backpack { background-position: -550px -506px}.sbsprite-holy_fragment { background-position: -572px -506px}.sbsprite-ice_cream_personality { background-position: -594px -506px}.sbsprite-dungeon_blue_support_orb { background-position: -616px -506px}.sbsprite-blaze_generator_4 { background-position: -638px -506px}.sbsprite-blaze_generator_3 { background-position: -660px -506px}.sbsprite-blaze_generator_2 { background-position: -682px -506px}.sbsprite-blaze_generator_1 { background-position: -704px -506px}.sbsprite-blaze_generator_8 { background-position: -726px -506px}.sbsprite-blaze_generator_7 { background-position: -748px -506px}.sbsprite-pet_skin_whale_orca { background-position: -770px -506px}.sbsprite-blaze_generator_6 { background-position: -792px -506px}.sbsprite-blaze_generator_5 { background-position: -814px -506px}.sbsprite-deadgehog_helmet { background-position: -836px -506px}.sbsprite-volta { background-position: -858px -506px}.sbsprite-blaze_generator_9 { background-position: -880px -506px}.sbsprite-frozen_chicken { background-position: -902px -506px}.sbsprite-pet_skin_dragon_neon_purple { background-position: -924px -506px}.sbsprite-cavespider_generator_6 { background-position: -946px -506px}.sbsprite-cavespider_generator_5 { background-position: -968px -506px}.sbsprite-rune_gem { background-position: -990px -506px}.sbsprite-cavespider_generator_8 { background-position: -1012px -506px}.sbsprite-cavespider_generator_7 { background-position: -1034px -506px}.sbsprite-cavespider_generator_2 { background-position: 0 -528px}.sbsprite-cavespider_generator_1 { background-position: -22px -528px}.sbsprite-cavespider_generator_4 { background-position: -44px -528px}.sbsprite-jerry_talisman_blue { background-position: -66px -528px}.sbsprite-cavespider_generator_3 { background-position: -88px -528px}.sbsprite-speed_talisman { background-position: -110px -528px}.sbsprite-mummy_1 { background-position: -132px -528px}.sbsprite-rabbit_hat { background-position: -154px -528px}.sbsprite-bat_person_ring { background-position: -176px -528px}.sbsprite-mummy_3 { background-position: -198px -528px}.sbsprite-cavespider_generator_9 { background-position: -220px -528px}.sbsprite-mummy_2 { background-position: -242px -528px}.sbsprite-mummy_5 { background-position: -264px -528px}.sbsprite-strong_baby { background-position: -286px -528px}.sbsprite-mummy_4 { background-position: -308px -528px}.sbsprite-mummy_7 { background-position: -330px -528px}.sbsprite-mummy_6 { background-position: -352px -528px}.sbsprite-spooky_helmet { background-position: -374px -528px}.sbsprite-dining_chair { background-position: -396px -528px}.sbsprite-mummy_9 { background-position: -418px -528px}.sbsprite-mummy_8 { background-position: -440px -528px}.sbsprite-ender_relic { background-position: -462px -528px}.sbsprite-flawed_jasper_gem { background-position: -484px -528px}.sbsprite-cactus_generator_10 { background-position: -506px -528px}.sbsprite-pet_skin_silverfish_fossilized { background-position: -528px -528px}.sbsprite-cactus_generator_11 { background-position: -550px -528px}.sbsprite-cactus_generator_12 { background-position: -572px -528px}.sbsprite-dark_goggles { background-position: -594px -528px}.sbsprite-starred_bonzo_mask { background-position: -616px -528px}.sbsprite-pigs_foot { background-position: -638px -528px}.sbsprite-gemstone_mixture { background-position: -660px -528px}.sbsprite-tarantula_black_widow { background-position: -682px -528px}.sbsprite-builder_berry_bush { background-position: -704px -528px}.sbsprite-chicken_head { background-position: -726px -528px}.sbsprite-pet_skin_elephant_purple { background-position: -748px -528px}.sbsprite-cow_head { background-position: -770px -528px}.sbsprite-witch_broomstick { background-position: -792px -528px}.sbsprite-pet_skin_monkey_gorilla { background-position: -814px -528px}.sbsprite-grey_large_backpack { background-position: -836px -528px}.sbsprite-pet_skin_sheep_neon_green { background-position: -858px -528px}.sbsprite-magic_mushroom_soup { background-position: -880px -528px}.sbsprite-petrified_starfall { background-position: -902px -528px}.sbsprite-spruce_generator_9 { background-position: -924px -528px}.sbsprite-second_master_star { background-position: -946px -528px}.sbsprite-sled { background-position: -968px -528px}.sbsprite-spruce_generator_1 { background-position: -990px -528px}.sbsprite-voidling_generator_2 { background-position: -1012px -528px}.sbsprite-red { background-position: -1034px -528px}.sbsprite-spirit_wing { background-position: 0 -550px}.sbsprite-spruce_generator_2 { background-position: -22px -550px}.sbsprite-voidling_generator_1 { background-position: -44px -550px}.sbsprite-spruce_generator_3 { background-position: -66px -550px}.sbsprite-voidling_generator_4 { background-position: -88px -550px}.sbsprite-spruce_generator_4 { background-position: -110px -550px}.sbsprite-voidling_generator_3 { background-position: -132px -550px}.sbsprite-spruce_generator_5 { background-position: -154px -550px}.sbsprite-voidling_generator_6 { background-position: -176px -550px}.sbsprite-spruce_generator_6 { background-position: -198px -550px}.sbsprite-voidling_generator_5 { background-position: -220px -550px}.sbsprite-spruce_generator_7 { background-position: -242px -550px}.sbsprite-voidling_generator_8 { background-position: -264px -550px}.sbsprite-spruce_generator_8 { background-position: -286px -550px}.sbsprite-voidling_generator_7 { background-position: -308px -550px}.sbsprite-voidling_generator_9 { background-position: -330px -550px}.sbsprite-magenta_large_backpack { background-position: -352px -550px}.sbsprite-fast_travel_end { background-position: -374px -550px}.sbsprite-cow_generator_8 { background-position: -396px -550px}.sbsprite-cow_generator_9 { background-position: -418px -550px}.sbsprite-present_1 { background-position: -440px -550px}.sbsprite-topaz_crystal { background-position: -462px -550px}.sbsprite-bestiary_private_island { background-position: -484px -550px}.sbsprite-present_2 { background-position: -506px -550px}.sbsprite-present_3 { background-position: -528px -550px}.sbsprite-cow_generator_1 { background-position: -550px -550px}.sbsprite-cow_generator_2 { background-position: -572px -550px}.sbsprite-dragon_horn { background-position: -594px -550px}.sbsprite-bat_artifact { background-position: -616px -550px}.sbsprite-cow_generator_3 { background-position: -638px -550px}.sbsprite-cow_generator_4 { background-position: -660px -550px}.sbsprite-cow_generator_5 { background-position: -682px -550px}.sbsprite-cow_generator_6 { background-position: -704px -550px}.sbsprite-cow_generator_7 { background-position: -726px -550px}.sbsprite-goblin_omelette_pesto { background-position: -748px -550px}.sbsprite-farming_2_portal { background-position: -770px -550px}.sbsprite-village_talisman { background-position: -792px -550px}.sbsprite-cheetah_talisman { background-position: -814px -550px}.sbsprite-mining_2_portal { background-position: -836px -550px}.sbsprite-present_8 { background-position: -858px -550px}.sbsprite-wood_talisman { background-position: -880px -550px}.sbsprite-present_9 { background-position: -902px -550px}.sbsprite-present_4 { background-position: -924px -550px}.sbsprite-present_5 { background-position: -946px -550px}.sbsprite-present_6 { background-position: -968px -550px}.sbsprite-present_7 { background-position: -990px -550px}.sbsprite-healing_ring { background-position: -1012px -550px}.sbsprite-titanium_artifact { background-position: -1034px -550px}.sbsprite-penguin_1 { background-position: 0 -572px}.sbsprite-penguin_2 { background-position: -22px -572px}.sbsprite-ruby_crystal { background-position: -44px -572px}.sbsprite-tiki_torch { background-position: -66px -572px}.sbsprite-wheat_generator_10 { background-position: -88px -572px}.sbsprite-emerald_generator_8 { background-position: -110px -572px}.sbsprite-wheat_generator_12 { background-position: -132px -572px}.sbsprite-emerald_generator_7 { background-position: -154px -572px}.sbsprite-wheat_generator_11 { background-position: -176px -572px}.sbsprite-scarecrow { background-position: -198px -572px}.sbsprite-emerald_generator_9 { background-position: -220px -572px}.sbsprite-emerald_generator_4 { background-position: -242px -572px}.sbsprite-emerald_generator_3 { background-position: -264px -572px}.sbsprite-emerald_generator_6 { background-position: -286px -572px}.sbsprite-emerald_generator_5 { background-position: -308px -572px}.sbsprite-pet_skin_elephant_monochrome { background-position: -330px -572px}.sbsprite-emerald_generator_2 { background-position: -352px -572px}.sbsprite-emerald_generator_1 { background-position: -374px -572px}.sbsprite-flawless_topaz_gem { background-position: -396px -572px}.sbsprite-raw_soulflow { background-position: -418px -572px}.sbsprite-large_enchanted_mining_sack { background-position: -440px -572px}.sbsprite-gold_scarf_head { background-position: -462px -572px}.sbsprite-orange_medium_backpack { background-position: -484px -572px}.sbsprite-fine_jade_gem { background-position: -506px -572px}.sbsprite-white_gift { background-position: -528px -572px}.sbsprite-goblin_omelette_sunny_side { background-position: -550px -572px}.sbsprite-builder_brown_mushroom { background-position: -572px -572px}.sbsprite-giant_flesh { background-position: -594px -572px}.sbsprite-jumbo_backpack { background-position: -616px -572px}.sbsprite-eternal_flame_ring { background-position: -638px -572px}.sbsprite-wrapped_gift_for_juliette { background-position: -660px -572px}.sbsprite-enchanted_book_bundle_counter_strike { background-position: -682px -572px}.sbsprite-pet_item_toy_jerry { background-position: -704px -572px}.sbsprite-golden_plate { background-position: -726px -572px}.sbsprite-penguin_5 { background-position: -748px -572px}.sbsprite-grandfather_clock { background-position: -770px -572px}.sbsprite-penguin_6 { background-position: -792px -572px}.sbsprite-penguin_3 { background-position: -814px -572px}.sbsprite-pet_skin_elephant_orange { background-position: -836px -572px}.sbsprite-fast_travel_museum { background-position: -858px -572px}.sbsprite-penguin_4 { background-position: -880px -572px}.sbsprite-penguin_9 { background-position: -902px -572px}.sbsprite-penguin_7 { background-position: -924px -572px}.sbsprite-penguin_8 { background-position: -946px -572px}.sbsprite-light_grey_medium_backpack { background-position: -968px -572px}.sbsprite-blue_jumbo_backpack { background-position: -990px -572px}.sbsprite-cyan_small_backpack { background-position: -1012px -572px}.sbsprite-jade_crystal { background-position: -1034px -572px}.sbsprite-large_dungeon_sack { background-position: 0 -594px}.sbsprite-summoning_ring { background-position: -22px -594px}.sbsprite-dragon_essence { background-position: -44px -594px}.sbsprite-basket_of_seeds { background-position: -66px -594px}.sbsprite-bunny_jerry { background-position: -88px -594px}.sbsprite-perfect_jade_gem { background-position: -110px -594px}.sbsprite-spray_can { background-position: -132px -594px}.sbsprite-campfire_talisman_4 { background-position: -154px -594px}.sbsprite-campfire_talisman_5 { background-position: -176px -594px}.sbsprite-campfire_talisman_2 { background-position: -198px -594px}.sbsprite-campfire_talisman_3 { background-position: -220px -594px}.sbsprite-remnant_of_the_eye { background-position: -242px -594px}.sbsprite-campfire_talisman_1 { background-position: -264px -594px}.sbsprite-talisman_enrichment_critical_chance { background-position: -286px -594px}.sbsprite-ghast_head { background-position: -308px -594px}.sbsprite-white_greater_backpack { background-position: -330px -594px}.sbsprite-mayor_diaz { background-position: -352px -594px}.sbsprite-campfire_talisman_8 { background-position: -374px -594px}.sbsprite-campfire_talisman_9 { background-position: -396px -594px}.sbsprite-jaderald { background-position: -418px -594px}.sbsprite-campfire_talisman_6 { background-position: -440px -594px}.sbsprite-gold_thorn_head { background-position: -462px -594px}.sbsprite-campfire_talisman_7 { background-position: -484px -594px}.sbsprite-dark_bait { background-position: -506px -594px}.sbsprite-game_annihilator { background-position: -528px -594px}.sbsprite-purple_greater_backpack { background-position: -550px -594px}.sbsprite-bestiary_deep_caverns { background-position: -572px -594px}.sbsprite-foraging_5_portal { background-position: -594px -594px}.sbsprite-wolf_talisman { background-position: -616px -594px}.sbsprite-gold_professor_head { background-position: -638px -594px}.sbsprite-pet_skin_sheep_light_blue { background-position: -660px -594px}.sbsprite-ice_lolly_4 { background-position: -682px -594px}.sbsprite-basketball_10 { background-position: -704px -594px}.sbsprite-ice_lolly_3 { background-position: -726px -594px}.sbsprite-mineral_helmet { background-position: -748px -594px}.sbsprite-basketball_11 { background-position: -770px -594px}.sbsprite-ice_lolly_2 { background-position: -792px -594px}.sbsprite-basketball_12 { background-position: -814px -594px}.sbsprite-ice_lolly_1 { background-position: -836px -594px}.sbsprite-rock_candy { background-position: -858px -594px}.sbsprite-ice_lolly_8 { background-position: -880px -594px}.sbsprite-tarantula_generator_2 { background-position: -902px -594px}.sbsprite-ice_lolly_7 { background-position: -924px -594px}.sbsprite-tarantula_generator_1 { background-position: -946px -594px}.sbsprite-ice_lolly_6 { background-position: -968px -594px}.sbsprite-ice_lolly_5 { background-position: -990px -594px}.sbsprite-purple_egg { background-position: -1012px -594px}.sbsprite-ice_lolly_9 { background-position: -1034px -594px}.sbsprite-tarantula_generator_9 { background-position: 0 -616px}.sbsprite-tarantula_generator_8 { background-position: -22px -616px}.sbsprite-tarantula_generator_7 { background-position: -44px -616px}.sbsprite-tarantula_generator_6 { background-position: -66px -616px}.sbsprite-tarantula_generator_5 { background-position: -88px -616px}.sbsprite-tarantula_generator_4 { background-position: -110px -616px}.sbsprite-tarantula_generator_3 { background-position: -132px -616px}.sbsprite-hypixel_castle { background-position: -154px -616px}.sbsprite-rune_golden { background-position: -176px -616px}.sbsprite-wheat_generator_9 { background-position: -198px -616px}.sbsprite-ftx_3070 { background-position: -220px -616px}.sbsprite-wheat_generator_8 { background-position: -242px -616px}.sbsprite-wheat_generator_5 { background-position: -264px -616px}.sbsprite-wheat_generator_4 { background-position: -286px -616px}.sbsprite-builder_corn { background-position: -308px -616px}.sbsprite-cheap_coffee { background-position: -330px -616px}.sbsprite-wheat_generator_7 { background-position: -352px -616px}.sbsprite-wheat_generator_6 { background-position: -374px -616px}.sbsprite-mushroom_generator_11 { background-position: -396px -616px}.sbsprite-wheat_generator_1 { background-position: -418px -616px}.sbsprite-mushroom_generator_10 { background-position: -440px -616px}.sbsprite-ender_plus { background-position: -462px -616px}.sbsprite-wheat_generator_3 { background-position: -484px -616px}.sbsprite-wheat_generator_2 { background-position: -506px -616px}.sbsprite-voidling_generator_10 { background-position: -528px -616px}.sbsprite-voidling_generator_11 { background-position: -550px -616px}.sbsprite-mushroom_generator_12 { background-position: -572px -616px}.sbsprite-personal_bonus { background-position: -594px -616px}.sbsprite-flawless_amber_gem { background-position: -616px -616px}.sbsprite-rune_darkness_within { background-position: -638px -616px}.sbsprite-bag_of_cash { background-position: -660px -616px}.sbsprite-pet_skin_hound_beagle { background-position: -682px -616px}.sbsprite-pufferfish_hat { background-position: -704px -616px}.sbsprite-lime_greater_backpack { background-position: -726px -616px}.sbsprite-food_trough { background-position: -748px -616px}.sbsprite-pet_skin_yeti_grown_up { background-position: -770px -616px}.sbsprite-slime_generator_10 { background-position: -792px -616px}.sbsprite-undead_personality { background-position: -814px -616px}.sbsprite-slime_generator_11 { background-position: -836px -616px}.sbsprite-nether_wart_island { background-position: -858px -616px}.sbsprite-gravel_generator_5 { background-position: -880px -616px}.sbsprite-gravel_generator_4 { background-position: -902px -616px}.sbsprite-gravel_generator_7 { background-position: -924px -616px}.sbsprite-gravel_generator_6 { background-position: -946px -616px}.sbsprite-gravel_generator_9 { background-position: -968px -616px}.sbsprite-gravel_generator_8 { background-position: -990px -616px}.sbsprite-shiny_shard { background-position: -1012px -616px}.sbsprite-pet_skin_rabbit_rose { background-position: -1034px -616px}.sbsprite-quiver { background-position: 0 -638px}.sbsprite-rune_snake { background-position: -22px -638px}.sbsprite-bonzo_mask { background-position: -44px -638px}.sbsprite-fast_travel { background-position: -66px -638px}.sbsprite-treasurite { background-position: -88px -638px}.sbsprite-chicken_coop { background-position: -110px -638px}.sbsprite-end_portal_fumes_mixin { background-position: -132px -638px}.sbsprite-crafting_plus { background-position: -154px -638px}.sbsprite-gravel_generator_1 { background-position: -176px -638px}.sbsprite-gravel_generator_3 { background-position: -198px -638px}.sbsprite-gravel_generator_2 { background-position: -220px -638px}.sbsprite-easter_egg_11 { background-position: -242px -638px}.sbsprite-easter_egg_10 { background-position: -264px -638px}.sbsprite-protein_bar { background-position: -286px -638px}.sbsprite-hard_stone_generator_10 { background-position: -308px -638px}.sbsprite-coin_gold { background-position: -330px -638px}.sbsprite-light_blue_jumbo_backpack { background-position: -352px -638px}.sbsprite-hard_stone_generator_12 { background-position: -374px -638px}.sbsprite-hard_stone_generator_11 { background-position: -396px -638px}.sbsprite-rune_blood { background-position: -418px -638px}.sbsprite-raggedy_shark_tooth_necklace { background-position: -440px -638px}.sbsprite-pure_mithril { background-position: -462px -638px}.sbsprite-coin_emerald { background-position: -484px -638px}.sbsprite-pet_skin_black_cat_onyx { background-position: -506px -638px}.sbsprite-easter_egg_12 { background-position: -528px -638px}.sbsprite-emperor_head { background-position: -550px -638px}.sbsprite-power_wither_helmet { background-position: -572px -638px}.sbsprite-bee_11 { background-position: -594px -638px}.sbsprite-bee_10 { background-position: -616px -638px}.sbsprite-pet_skin_wolf { background-position: -638px -638px}.sbsprite-pumpkin_4 { background-position: -660px -638px}.sbsprite-pumpkin_3 { background-position: -682px -638px}.sbsprite-pumpkin_6 { background-position: -704px -638px}.sbsprite-fine_ruby_gem { background-position: -726px -638px}.sbsprite-pumpkin_5 { background-position: -748px -638px}.sbsprite-pumpkin_2 { background-position: -770px -638px}.sbsprite-electron_transmitter { background-position: -792px -638px}.sbsprite-pumpkin_1 { background-position: -814px -638px}.sbsprite-gingerbread_house { background-position: -836px -638px}.sbsprite-bee_1 { background-position: -858px -638px}.sbsprite-large_mining_sack { background-position: -880px -638px}.sbsprite-bee_2 { background-position: -902px -638px}.sbsprite-bee_3 { background-position: -924px -638px}.sbsprite-bee_4 { background-position: -946px -638px}.sbsprite-midas_jewel { background-position: -968px -638px}.sbsprite-unstable_dragon_helmet { background-position: -990px -638px}.sbsprite-vaccine_talisman { background-position: -1012px -638px}.sbsprite-whale_bait { background-position: -1034px -638px}.sbsprite-bee_9 { background-position: 0 -660px}.sbsprite-bee_5 { background-position: -22px -660px}.sbsprite-booster_cookie_box { background-position: -44px -660px}.sbsprite-perfect_topaz_gem { background-position: -66px -660px}.sbsprite-bee_6 { background-position: -88px -660px}.sbsprite-bee_7 { background-position: -110px -660px}.sbsprite-bee_8 { background-position: -132px -660px}.sbsprite-elvish_helmet { background-position: -154px -660px}.sbsprite-pumpkin_8 { background-position: -176px -660px}.sbsprite-light_grey_greater_backpack { background-position: -198px -660px}.sbsprite-pumpkin_7 { background-position: -220px -660px}.sbsprite-pumpkin_9 { background-position: -242px -660px}.sbsprite-best_weapon_rack { background-position: -264px -660px}.sbsprite-washed_up_souvenir { background-position: -286px -660px}.sbsprite-coin_diamond { background-position: -308px -660px}.sbsprite-builder_pink_berry { background-position: -330px -660px}.sbsprite-clownfish_personality { background-position: -352px -660px}.sbsprite-easter_egg_personality { background-position: -374px -660px}.sbsprite-jerry_talisman_green { background-position: -396px -660px}.sbsprite-spiked_atrocity { background-position: -418px -660px}.sbsprite-flower_generator_8 { background-position: -440px -660px}.sbsprite-flower_generator_9 { background-position: -462px -660px}.sbsprite-farmer_orb { background-position: -484px -660px}.sbsprite-flower_generator_4 { background-position: -506px -660px}.sbsprite-crypt_skull_key { background-position: -528px -660px}.sbsprite-flower_generator_5 { background-position: -550px -660px}.sbsprite-flower_generator_6 { background-position: -572px -660px}.sbsprite-flower_generator_7 { background-position: -594px -660px}.sbsprite-flower_generator_1 { background-position: -616px -660px}.sbsprite-flower_generator_2 { background-position: -638px -660px}.sbsprite-nutcracker { background-position: -660px -660px}.sbsprite-flower_generator_3 { background-position: -682px -660px}.sbsprite-scarf_studies { background-position: -704px -660px}.sbsprite-builder_apple { background-position: -726px -660px}.sbsprite-skyblock_table { background-position: -748px -660px}.sbsprite-sleeping_eye { background-position: -770px -660px}.sbsprite-spider_generator_1 { background-position: -792px -660px}.sbsprite-pet_skin_elephant_blue { background-position: -814px -660px}.sbsprite-spider_generator_2 { background-position: -836px -660px}.sbsprite-spider_generator_3 { background-position: -858px -660px}.sbsprite-shark_bait { background-position: -880px -660px}.sbsprite-spider_generator_4 { background-position: -902px -660px}.sbsprite-spider_generator_5 { background-position: -924px -660px}.sbsprite-black { background-position: -946px -660px}.sbsprite-sapphire_polished_drill_engine { background-position: -968px -660px}.sbsprite-cocoa_generator_1 { background-position: -990px -660px}.sbsprite-cocoa_generator_7 { background-position: -1012px -660px}.sbsprite-cocoa_generator_6 { background-position: -1034px -660px}.sbsprite-rune_snow { background-position: 0 -682px}.sbsprite-cocoa_generator_9 { background-position: -22px -682px}.sbsprite-cocoa_generator_8 { background-position: -44px -682px}.sbsprite-cocoa_generator_3 { background-position: -66px -682px}.sbsprite-cocoa_generator_2 { background-position: -88px -682px}.sbsprite-cocoa_generator_5 { background-position: -110px -682px}.sbsprite-cocoa_generator_4 { background-position: -132px -682px}.sbsprite-spider_generator_6 { background-position: -154px -682px}.sbsprite-spider_generator_7 { background-position: -176px -682px}.sbsprite-spider_generator_8 { background-position: -198px -682px}.sbsprite-spider_generator_9 { background-position: -220px -682px}.sbsprite-brown_large_backpack { background-position: -242px -682px}.sbsprite-flower_maelstrom { background-position: -264px -682px}.sbsprite-pumpkin_generator_12 { background-position: -286px -682px}.sbsprite-coal_generator_9 { background-position: -308px -682px}.sbsprite-diamond_thorn_head { background-position: -330px -682px}.sbsprite-ender_stone_generator_11 { background-position: -352px -682px}.sbsprite-coal_generator_8 { background-position: -374px -682px}.sbsprite-ender_stone_generator_10 { background-position: -396px -682px}.sbsprite-coal_generator_7 { background-position: -418px -682px}.sbsprite-jerry_box_blue { background-position: -440px -682px}.sbsprite-coal_generator_6 { background-position: -462px -682px}.sbsprite-coal_generator_5 { background-position: -484px -682px}.sbsprite-pumpkin_generator_11 { background-position: -506px -682px}.sbsprite-coal_generator_4 { background-position: -528px -682px}.sbsprite-pumpkin_generator_10 { background-position: -550px -682px}.sbsprite-talisman_of_space { background-position: -572px -682px}.sbsprite-talisman_enrichment_strength { background-position: -594px -682px}.sbsprite-white_jumbo_backpack { background-position: -616px -682px}.sbsprite-full_fairy_control { background-position: -638px -682px}.sbsprite-quartz_generator_9 { background-position: -660px -682px}.sbsprite-rune_wake { background-position: -682px -682px}.sbsprite-quartz_generator_8 { background-position: -704px -682px}.sbsprite-festive_jerry_personality { background-position: -726px -682px}.sbsprite-quartz_generator_5 { background-position: -748px -682px}.sbsprite-builder_berry { background-position: -770px -682px}.sbsprite-quartz_generator_4 { background-position: -792px -682px}.sbsprite-quartz_generator_7 { background-position: -814px -682px}.sbsprite-quartz_generator_6 { background-position: -836px -682px}.sbsprite-quartz_generator_1 { background-position: -858px -682px}.sbsprite-quartz_generator_3 { background-position: -880px -682px}.sbsprite-quartz_generator_2 { background-position: -902px -682px}.sbsprite-bingo_heirloom { background-position: -924px -682px}.sbsprite-dwarf_turtle_shelmet { background-position: -946px -682px}.sbsprite-wolf_paw { background-position: -968px -682px}.sbsprite-jasper_crystal { background-position: -990px -682px}.sbsprite-party_hat_crab { background-position: -1012px -682px}.sbsprite-feather_artifact { background-position: -1034px -682px}.sbsprite-coal_generator_3 { background-position: 0 -704px}.sbsprite-coal_generator_2 { background-position: -22px -704px}.sbsprite-coal_generator_1 { background-position: -44px -704px}.sbsprite-fast_travel_gold { background-position: -66px -704px}.sbsprite-crystal_hollows_crystals { background-position: -88px -704px}.sbsprite-mining_island { background-position: -110px -704px}.sbsprite-flawless_jasper_gem { background-position: -132px -704px}.sbsprite-halloween_candles { background-position: -154px -704px}.sbsprite-ascension_rope { background-position: -176px -704px}.sbsprite-brown_small_backpack { background-position: -198px -704px}.sbsprite-diver_puffer { background-position: -220px -704px}.sbsprite-melon_generator_10 { background-position: -242px -704px}.sbsprite-melon_generator_12 { background-position: -264px -704px}.sbsprite-melon_generator_11 { background-position: -286px -704px}.sbsprite-desert_island { background-position: -308px -704px}.sbsprite-green { background-position: -330px -704px}.sbsprite-crystallized_heart { background-position: -352px -704px}.sbsprite-sinful_dice { background-position: -374px -704px}.sbsprite-soulflow_supercell { background-position: -396px -704px}.sbsprite-sea_creature_artifact { background-position: -418px -704px}.sbsprite-grey_small_backpack { background-position: -440px -704px}.sbsprite-aatrox_batphone { background-position: -462px -704px}.sbsprite-clay_generator_10 { background-position: -484px -704px}.sbsprite-clay_generator_11 { background-position: -506px -704px}.sbsprite-end_stone_personality { background-position: -528px -704px}.sbsprite-builder_banana_bunch { background-position: -550px -704px}.sbsprite-danger_2_portal { background-position: -572px -704px}.sbsprite-mayor_scorpius { background-position: -594px -704px}.sbsprite-voodoo { background-position: -616px -704px}.sbsprite-jerry_box_purple { background-position: -638px -704px}.sbsprite-wither_artifact { background-position: -660px -704px}.sbsprite-skull_chest { background-position: -682px -704px}.sbsprite-pet_skin_elephant_pink { background-position: -704px -704px}.sbsprite-oak_generator_10 { background-position: -726px -704px}.sbsprite-slime_generator_1 { background-position: -748px -704px}.sbsprite-slime_generator_2 { background-position: -770px -704px}.sbsprite-frozen_blaze_icicle { background-position: -792px -704px}.sbsprite-oak_generator_11 { background-position: -814px -704px}.sbsprite-slime_generator_5 { background-position: -836px -704px}.sbsprite-slime_generator_6 { background-position: -858px -704px}.sbsprite-slime_generator_3 { background-position: -880px -704px}.sbsprite-slime_generator_4 { background-position: -902px -704px}.sbsprite-slime_generator_9 { background-position: -924px -704px}.sbsprite-slime_generator_7 { background-position: -946px -704px}.sbsprite-slime_generator_8 { background-position: -968px -704px}.sbsprite-dungeon_golden_key { background-position: -990px -704px}.sbsprite-mender_fedora { background-position: -1012px -704px}.sbsprite-pet_skin_rock_smile { background-position: -1034px -704px}.sbsprite-builder_orange { background-position: 0 -726px}.sbsprite-ghast_generator_10 { background-position: -22px -726px}.sbsprite-beach_chair { background-position: -44px -726px}.sbsprite-ghast_generator_11 { background-position: -66px -726px}.sbsprite-boss { background-position: -88px -726px}.sbsprite-race_precursor_ruins { background-position: -110px -726px}.sbsprite-perfectly_cut_fuel_tank { background-position: -132px -726px}.sbsprite-ice_essence { background-position: -154px -726px}.sbsprite-jerry_box_green { background-position: -176px -726px}.sbsprite-fireplace { background-position: -198px -726px}.sbsprite-moldy_bread { background-position: -220px -726px}.sbsprite-pet_skin_tiger_saber_tooth { background-position: -242px -726px}.sbsprite-obsidian_generator_5 { background-position: -264px -726px}.sbsprite-obsidian_generator_4 { background-position: -286px -726px}.sbsprite-obsidian_generator_7 { background-position: -308px -726px}.sbsprite-obsidian_generator_6 { background-position: -330px -726px}.sbsprite-obsidian_generator_1 { background-position: -352px -726px}.sbsprite-obsidian_generator_3 { background-position: -374px -726px}.sbsprite-foraging_1_portal { background-position: -396px -726px}.sbsprite-obsidian_generator_2 { background-position: -418px -726px}.sbsprite-dungeon_stone_tank { background-position: -440px -726px}.sbsprite-obsidian_generator_9 { background-position: -462px -726px}.sbsprite-obsidian_generator_8 { background-position: -484px -726px}.sbsprite-pet_skin_sheep_light_green { background-position: -506px -726px}.sbsprite-decayed_bat { background-position: -528px -726px}.sbsprite-pet_skin_squid_glow { background-position: -550px -726px}.sbsprite-potato_generator_4 { background-position: -572px -726px}.sbsprite-potato_generator_5 { background-position: -594px -726px}.sbsprite-potato_generator_12 { background-position: -616px -726px}.sbsprite-potato_generator_6 { background-position: -638px -726px}.sbsprite-potato_generator_11 { background-position: -660px -726px}.sbsprite-potato_generator_7 { background-position: -682px -726px}.sbsprite-potato_generator_10 { background-position: -704px -726px}.sbsprite-potato_generator_8 { background-position: -726px -726px}.sbsprite-potato_generator_9 { background-position: -748px -726px}.sbsprite-slayer_energy_drink { background-position: -770px -726px}.sbsprite-arachne_keeper_fragment { background-position: -792px -726px}.sbsprite-cat_talisman { background-position: -814px -726px}.sbsprite-large_slayer_sack { background-position: -836px -726px}.sbsprite-rune_rainbow { background-position: -858px -726px}.sbsprite-potato_generator_1 { background-position: -880px -726px}.sbsprite-potato_generator_2 { background-position: -902px -726px}.sbsprite-potato_generator_3 { background-position: -924px -726px}.sbsprite-lime_large_backpack { background-position: -946px -726px}.sbsprite-bestiary_spiders_den { background-position: -968px -726px}.sbsprite-ruby_polished_drill_engine { background-position: -990px -726px}.sbsprite-yellow_jumbo_backpack { background-position: -1012px -726px}.sbsprite-pet_skin_dolphin_snubnose { background-position: -1034px -726px}.sbsprite-spider_egg_mixin { background-position: 0 -748px}.sbsprite-pet_skin_dragon_pastel { background-position: -22px -748px}.sbsprite-honed_shark_tooth_necklace { background-position: -44px -748px}.sbsprite-bob_omb { background-position: -66px -748px}.sbsprite-dungeon_wizard_crystal { background-position: -88px -748px}.sbsprite-barn_island { background-position: -110px -748px}.sbsprite-weapon_rack { background-position: -132px -748px}.sbsprite-shadow_assassin_crimson { background-position: -154px -748px}.sbsprite-small_talisman_bag { background-position: -176px -748px}.sbsprite-medium_combat_sack { background-position: -198px -748px}.sbsprite-bonzo_statue { background-position: -220px -748px}.sbsprite-zombie_artifact { background-position: -242px -748px}.sbsprite-cheese_hunter { background-position: -264px -748px}.sbsprite-hologram { background-position: -286px -748px}.sbsprite-ultrasequencer { background-position: -308px -748px}.sbsprite-wise_dragon_helmet { background-position: -330px -748px}.sbsprite-cyan_medium_backpack { background-position: -352px -748px}.sbsprite-light_grey_small_backpack { background-position: -374px -748px}.sbsprite-catacombs_pass_5 { background-position: -396px -748px}.sbsprite-catacombs_pass_4 { background-position: -418px -748px}.sbsprite-catacombs_pass_3 { background-position: -440px -748px}.sbsprite-magma_bucket_upgrade { background-position: -462px -748px}.sbsprite-catacombs_pass_2 { background-position: -484px -748px}.sbsprite-coin_redstone { background-position: -506px -748px}.sbsprite-catacombs_pass_1 { background-position: -528px -748px}.sbsprite-hermit_crab_10 { background-position: -550px -748px}.sbsprite-catacombs_pass_0 { background-position: -572px -748px}.sbsprite-hermit_crab_11 { background-position: -594px -748px}.sbsprite-dungeon_stone_mage { background-position: -616px -748px}.sbsprite-gingerbread_personality { background-position: -638px -748px}.sbsprite-titanium_drill_engine { background-position: -660px -748px}.sbsprite-catacombs_pass_9 { background-position: -682px -748px}.sbsprite-fast_travel_dragontail { background-position: -704px -748px}.sbsprite-catacombs_pass_8 { background-position: -726px -748px}.sbsprite-catacombs_pass_7 { background-position: -748px -748px}.sbsprite-reaper_spirit { background-position: -770px -748px}.sbsprite-catacombs_pass_6 { background-position: -792px -748px}.sbsprite-armor_of_the_resistance_helmet { background-position: -814px -748px}.sbsprite-orange_small_backpack { background-position: -836px -748px}.sbsprite-bait_ring { background-position: -858px -748px}.sbsprite-luck_talisman { background-position: -880px -748px}.sbsprite-beach_ball_11 { background-position: -902px -748px}.sbsprite-beach_ball_10 { background-position: -924px -748px}.sbsprite-shark_personality { background-position: -946px -748px}.sbsprite-coal_generator_11 { background-position: -968px -748px}.sbsprite-coal_generator_12 { background-position: -990px -748px}.sbsprite-fourth_master_star { background-position: -1012px -748px}.sbsprite-water_hydra_head { background-position: -1034px -748px}.sbsprite-coal_generator_10 { background-position: 0 -770px}.sbsprite-ice_dinner_table { background-position: -22px -770px}.sbsprite-talisman_enrichment_attack_speed { background-position: -44px -770px}.sbsprite-gemstone_fuel_tank { background-position: -66px -770px}.sbsprite-green_large_backpack { background-position: -88px -770px}.sbsprite-fairy_wings_charm { background-position: -110px -770px}.sbsprite-rare_diamond { background-position: -132px -770px}.sbsprite-bunny { background-position: -154px -770px}.sbsprite-storm_the_fish { background-position: -176px -770px}.sbsprite-penguin_personality { background-position: -198px -770px}.sbsprite-shark_1 { background-position: -220px -770px}.sbsprite-shard_of_the_shredded { background-position: -242px -770px}.sbsprite-shark_2 { background-position: -264px -770px}.sbsprite-sheep_generator_11 { background-position: -286px -770px}.sbsprite-diamonite { background-position: -308px -770px}.sbsprite-prehistoric_egg { background-position: -330px -770px}.sbsprite-shark_3 { background-position: -352px -770px}.sbsprite-sheep_generator_12 { background-position: -374px -770px}.sbsprite-shark_4 { background-position: -396px -770px}.sbsprite-shark_5 { background-position: -418px -770px}.sbsprite-shark_6 { background-position: -440px -770px}.sbsprite-shark_7 { background-position: -462px -770px}.sbsprite-shark_8 { background-position: -484px -770px}.sbsprite-shark_9 { background-position: -506px -770px}.sbsprite-bbq { background-position: -528px -770px}.sbsprite-pet_skin_sheep_white { background-position: -550px -770px}.sbsprite-sheep_generator_10 { background-position: -572px -770px}.sbsprite-rune_spirit { background-position: -594px -770px}.sbsprite-aote_stone { background-position: -616px -770px}.sbsprite-french_bread { background-position: -638px -770px}.sbsprite-ember_helmet { background-position: -660px -770px}.sbsprite-large_bed { background-position: -682px -770px}.sbsprite-builder_bush { background-position: -704px -770px}.sbsprite-talisman_enrichment_ferocity { background-position: -726px -770px}.sbsprite-fire_talisman { background-position: -748px -770px}.sbsprite-purple_candy { background-position: -770px -770px}.sbsprite-spider_talisman { background-position: -792px -770px}.sbsprite-intimidation_artifact { background-position: -814px -770px}.sbsprite-large_candy_sack { background-position: -836px -770px}.sbsprite-present_10 { background-position: -858px -770px}.sbsprite-present_11 { background-position: -880px -770px}.sbsprite-beach_ball_9 { background-position: -902px -770px}.sbsprite-tarantula_generator_10 { background-position: -924px -770px}.sbsprite-beach_ball_8 { background-position: -946px -770px}.sbsprite-gold_sadan_head { background-position: -968px -770px}.sbsprite-tarantula_generator_11 { background-position: -990px -770px}.sbsprite-large_enchanted_foraging_sack { background-position: -1012px -770px}.sbsprite-warrior_dungeon_ability_1 { background-position: -1034px -770px}.sbsprite-beach_ball_5 { background-position: 0 -792px}.sbsprite-beach_ball_4 { background-position: -22px -792px}.sbsprite-beach_ball_7 { background-position: -44px -792px}.sbsprite-cracked_piggy_bank { background-position: -66px -792px}.sbsprite-beach_ball_6 { background-position: -88px -792px}.sbsprite-ice_lolly_11 { background-position: -110px -792px}.sbsprite-ice_lolly_10 { background-position: -132px -792px}.sbsprite-razor_sharp_shark_tooth_necklace { background-position: -154px -792px}.sbsprite-farm_crystal { background-position: -176px -792px}.sbsprite-bank_upgrade_luxurious { background-position: -198px -792px}.sbsprite-large_fishing_sack { background-position: -220px -792px}.sbsprite-lime_small_backpack { background-position: -242px -792px}.sbsprite-portable_wool_weaver { background-position: -264px -792px}.sbsprite-beach_ball_1 { background-position: -286px -792px}.sbsprite-beach_ball_3 { background-position: -308px -792px}.sbsprite-beach_ball_2 { background-position: -330px -792px}.sbsprite-revive_stone_orb { background-position: -352px -792px}.sbsprite-fish_hat { background-position: -374px -792px}.sbsprite-skull_personality { background-position: -396px -792px}.sbsprite-builder_onion { background-position: -418px -792px}.sbsprite-melon_generator_3 { background-position: -440px -792px}.sbsprite-zombie_generator_9 { background-position: -462px -792px}.sbsprite-melon_generator_2 { background-position: -484px -792px}.sbsprite-melon_generator_1 { background-position: -506px -792px}.sbsprite-melon_generator_7 { background-position: -528px -792px}.sbsprite-zombie_generator_5 { background-position: -550px -792px}.sbsprite-melon_generator_6 { background-position: -572px -792px}.sbsprite-zombie_generator_6 { background-position: -594px -792px}.sbsprite-melon_generator_5 { background-position: -616px -792px}.sbsprite-zombie_generator_7 { background-position: -638px -792px}.sbsprite-melon_generator_4 { background-position: -660px -792px}.sbsprite-zombie_generator_8 { background-position: -682px -792px}.sbsprite-zombie_generator_1 { background-position: -704px -792px}.sbsprite-zombie_generator_2 { background-position: -726px -792px}.sbsprite-optical_lens { background-position: -748px -792px}.sbsprite-zombie_generator_3 { background-position: -770px -792px}.sbsprite-zombie_generator_4 { background-position: -792px -792px}.sbsprite-beach_umbrella { background-position: -814px -792px}.sbsprite-diamond_atom { background-position: -836px -792px}.sbsprite-coin_talisman { background-position: -858px -792px}.sbsprite-nether_island { background-position: -880px -792px}.sbsprite-rune_couture { background-position: -902px -792px}.sbsprite-fish_affinity_talisman { background-position: -924px -792px}.sbsprite-wedding_ring_4 { background-position: -946px -792px}.sbsprite-wedding_ring_5 { background-position: -968px -792px}.sbsprite-wedding_ring_6 { background-position: -990px -792px}.sbsprite-wedding_ring_7 { background-position: -1012px -792px}.sbsprite-wedding_ring_8 { background-position: -1034px -792px}.sbsprite-large_enchanted_combat_sack { background-position: 0 -814px}.sbsprite-wedding_ring_9 { background-position: -22px -814px}.sbsprite-rune_clouds { background-position: -44px -814px}.sbsprite-perfect_amber_gem { background-position: -66px -814px}.sbsprite-precursor_gear { background-position: -88px -814px}.sbsprite-wedding_ring_2 { background-position: -110px -814px}.sbsprite-wedding_ring_3 { background-position: -132px -814px}.sbsprite-rune_enchant { background-position: -154px -814px}.sbsprite-god_potion { background-position: -176px -814px}.sbsprite-rune_magical { background-position: -198px -814px}.sbsprite-pet_skin_monkey_golden { background-position: -220px -814px}.sbsprite-spiked_bait { background-position: -242px -814px}.sbsprite-ghost_11 { background-position: -264px -814px}.sbsprite-perfect_jasper_gem { background-position: -286px -814px}.sbsprite-quartz_generator_11 { background-position: -308px -814px}.sbsprite-sandcastle_1 { background-position: -330px -814px}.sbsprite-sandcastle_2 { background-position: -352px -814px}.sbsprite-pet_skin_sheep_pink { background-position: -374px -814px}.sbsprite-premium_flesh { background-position: -396px -814px}.sbsprite-sandcastle_5 { background-position: -418px -814px}.sbsprite-blessed_bait { background-position: -440px -814px}.sbsprite-sandcastle_6 { background-position: -462px -814px}.sbsprite-sandcastle_3 { background-position: -484px -814px}.sbsprite-sandcastle_4 { background-position: -506px -814px}.sbsprite-wise_wither_helmet { background-position: -528px -814px}.sbsprite-sandcastle_9 { background-position: -550px -814px}.sbsprite-quartz_generator_10 { background-position: -572px -814px}.sbsprite-sandcastle_7 { background-position: -594px -814px}.sbsprite-sandcastle_8 { background-position: -616px -814px}.sbsprite-mayor_cole { background-position: -638px -814px}.sbsprite-fifth_master_star { background-position: -660px -814px}.sbsprite-ghost_10 { background-position: -682px -814px}.sbsprite-young_shimmer { background-position: -704px -814px}.sbsprite-minion_chair { background-position: -726px -814px}.sbsprite-pig_mask { background-position: -748px -814px}.sbsprite-hyper_catalyst_upgrade { background-position: -770px -814px}.sbsprite-potion { background-position: -792px -814px}.sbsprite-exceedingly_rare_ender_artifact_upgrader { background-position: -814px -814px}.sbsprite-refined_titanium { background-position: -836px -814px}.sbsprite-sharp_shark_tooth_necklace { background-position: -858px -814px}.sbsprite-wreath { background-position: -880px -814px}.sbsprite-melon_generator_9 { background-position: -902px -814px}.sbsprite-melon_generator_8 { background-position: -924px -814px}.sbsprite-epoch_cake_pink { background-position: -946px -814px}.sbsprite-dungeon_stone_healer { background-position: -968px -814px}.sbsprite-young_baby { background-position: -990px -814px}.sbsprite-presents { background-position: -1012px -814px}.sbsprite-dark_oak_generator_5 { background-position: -1034px -814px}.sbsprite-dark_oak_generator_6 { background-position: 0 -836px}.sbsprite-large_enchanted_fishing_sack { background-position: -22px -836px}.sbsprite-radiant_power_orb { background-position: -44px -836px}.sbsprite-dark_oak_generator_3 { background-position: -66px -836px}.sbsprite-large_husbandry_sack { background-position: -88px -836px}.sbsprite-dark_oak_generator_4 { background-position: -110px -836px}.sbsprite-dark_oak_generator_9 { background-position: -132px -836px}.sbsprite-dark_oak_generator_7 { background-position: -154px -836px}.sbsprite-dark_oak_generator_8 { background-position: -176px -836px}.sbsprite-dark_oak_generator_1 { background-position: -198px -836px}.sbsprite-dark_oak_generator_2 { background-position: -220px -836px}.sbsprite-illusion_glass { background-position: -242px -836px}.sbsprite-iron_chest { background-position: -264px -836px}.sbsprite-festive_zombie_personality { background-position: -286px -836px}.sbsprite-frozen_blaze_helmet { background-position: -308px -836px}.sbsprite-fast_travel_nest { background-position: -330px -836px}.sbsprite-brown_greater_backpack { background-position: -352px -836px}.sbsprite-red_gift { background-position: -374px -836px}.sbsprite-builder_lemon { background-position: -396px -836px}.sbsprite-rune_hot { background-position: -418px -836px}.sbsprite-small_mining_sack { background-position: -440px -836px}.sbsprite-pet_skin_jerry_green_elf { background-position: -462px -836px}.sbsprite-amber_polished_drill_engine { background-position: -484px -836px}.sbsprite-pedestal { background-position: -506px -836px}.sbsprite-red_claw_artifact { background-position: -528px -836px}.sbsprite-zombie_generator_11 { background-position: -550px -836px}.sbsprite-zombie_generator_10 { background-position: -572px -836px}.sbsprite-wither_relic { background-position: -594px -836px}.sbsprite-spider_hat { background-position: -616px -836px}.sbsprite-sludge_juice { background-position: -638px -836px}.sbsprite-precursor_eye { background-position: -660px -836px}.sbsprite-fast_travel_scarleton { background-position: -682px -836px}.sbsprite-connect_four { background-position: -704px -836px}.sbsprite-sloth_3 { background-position: -726px -836px}.sbsprite-sloth_4 { background-position: -748px -836px}.sbsprite-pet_skin_enderman { background-position: -770px -836px}.sbsprite-sloth_1 { background-position: -792px -836px}.sbsprite-sloth_2 { background-position: -814px -836px}.sbsprite-rabbit_generator_9 { background-position: -836px -836px}.sbsprite-builder_chesto_berry { background-position: -858px -836px}.sbsprite-rabbit_generator_4 { background-position: -880px -836px}.sbsprite-sloth_7 { background-position: -902px -836px}.sbsprite-rabbit_generator_3 { background-position: -924px -836px}.sbsprite-sloth_8 { background-position: -946px -836px}.sbsprite-rabbit_generator_2 { background-position: -968px -836px}.sbsprite-sloth_5 { background-position: -990px -836px}.sbsprite-rabbit_generator_1 { background-position: -1012px -836px}.sbsprite-sloth_6 { background-position: -1034px -836px}.sbsprite-rabbit_generator_8 { background-position: 0 -858px}.sbsprite-lantern { background-position: -22px -858px}.sbsprite-rabbit_generator_7 { background-position: -44px -858px}.sbsprite-rabbit_generator_6 { background-position: -66px -858px}.sbsprite-sloth_9 { background-position: -88px -858px}.sbsprite-rabbit_generator_5 { background-position: -110px -858px}.sbsprite-clownfish_8 { background-position: -132px -858px}.sbsprite-clownfish_9 { background-position: -154px -858px}.sbsprite-clownfish_6 { background-position: -176px -858px}.sbsprite-clownfish_7 { background-position: -198px -858px}.sbsprite-clownfish_4 { background-position: -220px -858px}.sbsprite-clownfish_5 { background-position: -242px -858px}.sbsprite-mender_helmet { background-position: -264px -858px}.sbsprite-clownfish_2 { background-position: -286px -858px}.sbsprite-clownfish_3 { background-position: -308px -858px}.sbsprite-enderman_hat { background-position: -330px -858px}.sbsprite-superior_dragon_helmet { background-position: -352px -858px}.sbsprite-clownfish_1 { background-position: -374px -858px}.sbsprite-reset_heart_of_the_mountain { background-position: -396px -858px}.sbsprite-lapis_crystal { background-position: -418px -858px}.sbsprite-purple_jumbo_backpack { background-position: -440px -858px}.sbsprite-purple_large_backpack { background-position: -462px -858px}.sbsprite-dragon_claw { background-position: -484px -858px}.sbsprite-potato_talisman { background-position: -506px -858px}.sbsprite-nether_warts_generator_12 { background-position: -528px -858px}.sbsprite-nether_warts_generator_11 { background-position: -550px -858px}.sbsprite-nether_warts_generator_10 { background-position: -572px -858px}.sbsprite-yellow_medium_backpack { background-position: -594px -858px}.sbsprite-acacia_generator_9 { background-position: -616px -858px}.sbsprite-arachne_crystal { background-position: -638px -858px}.sbsprite-acacia_generator_8 { background-position: -660px -858px}.sbsprite-acacia_generator_7 { background-position: -682px -858px}.sbsprite-helix { background-position: -704px -858px}.sbsprite-acacia_generator_6 { background-position: -726px -858px}.sbsprite-mutant_nether_stalk { background-position: -748px -858px}.sbsprite-acacia_generator_5 { background-position: -770px -858px}.sbsprite-acacia_generator_4 { background-position: -792px -858px}.sbsprite-acacia_generator_3 { background-position: -814px -858px}.sbsprite-acacia_generator_2 { background-position: -836px -858px}.sbsprite-acacia_generator_1 { background-position: -858px -858px}.sbsprite-orange_greater_backpack { background-position: -880px -858px}.sbsprite-boss_collection_professor { background-position: -902px -858px}.sbsprite-soulflow_engine { background-position: -924px -858px}.sbsprite-armor_showcase { background-position: -946px -858px}.sbsprite-gingerbread_2 { background-position: -968px -858px}.sbsprite-gingerbread_1 { background-position: -990px -858px}.sbsprite-gingerbread_6 { background-position: -1012px -858px}.sbsprite-gingerbread_5 { background-position: -1034px -858px}.sbsprite-gingerbread_4 { background-position: 0 -880px}.sbsprite-small_backpack { background-position: -22px -880px}.sbsprite-gingerbread_3 { background-position: -44px -880px}.sbsprite-gingerbread_9 { background-position: -66px -880px}.sbsprite-gingerbread_8 { background-position: -88px -880px}.sbsprite-gingerbread_7 { background-position: -110px -880px}.sbsprite-small_fishing_sack { background-position: -132px -880px}.sbsprite-fast_travel_castle { background-position: -154px -880px}.sbsprite-glacite_jewel { background-position: -176px -880px}.sbsprite-medium_agronomy_sack { background-position: -198px -880px}.sbsprite-mining_fortune { background-position: -220px -880px}.sbsprite-pet_item_spooky_cupcake { background-position: -242px -880px}.sbsprite-red_medium_backpack { background-position: -264px -880px}.sbsprite-third_master_star { background-position: -286px -880px}.sbsprite-pet_skin_phoenix_ice { background-position: -308px -880px}.sbsprite-golem_hat { background-position: -330px -880px}.sbsprite-ghost_personality { background-position: -352px -880px}.sbsprite-epoch_cake_yellow { background-position: -374px -880px}.sbsprite-creeper_generator_11 { background-position: -396px -880px}.sbsprite-creeper_generator_10 { background-position: -418px -880px}.sbsprite-magenta_medium_backpack { background-position: -440px -880px}.sbsprite-pet_skin_elephant_green { background-position: -462px -880px}.sbsprite-soulflow_pile { background-position: -484px -880px}.sbsprite-pumpkin_personality { background-position: -506px -880px}.sbsprite-small_slayer_sack { background-position: -528px -880px}.sbsprite-poisoned_candle { background-position: -550px -880px}.sbsprite-bestiary_crimson_isle { background-position: -572px -880px}.sbsprite-ring_potion_affinity { background-position: -594px -880px}.sbsprite-rock_gemstone { background-position: -616px -880px}.sbsprite-blood_god_crest { background-position: -638px -880px}.sbsprite-judgement_core { background-position: -660px -880px}.sbsprite-rune_tidal { background-position: -682px -880px}.sbsprite-lava_talisman { background-position: -704px -880px}.sbsprite-revived_heart { background-position: -726px -880px}.sbsprite-killer_personality { background-position: -748px -880px}.sbsprite-snow_suit_helmet { background-position: -770px -880px}.sbsprite-blobfish_hat { background-position: -792px -880px}.sbsprite-stool { background-position: -814px -880px}.sbsprite-builder_blue_corn { background-position: -836px -880px}.sbsprite-pulpous_orange_juice { background-position: -858px -880px}.sbsprite-fast_travel_drag { background-position: -880px -880px}.sbsprite-tank_dungeon_ability_2 { background-position: -902px -880px}.sbsprite-tank_dungeon_ability_1 { background-position: -924px -880px}.sbsprite-treasure_talisman { background-position: -946px -880px}.sbsprite-bookcase { background-position: -968px -880px}.sbsprite-skeletor_helmet { background-position: -990px -880px}.sbsprite-unstable_baby { background-position: -1012px -880px}.sbsprite-large_combat_sack { background-position: -1034px -880px}.sbsprite-minos_relic { background-position: 0 -902px}.sbsprite-pet_item_bubblegum { background-position: -22px -902px}.sbsprite-small_xtree { background-position: -44px -902px}.sbsprite-epoch_cake_aqua { background-position: -66px -902px}.sbsprite-wither_blood { background-position: -88px -902px}.sbsprite-egg_hunt { background-position: -110px -902px}.sbsprite-rune_fire_spiral { background-position: -132px -902px}.sbsprite-wither_goggles { background-position: -154px -902px}.sbsprite-egg_stack { background-position: -176px -902px}.sbsprite-mummy_candle { background-position: -198px -902px}.sbsprite-enchanted_book_bundle_big_brain { background-position: -220px -902px}.sbsprite-builder_beetroot { background-position: -242px -902px}.sbsprite-rabbit_generator_11 { background-position: -264px -902px}.sbsprite-rabbit_generator_10 { background-position: -286px -902px}.sbsprite-rabbit_generator_12 { background-position: -308px -902px}.sbsprite-rotten_apple { background-position: -330px -902px}.sbsprite-etherwarp_merger { background-position: -352px -902px}.sbsprite-redstone_generator_11 { background-position: -374px -902px}.sbsprite-redstone_generator_10 { background-position: -396px -902px}.sbsprite-protector_baby { background-position: -418px -902px}.sbsprite-fast_travel_deep { background-position: -440px -902px}.sbsprite-polished_pumpkin { background-position: -462px -902px}.sbsprite-redstone_generator_12 { background-position: -484px -902px}.sbsprite-tic_tac_toe { background-position: -506px -902px}.sbsprite-foraging_2_portal { background-position: -528px -902px}.sbsprite-recombobulator_3000 { background-position: -550px -902px}.sbsprite-sand_generator_7 { background-position: -572px -902px}.sbsprite-sand_generator_8 { background-position: -594px -902px}.sbsprite-sand_generator_9 { background-position: -616px -902px}.sbsprite-scarecrow_personality { background-position: -638px -902px}.sbsprite-pet_skin_sheep_aqua { background-position: -660px -902px}.sbsprite-skull_10 { background-position: -682px -902px}.sbsprite-melon_personality { background-position: -704px -902px}.sbsprite-skull_11 { background-position: -726px -902px}.sbsprite-flawed_amethyst_gem { background-position: -748px -902px}.sbsprite-revive_stone { background-position: -770px -902px}.sbsprite-creeper_generator_9 { background-position: -792px -902px}.sbsprite-creeper_generator_8 { background-position: -814px -902px}.sbsprite-potato_basket { background-position: -836px -902px}.sbsprite-diamond_essence { background-position: -858px -902px}.sbsprite-creeper_generator_7 { background-position: -880px -902px}.sbsprite-creeper_generator_6 { background-position: -902px -902px}.sbsprite-creeper_generator_5 { background-position: -924px -902px}.sbsprite-creeper_generator_4 { background-position: -946px -902px}.sbsprite-creeper_generator_3 { background-position: -968px -902px}.sbsprite-creeper_generator_2 { background-position: -990px -902px}.sbsprite-sand_generator_1 { background-position: -1012px -902px}.sbsprite-creeper_generator_1 { background-position: -1034px -902px}.sbsprite-sand_generator_2 { background-position: 0 -924px}.sbsprite-sand_generator_3 { background-position: -22px -924px}.sbsprite-sand_generator_4 { background-position: -44px -924px}.sbsprite-sand_generator_5 { background-position: -66px -924px}.sbsprite-jerry_box_golden { background-position: -88px -924px}.sbsprite-sand_generator_6 { background-position: -110px -924px}.sbsprite-seal_of_the_family { background-position: -132px -924px}.sbsprite-gemstone_chamber { background-position: -154px -924px}.sbsprite-aqua { background-position: -176px -924px}.sbsprite-ice_hunk { background-position: -198px -924px}.sbsprite-crystal_ball { background-position: -220px -924px}.sbsprite-ice_chair { background-position: -242px -924px}.sbsprite-sandcastle_11 { background-position: -264px -924px}.sbsprite-sandcastle_10 { background-position: -286px -924px}.sbsprite-furnace_plus { background-position: -308px -924px}.sbsprite-pig_generator_12 { background-position: -330px -924px}.sbsprite-pig_generator_11 { background-position: -352px -924px}.sbsprite-pig_generator_10 { background-position: -374px -924px}.sbsprite-nether_artifact { background-position: -396px -924px}.sbsprite-chicken_generator_1 { background-position: -418px -924px}.sbsprite-sniper_helmet { background-position: -440px -924px}.sbsprite-chicken_generator_4 { background-position: -462px -924px}.sbsprite-chicken_generator_5 { background-position: -484px -924px}.sbsprite-heat_core { background-position: -506px -924px}.sbsprite-chicken_generator_2 { background-position: -528px -924px}.sbsprite-wishing_compass { background-position: -550px -924px}.sbsprite-chicken_generator_3 { background-position: -572px -924px}.sbsprite-desk { background-position: -594px -924px}.sbsprite-white_large_backpack { background-position: -616px -924px}.sbsprite-hub_portal { background-position: -638px -924px}.sbsprite-spruce_generator_10 { background-position: -660px -924px}.sbsprite-spruce_generator_11 { background-position: -682px -924px}.sbsprite-chicken_generator_8 { background-position: -704px -924px}.sbsprite-mithril_generator_9 { background-position: -726px -924px}.sbsprite-scarf_thesis { background-position: -748px -924px}.sbsprite-chicken_generator_9 { background-position: -770px -924px}.sbsprite-mithril_generator_8 { background-position: -792px -924px}.sbsprite-fast_travel_da { background-position: -814px -924px}.sbsprite-chicken_generator_6 { background-position: -836px -924px}.sbsprite-mithril_generator_7 { background-position: -858px -924px}.sbsprite-zombie_ring { background-position: -880px -924px}.sbsprite-chicken_generator_7 { background-position: -902px -924px}.sbsprite-mithril_generator_6 { background-position: -924px -924px}.sbsprite-wood_chest { background-position: -946px -924px}.sbsprite-glowstone_generator_8 { background-position: -968px -924px}.sbsprite-mithril_generator_1 { background-position: -990px -924px}.sbsprite-pink_bunny_12 { background-position: -1012px -924px}.sbsprite-purple_medium_backpack { background-position: -1034px -924px}.sbsprite-glowstone_generator_7 { background-position: 0 -946px}.sbsprite-pink_bunny_11 { background-position: -22px -946px}.sbsprite-pink_bunny_10 { background-position: -44px -946px}.sbsprite-glowstone_generator_9 { background-position: -66px -946px}.sbsprite-glowstone_generator_4 { background-position: -88px -946px}.sbsprite-mithril_generator_5 { background-position: -110px -946px}.sbsprite-glowstone_generator_3 { background-position: -132px -946px}.sbsprite-mithril_generator_4 { background-position: -154px -946px}.sbsprite-glowstone_generator_6 { background-position: -176px -946px}.sbsprite-mithril_generator_3 { background-position: -198px -946px}.sbsprite-glowstone_generator_5 { background-position: -220px -946px}.sbsprite-mithril_generator_2 { background-position: -242px -946px}.sbsprite-very_official_yellow_rock { background-position: -264px -946px}.sbsprite-bat_person_talisman { background-position: -286px -946px}.sbsprite-cyan_large_backpack { background-position: -308px -946px}.sbsprite-fairy_soul { background-position: -330px -946px}.sbsprite-ghost_8 { background-position: -352px -946px}.sbsprite-ghost_9 { background-position: -374px -946px}.sbsprite-power_talisman { background-position: -396px -946px}.sbsprite-ghost_4 { background-position: -418px -946px}.sbsprite-decent_coffee { background-position: -440px -946px}.sbsprite-ghost_5 { background-position: -462px -946px}.sbsprite-ember_fragment { background-position: -484px -946px}.sbsprite-ghost_6 { background-position: -506px -946px}.sbsprite-ghost_7 { background-position: -528px -946px}.sbsprite-dull_shark_tooth_necklace { background-position: -550px -946px}.sbsprite-ghost_1 { background-position: -572px -946px}.sbsprite-ghost_2 { background-position: -594px -946px}.sbsprite-ghost_3 { background-position: -616px -946px}.sbsprite-gold_gift { background-position: -638px -946px}.sbsprite-tank_wither_helmet { background-position: -660px -946px}.sbsprite-spider_ring { background-position: -682px -946px}.sbsprite-santa_10 { background-position: -704px -946px}.sbsprite-santa_11 { background-position: -726px -946px}.sbsprite-yellow_greater_backpack { background-position: -748px -946px}.sbsprite-sapphire_crystal { background-position: -770px -946px}.sbsprite-mayor_foxy { background-position: -792px -946px}.sbsprite-starred_shadow_assassin_helmet { background-position: -814px -946px}.sbsprite-god_potion_2 { background-position: -836px -946px}.sbsprite-goblin_helmet { background-position: -858px -946px}.sbsprite-diamond_generator_5 { background-position: -880px -946px}.sbsprite-lesser_orb_of_healing { background-position: -902px -946px}.sbsprite-diamond_generator_6 { background-position: -924px -946px}.sbsprite-diamond_generator_3 { background-position: -946px -946px}.sbsprite-pet_skin_jerry_red_elf { background-position: -968px -946px}.sbsprite-diamond_generator_4 { background-position: -990px -946px}.sbsprite-lady_bug_10 { background-position: -1012px -946px}.sbsprite-diamond_generator_1 { background-position: -1034px -946px}.sbsprite-star_decorations { background-position: 0 -968px}.sbsprite-diamond_generator_2 { background-position: -22px -968px}.sbsprite-bingo_artifact { background-position: -44px -968px}.sbsprite-diamond_generator_9 { background-position: -66px -968px}.sbsprite-lady_bug_11 { background-position: -88px -968px}.sbsprite-diamond_generator_7 { background-position: -110px -968px}.sbsprite-diamond_generator_8 { background-position: -132px -968px}.sbsprite-heart_of_the_mountain { background-position: -154px -968px}.sbsprite-glowstone_generator_2 { background-position: -176px -968px}.sbsprite-glowstone_generator_1 { background-position: -198px -968px}.sbsprite-pink_donut_personality { background-position: -220px -968px}.sbsprite-artifact_of_space { background-position: -242px -968px}.sbsprite-lesser_soulflow_engine { background-position: -264px -968px}.sbsprite-mithril_crystal { background-position: -286px -968px}.sbsprite-young_fragment { background-position: -308px -968px}.sbsprite-master_catacombs_pass_10 { background-position: -330px -968px}.sbsprite-flying_bats { background-position: -352px -968px}.sbsprite-light_blue_medium_backpack { background-position: -374px -968px}.sbsprite-fast_travel_hub { background-position: -396px -968px}.sbsprite-pumpkin_generator_2 { background-position: -418px -968px}.sbsprite-pumpkin_generator_1 { background-position: -440px -968px}.sbsprite-pumpkin_generator_4 { background-position: -462px -968px}.sbsprite-end_helmet { background-position: -484px -968px}.sbsprite-pumpkin_generator_3 { background-position: -506px -968px}.sbsprite-pumpkin_generator_6 { background-position: -528px -968px}.sbsprite-titanium_talisman { background-position: -550px -968px}.sbsprite-pumpkin_generator_5 { background-position: -572px -968px}.sbsprite-reaper_gem { background-position: -594px -968px}.sbsprite-rune_zap { background-position: -616px -968px}.sbsprite-pumpkin_generator_8 { background-position: -638px -968px}.sbsprite-pumpkin_generator_7 { background-position: -660px -968px}.sbsprite-pumpkin_generator_9 { background-position: -682px -968px}.sbsprite-crooked_artifact { background-position: -704px -968px}.sbsprite-haste_ring { background-position: -726px -968px}.sbsprite-soulflow_battery { background-position: -748px -968px}.sbsprite-medium_mining_sack { background-position: -770px -968px}.sbsprite-skull_1 { background-position: -792px -968px}.sbsprite-coffin { background-position: -814px -968px}.sbsprite-chest_shelves { background-position: -836px -968px}.sbsprite-power_ring { background-position: -858px -968px}.sbsprite-white_medium_backpack { background-position: -880px -968px}.sbsprite-divan_fragment { background-position: -902px -968px}.sbsprite-skull_8 { background-position: -924px -968px}.sbsprite-gold_essence { background-position: -946px -968px}.sbsprite-skull_9 { background-position: -968px -968px}.sbsprite-skull_6 { background-position: -990px -968px}.sbsprite-skull_7 { background-position: -1012px -968px}.sbsprite-skull_4 { background-position: -1034px -968px}.sbsprite-skull_5 { background-position: 0 -990px}.sbsprite-skull_2 { background-position: -22px -990px}.sbsprite-skull_3 { background-position: -44px -990px}.sbsprite-black_jumbo_backpack { background-position: -66px -990px}.sbsprite-fast_travel_mines { background-position: -88px -990px}.sbsprite-skull_vase { background-position: -110px -990px}.sbsprite-fishing_generator_8 { background-position: -132px -990px}.sbsprite-fishing_generator_7 { background-position: -154px -990px}.sbsprite-fishing_generator_6 { background-position: -176px -990px}.sbsprite-fishing_generator_5 { background-position: -198px -990px}.sbsprite-fishing_generator_4 { background-position: -220px -990px}.sbsprite-lime_jumbo_backpack { background-position: -242px -990px}.sbsprite-fishing_generator_3 { background-position: -264px -990px}.sbsprite-fishing_generator_2 { background-position: -286px -990px}.sbsprite-fishing_generator_1 { background-position: -308px -990px}.sbsprite-fishing_generator_9 { background-position: -330px -990px}.sbsprite-yellow_large_backpack { background-position: -352px -990px}.sbsprite-amber_crystal { background-position: -374px -990px}.sbsprite-suspicious_vial { background-position: -396px -990px}.sbsprite-campfire { background-position: -418px -990px}.sbsprite-snow_generator_4 { background-position: -440px -990px}.sbsprite-snow_generator_5 { background-position: -462px -990px}.sbsprite-ring_of_space { background-position: -484px -990px}.sbsprite-snow_generator_6 { background-position: -506px -990px}.sbsprite-talisman_enrichment_walk_speed { background-position: -528px -990px}.sbsprite-snow_generator_7 { background-position: -550px -990px}.sbsprite-snow_generator_1 { background-position: -572px -990px}.sbsprite-snow_generator_2 { background-position: -594px -990px}.sbsprite-snow_generator_3 { background-position: -616px -990px}.sbsprite-lime_medium_backpack { background-position: -638px -990px}.sbsprite-end_stone_1 { background-position: -660px -990px}.sbsprite-strong_fragment { background-position: -682px -990px}.sbsprite-small_foraging_sack { background-position: -704px -990px}.sbsprite-synthetic_heart { background-position: -726px -990px}.sbsprite-end_stone_4 { background-position: -748px -990px}.sbsprite-diamond_sadan_head { background-position: -770px -990px}.sbsprite-end_stone_5 { background-position: -792px -990px}.sbsprite-end_stone_2 { background-position: -814px -990px}.sbsprite-end_stone_3 { background-position: -836px -990px}.sbsprite-diamond_bonzo_head { background-position: -858px -990px}.sbsprite-end_stone_8 { background-position: -880px -990px}.sbsprite-end_stone_9 { background-position: -902px -990px}.sbsprite-end_stone_6 { background-position: -924px -990px}.sbsprite-end_stone_7 { background-position: -946px -990px}.sbsprite-snow_generator_8 { background-position: -968px -990px}.sbsprite-snow_generator_9 { background-position: -990px -990px}.sbsprite-ender_stone_generator_4 { background-position: -1012px -990px}.sbsprite-epoch_cake_blue { background-position: -1034px -990px}.sbsprite-sand_generator_10 { background-position: 0 -1012px}.sbsprite-ender_stone_generator_3 { background-position: -22px -1012px}.sbsprite-sand_generator_11 { background-position: -44px -1012px}.sbsprite-ender_stone_generator_2 { background-position: -66px -1012px}.sbsprite-ender_stone_generator_1 { background-position: -88px -1012px}.sbsprite-pet_skin_sheep_neon_yellow { background-position: -110px -1012px}.sbsprite-fast_travel_spider { background-position: -132px -1012px}.sbsprite-pet_skin_sheep_blue { background-position: -154px -1012px}.sbsprite-epoch_cake_black { background-position: -176px -1012px}.sbsprite-wise_baby { background-position: -198px -1012px}.sbsprite-chronomatron { background-position: -220px -1012px}.sbsprite-scarf_grimoire { background-position: -242px -1012px}.sbsprite-bestiary_hub { background-position: -264px -1012px}.sbsprite-ender_stone_generator_9 { background-position: -286px -1012px}.sbsprite-ender_stone_generator_8 { background-position: -308px -1012px}.sbsprite-ender_stone_generator_7 { background-position: -330px -1012px}.sbsprite-ender_stone_generator_6 { background-position: -352px -1012px}.sbsprite-ender_stone_generator_5 { background-position: -374px -1012px}.sbsprite-small_gemstone_sack { background-position: -396px -1012px}.sbsprite-flawless_ruby_gem { background-position: -418px -1012px}.sbsprite-gold_necron_head { background-position: -440px -1012px}.sbsprite-small_husbandry_sack { background-position: -462px -1012px}.sbsprite-reaper_orb { background-position: -484px -1012px}.sbsprite-blaze_helmet { background-position: -506px -1012px}.sbsprite-bee_personality { background-position: -528px -1012px}.sbsprite-fishing { background-position: -550px -1012px}.sbsprite-titanium_ring { background-position: -572px -1012px}.sbsprite-lime { background-position: -594px -1012px}.sbsprite-feather_talisman { background-position: -616px -1012px}.sbsprite-rough_jasper_gem { background-position: -638px -1012px}.sbsprite-goblin_omelette_spicy { background-position: -660px -1012px}.sbsprite-gold_generator_11 { background-position: -682px -1012px}.sbsprite-gold_generator_10 { background-position: -704px -1012px}.sbsprite-gold_generator_12 { background-position: -726px -1012px}.sbpet-sheep_green { background-position: 0 0}.sbpet-sheep_yellow { background-position: -20px 0}.sbpet-bal { background-position: -40px 0}.sbpet-grandma_wolf { background-position: -60px 0}.sbpet-sheep_orange { background-position: -80px 0}.sbpet-sheep_red { background-position: -100px 0}.sbpet-bat { background-position: -120px 0}.sbpet-elephant_red { background-position: -140px 0}.sbpet-rabbit { background-position: -160px 0}.sbpet-megalodon_baby { background-position: -180px 0}.sbpet-silverfish { background-position: -200px 0}.sbpet-ghoul { background-position: -220px 0}.sbpet-pigman { background-position: 0 -22px}.sbpet-elephant_orange { background-position: -20px -22px}.sbpet-jerry { background-position: -40px -22px}.sbpet-sheep_neon_yellow { background-position: -60px -22px}.sbpet-rat { background-position: -80px -22px}.sbpet-tiger { background-position: -100px -22px}.sbpet-lion { background-position: -120px -22px}.sbpet-horse { background-position: -140px -22px}.sbpet-sheep_neon_green { background-position: -160px -22px}.sbpet-giraffe { background-position: -180px -22px}.sbpet-black_cat_ivory { background-position: -200px -22px}.sbpet-golden_dragon { background-position: -220px -22px}.sbpet-rock_derp { background-position: 0 -44px}.sbpet-parrot { background-position: -20px -44px}.sbpet-sheep_blue { background-position: -40px -44px}.sbpet-monkey_golden { background-position: -60px -44px}.sbpet-jellyfish { background-position: -80px -44px}.sbpet-horse_zombie { background-position: -100px -44px}.sbpet-sheep_purple { background-position: -120px -44px}.sbpet-elephant_purple { background-position: -140px -44px}.sbpet-endermite_radiant { background-position: -160px -44px}.sbpet-rock { background-position: -180px -44px}.sbpet-default { background-position: -200px -44px}.sbpet-blaze { background-position: -220px -44px}.sbpet-endermite { background-position: 0 -66px}.sbpet-megalodon_bullhead { background-position: -20px -66px}.sbpet-hound_beagle { background-position: -40px -66px}.sbpet-zombie { background-position: -60px -66px}.sbpet-guardian { background-position: -80px -66px}.sbpet-scatha { background-position: -100px -66px}.sbpet-wolf { background-position: -120px -66px}.sbpet-rabbit_aquamarine { background-position: -140px -66px}.sbpet-spirit { background-position: -160px -66px}.sbpet-hound { background-position: -180px -66px}.sbpet-dragon_neon_purple { background-position: -200px -66px}.sbpet-tiger_twilight { background-position: -220px -66px}.sbpet-sheep_light_green { background-position: 0 -88px}.sbpet-monkey_gorilla { background-position: -20px -88px}.sbpet-spider { background-position: -40px -88px}.sbpet-mithril_golem { background-position: -60px -88px}.sbpet-dolphin_snubnose { background-position: -80px -88px}.sbpet-snowman { background-position: -100px -88px}.sbpet-bee { background-position: -120px -88px}.sbpet-monkey { background-position: -140px -88px}.sbpet-jerry_red_elf { background-position: -160px -88px}.sbpet-elephant_pink { background-position: -180px -88px}.sbpet-sheep_brown { background-position: -200px -88px}.sbpet-magma_cube { background-position: -220px -88px}.sbpet-pig { background-position: 0 -110px}.sbpet-blue_whale { background-position: -20px -110px}.sbpet-skeleton { background-position: -40px -110px}.sbpet-phoenix_ice { background-position: -60px -110px}.sbpet-ammonite { background-position: -80px -110px}.sbpet-elephant_green { background-position: -100px -110px}.sbpet-armadillo { background-position: -120px -110px}.sbpet-dolphin { background-position: -140px -110px}.sbpet-turtle { background-position: -160px -110px}.sbpet-dragon_neon_red { background-position: -180px -110px}.sbpet-tiger_saber_tooth { background-position: -200px -110px}.sbpet-wither_skeleton { background-position: -220px -110px}.sbpet-parrot_blue_macaw { background-position: 0 -132px}.sbpet-ocelot { background-position: -20px -132px}.sbpet-sheep_light_gray { background-position: -40px -132px}.sbpet-elephant_blue { background-position: -60px -132px}.sbpet-chicken_baby_chick { background-position: -80px -132px}.sbpet-rock_thinking { background-position: -100px -132px}.sbpet-enderman_slayer { background-position: -120px -132px}.sbpet-ender_dragon { background-position: -140px -132px}.sbpet-rabbit_rose { background-position: -160px -132px}.sbpet-sheep_white { background-position: -180px -132px}.sbpet-silverfish_fossilized { background-position: -200px -132px}.sbpet-squid { background-position: -220px -132px}.sbpet-sheep_light_blue { background-position: 0 -154px}.sbpet-elephant { background-position: -20px -154px}.sbpet-golden_dragon_egg { background-position: -40px -154px}.sbpet-enderman { background-position: -60px -154px}.sbpet-chicken { background-position: -80px -154px}.sbpet-parrot_gold_macaw { background-position: -100px -154px}.sbpet-sheep_gray { background-position: -120px -154px}.sbpet-rock_cool { background-position: -140px -154px}.sbpet-rock_laugh { background-position: -160px -154px}.sbpet-sheep_black { background-position: -180px -154px}.sbpet-sheep_neon_blue { background-position: -200px -154px}.sbpet-rock_embarrassed { background-position: -220px -154px}.sbpet-dragon_neon_blue { background-position: 0 -176px}.sbpet-sheep { background-position: -20px -176px}.sbpet-baby_yeti { background-position: -40px -176px}.sbpet-sheep_aqua { background-position: -60px -176px}.sbpet-sheep_pink { background-position: -80px -176px}.sbpet-elephant_monochrome { background-position: -100px -176px}.sbpet-wolf_henzo_doggo { background-position: -120px -176px}.sbpet-squid_glow { background-position: -140px -176px}.sbpet-flying_fish { background-position: -160px -176px}.sbpet-griffin { background-position: -180px -176px}.sbpet-jerry_green_elf { background-position: -200px -176px}.sbpet-dragon_pastel { background-position: -220px -176px}.sbpet-sheep_neon_red { background-position: 0 -198px}.sbpet-sheep_magenta { background-position: -20px -198px}.sbpet-skeleton_horse { background-position: -40px -198px}.sbpet-megalodon { background-position: -60px -198px}.sbpet-lion_lioness { background-position: -80px -198px}.sbpet-tarantula { background-position: -100px -198px}.sbpet-yeti_grown_up { background-position: -120px -198px}.sbpet-phoenix { background-position: -140px -198px}.sbpet-golem { background-position: -160px -198px}.sbpet-black_cat { background-position: -180px -198px}.sbpet-whale_orca { background-position: -200px -198px}.sbpet-rock_smile { background-position: -220px -198px}.sbpet-wither { background-position: 0 -220px}.sbpet-black_cat_onyx { background-position: -20px -220px}.sbspray-AngryTurkey { background-position: 0 0}.sbspray-AnotherDimension { background-position: -128px 0}.sbspray-BlueArrowE { background-position: -256px 0}.sbspray-BlueArrowN { background-position: -384px 0}.sbspray-BlueArrowNE { background-position: -512px 0}.sbspray-BlueArrowNW { background-position: -640px 0}.sbspray-BlueArrowS { background-position: -768px 0}.sbspray-BlueArrowSE { background-position: -896px 0}.sbspray-BlueArrowSW { background-position: -1024px 0}.sbspray-BlueArrowW { background-position: -1152px 0}.sbspray-Bonzo { background-position: 0 -128px}.sbspray-Boom { background-position: -128px -128px}.sbspray-BunnyGG { background-position: -256px -128px}.sbspray-ChestGlow { background-position: -384px -128px}.sbspray-Chill { background-position: -512px -128px}.sbspray-Chimney { background-position: -640px -128px}.sbspray-ChocolateFeast { background-position: -768px -128px}.sbspray-ChristmasTree { background-position: -896px -128px}.sbspray-Coconut { background-position: -1024px -128px}.sbspray-Creeper { background-position: -1152px -128px}.sbspray-EasterBasket { background-position: 0 -256px}.sbspray-EasterCreeper { background-position: -128px -256px}.sbspray-EasterEggs { background-position: -256px -256px}.sbspray-Eek { background-position: -384px -256px}.sbspray-EggHunt { background-position: -512px -256px}.sbspray-EggSurprise { background-position: -640px -256px}.sbspray-Faboolous { background-position: -768px -256px}.sbspray-FarmingArrowE { background-position: -896px -256px}.sbspray-FarmingArrowN { background-position: -1024px -256px}.sbspray-FarmingArrowS { background-position: -1152px -256px}.sbspray-FarmingArrowW { background-position: 0 -384px}.sbspray-FoundU { background-position: -128px -384px}.sbspray-Garlic { background-position: -256px -384px}.sbspray-GenericArmor { background-position: -384px -384px}.sbspray-GenericBooks { background-position: -512px -384px}.sbspray-GenericFishing { background-position: -640px -384px}.sbspray-GenericMob { background-position: -768px -384px}.sbspray-GenericOres { background-position: -896px -384px}.sbspray-GenericPotions { background-position: -1024px -384px}.sbspray-GenericWeapons { background-position: -1152px -384px}.sbspray-GoldenEgg { background-position: 0 -512px}.sbspray-Heart { background-position: -128px -512px}.sbspray-Hypixel { background-position: -256px -512px}.sbspray-HypixelDark { background-position: -384px -512px}.sbspray-IceCream { background-position: -512px -512px}.sbspray-Kite { background-position: -640px -512px}.sbspray-LetUsIn { background-position: -768px -512px}.sbspray-Lifebelt { background-position: -896px -512px}.sbspray-MinionAnimals { background-position: -1024px -512px}.sbspray-MinionFarming { background-position: -1152px -512px}.sbspray-MinionForaging { background-position: 0 -640px}.sbspray-MinionMining { background-position: -128px -640px}.sbspray-MinionMisc { background-position: -256px -640px}.sbspray-MinionMonsters { background-position: -384px -640px}.sbspray-OnFire { background-position: -512px -640px}.sbspray-Porkchop { background-position: -640px -640px}.sbspray-PortalArrowE { background-position: -768px -640px}.sbspray-PortalArrowN { background-position: -896px -640px}.sbspray-PortalArrowS { background-position: -1024px -640px}.sbspray-PortalArrowW { background-position: -1152px -640px}.sbspray-Presents { background-position: 0 -768px}.sbspray-Puffer { background-position: -128px -768px}.sbspray-PuppySurprise { background-position: -256px -768px}.sbspray-RabbitCostume { background-position: -384px -768px}.sbspray-RedArrowE { background-position: -512px -768px}.sbspray-RedArrowN { background-position: -640px -768px}.sbspray-RedArrowNE { background-position: -768px -768px}.sbspray-RedArrowNW { background-position: -896px -768px}.sbspray-RedArrowS { background-position: -1024px -768px}.sbspray-RedArrowSE { background-position: -1152px -768px}.sbspray-RedArrowSW { background-position: 0 -896px}.sbspray-RedArrowW { background-position: -128px -896px}.sbspray-SandCastleH { background-position: -256px -896px}.sbspray-Sandcastle { background-position: -384px -896px}.sbspray-SantaJerry { background-position: -512px -896px}.sbspray-SantaSlips { background-position: -640px -896px}.sbspray-Sign { background-position: -768px -896px}.sbspray-SkyBlockChristmas { background-position: -896px -896px}.sbspray-SniperSnowball { background-position: -1024px -896px}.sbspray-Snowball { background-position: -1152px -896px}.sbspray-StorageArrowE { background-position: 0 -1024px}.sbspray-StorageArrowN { background-position: -128px -1024px}.sbspray-StorageArrowS { background-position: -256px -1024px}.sbspray-StorageArrowW { background-position: -384px -1024px}.sbspray-Surfing { background-position: -512px -1024px}.sbspray-TheWrongEggs { background-position: -640px -1024px}.sbspray-Trap { background-position: -768px -1024px}.sbspray-TrickOrTreat { background-position: -896px -1024px}.sbspray-UndeadJerry { background-position: -1024px -1024px}.sbspray-Volleyball { background-position: -1152px -1024px}.sbspray-Watcher { background-position: 0 -1152px}.sbspray-Whoosh { background-position: -128px -1152px}.sbspray-WitchPlease { background-position: -256px -1152px}.sbspray-Wreath { background-position: -384px -1152px}.sbspray-YellowArrowE { background-position: -512px -1152px}.sbspray-YellowArrowN { background-position: -640px -1152px}.sbspray-YellowArrowNE { background-position: -768px -1152px}.sbspray-YellowArrowNW { background-position: -896px -1152px}.sbspray-YellowArrowS { background-position: -1024px -1152px}.sbspray-YellowArrowSE { background-position: -1152px -1152px}.sbspray-YellowArrowSW { background-position: -1280px 0}.sbspray-YellowArrowW { background-position: -1280px -128px}.mcsprite-acacia_boat { background-position: 0 0}.mcsprite-acacia_button { background-position: -32px 0}.mcsprite-acacia_door { background-position: -64px 0}.mcsprite-acacia_fence { background-position: -96px 0}.mcsprite-acacia_fence_gate { background-position: -128px 0}.mcsprite-acacia_leaves { background-position: -160px 0}.mcsprite-acacia_log { background-position: -192px 0}.mcsprite-acacia_planks { background-position: -224px 0}.mcsprite-acacia_pressure_plate { background-position: -256px 0}.mcsprite-acacia_sapling { background-position: -288px 0}.mcsprite-acacia_sign { background-position: -320px 0}.mcsprite-acacia_slab { background-position: -352px 0}.mcsprite-acacia_stairs { background-position: -384px 0}.mcsprite-acacia_trapdoor { background-position: -416px 0}.mcsprite-acacia_wood { background-position: -448px 0}.mcsprite-acacia_wood_button { background-position: -480px 0}.mcsprite-acacia_wood_door { background-position: -512px 0}.mcsprite-acacia_wood_fence { background-position: -544px 0}.mcsprite-acacia_wood_fence_gate { background-position: -576px 0}.mcsprite-acacia_wood_planks { background-position: -608px 0}.mcsprite-acacia_wood_pressure_plate { background-position: -640px 0}.mcsprite-acacia_wood_sign { background-position: -672px 0}.mcsprite-acacia_wood_slab { background-position: -704px 0}.mcsprite-acacia_wood_stairs { background-position: -736px 0}.mcsprite-acacia_wood_trapdoor { background-position: -768px 0}.mcsprite-activator_rail { background-position: -800px 0}.mcsprite-adult_carrots { background-position: -832px 0}.mcsprite-adult_nether_warts { background-position: -864px 0}.mcsprite-adult_potatoes { background-position: -896px 0}.mcsprite-adult_wheat_crops { background-position: -928px 0}.mcsprite-air { background-position: -960px 0}.mcsprite-allium { background-position: -992px 0}.mcsprite-amethyst_cluster { background-position: -1024px 0}.mcsprite-amethyst_shard { background-position: -1056px 0}.mcsprite-ancient_debris { background-position: -1088px 0}.mcsprite-andesite { background-position: -1120px 0}.mcsprite-andesite_slab { background-position: -1152px 0}.mcsprite-andesite_stairs { background-position: -1184px 0}.mcsprite-andesite_wall { background-position: -1216px 0}.mcsprite-anvil { background-position: -1248px 0}.mcsprite-apple { background-position: 0 -32px}.mcsprite-armor_stand { background-position: -32px -32px}.mcsprite-arrow { background-position: -64px -32px}.mcsprite-arrow_loaded_crossbow { background-position: -96px -32px}.mcsprite-arrow_of_decay { background-position: -128px -32px}.mcsprite-arrow_of_fire_resistance { background-position: -160px -32px}.mcsprite-arrow_of_harming { background-position: -192px -32px}.mcsprite-arrow_of_healing { background-position: -224px -32px}.mcsprite-arrow_of_invisibility { background-position: -256px -32px}.mcsprite-arrow_of_leaping { background-position: -288px -32px}.mcsprite-arrow_of_luck { background-position: -320px -32px}.mcsprite-arrow_of_night_vision { background-position: -352px -32px}.mcsprite-arrow_of_poison { background-position: -384px -32px}.mcsprite-arrow_of_regeneration { background-position: -416px -32px}.mcsprite-arrow_of_slow_falling { background-position: -448px -32px}.mcsprite-arrow_of_slowness { background-position: -480px -32px}.mcsprite-arrow_of_splashing { background-position: -512px -32px}.mcsprite-arrow_of_strength { background-position: -544px -32px}.mcsprite-arrow_of_swiftness { background-position: -576px -32px}.mcsprite-arrow_of_the_turtle_master { background-position: -608px -32px}.mcsprite-arrow_of_water_breathing { background-position: -640px -32px}.mcsprite-arrow_of_weakness { background-position: -672px -32px}.mcsprite-awkward_lingering_potion { background-position: -704px -32px}.mcsprite-awkward_potion { background-position: -736px -32px}.mcsprite-awkward_splash_potion { background-position: -768px -32px}.mcsprite-axolotl_spawn_egg { background-position: -800px -32px}.mcsprite-azalea { background-position: -832px -32px}.mcsprite-azalea_leaves { background-position: -864px -32px}.mcsprite-azure_bluet { background-position: -896px -32px}.mcsprite-baked_potato { background-position: -928px -32px}.mcsprite-bamboo { background-position: -960px -32px}.mcsprite-banner { background-position: -992px -32px}.mcsprite-barrel { background-position: -1024px -32px}.mcsprite-barrier { background-position: -1056px -32px}.mcsprite-basalt { background-position: -1088px -32px}.mcsprite-bat_spawn_egg { background-position: -1120px -32px}.mcsprite-beacon { background-position: -1152px -32px}.mcsprite-bedrock { background-position: -1184px -32px}.mcsprite-bee_nest { background-position: -1216px -32px}.mcsprite-bee_spawn_egg { background-position: -1248px -32px}.mcsprite-beehive { background-position: 0 -64px}.mcsprite-beetroot { background-position: -32px -64px}.mcsprite-beetroot_seeds { background-position: -64px -64px}.mcsprite-beetroot_soup { background-position: -96px -64px}.mcsprite-beetroots { background-position: -128px -64px}.mcsprite-bell { background-position: -160px -64px}.mcsprite-big_dripleaf { background-position: -192px -64px}.mcsprite-birch_boat { background-position: -224px -64px}.mcsprite-birch_button { background-position: -256px -64px}.mcsprite-birch_door { background-position: -288px -64px}.mcsprite-birch_fence { background-position: -320px -64px}.mcsprite-birch_fence_gate { background-position: -352px -64px}.mcsprite-birch_leaves { background-position: -384px -64px}.mcsprite-birch_log { background-position: -416px -64px}.mcsprite-birch_planks { background-position: -448px -64px}.mcsprite-birch_pressure_plate { background-position: -480px -64px}.mcsprite-birch_sapling { background-position: -512px -64px}.mcsprite-birch_sign { background-position: -544px -64px}.mcsprite-birch_slab { background-position: -576px -64px}.mcsprite-birch_stairs { background-position: -608px -64px}.mcsprite-birch_trapdoor { background-position: -640px -64px}.mcsprite-birch_wood { background-position: -672px -64px}.mcsprite-birch_wood_button { background-position: -704px -64px}.mcsprite-birch_wood_door { background-position: -736px -64px}.mcsprite-birch_wood_fence { background-position: -768px -64px}.mcsprite-birch_wood_fence_gate { background-position: -800px -64px}.mcsprite-birch_wood_planks { background-position: -832px -64px}.mcsprite-birch_wood_pressure_plate { background-position: -864px -64px}.mcsprite-birch_wood_sign { background-position: -896px -64px}.mcsprite-birch_wood_slab { background-position: -928px -64px}.mcsprite-birch_wood_stairs { background-position: -960px -64px}.mcsprite-birch_wood_trapdoor { background-position: -992px -64px}.mcsprite-black_banner { background-position: -1024px -64px}.mcsprite-black_bed { background-position: -1056px -64px}.mcsprite-black_bed_lce { background-position: -1088px -64px}.mcsprite-black_candle { background-position: -1120px -64px}.mcsprite-black_carpet { background-position: -1152px -64px}.mcsprite-black_concrete { background-position: -1184px -64px}.mcsprite-black_concrete_powder { background-position: -1216px -64px}.mcsprite-black_dye { background-position: -1248px -64px}.mcsprite-black_firework_star { background-position: 0 -96px}.mcsprite-black_glazed_terracotta { background-position: -32px -96px}.mcsprite-black_shield { background-position: -64px -96px}.mcsprite-black_shulker_box { background-position: -96px -96px}.mcsprite-black_stained_glass { background-position: -128px -96px}.mcsprite-black_stained_glass_pane { background-position: -160px -96px}.mcsprite-black_terracotta { background-position: -192px -96px}.mcsprite-black_wool { background-position: -224px -96px}.mcsprite-blackstone { background-position: -256px -96px}.mcsprite-blackstone_slab { background-position: -288px -96px}.mcsprite-blackstone_stairs { background-position: -320px -96px}.mcsprite-blackstone_wall { background-position: -352px -96px}.mcsprite-blast_furnace { background-position: -384px -96px}.mcsprite-blaze_powder { background-position: -416px -96px}.mcsprite-blaze_rod { background-position: -448px -96px}.mcsprite-blaze_spawn_egg { background-position: -480px -96px}.mcsprite-block_of_amethyst { background-position: -512px -96px}.mcsprite-block_of_coal { background-position: -544px -96px}.mcsprite-block_of_copper { background-position: -576px -96px}.mcsprite-block_of_diamond { background-position: -608px -96px}.mcsprite-block_of_emerald { background-position: -640px -96px}.mcsprite-block_of_gold { background-position: -672px -96px}.mcsprite-block_of_iron { background-position: -704px -96px}.mcsprite-block_of_lapis_lazuli { background-position: -736px -96px}.mcsprite-block_of_netherite { background-position: -768px -96px}.mcsprite-block_of_quartz { background-position: -800px -96px}.mcsprite-block_of_raw_copper { background-position: -832px -96px}.mcsprite-block_of_raw_gold { background-position: -864px -96px}.mcsprite-block_of_raw_iron { background-position: -896px -96px}.mcsprite-block_of_redstone { background-position: -928px -96px}.mcsprite-blue_banner { background-position: -960px -96px}.mcsprite-blue_bed { background-position: -992px -96px}.mcsprite-blue_bed_lce { background-position: -1024px -96px}.mcsprite-blue_candle { background-position: -1056px -96px}.mcsprite-blue_carpet { background-position: -1088px -96px}.mcsprite-blue_concrete { background-position: -1120px -96px}.mcsprite-blue_concrete_powder { background-position: -1152px -96px}.mcsprite-blue_dye { background-position: -1184px -96px}.mcsprite-blue_firework_star { background-position: -1216px -96px}.mcsprite-blue_glazed_terracotta { background-position: -1248px -96px}.mcsprite-blue_ice { background-position: 0 -128px}.mcsprite-blue_orchid { background-position: -32px -128px}.mcsprite-blue_shield { background-position: -64px -128px}.mcsprite-blue_shulker_box { background-position: -96px -128px}.mcsprite-blue_stained_glass { background-position: -128px -128px}.mcsprite-blue_stained_glass_pane { background-position: -160px -128px}.mcsprite-blue_terracotta { background-position: -192px -128px}.mcsprite-blue_wool { background-position: -224px -128px}.mcsprite-bone { background-position: -256px -128px}.mcsprite-bone_block { background-position: -288px -128px}.mcsprite-bone_meal { background-position: -320px -128px}.mcsprite-book { background-position: -352px -128px}.mcsprite-book_and_quill { background-position: -384px -128px}.mcsprite-bookshelf { background-position: -416px -128px}.mcsprite-bottle_o_enchanting { background-position: -448px -128px}.mcsprite-bow { background-position: -480px -128px}.mcsprite-bowl { background-position: -512px -128px}.mcsprite-brain_coral { background-position: -544px -128px}.mcsprite-brain_coral_block { background-position: -576px -128px}.mcsprite-brain_coral_fan { background-position: -608px -128px}.mcsprite-bread { background-position: -640px -128px}.mcsprite-brewing_stand { background-position: -672px -128px}.mcsprite-brick { background-position: -704px -128px}.mcsprite-brick_slab { background-position: -736px -128px}.mcsprite-brick_slab_old { background-position: -768px -128px}.mcsprite-brick_stairs { background-position: -800px -128px}.mcsprite-brick_wall { background-position: -832px -128px}.mcsprite-bricks { background-position: -864px -128px}.mcsprite-bricks_old { background-position: -896px -128px}.mcsprite-broken_anvil { background-position: -928px -128px}.mcsprite-broken_elytra { background-position: -960px -128px}.mcsprite-brown_banner { background-position: -992px -128px}.mcsprite-brown_bed { background-position: -1024px -128px}.mcsprite-brown_bed_lce { background-position: -1056px -128px}.mcsprite-brown_candle { background-position: -1088px -128px}.mcsprite-brown_carpet { background-position: -1120px -128px}.mcsprite-brown_concrete { background-position: -1152px -128px}.mcsprite-brown_concrete_powder { background-position: -1184px -128px}.mcsprite-brown_dye { background-position: -1216px -128px}.mcsprite-brown_firework_star { background-position: -1248px -128px}.mcsprite-brown_glazed_terracotta { background-position: 0 -160px}.mcsprite-brown_mushroom { background-position: -32px -160px}.mcsprite-brown_mushroom_block { background-position: -64px -160px}.mcsprite-brown_shield { background-position: -96px -160px}.mcsprite-brown_shulker_box { background-position: -128px -160px}.mcsprite-brown_stained_glass { background-position: -160px -160px}.mcsprite-brown_stained_glass_pane { background-position: -192px -160px}.mcsprite-brown_terracotta { background-position: -224px -160px}.mcsprite-brown_wool { background-position: -256px -160px}.mcsprite-bubble_column { background-position: -288px -160px}.mcsprite-bubble_coral { background-position: -320px -160px}.mcsprite-bubble_coral_block { background-position: -352px -160px}.mcsprite-bubble_coral_fan { background-position: -384px -160px}.mcsprite-bucket { background-position: -416px -160px}.mcsprite-bucket_of_axolotl { background-position: -448px -160px}.mcsprite-bucket_of_cod { background-position: -480px -160px}.mcsprite-bucket_of_pufferfish { background-position: -512px -160px}.mcsprite-bucket_of_salmon { background-position: -544px -160px}.mcsprite-bucket_of_tropical_fish { background-position: -576px -160px}.mcsprite-budding_amethyst { background-position: -608px -160px}.mcsprite-bundle { background-position: -640px -160px}.mcsprite-buried_treasure_map { background-position: -672px -160px}.mcsprite-cactus { background-position: -704px -160px}.mcsprite-cactus_green { background-position: -736px -160px}.mcsprite-cake { background-position: -768px -160px}.mcsprite-calcite { background-position: -800px -160px}.mcsprite-campfire { background-position: -832px -160px}.mcsprite-candle { background-position: -864px -160px}.mcsprite-carrot { background-position: -896px -160px}.mcsprite-carrot_on_a_stick { background-position: -928px -160px}.mcsprite-cartography_table { background-position: -960px -160px}.mcsprite-carved_pumpkin { background-position: -992px -160px}.mcsprite-cast_fishing_rod { background-position: -1024px -160px}.mcsprite-cat_spawn_egg { background-position: -1056px -160px}.mcsprite-cauldron { background-position: -1088px -160px}.mcsprite-cave_air { background-position: -1120px -160px}.mcsprite-cave_spider_spawn_egg { background-position: -1152px -160px}.mcsprite-chain { background-position: -1184px -160px}.mcsprite-chainmail_boots { background-position: -1216px -160px}.mcsprite-chainmail_chestplate { background-position: -1248px -160px}.mcsprite-chainmail_helmet { background-position: 0 -192px}.mcsprite-chainmail_leggings { background-position: -32px -192px}.mcsprite-charcoal { background-position: -64px -192px}.mcsprite-chest { background-position: -96px -192px}.mcsprite-chicken_spawn_egg { background-position: -128px -192px}.mcsprite-chipped_anvil { background-position: -160px -192px}.mcsprite-chiseled_deepslate { background-position: -192px -192px}.mcsprite-chiseled_nether_bricks { background-position: -224px -192px}.mcsprite-chiseled_polished_blackstone { background-position: -256px -192px}.mcsprite-chiseled_quartz_block { background-position: -288px -192px}.mcsprite-chiseled_red_sandstone { background-position: -320px -192px}.mcsprite-chiseled_sandstone { background-position: -352px -192px}.mcsprite-chiseled_stone_bricks { background-position: -384px -192px}.mcsprite-chiseled_stone_bricks_monster_egg { background-position: -416px -192px}.mcsprite-chorus_flower { background-position: -448px -192px}.mcsprite-chorus_fruit { background-position: -480px -192px}.mcsprite-chorus_plant { background-position: -512px -192px}.mcsprite-clay { background-position: -544px -192px}.mcsprite-clay_ball { background-position: -576px -192px}.mcsprite-clock { background-position: -608px -192px}.mcsprite-clownfish { background-position: -640px -192px}.mcsprite-coal { background-position: -672px -192px}.mcsprite-coal_ore { background-position: -704px -192px}.mcsprite-coarse_dirt { background-position: -736px -192px}.mcsprite-cobbled_deepslate { background-position: -768px -192px}.mcsprite-cobbled_deepslate_slab { background-position: -800px -192px}.mcsprite-cobbled_deepslate_stairs { background-position: -832px -192px}.mcsprite-cobbled_deepslate_wall { background-position: -864px -192px}.mcsprite-cobblestone { background-position: -896px -192px}.mcsprite-cobblestone_monster_egg { background-position: -928px -192px}.mcsprite-cobblestone_slab { background-position: -960px -192px}.mcsprite-cobblestone_stairs { background-position: -992px -192px}.mcsprite-cobblestone_wall { background-position: -1024px -192px}.mcsprite-cobweb { background-position: -1056px -192px}.mcsprite-cocoa_beans { background-position: -1088px -192px}.mcsprite-cod_spawn_egg { background-position: -1120px -192px}.mcsprite-command_block { background-position: -1152px -192px}.mcsprite-compass { background-position: -1184px -192px}.mcsprite-composter { background-position: -1216px -192px}.mcsprite-conduit { background-position: -1248px -192px}.mcsprite-cooked_beef { background-position: 0 -224px}.mcsprite-cooked_chicken { background-position: -32px -224px}.mcsprite-cooked_cod { background-position: -64px -224px}.mcsprite-cooked_fish { background-position: -96px -224px}.mcsprite-cooked_mutton { background-position: -128px -224px}.mcsprite-cooked_porkchop { background-position: -160px -224px}.mcsprite-cooked_rabbit { background-position: -192px -224px}.mcsprite-cooked_salmon { background-position: -224px -224px}.mcsprite-cookie { background-position: -256px -224px}.mcsprite-copper_block { background-position: -288px -224px}.mcsprite-copper_ingot { background-position: -320px -224px}.mcsprite-copper_ore { background-position: -352px -224px}.mcsprite-cornflower { background-position: -384px -224px}.mcsprite-cow_spawn_egg { background-position: -416px -224px}.mcsprite-cracked_deepslate_bricks { background-position: -448px -224px}.mcsprite-cracked_deepslate_tiles { background-position: -480px -224px}.mcsprite-cracked_nether_bricks { background-position: -512px -224px}.mcsprite-cracked_polished_blackstone_bricks { background-position: -544px -224px}.mcsprite-cracked_stone_bricks { background-position: -576px -224px}.mcsprite-cracked_stone_bricks_monster_egg { background-position: -608px -224px}.mcsprite-crafting_table { background-position: -640px -224px}.mcsprite-creeper_head { background-position: -672px -224px}.mcsprite-creeper_spawn_egg { background-position: -704px -224px}.mcsprite-crimson_button { background-position: -736px -224px}.mcsprite-crimson_door { background-position: -768px -224px}.mcsprite-crimson_fence { background-position: -800px -224px}.mcsprite-crimson_fence_gate { background-position: -832px -224px}.mcsprite-crimson_fungus { background-position: -864px -224px}.mcsprite-crimson_hyphae { background-position: -896px -224px}.mcsprite-crimson_nylium { background-position: -928px -224px}.mcsprite-crimson_planks { background-position: -960px -224px}.mcsprite-crimson_pressure_plate { background-position: -992px -224px}.mcsprite-crimson_roots { background-position: -1024px -224px}.mcsprite-crimson_sign { background-position: -1056px -224px}.mcsprite-crimson_slab { background-position: -1088px -224px}.mcsprite-crimson_stairs { background-position: -1120px -224px}.mcsprite-crimson_stem { background-position: -1152px -224px}.mcsprite-crimson_trapdoor { background-position: -1184px -224px}.mcsprite-crossbow { background-position: -1216px -224px}.mcsprite-crying_obsidian { background-position: -1248px -224px}.mcsprite-cut_copper { background-position: 0 -256px}.mcsprite-cut_copper_block { background-position: -32px -256px}.mcsprite-cut_copper_slab { background-position: -64px -256px}.mcsprite-cut_copper_stairs { background-position: -96px -256px}.mcsprite-cut_red_sandstone { background-position: -128px -256px}.mcsprite-cut_red_sandstone_slab { background-position: -160px -256px}.mcsprite-cut_sandstone { background-position: -192px -256px}.mcsprite-cut_sandstone_slab { background-position: -224px -256px}.mcsprite-cyan_banner { background-position: -256px -256px}.mcsprite-cyan_bed { background-position: -288px -256px}.mcsprite-cyan_bed_lce { background-position: -320px -256px}.mcsprite-cyan_candle { background-position: -352px -256px}.mcsprite-cyan_carpet { background-position: -384px -256px}.mcsprite-cyan_concrete { background-position: -416px -256px}.mcsprite-cyan_concrete_powder { background-position: -448px -256px}.mcsprite-cyan_dye { background-position: -480px -256px}.mcsprite-cyan_firework_star { background-position: -512px -256px}.mcsprite-cyan_glazed_terracotta { background-position: -544px -256px}.mcsprite-cyan_shield { background-position: -576px -256px}.mcsprite-cyan_shulker_box { background-position: -608px -256px}.mcsprite-cyan_stained_glass { background-position: -640px -256px}.mcsprite-cyan_stained_glass_pane { background-position: -672px -256px}.mcsprite-cyan_terracotta { background-position: -704px -256px}.mcsprite-cyan_wool { background-position: -736px -256px}.mcsprite-dandelion { background-position: -768px -256px}.mcsprite-dandelion_yellow { background-position: -800px -256px}.mcsprite-dark_oak_boat { background-position: -832px -256px}.mcsprite-dark_oak_button { background-position: -864px -256px}.mcsprite-dark_oak_door { background-position: -896px -256px}.mcsprite-dark_oak_fence { background-position: -928px -256px}.mcsprite-dark_oak_fence_gate { background-position: -960px -256px}.mcsprite-dark_oak_leaves { background-position: -992px -256px}.mcsprite-dark_oak_log { background-position: -1024px -256px}.mcsprite-dark_oak_planks { background-position: -1056px -256px}.mcsprite-dark_oak_pressure_plate { background-position: -1088px -256px}.mcsprite-dark_oak_sapling { background-position: -1120px -256px}.mcsprite-dark_oak_sign { background-position: -1152px -256px}.mcsprite-dark_oak_slab { background-position: -1184px -256px}.mcsprite-dark_oak_stairs { background-position: -1216px -256px}.mcsprite-dark_oak_trapdoor { background-position: -1248px -256px}.mcsprite-dark_oak_wood { background-position: 0 -288px}.mcsprite-dark_oak_wood_button { background-position: -32px -288px}.mcsprite-dark_oak_wood_door { background-position: -64px -288px}.mcsprite-dark_oak_wood_fence { background-position: -96px -288px}.mcsprite-dark_oak_wood_fence_gate { background-position: -128px -288px}.mcsprite-dark_oak_wood_planks { background-position: -160px -288px}.mcsprite-dark_oak_wood_pressure_plate { background-position: -192px -288px}.mcsprite-dark_oak_wood_sign { background-position: -224px -288px}.mcsprite-dark_oak_wood_slab { background-position: -256px -288px}.mcsprite-dark_oak_wood_stairs { background-position: -288px -288px}.mcsprite-dark_oak_wood_trapdoor { background-position: -320px -288px}.mcsprite-dark_prismarine { background-position: -352px -288px}.mcsprite-dark_prismarine_slab { background-position: -384px -288px}.mcsprite-dark_prismarine_stairs { background-position: -416px -288px}.mcsprite-daylight_detector { background-position: -448px -288px}.mcsprite-daylight_sensor { background-position: -480px -288px}.mcsprite-dead_brain_coral { background-position: -512px -288px}.mcsprite-dead_brain_coral_block { background-position: -544px -288px}.mcsprite-dead_brain_coral_fan { background-position: -576px -288px}.mcsprite-dead_bubble_coral { background-position: -608px -288px}.mcsprite-dead_bubble_coral_block { background-position: -640px -288px}.mcsprite-dead_bubble_coral_fan { background-position: -672px -288px}.mcsprite-dead_bush { background-position: -704px -288px}.mcsprite-dead_fire_coral { background-position: -736px -288px}.mcsprite-dead_fire_coral_block { background-position: -768px -288px}.mcsprite-dead_fire_coral_fan { background-position: -800px -288px}.mcsprite-dead_horn_coral { background-position: -832px -288px}.mcsprite-dead_horn_coral_block { background-position: -864px -288px}.mcsprite-dead_horn_coral_fan { background-position: -896px -288px}.mcsprite-dead_tube_coral { background-position: -928px -288px}.mcsprite-dead_tube_coral_block { background-position: -960px -288px}.mcsprite-dead_tube_coral_fan { background-position: -992px -288px}.mcsprite-debug_stick { background-position: -1024px -288px}.mcsprite-deepslate { background-position: -1056px -288px}.mcsprite-deepslate_brick_slab { background-position: -1088px -288px}.mcsprite-deepslate_brick_stairs { background-position: -1120px -288px}.mcsprite-deepslate_brick_wall { background-position: -1152px -288px}.mcsprite-deepslate_bricks { background-position: -1184px -288px}.mcsprite-deepslate_coal_ore { background-position: -1216px -288px}.mcsprite-deepslate_copper_ore { background-position: -1248px -288px}.mcsprite-deepslate_diamond_ore { background-position: 0 -320px}.mcsprite-deepslate_emerald_ore { background-position: -32px -320px}.mcsprite-deepslate_gold_ore { background-position: -64px -320px}.mcsprite-deepslate_iron_ore { background-position: -96px -320px}.mcsprite-deepslate_lapis_lazuli_ore { background-position: -128px -320px}.mcsprite-deepslate_redstone_ore { background-position: -160px -320px}.mcsprite-deepslate_tile_slab { background-position: -192px -320px}.mcsprite-deepslate_tile_stairs { background-position: -224px -320px}.mcsprite-deepslate_tile_wall { background-position: -256px -320px}.mcsprite-deepslate_tiles { background-position: -288px -320px}.mcsprite-detector_rail { background-position: -320px -320px}.mcsprite-diamond { background-position: -352px -320px}.mcsprite-diamond_axe { background-position: -384px -320px}.mcsprite-diamond_boots { background-position: -416px -320px}.mcsprite-diamond_chestplate { background-position: -448px -320px}.mcsprite-diamond_helmet { background-position: -480px -320px}.mcsprite-diamond_hoe { background-position: -512px -320px}.mcsprite-diamond_horse_armor { background-position: -544px -320px}.mcsprite-diamond_leggings { background-position: -576px -320px}.mcsprite-diamond_ore { background-position: -608px -320px}.mcsprite-diamond_pickaxe { background-position: -640px -320px}.mcsprite-diamond_shovel { background-position: -672px -320px}.mcsprite-diamond_sword { background-position: -704px -320px}.mcsprite-diorite { background-position: -736px -320px}.mcsprite-diorite_slab { background-position: -768px -320px}.mcsprite-diorite_stairs { background-position: -800px -320px}.mcsprite-diorite_wall { background-position: -832px -320px}.mcsprite-dirt { background-position: -864px -320px}.mcsprite-dirt_path { background-position: -896px -320px}.mcsprite-dispenser { background-position: -928px -320px}.mcsprite-dolphin_spawn_egg { background-position: -960px -320px}.mcsprite-donkey_spawn_egg { background-position: -992px -320px}.mcsprite-double_smooth_stone_slab { background-position: -1024px -320px}.mcsprite-dragon_egg { background-position: -1056px -320px}.mcsprite-dragon_head { background-position: -1088px -320px}.mcsprite-dragons_breath { background-position: -1120px -320px}.mcsprite-dried_kelp { background-position: -1152px -320px}.mcsprite-dried_kelp_block { background-position: -1184px -320px}.mcsprite-dripstone_block { background-position: -1216px -320px}.mcsprite-dropper { background-position: -1248px -320px}.mcsprite-drowned_spawn_egg { background-position: 0 -352px}.mcsprite-egg { background-position: -32px -352px}.mcsprite-elder_guardian_spawn_egg { background-position: -64px -352px}.mcsprite-elytra { background-position: -96px -352px}.mcsprite-emerald { background-position: -128px -352px}.mcsprite-emerald_ore { background-position: -160px -352px}.mcsprite-empty_locator_map { background-position: -192px -352px}.mcsprite-empty_map { background-position: -224px -352px}.mcsprite-enchanted_apple { background-position: -256px -352px}.mcsprite-enchanted_book { background-position: -288px -352px}.mcsprite-enchanted_golden_apple { background-position: -320px -352px}.mcsprite-enchanting_table { background-position: -352px -352px}.mcsprite-enchantment_table { background-position: -384px -352px}.mcsprite-end_crystal { background-position: -416px -352px}.mcsprite-end_gateway { background-position: -448px -352px}.mcsprite-end_portal { background-position: -480px -352px}.mcsprite-end_portal_frame { background-position: -512px -352px}.mcsprite-end_rod { background-position: -544px -352px}.mcsprite-end_stone { background-position: -576px -352px}.mcsprite-end_stone_brick_slab { background-position: -608px -352px}.mcsprite-end_stone_brick_stairs { background-position: -640px -352px}.mcsprite-end_stone_brick_wall { background-position: -672px -352px}.mcsprite-end_stone_bricks { background-position: -704px -352px}.mcsprite-ender_chest { background-position: -736px -352px}.mcsprite-ender_pearl { background-position: -768px -352px}.mcsprite-enderman_spawn_egg { background-position: -800px -352px}.mcsprite-endermite_spawn_egg { background-position: -832px -352px}.mcsprite-evoker_spawn_egg { background-position: -864px -352px}.mcsprite-exposed_copper { background-position: -896px -352px}.mcsprite-exposed_copper_block { background-position: -928px -352px}.mcsprite-exposed_cut_copper { background-position: -960px -352px}.mcsprite-exposed_cut_copper_block { background-position: -992px -352px}.mcsprite-exposed_cut_copper_slab { background-position: -1024px -352px}.mcsprite-exposed_cut_copper_stairs { background-position: -1056px -352px}.mcsprite-eye_of_ender { background-position: -1088px -352px}.mcsprite-farmland { background-position: -1120px -352px}.mcsprite-feather { background-position: -1152px -352px}.mcsprite-fermented_spider_eye { background-position: -1184px -352px}.mcsprite-fern { background-position: -1216px -352px}.mcsprite-filled_bundle { background-position: -1248px -352px}.mcsprite-fire_charge { background-position: 0 -384px}.mcsprite-fire_coral { background-position: -32px -384px}.mcsprite-fire_coral_block { background-position: -64px -384px}.mcsprite-fire_coral_fan { background-position: -96px -384px}.mcsprite-firework_loaded_crossbow { background-position: -128px -384px}.mcsprite-firework_rocket { background-position: -160px -384px}.mcsprite-firework_star { background-position: -192px -384px}.mcsprite-fishing_rod { background-position: -224px -384px}.mcsprite-fletching_table { background-position: -256px -384px}.mcsprite-flint { background-position: -288px -384px}.mcsprite-flint_and_steel { background-position: -320px -384px}.mcsprite-flower_pot { background-position: -352px -384px}.mcsprite-flowering_azalea { background-position: -384px -384px}.mcsprite-flowering_azalea_leaves { background-position: -416px -384px}.mcsprite-flowing_lava { background-position: -448px -384px}.mcsprite-flowing_water { background-position: -480px -384px}.mcsprite-fox_spawn_egg { background-position: -512px -384px}.mcsprite-frosted_ice { background-position: -544px -384px}.mcsprite-furnace { background-position: -576px -384px}.mcsprite-ghast_spawn_egg { background-position: -608px -384px}.mcsprite-ghast_tear { background-position: -640px -384px}.mcsprite-gilded_blackstone { background-position: -672px -384px}.mcsprite-glass { background-position: -704px -384px}.mcsprite-glass_bottle { background-position: -736px -384px}.mcsprite-glass_pane { background-position: -768px -384px}.mcsprite-glistering_melon { background-position: -800px -384px}.mcsprite-glistering_melon_slice { background-position: -832px -384px}.mcsprite-glow_berries { background-position: -864px -384px}.mcsprite-glow_ink_sac { background-position: -896px -384px}.mcsprite-glow_item_frame { background-position: -928px -384px}.mcsprite-glow_lichen { background-position: -960px -384px}.mcsprite-glow_squid_spawn_egg { background-position: -992px -384px}.mcsprite-glowstone { background-position: -1024px -384px}.mcsprite-glowstone_dust { background-position: -1056px -384px}.mcsprite-goat_horn { background-position: -1088px -384px}.mcsprite-goat_spawn_egg { background-position: -1120px -384px}.mcsprite-gold_ingot { background-position: -1152px -384px}.mcsprite-gold_nugget { background-position: -1184px -384px}.mcsprite-gold_ore { background-position: -1216px -384px}.mcsprite-golden_apple { background-position: -1248px -384px}.mcsprite-golden_axe { background-position: 0 -416px}.mcsprite-golden_boots { background-position: -32px -416px}.mcsprite-golden_carrot { background-position: -64px -416px}.mcsprite-golden_chestplate { background-position: -96px -416px}.mcsprite-golden_helmet { background-position: -128px -416px}.mcsprite-golden_hoe { background-position: -160px -416px}.mcsprite-golden_horse_armor { background-position: -192px -416px}.mcsprite-golden_leggings { background-position: -224px -416px}.mcsprite-golden_pickaxe { background-position: -256px -416px}.mcsprite-golden_shovel { background-position: -288px -416px}.mcsprite-golden_sword { background-position: -320px -416px}.mcsprite-granite { background-position: -352px -416px}.mcsprite-granite_slab { background-position: -384px -416px}.mcsprite-granite_stairs { background-position: -416px -416px}.mcsprite-granite_wall { background-position: -448px -416px}.mcsprite-grass { background-position: -480px -416px}.mcsprite-grass_block { background-position: -512px -416px}.mcsprite-grass_path { background-position: -544px -416px}.mcsprite-gravel { background-position: -576px -416px}.mcsprite-gray_banner { background-position: -608px -416px}.mcsprite-gray_bed { background-position: -640px -416px}.mcsprite-gray_bed_lce { background-position: -672px -416px}.mcsprite-gray_candle { background-position: -704px -416px}.mcsprite-gray_carpet { background-position: -736px -416px}.mcsprite-gray_concrete { background-position: -768px -416px}.mcsprite-gray_concrete_powder { background-position: -800px -416px}.mcsprite-gray_dye { background-position: -832px -416px}.mcsprite-gray_firework_star { background-position: -864px -416px}.mcsprite-gray_glazed_terracotta { background-position: -896px -416px}.mcsprite-gray_shield { background-position: -928px -416px}.mcsprite-gray_shulker_box { background-position: -960px -416px}.mcsprite-gray_stained_glass { background-position: -992px -416px}.mcsprite-gray_stained_glass_pane { background-position: -1024px -416px}.mcsprite-gray_terracotta { background-position: -1056px -416px}.mcsprite-gray_wool { background-position: -1088px -416px}.mcsprite-green_banner { background-position: -1120px -416px}.mcsprite-green_bed { background-position: -1152px -416px}.mcsprite-green_bed_lce { background-position: -1184px -416px}.mcsprite-green_candle { background-position: -1216px -416px}.mcsprite-green_carpet { background-position: -1248px -416px}.mcsprite-green_concrete { background-position: 0 -448px}.mcsprite-green_concrete_powder { background-position: -32px -448px}.mcsprite-green_dye { background-position: -64px -448px}.mcsprite-green_firework_star { background-position: -96px -448px}.mcsprite-green_glazed_terracotta { background-position: -128px -448px}.mcsprite-green_shield { background-position: -160px -448px}.mcsprite-green_shulker_box { background-position: -192px -448px}.mcsprite-green_stained_glass { background-position: -224px -448px}.mcsprite-green_stained_glass_pane { background-position: -256px -448px}.mcsprite-green_terracotta { background-position: -288px -448px}.mcsprite-green_wool { background-position: -320px -448px}.mcsprite-grindstone { background-position: -352px -448px}.mcsprite-guardian_spawn_egg { background-position: -384px -448px}.mcsprite-gunpowder { background-position: -416px -448px}.mcsprite-half_filled_bundle { background-position: -448px -448px}.mcsprite-hanging_roots { background-position: -480px -448px}.mcsprite-hay_bale { background-position: -512px -448px}.mcsprite-head { background-position: -544px -448px}.mcsprite-heart_of_the_sea { background-position: -576px -448px}.mcsprite-heavy_weighted_pressure_plate { background-position: -608px -448px}.mcsprite-hoglin_spawn_egg { background-position: -640px -448px}.mcsprite-honey_block { background-position: -672px -448px}.mcsprite-honey_bottle { background-position: -704px -448px}.mcsprite-honeycomb { background-position: -736px -448px}.mcsprite-honeycomb_block { background-position: -768px -448px}.mcsprite-hopper { background-position: -800px -448px}.mcsprite-horn_coral { background-position: -832px -448px}.mcsprite-horn_coral_block { background-position: -864px -448px}.mcsprite-horn_coral_fan { background-position: -896px -448px}.mcsprite-horse_spawn_egg { background-position: -928px -448px}.mcsprite-husk_spawn_egg { background-position: -960px -448px}.mcsprite-ice { background-position: -992px -448px}.mcsprite-infested_chiseled_stone_bricks { background-position: -1024px -448px}.mcsprite-infested_cobblestone { background-position: -1056px -448px}.mcsprite-infested_cracked_stone_bricks { background-position: -1088px -448px}.mcsprite-infested_deepslate { background-position: -1120px -448px}.mcsprite-infested_mossy_stone_bricks { background-position: -1152px -448px}.mcsprite-infested_stone { background-position: -1184px -448px}.mcsprite-infested_stone_bricks { background-position: -1216px -448px}.mcsprite-ink_sac { background-position: -1248px -448px}.mcsprite-inverted_daylight_detector { background-position: 0 -480px}.mcsprite-inverted_daylight_sensor { background-position: -32px -480px}.mcsprite-invisible_bedrock { background-position: -64px -480px}.mcsprite-iron_axe { background-position: -96px -480px}.mcsprite-iron_bars { background-position: -128px -480px}.mcsprite-iron_boots { background-position: -160px -480px}.mcsprite-iron_chestplate { background-position: -192px -480px}.mcsprite-iron_door { background-position: -224px -480px}.mcsprite-iron_helmet { background-position: -256px -480px}.mcsprite-iron_hoe { background-position: -288px -480px}.mcsprite-iron_horse_armor { background-position: -320px -480px}.mcsprite-iron_ingot { background-position: -352px -480px}.mcsprite-iron_leggings { background-position: -384px -480px}.mcsprite-iron_nugget { background-position: -416px -480px}.mcsprite-iron_ore { background-position: -448px -480px}.mcsprite-iron_pickaxe { background-position: -480px -480px}.mcsprite-iron_shovel { background-position: -512px -480px}.mcsprite-iron_sword { background-position: -544px -480px}.mcsprite-iron_trapdoor { background-position: -576px -480px}.mcsprite-item_frame { background-position: -608px -480px}.mcsprite-jack_olantern { background-position: -640px -480px}.mcsprite-jigsaw { background-position: -672px -480px}.mcsprite-jigsaw_block { background-position: -704px -480px}.mcsprite-jukebox { background-position: -736px -480px}.mcsprite-jungle_boat { background-position: -768px -480px}.mcsprite-jungle_button { background-position: -800px -480px}.mcsprite-jungle_door { background-position: -832px -480px}.mcsprite-jungle_fence { background-position: -864px -480px}.mcsprite-jungle_fence_gate { background-position: -896px -480px}.mcsprite-jungle_leaves { background-position: -928px -480px}.mcsprite-jungle_log { background-position: -960px -480px}.mcsprite-jungle_planks { background-position: -992px -480px}.mcsprite-jungle_pressure_plate { background-position: -1024px -480px}.mcsprite-jungle_sapling { background-position: -1056px -480px}.mcsprite-jungle_sign { background-position: -1088px -480px}.mcsprite-jungle_slab { background-position: -1120px -480px}.mcsprite-jungle_stairs { background-position: -1152px -480px}.mcsprite-jungle_trapdoor { background-position: -1184px -480px}.mcsprite-jungle_wood { background-position: -1216px -480px}.mcsprite-jungle_wood_button { background-position: -1248px -480px}.mcsprite-jungle_wood_door { background-position: 0 -512px}.mcsprite-jungle_wood_fence { background-position: -32px -512px}.mcsprite-jungle_wood_fence_gate { background-position: -64px -512px}.mcsprite-jungle_wood_planks { background-position: -96px -512px}.mcsprite-jungle_wood_pressure_plate { background-position: -128px -512px}.mcsprite-jungle_wood_sign { background-position: -160px -512px}.mcsprite-jungle_wood_slab { background-position: -192px -512px}.mcsprite-jungle_wood_stairs { background-position: -224px -512px}.mcsprite-jungle_wood_trapdoor { background-position: -256px -512px}.mcsprite-kelp { background-position: -288px -512px}.mcsprite-knowledge_book { background-position: -320px -512px}.mcsprite-ladder { background-position: -352px -512px}.mcsprite-lantern { background-position: -384px -512px}.mcsprite-lapis_lazuli { background-position: -416px -512px}.mcsprite-lapis_lazuli_block { background-position: -448px -512px}.mcsprite-lapis_lazuli_ore { background-position: -480px -512px}.mcsprite-large_amethyst_bud { background-position: -512px -512px}.mcsprite-large_fern { background-position: -544px -512px}.mcsprite-lava { background-position: -576px -512px}.mcsprite-lava_bucket { background-position: -608px -512px}.mcsprite-lead { background-position: -640px -512px}.mcsprite-leather { background-position: -672px -512px}.mcsprite-leather_boots { background-position: -704px -512px}.mcsprite-leather_boots_black { background-position: -736px -512px}.mcsprite-leather_boots_blue { background-position: -768px -512px}.mcsprite-leather_boots_cyan { background-position: -800px -512px}.mcsprite-leather_boots_gray { background-position: -832px -512px}.mcsprite-leather_boots_green { background-position: -864px -512px}.mcsprite-leather_boots_light_blue { background-position: -896px -512px}.mcsprite-leather_boots_light_gray { background-position: -928px -512px}.mcsprite-leather_boots_lime { background-position: -960px -512px}.mcsprite-leather_boots_magenta { background-position: -992px -512px}.mcsprite-leather_boots_orange { background-position: -1024px -512px}.mcsprite-leather_boots_pink { background-position: -1056px -512px}.mcsprite-leather_boots_purple { background-position: -1088px -512px}.mcsprite-leather_boots_red { background-position: -1120px -512px}.mcsprite-leather_boots_white { background-position: -1152px -512px}.mcsprite-leather_boots_yellow { background-position: -1184px -512px}.mcsprite-leather_cap { background-position: -1216px -512px}.mcsprite-leather_cap_black { background-position: -1248px -512px}.mcsprite-leather_cap_blue { background-position: 0 -544px}.mcsprite-leather_cap_cyan { background-position: -32px -544px}.mcsprite-leather_cap_gray { background-position: -64px -544px}.mcsprite-leather_cap_green { background-position: -96px -544px}.mcsprite-leather_cap_light_blue { background-position: -128px -544px}.mcsprite-leather_cap_light_gray { background-position: -160px -544px}.mcsprite-leather_cap_lime { background-position: -192px -544px}.mcsprite-leather_cap_magenta { background-position: -224px -544px}.mcsprite-leather_cap_orange { background-position: -256px -544px}.mcsprite-leather_cap_pink { background-position: -288px -544px}.mcsprite-leather_cap_purple { background-position: -320px -544px}.mcsprite-leather_cap_red { background-position: -352px -544px}.mcsprite-leather_cap_white { background-position: -384px -544px}.mcsprite-leather_cap_yellow { background-position: -416px -544px}.mcsprite-leather_horse_armor { background-position: -448px -544px}.mcsprite-leather_pants { background-position: -480px -544px}.mcsprite-leather_pants_black { background-position: -512px -544px}.mcsprite-leather_pants_blue { background-position: -544px -544px}.mcsprite-leather_pants_cyan { background-position: -576px -544px}.mcsprite-leather_pants_gray { background-position: -608px -544px}.mcsprite-leather_pants_green { background-position: -640px -544px}.mcsprite-leather_pants_light_blue { background-position: -672px -544px}.mcsprite-leather_pants_light_gray { background-position: -704px -544px}.mcsprite-leather_pants_lime { background-position: -736px -544px}.mcsprite-leather_pants_magenta { background-position: -768px -544px}.mcsprite-leather_pants_orange { background-position: -800px -544px}.mcsprite-leather_pants_pink { background-position: -832px -544px}.mcsprite-leather_pants_purple { background-position: -864px -544px}.mcsprite-leather_pants_red { background-position: -896px -544px}.mcsprite-leather_pants_white { background-position: -928px -544px}.mcsprite-leather_pants_yellow { background-position: -960px -544px}.mcsprite-leather_tunic { background-position: -992px -544px}.mcsprite-leather_tunic_black { background-position: -1024px -544px}.mcsprite-leather_tunic_blue { background-position: -1056px -544px}.mcsprite-leather_tunic_cyan { background-position: -1088px -544px}.mcsprite-leather_tunic_gray { background-position: -1120px -544px}.mcsprite-leather_tunic_green { background-position: -1152px -544px}.mcsprite-leather_tunic_light_blue { background-position: -1184px -544px}.mcsprite-leather_tunic_light_gray { background-position: -1216px -544px}.mcsprite-leather_tunic_lime { background-position: -1248px -544px}.mcsprite-leather_tunic_magenta { background-position: 0 -576px}.mcsprite-leather_tunic_orange { background-position: -32px -576px}.mcsprite-leather_tunic_pink { background-position: -64px -576px}.mcsprite-leather_tunic_purple { background-position: -96px -576px}.mcsprite-leather_tunic_red { background-position: -128px -576px}.mcsprite-leather_tunic_white { background-position: -160px -576px}.mcsprite-leather_tunic_yellow { background-position: -192px -576px}.mcsprite-lectern { background-position: -224px -576px}.mcsprite-lever { background-position: -256px -576px}.mcsprite-light_blue_banner { background-position: -288px -576px}.mcsprite-light_blue_bed { background-position: -320px -576px}.mcsprite-light_blue_bed_lce { background-position: -352px -576px}.mcsprite-light_blue_candle { background-position: -384px -576px}.mcsprite-light_blue_carpet { background-position: -416px -576px}.mcsprite-light_blue_concrete { background-position: -448px -576px}.mcsprite-light_blue_concrete_powder { background-position: -480px -576px}.mcsprite-light_blue_dye { background-position: -512px -576px}.mcsprite-light_blue_firework_star { background-position: -544px -576px}.mcsprite-light_blue_glazed_terracotta { background-position: -576px -576px}.mcsprite-light_blue_shield { background-position: -608px -576px}.mcsprite-light_blue_shulker_box { background-position: -640px -576px}.mcsprite-light_blue_stained_glass { background-position: -672px -576px}.mcsprite-light_blue_stained_glass_pane { background-position: -704px -576px}.mcsprite-light_blue_terracotta { background-position: -736px -576px}.mcsprite-light_blue_wool { background-position: -768px -576px}.mcsprite-light_gray_banner { background-position: -800px -576px}.mcsprite-light_gray_bed { background-position: -832px -576px}.mcsprite-light_gray_bed_lce { background-position: -864px -576px}.mcsprite-light_gray_candle { background-position: -896px -576px}.mcsprite-light_gray_carpet { background-position: -928px -576px}.mcsprite-light_gray_concrete { background-position: -960px -576px}.mcsprite-light_gray_concrete_powder { background-position: -992px -576px}.mcsprite-light_gray_dye { background-position: -1024px -576px}.mcsprite-light_gray_firework_star { background-position: -1056px -576px}.mcsprite-light_gray_glazed_terracotta { background-position: -1088px -576px}.mcsprite-light_gray_shield { background-position: -1120px -576px}.mcsprite-light_gray_shulker_box { background-position: -1152px -576px}.mcsprite-light_gray_stained_glass { background-position: -1184px -576px}.mcsprite-light_gray_stained_glass_pane { background-position: -1216px -576px}.mcsprite-light_gray_terracotta { background-position: -1248px -576px}.mcsprite-light_gray_wool { background-position: 0 -608px}.mcsprite-light_negative { background-position: -32px -608px}.mcsprite-light_weighted_pressure_plate { background-position: -64px -608px}.mcsprite-lightning_rod { background-position: -96px -608px}.mcsprite-lilac { background-position: -128px -608px}.mcsprite-lily_of_the_valley { background-position: -160px -608px}.mcsprite-lily_pad { background-position: -192px -608px}.mcsprite-lime_banner { background-position: -224px -608px}.mcsprite-lime_bed { background-position: -256px -608px}.mcsprite-lime_bed_lce { background-position: -288px -608px}.mcsprite-lime_candle { background-position: -320px -608px}.mcsprite-lime_carpet { background-position: -352px -608px}.mcsprite-lime_concrete { background-position: -384px -608px}.mcsprite-lime_concrete_powder { background-position: -416px -608px}.mcsprite-lime_dye { background-position: -448px -608px}.mcsprite-lime_firework_star { background-position: -480px -608px}.mcsprite-lime_glazed_terracotta { background-position: -512px -608px}.mcsprite-lime_shield { background-position: -544px -608px}.mcsprite-lime_shulker_box { background-position: -576px -608px}.mcsprite-lime_stained_glass { background-position: -608px -608px}.mcsprite-lime_stained_glass_pane { background-position: -640px -608px}.mcsprite-lime_terracotta { background-position: -672px -608px}.mcsprite-lime_wool { background-position: -704px -608px}.mcsprite-lingering_potion_of_decay { background-position: -736px -608px}.mcsprite-lingering_potion_of_fire_resistance { background-position: -768px -608px}.mcsprite-lingering_potion_of_harming { background-position: -800px -608px}.mcsprite-lingering_potion_of_healing { background-position: -832px -608px}.mcsprite-lingering_potion_of_invisibility { background-position: -864px -608px}.mcsprite-lingering_potion_of_leaping { background-position: -896px -608px}.mcsprite-lingering_potion_of_levitation { background-position: -928px -608px}.mcsprite-lingering_potion_of_luck { background-position: -960px -608px}.mcsprite-lingering_potion_of_night_vision { background-position: -992px -608px}.mcsprite-lingering_potion_of_poison { background-position: -1024px -608px}.mcsprite-lingering_potion_of_regeneration { background-position: -1056px -608px}.mcsprite-lingering_potion_of_slow_falling { background-position: -1088px -608px}.mcsprite-lingering_potion_of_slowness { background-position: -1120px -608px}.mcsprite-lingering_potion_of_strength { background-position: -1152px -608px}.mcsprite-lingering_potion_of_swiftness { background-position: -1184px -608px}.mcsprite-lingering_potion_of_the_turtle_master { background-position: -1216px -608px}.mcsprite-lingering_potion_of_water_breathing { background-position: -1248px -608px}.mcsprite-lingering_potion_of_weakness { background-position: 0 -640px}.mcsprite-lingering_water_bottle { background-position: -32px -640px}.mcsprite-llama_spawn_egg { background-position: -64px -640px}.mcsprite-locked_map { background-position: -96px -640px}.mcsprite-lodestone { background-position: -128px -640px}.mcsprite-loom { background-position: -160px -640px}.mcsprite-magenta_banner { background-position: -192px -640px}.mcsprite-magenta_bed { background-position: -224px -640px}.mcsprite-magenta_bed_lce { background-position: -256px -640px}.mcsprite-magenta_candle { background-position: -288px -640px}.mcsprite-magenta_carpet { background-position: -320px -640px}.mcsprite-magenta_concrete { background-position: -352px -640px}.mcsprite-magenta_concrete_powder { background-position: -384px -640px}.mcsprite-magenta_dye { background-position: -416px -640px}.mcsprite-magenta_firework_star { background-position: -448px -640px}.mcsprite-magenta_glazed_terracotta { background-position: -480px -640px}.mcsprite-magenta_shield { background-position: -512px -640px}.mcsprite-magenta_shulker_box { background-position: -544px -640px}.mcsprite-magenta_stained_glass { background-position: -576px -640px}.mcsprite-magenta_stained_glass_pane { background-position: -608px -640px}.mcsprite-magenta_terracotta { background-position: -640px -640px}.mcsprite-magenta_wool { background-position: -672px -640px}.mcsprite-magma_cream { background-position: -704px -640px}.mcsprite-magma_cube_spawn_egg { background-position: -736px -640px}.mcsprite-map { background-position: -768px -640px}.mcsprite-medium_amethyst_bud { background-position: -800px -640px}.mcsprite-melon { background-position: -832px -640px}.mcsprite-melon_seeds { background-position: -864px -640px}.mcsprite-melon_slice { background-position: -896px -640px}.mcsprite-mhf_alex { background-position: -928px -640px}.mcsprite-mhf_arrowdown { background-position: -960px -640px}.mcsprite-mhf_arrowleft { background-position: -992px -640px}.mcsprite-mhf_arrowright { background-position: -1024px -640px}.mcsprite-mhf_arrowup { background-position: -1056px -640px}.mcsprite-mhf_blaze { background-position: -1088px -640px}.mcsprite-mhf_cactus { background-position: -1120px -640px}.mcsprite-mhf_cake { background-position: -1152px -640px}.mcsprite-mhf_cavespider { background-position: -1184px -640px}.mcsprite-mhf_chest { background-position: -1216px -640px}.mcsprite-mhf_chicken { background-position: -1248px -640px}.mcsprite-mhf_coconutb { background-position: 0 -672px}.mcsprite-mhf_coconutg { background-position: -32px -672px}.mcsprite-mhf_cow { background-position: -64px -672px}.mcsprite-mhf_creeper { background-position: -96px -672px}.mcsprite-mhf_enderman { background-position: -128px -672px}.mcsprite-mhf_exclamation { background-position: -160px -672px}.mcsprite-mhf_ghast { background-position: -192px -672px}.mcsprite-mhf_golem { background-position: -224px -672px}.mcsprite-mhf_herobrine { background-position: -256px -672px}.mcsprite-mhf_lavaslime { background-position: -288px -672px}.mcsprite-mhf_melon { background-position: -320px -672px}.mcsprite-mhf_mushroomcow { background-position: -352px -672px}.mcsprite-mhf_oaklog { background-position: -384px -672px}.mcsprite-mhf_ocelot { background-position: -416px -672px}.mcsprite-mhf_pig { background-position: -448px -672px}.mcsprite-mhf_pigzombie { background-position: -480px -672px}.mcsprite-mhf_present1 { background-position: -512px -672px}.mcsprite-mhf_present2 { background-position: -544px -672px}.mcsprite-mhf_pumpkin { background-position: -576px -672px}.mcsprite-mhf_question { background-position: -608px -672px}.mcsprite-mhf_sheep { background-position: -640px -672px}.mcsprite-mhf_skeleton { background-position: -672px -672px}.mcsprite-mhf_slime { background-position: -704px -672px}.mcsprite-mhf_spider { background-position: -736px -672px}.mcsprite-mhf_squid { background-position: -768px -672px}.mcsprite-mhf_steve { background-position: -800px -672px}.mcsprite-mhf_tnt { background-position: -832px -672px}.mcsprite-mhf_tnt2 { background-position: -864px -672px}.mcsprite-mhf_villager { background-position: -896px -672px}.mcsprite-mhf_wskeleton { background-position: -928px -672px}.mcsprite-mhf_zombie { background-position: -960px -672px}.mcsprite-milk_bucket { background-position: -992px -672px}.mcsprite-minecart { background-position: -1024px -672px}.mcsprite-minecart_with_chest { background-position: -1056px -672px}.mcsprite-minecart_with_command_block { background-position: -1088px -672px}.mcsprite-minecart_with_furnace { background-position: -1120px -672px}.mcsprite-minecart_with_hopper { background-position: -1152px -672px}.mcsprite-minecart_with_tnt { background-position: -1184px -672px}.mcsprite-monster_spawner { background-position: -1216px -672px}.mcsprite-mooshroom_spawn_egg { background-position: -1248px -672px}.mcsprite-moss_block { background-position: 0 -704px}.mcsprite-moss_carpet { background-position: -32px -704px}.mcsprite-moss_stone { background-position: -64px -704px}.mcsprite-mossy_cobblestone { background-position: -96px -704px}.mcsprite-mossy_cobblestone_slab { background-position: -128px -704px}.mcsprite-mossy_cobblestone_stairs { background-position: -160px -704px}.mcsprite-mossy_cobblestone_wall { background-position: -192px -704px}.mcsprite-mossy_stone_brick_slab { background-position: -224px -704px}.mcsprite-mossy_stone_brick_stairs { background-position: -256px -704px}.mcsprite-mossy_stone_brick_wall { background-position: -288px -704px}.mcsprite-mossy_stone_bricks { background-position: -320px -704px}.mcsprite-mossy_stone_bricks_monster_egg { background-position: -352px -704px}.mcsprite-mule_spawn_egg { background-position: -384px -704px}.mcsprite-mundane_lingering_potion { background-position: -416px -704px}.mcsprite-mundane_potion { background-position: -448px -704px}.mcsprite-mundane_splash_potion { background-position: -480px -704px}.mcsprite-mushroom_stem { background-position: -512px -704px}.mcsprite-mushroom_stew { background-position: -544px -704px}.mcsprite-music_disc_11 { background-position: -576px -704px}.mcsprite-music_disc_13 { background-position: -608px -704px}.mcsprite-music_disc_blocks { background-position: -640px -704px}.mcsprite-music_disc_cat { background-position: -672px -704px}.mcsprite-music_disc_chirp { background-position: -704px -704px}.mcsprite-music_disc_far { background-position: -736px -704px}.mcsprite-music_disc_mall { background-position: -768px -704px}.mcsprite-music_disc_mellohi { background-position: -800px -704px}.mcsprite-music_disc_pigstep { background-position: -832px -704px}.mcsprite-music_disc_stal { background-position: -864px -704px}.mcsprite-music_disc_strad { background-position: -896px -704px}.mcsprite-music_disc_wait { background-position: -928px -704px}.mcsprite-music_disc_ward { background-position: -960px -704px}.mcsprite-mycelium { background-position: -992px -704px}.mcsprite-name_tag { background-position: -1024px -704px}.mcsprite-nautilus_shell { background-position: -1056px -704px}.mcsprite-nether_brick { background-position: -1088px -704px}.mcsprite-nether_brick_block { background-position: -1120px -704px}.mcsprite-nether_brick_fence { background-position: -1152px -704px}.mcsprite-nether_brick_slab { background-position: -1184px -704px}.mcsprite-nether_brick_stairs { background-position: -1216px -704px}.mcsprite-nether_brick_wall { background-position: -1248px -704px}.mcsprite-nether_bricks { background-position: 0 -736px}.mcsprite-nether_gold_ore { background-position: -32px -736px}.mcsprite-nether_quartz { background-position: -64px -736px}.mcsprite-nether_quartz_ore { background-position: -96px -736px}.mcsprite-nether_sprouts { background-position: -128px -736px}.mcsprite-nether_sprouts_old { background-position: -160px -736px}.mcsprite-nether_star { background-position: -192px -736px}.mcsprite-nether_wart { background-position: -224px -736px}.mcsprite-nether_wart_block { background-position: -256px -736px}.mcsprite-netherite_axe { background-position: -288px -736px}.mcsprite-netherite_boots { background-position: -320px -736px}.mcsprite-netherite_chestplate { background-position: -352px -736px}.mcsprite-netherite_helmet { background-position: -384px -736px}.mcsprite-netherite_hoe { background-position: -416px -736px}.mcsprite-netherite_ingot { background-position: -448px -736px}.mcsprite-netherite_leggings { background-position: -480px -736px}.mcsprite-netherite_pickaxe { background-position: -512px -736px}.mcsprite-netherite_scrap { background-position: -544px -736px}.mcsprite-netherite_shovel { background-position: -576px -736px}.mcsprite-netherite_sword { background-position: -608px -736px}.mcsprite-netherrack { background-position: -640px -736px}.mcsprite-note_block { background-position: -672px -736px}.mcsprite-oak_boat { background-position: -704px -736px}.mcsprite-oak_button { background-position: -736px -736px}.mcsprite-oak_door { background-position: -768px -736px}.mcsprite-oak_fence { background-position: -800px -736px}.mcsprite-oak_fence_gate { background-position: -832px -736px}.mcsprite-oak_leaves { background-position: -864px -736px}.mcsprite-oak_log { background-position: -896px -736px}.mcsprite-oak_planks { background-position: -928px -736px}.mcsprite-oak_pressure_plate { background-position: -960px -736px}.mcsprite-oak_sapling { background-position: -992px -736px}.mcsprite-oak_sign { background-position: -1024px -736px}.mcsprite-oak_slab { background-position: -1056px -736px}.mcsprite-oak_stairs { background-position: -1088px -736px}.mcsprite-oak_trapdoor { background-position: -1120px -736px}.mcsprite-oak_wood { background-position: -1152px -736px}.mcsprite-oak_wood_button { background-position: -1184px -736px}.mcsprite-oak_wood_door { background-position: -1216px -736px}.mcsprite-oak_wood_fence { background-position: -1248px -736px}.mcsprite-oak_wood_fence_gate { background-position: 0 -768px}.mcsprite-oak_wood_planks { background-position: -32px -768px}.mcsprite-oak_wood_pressure_plate { background-position: -64px -768px}.mcsprite-oak_wood_sign { background-position: -96px -768px}.mcsprite-oak_wood_slab { background-position: -128px -768px}.mcsprite-oak_wood_stairs { background-position: -160px -768px}.mcsprite-oak_wood_trapdoor { background-position: -192px -768px}.mcsprite-observer { background-position: -224px -768px}.mcsprite-obsidian { background-position: -256px -768px}.mcsprite-ocean_explorer_map { background-position: -288px -768px}.mcsprite-ocelot_spawn_egg { background-position: -320px -768px}.mcsprite-ominous_shield { background-position: -352px -768px}.mcsprite-orange_banner { background-position: -384px -768px}.mcsprite-orange_bed { background-position: -416px -768px}.mcsprite-orange_bed_lce { background-position: -448px -768px}.mcsprite-orange_candle { background-position: -480px -768px}.mcsprite-orange_carpet { background-position: -512px -768px}.mcsprite-orange_concrete { background-position: -544px -768px}.mcsprite-orange_concrete_powder { background-position: -576px -768px}.mcsprite-orange_dye { background-position: -608px -768px}.mcsprite-orange_firework_star { background-position: -640px -768px}.mcsprite-orange_glazed_terracotta { background-position: -672px -768px}.mcsprite-orange_shield { background-position: -704px -768px}.mcsprite-orange_shulker_box { background-position: -736px -768px}.mcsprite-orange_stained_glass { background-position: -768px -768px}.mcsprite-orange_stained_glass_pane { background-position: -800px -768px}.mcsprite-orange_terracotta { background-position: -832px -768px}.mcsprite-orange_tulip { background-position: -864px -768px}.mcsprite-orange_wool { background-position: -896px -768px}.mcsprite-oxeye_daisy { background-position: -928px -768px}.mcsprite-oxidized_copper { background-position: -960px -768px}.mcsprite-oxidized_copper_block { background-position: -992px -768px}.mcsprite-oxidized_cut_copper { background-position: -1024px -768px}.mcsprite-oxidized_cut_copper_block { background-position: -1056px -768px}.mcsprite-oxidized_cut_copper_slab { background-position: -1088px -768px}.mcsprite-oxidized_cut_copper_stairs { background-position: -1120px -768px}.mcsprite-packed_ice { background-position: -1152px -768px}.mcsprite-painting { background-position: -1184px -768px}.mcsprite-panda_spawn_egg { background-position: -1216px -768px}.mcsprite-paper { background-position: -1248px -768px}.mcsprite-parrot_spawn_egg { background-position: 0 -800px}.mcsprite-peony { background-position: -32px -800px}.mcsprite-petrified_oak_slab { background-position: -64px -800px}.mcsprite-phantom_membrane { background-position: -96px -800px}.mcsprite-phantom_spawn_egg { background-position: -128px -800px}.mcsprite-pig_spawn_egg { background-position: -160px -800px}.mcsprite-piglin_brute_spawn_egg { background-position: -192px -800px}.mcsprite-piglin_spawn_egg { background-position: -224px -800px}.mcsprite-pillager_spawn_egg { background-position: -256px -800px}.mcsprite-pink_banner { background-position: -288px -800px}.mcsprite-pink_bed { background-position: -320px -800px}.mcsprite-pink_bed_lce { background-position: -352px -800px}.mcsprite-pink_candle { background-position: -384px -800px}.mcsprite-pink_carpet { background-position: -416px -800px}.mcsprite-pink_concrete { background-position: -448px -800px}.mcsprite-pink_concrete_powder { background-position: -480px -800px}.mcsprite-pink_dye { background-position: -512px -800px}.mcsprite-pink_firework_star { background-position: -544px -800px}.mcsprite-pink_glazed_terracotta { background-position: -576px -800px}.mcsprite-pink_shield { background-position: -608px -800px}.mcsprite-pink_shulker_box { background-position: -640px -800px}.mcsprite-pink_stained_glass { background-position: -672px -800px}.mcsprite-pink_stained_glass_pane { background-position: -704px -800px}.mcsprite-pink_terracotta { background-position: -736px -800px}.mcsprite-pink_tulip { background-position: -768px -800px}.mcsprite-pink_wool { background-position: -800px -800px}.mcsprite-piston { background-position: -832px -800px}.mcsprite-player_head { background-position: -864px -800px}.mcsprite-podzol { background-position: -896px -800px}.mcsprite-pointed_dripstone { background-position: -928px -800px}.mcsprite-poisonous_potato { background-position: -960px -800px}.mcsprite-polar_bear_spawn_egg { background-position: -992px -800px}.mcsprite-polished_andesite { background-position: -1024px -800px}.mcsprite-polished_andesite_slab { background-position: -1056px -800px}.mcsprite-polished_andesite_stairs { background-position: -1088px -800px}.mcsprite-polished_basalt { background-position: -1120px -800px}.mcsprite-polished_blackstone { background-position: -1152px -800px}.mcsprite-polished_blackstone_brick_slab { background-position: -1184px -800px}.mcsprite-polished_blackstone_brick_stairs { background-position: -1216px -800px}.mcsprite-polished_blackstone_brick_wall { background-position: -1248px -800px}.mcsprite-polished_blackstone_bricks { background-position: 0 -832px}.mcsprite-polished_blackstone_button { background-position: -32px -832px}.mcsprite-polished_blackstone_pressure_plate { background-position: -64px -832px}.mcsprite-polished_blackstone_slab { background-position: -96px -832px}.mcsprite-polished_blackstone_stairs { background-position: -128px -832px}.mcsprite-polished_blackstone_wall { background-position: -160px -832px}.mcsprite-polished_deepslate { background-position: -192px -832px}.mcsprite-polished_deepslate_slab { background-position: -224px -832px}.mcsprite-polished_deepslate_stairs { background-position: -256px -832px}.mcsprite-polished_deepslate_wall { background-position: -288px -832px}.mcsprite-polished_diorite { background-position: -320px -832px}.mcsprite-polished_diorite_slab { background-position: -352px -832px}.mcsprite-polished_diorite_stairs { background-position: -384px -832px}.mcsprite-polished_granite { background-position: -416px -832px}.mcsprite-polished_granite_slab { background-position: -448px -832px}.mcsprite-polished_granite_stairs { background-position: -480px -832px}.mcsprite-popped_chorus_fruit { background-position: -512px -832px}.mcsprite-poppy { background-position: -544px -832px}.mcsprite-portal { background-position: -576px -832px}.mcsprite-potato { background-position: -608px -832px}.mcsprite-potion_of_decay { background-position: -640px -832px}.mcsprite-potion_of_fire_resistance { background-position: -672px -832px}.mcsprite-potion_of_harming { background-position: -704px -832px}.mcsprite-potion_of_healing { background-position: -736px -832px}.mcsprite-potion_of_invisibility { background-position: -768px -832px}.mcsprite-potion_of_leaping { background-position: -800px -832px}.mcsprite-potion_of_levitation { background-position: -832px -832px}.mcsprite-potion_of_luck { background-position: -864px -832px}.mcsprite-potion_of_night_vision { background-position: -896px -832px}.mcsprite-potion_of_poison { background-position: -928px -832px}.mcsprite-potion_of_regeneration { background-position: -960px -832px}.mcsprite-potion_of_slow_falling { background-position: -992px -832px}.mcsprite-potion_of_slowness { background-position: -1024px -832px}.mcsprite-potion_of_strength { background-position: -1056px -832px}.mcsprite-potion_of_swiftness { background-position: -1088px -832px}.mcsprite-potion_of_the_turtle_master { background-position: -1120px -832px}.mcsprite-potion_of_water_breathing { background-position: -1152px -832px}.mcsprite-potion_of_weakness { background-position: -1184px -832px}.mcsprite-powder_snow { background-position: -1216px -832px}.mcsprite-powder_snow_bucket { background-position: -1248px -832px}.mcsprite-powered_rail { background-position: 0 -864px}.mcsprite-prismarine { background-position: -32px -864px}.mcsprite-prismarine_brick_slab { background-position: -64px -864px}.mcsprite-prismarine_brick_stairs { background-position: -96px -864px}.mcsprite-prismarine_brick_stairs_old { background-position: -128px -864px}.mcsprite-prismarine_bricks { background-position: -160px -864px}.mcsprite-prismarine_bricks_slab { background-position: -192px -864px}.mcsprite-prismarine_crystals { background-position: -224px -864px}.mcsprite-prismarine_shard { background-position: -256px -864px}.mcsprite-prismarine_wall { background-position: -288px -864px}.mcsprite-pufferfish { background-position: -320px -864px}.mcsprite-pufferfish_spawn_egg { background-position: -352px -864px}.mcsprite-pumpkin { background-position: -384px -864px}.mcsprite-pumpkin_pie { background-position: -416px -864px}.mcsprite-pumpkin_seeds { background-position: -448px -864px}.mcsprite-purple_banner { background-position: -480px -864px}.mcsprite-purple_bed { background-position: -512px -864px}.mcsprite-purple_bed_lce { background-position: -544px -864px}.mcsprite-purple_candle { background-position: -576px -864px}.mcsprite-purple_carpet { background-position: -608px -864px}.mcsprite-purple_concrete { background-position: -640px -864px}.mcsprite-purple_concrete_powder { background-position: -672px -864px}.mcsprite-purple_dye { background-position: -704px -864px}.mcsprite-purple_firework_star { background-position: -736px -864px}.mcsprite-purple_glazed_terracotta { background-position: -768px -864px}.mcsprite-purple_shield { background-position: -800px -864px}.mcsprite-purple_shulker_box { background-position: -832px -864px}.mcsprite-purple_stained_glass { background-position: -864px -864px}.mcsprite-purple_stained_glass_pane { background-position: -896px -864px}.mcsprite-purple_terracotta { background-position: -928px -864px}.mcsprite-purple_wool { background-position: -960px -864px}.mcsprite-purpur_block { background-position: -992px -864px}.mcsprite-purpur_pillar { background-position: -1024px -864px}.mcsprite-purpur_slab { background-position: -1056px -864px}.mcsprite-purpur_stairs { background-position: -1088px -864px}.mcsprite-quartz_bricks { background-position: -1120px -864px}.mcsprite-quartz_pillar { background-position: -1152px -864px}.mcsprite-quartz_slab { background-position: -1184px -864px}.mcsprite-quartz_stairs { background-position: -1216px -864px}.mcsprite-rabbit_hide { background-position: -1248px -864px}.mcsprite-rabbit_spawn_egg { background-position: 0 -896px}.mcsprite-rabbit_stew { background-position: -32px -896px}.mcsprite-rabbits_foot { background-position: -64px -896px}.mcsprite-rail { background-position: -96px -896px}.mcsprite-ravager_spawn_egg { background-position: -128px -896px}.mcsprite-raw_beef { background-position: -160px -896px}.mcsprite-raw_chicken { background-position: -192px -896px}.mcsprite-raw_cod { background-position: -224px -896px}.mcsprite-raw_copper { background-position: -256px -896px}.mcsprite-raw_fish { background-position: -288px -896px}.mcsprite-raw_gold { background-position: -320px -896px}.mcsprite-raw_iron { background-position: -352px -896px}.mcsprite-raw_mutton { background-position: -384px -896px}.mcsprite-raw_porkchop { background-position: -416px -896px}.mcsprite-raw_rabbit { background-position: -448px -896px}.mcsprite-raw_salmon { background-position: -480px -896px}.mcsprite-red_banner { background-position: -512px -896px}.mcsprite-red_bed { background-position: -544px -896px}.mcsprite-red_bed_lce { background-position: -576px -896px}.mcsprite-red_candle { background-position: -608px -896px}.mcsprite-red_carpet { background-position: -640px -896px}.mcsprite-red_concrete { background-position: -672px -896px}.mcsprite-red_concrete_powder { background-position: -704px -896px}.mcsprite-red_dye { background-position: -736px -896px}.mcsprite-red_firework_star { background-position: -768px -896px}.mcsprite-red_glazed_terracotta { background-position: -800px -896px}.mcsprite-red_mushroom { background-position: -832px -896px}.mcsprite-red_mushroom_block { background-position: -864px -896px}.mcsprite-red_nether_brick_slab { background-position: -896px -896px}.mcsprite-red_nether_brick_stairs { background-position: -928px -896px}.mcsprite-red_nether_brick_wall { background-position: -960px -896px}.mcsprite-red_nether_bricks { background-position: -992px -896px}.mcsprite-red_sand { background-position: -1024px -896px}.mcsprite-red_sandstone { background-position: -1056px -896px}.mcsprite-red_sandstone_slab { background-position: -1088px -896px}.mcsprite-red_sandstone_stairs { background-position: -1120px -896px}.mcsprite-red_sandstone_wall { background-position: -1152px -896px}.mcsprite-red_shield { background-position: -1184px -896px}.mcsprite-red_shulker_box { background-position: -1216px -896px}.mcsprite-red_stained_glass { background-position: -1248px -896px}.mcsprite-red_stained_glass_pane { background-position: 0 -928px}.mcsprite-red_terracotta { background-position: -32px -928px}.mcsprite-red_tulip { background-position: -64px -928px}.mcsprite-red_wool { background-position: -96px -928px}.mcsprite-redstone { background-position: -128px -928px}.mcsprite-redstone_comparator { background-position: -160px -928px}.mcsprite-redstone_dust { background-position: -192px -928px}.mcsprite-redstone_lamp { background-position: -224px -928px}.mcsprite-redstone_ore { background-position: -256px -928px}.mcsprite-redstone_repeater { background-position: -288px -928px}.mcsprite-redstone_torch { background-position: -320px -928px}.mcsprite-respawn_anchor { background-position: -352px -928px}.mcsprite-rooted_dirt { background-position: -384px -928px}.mcsprite-rose_bush { background-position: -416px -928px}.mcsprite-rose_red { background-position: -448px -928px}.mcsprite-rotten_flesh { background-position: -480px -928px}.mcsprite-saddle { background-position: -512px -928px}.mcsprite-salmon_spawn_egg { background-position: -544px -928px}.mcsprite-sand { background-position: -576px -928px}.mcsprite-sandstone { background-position: -608px -928px}.mcsprite-sandstone_slab { background-position: -640px -928px}.mcsprite-sandstone_stairs { background-position: -672px -928px}.mcsprite-sandstone_wall { background-position: -704px -928px}.mcsprite-scaffolding { background-position: -736px -928px}.mcsprite-sculk_sensor { background-position: -768px -928px}.mcsprite-scute { background-position: -800px -928px}.mcsprite-sea_lantern { background-position: -832px -928px}.mcsprite-sea_pickle { background-position: -864px -928px}.mcsprite-seagrass { background-position: -896px -928px}.mcsprite-seeds { background-position: -928px -928px}.mcsprite-shears { background-position: -960px -928px}.mcsprite-sheep_spawn_egg { background-position: -992px -928px}.mcsprite-shield { background-position: -1024px -928px}.mcsprite-shroomlight { background-position: -1056px -928px}.mcsprite-shrub_lce { background-position: -1088px -928px}.mcsprite-shulker_box { background-position: -1120px -928px}.mcsprite-shulker_shell { background-position: -1152px -928px}.mcsprite-shulker_spawn_egg { background-position: -1184px -928px}.mcsprite-silverfish_spawn_egg { background-position: -1216px -928px}.mcsprite-skeleton_horse_spawn_egg { background-position: -1248px -928px}.mcsprite-skeleton_skull { background-position: 0 -960px}.mcsprite-skeleton_spawn_egg { background-position: -32px -960px}.mcsprite-slime_block { background-position: -64px -960px}.mcsprite-slime_spawn_egg { background-position: -96px -960px}.mcsprite-slimeball { background-position: -128px -960px}.mcsprite-small_amethyst_bud { background-position: -160px -960px}.mcsprite-small_dripleaf { background-position: -192px -960px}.mcsprite-smithing_table { background-position: -224px -960px}.mcsprite-smoker { background-position: -256px -960px}.mcsprite-smooth_basalt { background-position: -288px -960px}.mcsprite-smooth_quartz { background-position: -320px -960px}.mcsprite-smooth_quartz_block { background-position: -352px -960px}.mcsprite-smooth_quartz_slab { background-position: -384px -960px}.mcsprite-smooth_quartz_stairs { background-position: -416px -960px}.mcsprite-smooth_red_sandstone { background-position: -448px -960px}.mcsprite-smooth_red_sandstone_slab { background-position: -480px -960px}.mcsprite-smooth_red_sandstone_stairs { background-position: -512px -960px}.mcsprite-smooth_sandstone { background-position: -544px -960px}.mcsprite-smooth_sandstone_slab { background-position: -576px -960px}.mcsprite-smooth_sandstone_stairs { background-position: -608px -960px}.mcsprite-smooth_stone { background-position: -640px -960px}.mcsprite-smooth_stone_bricks { background-position: -672px -960px}.mcsprite-smooth_stone_slab { background-position: -704px -960px}.mcsprite-snow { background-position: -736px -960px}.mcsprite-snow_block { background-position: -768px -960px}.mcsprite-snowball { background-position: -800px -960px}.mcsprite-soul_campfire { background-position: -832px -960px}.mcsprite-soul_lantern { background-position: -864px -960px}.mcsprite-soul_sand { background-position: -896px -960px}.mcsprite-soul_soil { background-position: -928px -960px}.mcsprite-soul_torch { background-position: -960px -960px}.mcsprite-spawn_agent { background-position: -992px -960px}.mcsprite-spawn_bat { background-position: -1024px -960px}.mcsprite-spawn_bee { background-position: -1056px -960px}.mcsprite-spawn_blaze { background-position: -1088px -960px}.mcsprite-spawn_cat { background-position: -1120px -960px}.mcsprite-spawn_cave_spider { background-position: -1152px -960px}.mcsprite-spawn_chicken { background-position: -1184px -960px}.mcsprite-spawn_cod { background-position: -1216px -960px}.mcsprite-spawn_cow { background-position: -1248px -960px}.mcsprite-spawn_creeper { background-position: 0 -992px}.mcsprite-spawn_dolphin { background-position: -32px -992px}.mcsprite-spawn_donkey { background-position: -64px -992px}.mcsprite-spawn_drowned { background-position: -96px -992px}.mcsprite-spawn_elder_guardian { background-position: -128px -992px}.mcsprite-spawn_enderman { background-position: -160px -992px}.mcsprite-spawn_endermite { background-position: -192px -992px}.mcsprite-spawn_evoker { background-position: -224px -992px}.mcsprite-spawn_fox { background-position: -256px -992px}.mcsprite-spawn_ghast { background-position: -288px -992px}.mcsprite-spawn_goat { background-position: -320px -992px}.mcsprite-spawn_guardian { background-position: -352px -992px}.mcsprite-spawn_horse { background-position: -384px -992px}.mcsprite-spawn_husk { background-position: -416px -992px}.mcsprite-spawn_llama { background-position: -448px -992px}.mcsprite-spawn_magma_cube { background-position: -480px -992px}.mcsprite-spawn_mask { background-position: -512px -992px}.mcsprite-spawn_mooshroom { background-position: -544px -992px}.mcsprite-spawn_mule { background-position: -576px -992px}.mcsprite-spawn_npc { background-position: -608px -992px}.mcsprite-spawn_ocelot { background-position: -640px -992px}.mcsprite-spawn_panda { background-position: -672px -992px}.mcsprite-spawn_parrot { background-position: -704px -992px}.mcsprite-spawn_phantom { background-position: -736px -992px}.mcsprite-spawn_pig { background-position: -768px -992px}.mcsprite-spawn_pillager { background-position: -800px -992px}.mcsprite-spawn_polar_bear { background-position: -832px -992px}.mcsprite-spawn_pufferfish { background-position: -864px -992px}.mcsprite-spawn_rabbit { background-position: -896px -992px}.mcsprite-spawn_ravager { background-position: -928px -992px}.mcsprite-spawn_salmon { background-position: -960px -992px}.mcsprite-spawn_sheep { background-position: -992px -992px}.mcsprite-spawn_shulker { background-position: -1024px -992px}.mcsprite-spawn_silverfish { background-position: -1056px -992px}.mcsprite-spawn_skeleton { background-position: -1088px -992px}.mcsprite-spawn_skeleton_horse { background-position: -1120px -992px}.mcsprite-spawn_slime { background-position: -1152px -992px}.mcsprite-spawn_spider { background-position: -1184px -992px}.mcsprite-spawn_squid { background-position: -1216px -992px}.mcsprite-spawn_stray { background-position: -1248px -992px}.mcsprite-spawn_strider { background-position: 0 -1024px}.mcsprite-spawn_trader_llama { background-position: -32px -1024px}.mcsprite-spawn_tropical_fish { background-position: -64px -1024px}.mcsprite-spawn_turtle { background-position: -96px -1024px}.mcsprite-spawn_vex { background-position: -128px -1024px}.mcsprite-spawn_villager { background-position: -160px -1024px}.mcsprite-spawn_vindicator { background-position: -192px -1024px}.mcsprite-spawn_wandering_trader { background-position: -224px -1024px}.mcsprite-spawn_witch { background-position: -256px -1024px}.mcsprite-spawn_wither_skeleton { background-position: -288px -1024px}.mcsprite-spawn_wolf { background-position: -320px -1024px}.mcsprite-spawn_zoglin { background-position: -352px -1024px}.mcsprite-spawn_zombie { background-position: -384px -1024px}.mcsprite-spawn_zombie_horse { background-position: -416px -1024px}.mcsprite-spawn_zombie_pigman { background-position: -448px -1024px}.mcsprite-spawn_zombie_villager { background-position: -480px -1024px}.mcsprite-spawner { background-position: -512px -1024px}.mcsprite-spectral_arrow { background-position: -544px -1024px}.mcsprite-spider_eye { background-position: -576px -1024px}.mcsprite-spider_spawn_egg { background-position: -608px -1024px}.mcsprite-splash_mundane_potion { background-position: -640px -1024px}.mcsprite-splash_potion_of_decay { background-position: -672px -1024px}.mcsprite-splash_potion_of_fire_resistance { background-position: -704px -1024px}.mcsprite-splash_potion_of_harming { background-position: -736px -1024px}.mcsprite-splash_potion_of_healing { background-position: -768px -1024px}.mcsprite-splash_potion_of_invisibility { background-position: -800px -1024px}.mcsprite-splash_potion_of_leaping { background-position: -832px -1024px}.mcsprite-splash_potion_of_levitation { background-position: -864px -1024px}.mcsprite-splash_potion_of_luck { background-position: -896px -1024px}.mcsprite-splash_potion_of_night_vision { background-position: -928px -1024px}.mcsprite-splash_potion_of_poison { background-position: -960px -1024px}.mcsprite-splash_potion_of_regeneration { background-position: -992px -1024px}.mcsprite-splash_potion_of_slow_falling { background-position: -1024px -1024px}.mcsprite-splash_potion_of_slowness { background-position: -1056px -1024px}.mcsprite-splash_potion_of_strength { background-position: -1088px -1024px}.mcsprite-splash_potion_of_swiftness { background-position: -1120px -1024px}.mcsprite-splash_potion_of_the_turtle_master { background-position: -1152px -1024px}.mcsprite-splash_potion_of_water_breathing { background-position: -1184px -1024px}.mcsprite-splash_potion_of_weakness { background-position: -1216px -1024px}.mcsprite-splash_water_bottle { background-position: -1248px -1024px}.mcsprite-sponge { background-position: 0 -1056px}.mcsprite-spore_blossom { background-position: -32px -1056px}.mcsprite-spruce_boat { background-position: -64px -1056px}.mcsprite-spruce_button { background-position: -96px -1056px}.mcsprite-spruce_door { background-position: -128px -1056px}.mcsprite-spruce_fence { background-position: -160px -1056px}.mcsprite-spruce_fence_gate { background-position: -192px -1056px}.mcsprite-spruce_leaves { background-position: -224px -1056px}.mcsprite-spruce_log { background-position: -256px -1056px}.mcsprite-spruce_planks { background-position: -288px -1056px}.mcsprite-spruce_pressure_plate { background-position: -320px -1056px}.mcsprite-spruce_sapling { background-position: -352px -1056px}.mcsprite-spruce_sign { background-position: -384px -1056px}.mcsprite-spruce_slab { background-position: -416px -1056px}.mcsprite-spruce_stairs { background-position: -448px -1056px}.mcsprite-spruce_trapdoor { background-position: -480px -1056px}.mcsprite-spruce_wood { background-position: -512px -1056px}.mcsprite-spruce_wood_button { background-position: -544px -1056px}.mcsprite-spruce_wood_door { background-position: -576px -1056px}.mcsprite-spruce_wood_fence { background-position: -608px -1056px}.mcsprite-spruce_wood_fence_gate { background-position: -640px -1056px}.mcsprite-spruce_wood_planks { background-position: -672px -1056px}.mcsprite-spruce_wood_pressure_plate { background-position: -704px -1056px}.mcsprite-spruce_wood_sign { background-position: -736px -1056px}.mcsprite-spruce_wood_slab { background-position: -768px -1056px}.mcsprite-spruce_wood_stairs { background-position: -800px -1056px}.mcsprite-spruce_wood_trapdoor { background-position: -832px -1056px}.mcsprite-spyglass { background-position: -864px -1056px}.mcsprite-squid_spawn_egg { background-position: -896px -1056px}.mcsprite-steak { background-position: -928px -1056px}.mcsprite-stick { background-position: -960px -1056px}.mcsprite-sticky_piston { background-position: -992px -1056px}.mcsprite-stone { background-position: -1024px -1056px}.mcsprite-stone_axe { background-position: -1056px -1056px}.mcsprite-stone_brick_slab { background-position: -1088px -1056px}.mcsprite-stone_brick_stairs { background-position: -1120px -1056px}.mcsprite-stone_brick_wall { background-position: -1152px -1056px}.mcsprite-stone_bricks { background-position: -1184px -1056px}.mcsprite-stone_bricks_monster_egg { background-position: -1216px -1056px}.mcsprite-stone_button { background-position: -1248px -1056px}.mcsprite-stone_hoe { background-position: 0 -1088px}.mcsprite-stone_monster_egg { background-position: -32px -1088px}.mcsprite-stone_pickaxe { background-position: -64px -1088px}.mcsprite-stone_pressure_plate { background-position: -96px -1088px}.mcsprite-stone_shovel { background-position: -128px -1088px}.mcsprite-stone_slab { background-position: -160px -1088px}.mcsprite-stone_stairs { background-position: -192px -1088px}.mcsprite-stone_sword { background-position: -224px -1088px}.mcsprite-stray_spawn_egg { background-position: -256px -1088px}.mcsprite-strider_spawn_egg { background-position: -288px -1088px}.mcsprite-string { background-position: -320px -1088px}.mcsprite-stripped_acacia_log { background-position: -352px -1088px}.mcsprite-stripped_acacia_wood { background-position: -384px -1088px}.mcsprite-stripped_birch_log { background-position: -416px -1088px}.mcsprite-stripped_birch_wood { background-position: -448px -1088px}.mcsprite-stripped_crimson_hyphae { background-position: -480px -1088px}.mcsprite-stripped_crimson_stem { background-position: -512px -1088px}.mcsprite-stripped_dark_oak_log { background-position: -544px -1088px}.mcsprite-stripped_dark_oak_wood { background-position: -576px -1088px}.mcsprite-stripped_jungle_log { background-position: -608px -1088px}.mcsprite-stripped_jungle_wood { background-position: -640px -1088px}.mcsprite-stripped_oak_log { background-position: -672px -1088px}.mcsprite-stripped_oak_wood { background-position: -704px -1088px}.mcsprite-stripped_spruce_log { background-position: -736px -1088px}.mcsprite-stripped_spruce_wood { background-position: -768px -1088px}.mcsprite-stripped_warped_hyphae { background-position: -800px -1088px}.mcsprite-stripped_warped_stem { background-position: -832px -1088px}.mcsprite-structure_block { background-position: -864px -1088px}.mcsprite-structure_void { background-position: -896px -1088px}.mcsprite-sugar { background-position: -928px -1088px}.mcsprite-sugar_cane { background-position: -960px -1088px}.mcsprite-sunflower { background-position: -992px -1088px}.mcsprite-suspicious_stew { background-position: -1024px -1088px}.mcsprite-sweet_berries { background-position: -1056px -1088px}.mcsprite-tall_grass { background-position: -1088px -1088px}.mcsprite-target { background-position: -1120px -1088px}.mcsprite-terracotta { background-position: -1152px -1088px}.mcsprite-thick_lingering_potion { background-position: -1184px -1088px}.mcsprite-thick_potion { background-position: -1216px -1088px}.mcsprite-thick_splash_potion { background-position: -1248px -1088px}.mcsprite-tinted_glass { background-position: 0 -1120px}.mcsprite-tipped_arrow { background-position: -32px -1120px}.mcsprite-tnt { background-position: -64px -1120px}.mcsprite-top_snow { background-position: -96px -1120px}.mcsprite-torch { background-position: -128px -1120px}.mcsprite-totem_of_undying { background-position: -160px -1120px}.mcsprite-trader_llama_spawn_egg { background-position: -192px -1120px}.mcsprite-trapped_chest { background-position: -224px -1120px}.mcsprite-treasure_map { background-position: -256px -1120px}.mcsprite-trident { background-position: -288px -1120px}.mcsprite-tripwire_hook { background-position: -320px -1120px}.mcsprite-tropical_fish { background-position: -352px -1120px}.mcsprite-tropical_fish_spawn_egg { background-position: -384px -1120px}.mcsprite-tube_coral { background-position: -416px -1120px}.mcsprite-tube_coral_block { background-position: -448px -1120px}.mcsprite-tube_coral_fan { background-position: -480px -1120px}.mcsprite-tuff { background-position: -512px -1120px}.mcsprite-turtle_egg { background-position: -544px -1120px}.mcsprite-turtle_helmet { background-position: -576px -1120px}.mcsprite-turtle_shell { background-position: -608px -1120px}.mcsprite-turtle_spawn_egg { background-position: -640px -1120px}.mcsprite-twisting_vines { background-position: -672px -1120px}.mcsprite-uncraftable_lingering_potion { background-position: -704px -1120px}.mcsprite-uncraftable_potion { background-position: -736px -1120px}.mcsprite-uncraftable_splash_potion { background-position: -768px -1120px}.mcsprite-uncraftable_tipped_arrow { background-position: -800px -1120px}.mcsprite-vex_spawn_egg { background-position: -832px -1120px}.mcsprite-villager_spawn_egg { background-position: -864px -1120px}.mcsprite-vindicator_spawn_egg { background-position: -896px -1120px}.mcsprite-vines { background-position: -928px -1120px}.mcsprite-void_air { background-position: -960px -1120px}.mcsprite-wandering_trader_spawn_egg { background-position: -992px -1120px}.mcsprite-warped_button { background-position: -1024px -1120px}.mcsprite-warped_door { background-position: -1056px -1120px}.mcsprite-warped_fence { background-position: -1088px -1120px}.mcsprite-warped_fence_gate { background-position: -1120px -1120px}.mcsprite-warped_fungus { background-position: -1152px -1120px}.mcsprite-warped_fungus_on_a_stick { background-position: -1184px -1120px}.mcsprite-warped_hyphae { background-position: -1216px -1120px}.mcsprite-warped_nylium { background-position: -1248px -1120px}.mcsprite-warped_planks { background-position: 0 -1152px}.mcsprite-warped_pressure_plate { background-position: -32px -1152px}.mcsprite-warped_roots { background-position: -64px -1152px}.mcsprite-warped_sign { background-position: -96px -1152px}.mcsprite-warped_slab { background-position: -128px -1152px}.mcsprite-warped_stairs { background-position: -160px -1152px}.mcsprite-warped_stem { background-position: -192px -1152px}.mcsprite-warped_trapdoor { background-position: -224px -1152px}.mcsprite-warped_wart_block { background-position: -256px -1152px}.mcsprite-water { background-position: -288px -1152px}.mcsprite-water_bottle { background-position: -320px -1152px}.mcsprite-water_bucket { background-position: -352px -1152px}.mcsprite-waxed_block_of_copper { background-position: -384px -1152px}.mcsprite-waxed_copper { background-position: -416px -1152px}.mcsprite-waxed_copper_block { background-position: -448px -1152px}.mcsprite-waxed_cut_copper { background-position: -480px -1152px}.mcsprite-waxed_cut_copper_block { background-position: -512px -1152px}.mcsprite-waxed_cut_copper_slab { background-position: -544px -1152px}.mcsprite-waxed_cut_copper_stairs { background-position: -576px -1152px}.mcsprite-waxed_exposed_copper { background-position: -608px -1152px}.mcsprite-waxed_exposed_copper_block { background-position: -640px -1152px}.mcsprite-waxed_exposed_cut_copper { background-position: -672px -1152px}.mcsprite-waxed_exposed_cut_copper_block { background-position: -704px -1152px}.mcsprite-waxed_exposed_cut_copper_slab { background-position: -736px -1152px}.mcsprite-waxed_exposed_cut_copper_stairs { background-position: -768px -1152px}.mcsprite-waxed_oxidized_copper { background-position: -800px -1152px}.mcsprite-waxed_oxidized_copper_block { background-position: -832px -1152px}.mcsprite-waxed_oxidized_cut_copper { background-position: -864px -1152px}.mcsprite-waxed_oxidized_cut_copper_block { background-position: -896px -1152px}.mcsprite-waxed_oxidized_cut_copper_slab { background-position: -928px -1152px}.mcsprite-waxed_oxidized_cut_copper_stairs { background-position: -960px -1152px}.mcsprite-waxed_weathered_copper { background-position: -992px -1152px}.mcsprite-waxed_weathered_copper_block { background-position: -1024px -1152px}.mcsprite-waxed_weathered_cut_copper { background-position: -1056px -1152px}.mcsprite-waxed_weathered_cut_copper_block { background-position: -1088px -1152px}.mcsprite-waxed_weathered_cut_copper_slab { background-position: -1120px -1152px}.mcsprite-waxed_weathered_cut_copper_stairs { background-position: -1152px -1152px}.mcsprite-weathered_copper { background-position: -1184px -1152px}.mcsprite-weathered_copper_block { background-position: -1216px -1152px}.mcsprite-weathered_cut_copper { background-position: -1248px -1152px}.mcsprite-weathered_cut_copper_block { background-position: 0 -1184px}.mcsprite-weathered_cut_copper_slab { background-position: -32px -1184px}.mcsprite-weathered_cut_copper_stairs { background-position: -64px -1184px}.mcsprite-weeping_vines { background-position: -96px -1184px}.mcsprite-wet_sponge { background-position: -128px -1184px}.mcsprite-wheat { background-position: -160px -1184px}.mcsprite-wheat_seeds { background-position: -192px -1184px}.mcsprite-white_banner { background-position: -224px -1184px}.mcsprite-white_bed { background-position: -256px -1184px}.mcsprite-white_bed_lce { background-position: -288px -1184px}.mcsprite-white_candle { background-position: -320px -1184px}.mcsprite-white_carpet { background-position: -352px -1184px}.mcsprite-white_concrete { background-position: -384px -1184px}.mcsprite-white_concrete_powder { background-position: -416px -1184px}.mcsprite-white_dye { background-position: -448px -1184px}.mcsprite-white_firework_star { background-position: -480px -1184px}.mcsprite-white_glazed_terracotta { background-position: -512px -1184px}.mcsprite-white_shield { background-position: -544px -1184px}.mcsprite-white_shulker_box { background-position: -576px -1184px}.mcsprite-white_stained_glass { background-position: -608px -1184px}.mcsprite-white_stained_glass_pane { background-position: -640px -1184px}.mcsprite-white_terracotta { background-position: -672px -1184px}.mcsprite-white_tulip { background-position: -704px -1184px}.mcsprite-white_wool { background-position: -736px -1184px}.mcsprite-witch_spawn_egg { background-position: -768px -1184px}.mcsprite-wither_rose { background-position: -800px -1184px}.mcsprite-wither_skeleton_skull { background-position: -832px -1184px}.mcsprite-wither_skeleton_spawn_egg { background-position: -864px -1184px}.mcsprite-wolf_spawn_egg { background-position: -896px -1184px}.mcsprite-wooden_axe { background-position: -928px -1184px}.mcsprite-wooden_hoe { background-position: -960px -1184px}.mcsprite-wooden_pickaxe { background-position: -992px -1184px}.mcsprite-wooden_shovel { background-position: -1024px -1184px}.mcsprite-wooden_slab { background-position: -1056px -1184px}.mcsprite-wooden_sword { background-position: -1088px -1184px}.mcsprite-woodland_explorer_map { background-position: -1120px -1184px}.mcsprite-written_book { background-position: -1152px -1184px}.mcsprite-yellow_banner { background-position: -1184px -1184px}.mcsprite-yellow_bed { background-position: -1216px -1184px}.mcsprite-yellow_bed_lce { background-position: -1248px -1184px}.mcsprite-yellow_candle { background-position: 0 -1216px}.mcsprite-yellow_carpet { background-position: -32px -1216px}.mcsprite-yellow_concrete { background-position: -64px -1216px}.mcsprite-yellow_concrete_powder { background-position: -96px -1216px}.mcsprite-yellow_dye { background-position: -128px -1216px}.mcsprite-yellow_firework_star { background-position: -160px -1216px}.mcsprite-yellow_glazed_terracotta { background-position: -192px -1216px}.mcsprite-yellow_shield { background-position: -224px -1216px}.mcsprite-yellow_shulker_box { background-position: -256px -1216px}.mcsprite-yellow_stained_glass { background-position: -288px -1216px}.mcsprite-yellow_stained_glass_pane { background-position: -320px -1216px}.mcsprite-yellow_terracotta { background-position: -352px -1216px}.mcsprite-yellow_wool { background-position: -384px -1216px}.mcsprite-zoglin_spawn_egg { background-position: -416px -1216px}.mcsprite-zombie_head { background-position: -448px -1216px}.mcsprite-zombie_horse_spawn_egg { background-position: -480px -1216px}.mcsprite-zombie_pigman_spawn_egg { background-position: -512px -1216px}.mcsprite-zombie_spawn_egg { background-position: -544px -1216px}.mcsprite-zombie_villager_spawn_egg { background-position: -576px -1216px}.mcsprite-zombified_piglin_spawn_egg { background-position: -608px -1216px}.toc { display: none; position: relative; margin: 1em 0; padding: .2em .5em; background-color: #f8f9fa; border: solid 1px #eaecf0; box-sizing: border-box}.toctogglecheckbox~ul { visibility: hidden; height: 0}.toctogglecheckbox:not(:checked)~ul { visibility: visible; padding-bottom: 20px; height: auto}.toctitle { padding: 0 25px 0 32px}.toctitle .mw-ui-icon { position: absolute; left: 0}.toctitle .toctogglespan+.mw-ui-icon { top: 8px; right: 0; left: auto}.toctogglelabel { cursor: pointer; position: absolute; left: 0; top: 0; right: 0; height: 50px; z-index: 1}.client-js .toc .toctitle { visibility: hidden; background-position: right center; font-weight: 700; border-bottom: 0}.client-js .toc .toctitle h2 { display: inline-block; font-family: -apple-system,blinkmacsystemfont,segoe ui,roboto,lato,helvetica,arial,sans-serif; font-size: 1.125em; vertical-align: middle}.client-js .toc .tocnumber { display: none}.client-js .toc>ul { margin: 0 22.85714286em 0 32px; padding-left: 0; font-size: .875em}.client-js .toc ul { list-style: none}@media screen and (min-width: 720px) { .client-js .toc { display:table } .client-js .toc .toctitle { visibility: visible }}body { font-family: -apple-system,blinkmacsystemfont,segoe ui,roboto,lato,helvetica,arial,sans-serif; line-height: 1.4; -webkit-tap-highlight-color: rgba(0,0,0,.2); overflow-y: scroll}.content { line-height: 1.65; word-wrap: break-word}.content .center { width: 100%; text-align: center}.content .center>*,.content .center .thumb { margin-left: auto; margin-right: auto}@media all and (max-width: 320px - 1) { html { font-size:80% } .content { margin: 0 12px }}.nomobile { display: none!important}@supports(font: -apple-system-body) { html { font:-apple-system-body } body { font-size: 94.11764706% } @media all and (max-width: 320px - 1) { body { font-size:75.29411765% } }}.content figure,.content .thumb { margin: .6em 0}.content figure .thumbinner,.content .thumb .thumbinner { margin: 0 auto; max-width: 100%!important}.content figcaption,.content .thumbcaption { margin: .5em 0 0; font-size: .8125em; line-height: 1.5; padding: 0!important; color: #54595d}.content .thumbcaption { width: auto!important}.content .mw-image-border,.content .thumbborder { border: 1px solid #c8ccd1}.content .magnify { display: none}.content img { vertical-align: middle}.content .floatright { clear: right; float: right; margin: 0 0 .6em .6em}.content .floatleft { clear: left; float: left; margin: 0 .6em .6em 0}.content a>img,.content noscript>img { max-width: 100%!important; height: auto!important}.content .noresize { max-width: 100%; overflow-x: auto}.content .noresize a>img { max-width: none!important}h1 { font-size: 1.7em}h2 { font-size: 1.5em}h3 { font-size: 1.2em; font-weight: 700}h4 { font-weight: 700}.pre-content h1,.content h1,.content h2 { font-family: linux libertine,helvetica,georgia,times,serif}.pre-content h1,.content h1,.content h2,h3,h4,h5,h6 { line-height: 1.3; word-wrap: break-word; word-break: break-word}.content h2,.content h3,.content h4,.content h5,.content h6 { padding: .5em 0}.content p+h3 { margin-top: 1.5em}.content {}.content ol { padding-left: 2.25em}.content ul { list-style-type: disc; padding-left: 1em}.content ul>li>ul { list-style-type: circle}.content ul>li>ul>li>ul { list-style-type: square}.content ol ol,.content ul ol,.content ol ul,.content ul ul { margin-left: 1em}.content li { margin-bottom: 10px}.content li:last-child { margin-bottom: inherit}dl { margin-left: 1em}dl dt { font-weight: 700}dl dd { display: block; overflow: auto}body.mw-hide-empty-elt .mw-empty-elt { display: none}a:not([href]) { color: #3f7dfb; cursor: pointer}a { color: #3f7dfb; text-decoration: none}a:visited { color: #ba91ff}a:active { color: #986be5}a:hover { text-decoration: underline}a.new,a.new:visited,a.new:hover { color: #d33}a.new>*,a.new:visited>*,a.new:hover>* { color: #d33}a.external { background-size: 10px; background-repeat: no-repeat; background-position: center right; padding-right: 13px}.return-link { display: block; font-size: .875em; margin-top: 1.5em}.plainlinks a { background: 0 0!important; padding: 0!important}.content p { margin: .5em 0 1em}.content hr { background-color: #a2a9b1; height: 1px; border: 0}.content kbd,.content samp,.content code,.content pre { font-family: menlo,consolas,liberation mono,courier new,monospace; border: solid 1px #c8ccd1; white-space: pre-wrap}.content code { padding: .2em .5em}.content pre { padding: 1em}b,strong { font-weight: 700}blockquote { border-left: 3px solid #c8ccd1; padding: 8px 24px 8px 32px; font-family: linux libertine,helvetica,georgia,times,serif; font-size: 1.1em}blockquote>:first-child { margin-top: 0}blockquote>:last-child { margin-bottom: 0}blockquote>:only-child { margin-top: 0; margin-bottom: 0}em,i { font-style: italic}sup { vertical-align: super}sub { vertical-align: sub}sub,sup,.content .mw-ref { font-size: .75em; line-height: 1}@media all and (max-width: 720px) { .content table { display:block; width: 100%!important; box-sizing: border-box } .content table.wikitable { border: 0 } .content caption { display: block }}.content table { margin: 1em 0; overflow: auto; overflow-y: hidden; overflow-x: auto}.content table caption { text-align: left}.wikitable { border: 1px solid #54595d; border-color: rgba(84,89,93,.3)}.wikitable>tr>th,.wikitable>tr>td,.wikitable>*>tr>th,.wikitable>*>tr>td { border: 1px solid #54595d; border-color: rgba(84,89,93,.3); padding: .2em}.wikitable>tr>th,.wikitable>*>tr>th { background-color: #eaecf0}@media screen and (min-width: 720px) { .client-js #searchIcon { display:none } .header .branding-box { width: 10.0625em } .header .search-box { display: table-cell; width: auto } .header .search-box .search { width: 23.4375em } .pre-content,#mw-content-text>form,.content,.post-content { max-width: 993.3px; margin: 0 3.35em } .content figure,.content .thumb { max-width: 704px } .content figure.mw-halign-left,.content .thumb.mw-halign-left,.content figure.tleft,.content .thumb.tleft { float: left; clear: left; margin-right: 1.4em } .content figure.mw-default-size,.content .thumb.mw-default-size,.content figure.mw-halign-right,.content .thumb.mw-halign-right,.content figure.tright,.content .thumb.tright { float: right; clear: right; margin-left: 1.4em } .content table caption { background: inherit } .content table tbody { display: table-row-group } .last-modified-bar { background-color: transparent; padding-left: 0; padding-right: 0; font-size: 1em }}@media screen and (min-width: 1000px) { .banner-container,.header,.page-header-bar,.overlay-header,.content,.overlay-content,.content-unstyled,.pre-content,.post-content,#mw-content-text>form { margin-left:auto; margin-right: auto; width: 90%; max-width: 993.3px } .header { max-width: 995.3px }}toast.mw-notification-type-error,.mw-notification.mw-notification-type-error { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&format=rasterized&skin=minerva&version=qhhuv); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&format=original&skin=minerva&version=qhhuv)}toast.mw-notification-type-error,.mw-notification.mw-notification-type-error--reference { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&variant=reference&format=rasterized&skin=minerva&version=qhhuv); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&variant=reference&format=original&skin=minerva&version=qhhuv)}a.external { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&format=rasterized&lang=en&skin=minerva&version=qhhuv); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&format=original&lang=en&skin=minerva&version=qhhuv)}a.external--reference { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&variant=reference&format=rasterized&lang=en&skin=minerva&version=qhhuv); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&variant=reference&format=original&lang=en&skin=minerva&version=qhhuv)}.mw-ui-icon-wikimedia-history-base20:before,.mw-ui-background-icon-history { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-history-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-history-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-language-base20:before,.mw-ui-background-icon-language { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-language-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-language-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-edit-base20:before,.mw-ui-background-icon-edit { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-edit-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-edit-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-editLock-base20:before,.mw-ui-background-icon-editLock { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-editLock-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-editLock-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-search-base20:before,.mw-ui-background-icon-search { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-search-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-search-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-menu-base20:before,.mw-ui-background-icon-menu { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-menu-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-menu-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-star-base20:before,.mw-ui-background-icon-star { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-star-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-star-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-halfStar-base20:before,.mw-ui-background-icon-halfStar { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&format=rasterized&lang=en&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&format=original&lang=en&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-halfStar-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=invert&format=rasterized&lang=en&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=invert&format=original&lang=en&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-halfStar-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=progressive&format=rasterized&lang=en&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=progressive&format=original&lang=en&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-unStar-base20:before,.mw-ui-background-icon-unStar { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-unStar-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-unStar-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-userAvatar-base20:before,.mw-ui-background-icon-userAvatar { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-userAvatar-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-userAvatar-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-minerva-speechBubbles:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.advanced.icons&image=speechBubbles&format=rasterized&lang=en&skin=minerva&version=jhnt0); background-image: linear-gradient(transparent,transparent),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+c3BlZWNoIGJ1YmJsZXM8L3RpdGxlPjxnIGZpbGw9IiM1NDU5NWQiPjxwYXRoIGQ9Ik0xNyA0djdhMiAyIDAgMDEtMiAySDR2MWEyIDIgMCAwMDIgMmgxMGw0IDRWNmEyIDIgMCAwMC0yLTJ6TTYgMTBIMHY2eiIvPjxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxMiIgcng9IjIiLz48L2c+PC9zdmc+)}.mw-ui-icon-minerva-specialPages:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.advanced.icons&image=specialPages&format=rasterized&lang=en&skin=minerva&version=jhnt0); background-image: linear-gradient(transparent,transparent),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+c3BlY2lhbCBwYWdlczwvdGl0bGU+PGcgZmlsbD0iIzU0NTk1ZCI+PHBhdGggZD0iTTcgMGEyIDIgMCAwMC0yIDJoOWEyIDIgMCAwMTIgMnYxMmEyIDIgMCAwMDItMlYyYTIgMiAwIDAwLTItMnoiLz48cGF0aCBkPSJNMTMgMjBINGEyIDIgMCAwMS0yLTJWNWEyIDIgMCAwMTItMmg5YTIgMiAwIDAxMiAydjEzYTIgMiAwIDAxLTIgMnptLTYuNS0zLjVsLjQxLTEuMDlMOCAxNWwtMS4wOS0uNDEtLjQxLTEuMDktLjQxIDEuMDlMNSAxNWwxLjA5LjQxLjQxIDEuMDl6bTIuOTgyLS45NDlsLjk1Mi0yLjU2MSAyLjUzLS45NjQtMi41My0uOTY0TDkuNDgyIDguNWwtLjk1MiAyLjU2Mi0yLjUzLjk2NCAyLjUzLjk2NC45NTIgMi41NjF6TTYgMTAuNWwuNTQ3LTEuNDUzTDggOC41bC0xLjQ1My0uNTQ3TDYgNi41bC0uNTQ3IDEuNDUzTDQgOC41bDEuNDUzLjU0N0w2IDEwLjV6Ii8+PC9nPjwvc3ZnPg==)}.mw-ui-icon-minerva-recentChanges:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.advanced.icons&image=recentChanges&format=rasterized&lang=en&skin=minerva&version=jhnt0); background-image: linear-gradient(transparent,transparent),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+cmVjZW50IGNoYW5nZXM8L3RpdGxlPjxnIGZpbGw9IiM1NDU5NWQiPjxjaXJjbGUgY3g9IjIiIGN5PSI0IiByPSIyIi8+PGNpcmNsZSBjeD0iMiIgY3k9IjEwIiByPSIyIi8+PGNpcmNsZSBjeD0iMiIgY3k9IjE2IiByPSIyIi8+PHBhdGggZD0iTTYgM2gxMXYySDZ6bTAgNmg2djJINnptMCA2aDJ2Mkg2em0xMi43Ni0zLjExbDEuMDc4LTEuMTEyYS41NTYuNTU2IDAgMDAwLS43ODNsLTEuODU1LTEuODMzYS41NTYuNTU2IDAgMDAtLjc4MyAwbC0xLjA5IDEuMDc3IDIuNjUgMi42NXptLTMuMjI3LTIuMDYyTDEwIDE1LjM2MVYxOGgyLjYzOWw1LjUzMy01LjUzM3oiLz48L2c+PC9zdmc+)}.mw-ui-icon-minerva-die:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=die&format=rasterized&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=die&format=original&skin=minerva&version=17p52)}.mw-ui-icon-minerva-heart:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=heart&format=rasterized&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=heart&format=original&skin=minerva&version=17p52)}.mw-ui-icon-minerva-home:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=home&format=rasterized&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=home&format=original&skin=minerva&version=17p52)}.mw-ui-icon-minerva-logIn:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logIn&format=rasterized&lang=en&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logIn&format=original&lang=en&skin=minerva&version=17p52)}.mw-ui-icon-minerva-logOut:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logOut&format=rasterized&lang=en&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logOut&format=original&lang=en&skin=minerva&version=17p52)}.mw-ui-icon-minerva-settings:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=settings&format=rasterized&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=settings&format=original&skin=minerva&version=17p52)}.mw-ui-icon-minerva-mapPin:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=mapPin&format=rasterized&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=mapPin&format=original&skin=minerva&version=17p52)}.mw-ui-icon-minerva-unStar:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=unStar&format=rasterized&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=unStar&format=original&skin=minerva&version=17p52)}.mw-ui-icon-minerva-userContributions:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=userContributions&format=rasterized&lang=en&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=userContributions&format=original&lang=en&skin=minerva&version=17p52)}#mw-mf-page-left { position: fixed; top: 0; left: 0; bottom: 0; min-width: 275px; visibility: hidden; max-width: 80%; z-index: 2; overflow-y: auto; background-color: #eaecf0; -webkit-transform: translate(-100%,0); -ms-transform: translate(-100%,0); transform: translate(-100%,0)}@media screen and (min-width: 720px) { #mw-mf-page-left { min-width:320px }}#mw-mf-page-left ul { padding-bottom: 22px}.main-menu-mask { position: fixed; top: 0; left: 0; right: 0; opacity: 0; bottom: 0; background: rgba(0,0,0,.8); z-index: 1; visibility: hidden}#main-menu-input:checked~.main-menu-mask { visibility: visible; opacity: .5}#main-menu-input:checked~#mw-mf-page-left { visibility: visible; box-shadow: 1px 0 8px 0 rgba(0,0,0,.35); -webkit-transform: translate(0,0); -ms-transform: translate(0,0); transform: translate(0,0)}.minerva-animations-ready #mw-mf-page-left { -webkit-transition: opacity 250ms ease-in-out,visibility 250ms ease-in-out,transform 250ms ease-in-out; transition: opacity 250ms ease-in-out,visibility 250ms ease-in-out,transform 250ms ease-in-out}.minerva-animations-ready .main-menu-mask { -webkit-transition: opacity 100ms ease-in-out,visibility 0ms linear 100ms; transition: opacity 100ms ease-in-out,visibility 0ms linear 100ms}.minerva-animations-ready #main-menu-input:checked~.main-menu-mask { -webkit-transition: opacity 100ms ease-in-out; transition: opacity 100ms ease-in-out}.navigation-full-screen #mw-mf-page-left { max-width: none; -webkit-transform: none; -ms-transform: none; transform: none}.hotfix-T264376 .main-menu-mask { display: none}.hotfix-T264376 #main-menu-input:checked~.main-menu-mask { display: block}#mw-mf-page-left .secondary-action { border: 0; font-size: 16px; position: absolute; right: 0; top: 0; bottom: 0; border-left: 1px solid #a2a9b1; color: transparent}#mw-mf-page-left .primary-action { margin-right: 3.5em}#mw-mf-page-left ul:first-child li:first-child { border-top: 0}#mw-mf-page-left ul li { background-color: #fff; position: relative; border-top: 1px solid #eaecf0; margin-top: -1px}#mw-mf-page-left ul li:first-child { border-top: 0}#mw-mf-page-left ul li a { color: #54595d; display: block; max-width: 100%; padding: 12px 10px 12px 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap}#mw-mf-page-left ul li a.secondary-action { padding-left: 10px}#mw-mf-page-left ul li a:hover { box-shadow: inset 4px 0 0 0 #36c; text-decoration: none}#mw-mf-page-left ul li a span { font-size: .875em; font-weight: 700; vertical-align: middle}#mw-mf-page-left ul.hlist li { background-color: transparent; border: 0; margin: 0; font-size: .75em}#mw-mf-page-left ul.hlist li:after { content: none}#mw-mf-page-left ul.hlist li a { color: #36c; padding: .7em 12px}#mw-mf-page-left ul.hlist li a:hover { background-color: transparent; box-shadow: none}.notifications-overlay { visibility: visible}.notifications-overlay.navigation-drawer { display: block; width: auto; right: 0; box-shadow: -5px 0 0 0 rgba(0,0,0,.35); -webkit-transform: translate(100%,0); -ms-transform: translate(100%,0); transform: translate(100%,0); -webkit-transition: transform 250ms ease-in-out; transition: transform 250ms ease-in-out}.notifications-overlay.navigation-drawer.visible { -webkit-transform: translate(0,0); -ms-transform: translate(0,0); transform: translate(0,0)}@media all and (min-width: 720px) { .notifications-overlay.navigation-drawer { left:40% } .notifications-overlay.navigation-drawer .overlay-header { margin: 0; width: 100%; max-width: none } .notifications-overlay.navigation-drawer .overlay-header .cancel { left: 0 }}.toggle-list__checkbox { position: absolute; z-index: -1; opacity: 0}.toggle-list__toggle { display: inline-block; cursor: pointer}.toggle-list__checkbox:focus+.toggle-list__toggle { outline: dotted 1px; outline: auto #447ff5}.toggle-list__checkbox:checked+.toggle-list__toggle { outline: 0; background: rgba(1,1,1,.1)}.touch-events .toggle-list__checkbox:focus+.toggle-list__toggle { outline: 0}.toggle-list__list { background: #fff; position: absolute; overflow-y: auto; z-index: 2; box-shadow: 0 5px 17px 0 rgba(0,0,0,.24),0 0 1px #a2a9b1; visibility: hidden; opacity: 0}.toggle-list__checkbox:checked~.toggle-list__list { visibility: visible; opacity: 1}.mw-ui-icon-minerva-articleRedirect:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-articleRedirect,.mw-ui-icon-articleRedirect-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-articleRedirect,.mw-ui-icon-articleRedirect-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-infoFilled:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-infoFilled,.mw-ui-icon-infoFilled-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-infoFilled,.mw-ui-icon-infoFilled-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-quotes:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-quotes,.mw-ui-icon-quotes-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-quotes,.mw-ui-icon-quotes-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-link:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-link,.mw-ui-icon-link-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=invert&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=invert&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-link,.mw-ui-icon-link-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=progressive&format=original&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-listBullet:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-listBullet,.mw-ui-icon-listBullet-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-listBullet,.mw-ui-icon-listBullet-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-ellipsis:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-ellipsis,.mw-ui-icon-ellipsis-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=invert&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=invert&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-ellipsis,.mw-ui-icon-ellipsis-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=progressive&format=original&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-userAvatar:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-userAvatar,.mw-ui-icon-userAvatar-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=invert&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=invert&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-userAvatar,.mw-ui-icon-userAvatar-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=progressive&format=original&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-userAvatarOutline:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-userAvatarOutline,.mw-ui-icon-userAvatarOutline-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=invert&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=invert&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-userAvatarOutline,.mw-ui-icon-userAvatarOutline-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=progressive&format=original&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-userGroup:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-userGroup,.mw-ui-icon-userGroup-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-userGroup,.mw-ui-icon-userGroup-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-userTalk:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-userTalk,.mw-ui-icon-userTalk-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-userTalk,.mw-ui-icon-userTalk-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-logoWikidata:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-logoWikidata,.mw-ui-icon-logoWikidata-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=invert&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=invert&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-logoWikidata,.mw-ui-icon-logoWikidata-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=progressive&format=original&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-markup:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.personalMenu.icons&image=markup&format=rasterized&skin=minerva&version=1j2d9); background-image: linear-gradient(transparent,transparent),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+bWFya3VwPC90aXRsZT48ZyBmaWxsPSIjNTQ1OTVkIj48cGF0aCBkPSJNNi41IDMuNUwwIDEwbDEuNSAxLjUgNSA1TDggMTVsLTUtNSA1LTV6bTcgMEwxMiA1bDUgNS01IDUgMS41IDEuNUwyMCAxMHoiLz48L2c+PC9zdmc+)}div#mw-content-text { position: absolute;}body { text-rendering: optimizeLegibility; text-rendering: geometricPrecision} +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +.client-js .mw-dismissable-notice { + display: none +} + +.mw-dismissable-notice-close { + visibility: hidden +} + +.sitedir-ltr .mw-dismissable-notice-close { + float: right +} + +.sitedir-rtl .mw-dismissable-notice-close { + float: left +} + +.sitedir-ltr .mw-dismissable-notice-body { + margin: .5em 20% .5em 5em +} + +.sitedir-rtl .mw-dismissable-notice-body { + margin: .5em 5em .5em 20% +} + +.hlist dl, .hlist ol, .hlist ul { + margin: 0; + padding: 0 +} + +.hlist dl dl, .hlist ol dl, .hlist ul dl, .hlist dl ol, .hlist ol ol, .hlist ul ol, .hlist dl ul, .hlist ol ul, .hlist ul ul { + display: inline +} + +.hlist dd, .hlist dt, .hlist li { + margin: 0; + display: inline +} + +ul.hlist li, .hlist > ul li, .hlist > dl li { + display: inline-block; + margin-right: 8px +} + +.hlist-separated li:after { + content: '•' !important; + padding-left: 8px; + font-size: 1em; + line-height: 1 +} + +.hlist-separated :last-child:after { + content: none !important +} + +.mw-ui-button { + background-color: #f8f9fa; + color: #202122; + display: inline-block; + -moz-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid #a2a9b1; + border-radius: 2px; + cursor: pointer; + vertical-align: middle; + font-family: inherit; + font-size: 1em; + font-weight: 700; + line-height: 1.28571429em; + text-align: center; + -webkit-appearance: none +} + +.mw-ui-button:not(.mw-ui-icon-element) { + min-height: 32px; + min-width: 4em; + max-width: 28.75em; + margin: 0; + padding: 5px 12px +} + +.mw-ui-button:not(:disabled) { + -webkit-transition: background-color 100ms, color 100ms, border-color 100ms, box-shadow 100ms; + transition: background-color 100ms, color 100ms, border-color 100ms, box-shadow 100ms +} + +.mw-ui-button:not(:disabled):visited { + color: #202122 +} + +.mw-ui-button:not(:disabled):hover { + background-color: #fff; + color: #404244; + border-color: #a2a9b1 +} + +.mw-ui-button:not(:disabled):focus { + color: #202122; + border-color: #36c; + box-shadow: inset 0 0 0 1px #36c, inset 0 0 0 2px #fff; + outline-width: 0 +} + +.mw-ui-button:not(:disabled):focus::-moz-focus-inner { + border-color: transparent; + padding: 0 +} + +.mw-ui-button:not(:disabled):active, .mw-ui-button:not(:disabled).is-on { + background-color: #c8ccd1; + color: #000; + border-color: #72777d; + box-shadow: none +} + +.mw-ui-button:disabled { + background-color: #c8ccd1; + color: #fff; + border-color: #c8ccd1; + cursor: default +} + +.mw-ui-button.mw-ui-icon-element:not(.mw-ui-icon-with-label-desktop) { + color: transparent !important +} + +.mw-ui-button.mw-ui-icon-element:not(.mw-ui-icon-with-label-desktop) span { + display: block; + position: absolute !important; + clip: rect(1px, 1px, 1px, 1px); + width: 1px; + height: 1px; + margin: -1px; + border: 0; + padding: 0; + overflow: hidden +} + +@media all and (max-width: 1000px) { + .mw-ui-button.mw-ui-icon-element.mw-ui-icon-with-label-desktop { + color: transparent !important + } + + .mw-ui-button.mw-ui-icon-element span { + display: block; + position: absolute !important; + clip: rect(1px, 1px, 1px, 1px); + width: 1px; + height: 1px; + margin: -1px; + border: 0; + padding: 0; + overflow: hidden + } +} + +.mw-ui-button.mw-ui-quiet, .mw-ui-button.mw-ui-quiet.mw-ui-progressive, .mw-ui-button.mw-ui-quiet.mw-ui-destructive { + background-color: transparent; + color: #202122; + border-color: transparent; + font-weight: 700 +} + +.mw-ui-button.mw-ui-quiet:not(.mw-ui-icon-element), .mw-ui-button.mw-ui-quiet.mw-ui-progressive:not(.mw-ui-icon-element), .mw-ui-button.mw-ui-quiet.mw-ui-destructive:not(.mw-ui-icon-element) { + min-height: 32px +} + +input[type=checkbox]:hover + .mw-ui-button.mw-ui-quiet, input[type=checkbox]:hover + .mw-ui-button.mw-ui-quiet.mw-ui-progressive, input[type=checkbox]:hover + .mw-ui-button.mw-ui-quiet.mw-ui-destructive, .mw-ui-button.mw-ui-quiet:hover, .mw-ui-button.mw-ui-quiet.mw-ui-progressive:hover, .mw-ui-button.mw-ui-quiet.mw-ui-destructive:hover { + background-color: rgba(0, 24, 73, .02745098); + color: #202122; + border-color: transparent +} + +input[type=checkbox]:focus + .mw-ui-button.mw-ui-quiet, input[type=checkbox]:focus + .mw-ui-button.mw-ui-quiet.mw-ui-progressive, input[type=checkbox]:focus + .mw-ui-button.mw-ui-quiet.mw-ui-destructive, .mw-ui-button.mw-ui-quiet:focus, .mw-ui-button.mw-ui-quiet.mw-ui-progressive:focus, .mw-ui-button.mw-ui-quiet.mw-ui-destructive:focus { + color: #202122; + border-color: #36c; + box-shadow: inset 0 0 0 1px #36c, inset 0 0 0 2px #fff +} + +input[type=checkbox]:active + .mw-ui-button.mw-ui-quiet, input[type=checkbox]:active + .mw-ui-button.mw-ui-quiet.mw-ui-progressive, input[type=checkbox]:active + .mw-ui-button.mw-ui-quiet.mw-ui-destructive, .mw-ui-button.mw-ui-quiet:active, .mw-ui-button.mw-ui-quiet.mw-ui-progressive:active, .mw-ui-button.mw-ui-quiet.mw-ui-destructive:active { + background-color: rgba(0, 36, 73, .08235294); + color: #000; + border-color: #72777d; + box-shadow: none +} + +.mw-ui-button.mw-ui-quiet:disabled, .mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled, .mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled, .mw-ui-button.mw-ui-quiet:disabled:hover, .mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled:hover, .mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled:hover, .mw-ui-button.mw-ui-quiet:disabled:active, .mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled:active, .mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled:active { + background-color: transparent; + color: #72777d; + border-color: transparent +} + +.mw-ui-button.mw-ui-progressive:not(:disabled) { + background-color: #36c; + color: #fff; + border-color: #36c +} + +.mw-ui-button.mw-ui-progressive:not(:disabled):hover { + background-color: #447ff5; + border-color: #447ff5 +} + +.mw-ui-button.mw-ui-progressive:not(:disabled):focus { + box-shadow: inset 0 0 0 1px #36c, inset 0 0 0 2px #fff +} + +.mw-ui-button.mw-ui-progressive:not(:disabled):active, .mw-ui-button.mw-ui-progressive:not(:disabled).is-on { + background-color: #2a4b8d; + border-color: #2a4b8d; + box-shadow: none +} + +.mw-ui-button.mw-ui-progressive:disabled { + background-color: #c8ccd1; + color: #fff; + border-color: #c8ccd1 +} + +.mw-ui-button.mw-ui-progressive.mw-ui-quiet { + color: #36c; + background-color: transparent; + border-color: transparent +} + +input[type=checkbox]:hover + .mw-ui-button.mw-ui-progressive.mw-ui-quiet, .mw-ui-button.mw-ui-progressive.mw-ui-quiet:hover { + background-color: rgba(52, 123, 255, .2); + border-color: transparent; + color: #447ff5 +} + +input[type=checkbox]:focus + .mw-ui-button.mw-ui-progressive.mw-ui-quiet, .mw-ui-button.mw-ui-progressive.mw-ui-quiet:focus { + color: #36c; + border-color: #36c +} + +input[type=checkbox]:active + .mw-ui-button.mw-ui-progressive.mw-ui-quiet, .mw-ui-button.mw-ui-progressive.mw-ui-quiet:active { + color: #fff; + background-color: #2a4b8d; + border-color: #2a4b8d +} + +.mw-ui-button.mw-ui-destructive:not(:disabled) { + background-color: #d33; + color: #fff; + border-color: #d33 +} + +.mw-ui-button.mw-ui-destructive:not(:disabled):hover { + background-color: #ff4242; + border-color: #ff4242 +} + +.mw-ui-button.mw-ui-destructive:not(:disabled):focus { + box-shadow: inset 0 0 0 1px #d33, inset 0 0 0 2px #fff +} + +.mw-ui-button.mw-ui-destructive:not(:disabled):active, .mw-ui-button.mw-ui-destructive:not(:disabled).is-on { + background-color: #b32424; + border-color: #b32424; + box-shadow: none +} + +.mw-ui-button.mw-ui-destructive:disabled { + background-color: #c8ccd1; + color: #fff; + border-color: #c8ccd1 +} + +.mw-ui-button.mw-ui-destructive.mw-ui-quiet { + color: #d33; + background-color: transparent; + border-color: transparent +} + +input[type=checkbox]:hover + .mw-ui-button.mw-ui-destructive.mw-ui-quiet, .mw-ui-button.mw-ui-destructive.mw-ui-quiet:hover { + background-color: rgba(209, 29, 19, .2); + border-color: transparent; + color: #ff4242 +} + +input[type=checkbox]:focus + .mw-ui-button.mw-ui-destructive.mw-ui-quiet, .mw-ui-button.mw-ui-destructive.mw-ui-quiet:focus { + color: #d33; + border-color: #d33 +} + +input[type=checkbox]:active + .mw-ui-button.mw-ui-destructive.mw-ui-quiet, .mw-ui-button.mw-ui-destructive.mw-ui-quiet:active { + color: #fff; + background-color: #b32424; + border-color: #b32424 +} + +.mw-ui-button.mw-ui-big { + font-size: 1.3em +} + +.mw-ui-button.mw-ui-block { + display: block; + width: 100%; + margin-left: auto; + margin-right: auto +} + +a.mw-ui-button { + text-decoration: none +} + +a.mw-ui-button:hover, a.mw-ui-button:focus { + text-decoration: none +} + +.mw-ui-button-group > * { + min-width: 48px; + border-radius: 0; + float: left +} + +.mw-ui-button-group > *:first-child { + border-top-left-radius: 2px; + border-bottom-left-radius: 2px +} + +.mw-ui-button-group > *:not(:first-child) { + border-left: 0 +} + +.mw-ui-button-group > *:last-child { + border-top-right-radius: 2px; + border-bottom-right-radius: 2px +} + +.mw-ui-button-group .is-on .button { + cursor: default +} + +.mw-ui-icon { + font-size: initial; + position: relative; + display: inline-block; + box-sizing: content-box !important; + width: 1.25em; + height: 1.25em; + min-width: 1.25em; + min-height: 1.25em; + flex-basis: 1.25em; + vertical-align: middle; + line-height: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + -moz-appearance: none; + -webkit-appearance: none; + background-color: transparent; + border: 0; + margin: 0; + padding: 0 +} + +.mw-ui-icon:before { + content: ''; + display: block; + width: 100%; + height: 100%; + min-width: 1.25em; + min-height: 1.25em; + background-repeat: no-repeat; + background-size: 1.25em 1.25em; + background-position: center +} + +.mw-ui-icon-flush-top { + margin-top: -.75em +} + +.mw-ui-icon-flush-left { + margin-left: -.75em +} + +.mw-ui-icon-flush-right { + margin-right: -.75em +} + +.mw-ui-icon-element { + border-radius: 2px; + padding: .75em; + -webkit-transition: background-color 100ms; + transition: background-color 100ms; + color: transparent +} + +.mw-ui-icon-element:focus, .mw-ui-icon-element:active, .mw-ui-icon-element:visited { + color: transparent +} + +.mw-ui-icon-element:active { + background-color: rgba(0, 0, 0, .03) +} + +@media (hover: hover) { + .mw-ui-icon-element:not(.disabled):hover { + background-color: rgba(0, 0, 0, .03) + } +} + +.mw-ui-icon-small { + width: 1em; + height: 1em; + min-width: 1em; + min-height: 1em; + flex-basis: 1em; + line-height: 1em +} + +.mw-ui-icon-small:before { + content: ''; + display: block; + width: 100%; + height: 100%; + min-width: 1em; + min-height: 1em; + background-repeat: no-repeat; + background-size: 1em 1em; + background-position: center +} + +.mw-ui-icon-small.mw-ui-icon-element { + padding: .5625em +} + +.mw-ui-icon-small.mw-ui-icon-flush-left { + margin-left: -.5625em +} + +.mw-ui-icon-small.mw-ui-icon-flush-right { + margin-right: -.5625em +} + +.mw-ui-icon-small.mw-ui-icon-before:before { + min-width: 1em; + min-height: 1em; + margin-right: .5625em +} + +.mw-ui-icon-before { + width: auto; + max-width: 100% +} + +.mw-ui-icon-before:before { + display: inline-block; + font-size: initial; + width: auto; + min-width: 1.25em; + min-height: 1.25em; + margin-right: 8px; + vertical-align: middle +} + +.mw-ui-icon-before span { + vertical-align: middle +} + +@media all and (min-width: 1000px) { + .mw-ui-icon-with-label-desktop { + color: #54595d; + width: auto; + line-height: inherit; + flex-basis: auto + } + + .mw-ui-icon-with-label-desktop:hover, .mw-ui-icon-with-label-desktop:focus, .mw-ui-icon-with-label-desktop:active, .mw-ui-icon-with-label-desktop:visited { + color: #54595d; + text-decoration: none + } + + .mw-ui-icon-with-label-desktop:before { + width: auto; + display: inline-block; + margin-right: 8px; + vertical-align: text-bottom + } +} + +.minerva__tab-container { + white-space: nowrap; + overflow-x: auto +} + +.minerva__tab-container .minerva__tab { + font-size: .85em; + margin: 0 10px 0 0; + color: #54595d; + font-weight: 700; + padding-bottom: 6px; + display: inline-block +} + +.minerva__tab-container .minerva__tab:visited, .minerva__tab-container .minerva__tab:hover, .minerva__tab-container .minerva__tab:active, .minerva__tab-container .minerva__tab.new, .minerva__tab-container .minerva__tab.new:visited, .minerva__tab-container .minerva__tab.new:active, .minerva__tab-container .minerva__tab.new:hover { + color: #54595d; + text-decoration: none +} + +.minerva__tab-container .minerva__tab:last-child { + margin-right: 0 +} + +.minerva__tab-container .minerva__tab.selected { + border-bottom: 2px solid #54595d +} + +.toggle-list__list--drop-down { + -webkit-transform: translateY(-8px); + -ms-transform: translateY(-8px); + transform: translateY(-8px); + -webkit-tap-highlight-color: transparent +} + +.minerva-animations-ready .toggle-list__list--drop-down { + -webkit-transition: opacity 100ms ease-in-out, -webkit-tap-highlight-color 0s ease-in-out, transform 100ms ease-in-out, visibility 100ms ease-in-out; + transition: opacity 100ms ease-in-out, -webkit-tap-highlight-color 0s ease-in-out, transform 100ms ease-in-out, visibility 100ms ease-in-out +} + +.toggle-list__checkbox:checked ~ .toggle-list__list--drop-down { + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0) +} + +.toggle-list-item { + display: block; + padding: .75em .875em +} + +.toggle-list-item:hover { + background: #eaecf0 +} + +.toggle-list-item__anchor { + display: block; + line-height: 1 +} + +.toggle-list-item__anchor:hover { + text-decoration: none +} + +.toggle-list-item__anchor:visited, .toggle-list-item__anchor:active { + color: #54595d +} + +.toggle-list-item__icon { + vertical-align: middle +} + +.toggle-list-item__label { + text-align: left; + color: #54595d; + font-weight: 700; + white-space: nowrap; + vertical-align: middle; + font-size: .875em +} + +.minerva-user-menu-list { + top: 100%; + right: -.75em; + min-width: 200px; + border-radius: 2px +} + +.minerva--history-page-action-enabled .page-actions-menu__list-item { + flex-basis: auto +} + +.minerva--history-page-action-enabled .page-actions-menu__list-item:first-child { + flex-grow: 0 +} + +.page-actions-overflow-list { + top: 100%; + right: -.75em; + border-radius: 2px +} + +.mw-ui-icon-minerva-ellipsis:before { + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg) +} + +@media screen { + @counter-style meetei { + system: numeric; + symbols: '\ABF0' '\ABF1' '\ABF2' '\ABF3' '\ABF4' '\ABF5' '\ABF6' '\ABF7' '\ABF8' '\ABF9'; + suffix: ') ' + } @counter-style santali { + system: numeric; + symbols: '\1C50' '\1C51' '\1C52' '\1C53' '\1C54' '\1C55' '\1C56' '\1C57' '\1C58' '\1C59' +} ol:lang(azb) li, ol:lang(bcc) li, ol:lang(bgn) li, ol:lang(bqi) li, ol:lang(fa) li, ol:lang(glk) li, ol:lang(kk-arab) li, ol:lang(lrc) li, ol:lang(luz) li, ol:lang(mzn) li { + list-style-type: persian + } + + ol:lang(ckb) li, ol:lang(sdh) li { + list-style-type: arabic-indic + } + + ol:lang(hi) li, ol:lang(mai) li, ol:lang(mr) li, ol:lang(ne) li { + list-style-type: devanagari + } + + ol:lang(as) li, ol:lang(bn) li { + list-style-type: bengali + } + + ol:lang(mni) li { + list-style-type: meetei + } + + ol:lang(or) li { + list-style-type: oriya + } + + ol:lang(sat) li { + list-style-type: santali + } +} + +div, span, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, ins, em, img, small, strike, strong, sub, sup, tt, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, input, button, select, audio, video { + margin: 0; + padding: 0; + border: 0; + font: inherit; + font-size: 100%; + vertical-align: baseline; + background: 0 0 +} + +table, caption, tbody, tfoot, thead, tr, th, td { + font-size: 100% +} + +caption { + font-weight: 700 +} + +button { + border: 0; + background-color: transparent; + cursor: pointer +} + +input { + line-height: normal +} + +ul { + list-style: none +} + +table { + border-collapse: collapse +} + +html, body { + height: 100% +} + +html { + font-size: 100%; + -webkit-text-size-adjust: none +} + +body { + background-color: transparent; + color: #202122; + margin: 0 +} + +main { + display: block +} + +.mw-body { + border-top: 1px solid transparent; + padding-bottom: 32px +} + +.overlay-enabled, .mw-body { + background-color: transparent +} + +.header-container { + border-bottom: 1px solid #c8ccd1; + padding: 0 16px +} + +.header-container.header-chrome { + background-color: #eaecf0; + border: 0; + box-shadow: inset 0 -1px 3px rgba(0, 0, 0, .08) +} + +.navigation-drawer--loading, #footer-info-lastmod { + display: none +} + +.header { + display: table; + width: 100%; + border-spacing: 0; + border-collapse: collapse; + height: 3.375em; + white-space: nowrap; + border-top: 1px solid #c8ccd1; + margin-top: -1px +} + +.header > div, .header > .navigation-drawer { + position: relative; + vertical-align: middle; + display: table-cell +} + +.header > div a { + display: block +} + +.header .branding-box { + width: auto; + opacity: .66 +} + +.header .branding-box h1, .header .branding-box a { + margin-left: 5px; + font-size: 1em; + text-decoration: none; + color: #202122 +} + +.header .branding-box h1 span, .header .branding-box a span { + line-height: 1; + font-size: inherit +} + +.header .branding-box h1 img, .header .branding-box a img { + vertical-align: middle +} + +.header .branding-box h1 > *, .header .branding-box a > * { + float: left +} + +.header .branding-box h1 sup, .header .branding-box a sup { + color: #54595d; + display: none +} + +.beta .header .branding-box h1 sup, .beta .header .branding-box a sup { + display: initial +} + +.header > .header-title { + vertical-align: middle +} + +#searchInput { + cursor: text +} + +.search-box, .header .search-box { + display: none; + width: auto +} + +.search-box .search { + background-color: #fff; + background-position: left .5em center; + background-repeat: no-repeat; + background-size: 1.125em; + -webkit-appearance: none; + width: 100%; + margin-top: 0; + height: 2.25em; + border: 1px solid #fff; + border-radius: 2px; + padding: 7px 0 7px 2.0625em; + box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + outline: 0; + -webkit-transition: border-color 250ms, box-shadow 250ms; + transition: border-color 250ms, box-shadow 250ms +} + +.client-nojs .search-box .search:focus, .search-overlay .search-box .search:focus { + border-color: #36c; + box-shadow: inset 0 0 0 1px #36c, 0 1px 1px rgba(0, 0, 0, .05) +} + +input.search::-webkit-search-decoration, input.search::-webkit-search-cancel-button, input.search::-webkit-search-results-button, input.search::-webkit-search-results-decoration { + display: none +} + +.content h2 { + clear: left +} + +.content .collapsible-heading .edit-page { + visibility: hidden +} + +.content .collapsible-heading.open-block .edit-page { + visibility: visible +} + +.content .mw-parser-output > h2, .content .section-heading { + border-bottom: 1px solid #eaecf0; + margin-bottom: .5em +} + +.content .mw-parser-output > h1, .content .mw-parser-output > h2, .content .mw-parser-output > h3, .content .mw-parser-output > h4, .content .mw-parser-output > h5, .content .section-heading, .content .in-block { + display: table +} + +.content .mw-parser-output > h1 .mw-headline, .content .mw-parser-output > h2 .mw-headline, .content .mw-parser-output > h3 .mw-headline, .content .mw-parser-output > h4 .mw-headline, .content .mw-parser-output > h5 .mw-headline, .content .section-heading .mw-headline, .content .in-block .mw-headline { + width: 100% +} + +.content .mw-parser-output > h1 > span, .content .mw-parser-output > h2 > span, .content .mw-parser-output > h3 > span, .content .mw-parser-output > h4 > span, .content .mw-parser-output > h5 > span, .content .section-heading > span, .content .in-block > span { + display: table-cell; + vertical-align: middle +} + +.content .mw-parser-output > h1 > .mw-editsection > .mw-ui-icon-element, .content .mw-parser-output > h2 > .mw-editsection > .mw-ui-icon-element, .content .mw-parser-output > h3 > .mw-editsection > .mw-ui-icon-element, .content .mw-parser-output > h4 > .mw-editsection > .mw-ui-icon-element, .content .mw-parser-output > h5 > .mw-editsection > .mw-ui-icon-element, .content .section-heading > .mw-editsection > .mw-ui-icon-element, .content .in-block > .mw-editsection > .mw-ui-icon-element { + margin-top: -.75em; + margin-bottom: -.75em +} + +.client-nojs .section-heading .indicator { + display: none +} + +#page-secondary-actions { + clear: both +} + +#page-secondary-actions a { + margin: 10px 2px 2px 0 +} + +#bodyContent .panel .content, .overlay .content-header, .overlay .panel, .page-list.side-list .list-thumb, .page-list li, .topic-title-list li, .site-link-list li, .drawer, .messagebox, .errorbox, .successbox, .warningbox, .list-header, .mw-revision { + padding-left: 16px; + padding-right: 16px +} + +.talk-overlay .comment .comment-content, .image-list, .pre-content, #mw-content-text > form > .oo-ui-fieldLayout > .oo-ui-fieldLayout-body, #mw-content-text > form > .oo-ui-widget, .content, .post-content { + margin: 0 16px +} + +.minerva__subtitle { + margin-top: 10px; + margin-bottom: 10px +} + +.minerva__subtitle:empty { + margin: 0 +} + +@media all and (min-width: 720px) { + .page-summary-list, .topic-title-list, .site-link-list, .overlay .panel, .list-header { + padding-left: 3.35em; + padding-right: 3.35em + } +} + +.heading-holder { + padding: 20px 0 0; + position: relative +} + +.heading-holder .tagline { + color: #54595d; + font-size: .85em +} + +.page-heading { + margin-bottom: 12px +} + +.mw-ui-icon-element.disabled, .language-selector.disabled { + cursor: default; + opacity: .25 +} + +#page-actions { + position: relative +} + +.page-actions-menu { + -moz-box-sizing: border-box; + box-sizing: border-box; + border-top: 1px solid #eaecf0; + border-bottom: 1px solid #c8ccd1; + margin-top: -1px +} + +.page-actions-menu__list { + display: flex; + height: 3em; + justify-content: space-between +} + +.page-actions-menu__list-item { + display: flex; + justify-content: flex-end; + align-items: center; + min-width: 0; + overflow: hidden +} + +.page-actions-menu__list-item > a { + font-weight: 500 +} + +.page-actions-menu__list-item li > *:hover { + box-shadow: none +} + +.page-actions-menu__list-item:first-child { + flex-grow: 1; + justify-content: flex-start; + margin-left: -8px +} + +.page-actions-menu__list-item:last-child { + margin-right: -8px +} + +.client-nojs .watch-this-article { + visibility: hidden +} + +.client-nojs .is-authenticated .watch-this-article { + visibility: visible +} + +@media all and (max-width: 320px -1) { + .client-nojs #page-actions { + display: none + } + + .client-nojs #section_0 { + border: 0 + } +} + +.minerva-user-navigation { + display: flex; + min-width: 7em; + min-height: 3.375em; + height: 100%; + width: 100%; + align-items: center; + justify-content: flex-end; + position: relative +} + +.minerva-user-navigation > *:last-child { + margin-right: -.75em +} + +.view-border-box *, .view-border-box { + -moz-box-sizing: border-box; + box-sizing: border-box +} + +.client-js .mw-redirectedfrom, .printfooter, .jsonly { + display: none +} + +.client-js .jsonly { + display: inherit +} + +.hidden { + display: none !important +} + +#mw-mf-viewport { + position: relative; + height: 100% +} + +#mw-mf-page-center { + width: 100%; + min-height: 100%; + position: relative; + background-color: #eaecf0 +} + +.content { + position: relative; + z-index: 0 +} + +.minerva-footer { + border-top: solid 1px #c8ccd1; + overflow: auto; + padding-bottom: 6px +} + +.client-nojs footer .indicator, .client-nojs .mw-footer .indicator { + display: none +} + +footer .hlist li:after, .mw-footer .hlist li:after { + color: #36c +} + +footer > .post-content, .mw-footer > .post-content { + overflow: auto; + margin-top: 42px +} + +footer > .post-content > *, .mw-footer > .post-content > * { + margin-bottom: 9px +} + +footer > .post-content > h2, .mw-footer > .post-content > h2 { + border-bottom: solid 1px #c8ccd1; + padding-bottom: 10px; + margin-top: 42px; + font-size: 1em; + font-weight: 700 +} + +footer > .post-content > h2:first-child, .mw-footer > .post-content > h2:first-child { + margin-top: 0 +} + +footer > .post-content .hlist, .mw-footer > .post-content .hlist, footer > .post-content .license, .mw-footer > .post-content .license { + font-size: .875em +} + +.last-modified-bar { + border-bottom: solid 1px #c8ccd1; + background-color: #eaecf0; + color: #72777d; + padding-top: .75em; + padding-bottom: .75em; + font-size: .875em; + -webkit-transition: background-color 250ms, color 250ms; + transition: background-color 250ms, color 250ms +} + +.last-modified-bar a, .last-modified-bar a:visited { + color: #54595d +} + +.last-modified-bar a:nth-child(1), .last-modified-bar a:visited:nth-child(1) { + font-weight: 700 +} + +.last-modified-bar a.external { + background-image: none; + padding-right: 0 +} + +.last-modified-bar__content { + align-items: center; + display: -ms-flexbox; + display: flex +} + +.last-modified-bar__text { + padding-right: 3.5em; + padding-left: .75em; + line-height: 1.65; + vertical-align: middle; + flex-grow: 1; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap +} + +@media (max-width: 720px) { + .last-modified-bar__text { + padding-right: 1em + } +} + +@media print { + .noprint, .banner-container, .header, .minerva__tab-container, .page-actions-menu, .post-content { + display: none + } + + h1, h2, h3, h4, h5, h6 { + page-break-after: avoid + } + + table, figure, img { + page-break-inside: avoid + } + + img { + max-width: 100% + } + + img.image-lazy-loaded { + -webkit-animation: none !important; + animation: none !important + } +} + +@media print and (max-device-width: 720px) { + @page { + margin: 50px 0 + } + + html { + padding: 0 50px + } + + .header-container, .header-container.header-chrome { + background: #fff; + box-shadow: none !important + } + + .header { + border-top: 0; + display: block; + height: auto; + padding: 0 16px + } + + .header .branding-box { + padding-left: 0 !important + } + + .header .branding-box sup { + display: none !important + } + + .header > nav, .header > div { + display: none !important + } + + .header > .branding-box { + height: auto; + display: block !important; + padding: 0 0 51px 50px + } + + .header > .branding-box h1 { + font-size: inherit + } + + .header > .branding-box h1 > * { + float: none + } + + .header > .branding-box h1 img { + height: 41px; + width: auto; + vertical-align: inherit + } + + .hatnote, .pre-content #page-actions { + display: none + } + + .pre-content { + display: block; + padding: 51px 0 35px + } + + .pre-content h1 { + font-size: 70px; + font-weight: 400; + font-style: italic; + font-stretch: normal; + line-height: normal; + letter-spacing: normal; + text-align: left; + color: #000 + } + + .pre-content .tagline { + font-size: 36px + } + + .mw-body > .content { + padding-top: 55px; + position: relative + } + + .mw-body > .content:before { + top: 0 + } + + .thumbinner { + width: auto !important + } + + .thumbinner > a { + width: 100% + } + + .thumb { + position: relative; + padding: 58px 0 !important; + text-align: left; + margin: 0 !important + } + + .thumb:after { + bottom: 30px + } + + .thumb:after, .mw-body > .content:before { + position: absolute; + left: 0; + content: ''; + display: block; + width: 55px; + height: 2px; + background: #999 + } + + .thumbcaption { + margin-top: 23px !important; + width: 100%; + font-style: italic; + font-size: 28px + } + + [class|=mw-content] { + font-size: 36px + } + + [class|=mw-content] a { + text-decoration: underline; + color: #202122 + } + + [class|=mw-content] blockquote { + color: #54595d; + padding: 5px 39px; + font-style: italic + } + + [class|=mw-content] .section-heading { + border-bottom: 0; + padding-bottom: 0; + margin-bottom: 16px + } + + [class|=mw-content] h2 { + font-size: 48px + } + + [class|=mw-content] h3 { + font-size: 40px; + margin-bottom: 13px + } + + [class|=mw-content] h4, [class|=mw-content] h5, [class|=mw-content] h6 { + font-size: 36px; + margin-bottom: 12px + } + + [class|=mw-content] .wikitable { + font-size: 16px + } + + [class|=mw-content] .infobox { + font-size: 30px + } + + .references .mw-cite-backlink { + display: none + } + + .references .reference-text { + font-style: italic + } + + .references a { + text-decoration: none + } + + .references .external.text { + background-image: none + } + + .printfooter { + display: block; + padding-top: 108px; + font-size: 30px + } + + #mw-mf-page-center > footer { + border-top: solid 4px #000; + padding-top: 23px; + background: #fff !important + } + + #mw-mf-page-center > footer .mw-ui-icon:before { + display: none !important + } + + #mw-mf-page-center > footer .last-modified-bar { + background: 0 0 !important; + border: 0 !important + } + + #mw-mf-page-center > footer .last-modifier-tagline { + font-size: 36px; + padding-top: 0 !important; + padding-bottom: 16px !important + } + + #mw-mf-page-center > footer .last-modified-bar, #mw-mf-page-center > footer .last-modified-bar a { + font-weight: 700 !important; + color: #000 !important + } + + #mw-mf-page-center > footer .post-content { + margin-top: 15px !important; + display: block + } + + #mw-mf-page-center > footer .post-content .hlist, #mw-mf-page-center > footer .post-content h2 { + display: none + } + + #mw-mf-page-center > footer .post-content .license a, #mw-mf-page-center > footer .post-content .license { + font-size: 30px; + color: #999; + font-weight: 400 + } +} + +@font-face { + font-family: raleway; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCFPrEHJA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F +} + +@font-face { + font-family: raleway; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCMPrEHJA.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116 +} + +@font-face { + font-family: raleway; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCHPrEHJA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB +} + +@font-face { + font-family: raleway; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCGPrEHJA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF +} + +@font-face { + font-family: raleway; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrE.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD +} + +@font-face { + font-family: neuton; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/neuton/v16/UMBRrPtMoH62xUZCyrg2Wi_FBw.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF +} + +@font-face { + font-family: neuton; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/neuton/v16/UMBRrPtMoH62xUZCyrg4Wi8.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD +} + +@font-face { + font-family: neuton; + font-style: normal; + font-weight: 200; + font-display: swap; + src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKAKkvcwr4Pro.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF +} + +@font-face { + font-family: neuton; + font-style: normal; + font-weight: 200; + font-display: swap; + src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKAKkvfQr4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD +} + +@font-face { + font-family: neuton; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKZKovcwr4Pro.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF +} + +@font-face { + font-family: neuton; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKZKovfQr4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD +} + +@font-face { + font-family: neuton; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/neuton/v16/UMBTrPtMoH62xUZCwYg6Qis.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF +} + +@font-face { + font-family: neuton; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://fonts.gstatic.com/s/neuton/v16/UMBTrPtMoH62xUZCz4g6.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD +} + +@font-face { + font-family: neuton; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKdK0vcwr4Pro.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF +} + +@font-face { + font-family: neuton; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKdK0vfQr4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD +} + +@font-face { + font-family: neuton; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKaK4vcwr4Pro.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF +} + +@font-face { + font-family: neuton; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKaK4vfQr4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD +} + +@media screen and (min-width: 1000px) { + .header { + max-width: 1250px !important + } +} + +.banner-container, .header, .page-header-bar, .overlay-header, .content, .overlay-content, .content-unstyled, .pre-content, .post-content, .last-modified-bar, #mw-content-text > form { + max-width: 1250px !important +} + +.page-Main_Page .page-heading, .page-Main_Page .pre-content { + display: none !important +} + +.page-Main_Page pre { + display: none +} + +.page-Main_Page .blocks-list { + display: flex; + flex-wrap: wrap; + justify-content: space-evenly; + list-style: none; + column-gap: 20px; + row-gap: 20px; + padding: 0; + margin: 0 +} + +.page-Main_Page .blocks-item { + box-sizing: border-box; + color: #ffc376; + display: flex; + flex: 1 0 180px; + text-align: center; + margin: 0 !important; + border: 1px solid #ecebeb; + border-radius: 8px; + box-shadow: 0 2px 15px rgba(175, 175, 175, .2); + flex-flow: wrap; + position: relative +} + +.page-Main_Page .blocks-item:hover { + box-shadow: 0 2px 15px rgba(231, 135, 27, .4) !important; + cursor: pointer; + top: -2px +} + +.page-Main_Page .blocks-item > a { + color: #ffc376; + padding: 0 10px 15px; + display: flex; + flex-direction: column; + flex: 1; + justify-content: center; + border-radius: inherit; + text-decoration: none; + background-color: transparent +} + +.page-Main_Page .block-icon { + background-position: top center; + background-repeat: no-repeat; + background-size: contain; + height: 140px; + margin: 0; + transition: all .1s ease-in-out +} + +.page-Main_Page .blocks-item-title { + margin: 0; + font-size: 22px; + color: #ffc376 +} + +.page-Main_Page .blocks-item-description:not(:empty) { + margin-top: 10px +} + +.page-Main_Page .blocks-item-description { + font-weight: 300; + margin: 0; + color: #1a1a1a +} + +.page-Main_Page .block-icon:before { + content: ""; + display: block; + position: relative +} + +.page-Main_Page .blocks-item#block-accessories > a > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.png) 2x) +} + +.page-Main_Page .blocks-item#block-accessories > a > .block-icon:before, .page-Main_Page .blocks-item#block-accessories:hover > a > .block-icon, .page-Main_Page .blocks-item#block-accessories > a:focus > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.ro.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.ro.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.ro.png) 2x) +} + +.page-Main_Page .blocks-item#block-armor > a > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.png) 2x) +} + +.page-Main_Page .blocks-item#block-armor > a > .block-icon:before, .page-Main_Page .blocks-item#block-armor:hover > a > .block-icon, .page-Main_Page .blocks-item#block-armor > a:focus > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.ro.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.ro.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.ro.png) 2x) +} + +.page-Main_Page .blocks-item#block-collections > a > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.png) 2x) +} + +.page-Main_Page .blocks-item#block-collections > a > .block-icon:before, .page-Main_Page .blocks-item#block-collections:hover > a > .block-icon, .page-Main_Page .blocks-item#block-collections > a:focus > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.ro.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.ro.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.ro.png) 2x) +} + +.page-Main_Page .blocks-item#block-hub > a > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.png) 2x) +} + +.page-Main_Page .blocks-item#block-hub > a > .block-icon:before, .page-Main_Page .blocks-item#block-hub:hover > a > .block-icon, .page-Main_Page .blocks-item#block-hub > a:focus > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.ro.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.ro.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.ro.png) 2x) +} + +.page-Main_Page .blocks-item#block-fairysouls > a > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.png) 2x) +} + +.page-Main_Page .blocks-item#block-fairysouls > a > .block-icon:before, .page-Main_Page .blocks-item#block-fairysouls:hover > a > .block-icon, .page-Main_Page .blocks-item#block-fairysouls > a:focus > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.ro.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.ro.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.ro.png) 2x) +} + +.page-Main_Page .blocks-item#block-island > a > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.png) 2x) +} + +.page-Main_Page .blocks-item#block-island > a > .block-icon:before, .page-Main_Page .blocks-item#block-island:hover > a > .block-icon, .page-Main_Page .blocks-item#block-island > a:focus > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.ro.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.ro.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.ro.png) 2x) +} + +.page-Main_Page .blocks-item#block-locations > a > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.png) 2x) +} + +.page-Main_Page .blocks-item#block-locations > a > .block-icon:before, .page-Main_Page .blocks-item#block-locations:hover > a > .block-icon, .page-Main_Page .blocks-item#block-locations > a:focus > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.ro.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.ro.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.ro.png) 2x) +} + +.page-Main_Page .blocks-item#block-minions > a > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.png) 2x) +} + +.page-Main_Page .blocks-item#block-minions > a > .block-icon:before, .page-Main_Page .blocks-item#block-minions:hover > a > .block-icon, .page-Main_Page .blocks-item#block-minions > a:focus > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.ro.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.ro.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.ro.png) 2x) +} + +.page-Main_Page .blocks-item#block-pets > a > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.png) 2x) +} + +.page-Main_Page .blocks-item#block-pets > a > .block-icon:before, .page-Main_Page .blocks-item#block-pets:hover > a > .block-icon, .page-Main_Page .blocks-item#block-pets > a:focus > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.ro.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.ro.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.ro.png) 2x) +} + +.page-Main_Page .blocks-item#block-reforging > a > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.png) 2x) +} + +.page-Main_Page .blocks-item#block-reforging > a > .block-icon:before, .page-Main_Page .blocks-item#block-reforging:hover > a > .block-icon, .page-Main_Page .blocks-item#block-reforging > a:focus > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.ro.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.ro.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.ro.png) 2x) +} + +.page-Main_Page .blocks-item#block-skills > a > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.png) 2x) +} + +.page-Main_Page .blocks-item#block-skills > a > .block-icon:before, .page-Main_Page .blocks-item#block-skills:hover > a > .block-icon, .page-Main_Page .blocks-item#block-skills > a:focus > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.ro.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.ro.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.ro.png) 2x) +} + +.page-Main_Page .blocks-item#block-stats > a > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.png) 2x) +} + +.page-Main_Page .blocks-item#block-stats > a > .block-icon:before, .page-Main_Page .blocks-item#block-stats:hover > a > .block-icon, .page-Main_Page .blocks-item#block-stats > a:focus > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.ro.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.ro.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.ro.png) 2x) +} + +.page-Main_Page .blocks-item#block-weapons > a > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.png) 2x) +} + +.page-Main_Page .blocks-item#block-weapons > a > .block-icon:before, .page-Main_Page .blocks-item#block-weapons:hover > a > .block-icon, .page-Main_Page .blocks-item#block-weapons > a:focus > .block-icon { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.ro.png); + background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.ro.png) 2x); + background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.ro.png) 2x) +} + +.page-Main_Page #wrapper { + display: flex; + flex-direction: row; + column-gap: 50px; + row-gap: 50px; + justify-content: space-between +} + +.page-Main_Page #wrapper #content { + display: flex; + flex-direction: column; + row-gap: 50px +} + +.page-Main_Page #wrapper #content #introduction { + display: flex; + flex-direction: row; + column-gap: 25px; + row-gap: 25px; + align-content: center +} + +.page-Main_Page #wrapper #content #introduction #welcome { + margin: .5em 0 +} + +.page-Main_Page #wrapper #content #introduction .blocks-item { + margin: 0 !important +} + +.page-Main_Page #wrapper #content #statistics .stats-list { + display: flex; + flex-wrap: wrap; + list-style: none; + justify-content: space-evenly; + padding: 0; + row-gap: 25px +} + +.page-Main_Page #wrapper #content #statistics .stats-list .stats-item { + margin: 0 +} + +.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon { + background-position: center; + background-size: contain; + background-repeat: no-repeat; + height: 55px; + width: 55px; + display: inline-block; + position: relative; + vertical-align: middle +} + +.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon.stats-icon-edits { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/edits.png) +} + +.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon.stats-icon-pages { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/pages.png) +} + +.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon.stats-icon-files { + background-image: url(https://wiki.hypixel.net/images/hypixel/icons/files.png) +} + +.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-item-text { + vertical-align: middle; + display: inline-flex; + position: relative; + flex-direction: column; + flex-wrap: nowrap; + justify-content: center; + align-content: center; + margin: 0 15px +} + +.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-item-text span:first-child { + font-size: 20px +} + +.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-item-text span:nth-child(2) { + font-size: 16px +} + +.page-Main_Page #wrapper #content #other-game-content ul { + columns: 200px auto +} + +.page-Main_Page #wrapper #content .content-heading { + height: 50px; + background-color: #1f1f1f; + border: 1px solid #333; + border-image: url(https://wiki.hypixel.net/images/hypixel/borders/classic_border.png) 1000 1000 repeat !important; + border-image-width: 35px !important; + border-image-outset: 2px !important; + margin: 0 0 1em; + font-size: 20px; + display: flex; + justify-content: center; + align-items: center +} + +.page-Main_Page #wrapper #sidebar { + display: flex; + flex-direction: column; + row-gap: 50px +} + +.page-Main_Page #wrapper #sidebar .sidebar-heading { + text-align: center; + font-size: 20px +} + +.page-Main_Page #wrapper #sidebar .sidebar-content { + display: flex; + flex-direction: column; + flex-wrap: nowrap; + row-gap: 15px; + background-color: #1f1f1f; + padding: 20px; + border-radius: 3px; + border: 1px solid #333; + border-image: url(https://wiki.hypixel.net/images/hypixel/borders/square_border.png) 500 500 repeat; + border-image-width: 35px !important; + border-image-outset: 2px !important +} + +.page-Main_Page #wrapper #sidebar #clock { + display: none +} + +.page-Main_Page #wrapper #sidebar #clock p { + text-align: center; + margin: 0 +} + +.page-Main_Page #wrapper #sidebar #clock #clock-time { + font-size: 2em +} + +.page-Main_Page #wrapper #sidebar #clock #clock-date { + font-size: 1em +} + +@media (max-width: 1000px) { + #wrapper { + flex-wrap: wrap + } +} + +@media (max-width: 720px) { + #introduction { + flex-wrap: wrap; + justify-content: center + } + + .stats-list { + flex-direction: column; + align-content: center + } +} + +.mw-ui-button.mw-ui-progressive { + background-color: #e7871b; + color: #fff; + border: 1px solid #e7871b +} + +.oo-ui-panelLayout-framed { + background-color: #eaecf0 !important; + border-radius: 4px; + border: none !important +} + +.oo-ui-dropdownInputWidget.oo-ui-widget-enabled { + background-color: transparent +} + +ul.mw-contributions-list li { + min-height: 0 !important +} + +ul.special li { + min-height: 0 !important +} + +body { + color: transparent; + background-color: transparent; + font-family: Raleway, helvetica, serif !important +} + +#content h1, #content h2, #content h3 { + font-family: Neuton, Raleway, helvetica, serif !important +} + +html, #mw-mf-page-center, #mw-script-doc, #content, .navbox, .navbox-subgroup, .overlay.search-overlay { + background-color: #fff !important +} + +.overlay.search-overlay { + background-color: #fff !important +} + +.overlay.search-overlay .search-box { + display: block !important; + position: relative !important +} + +a.external { + background-image: none !important; + padding-right: 0 !important +} + +.mw-body h2.list-header { + margin-top: 16px +} + +.page-heading > h1 { + font-size: 1.7em !important; + font-weight: 400 !important; + line-height: 1.3; + word-wrap: break-word; + word-break: break-word +} + +.list-header { + background-color: transparent; + color: inherit +} + +#toc ul { + list-style: decimal +} + +#mw-toc-heading::before { + background-image: url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJsaXN0IiBjbGFzcz0ic3ZnLWlubGluZS0tZmEgZmEtbGlzdCBmYS13LTE2IiByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Ik04MCAzNjhIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2NjRhMTYgMTYgMCAwIDAgMTYgMTZoNjRhMTYgMTYgMCAwIDAgMTYtMTZ2LTY0YTE2IDE2IDAgMCAwLTE2LTE2em0wLTMyMEgxNkExNiAxNiAwIDAgMCAwIDY0djY0YTE2IDE2IDAgMCAwIDE2IDE2aDY0YTE2IDE2IDAgMCAwIDE2LTE2VjY0YTE2IDE2IDAgMCAwLTE2LTE2em0wIDE2MEgxNmExNiAxNiAwIDAgMC0xNiAxNnY2NGExNiAxNiAwIDAgMCAxNiAxNmg2NGExNiAxNiAwIDAgMCAxNi0xNnYtNjRhMTYgMTYgMCAwIDAtMTYtMTZ6bTQxNiAxNzZIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAtMzIwSDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZWODBhMTYgMTYgMCAwIDAtMTYtMTZ6bTAgMTYwSDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2eiI+PC9wYXRoPjwvc3ZnPg==); + content: ""; + float: left; + height: 14px; + left: -14px; + position: relative; + top: 5px; + width: 14px +} + +#footer-company { + padding: 0 50px 0 0 +} + +#footer-links { + display: flex; + flex: 1; + flex-direction: column; + flex-wrap: wrap; + font-size: 15px; + max-height: 120px +} + +#footer-links > li { + padding: 4px 10px +} + +#footer-logo { + max-height: 64px +} + +#footer-socials { + font-size: 16px; + vertical-align: top; + color: gray; + display: block; + padding: 0 4px +} + +#footer-socials .fab { + min-width: 18px; + text-align: center; + vertical-align: middle +} + +#footer-socials a:hover { + color: gray !important +} + +#footer-socials a:hover > .fa-discord { + color: #7289da +} + +#footer-socials a:hover > .fa-facebook { + color: #4267b2 +} + +#footer-socials a:hover > .fa-instagram { + color: #405de6 +} + +#footer-socials a:hover > .fa-tiktok { + color: #000 +} + +#footer-socials a:hover > .fa-twitter { + color: #1da1f2 +} + +#footer-socials a:hover > .fa-youtube { + color: red +} + +#mw-content-text > form { + width: 100% !important +} + +.branding-box { + background: url(https://wiki.hypixel.net/images/hypixel-full.png) no-repeat; + background-origin: content-box; + background-size: contain; + background-position: center; + opacity: 1 !important; + padding: 10px 0; + cursor: pointer; + height: 100% +} + +.branding-box > a { + height: 100%; + width: 100% +} + +.branding-box > a > span { + color: transparent +} + +.client-nojs .search-box .search:focus { + border: none; + box-shadow: none +} + +.search-overlay .search-box .search:focus { + border: none; + box-shadow: none +} + +.toggle-list__toggle, #mw-mf-main-menu-button { + border: none; + box-shadow: none; + outline: none !important +} + +.footer { + background-image: linear-gradient(to bottom, rgba(26, 26, 26, 0.92), #1a1a1a), url(https://wiki.hypixel.net/images/artwork.png); + background-position: center; + background-repeat: no-repeat; + background-size: cover; + border-top: 1px solid #ddd; + color: #fff; + margin-top: 60px; + padding: 30px 0; + user-select: none +} + +.footer a { + color: gray !important; + text-decoration: none !important; + transition: .12s ease-in-out +} + +.footer a:hover { + color: #fff !important +} + +.footer-copyright { + color: gray; + display: block; + padding: 0 4px +} + +.footer-inner { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + margin: 0 auto; + max-width: 1160px; + padding: 0 !important; + width: 65% !important +} + +.header { + height: 71px !important; + user-select: none +} + +.header-chrome:before { + background-image: radial-gradient(farthest-side at top, rgba(255, 255, 255, 0.5), #ffffff), url(https://wiki.hypixel.net/images/artwork.png) !important; + background-position: center; + background-repeat: no-repeat; + background-size: cover; + content: ""; + height: 72px; + left: 0; + max-width: 100% !important; + position: absolute; + width: 100% !important +} + +.last-modified-bar { + margin: auto; + width: 90%; + background-color: #eaecf0 !important; + border-radius: 4px +} + +.minerva__tab.selected { + border-bottom: 2px solid #e7871b !important +} + +.mw-editform .editOptions { + margin-top: 20px +} + +.mw-ui-icon-element.cancel { + height: 44px; + margin: 10px; + padding: 0; + vertical-align: middle; + width: 44px +} + +.mw-ui-icon-element:not(.disabled):hover { + background-color: rgba(0, 0, 0, .1) +} + +.overlay-footer-container { + display: none +} + +.overlay.search-overlay.visible { + animation-duration: .1s !important +} + +.minerva__tab-container { + display: none +} + +.page-actions-menu, #filetoc, .warningbox { + border-radius: 4px; + margin-bottom: 16px; + padding: 0 20px; + background-color: #eaecf0; + border: 1px solid #c8ccd1 +} + +.warningbox { + padding: 10px 25px !important +} + +.warningbox, #mw-clearyourcache { + margin-bottom: 16px !important +} + +.search { + -webkit-appearance: none !important; + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&format=original&skin=minerva&version=1qbws); + background-position: left .8em center !important; + background-size: 18px !important; + border: 1px solid #fff !important; + border-radius: 6px !important; + box-shadow: 0 0 10px #bbb !important; + box-sizing: border-box !important; + color: #666 !important; + font-family: BlinkMacSystemFont, segoe ui, helvetica, Arial, sans-serif !important; + font-size: 14px !important; + height: 40px !important; + line-height: 1.15 !important; + max-width: 380px; + padding-left: 40px !important; + padding-right: 20px !important; + transition: border .12s ease-in-out !important; + width: 100% !important +} + +.search:focus { + outline: 1px solid #ffc376 !important +} + +.search-box .search { + border-radius: 4px +} + +.content kbd { + border-radius: 4px +} + +.content samp { + border-radius: 4px +} + +.content code { + border-radius: 4px +} + +.content pre { + border-radius: 4px +} + +footer { + border: none !important +} + +fieldset { + margin: 10px 0 +} + +#mw-mf-page-left { + box-shadow: 0 5px 17px 0 rgba(0, 0, 0, .24), 0 0 1px #a2a9b1 !important; + position: absolute !important; + height: max-content; + border-radius: 3px; + -webkit-transition: opacity 100ms ease-in-out, -webkit-tap-highlight-color 0s ease-in-out, transform 100ms ease-in-out, visibility 100ms ease-in-out !important; + transition: opacity 100ms ease-in-out, -webkit-tap-highlight-color 0s ease-in-out, transform 100ms ease-in-out, visibility 100ms ease-in-out !important; + top: 45px !important; + left: -12px !important; + transform: translate(0, -10px) !important +} + +#mw-mf-page-left li { + border: none !important +} + +#mw-mf-page-left li:hover { + background-color: #eaecf0 !important +} + +#mw-mf-page-left ul { + padding-bottom: 0 !important +} + +#mw-mf-page-left ul li a { + color: #54595d !important +} + +#mw-mf-page-left ul li a:hover { + box-shadow: none !important +} + +form.search-box { + display: block; + width: 100% +} + +input { + outline: none +} + +#main-menu-input:checked ~ #mw-mf-page-left { + transform: translate(0, 0) !important +} + +.hlist { + display: none +} + +.last-modified-bar.active { + background-color: #218e47 !important +} + +.wikitable > tr > th, .wikitable > tr > td, .wikitable > * > tr > th, .wikitable > * > tr > td { + padding: .25em .55em !important +} + +.suggestions { + border-radius: 6px !important +} + +.suggestions-result, .suggestions-special { + padding: .5em 1em !important +} + +.suggestions-results, .suggestions-special { + border-color: #ccc !important +} + +kbd, samp, code, pre, .page-actions-menu, #filetoc, .warningbox, .last-modified-bar { + border: 1px solid #333; + border-image: url(https://wiki.hypixel.net/images/hypixel/borders/classic_border.png) 1000 1000 repeat !important; + border-image-width: 35px !important; + border-image-outset: 2px !important +} + +@media only screen { + .oo-ui-tabOptionWidget { + color: #fff !important + } + + .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected { + background-color: #212121 + } + + .suggestions-results, .suggestions-special { + background-color: #1f1f1f !important; + border-color: #333 !important + } + + .suggestions-results .special-label, .suggestions-special .special-label { + color: #ccc !important + } + + .suggestions-results .suggestions-result, .suggestions-special .suggestions-result, .suggestions-results .special-query, .suggestions-special .special-query { + color: #fff !important + } + + .search { + color: #ccc !important + } + + html, body, #mw-mf-page-center, #mw-script-doc, #content, .navbox, .navbox-subgroup, .overlay.search-overlay, .oo-ui-tabSelectWidget-framed, .oo-ui-tagMultiselectWidget-handle, .mw-prefs-buttons, .mw-scribunto-message, .mw-scribunto-console-fieldset, .mw-history-compareselectedversions { + background-color: transparent !important; + color: #fff + } + + .mw-rcfilters-ui-watchlistTopSectionWidget-separator { + border-color: #212121 !important + } + + .mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-content-title, .mw-rcfilters-ui-filterTagMultiselectWidget-emptyFilters { + color: #fff !important + } + + .oo-ui-tabSelectWidget-framed { + border-bottom-color: transparent + } + + .oo-ui-tagMultiselectWidget-handle, .oo-ui-buttonGroupWidget, .oo-ui-dropdownWidget-handle, .oo-ui-optionWidget, .oo-ui-selectWidget, .oo-ui-optionWidget-selected { + background-color: #1a1a1a !important; + color: #fff !important; + border-color: #212121 !important + } + + .oo-ui-optionWidget-highlighted { + background-color: #212121 !important + } + + .oo-ui-optionWidget-selected { + background-color: #1f1f1f !important + } + + input, select, .oo-ui-buttonElement-button, #mw-scribunto-input, .diff-context { + color: #fff !important; + background-color: #1f1f1f !important; + border: 1px solid #333 !important + } + + legend { + color: #aaa + } + + .content .mw-parser-output > h2 { + border-bottom: 2px solid #333 + } + + .content .mw-parser-output > h3 { + border-bottom: 1px solid #333; + margin-bottom: .5em + } + + .content .section-heading { + border-bottom: 1px solid #aaa + } + + .content kbd, .content samp, .content code, .content pre, .content .toc, .content .infobox { + background-color: #1f1f1f !important; + border-color: #333 !important + } + + .content .infobox td { + border-color: #333 !important + } + + .infobox tr { + color: #fff !important + } + + table.wikitable > tr > th, table.wikitable > tr > td { + background-color: #212121; + border-color: #333 !important + } + + table.wikitable > tr > th { + background-color: #2b2b2b + } + + table.wikitable > tr:nth-child(odd) > td { + background: #2b2b2b + } + + table.wikitable > * > tr > th, table.wikitable > * > tr > td { + background-color: #212121; + border-color: #333 !important + } + + table.wikitable > * > tr > th { + background-color: #2b2b2b + } + + table.wikitable > * > tr:nth-child(odd) > td { + background: #2b2b2b + } + + .mw-datatable > tr > th, .mw_metadata > tr > th, .mw-datatable > tr > td, .mw_metadata > tr > td { + background-color: #212121 !important; + border-color: #333 !important + } + + .mw-datatable > tr > th, .mw_metadata > tr > th { + background-color: #2b2b2b !important + } + + .mw-datatable > * > tr > th, .mw_metadata > * > tr > th, .mw-datatable > * > tr > td, .mw_metadata > * > tr > td { + background-color: #212121 !important; + border-color: #333 !important + } + + .mw-datatable > * > tr > th, .mw_metadata > * > tr > th { + background-color: #2b2b2b !important + } + + .footer { + background-image: linear-gradient(to bottom, rgba(26, 26, 26, 0.85), #1a1a1a), url(https://wiki.hypixel.net/images/artwork.png); + border-top: 1px solid #1a1a1a + } + + .header-chrome:before { + background-image: radial-gradient(farthest-side at top, rgba(26, 26, 26, 0.5), #1a1a1a), url(https://wiki.hypixel.net/images/artwork.png) !important + } + + .oo-ui-iconElement-icon, .oo-ui-indicatorElement-indicator { + filter: invert(1) hue-rotate(180deg) brightness(1.2) + } + + .mw-ui-icon:not(.mw-ui-icon-wikimedia-history-invert):before { + filter: invert(1) hue-rotate(180deg) brightness(1.2) + } + + .mw-ui-icon:not(.mw-ui-icon-mf-expand-invert):before { + filter: invert(1) hue-rotate(180deg) brightness(1.2) + } + + .last-modified-bar { + background-color: #1f1f1f !important + } + + .last-modified-bar .last-modified-bar__text { + color: #fff !important + } + + .oo-ui-panelLayout-framed { + background-color: #1f1f1f !important + } + + .minerva__tab { + color: #aaa !important + } + + .mw-ui-icon-with-label-desktop:hover, .mw-ui-icon-with-label-desktop:focus, .mw-ui-icon-with-label-desktop:active, .mw-ui-icon-with-label-desktop:visited { + color: #aaa !important + } + + .page-heading > h1, .page-heading > .tagline { + color: #fff !important + } + + .toggle-list__list { + color: #fff !important; + background-color: #1f1f1f !important; + box-shadow: 0 5px 17px 0 rgba(0, 0, 0, .24), 0 0 1px #000 !important; + border: 1px solid #333 + } + + .search { + box-shadow: 0 0 10px #1f1f1f !important + } + + .search, .page-actions-menu, #filetoc, .warningbox { + background-color: #1f1f1f !important; + border-color: #333 !important + } + + .toggle-list-item:hover { + background: #000; + color: #fff + } + + .blocks-item-description, .mw-mf-user { + color: #fff !important + } + + .blocks-item { + box-shadow: 0 2px 15px rgba(35, 35, 35, .5) !important; + border: 1px solid #333 !important; + background-color: #212121 + } + + .mw-ui-button { + background-color: #1f1f1f !important; + border: 1px solid #333 !important; + color: #fff !important + } + + .mw-ui-button:hover { + background-color: #212121 !important + } + + .mw-history-undo a, .mw-rollback-link a { + background-color: #1f1f1f !important; + border: 1px solid #333 !important; + color: #fff !important + } + + .mw-history-undo a:hover, .mw-rollback-link a:hover { + background-color: #212121 !important + } + + .toggle-list-item__label { + color: #aaa !important + } + + .page-list .info, .page-list .component { + color: #aaa !important + } + + .page-list li { + border-color: #333 !important + } + + .topic-title-list .info, .topic-title-list .component { + color: #aaa !important + } + + .topic-title-list li { + border-color: #333 !important + } + + .site-link-list .info, .site-link-list .component { + color: #aaa !important + } + + .site-link-list li { + border-color: #333 !important + } + + .page-list.side-list .list-thumb { + color: #aaa !important + } + + .topic-title-list.side-list .list-thumb { + color: #aaa !important + } + + .site-link-list.side-list .list-thumb { + color: #aaa !important + } + + ul.mw-contributions-list li { + border-color: #1f1f1f !important + } + + ul.special li { + border-color: #1f1f1f !important + } + + .ns-special .content-header { + border-color: #1f1f1f !important + } + + .mw-prefs-buttons { + border-color: #1f1f1f !important + } + + #mw-mf-page-left { + box-shadow: 0 5px 17px 0 rgba(0, 0, 0, .24), 0 0 1px #000 !important + } + + #mw-mf-page-left ul li { + background-color: #1f1f1f !important; + color: #fff !important + } + + #mw-mf-page-left ul li a { + color: #aaa !important + } + + #mw-mf-page-left li:hover { + background-color: #000 !important + } + + .mw-ui-icon-element:not(.disabled):hover { + background-color: rgba(0, 0, 0, .4) + } +} + +@media only screen and (min-width: 720px) { + .header .branding-box { + width: auto !important; + min-width: 82px + } + + .overlay.search-overlay .overlay-title { + padding-left: 236px !important; + width: 380px !important + } + + #page-actions a { + color: #fff !important + } + + #page-actions label { + color: #fff !important + } +} + +@media only screen and (max-width: 720px) { + #footer-company { + padding: 0 0 30px; + text-align: center; + width: 100% + } + + #footer-links { + max-height: 100%; + text-align: center + } + + .header-chrome:before { + background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.5), #ffffff), url(https://wiki.hypixel.net/images/artwork.png) !important; + height: 170px !important + } + + .last-modified-bar { + margin: 0 16px + } + + .header-chrome:before { + background-image: linear-gradient(to bottom, rgba(26, 26, 26, 0.5), #1a1a1a), url(https://wiki.hypixel.net/images/artwork.png) !important + } +} + +@media only screen and (min-width: 1000px) { + .footer-inner { + padding: 0; + width: 90% + } +} + +@media only screen and (max-width: 1000px) { + #footer-links { + max-width: 100% + } + + .footer-inner { + padding: 0 5% !important; + width: calc(90%) !important + } +} + +.infobox { + border: 15px solid #232445 !important; + border-image: url(https://wiki.hypixel.net/images/hypixel/borders/square_border.png) 1000 1000 repeat !important; + border-image-width: 100px !important; + border-image-outset: 2px !important; + border-collapse: separate !important +} + +.infobox { + background-color: #f2f2f2; + border-collapse: collapse; + clear: both; + display: table !important; + float: right; + margin: 0 !important; + margin-left: 20px !important; + width: 320px; + margin-bottom: 15px !important; + table-layout: fixed +} + +.infobox table { + border-collapse: inherit !important +} + +.infobox img { + display: block; + margin: 20px auto; + max-width: 150px; + height: auto +} + +.infobox td { + border-top: 1px solid #c7c7c7; + padding: 2px 8px; + text-align: right +} + +.infobox td:first-of-type { + font-weight: 700; + text-align: left +} + +.infobox td:last-child { + float: right; + width: 100%; + text-align: right +} + +.infobox tr:first-of-type > th { + font-size: 16px; + font-weight: 700; + padding: 10px 0; + text-align: center +} + +.infobox.minor { + border-image-width: 0 100px 100px 100px !important; + border-width: 0 15px 15px !important; + margin-top: -15px !important +} + +.infobox tr:first-of-type > td { + border-top: none +} + +.mw-parser-output .infobox:last-of-type { + margin-bottom: 15px +} + +span.color-divine, span.color-light_blue, span.color-aqua { + color: #5ff !important +} + +span.color-black { + color: #000 !important +} + +span.color-rare, span.color-blue { + color: #55f !important +} + +span.color-dark_aqua { + color: #0aa !important +} + +span.color-dark_blue { + color: #00a !important +} + +span.color-dark_gray { + color: #555 !important +} + +span.color-dark_green { + color: #0a0 !important +} + +span.color-epic, span.color-dark_purple { + color: #a0a !important +} + +span.color-dark_red { + color: #a00 !important +} + +span.color-legendary, span.color-orange, span.color-gold { + color: #fa0 !important +} + +span.color-gray { + color: #aaa !important +} + +span.color-uncommon, span.color-green { + color: #5f5 !important +} + +span.color-pink, span.color-mythic, span.color-light_purple { + color: #f5f !important +} + +span.color-supreme, span.color-special, span.color-very-special, span.color-red { + color: #f55 !important +} + +span.color-common, span.color-white { + color: #fff !important +} + +span.color-yellow { + color: #ff5 !important +} + +.tabber__header__prev:after, .tabber__header__next:after { + filter: invert(1) +} + +:not(.infobox) .tabber__tab--active { + background-color: rgba(51, 102, 204, .2) +} + +:not(.infobox) .tabber__panel, :not(.infobox) .tabber__header { + background-color: #1f1f1f; + border: 1px solid #333 +} + +:not(.infobox) .tabber__panel { + padding: 1em !important +} + +:not(.infobox) .tabber__panel h1, :not(.infobox) .tabber__panel h2, :not(.infobox) .tabber__panel h3 { + margin-top: 0 +} + +.diff-addedline .diffchange { + background: #0083ff +} + +.codeEditor-status { + color: #000 !important +} + +#toctogglecheckbox:not(:checked) + .toctitle { + border-bottom: 1px solid #333; + margin-bottom: 10px +} + +a.new { + color: #d33 !important +} + +.contributionscores { + width: 100% +} + +.contributionscores td { + text-align: center !important +} + +.contributionscores .header { + display: table-row +} + +.contributionscores .content { + width: auto +} + +.wikiEditor-ui-toolbar { + background-color: #1f1f1f !important +} + +.wikiEditor-ui-toolbar .label:after { + filter: invert(1) hue-rotate(180deg) brightness(1.2) +} + +.wikiEditor-ui-toolbar .tabs .tab a::before { + filter: invert(1) hue-rotate(180deg) brightness(1.2) +} + +.wikiEditor-ui .wikiEditor-ui-view { + border: 1px solid #54595d +} + +.wikiEditor-ui-toolbar { + box-shadow: 0 10px 9px 0 rgba(0, 0, 0, .1) +} + +.wikiEditor-ui-toolbar .sections .section { + border-top: none +} + +.wikiEditor-ui-toolbar .group { + border-right: none; + border-left: none +} + +.tabber__panel { + overflow: visible +} + +:not(.tabber__panel--active).tabber__panel { + display: none +} + +.tabber__section { + height: auto !important; + overflow: visible +} + +.infobox td { + font-size: 13px +} + +.minecraft-inventory td { + font-size: 15px !important +} + +.content { + padding: 0 +} + +.tabber__tab--active, .tabber__tab--active:visited { + box-shadow: inset 0 -2px 0 0 #ffc376; + border-width: 0 1px; + background-color: rgba(255, 195, 118, .1) !important; + font-weight: 700 +} + +.tabber__tab--active a:active, .tabber__tab a:visited { + color: #ffc376 !important +} + +.tabber__tab:hover { + box-shadow: inset 0 -2px 0 0 #ffc376; + color: #ffc376; + filter: brightness(1.5) +} + +.tabber__tab a:active, .tabber__tab a:visited { + color: #bdbcb9 !important +} + +.tabber__tabs { + box-shadow: none !important +} + +.tabber__tabs a:first-of-type { + border-left: none +} + +.tabber__tab { + color: #36c; + line-height: 30px; + font-weight: 400 +} + +.tabber { + margin-bottom: 5px +} + +#mw-mf-page-left ul { + list-style-type: none; + padding-left: 0 +} + +#mw-mf-page-left li { + margin-bottom: 0 +} + +#mw-mf-page-left ul li a { + color: #aaa !important +} + +#mw-mf-main-menu-button:hover + #mw-mf-page-left, #mw-mf-page-left:hover { + visibility: visible +} + +.mw-hypixel-right ul { + padding-left: 0 +} + +.mw-hypixel-right li { + margin-bottom: 0 +} + +.mw-hypixel-right a { + text-decoration: none +} + +table.mw-collapsible :first-child tr:first-child th:last-child::before { + color: #ffc376 !important +} + +.infobox.minor img, .remove-img-span img { + display: inline !important; + margin: 0 !important +} + +.infobox.minor tr:first-of-type > th { + padding: 7px; + border-bottom: 1px solid #333 !important +} + +.infobox.minor tr:nth-of-type(2) > td { + border-top: none +} + +.occupants-minor, .resources-minor { + text-align: left !important; + font-weight: 400; + padding: 5px 0 0 !important +} + +.occupants-minor:first-of-type, .resources-minor:first-of-type { + border-right: 1px solid #333 !important +} + +.occupants-minor li, .resources-minor li, .materials-minor li { + margin-bottom: 0 !important +} + +.occupants-minor ul, .resources-minor ul, .materials-minor ul { + list-style: none !important; + padding: 7px !important; + font-weight: 400 !important +} + +.color-wheel-minor { + border-radius: 50px; + border-style: solid; + border-width: 30px; + height: 0; + width: 0; + transform: rotate(45deg) +} + +.loot-drops-minor li { + list-style-type: none; + margin-bottom: 0 +} + +.gemstone-slot-minor { + text-align: center !important; + padding: 5px +} + +.upgrades-low-minor { + text-align: center !important; + font-weight: 400 !important; + border-right: 1px solid #333 !important +} + +.upgrades-right-minor { + padding: 2px !important; + padding-top: 5px !important; + text-align: center !important +} + +.upgrades-text-minor { + font-size: 15px !important; + font-weight: 700 !important +} + +.attributes-minor { + text-align: center !important; + font-weight: 400 !important; + border-right: 1px #333 solid !important +} + +.attributes-text-minor { + font-size: 13px !important; + font-weight: 700 !important +} + +.container-navbox { + max-width: 100%; + height: auto; + padding: 6px; + font-size: 15px; + background-color: #1f1f1f; + border: 1px solid #c8ccd1; + border-color: #333 !important; + border-image: url(https://wiki.hypixel.net/images/hypixel/borders/classic_border.png) 1000 1000 repeat !important; + border-image-width: 35px !important; + border-image-outset: 2px !important; + clear: both +} + +.container-navbox-header { + width: auto; + height: 35px; + padding: 10px; + border-bottom: 2px solid #333; + text-align: center; + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + font-size: 18px; + vertical-align: middle +} + +.container-navbox-header p { + margin: 0 !important +} + +.container-navbox-section { + max-width: 100%; + height: auto; + border-bottom: 2px solid #333; + display: flex; + flex-direction: row; + background-color: #1f1f1f; + column-gap: 5px +} + +.container-navbox-section:last-child { + border-bottom: none +} + +.container-navbox-group-header { + width: 200px; + max-height: 100%; + padding: 1em; + display: flex; + align-items: center; + background-color: #1f1f1f; + font-weight: 700; + white-space: pre-wrap; + column-gap: 10px +} + +.container-navbox-group { + width: 100%; + padding: 15px 1em +} + +.container-navbox-group ul { + columns: 220px auto +} + +.container-navbox-group ul li { + margin-bottom: 5px +} + +.dropdown:hover .dropdown-content { + visibility: visible; + opacity: 1 +} + +blockquote { + font-family: Raleway, helvetica, serif !important +} + +.cata-image-loot-tabber * .tabber__tabs a::before { + content: ""; + width: 35px; + height: 45px; + background-position: center; + background-repeat: no-repeat; + background-size: cover +} + +.cata-image-loot-tabber * .tabber__tabs a:nth-child(1)::before { + background-image: url(https://wiki.hypixel.net/images/a/a8/SkyBlock_furniture_wood_chest_plus.png) +} + +.cata-image-loot-tabber * .tabber__tabs a:nth-child(2)::before { + background-image: url(https://wiki.hypixel.net/images/b/be/SkyBlock_furniture_gold_chest_plus.png) +} + +.cata-image-loot-tabber * .tabber__tabs a:nth-child(3)::before { + background-image: url(https://wiki.hypixel.net/images/e/e9/SkyBlock_furniture_diamond_chest_plus.png) +} + +.cata-image-loot-tabber * .tabber__tabs a:nth-child(4)::before { + background-image: url(https://wiki.hypixel.net/images/8/82/SkyBlock_furniture_emerald_chest_plus.png) +} + +.cata-image-loot-tabber * .tabber__tabs a:nth-child(5)::before { + background-image: url(https://wiki.hypixel.net/images/b/be/SkyBlock_furniture_ender_chest_plus.png) +} + +.cata-image-loot-tabber * .tabber__tabs a:nth-child(6)::before { + background-image: url(https://wiki.hypixel.net/images/b/be/SkyBlock_furniture_ender_chest_plus.png) +} + +.boss-quote-table-quote { + font-family: sans, serif; + font-size: 40px; + font-weight: 700; + color: #f55; + padding: 16px 10px; + line-height: .5 +} + +.toc > ul { + margin: 0 5em 0 32px !important +} + +.toctogglecheckbox ~ ul { + display: none +} + +.toctogglecheckbox:not(:checked) ~ ul { + display: block +} + +.dialogue-headine { + padding: .5em 0; + line-height: 1.3; + word-wrap: break-word; + word-break: break-word; + font-weight: 700 +} + +.content code { + padding: .1em .4em +} + +code { + border-image: none !important +} + +.mw-parser-output { + display: inline-block; + width: 100%; + max-width: 100% +} + +@media (min-width: 1000px) { + .header-container.header-chrome { + position: fixed; + z-index: 2; + width: 100%; + top: 0; + padding: 0 !important + } + + .header-container.header-chrome:before { + box-shadow: 0 0 20px 10px #1a1a1a + } + + #mw-mf-page-center, #mw-mf-page-center::before { + top: 100px !important + } + + .minerva-user-menu-list { + top: 60px + } +} + +@media (max-width: 1000px) { + .hypixel-site-navigation .toggle-list__toggle { + padding-left: 0 !important; + padding-right: 0 !important + } + + #hypixel-site-navigation-wrapper { + padding: 0 .75em + } +} + +@media (max-width: 720px) { + .header { + flex-wrap: wrap !important; + height: auto !important; + justify-content: space-around !important + } + + #hypixel-site-navigation-wrapper { + order: 3; + flex-wrap: wrap !important; + row-gap: 15px; + justify-content: space-around + } + + #hypixel-site-navigation-wrapper .toggle-list__list { + left: 0 !important; + width: 100% !important + } + + .branding-box { + width: 80px; + height: 40px + } + + .search-box { + width: 100% !important; + left: 0 !important + } +} + +.main-menu-mask { + display: none !important +} + +#hypixel-site-navigation-wrapper { + display: flex; + flex-wrap: nowrap +} + +.hypixel-site-navigation { + color: #fff !important; + text-shadow: 1px 1px rgba(0, 0, 0, .5) +} + +.hypixel-site-navigation a { + color: inherit !important +} + +.hypixel-site-navigation .toggle-list__toggle { + padding: .75em +} + +.hypixel-site-navigation .toggle-list__toggle:hover { + background-color: rgba(0, 0, 0, .4) +} + +.hypixel-site-navigation .toggle-list__list { + top: 100%; + min-width: 200px +} + +.hypixel-site-navigation .toggle-list__list .toggle-list-item .toggle-list-item__anchor { + min-height: 20px +} + +.toggle-list__list, .minerva-user-menu-list { + border-radius: 3px +} + +.minerva-user-navigation { + width: auto !important; + min-width: revert !important +} + +.header { + display: flex; + justify-content: space-between; + align-content: center; + align-items: center; + flex-direction: row; + flex-wrap: nowrap +} + +.hypixel-site-navigation > label::after { + content: ""; + background-image: linear-gradient(transparent, transparent), url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+ZXhwYW5kPC90aXRsZT48ZyBmaWxsPSIjYTJhOWIxIj48cGF0aCBkPSJNMTcuNSA0Ljc1bC03LjUgNy41LTcuNS03LjVMMSA2LjI1bDkgOSA5LTl6Ii8+PC9nPjwvc3ZnPg==); + display: inline-block; + vertical-align: middle; + min-width: 1em; + min-height: 1em; + padding: 0 0 0 20px; + background-repeat: no-repeat; + background-size: 1em 1em; + background-position: center +} + +#mw-mf-page-left ul li a span, .toggle-list-item__label { + color: #fff !important +} + +.mw-ui-icon-wikimedia-flag-ltr-base20:before { + background-image: url(https://wiki.hypixel.net/resources/lib/ooui/themes/wikimediaui/images/icons/flag-ltr.svg) +} + +.mw-ui-icon-wikimedia-articleRedirect-ltr-base20:before { + background-image: url(https://wiki.hypixel.net/resources/lib/ooui/themes/wikimediaui/images/icons/articleRedirect-ltr.svg) +} + +@media (max-width: 720px) { + table.infobox { + display: table !important + } + + table.wikitable { + display: block !important + } +} + +table.infobox { + display: revert !important +} + +.infobox ul { + list-style: none +} + +#userloginForm .mw-userlogin-rememberme { + display: block !important +} + +.mw-hp-tree { + color: #5f5; + margin-left: 20px +} + +.mw-hp-tree li { + margin-bottom: 0; + list-style-type: disc +} + +.mw-hp-tree li::marker { + color: #fff +} + +.mw-hp-tree ul:first-of-type { + margin-top: 6px +} + +.mw-hp-tree ul:last-of-type { + margin-bottom: 6px +} + +.mw-hp-tree-container { + margin-left: 5px +} + +.mw-hp-tree-text::after { + content: "Expand"; + color: #ba91ff; + display: inline-block +} + +.mw-hp-tree-text-down::after { + content: "Collapse"; + color: #7698ff; + display: inline-block +} + +.mw-hp-tree-anchor { + cursor: pointer; + user-select: none +} + +.mw-hp-tree-nested { + display: none +} + +.mw-hp-tree-active { + display: block +} + +.mw-display-qrcode { + border: 2px solid #fff +} + +.mw-overlays-container .search-overlay { + top: 71px +} + +.mw-overlays-container .search-overlay .search-content, .mw-overlays-container .search-overlay .results { + margin-left: 0 !important +} + +.mw-overlays-container .search-overlay .search-content { + z-index: 4; + position: relative; + border: none !important +} + +.mw-overlays-container .search-overlay .overlay-content { + padding-top: 0 !important; + z-index: 3 +} + +.mw-overlays-container .search-overlay .overlay-header { + flex-wrap: nowrap !important +} + +.mw-overlays-container .search-overlay .overlay-title { + padding-right: 15px +} + +.mw-overlays-container .search-overlay .search { + max-width: unset !important +} + +.mw-overlays-container .search-overlay .clear { + right: 5px !important +} + +.mw-overlays-container .search-overlay .results { + position: relative; + box-shadow: none !important; + background: 0 0 !important +} + +.mw-overlays-container .search-overlay .results ul > li { + color: #fff; + background: #1f1f1f; + border: 1px solid #333 !important; + border-radius: 6px; + margin: 5px 0; + box-shadow: 0 0 10px #1f1f1f !important +} + +.mw-overlays-container .search-overlay .results .list-thumb { + background-color: #212121; + border-radius: 6px +} + +.mw-overlays-container .search-overlay .results .page-summary h2, .mw-overlays-container .search-overlay .results .page-summary h3 { + color: #fff +} + +@media (min-width: 720px) { + .overlay-content { + padding-left: 236px !important + } + + .overlay-header-container { + z-index: 4 !important + } + + .search-content, .results { + width: 380px !important + } +} + +@media (max-width: 720px) { + div.overlay-header-container { + position: relative !important; + top: -71px !important + } + + .overlay-content { + padding: 0 15px + } + + .search-content, .results { + width: 100% !important + } +} + +table.sortable .headerSort { + padding-right: 21px !important; + position: relative +} + +table.sortable .headerSort:after { + background-image: inherit; + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-repeat: no-repeat; + background-position: center right; + filter: invert(100%); + pointer-events: none +} + +.warningbox > p { + color: #fff; + margin: .5em 0 +} + +.suggestions-special { + border-radius: 6px +} + +.mw-dismissable-notice { + background-color: #1f1f1f; + border-radius: 8px; + border: 1px solid #333; + border-image-width: 35px !important; + border-image-outset: 2px !important +} + +.mw-dismissable-notice { + position: fixed; + display: block; + bottom: 25px; + z-index: 6; + width: 100%; + max-width: 92% !important; + box-shadow: 0 -5px 30px 20px rgba(0, 0, 0, .3); + margin: 0 !important; + left: 50%; + transform: translateX(-50%) +} + +.mw-dismissable-notice-body { + padding: 20px; + margin: 0 !important +} + +.mw-dismissable-notice-close { + padding: 20px +} + +.banner-container { + position: relative +} + +.warningbox { + color: #fff !important +} + +#content { + position: relative; + z-index: 1; + background-color: transparent !important +} + +div#mw-mf-page-center::before { + content: ""; + position: fixed; + top: 0; + bottom: 0; + right: 0; + height: 100%; + width: 100%; + background-image: linear-gradient(#1a1a1a, transparent), url(https://wiki.hypixel.net/images/hypixel/background.png); + background-image: linear-gradient(#1a1a1a, transparent), image-set(url(https://wiki.hypixel.net/images/hypixel/background.png) 1x, url(https://wiki.hypixel.net/images/hypixel/background-large.png) 2x); + background-attachment: fixed; + background-color: #1a1a1a; + background-position: center; + background-repeat: no-repeat; + background-size: cover; + opacity: .075; + z-index: 0; + pointer-events: none +} + +.page-Main_Page #wrapper #content { + background: 0 0 !important +} + +.last-modified-bar, .footer { + position: relative +} + +.last-modified-bar a, .last-modified-bar a:visited { + color: #fff +} + +.overlay { + z-index: 2 !important +} + +.mwe-math-element { + overflow: auto; + display: block +} + +#page-secondary-actions { + display: none +} + +.loot-drops-minor li { + margin-bottom: 0 !important +} + +.warningbox { + color: #fff +} + +.warningbox > p { + margin: .5em 0 !important; + font-size: 17px +} + +.toctitle > .mw-ui-icon-minerva-listBullet { + display: none +} + +.infobox img { + max-width: 100% !important +} + +.hp-loottable td { + border: 2px solid #1a1a1a !important +} + +.hp-loottable td:last-child { + color: #5f5 +} + +.is-affected-by-mf { + outline: dotted 3px transparent; + outline-offset: -1px; + outline-color: #5ff +} + +.is-affected-by-pl { + outline: dotted 3px transparent; + outline-offset: -1px; + outline-color: #f5f +} + +.is-affected-by-mf.is-affected-by-pl { + outline-color: #b591b7 !important +} + +.cata-image-loot-tabber * .tabber__tabs a:nth-child(1)::before { + background-image: url(https://wiki.hypixel.net/images/b/b9/SkyBlock_furniture_dungeon_wood_reward_chest.png); + height: 65px +} + +.cata-image-loot-tabber * .tabber__tabs a:nth-child(2)::before { + background-image: url(https://wiki.hypixel.net/images/8/85/SkyBlock_furniture_dungeon_gold_reward_chest.png); + height: 65px +} + +.cata-image-loot-tabber * .tabber__tabs a:nth-child(3)::before { + background-image: url(https://wiki.hypixel.net/images/9/98/SkyBlock_furniture_dungeon_diamond_reward_chest.png); + height: 65px; + width: 40px +} + +.cata-image-loot-tabber * .tabber__tabs a:nth-child(4)::before { + background-image: url(https://wiki.hypixel.net/images/e/e4/SkyBlock_furniture_dungeon_emerald_reward_chest.png); + height: 65px; + width: 40px +} + +.cata-image-loot-tabber * .tabber__tabs a:nth-child(5)::before { + background-image: url(https://wiki.hypixel.net/images/4/40/SkyBlock_furniture_dungeon_obsidian_reward_chest.png); + height: 65px; + width: 50px +} + +.cata-image-loot-tabber * .tabber__tabs a:nth-child(6)::before { + background-image: url(https://wiki.hypixel.net/images/8/87/SkyBlock_furniture_dungeon_bedrock_reward_chest.png); + height: 65px; + width: 55px +} + +.diff-deletedline .diffchange { + background: #988e78 !important +} + +.hide { + display: none +} + +.page-notif-box { + border: 2px solid #333 !important; + border-left-width: 10px !important; + border-radius: 6px; + border-collapse: separate !important; + width: 75%; + background-color: #1f1f1f !important; + box-shadow: 0 0 10px #1f1f1f !important; + display: flex; + margin: auto !important; + color: #fff; + font-weight: 700; + margin-top: 25px !important; + margin-bottom: 25px !important +} + +.page-notif-box tr > td { + border: none; + padding: .25em .9em +} + +.page-notif-box img { + max-width: revert !important; + flex-shrink: 0 +} + +.page-notif-box-updating, .page-notif-box-changed { + border-color: #e7871b !important +} + +.page-notif-box-no-obtain, .page-notif-box-cannot-obtain { + border-color: #e30000 !important +} + +.page-notif-box-alpha { + border-color: #0d6f67 !important +} + +.hp-input { + height: 35px; + width: 100%; + border: none !important +} + +.dungeon-calc-container td, .loot-calc-container td { + border: 2px solid #1a1a1a +} + +.dungeon-calc-button, .loot-calc-button { + cursor: pointer; + vertical-align: bottom; + background-color: #3f7dfb !important; + transition-duration: .35s; + padding: 5px !important +} + +.dungeon-calc-button:hover, .loot-calc-button:hover { + background-color: #5e93fe !important +} + +.hp-loottable td:last-child { + color: #5f5 +} + +.dungeon-loottable td:last-child { + color: #5f5 +} + +.listspacing li { + margin-bottom: 0 !important +} + +.listspacing li:last-child { + margin-bottom: 1em !important +} + +.listdisplay li { + display: inline !important +} + +.categoryboxcontainer { + max-width: 100%; + height: 35px; + background-color: #1f1f1f; + border: 1px solid #333; + padding: 3px; + font-size: 15px; + clear: both +} + +.categoryboxcontainer li { + display: inline-block; + padding-left: 5px; + padding-right: 5px; + line-height: 35px +} + +.categoryboxcontainer li:first-child { + padding-left: 0; + border-left: none +} + +.categoryboxcontainer li:nth-child(2) { + border-left: none +} + +.categoryboxcontainer li:empty { + display: none +} + +.tooltiptemp { + position: relative !important; + display: inline-block !important; + text-decoration: underline dotted; + cursor: help +} + +.tooltiptemp .tooltiptexttemp { + visibility: hidden; + width: 240px; + background-color: #000; + color: #fff; + text-align: center; + border: 1px #333 solid; + border-radius: 6px; + padding: 5px 0; + position: absolute; + z-index: 1; + bottom: 100% !important; + left: 50% !important; + margin-left: -120px !important; + opacity: 0; + transition: opacity 1s +} + +.tooltiptemp .tooltiptexttemp::after { + content: ""; + position: absolute; + top: 100%; + left: 50%; + margin-left: -5px; + border-width: 5px; + border-style: solid; + border-color: #000 transparent transparent transparent +} + +.tooltiptemp:hover .tooltiptexttemp { + visibility: visible; + opacity: 1 +} + +.tooltiptemp p { + margin: 0 +} + +.raw-mctooltip { + position: relative !important; + display: inline-block !important; + font-weight: 400 +} + +.raw-mctooltip:hover .raw-mctooltiptext { + display: inline +} + +.raw-mctooltiptext { + display: none; + font-family: minecraft, helvetica, serif; + margin: 0 +} + +.content .mw-parser-output > h2 { + padding: .25em 0; + font-size: 1.8em; + margin-top: 35px +} + +.content .mw-parser-output > h2, .content .mw-parser-output > h3 { + text-transform: uppercase; + font-weight: 400 +} + +.heading-holder { + padding: 0 !important +} + +.mw-body-content blockquote { + background-color: #212121; + border-radius: 6px; + border: 1px solid #333 !important; + border-left-width: 5px !important; + display: table +} + +.tabber__tab { + font-weight: 400 !important; + column-gap: 10px +} + +.tabber__header .tabber__tab:not(.tabber__tab--active) { + color: #fff +} + +.mw-collapsible-toggle { + padding-left: 5px +} + +.tabber__header, .tabber__section, .tabber__panel { + scroll-snap-type: none !important; + overscroll-behavior: none !important; + scroll-snap-align: none !important; + overflow: hidden !important +} + +.mw-userlogin-help { + display: none +} + +@media (min-width: 720px) { + .header .branding-box { + max-height: 55px + } +} + +@font-face { + font-family: minecraft; + src: url(https://wiki.hypixel.net/fonts/minecraft.woff) format("woff") +} + +.minecraft-inventory { + -moz-user-select: none; + -ms-user-select: none; + -webkit-user-select: none; + background-color: #c6c6c6; + border: 4px solid; + border-color: #fff #555 #555 #fff; + border-radius: 4px; + box-shadow: 0 0 0 1px #000; + color: #404040; + display: inline-block; + font-family: minecraft, serif; + font-size: 15px; + font-weight: 400; + padding: 2px 6px 6px; + user-select: none; + margin: 10px 0 +} + +.minecraft-inventory table { + border-collapse: separate; + margin: 0 !important +} + +.minecraft-inventory td { + background: #8b8b8b no-repeat center center/32px 32px; + border: 2px solid; + border-color: #373737 #fff #fff #373737; + box-sizing: border-box; + padding: 0; + position: relative; + width: 36px +} + +.minecraft-inventory td > .external { + background: 0 0; + padding: 0 +} + +.minecraft-inventory td > a:hover { + text-decoration: none +} + +.minecraft-inventory td:hover:after { + background: #fff; + content: ""; + float: left; + height: 100%; + left: 0; + opacity: .5; + pointer-events: none; + position: absolute; + top: 0; + width: 100% +} + +.minecraft-inventory td:hover .mctooltip { + display: block +} + +.minecraft-inventory > span { + padding: 2px +} + +.minecraft-inventory tr { + height: 36px +} + +.minecraft-inventory .enchanted::before { + content: ""; + height: 32px; + left: 0; + position: absolute; + top: 0; + width: 32px; + background-image: url(https://wiki.hypixel.net/images/minecraft/glint.webp); + mix-blend-mode: color-dodge +} + +.minecraft-inventory .enchanted::after { + content: ""; + height: 32px; + left: 0; + position: absolute; + top: 0; + width: 32px; + background-image: url(https://wiki.hypixel.net/images/minecraft/item-spritesheet_cutout.png); + background-position: inherit +} + +.minecraft-inventory .amount { + margin: 0; + position: relative; + z-index: 999 +} + +.minecraft-inventory .sbsprite { + background-repeat: no-repeat; + color: #fff; + direction: rtl; + display: block; + text-shadow: 2px 2px #3f3f3f; + background-image: url(https://wiki.hypixel.net/images/skyblock/item-spritesheet.png); + height: 22px; + line-height: 44px; + margin: 0 5px; + text-indent: -8px; + width: 22px +} + +.minecraft-inventory .mcsprite { + background-repeat: no-repeat; + color: #fff; + direction: rtl; + display: block; + text-shadow: 2px 2px #3f3f3f; + background-image: url(https://wiki.hypixel.net/images/minecraft/item-spritesheet.png); + height: 32px; + line-height: 54px; + text-indent: -2px; + width: 32px +} + +.minecraft-inventory .sbpet { + background-repeat: no-repeat; + color: #fff; + direction: rtl; + display: block; + text-shadow: 2px 2px #3f3f3f; + background-image: url(https://wiki.hypixel.net/images/skyblock/pet-spritesheet.png); + height: 22px; + line-height: 44px; + margin: 0 6px; + text-indent: -8px; + width: 20px +} + +.mctooltip { + background: rgba(16, 0, 16, .93); + border: 2px solid; + border-image: linear-gradient(to bottom, rgba(80, 0, 255, 0.31), rgba(40, 0, 127, 0.31)); + border-image-slice: 1; + border-radius: 4px; + box-shadow: 0 0 0 2px rgba(16, 0, 16, .93); + display: none; + line-height: 18px; + margin-left: 15px; + margin-top: -30px; + padding: 4px 4px 3px; + position: fixed; + text-indent: initial; + text-shadow: 2px 2px #3f3f3f; + z-index: 9999 +} + +.mctooltip > span { + direction: ltr; + display: block; + white-space: nowrap; + text-align: left +} + +.mctooltip > span:nth-child(1):not(:last-child) { + padding-bottom: 5px +} + +.mctooltip > span:nth-child(n+2) { + float: left +} + +.mctooltip > span:nth-child(n+2):not(:last-child) { + padding-right: 4px +} + +.mctooltip > span.inline { + display: inline-block !important +} + +.mctooltip .rarity-divine { + color: #5ff +} + +.mctooltip .rarity-rare { + color: #55f; + text-shadow: 2px 2px #15153f +} + +.mctooltip .rarity-epic { + color: #a0a; + text-shadow: 2px 2px #2a002a +} + +.mctooltip .rarity-supreme { + color: #a00; + text-shadow: 2px 2px #2a0000 +} + +.mctooltip .rarity-legendary { + color: #fa0; + text-shadow: 2px 2px #2a2a00 +} + +.mctooltip .rarity-uncommon { + color: #5f5; + text-shadow: 2px 2px #153f15 +} + +.mctooltip .rarity-mythic { + color: #f5f; + text-shadow: 2px 2px #3f153f +} + +.mctooltip .rarity-veryspecial { + color: #f55; + text-shadow: 2px 2px #3f1515 +} + +.mctooltip .rarity-special { + color: #f55; + text-shadow: 2px 2px #3f1515 +} + +.mctooltip .color-aqua { + text-shadow: 2px 2px #153f3f +} + +.mctooltip .color-black { + text-shadow: 2px 2px #000 +} + +.mctooltip .color-blue { + text-shadow: 2px 2px #15153f +} + +.mctooltip .color-dark_aqua { + text-shadow: 2px 2px #002a2a +} + +.mctooltip .color-dark_blue { + text-shadow: 2px 2px #00002a +} + +.mctooltip .color-dark_gray { + text-shadow: 2px 2px #151515 +} + +.mctooltip .color-dark_green { + text-shadow: 2px 2px #002a00 +} + +.mctooltip .color-dark_purple { + text-shadow: 2px 2px #2a002a +} + +.mctooltip .color-dark_red { + text-shadow: 2px 2px #2a0000 +} + +.mctooltip .color-gold { + text-shadow: 2px 2px #2a2a00 +} + +.mctooltip .color-gray { + text-shadow: 2px 2px #2a2a2a +} + +.mctooltip .color-green { + text-shadow: 2px 2px #153f15 +} + +.mctooltip .color-light_purple { + text-shadow: 2px 2px #3f153f +} + +.mctooltip .color-red { + text-shadow: 2px 2px #3f1515 +} + +.mctooltip .color-white { + text-shadow: 2px 2px #3f3f3f +} + +.mctooltip .color-yellow { + text-shadow: 2px 2px #3f3f15 +} + +.color-aqua { + color: #5ff +} + +.color-black { + color: #000 +} + +.color-blue { + color: #55f +} + +.color-dark_aqua { + color: #0aa +} + +.color-dark_blue { + color: #00a +} + +.color-dark_gray { + color: #555 +} + +.color-dark_green { + color: #0a0 +} + +.color-dark_purple { + color: #a0a +} + +.color-dark_red { + color: #a00 +} + +.color-gold { + color: #fa0 +} + +.color-gray { + color: #aaa +} + +.color-green { + color: #5f5 +} + +.color-light_purple { + color: #f5f +} + +.color-red { + color: #f55 +} + +.color-white { + color: #fff +} + +.color-yellow { + color: #ff5 +} + +.mcentity { + background-image: url(https://wiki.hypixel.net/images/minecraft/entity-spritesheet.png); + height: 16px; + width: 16px +} + +.mcblock { + background-image: url(https://wiki.hypixel.net/images/minecraft/block-spritesheet.png); + height: 16px; + width: 16px +} + +.sbspray { + background-image: url(https://wiki.hypixel.net/images/skyblock/spray-spritesheet.png); + height: 128px; + width: 128px +} + +.sbnpc { + background-image: url(https://wiki.hypixel.net/images/skyblock/npc-spritesheet.png); + height: 120px; + width: 270px +} + +.sbnpc-_56ms { + background-position: 0 0 +} + +.sbnpc-adventurer { + background-position: -120px 0 +} + +.sbnpc-agents { + background-position: -240px 0 +} + +.sbnpc-anita { + background-position: -360px 0 +} + +.sbnpc-archeologist { + background-position: -480px 0 +} + +.sbnpc-armorsmith { + background-position: -600px 0 +} + +.sbnpc-arthur { + background-position: -720px 0 +} + +.sbnpc-artist { + background-position: -840px 0 +} + +.sbnpc-artist_2 { + background-position: -960px 0 +} + +.sbnpc-auction_agent_0 { + background-position: -1080px 0 +} + +.sbnpc-auction_agent_1 { + background-position: -1200px 0 +} + +.sbnpc-auction_agent_2 { + background-position: -1320px 0 +} + +.sbnpc-auction_agent_3 { + background-position: -1440px 0 +} + +.sbnpc-auction_master { + background-position: -1560px 0 +} + +.sbnpc-baker { + background-position: -1680px 0 +} + +.sbnpc-banker { + background-position: -1800px 0 +} + +.sbnpc-bartender { + background-position: -1920px 0 +} + +.sbnpc-bazaar { + background-position: -2040px 0 +} + +.sbnpc-bazaar_assistant { + background-position: -2160px 0 +} + +.sbnpc-beekeeper { + background-position: -2280px 0 +} + +.sbnpc-bestiary { + background-position: -2400px 0 +} + +.sbnpc-beth { + background-position: -2520px 0 +} + +.sbnpc-blue_shark { + background-position: -2640px 0 +} + +.sbnpc-bodyguard_1 { + background-position: -2760px 0 +} + +.sbnpc-bodyguard_2 { + background-position: 0 -270px +} + +.sbnpc-bonzo { + background-position: -120px -270px +} + +.sbnpc-bonzo_summon_0 { + background-position: -240px -270px +} + +.sbnpc-bonzo_summon_1 { + background-position: -360px -270px +} + +.sbnpc-bonzo_summon_2 { + background-position: -480px -270px +} + +.sbnpc-bonzo_undead { + background-position: -600px -270px +} + +.sbnpc-builder { + background-position: -720px -270px +} + +.sbnpc-candidate { + background-position: -840px -270px +} + +.sbnpc-cannibal_undead { + background-position: -960px -270px +} + +.sbnpc-carpenter { + background-position: -1080px -270px +} + +.sbnpc-catacombs_blacksmith { + background-position: -1200px -270px +} + +.sbnpc-century_simon { + background-position: -1320px -270px +} + +.sbnpc-charlie { + background-position: -1440px -270px +} + +.sbnpc-clerk_election { + background-position: -1560px -270px +} + +.sbnpc-community_shop { + background-position: -1680px -270px +} + +.sbnpc-crypt_dreadlord { + background-position: -1800px -270px +} + +.sbnpc-crypt_souleater { + background-position: -1920px -270px +} + +.sbnpc-crystal_sentry { + background-position: -2040px -270px +} + +.sbnpc-dante_grey { + background-position: -2160px -270px +} + +.sbnpc-dante_statue { + background-position: -2280px -270px +} + +.sbnpc-default_lost_adventurer { + background-position: -2400px -270px +} + +.sbnpc-derp_candidate { + background-position: -2520px -270px +} + +.sbnpc-diamond_guy { + background-position: -2640px -270px +} + +.sbnpc-dictator { + background-position: -2760px -270px +} + +.sbnpc-dirt_guy { + background-position: 0 -540px +} + +.sbnpc-donpireso { + background-position: -120px -540px +} + +.sbnpc-duncan { + background-position: -240px -540px +} + +.sbnpc-dungeons_candidate { + background-position: -360px -540px +} + +.sbnpc-dungeons_hub_selector { + background-position: -480px -540px +} + +.sbnpc-dusk { + background-position: -600px -540px +} + +.sbnpc-dwarf_banker { + background-position: -720px -540px +} + +.sbnpc-dwarf_citizen_female_5 { + background-position: -840px -540px +} + +.sbnpc-dwarf_citizen_female_6 { + background-position: -960px -540px +} + +.sbnpc-dwarf_citizen_female_7 { + background-position: -1080px -540px +} + +.sbnpc-dwarf_citizen_male_1 { + background-position: -1200px -540px +} + +.sbnpc-dwarf_citizen_male_2 { + background-position: -1320px -540px +} + +.sbnpc-dwarf_citizen_male_3 { + background-position: -1440px -540px +} + +.sbnpc-dwarf_citizen_male_4 { + background-position: -1560px -540px +} + +.sbnpc-dwarf_council_female_5 { + background-position: -1680px -540px +} + +.sbnpc-dwarf_council_female_6 { + background-position: -1800px -540px +} + +.sbnpc-dwarf_council_female_7 { + background-position: -1920px -540px +} + +.sbnpc-dwarf_council_female_8 { + background-position: -2040px -540px +} + +.sbnpc-dwarf_council_male_1 { + background-position: -2160px -540px +} + +.sbnpc-dwarf_council_male_2 { + background-position: -2280px -540px +} + +.sbnpc-dwarf_council_male_3 { + background-position: -2400px -540px +} + +.sbnpc-dwarf_council_male_4 { + background-position: -2520px -540px +} + +.sbnpc-dwarf_militia_1 { + background-position: -2640px -540px +} + +.sbnpc-dwarf_militia_2 { + background-position: -2760px -540px +} + +.sbnpc-dwarf_militia_3 { + background-position: 0 -810px +} + +.sbnpc-dwarf_militia_4 { + background-position: -120px -810px +} + +.sbnpc-dwarf_militia_5 { + background-position: -240px -810px +} + +.sbnpc-dwarf_militia_6 { + background-position: -360px -810px +} + +.sbnpc-dwarf_royalguard_female_5 { + background-position: -480px -810px +} + +.sbnpc-dwarf_royalguard_female_6 { + background-position: -600px -810px +} + +.sbnpc-dwarf_royalguard_female_7 { + background-position: -720px -810px +} + +.sbnpc-dwarf_royalguard_female_8 { + background-position: -840px -810px +} + +.sbnpc-dwarf_royalguard_male_1 { + background-position: -960px -810px +} + +.sbnpc-dwarf_royalguard_male_2 { + background-position: -1080px -810px +} + +.sbnpc-dwarf_royalguard_male_3 { + background-position: -1200px -810px +} + +.sbnpc-dwarf_royalguard_male_4 { + background-position: -1320px -810px +} + +.sbnpc-economist_candidate { + background-position: -1440px -810px +} + +.sbnpc-elle { + background-position: -1560px -810px +} + +.sbnpc-emissary_female_1 { + background-position: -1680px -810px +} + +.sbnpc-emissary_female_2 { + background-position: -1800px -810px +} + +.sbnpc-emissary_female_3 { + background-position: -1920px -810px +} + +.sbnpc-emissary_male_1 { + background-position: -2040px -810px +} + +.sbnpc-emissary_male_2 { + background-position: -2160px -810px +} + +.sbnpc-emissary_male_3 { + background-position: -2280px -810px +} + +.sbnpc-end_dealer { + background-position: -2400px -810px +} + +.sbnpc-enderman_liquid_hot_magma { + background-position: -2520px -810px +} + +.sbnpc-enraged_revenant_horror { + background-position: -2640px -810px +} + +.sbnpc-entity_liquid_hot_magma { + background-position: -2760px -810px +} + +.sbnpc-event_master { + background-position: 0 -1080px +} + +.sbnpc-events_candidate { + background-position: -120px -1080px +} + +.sbnpc-fairy { + background-position: -240px -1080px +} + +.sbnpc-farm_merchant { + background-position: -360px -1080px +} + +.sbnpc-farmer { + background-position: -480px -1080px +} + +.sbnpc-farmer_jon { + background-position: -600px -1080px +} + +.sbnpc-fire_guy { + background-position: -720px -1080px +} + +.sbnpc-fish_merchant { + background-position: -840px -1080px +} + +.sbnpc-fisherman { + background-position: -960px -1080px +} + +.sbnpc-fishing_candidate { + background-position: -1080px -1080px +} + +.sbnpc-flamer_undead { + background-position: -1200px -1080px +} + +.sbnpc-forger { + background-position: -1320px -1080px +} + +.sbnpc-frank_undead { + background-position: -1440px -1080px +} + +.sbnpc-friendly_hiker { + background-position: -1560px -1080px +} + +.sbnpc-frost_undead { + background-position: -1680px -1080px +} + +.sbnpc-frosty { + background-position: -1800px -1080px +} + +.sbnpc-frozen_lost_adventurer { + background-position: -1920px -1080px +} + +.sbnpc-furry_e_boy { + background-position: -2040px -1080px +} + +.sbnpc-gatekeeper { + background-position: -2160px -1080px +} + +.sbnpc-giant_undead { + background-position: -2280px -1080px +} + +.sbnpc-goblin { + background-position: -2400px -1080px +} + +.sbnpc-goblin_armor_1 { + background-position: -2520px -1080px +} + +.sbnpc-goblin_armor_2 { + background-position: -2640px -1080px +} + +.sbnpc-goblin_armor_3 { + background-position: -2760px -1080px +} + +.sbnpc-goblin_armor_4 { + background-position: 0 -1350px +} + +.sbnpc-goblin_king_1 { + background-position: -120px -1350px +} + +.sbnpc-goblin_murderlover { + background-position: -240px -1350px +} + +.sbnpc-goblin_naked_1 { + background-position: -360px -1350px +} + +.sbnpc-goblin_naked_2 { + background-position: -480px -1350px +} + +.sbnpc-goblin_naked_3 { + background-position: -600px -1350px +} + +.sbnpc-goblin_naked_4 { + background-position: -720px -1350px +} + +.sbnpc-goblin_naked_5 { + background-position: -840px -1350px +} + +.sbnpc-gold_forger { + background-position: -960px -1350px +} + +.sbnpc-goon { + background-position: -1080px -1350px +} + +.sbnpc-grandma_wolf { + background-position: -1200px -1350px +} + +.sbnpc-great_white_shark { + background-position: -1320px -1350px +} + +.sbnpc-guber { + background-position: -1440px -1350px +} + +.sbnpc-guildford { + background-position: -1560px -1350px +} + +.sbnpc-gulliver { + background-position: -1680px -1350px +} + +.sbnpc-gustave { + background-position: -1800px -1350px +} + +.sbnpc-haymitch { + background-position: -1920px -1350px +} + +.sbnpc-hephaestus { + background-position: -2040px -1350px +} + +.sbnpc-holy_lost_adventurer { + background-position: -2160px -1350px +} + +.sbnpc-hub_selector { + background-position: -2280px -1350px +} + +.sbnpc-hungry_hiker { + background-position: -2400px -1350px +} + +.sbnpc-hunter_ava { + background-position: -2520px -1350px +} + +.sbnpc-ice_fisherman { + background-position: -2640px -1350px +} + +.sbnpc-iron_forger { + background-position: -2760px -1350px +} + +.sbnpc-jacob { + background-position: 0 -1620px +} + +.sbnpc-jake { + background-position: -120px -1620px +} + +.sbnpc-juliette { + background-position: -240px -1620px +} + +.sbnpc-kessie { + background-position: -360px -1620px +} + +.sbnpc-king_midas { + background-position: -480px -1620px +} + +.sbnpc-lapis_miner { + background-position: -600px -1620px +} + +.sbnpc-lazy_miner { + background-position: -720px -1620px +} + +.sbnpc-leech_undead { + background-position: -840px -1620px +} + +.sbnpc-lift_operator { + background-position: -960px -1620px +} + +.sbnpc-liquid_hot_magma { + background-position: -1080px -1620px +} + +.sbnpc-livid { + background-position: -1200px -1620px +} + +.sbnpc-livid_undead { + background-position: -1320px -1620px +} + +.sbnpc-lonely_philosopher { + background-position: -1440px -1620px +} + +.sbnpc-lumber_merchant { + background-position: -1560px -1620px +} + +.sbnpc-lumberjack { + background-position: -1680px -1620px +} + +.sbnpc-mason { + background-position: -1800px -1620px +} + +.sbnpc-master_tactician { + background-position: -1920px -1620px +} + +.sbnpc-mayhem_main { + background-position: -2040px -1620px +} + +.sbnpc-mayor { + background-position: -2160px -1620px +} + +.sbnpc-melancholic_viking { + background-position: -2280px -1620px +} + +.sbnpc-melody { + background-position: -2400px -1620px +} + +.sbnpc-mine_merchant { + background-position: -2520px -1620px +} + +.sbnpc-mining_candidate { + background-position: -2640px -1620px +} + +.sbnpc-minos_champion { + background-position: -2760px -1620px +} + +.sbnpc-minos_inquisitor { + background-position: 0 -1890px +} + +.sbnpc-minotaur { + background-position: -120px -1890px +} + +.sbnpc-mort { + background-position: -240px -1890px +} + +.sbnpc-mr_dead_undead { + background-position: -360px -1890px +} + +.sbnpc-mute_undead { + background-position: -480px -1890px +} + +.sbnpc-nitroholic { + background-position: -600px -1890px +} + +.sbnpc-nurse_shark { + background-position: -720px -1890px +} + +.sbnpc-old_man_garry { + background-position: -840px -1890px +} + +.sbnpc-ooze_undead { + background-position: -960px -1890px +} + +.sbnpc-ophelia { + background-position: -1080px -1890px +} + +.sbnpc-oringo { + background-position: -1200px -1890px +} + +.sbnpc-parasite_undead { + background-position: -1320px -1890px +} + +.sbnpc-pat { + background-position: -1440px -1890px +} + +.sbnpc-personal_bank_upgrader { + background-position: -1560px -1890px +} + +.sbnpc-pet_collector { + background-position: -1680px -1890px +} + +.sbnpc-pet_sitter { + background-position: -1800px -1890px +} + +.sbnpc-pets_candidate { + background-position: -1920px -1890px +} + +.sbnpc-placeholder_candidate { + background-position: -2040px -1890px +} + +.sbnpc-player_jerry { + background-position: -2160px -1890px +} + +.sbnpc-potato_king { + background-position: -2280px -1890px +} + +.sbnpc-professor { + background-position: -2400px -1890px +} + +.sbnpc-psycho_undead { + background-position: -2520px -1890px +} + +.sbnpc-putrid_undead { + background-position: -2640px -1890px +} + +.sbnpc-puzzler { + background-position: -2760px -1890px +} + +.sbnpc-rainmaker { + background-position: 0 -2160px +} + +.sbnpc-reaper_undead { + background-position: -120px -2160px +} + +.sbnpc-redstone_engineer { + background-position: -240px -2160px +} + +.sbnpc-refraction { + background-position: -360px -2160px +} + +.sbnpc-relenter { + background-position: -480px -2160px +} + +.sbnpc-revenant_horror { + background-position: -600px -2160px +} + +.sbnpc-revoker_undead { + background-position: -720px -2160px +} + +.sbnpc-rick { + background-position: -840px -2160px +} + +.sbnpc-romero_final { + background-position: -960px -2160px +} + +.sbnpc-romero_normal { + background-position: -1080px -2160px +} + +.sbnpc-sadan { + background-position: -1200px -2160px +} + +.sbnpc-salesman_christmas { + background-position: -1320px -2160px +} + +.sbnpc-salesman_easter { + background-position: -1440px -2160px +} + +.sbnpc-salesman_generic { + background-position: -1560px -2160px +} + +.sbnpc-salesman_halloween { + background-position: -1680px -2160px +} + +.sbnpc-salesman_summer { + background-position: -1800px -2160px +} + +.sbnpc-scarf_archer { + background-position: -1920px -2160px +} + +.sbnpc-scarf_mage { + background-position: -2040px -2160px +} + +.sbnpc-scarf_priest { + background-position: -2160px -2160px +} + +.sbnpc-scarf_undead { + background-position: -2280px -2160px +} + +.sbnpc-scarf_warrior { + background-position: -2400px -2160px +} + +.sbnpc-scoop { + background-position: -2520px -2160px +} + +.sbnpc-scorpius { + background-position: -2640px -2160px +} + +.sbnpc-shadow_assassin { + background-position: -2760px -2160px +} + +.sbnpc-shady_bartender { + background-position: 0 -2430px +} + +.sbnpc-shady_cousin { + background-position: -120px -2430px +} + +.sbnpc-shaggy { + background-position: -240px -2430px +} + +.sbnpc-shepherd { + background-position: -360px -2430px +} + +.sbnpc-simon_hat { + background-position: -480px -2430px +} + +.sbnpc-sirius { + background-position: -600px -2430px +} + +.sbnpc-skeletor_prime { + background-position: -720px -2430px +} + +.sbnpc-skull_undead { + background-position: -840px -2430px +} + +.sbnpc-slayer { + background-position: -960px -2430px +} + +.sbnpc-slayer_candidate { + background-position: -1080px -2430px +} + +.sbnpc-snowmaker { + background-position: -1200px -2430px +} + +.sbnpc-spirit_bear { + background-position: -1320px -2430px +} + +.sbnpc-spooky { + background-position: -1440px -2430px +} + +.sbnpc-st_jerry { + background-position: -1560px -2430px +} + +.sbnpc-sylent { + background-position: -1680px -2430px +} + +.sbnpc-tailor_assistant { + background-position: -1800px -2430px +} + +.sbnpc-tailor_owner { + background-position: -1920px -2430px +} + +.sbnpc-tammy { + background-position: -2040px -2430px +} + +.sbnpc-tear_undead { + background-position: -2160px -2430px +} + +.sbnpc-technoblade { + background-position: -2280px -2430px +} + +.sbnpc-terracotta { + background-position: -2400px -2430px +} + +.sbnpc-terry { + background-position: -2520px -2430px +} + +.sbnpc-thirty_virus { + background-position: -2640px -2430px +} + +.sbnpc-tiger_shark { + background-position: -2760px -2430px +} + +.sbnpc-timedeo { + background-position: -2880px 0 +} + +.sbnpc-tomioka { + background-position: -2880px -270px +} + +.sbnpc-tony { + background-position: -2880px -540px +} + +.sbnpc-treasure_horder { + background-position: -2880px -810px +} + +.sbnpc-treasure_hunter { + background-position: -2880px -1080px +} + +.sbnpc-trevor { + background-position: -2880px -1350px +} + +.sbnpc-trinity { + background-position: -2880px -1620px +} + +.sbnpc-unstable_lost_adventurer { + background-position: -2880px -1890px +} + +.sbnpc-vader_undead { + background-position: -2880px -2160px +} + +.sbnpc-vinny { + background-position: -2880px -2430px +} + +.sbnpc-walker_undead { + background-position: 0 -2700px +} + +.sbnpc-walter { + background-position: -120px -2700px +} + +.sbnpc-weaponsmith { + background-position: -240px -2700px +} + +.sbnpc-weirdo_0 { + background-position: -360px -2700px +} + +.sbnpc-weirdo_1 { + background-position: -480px -2700px +} + +.sbnpc-weirdo_2 { + background-position: -600px -2700px +} + +.sbnpc-winona { + background-position: -720px -2700px +} + +.sbnpc-winter_banker { + background-position: -840px -2700px +} + +.sbnpc-wizard { + background-position: -960px -2700px +} + +.sbnpc-wizard_candidate { + background-position: -1080px -2700px +} + +.sbnpc-wizard_quest { + background-position: -1200px -2700px +} + +.sbnpc-wolf_shaman { + background-position: -1320px -2700px +} + +.sbnpc-wool_weaver { + background-position: -1440px -2700px +} + +.sbnpc-young_lost_adventurer { + background-position: -1560px -2700px +} + +.sbnpc-zog { + background-position: -1680px -2700px +} + +.sbnpc-zombie_commander { + background-position: -1800px -2700px +} + +.sbsprite-cobblestone_generator_10 { + background-position: 0 0 +} + +.sbsprite-cobblestone_generator_11 { + background-position: -22px 0 +} + +.sbsprite-danger_3_portal { + background-position: -44px 0 +} + +.sbsprite-resource_regenerator_crystal { + background-position: -66px 0 +} + +.sbsprite-sugar_cane_generator_12 { + background-position: -88px 0 +} + +.sbsprite-cobblestone_generator_12 { + background-position: -110px 0 +} + +.sbsprite-sugar_cane_generator_11 { + background-position: -132px 0 +} + +.sbsprite-sugar_cane_generator_10 { + background-position: -154px 0 +} + +.sbsprite-small_shelves { + background-position: -176px 0 +} + +.sbsprite-bingo_talisman { + background-position: -198px 0 +} + +.sbsprite-red_scarf { + background-position: -220px 0 +} + +.sbsprite-wither_helmet { + background-position: -242px 0 +} + +.sbsprite-glowstone_generator_11 { + background-position: -264px 0 +} + +.sbsprite-glowstone_generator_10 { + background-position: -286px 0 +} + +.sbsprite-fast_travel_crypt { + background-position: -308px 0 +} + +.sbsprite-present_personality { + background-position: -330px 0 +} + +.sbsprite-extra_large_gemstone_sack { + background-position: -352px 0 +} + +.sbsprite-gold_bonzo_head { + background-position: -374px 0 +} + +.sbsprite-shadow_assassin_mauve { + background-position: -396px 0 +} + +.sbsprite-ender_artifact { + background-position: -418px 0 +} + +.sbsprite-sheep_generator_1 { + background-position: -440px 0 +} + +.sbsprite-beach_chair_plus { + background-position: -462px 0 +} + +.sbsprite-sheep_generator_2 { + background-position: -484px 0 +} + +.sbsprite-sheep_generator_3 { + background-position: -506px 0 +} + +.sbsprite-sheep_generator_4 { + background-position: -528px 0 +} + +.sbsprite-sheep_generator_5 { + background-position: -550px 0 +} + +.sbsprite-sheep_generator_6 { + background-position: -572px 0 +} + +.sbsprite-frozen_spider { + background-position: -594px 0 +} + +.sbsprite-sheep_generator_7 { + background-position: -616px 0 +} + +.sbsprite-sheep_generator_8 { + background-position: -638px 0 +} + +.sbsprite-sheep_generator_9 { + background-position: -660px 0 +} + +.sbsprite-nether_wart_island_crystal { + background-position: -682px 0 +} + +.sbsprite-medium_fishing_sack { + background-position: -704px 0 +} + +.sbsprite-gold_generator_9 { + background-position: -726px 0 +} + +.sbsprite-gold_generator_7 { + background-position: -748px 0 +} + +.sbsprite-gold_generator_8 { + background-position: -770px 0 +} + +.sbsprite-gold_generator_5 { + background-position: -792px 0 +} + +.sbsprite-penguin_10 { + background-position: -814px 0 +} + +.sbsprite-diver_helmet { + background-position: -836px 0 +} + +.sbsprite-gold_generator_6 { + background-position: -858px 0 +} + +.sbsprite-penguin_11 { + background-position: -880px 0 +} + +.sbsprite-gold_generator_3 { + background-position: -902px 0 +} + +.sbsprite-gold_generator_4 { + background-position: -924px 0 +} + +.sbsprite-pet_skin_sheep_purple { + background-position: -946px 0 +} + +.sbsprite-gold_generator_1 { + background-position: -968px 0 +} + +.sbsprite-gold_generator_2 { + background-position: -990px 0 +} + +.sbsprite-jar_of_pickles { + background-position: -1012px 0 +} + +.sbsprite-griffin_upgrade_stone_legendary { + background-position: -1034px 0 +} + +.sbsprite-pet_skin_sheep_orange { + background-position: 0 -22px +} + +.sbsprite-talisman { + background-position: -22px -22px +} + +.sbsprite-jungle_generator_7 { + background-position: -44px -22px +} + +.sbsprite-jungle_generator_6 { + background-position: -66px -22px +} + +.sbsprite-tutti_frutti_poison { + background-position: -88px -22px +} + +.sbsprite-fishing_generator_11 { + background-position: -110px -22px +} + +.sbsprite-jungle_generator_9 { + background-position: -132px -22px +} + +.sbsprite-fishing_generator_10 { + background-position: -154px -22px +} + +.sbsprite-jungle_generator_8 { + background-position: -176px -22px +} + +.sbsprite-jungle_generator_3 { + background-position: -198px -22px +} + +.sbsprite-witch_mask { + background-position: -220px -22px +} + +.sbsprite-yellow { + background-position: -242px -22px +} + +.sbsprite-jungle_generator_2 { + background-position: -264px -22px +} + +.sbsprite-jungle_generator_5 { + background-position: -286px -22px +} + +.sbsprite-jungle_generator_4 { + background-position: -308px -22px +} + +.sbsprite-bat_person_artifact { + background-position: -330px -22px +} + +.sbsprite-cocoa_generator_11 { + background-position: -352px -22px +} + +.sbsprite-cocoa_generator_12 { + background-position: -374px -22px +} + +.sbsprite-jungle_generator_1 { + background-position: -396px -22px +} + +.sbsprite-cocoa_generator_10 { + background-position: -418px -22px +} + +.sbsprite-beheaded_horror { + background-position: -440px -22px +} + +.sbsprite-clay_generator_6 { + background-position: -462px -22px +} + +.sbsprite-clay_generator_7 { + background-position: -484px -22px +} + +.sbsprite-clay_generator_8 { + background-position: -506px -22px +} + +.sbsprite-clay_generator_9 { + background-position: -528px -22px +} + +.sbsprite-clay_generator_2 { + background-position: -550px -22px +} + +.sbsprite-clay_generator_3 { + background-position: -572px -22px +} + +.sbsprite-clay_generator_4 { + background-position: -594px -22px +} + +.sbsprite-clay_generator_5 { + background-position: -616px -22px +} + +.sbsprite-gold_livid_head { + background-position: -638px -22px +} + +.sbsprite-clay_generator_1 { + background-position: -660px -22px +} + +.sbsprite-medium_slayer_sack { + background-position: -682px -22px +} + +.sbsprite-pet_skin_wither { + background-position: -704px -22px +} + +.sbsprite-pink_frosted_donut_3 { + background-position: -726px -22px +} + +.sbsprite-pink_frosted_donut_2 { + background-position: -748px -22px +} + +.sbsprite-pink_frosted_donut_5 { + background-position: -770px -22px +} + +.sbsprite-garland { + background-position: -792px -22px +} + +.sbsprite-pink_frosted_donut_4 { + background-position: -814px -22px +} + +.sbsprite-pink_frosted_donut_7 { + background-position: -836px -22px +} + +.sbsprite-pink_frosted_donut_6 { + background-position: -858px -22px +} + +.sbsprite-pink_frosted_donut_9 { + background-position: -880px -22px +} + +.sbsprite-pink_frosted_donut_8 { + background-position: -902px -22px +} + +.sbsprite-rune_jerry { + background-position: -924px -22px +} + +.sbsprite-feather_ring { + background-position: -946px -22px +} + +.sbsprite-perfect_forge { + background-position: -968px -22px +} + +.sbsprite-bingo_relic { + background-position: -990px -22px +} + +.sbsprite-revenant_catalyst { + background-position: -1012px -22px +} + +.sbsprite-sun_2 { + background-position: -1034px -22px +} + +.sbsprite-sun_1 { + background-position: 0 -44px +} + +.sbsprite-pet_skin_tiger_twilight { + background-position: -22px -44px +} + +.sbsprite-blessing_of_life { + background-position: -44px -44px +} + +.sbsprite-plasma { + background-position: -66px -44px +} + +.sbsprite-carrot_patch { + background-position: -88px -44px +} + +.sbsprite-pink_frosted_donut_1 { + background-position: -110px -44px +} + +.sbsprite-bestiary_the_park { + background-position: -132px -44px +} + +.sbsprite-end_stone_10 { + background-position: -154px -44px +} + +.sbsprite-end_stone_11 { + background-position: -176px -44px +} + +.sbsprite-griffin_upgrade_stone_epic { + background-position: -198px -44px +} + +.sbsprite-iron_generator_10 { + background-position: -220px -44px +} + +.sbsprite-pet_skin_rock_embarrassed { + background-position: -242px -44px +} + +.sbsprite-fast_travel_barn { + background-position: -264px -44px +} + +.sbsprite-iron_generator_11 { + background-position: -286px -44px +} + +.sbsprite-iron_generator_12 { + background-position: -308px -44px +} + +.sbsprite-large_runes_sack { + background-position: -330px -44px +} + +.sbsprite-rune_redstone { + background-position: -352px -44px +} + +.sbsprite-horseman_candle { + background-position: -374px -44px +} + +.sbsprite-tepid_green_tea { + background-position: -396px -44px +} + +.sbsprite-large_agronomy_sack { + background-position: -418px -44px +} + +.sbsprite-wise_shimmer { + background-position: -440px -44px +} + +.sbsprite-maxor_the_fish { + background-position: -462px -44px +} + +.sbsprite-revenant_generator_4 { + background-position: -484px -44px +} + +.sbsprite-revenant_generator_5 { + background-position: -506px -44px +} + +.sbsprite-revenant_generator_6 { + background-position: -528px -44px +} + +.sbsprite-revenant_generator_7 { + background-position: -550px -44px +} + +.sbsprite-revenant_generator_1 { + background-position: -572px -44px +} + +.sbsprite-revenant_generator_2 { + background-position: -594px -44px +} + +.sbsprite-epoch_cake_orange { + background-position: -616px -44px +} + +.sbsprite-revenant_generator_3 { + background-position: -638px -44px +} + +.sbsprite-large_gemstone_sack { + background-position: -660px -44px +} + +.sbsprite-mender_crown { + background-position: -682px -44px +} + +.sbsprite-mummy_10 { + background-position: -704px -44px +} + +.sbsprite-revenant_generator_8 { + background-position: -726px -44px +} + +.sbsprite-revenant_generator_9 { + background-position: -748px -44px +} + +.sbsprite-mummy_11 { + background-position: -770px -44px +} + +.sbsprite-hard_stone_generator_9 { + background-position: -792px -44px +} + +.sbsprite-hard_stone_generator_8 { + background-position: -814px -44px +} + +.sbsprite-hard_stone_generator_7 { + background-position: -836px -44px +} + +.sbsprite-hard_stone_generator_6 { + background-position: -858px -44px +} + +.sbsprite-hard_stone_generator_5 { + background-position: -880px -44px +} + +.sbsprite-hard_stone_generator_4 { + background-position: -902px -44px +} + +.sbsprite-medium_talisman_bag { + background-position: -924px -44px +} + +.sbsprite-hard_stone_generator_3 { + background-position: -946px -44px +} + +.sbsprite-black_small_backpack { + background-position: -968px -44px +} + +.sbsprite-hard_stone_generator_2 { + background-position: -990px -44px +} + +.sbsprite-harp { + background-position: -1012px -44px +} + +.sbsprite-hard_stone_generator_1 { + background-position: -1034px -44px +} + +.sbsprite-pet_skin_sheep_green { + background-position: 0 -66px +} + +.sbsprite-magma_cube_generator_10 { + background-position: -22px -66px +} + +.sbsprite-fishing_crystal { + background-position: -44px -66px +} + +.sbsprite-magma_cube_generator_11 { + background-position: -66px -66px +} + +.sbsprite-rough_amber_gem { + background-position: -88px -66px +} + +.sbsprite-oak_generator_5 { + background-position: -110px -66px +} + +.sbsprite-oak_generator_4 { + background-position: -132px -66px +} + +.sbsprite-oak_generator_3 { + background-position: -154px -66px +} + +.sbsprite-oak_generator_2 { + background-position: -176px -66px +} + +.sbsprite-red_claw_ring { + background-position: -198px -66px +} + +.sbsprite-oak_generator_9 { + background-position: -220px -66px +} + +.sbsprite-oak_generator_8 { + background-position: -242px -66px +} + +.sbsprite-purple_small_backpack { + background-position: -264px -66px +} + +.sbsprite-oak_generator_7 { + background-position: -286px -66px +} + +.sbsprite-oak_generator_6 { + background-position: -308px -66px +} + +.sbsprite-picnic_set { + background-position: -330px -66px +} + +.sbsprite-oak_generator_1 { + background-position: -352px -66px +} + +.sbsprite-pet_skin_sheep_neon_red { + background-position: -374px -66px +} + +.sbsprite-hot_stuff { + background-position: -396px -66px +} + +.sbsprite-skeleton_generator_11 { + background-position: -418px -66px +} + +.sbsprite-skeleton_generator_10 { + background-position: -440px -66px +} + +.sbsprite-mayor_jerry { + background-position: -462px -66px +} + +.sbsprite-generals_armor_of_the_resistance_helmet { + background-position: -484px -66px +} + +.sbsprite-recall_potion { + background-position: -506px -66px +} + +.sbsprite-portable_builder { + background-position: -528px -66px +} + +.sbsprite-rune_ice { + background-position: -550px -66px +} + +.sbsprite-zombie_brain_mixin { + background-position: -572px -66px +} + +.sbsprite-pet_skin_rabbit_aquamarine { + background-position: -594px -66px +} + +.sbsprite-rune_music { + background-position: -616px -66px +} + +.sbsprite-magnetic_talisman { + background-position: -638px -66px +} + +.sbsprite-light_grey_jumbo_backpack { + background-position: -660px -66px +} + +.sbsprite-onyx { + background-position: -682px -66px +} + +.sbsprite-rune_fire { + background-position: -704px -66px +} + +.sbsprite-pet_skin_sheep_black { + background-position: -726px -66px +} + +.sbsprite-ice_fireplace { + background-position: -748px -66px +} + +.sbsprite-sun_personality { + background-position: -770px -66px +} + +.sbsprite-pet { + background-position: -792px -66px +} + +.sbsprite-melon_2 { + background-position: -814px -66px +} + +.sbsprite-melon_3 { + background-position: -836px -66px +} + +.sbsprite-epoch_cake_purple { + background-position: -858px -66px +} + +.sbsprite-melon_1 { + background-position: -880px -66px +} + +.sbsprite-krampus_helmet { + background-position: -902px -66px +} + +.sbsprite-coffee_table { + background-position: -924px -66px +} + +.sbsprite-necromancer_lord_helmet { + background-position: -946px -66px +} + +.sbsprite-melon_8 { + background-position: -968px -66px +} + +.sbsprite-blue_ice_hunk { + background-position: -990px -66px +} + +.sbsprite-divan_helmet { + background-position: -1012px -66px +} + +.sbsprite-melon_9 { + background-position: -1034px -66px +} + +.sbsprite-melon_6 { + background-position: 0 -88px +} + +.sbsprite-melon_7 { + background-position: -22px -88px +} + +.sbsprite-melon_4 { + background-position: -44px -88px +} + +.sbsprite-melon_5 { + background-position: -66px -88px +} + +.sbsprite-blue_candy { + background-position: -88px -88px +} + +.sbsprite-squid_hat { + background-position: -110px -88px +} + +.sbsprite-dungeon_green_support_orb { + background-position: -132px -88px +} + +.sbsprite-coin_diamond_3 { + background-position: -154px -88px +} + +.sbsprite-pink { + background-position: -176px -88px +} + +.sbsprite-coin_diamond_2 { + background-position: -198px -88px +} + +.sbsprite-repelling_candle { + background-position: -220px -88px +} + +.sbsprite-enderman_generator_11 { + background-position: -242px -88px +} + +.sbsprite-power_artifact { + background-position: -264px -88px +} + +.sbsprite-enderman_generator_10 { + background-position: -286px -88px +} + +.sbsprite-amethyst_crystal { + background-position: -308px -88px +} + +.sbsprite-crimson_essence { + background-position: -330px -88px +} + +.sbsprite-blue_small_backpack { + background-position: -352px -88px +} + +.sbsprite-grey_jumbo_backpack { + background-position: -374px -88px +} + +.sbsprite-wither_essence { + background-position: -396px -88px +} + +.sbsprite-brown_jumbo_backpack { + background-position: -418px -88px +} + +.sbsprite-archer_dungeon_ability_1 { + background-position: -440px -88px +} + +.sbsprite-crochet_tiger_plushie { + background-position: -462px -88px +} + +.sbsprite-final_destination_helmet { + background-position: -484px -88px +} + +.sbsprite-luxurious_spool { + background-position: -506px -88px +} + +.sbsprite-auto_recombobulator { + background-position: -528px -88px +} + +.sbsprite-killer_11 { + background-position: -550px -88px +} + +.sbsprite-spooky_bait { + background-position: -572px -88px +} + +.sbsprite-killer_10 { + background-position: -594px -88px +} + +.sbsprite-fast_travel_howl { + background-position: -616px -88px +} + +.sbsprite-etherwarp_conduit { + background-position: -638px -88px +} + +.sbsprite-forest_island_crystal { + background-position: -660px -88px +} + +.sbsprite-spirit_mask { + background-position: -682px -88px +} + +.sbsprite-sacks { + background-position: -704px -88px +} + +.sbsprite-obsidian_generator_10 { + background-position: -726px -88px +} + +.sbsprite-chicken_generator_10 { + background-position: -748px -88px +} + +.sbsprite-chicken_generator_12 { + background-position: -770px -88px +} + +.sbsprite-wood_singularity { + background-position: -792px -88px +} + +.sbsprite-chicken_generator_11 { + background-position: -814px -88px +} + +.sbsprite-sun_6 { + background-position: -836px -88px +} + +.sbsprite-builder_melon { + background-position: -858px -88px +} + +.sbsprite-santa_1 { + background-position: -880px -88px +} + +.sbsprite-sun_5 { + background-position: -902px -88px +} + +.sbsprite-dirt_bottle { + background-position: -924px -88px +} + +.sbsprite-sun_4 { + background-position: -946px -88px +} + +.sbsprite-handy_blood_chalice { + background-position: -968px -88px +} + +.sbsprite-sun_3 { + background-position: -990px -88px +} + +.sbsprite-sun_9 { + background-position: -1012px -88px +} + +.sbsprite-superior_fragment { + background-position: -1034px -88px +} + +.sbsprite-sun_8 { + background-position: 0 -110px +} + +.sbsprite-sun_7 { + background-position: -22px -110px +} + +.sbsprite-your_essence { + background-position: -44px -110px +} + +.sbsprite-pink_greater_backpack { + background-position: -66px -110px +} + +.sbsprite-unstable_fragment { + background-position: -88px -110px +} + +.sbsprite-obsidian_generator_11 { + background-position: -110px -110px +} + +.sbsprite-obsidian_generator_12 { + background-position: -132px -110px +} + +.sbsprite-perfect_sapphire_gem { + background-position: -154px -110px +} + +.sbsprite-gravel_generator_11 { + background-position: -176px -110px +} + +.sbsprite-gravel_generator_10 { + background-position: -198px -110px +} + +.sbsprite-candy_corn { + background-position: -220px -110px +} + +.sbsprite-mineral_talisman { + background-position: -242px -110px +} + +.sbsprite-divan_alloy { + background-position: -264px -110px +} + +.sbsprite-moil_log { + background-position: -286px -110px +} + +.sbsprite-super_magic_mushroom_soup { + background-position: -308px -110px +} + +.sbsprite-easter_basket { + background-position: -330px -110px +} + +.sbsprite-hunter_talisman { + background-position: -352px -110px +} + +.sbsprite-medium_potion_bag { + background-position: -374px -110px +} + +.sbsprite-pet_skin_megalodon_bullhead { + background-position: -396px -110px +} + +.sbsprite-broken_piggy_bank { + background-position: -418px -110px +} + +.sbsprite-mayor_technoblade { + background-position: -440px -110px +} + +.sbsprite-farming_talisman { + background-position: -462px -110px +} + +.sbsprite-flawed_sapphire_gem { + background-position: -484px -110px +} + +.sbsprite-light_blue_large_backpack { + background-position: -506px -110px +} + +.sbsprite-kindred { + background-position: -528px -110px +} + +.sbsprite-pocket_espresso_machine { + background-position: -550px -110px +} + +.sbsprite-overflux_power_orb { + background-position: -572px -110px +} + +.sbsprite-potato_spreading { + background-position: -594px -110px +} + +.sbsprite-acacia_generator_11 { + background-position: -616px -110px +} + +.sbsprite-birch_generator_6 { + background-position: -638px -110px +} + +.sbsprite-acacia_generator_10 { + background-position: -660px -110px +} + +.sbsprite-birch_generator_5 { + background-position: -682px -110px +} + +.sbsprite-birch_generator_4 { + background-position: -704px -110px +} + +.sbsprite-birch_generator_3 { + background-position: -726px -110px +} + +.sbsprite-holy_dragon_helmet { + background-position: -748px -110px +} + +.sbsprite-basketball_personality { + background-position: -770px -110px +} + +.sbsprite-birch_generator_9 { + background-position: -792px -110px +} + +.sbsprite-birch_generator_8 { + background-position: -814px -110px +} + +.sbsprite-birch_generator_7 { + background-position: -836px -110px +} + +.sbsprite-birch_generator_2 { + background-position: -858px -110px +} + +.sbsprite-birch_generator_1 { + background-position: -880px -110px +} + +.sbsprite-anubis { + background-position: -902px -110px +} + +.sbsprite-santa_8 { + background-position: -924px -110px +} + +.sbsprite-santa_9 { + background-position: -946px -110px +} + +.sbsprite-santa_6 { + background-position: -968px -110px +} + +.sbsprite-santa_7 { + background-position: -990px -110px +} + +.sbsprite-santa_4 { + background-position: -1012px -110px +} + +.sbsprite-candy_talisman { + background-position: -1034px -110px +} + +.sbsprite-santa_5 { + background-position: 0 -132px +} + +.sbsprite-santa_2 { + background-position: -22px -132px +} + +.sbsprite-santa_3 { + background-position: -44px -132px +} + +.sbsprite-small_combat_sack { + background-position: -66px -132px +} + +.sbsprite-speed_racer { + background-position: -88px -132px +} + +.sbsprite-pet_skin_parrot_blue_macaw { + background-position: -110px -132px +} + +.sbsprite-red_large_backpack { + background-position: -132px -132px +} + +.sbsprite-sea_archer_helmet { + background-position: -154px -132px +} + +.sbsprite-happy_mask { + background-position: -176px -132px +} + +.sbsprite-blue_large_backpack { + background-position: -198px -132px +} + +.sbsprite-enderman_generator_4 { + background-position: -220px -132px +} + +.sbsprite-enderman_generator_3 { + background-position: -242px -132px +} + +.sbsprite-enderman_generator_2 { + background-position: -264px -132px +} + +.sbsprite-enderman_generator_1 { + background-position: -286px -132px +} + +.sbsprite-enderman_generator_8 { + background-position: -308px -132px +} + +.sbsprite-enderman_generator_7 { + background-position: -330px -132px +} + +.sbsprite-enderman_generator_6 { + background-position: -352px -132px +} + +.sbsprite-enderman_generator_5 { + background-position: -374px -132px +} + +.sbsprite-green_candy { + background-position: -396px -132px +} + +.sbsprite-bestiary_milestone { + background-position: -418px -132px +} + +.sbsprite-colossal_exp_bottle_upgrade { + background-position: -440px -132px +} + +.sbsprite-sun_11 { + background-position: -462px -132px +} + +.sbsprite-sun_10 { + background-position: -484px -132px +} + +.sbsprite-vampire_witch_mask { + background-position: -506px -132px +} + +.sbsprite-pet_skin_sheep_yellow { + background-position: -528px -132px +} + +.sbsprite-bank_upgrade_palatial { + background-position: -550px -132px +} + +.sbsprite-flawed_ruby_gem { + background-position: -572px -132px +} + +.sbsprite-redstone_generator_9 { + background-position: -594px -132px +} + +.sbsprite-redstone_generator_7 { + background-position: -616px -132px +} + +.sbsprite-redstone_generator_8 { + background-position: -638px -132px +} + +.sbsprite-arachne_fragment { + background-position: -660px -132px +} + +.sbsprite-spider_generator_10 { + background-position: -682px -132px +} + +.sbsprite-spider_generator_11 { + background-position: -704px -132px +} + +.sbsprite-epoch_cake_red { + background-position: -726px -132px +} + +.sbsprite-orange_jumbo_backpack { + background-position: -748px -132px +} + +.sbsprite-giant_the_fish { + background-position: -770px -132px +} + +.sbsprite-minnow_bait { + background-position: -792px -132px +} + +.sbsprite-enderman_generator_9 { + background-position: -814px -132px +} + +.sbsprite-mastiff_puppy { + background-position: -836px -132px +} + +.sbsprite-talisman_enrichment_critical_damage { + background-position: -858px -132px +} + +.sbsprite-fast_travel_forge { + background-position: -880px -132px +} + +.sbsprite-goblin_omelette { + background-position: -902px -132px +} + +.sbsprite-builder_ancient_fruit { + background-position: -924px -132px +} + +.sbsprite-master_skull_tier_10 { + background-position: -946px -132px +} + +.sbsprite-hardened_wood { + background-position: -968px -132px +} + +.sbsprite-large_winter_sack { + background-position: -990px -132px +} + +.sbsprite-talisman_enrichment_intelligence { + background-position: -1012px -132px +} + +.sbsprite-snow_snowglobe { + background-position: -1034px -132px +} + +.sbsprite-summoning_eye { + background-position: 0 -154px +} + +.sbsprite-cavespider_generator_10 { + background-position: -22px -154px +} + +.sbsprite-clownfish_10 { + background-position: -44px -154px +} + +.sbsprite-cavespider_generator_11 { + background-position: -66px -154px +} + +.sbsprite-revenant_generator_12 { + background-position: -88px -154px +} + +.sbsprite-clownfish_11 { + background-position: -110px -154px +} + +.sbsprite-revenant_generator_11 { + background-position: -132px -154px +} + +.sbsprite-revenant_generator_10 { + background-position: -154px -154px +} + +.sbsprite-red_small_backpack { + background-position: -176px -154px +} + +.sbsprite-soulflow { + background-position: -198px -154px +} + +.sbsprite-farming_fortune { + background-position: -220px -154px +} + +.sbsprite-dungeon_stone_berserk { + background-position: -242px -154px +} + +.sbsprite-green_greater_backpack { + background-position: -264px -154px +} + +.sbsprite-mastiff_helmet { + background-position: -286px -154px +} + +.sbsprite-purple { + background-position: -308px -154px +} + +.sbsprite-skeleton_generator_7 { + background-position: -330px -154px +} + +.sbsprite-skeleton_generator_6 { + background-position: -352px -154px +} + +.sbsprite-skeleton_generator_9 { + background-position: -374px -154px +} + +.sbsprite-skeleton_generator_8 { + background-position: -396px -154px +} + +.sbsprite-speed_ring { + background-position: -418px -154px +} + +.sbsprite-skeleton_generator_3 { + background-position: -440px -154px +} + +.sbsprite-rabbit_hutch { + background-position: -462px -154px +} + +.sbsprite-skeleton_generator_2 { + background-position: -484px -154px +} + +.sbsprite-skeleton_generator_5 { + background-position: -506px -154px +} + +.sbsprite-minion_storage_expander { + background-position: -528px -154px +} + +.sbsprite-skeleton_generator_4 { + background-position: -550px -154px +} + +.sbsprite-werewolf_helmet { + background-position: -572px -154px +} + +.sbsprite-light_blue_small_backpack { + background-position: -594px -154px +} + +.sbsprite-skeleton_generator_1 { + background-position: -616px -154px +} + +.sbsprite-lapis_chest { + background-position: -638px -154px +} + +.sbsprite-healing_talisman { + background-position: -660px -154px +} + +.sbsprite-magma_cube_head { + background-position: -682px -154px +} + +.sbsprite-shadow_goggles { + background-position: -704px -154px +} + +.sbsprite-ice_generator_11 { + background-position: -726px -154px +} + +.sbsprite-fine_jasper_gem { + background-position: -748px -154px +} + +.sbsprite-candy_artifact { + background-position: -770px -154px +} + +.sbsprite-pet_skin_dragon_neon_blue { + background-position: -792px -154px +} + +.sbsprite-fast_travel_desert { + background-position: -814px -154px +} + +.sbsprite-rune_end { + background-position: -836px -154px +} + +.sbsprite-old_shimmer { + background-position: -858px -154px +} + +.sbsprite-skyblock_bench { + background-position: -880px -154px +} + +.sbsprite-hay_bale { + background-position: -902px -154px +} + +.sbsprite-crit_chance { + background-position: -924px -154px +} + +.sbsprite-dungeon_stone { + background-position: -946px -154px +} + +.sbsprite-artifact_potion_affinity { + background-position: -968px -154px +} + +.sbsprite-yoggie { + background-position: -990px -154px +} + +.sbsprite-starred_adaptive_helmet { + background-position: -1012px -154px +} + +.sbsprite-foraging_3_portal { + background-position: -1034px -154px +} + +.sbsprite-pet_skin_dragon_neon_red { + background-position: 0 -176px +} + +.sbsprite-ditto_skull { + background-position: -22px -176px +} + +.sbsprite-pig_generator_6 { + background-position: -44px -176px +} + +.sbsprite-redstone_generator_1 { + background-position: -66px -176px +} + +.sbsprite-pig_generator_5 { + background-position: -88px -176px +} + +.sbsprite-redstone_generator_2 { + background-position: -110px -176px +} + +.sbsprite-pig_generator_8 { + background-position: -132px -176px +} + +.sbsprite-pig_generator_7 { + background-position: -154px -176px +} + +.sbsprite-flawless_amethyst_gem { + background-position: -176px -176px +} + +.sbsprite-redstone_generator_5 { + background-position: -198px -176px +} + +.sbsprite-wither_catalyst { + background-position: -220px -176px +} + +.sbsprite-pig_generator_9 { + background-position: -242px -176px +} + +.sbsprite-redstone_generator_6 { + background-position: -264px -176px +} + +.sbsprite-cyan_jumbo_backpack { + background-position: -286px -176px +} + +.sbsprite-redstone_generator_3 { + background-position: -308px -176px +} + +.sbsprite-redstone_generator_4 { + background-position: -330px -176px +} + +.sbsprite-ice_generator_10 { + background-position: -352px -176px +} + +.sbsprite-pig_generator_2 { + background-position: -374px -176px +} + +.sbsprite-builder_lettuce { + background-position: -396px -176px +} + +.sbsprite-first_master_star { + background-position: -418px -176px +} + +.sbsprite-pig_generator_1 { + background-position: -440px -176px +} + +.sbsprite-pig_generator_4 { + background-position: -462px -176px +} + +.sbsprite-green_medium_backpack { + background-position: -484px -176px +} + +.sbsprite-pig_generator_3 { + background-position: -506px -176px +} + +.sbsprite-sugar_cane_generator_9 { + background-position: -528px -176px +} + +.sbsprite-greater_backpack { + background-position: -550px -176px +} + +.sbsprite-sugar_cane_generator_6 { + background-position: -572px -176px +} + +.sbsprite-sugar_cane_generator_5 { + background-position: -594px -176px +} + +.sbsprite-pet_skin_sheep_neon_blue { + background-position: -616px -176px +} + +.sbsprite-sugar_cane_generator_8 { + background-position: -638px -176px +} + +.sbsprite-sugar_cane_generator_7 { + background-position: -660px -176px +} + +.sbsprite-sugar_cane_generator_2 { + background-position: -682px -176px +} + +.sbsprite-sugar_cane_generator_1 { + background-position: -704px -176px +} + +.sbsprite-cauldron { + background-position: -726px -176px +} + +.sbsprite-sugar_cane_generator_4 { + background-position: -748px -176px +} + +.sbsprite-sugar_cane_generator_3 { + background-position: -770px -176px +} + +.sbsprite-wheat_island_crystal { + background-position: -792px -176px +} + +.sbsprite-boss_collection_scarf { + background-position: -814px -176px +} + +.sbsprite-deep_sea_orb { + background-position: -836px -176px +} + +.sbsprite-pet_skin_elephant_red { + background-position: -858px -176px +} + +.sbsprite-pink_large_backpack { + background-position: -880px -176px +} + +.sbsprite-gemstone_collection { + background-position: -902px -176px +} + +.sbsprite-carpentry_bench { + background-position: -924px -176px +} + +.sbsprite-pet_skin_wolf_henzo_doggo { + background-position: -946px -176px +} + +.sbsprite-sloth_11 { + background-position: -968px -176px +} + +.sbsprite-sloth_10 { + background-position: -990px -176px +} + +.sbsprite-vampire_mask { + background-position: -1012px -176px +} + +.sbsprite-reindeer_personality { + background-position: -1034px -176px +} + +.sbsprite-minos_hunter_helmet { + background-position: 0 -198px +} + +.sbsprite-catacombs_2 { + background-position: -22px -198px +} + +.sbsprite-catacombs_3 { + background-position: -44px -198px +} + +.sbsprite-catacombs_1 { + background-position: -66px -198px +} + +.sbsprite-catacombs_6 { + background-position: -88px -198px +} + +.sbsprite-small_runes_sack { + background-position: -110px -198px +} + +.sbsprite-catacombs_4 { + background-position: -132px -198px +} + +.sbsprite-catacombs_5 { + background-position: -154px -198px +} + +.sbsprite-clownfish_hat { + background-position: -176px -198px +} + +.sbsprite-fine_topaz_gem { + background-position: -198px -198px +} + +.sbsprite-beastmaster_crest_uncommon { + background-position: -220px -198px +} + +.sbsprite-superlite_motor { + background-position: -242px -198px +} + +.sbsprite-red_greater_backpack { + background-position: -264px -198px +} + +.sbsprite-hunter_ring { + background-position: -286px -198px +} + +.sbsprite-necromancer_brooch { + background-position: -308px -198px +} + +.sbsprite-spooky_shard { + background-position: -330px -198px +} + +.sbsprite-grey_medium_backpack { + background-position: -352px -198px +} + +.sbsprite-diamond_chest { + background-position: -374px -198px +} + +.sbsprite-slime_hat { + background-position: -396px -198px +} + +.sbsprite-hermit_crab_2 { + background-position: -418px -198px +} + +.sbsprite-enderman_cortex_rewriter { + background-position: -440px -198px +} + +.sbsprite-hermit_crab_1 { + background-position: -462px -198px +} + +.sbsprite-carrot_generator_11 { + background-position: -484px -198px +} + +.sbsprite-carrot_generator_12 { + background-position: -506px -198px +} + +.sbsprite-mushroom_generator_4 { + background-position: -528px -198px +} + +.sbsprite-carrot_generator_10 { + background-position: -550px -198px +} + +.sbsprite-mushroom_generator_3 { + background-position: -572px -198px +} + +.sbsprite-mushroom_generator_6 { + background-position: -594px -198px +} + +.sbsprite-mushroom_generator_5 { + background-position: -616px -198px +} + +.sbsprite-mushroom_generator_8 { + background-position: -638px -198px +} + +.sbsprite-mushroom_generator_7 { + background-position: -660px -198px +} + +.sbsprite-mushroom_generator_9 { + background-position: -682px -198px +} + +.sbsprite-diamond_professor_head { + background-position: -704px -198px +} + +.sbsprite-large_foraging_sack { + background-position: -726px -198px +} + +.sbsprite-robotron_reflector { + background-position: -748px -198px +} + +.sbsprite-wish_ultimate { + background-position: -770px -198px +} + +.sbsprite-tessellated_ender_pearl { + background-position: -792px -198px +} + +.sbsprite-pet_skin_sheep_red { + background-position: -814px -198px +} + +.sbsprite-spirit_decoy { + background-position: -836px -198px +} + +.sbsprite-stacked_pumpkins { + background-position: -858px -198px +} + +.sbsprite-medium_runes_sack { + background-position: -880px -198px +} + +.sbsprite-mushroom_generator_2 { + background-position: -902px -198px +} + +.sbsprite-young_dragon_helmet { + background-position: -924px -198px +} + +.sbsprite-mushroom_generator_1 { + background-position: -946px -198px +} + +.sbsprite-hermit_crab_6 { + background-position: -968px -198px +} + +.sbsprite-gravity_talisman { + background-position: -990px -198px +} + +.sbsprite-hermit_crab_5 { + background-position: -1012px -198px +} + +.sbsprite-hermit_crab_4 { + background-position: -1034px -198px +} + +.sbsprite-hermit_crab_3 { + background-position: 0 -220px +} + +.sbsprite-melon_10 { + background-position: -22px -220px +} + +.sbsprite-party_time_event { + background-position: -44px -220px +} + +.sbsprite-grinch_10 { + background-position: -66px -220px +} + +.sbsprite-melon_11 { + background-position: -88px -220px +} + +.sbsprite-hermit_crab_9 { + background-position: -110px -220px +} + +.sbsprite-hermit_crab_8 { + background-position: -132px -220px +} + +.sbsprite-grinch_11 { + background-position: -154px -220px +} + +.sbsprite-hermit_crab_7 { + background-position: -176px -220px +} + +.sbsprite-flower_generator_10 { + background-position: -198px -220px +} + +.sbsprite-race_giant_mushroom { + background-position: -220px -220px +} + +.sbsprite-flower_generator_11 { + background-position: -242px -220px +} + +.sbsprite-flower_generator_12 { + background-position: -264px -220px +} + +.sbsprite-redstone_chest { + background-position: -286px -220px +} + +.sbsprite-undead_catalyst { + background-position: -308px -220px +} + +.sbsprite-master_skull_tier_7 { + background-position: -330px -220px +} + +.sbsprite-reindeer_9 { + background-position: -352px -220px +} + +.sbsprite-master_skull_tier_6 { + background-position: -374px -220px +} + +.sbsprite-rune_slimy { + background-position: -396px -220px +} + +.sbsprite-master_skull_tier_9 { + background-position: -418px -220px +} + +.sbsprite-medium_shelves { + background-position: -440px -220px +} + +.sbsprite-master_skull_tier_8 { + background-position: -462px -220px +} + +.sbsprite-plasmaflux_power_orb { + background-position: -484px -220px +} + +.sbsprite-adaptive_helmet { + background-position: -506px -220px +} + +.sbsprite-pet_skin_endermite_radiant { + background-position: -528px -220px +} + +.sbsprite-master_skull_tier_1 { + background-position: -550px -220px +} + +.sbsprite-master_skull_tier_3 { + background-position: -572px -220px +} + +.sbsprite-oil_barrel { + background-position: -594px -220px +} + +.sbsprite-master_skull_tier_2 { + background-position: -616px -220px +} + +.sbsprite-master_skull_tier_5 { + background-position: -638px -220px +} + +.sbsprite-master_skull_tier_4 { + background-position: -660px -220px +} + +.sbsprite-pet_skin_guardian { + background-position: -682px -220px +} + +.sbsprite-flawless_jade_gem { + background-position: -704px -220px +} + +.sbsprite-survivor_cube { + background-position: -726px -220px +} + +.sbsprite-undead_2 { + background-position: -748px -220px +} + +.sbsprite-undead_3 { + background-position: -770px -220px +} + +.sbsprite-undead_4 { + background-position: -792px -220px +} + +.sbsprite-undead_5 { + background-position: -814px -220px +} + +.sbsprite-undead_6 { + background-position: -836px -220px +} + +.sbsprite-undead_7 { + background-position: -858px -220px +} + +.sbsprite-undead_8 { + background-position: -880px -220px +} + +.sbsprite-undead_9 { + background-position: -902px -220px +} + +.sbsprite-enchanted_book_bundle_vicious { + background-position: -924px -220px +} + +.sbsprite-endstone_chest { + background-position: -946px -220px +} + +.sbsprite-titanium_fuel_tank { + background-position: -968px -220px +} + +.sbsprite-golden_ball { + background-position: -990px -220px +} + +.sbsprite-undead_1 { + background-position: -1012px -220px +} + +.sbsprite-happy_emoji_5 { + background-position: -1034px -220px +} + +.sbsprite-reindeer_1 { + background-position: 0 -242px +} + +.sbsprite-warden_heart { + background-position: -22px -242px +} + +.sbsprite-happy_emoji_4 { + background-position: -44px -242px +} + +.sbsprite-reindeer_2 { + background-position: -66px -242px +} + +.sbsprite-happy_emoji_7 { + background-position: -88px -242px +} + +.sbsprite-reindeer_3 { + background-position: -110px -242px +} + +.sbsprite-happy_emoji_6 { + background-position: -132px -242px +} + +.sbsprite-kalhuiki_mask { + background-position: -154px -242px +} + +.sbsprite-reindeer_4 { + background-position: -176px -242px +} + +.sbsprite-happy_emoji_1 { + background-position: -198px -242px +} + +.sbsprite-reindeer_5 { + background-position: -220px -242px +} + +.sbsprite-reindeer_6 { + background-position: -242px -242px +} + +.sbsprite-happy_emoji_3 { + background-position: -264px -242px +} + +.sbsprite-reindeer_7 { + background-position: -286px -242px +} + +.sbsprite-happy_emoji_2 { + background-position: -308px -242px +} + +.sbsprite-reindeer_8 { + background-position: -330px -242px +} + +.sbsprite-happy_emoji_9 { + background-position: -352px -242px +} + +.sbsprite-festive_skeleton_personality { + background-position: -374px -242px +} + +.sbsprite-happy_emoji_8 { + background-position: -396px -242px +} + +.sbsprite-mimic_fragment { + background-position: -418px -242px +} + +.sbsprite-pet_skin_parrot_gold_macaw { + background-position: -440px -242px +} + +.sbsprite-mithril_drill_engine { + background-position: -462px -242px +} + +.sbsprite-titan_helmet { + background-position: -484px -242px +} + +.sbsprite-warden_helmet { + background-position: -506px -242px +} + +.sbsprite-nether_wart_pouch { + background-position: -528px -242px +} + +.sbsprite-red_nose { + background-position: -550px -242px +} + +.sbsprite-emerald_generator_12 { + background-position: -572px -242px +} + +.sbsprite-farming_1_portal { + background-position: -594px -242px +} + +.sbsprite-pet_skin_horse_zombie { + background-position: -616px -242px +} + +.sbsprite-devour_ring { + background-position: -638px -242px +} + +.sbsprite-mining_1_portal { + background-position: -660px -242px +} + +.sbsprite-builder_lilac_fruit { + background-position: -682px -242px +} + +.sbsprite-diamond_livid_head { + background-position: -704px -242px +} + +.sbsprite-fast_travel_dungeon_hub { + background-position: -726px -242px +} + +.sbsprite-emerald_generator_10 { + background-position: -748px -242px +} + +.sbsprite-emerald_generator_11 { + background-position: -770px -242px +} + +.sbsprite-bestiary_catacombs { + background-position: -792px -242px +} + +.sbsprite-fine_amber_gem { + background-position: -814px -242px +} + +.sbsprite-beach_ball_personality { + background-position: -836px -242px +} + +.sbsprite-cow_generator_11 { + background-position: -858px -242px +} + +.sbsprite-cow_generator_12 { + background-position: -880px -242px +} + +.sbsprite-mummy_personality { + background-position: -902px -242px +} + +.sbsprite-rune_wet { + background-position: -924px -242px +} + +.sbsprite-jumbo_backpack_upgrade { + background-position: -946px -242px +} + +.sbsprite-shadow_assassin_admiral { + background-position: -968px -242px +} + +.sbsprite-beating_heart { + background-position: -990px -242px +} + +.sbsprite-giant_tooth { + background-position: -1012px -242px +} + +.sbsprite-black_large_backpack { + background-position: -1034px -242px +} + +.sbsprite-corleonite { + background-position: 0 -264px +} + +.sbsprite-magma_cube_generator_1 { + background-position: -22px -264px +} + +.sbsprite-magma_cube_generator_5 { + background-position: -44px -264px +} + +.sbsprite-gold_candy { + background-position: -66px -264px +} + +.sbsprite-magma_cube_generator_4 { + background-position: -88px -264px +} + +.sbsprite-magma_cube_generator_3 { + background-position: -110px -264px +} + +.sbsprite-magma_cube_generator_2 { + background-position: -132px -264px +} + +.sbsprite-magma_cube_generator_9 { + background-position: -154px -264px +} + +.sbsprite-dining_table { + background-position: -176px -264px +} + +.sbsprite-magma_cube_generator_8 { + background-position: -198px -264px +} + +.sbsprite-magma_cube_generator_7 { + background-position: -220px -264px +} + +.sbsprite-magma_cube_generator_6 { + background-position: -242px -264px +} + +.sbsprite-sadan_brooch { + background-position: -264px -264px +} + +.sbsprite-birch_generator_11 { + background-position: -286px -264px +} + +.sbsprite-birch_generator_10 { + background-position: -308px -264px +} + +.sbsprite-strong_dragon_helmet { + background-position: -330px -264px +} + +.sbsprite-greater_enchanted_chest_upgrade { + background-position: -352px -264px +} + +.sbsprite-pink_frosted_donut_11 { + background-position: -374px -264px +} + +.sbsprite-molten_cube { + background-position: -396px -264px +} + +.sbsprite-pink_frosted_donut_10 { + background-position: -418px -264px +} + +.sbsprite-ultimate_carrot_candy_upgrade { + background-position: -440px -264px +} + +.sbsprite-old_baby { + background-position: -462px -264px +} + +.sbsprite-coin_lapis { + background-position: -484px -264px +} + +.sbsprite-superior_shimmer { + background-position: -506px -264px +} + +.sbsprite-diver_fragment { + background-position: -528px -264px +} + +.sbsprite-blue_greater_backpack { + background-position: -550px -264px +} + +.sbsprite-piggy_bank { + background-position: -572px -264px +} + +.sbsprite-flawed_jade_gem { + background-position: -594px -264px +} + +.sbsprite-dungeon_boss_key { + background-position: -616px -264px +} + +.sbsprite-spider_catalyst { + background-position: -638px -264px +} + +.sbsprite-shark_scale_helmet { + background-position: -660px -264px +} + +.sbsprite-ghost_book { + background-position: -682px -264px +} + +.sbsprite-titanium_alloy { + background-position: -704px -264px +} + +.sbsprite-pet_skin_enderman_slayer { + background-position: -726px -264px +} + +.sbsprite-hegemony_artifact { + background-position: -748px -264px +} + +.sbsprite-potion_affinity_talisman { + background-position: -770px -264px +} + +.sbsprite-trick_or_treat_bag { + background-position: -792px -264px +} + +.sbsprite-fake_gold_ring { + background-position: -814px -264px +} + +.sbsprite-dr_paper { + background-position: -836px -264px +} + +.sbsprite-fuel_tank { + background-position: -858px -264px +} + +.sbsprite-rough_amethyst_gem { + background-position: -880px -264px +} + +.sbsprite-flawless_sapphire_gem { + background-position: -902px -264px +} + +.sbsprite-pink_small_backpack { + background-position: -924px -264px +} + +.sbsprite-cow_generator_10 { + background-position: -946px -264px +} + +.sbsprite-mithril_infusion { + background-position: -968px -264px +} + +.sbsprite-beastmaster_crest_common { + background-position: -990px -264px +} + +.sbsprite-shiny_relic { + background-position: -1012px -264px +} + +.sbsprite-concentrated_stone { + background-position: -1034px -264px +} + +.sbsprite-sloth_personality { + background-position: 0 -286px +} + +.sbsprite-stocking { + background-position: -22px -286px +} + +.sbsprite-egg_pile { + background-position: -44px -286px +} + +.sbsprite-blessing_of_wisdom { + background-position: -66px -286px +} + +.sbsprite-happy_snowman { + background-position: -88px -286px +} + +.sbsprite-gingerbread_10 { + background-position: -110px -286px +} + +.sbsprite-gingerbread_11 { + background-position: -132px -286px +} + +.sbsprite-diamond_generator_11 { + background-position: -154px -286px +} + +.sbsprite-diamond_generator_10 { + background-position: -176px -286px +} + +.sbsprite-medium_backpack { + background-position: -198px -286px +} + +.sbsprite-rune_white_spiral { + background-position: -220px -286px +} + +.sbsprite-diamond_generator_12 { + background-position: -242px -286px +} + +.sbsprite-blacksmith_plus { + background-position: -264px -286px +} + +.sbsprite-light_blue_greater_backpack { + background-position: -286px -286px +} + +.sbsprite-watcher_eye { + background-position: -308px -286px +} + +.sbsprite-pet_skin_silverfish { + background-position: -330px -286px +} + +.sbsprite-rough_ruby_gem { + background-position: -352px -286px +} + +.sbsprite-fine_amethyst_gem { + background-position: -374px -286px +} + +.sbsprite-flawed_topaz_gem { + background-position: -396px -286px +} + +.sbsprite-spirit_bone { + background-position: -418px -286px +} + +.sbsprite-snow_blaster { + background-position: -440px -286px +} + +.sbsprite-unknown_item { + background-position: -462px -286px +} + +.sbsprite-spider_essence { + background-position: -484px -286px +} + +.sbsprite-light_bait { + background-position: -506px -286px +} + +.sbsprite-beastmaster_crest_legendary { + background-position: -528px -286px +} + +.sbsprite-mayor_diana { + background-position: -550px -286px +} + +.sbsprite-enchanted_jack_o_lantern { + background-position: -572px -286px +} + +.sbsprite-medium_foraging_sack { + background-position: -594px -286px +} + +.sbsprite-emerald_chest { + background-position: -616px -286px +} + +.sbsprite-carrot_generator_6 { + background-position: -638px -286px +} + +.sbsprite-reindeer_11 { + background-position: -660px -286px +} + +.sbsprite-carrot_generator_7 { + background-position: -682px -286px +} + +.sbsprite-reindeer_10 { + background-position: -704px -286px +} + +.sbsprite-carrot_generator_4 { + background-position: -726px -286px +} + +.sbsprite-carrot_generator_5 { + background-position: -748px -286px +} + +.sbsprite-carrot_generator_2 { + background-position: -770px -286px +} + +.sbsprite-carrot_generator_3 { + background-position: -792px -286px +} + +.sbsprite-carrot_generator_1 { + background-position: -814px -286px +} + +.sbsprite-carrot_generator_8 { + background-position: -836px -286px +} + +.sbsprite-dragon_scale { + background-position: -858px -286px +} + +.sbsprite-carrot_generator_9 { + background-position: -880px -286px +} + +.sbsprite-protector_dragon_helmet { + background-position: -902px -286px +} + +.sbsprite-rune_hearts { + background-position: -924px -286px +} + +.sbsprite-pet_skin_sheep_magenta { + background-position: -946px -286px +} + +.sbsprite-shadow_assassin_helmet { + background-position: -968px -286px +} + +.sbsprite-gemstone_gauntlet_gold { + background-position: -990px -286px +} + +.sbsprite-lucky_dice { + background-position: -1012px -286px +} + +.sbsprite-wolf_ring { + background-position: -1034px -286px +} + +.sbsprite-haunt_ability { + background-position: 0 -308px +} + +.sbsprite-undead_essence { + background-position: -22px -308px +} + +.sbsprite-bitter_ice_tea { + background-position: -44px -308px +} + +.sbsprite-beastmaster_crest_rare { + background-position: -66px -308px +} + +.sbsprite-enchanted_titanium { + background-position: -88px -308px +} + +.sbsprite-red_claw_talisman { + background-position: -110px -308px +} + +.sbsprite-intimidation_talisman { + background-position: -132px -308px +} + +.sbsprite-ice_bait { + background-position: -154px -308px +} + +.sbsprite-empty_soda_can { + background-position: -176px -308px +} + +.sbsprite-jerry_candy { + background-position: -198px -308px +} + +.sbsprite-ghast_generator_3 { + background-position: -220px -308px +} + +.sbsprite-fancy_flower_pot { + background-position: -242px -308px +} + +.sbsprite-ghast_generator_2 { + background-position: -264px -308px +} + +.sbsprite-cyan_greater_backpack { + background-position: -286px -308px +} + +.sbsprite-ghast_generator_5 { + background-position: -308px -308px +} + +.sbsprite-ghast_generator_4 { + background-position: -330px -308px +} + +.sbsprite-ghast_generator_7 { + background-position: -352px -308px +} + +.sbsprite-cold_ones { + background-position: -374px -308px +} + +.sbsprite-ghast_generator_6 { + background-position: -396px -308px +} + +.sbsprite-mega_jerry_lure { + background-position: -418px -308px +} + +.sbsprite-ghast_generator_9 { + background-position: -440px -308px +} + +.sbsprite-rune_smokey { + background-position: -462px -308px +} + +.sbsprite-ghast_generator_8 { + background-position: -484px -308px +} + +.sbsprite-healer_dungeon_ability_2 { + background-position: -506px -308px +} + +.sbsprite-healer_dungeon_ability_3 { + background-position: -528px -308px +} + +.sbsprite-ghast_generator_1 { + background-position: -550px -308px +} + +.sbsprite-brown_medium_backpack { + background-position: -572px -308px +} + +.sbsprite-healer_dungeon_ability_1 { + background-position: -594px -308px +} + +.sbsprite-ice_cream_2 { + background-position: -616px -308px +} + +.sbsprite-ice_cream_1 { + background-position: -638px -308px +} + +.sbsprite-ice_cream_4 { + background-position: -660px -308px +} + +.sbsprite-ice_cream_3 { + background-position: -682px -308px +} + +.sbsprite-ice_cream_6 { + background-position: -704px -308px +} + +.sbsprite-ice_cream_5 { + background-position: -726px -308px +} + +.sbsprite-ice_cream_8 { + background-position: -748px -308px +} + +.sbsprite-ice_cream_7 { + background-position: -770px -308px +} + +.sbsprite-ice_cream_9 { + background-position: -792px -308px +} + +.sbsprite-ice_cream_10 { + background-position: -814px -308px +} + +.sbsprite-ice_cream_11 { + background-position: -836px -308px +} + +.sbsprite-coin_iron { + background-position: -858px -308px +} + +.sbsprite-chewed_gum { + background-position: -880px -308px +} + +.sbsprite-training_weights { + background-position: -902px -308px +} + +.sbsprite-orange_large_backpack { + background-position: -924px -308px +} + +.sbsprite-campfire_talisman_24 { + background-position: -946px -308px +} + +.sbsprite-campfire_talisman_25 { + background-position: -968px -308px +} + +.sbsprite-campfire_talisman_26 { + background-position: -990px -308px +} + +.sbsprite-campfire_talisman_27 { + background-position: -1012px -308px +} + +.sbsprite-campfire_talisman_28 { + background-position: -1034px -308px +} + +.sbsprite-campfire_talisman_29 { + background-position: 0 -330px +} + +.sbsprite-candle_table { + background-position: -22px -330px +} + +.sbsprite-jingle_bells { + background-position: -44px -330px +} + +.sbsprite-lynx_talisman { + background-position: -66px -330px +} + +.sbsprite-campfire_talisman_20 { + background-position: -88px -330px +} + +.sbsprite-campfire_talisman_21 { + background-position: -110px -330px +} + +.sbsprite-campfire_talisman_22 { + background-position: -132px -330px +} + +.sbsprite-campfire_talisman_23 { + background-position: -154px -330px +} + +.sbsprite-perfect_ruby_gem { + background-position: -176px -330px +} + +.sbsprite-pet_skin_megalodon_baby { + background-position: -198px -330px +} + +.sbsprite-jungle_amulet { + background-position: -220px -330px +} + +.sbsprite-reaper_mask { + background-position: -242px -330px +} + +.sbsprite-enchanting_plus { + background-position: -264px -330px +} + +.sbsprite-catacombs_expert_ring { + background-position: -286px -330px +} + +.sbsprite-ice_knight_statue { + background-position: -308px -330px +} + +.sbsprite-bits_talisman { + background-position: -330px -330px +} + +.sbsprite-dark_orb { + background-position: -352px -330px +} + +.sbsprite-blessing_of_power { + background-position: -374px -330px +} + +.sbsprite-beastmaster_crest_epic { + background-position: -396px -330px +} + +.sbsprite-bulky_stone { + background-position: -418px -330px +} + +.sbsprite-yellow_small_backpack { + background-position: -440px -330px +} + +.sbsprite-small_potion_bag { + background-position: -462px -330px +} + +.sbsprite-green_jumbo_backpack { + background-position: -484px -330px +} + +.sbsprite-zombie_heart { + background-position: -506px -330px +} + +.sbsprite-pet_skin_black_cat_ivory { + background-position: -528px -330px +} + +.sbsprite-titanium_relic { + background-position: -550px -330px +} + +.sbsprite-fast_travel_jungle { + background-position: -572px -330px +} + +.sbsprite-pet_skin_rabbit { + background-position: -594px -330px +} + +.sbsprite-enderman_mask { + background-position: -616px -330px +} + +.sbsprite-perfect_amethyst_gem { + background-position: -638px -330px +} + +.sbsprite-boss_collection_sadan { + background-position: -660px -330px +} + +.sbsprite-blessing_of_stone { + background-position: -682px -330px +} + +.sbsprite-master_catacombs_pass_0 { + background-position: -704px -330px +} + +.sbsprite-snowman { + background-position: -726px -330px +} + +.sbsprite-candy_the_fish { + background-position: -748px -330px +} + +.sbsprite-gold_chest { + background-position: -770px -330px +} + +.sbsprite-master_catacombs_pass_6 { + background-position: -792px -330px +} + +.sbsprite-master_catacombs_pass_5 { + background-position: -814px -330px +} + +.sbsprite-master_catacombs_pass_8 { + background-position: -836px -330px +} + +.sbsprite-master_catacombs_pass_7 { + background-position: -858px -330px +} + +.sbsprite-master_catacombs_pass_2 { + background-position: -880px -330px +} + +.sbsprite-master_catacombs_pass_1 { + background-position: -902px -330px +} + +.sbsprite-master_catacombs_pass_4 { + background-position: -924px -330px +} + +.sbsprite-master_catacombs_pass_3 { + background-position: -946px -330px +} + +.sbsprite-candy_bowl { + background-position: -968px -330px +} + +.sbsprite-large_talisman_bag { + background-position: -990px -330px +} + +.sbsprite-secret_dungeon_redstone_key { + background-position: -1012px -330px +} + +.sbsprite-knockoff_cola { + background-position: -1034px -330px +} + +.sbsprite-grinch_2 { + background-position: 0 -352px +} + +.sbsprite-grinch_3 { + background-position: -22px -352px +} + +.sbsprite-grinch_4 { + background-position: -44px -352px +} + +.sbsprite-personal_bank_item { + background-position: -66px -352px +} + +.sbsprite-grinch_5 { + background-position: -88px -352px +} + +.sbsprite-grinch_6 { + background-position: -110px -352px +} + +.sbsprite-blessing_of_time { + background-position: -132px -352px +} + +.sbsprite-grinch_7 { + background-position: -154px -352px +} + +.sbsprite-grinch_8 { + background-position: -176px -352px +} + +.sbsprite-grinch_9 { + background-position: -198px -352px +} + +.sbsprite-crit_damage { + background-position: -220px -352px +} + +.sbsprite-grinch_1 { + background-position: -242px -352px +} + +.sbsprite-bunny_4 { + background-position: -264px -352px +} + +.sbsprite-bunny_3 { + background-position: -286px -352px +} + +.sbsprite-the_watchers_head { + background-position: -308px -352px +} + +.sbsprite-bunny_2 { + background-position: -330px -352px +} + +.sbsprite-bunny_1 { + background-position: -352px -352px +} + +.sbsprite-bunny_8 { + background-position: -374px -352px +} + +.sbsprite-bunny_7 { + background-position: -396px -352px +} + +.sbsprite-master_catacombs_pass_9 { + background-position: -418px -352px +} + +.sbsprite-bat_person_helmet { + background-position: -440px -352px +} + +.sbsprite-bunny_6 { + background-position: -462px -352px +} + +.sbsprite-bunny_5 { + background-position: -484px -352px +} + +.sbsprite-refined_amber { + background-position: -506px -352px +} + +.sbsprite-pet_skin_rock_derp { + background-position: -528px -352px +} + +.sbsprite-pet_skin_sheep_gray { + background-position: -550px -352px +} + +.sbsprite-flawed_amber_gem { + background-position: -572px -352px +} + +.sbsprite-pumpkin_11 { + background-position: -594px -352px +} + +.sbsprite-pumpkin_10 { + background-position: -616px -352px +} + +.sbsprite-white_small_backpack { + background-position: -638px -352px +} + +.sbsprite-blaze_hat { + background-position: -660px -352px +} + +.sbsprite-woodcutting_crystal { + background-position: -682px -352px +} + +.sbsprite-bunny_9 { + background-position: -704px -352px +} + +.sbsprite-roofed_forest_island { + background-position: -726px -352px +} + +.sbsprite-campfire_talisman_13 { + background-position: -748px -352px +} + +.sbsprite-campfire_talisman_14 { + background-position: -770px -352px +} + +.sbsprite-rune_lava { + background-position: -792px -352px +} + +.sbsprite-campfire_talisman_15 { + background-position: -814px -352px +} + +.sbsprite-campfire_talisman_16 { + background-position: -836px -352px +} + +.sbsprite-campfire_talisman_17 { + background-position: -858px -352px +} + +.sbsprite-campfire_talisman_18 { + background-position: -880px -352px +} + +.sbsprite-golden_dante_statue { + background-position: -902px -352px +} + +.sbsprite-campfire_talisman_19 { + background-position: -924px -352px +} + +.sbsprite-foraging_4_portal { + background-position: -946px -352px +} + +.sbsprite-new_year_cake_bag { + background-position: -968px -352px +} + +.sbsprite-santa_personality { + background-position: -990px -352px +} + +.sbsprite-campfire_talisman_10 { + background-position: -1012px -352px +} + +.sbsprite-campfire_talisman_11 { + background-position: -1034px -352px +} + +.sbsprite-campfire_talisman_12 { + background-position: 0 -374px +} + +.sbsprite-jerry_stone { + background-position: -22px -374px +} + +.sbsprite-cyclops_personality { + background-position: -44px -374px +} + +.sbsprite-desert_island_crystal { + background-position: -66px -374px +} + +.sbsprite-happy_emoji_personality { + background-position: -88px -374px +} + +.sbsprite-rough_sapphire_gem { + background-position: -110px -374px +} + +.sbsprite-fallen_star_hat { + background-position: -132px -374px +} + +.sbsprite-blaze_generator_10 { + background-position: -154px -374px +} + +.sbsprite-blaze_generator_11 { + background-position: -176px -374px +} + +.sbsprite-goblin_omelette_blue_cheese { + background-position: -198px -374px +} + +.sbsprite-treasure_artifact { + background-position: -220px -374px +} + +.sbsprite-hermit_crab_personality { + background-position: -242px -374px +} + +.sbsprite-orange { + background-position: -264px -374px +} + +.sbsprite-pond_island { + background-position: -286px -374px +} + +.sbsprite-fast_travel_void { + background-position: -308px -374px +} + +.sbsprite-transmission_tuner { + background-position: -330px -374px +} + +.sbsprite-bestiary_the_end { + background-position: -352px -374px +} + +.sbsprite-danger_1_portal { + background-position: -374px -374px +} + +.sbsprite-pink_jumbo_backpack { + background-position: -396px -374px +} + +.sbsprite-sea_walker_helmet { + background-position: -418px -374px +} + +.sbsprite-wise_fragment { + background-position: -440px -374px +} + +.sbsprite-jerry_talisman_golden { + background-position: -462px -374px +} + +.sbsprite-superior_baby { + background-position: -484px -374px +} + +.sbsprite-flower_bed { + background-position: -506px -374px +} + +.sbsprite-cactus_generator_1 { + background-position: -528px -374px +} + +.sbsprite-endstone_geode { + background-position: -550px -374px +} + +.sbsprite-holy_baby { + background-position: -572px -374px +} + +.sbsprite-cactus_generator_3 { + background-position: -594px -374px +} + +.sbsprite-cactus_generator_2 { + background-position: -616px -374px +} + +.sbsprite-cactus_generator_5 { + background-position: -638px -374px +} + +.sbsprite-cactus_generator_4 { + background-position: -660px -374px +} + +.sbsprite-cactus_generator_7 { + background-position: -682px -374px +} + +.sbsprite-cactus_generator_6 { + background-position: -704px -374px +} + +.sbsprite-cactus_generator_9 { + background-position: -726px -374px +} + +.sbsprite-protector_shimmer { + background-position: -748px -374px +} + +.sbsprite-cactus_generator_8 { + background-position: -770px -374px +} + +.sbsprite-rune_sparkling { + background-position: -792px -374px +} + +.sbsprite-bingo_ring { + background-position: -814px -374px +} + +.sbsprite-griffin_upgrade_stone_rare { + background-position: -836px -374px +} + +.sbsprite-chick_nest { + background-position: -858px -374px +} + +.sbsprite-solved_prism { + background-position: -880px -374px +} + +.sbsprite-king_talisman { + background-position: -902px -374px +} + +.sbsprite-treasure_ring { + background-position: -924px -374px +} + +.sbsprite-black_medium_backpack { + background-position: -946px -374px +} + +.sbsprite-surfboard { + background-position: -968px -374px +} + +.sbsprite-mithril_fuel_tank { + background-position: -990px -374px +} + +.sbsprite-fast_travel_home { + background-position: -1012px -374px +} + +.sbsprite-water_trough { + background-position: -1034px -374px +} + +.sbsprite-mayor_dante { + background-position: 0 -396px +} + +.sbsprite-cheese_fuel { + background-position: -22px -396px +} + +.sbsprite-pet_skin_lion_lioness { + background-position: -44px -396px +} + +.sbsprite-pink_bunny_personality { + background-position: -66px -396px +} + +.sbsprite-goldor_the_fish { + background-position: -88px -396px +} + +.sbsprite-speed_wither_helmet { + background-position: -110px -396px +} + +.sbsprite-pink_medium_backpack { + background-position: -132px -396px +} + +.sbsprite-mayor_derpy { + background-position: -154px -396px +} + +.sbsprite-talisman_enrichment_health { + background-position: -176px -396px +} + +.sbsprite-enderpack { + background-position: -198px -396px +} + +.sbsprite-pet_skin_rock_thinking { + background-position: -220px -396px +} + +.sbsprite-soul_fragment { + background-position: -242px -396px +} + +.sbsprite-skyblock_chair { + background-position: -264px -396px +} + +.sbsprite-mayor_paul { + background-position: -286px -396px +} + +.sbsprite-autopet_rules_2 { + background-position: -308px -396px +} + +.sbsprite-bat_talisman { + background-position: -330px -396px +} + +.sbsprite-killer_4 { + background-position: -352px -396px +} + +.sbsprite-killer_5 { + background-position: -374px -396px +} + +.sbsprite-killer_6 { + background-position: -396px -396px +} + +.sbsprite-killer_7 { + background-position: -418px -396px +} + +.sbsprite-killer_8 { + background-position: -440px -396px +} + +.sbsprite-killer_9 { + background-position: -462px -396px +} + +.sbsprite-builder_appalled_pumpkin { + background-position: -484px -396px +} + +.sbsprite-holy_shimmer { + background-position: -506px -396px +} + +.sbsprite-royal_pigeon { + background-position: -528px -396px +} + +.sbsprite-life_preserver { + background-position: -550px -396px +} + +.sbsprite-killer_1 { + background-position: -572px -396px +} + +.sbsprite-killer_2 { + background-position: -594px -396px +} + +.sbsprite-killer_3 { + background-position: -616px -396px +} + +.sbsprite-pet_skin_rock_cool { + background-position: -638px -396px +} + +.sbsprite-dingy { + background-position: -660px -396px +} + +.sbsprite-intimidation_ring { + background-position: -682px -396px +} + +.sbsprite-easter_egg_6 { + background-position: -704px -396px +} + +.sbsprite-builder_kiwi { + background-position: -726px -396px +} + +.sbsprite-easter_egg_5 { + background-position: -748px -396px +} + +.sbsprite-easter_egg_4 { + background-position: -770px -396px +} + +.sbsprite-rough_jade_gem { + background-position: -792px -396px +} + +.sbsprite-easter_egg_3 { + background-position: -814px -396px +} + +.sbsprite-easter_egg_2 { + background-position: -836px -396px +} + +.sbsprite-easter_egg_1 { + background-position: -858px -396px +} + +.sbsprite-snow_generator_11 { + background-position: -880px -396px +} + +.sbsprite-snow_generator_10 { + background-position: -902px -396px +} + +.sbsprite-easter_egg_9 { + background-position: -924px -396px +} + +.sbsprite-easter_egg_8 { + background-position: -946px -396px +} + +.sbsprite-easter_egg_7 { + background-position: -968px -396px +} + +.sbsprite-medium_gemstone_sack { + background-position: -990px -396px +} + +.sbsprite-large_enchanted_agronomy_sack { + background-position: -1012px -396px +} + +.sbsprite-blessed_fruit { + background-position: -1034px -396px +} + +.sbsprite-dungeon_stone_archer { + background-position: 0 -418px +} + +.sbsprite-arrow_swapper { + background-position: -22px -418px +} + +.sbsprite-snow_cannon { + background-position: -44px -418px +} + +.sbsprite-jerry_box_mega { + background-position: -66px -418px +} + +.sbsprite-pet_skin_sheep_brown { + background-position: -88px -418px +} + +.sbsprite-brewing_plus { + background-position: -110px -418px +} + +.sbsprite-mayor_barry { + background-position: -132px -418px +} + +.sbsprite-bat_ring { + background-position: -154px -418px +} + +.sbsprite-candle_arch { + background-position: -176px -418px +} + +.sbsprite-mithril_plate { + background-position: -198px -418px +} + +.sbsprite-carrot_bait { + background-position: -220px -418px +} + +.sbsprite-speed_artifact { + background-position: -242px -418px +} + +.sbsprite-salmon_hat { + background-position: -264px -418px +} + +.sbsprite-mini_sandcastle { + background-position: -286px -418px +} + +.sbsprite-scavenger_talisman { + background-position: -308px -418px +} + +.sbsprite-fast_travel_kuudra { + background-position: -330px -418px +} + +.sbsprite-foraging_fortune { + background-position: -352px -418px +} + +.sbsprite-bunny_personality { + background-position: -374px -418px +} + +.sbsprite-sandcastle_personality { + background-position: -396px -418px +} + +.sbsprite-undead_11 { + background-position: -418px -418px +} + +.sbsprite-magenta_jumbo_backpack { + background-position: -440px -418px +} + +.sbsprite-undead_10 { + background-position: -462px -418px +} + +.sbsprite-diamond_necron_head { + background-position: -484px -418px +} + +.sbsprite-wet_pumpkin { + background-position: -506px -418px +} + +.sbsprite-gemstone_gauntlet { + background-position: -528px -418px +} + +.sbsprite-cobblestone_generator_9 { + background-position: -550px -418px +} + +.sbsprite-cobblestone_generator_8 { + background-position: -572px -418px +} + +.sbsprite-iron_generator_1 { + background-position: -594px -418px +} + +.sbsprite-cobblestone_generator_7 { + background-position: -616px -418px +} + +.sbsprite-control_switch { + background-position: -638px -418px +} + +.sbsprite-iron_generator_2 { + background-position: -660px -418px +} + +.sbsprite-cobblestone_generator_6 { + background-position: -682px -418px +} + +.sbsprite-pumpkin_bomb { + background-position: -704px -418px +} + +.sbsprite-cobblestone_generator_5 { + background-position: -726px -418px +} + +.sbsprite-cobblestone_generator_4 { + background-position: -748px -418px +} + +.sbsprite-dwarven_tankard { + background-position: -770px -418px +} + +.sbsprite-jerry_talisman_purple { + background-position: -792px -418px +} + +.sbsprite-cobblestone_generator_3 { + background-position: -814px -418px +} + +.sbsprite-cobblestone_generator_2 { + background-position: -836px -418px +} + +.sbsprite-reindeer_plush { + background-position: -858px -418px +} + +.sbsprite-cobblestone_generator_1 { + background-position: -880px -418px +} + +.sbsprite-big_xtree { + background-position: -902px -418px +} + +.sbsprite-farming_island { + background-position: -924px -418px +} + +.sbsprite-rune_endersnake { + background-position: -946px -418px +} + +.sbsprite-rune { + background-position: -968px -418px +} + +.sbsprite-sweet_flesh { + background-position: -990px -418px +} + +.sbsprite-shark_10 { + background-position: -1012px -418px +} + +.sbsprite-shark_12 { + background-position: -1034px -418px +} + +.sbsprite-viking_tear { + background-position: 0 -440px +} + +.sbsprite-shark_11 { + background-position: -22px -440px +} + +.sbsprite-iron_generator_7 { + background-position: -44px -440px +} + +.sbsprite-iron_generator_8 { + background-position: -66px -440px +} + +.sbsprite-iron_generator_9 { + background-position: -88px -440px +} + +.sbsprite-beacon_skull { + background-position: -110px -440px +} + +.sbsprite-coin_gold_2 { + background-position: -132px -440px +} + +.sbsprite-iron_generator_3 { + background-position: -154px -440px +} + +.sbsprite-iron_generator_4 { + background-position: -176px -440px +} + +.sbsprite-sea_creature_ring { + background-position: -198px -440px +} + +.sbsprite-iron_generator_5 { + background-position: -220px -440px +} + +.sbsprite-iron_generator_6 { + background-position: -242px -440px +} + +.sbsprite-nether_warts_generator_7 { + background-position: -264px -440px +} + +.sbsprite-nether_warts_generator_8 { + background-position: -286px -440px +} + +.sbsprite-nether_warts_generator_9 { + background-position: -308px -440px +} + +.sbsprite-nether_warts_generator_3 { + background-position: -330px -440px +} + +.sbsprite-wolf_fur_mixin { + background-position: -352px -440px +} + +.sbsprite-mayor_marina { + background-position: -374px -440px +} + +.sbsprite-candy_ring { + background-position: -396px -440px +} + +.sbsprite-nether_warts_generator_4 { + background-position: -418px -440px +} + +.sbsprite-nether_warts_generator_5 { + background-position: -440px -440px +} + +.sbsprite-nether_warts_generator_6 { + background-position: -462px -440px +} + +.sbsprite-large_backpack { + background-position: -484px -440px +} + +.sbsprite-fine_sapphire_gem { + background-position: -506px -440px +} + +.sbsprite-nether_warts_generator_1 { + background-position: -528px -440px +} + +.sbsprite-nether_warts_generator_2 { + background-position: -550px -440px +} + +.sbsprite-griffin_upgrade_stone_uncommon { + background-position: -572px -440px +} + +.sbsprite-grey_greater_backpack { + background-position: -594px -440px +} + +.sbsprite-shiny_orb { + background-position: -616px -440px +} + +.sbsprite-large_enchanted_husbandry_sack { + background-position: -638px -440px +} + +.sbsprite-milk_cookies { + background-position: -660px -440px +} + +.sbsprite-spider_artifact { + background-position: -682px -440px +} + +.sbsprite-green_gift { + background-position: -704px -440px +} + +.sbsprite-fast_travel_park { + background-position: -726px -440px +} + +.sbsprite-jungle_heart { + background-position: -748px -440px +} + +.sbsprite-toil_log { + background-position: -770px -440px +} + +.sbsprite-absolute_ender_pearl { + background-position: -792px -440px +} + +.sbsprite-catacombs_pass_10 { + background-position: -814px -440px +} + +.sbsprite-protector_fragment { + background-position: -836px -440px +} + +.sbsprite-ice_generator_1 { + background-position: -858px -440px +} + +.sbsprite-ice_generator_2 { + background-position: -880px -440px +} + +.sbsprite-old_fragment { + background-position: -902px -440px +} + +.sbsprite-ice_generator_3 { + background-position: -924px -440px +} + +.sbsprite-traveling_zoo { + background-position: -946px -440px +} + +.sbsprite-ice_generator_4 { + background-position: -968px -440px +} + +.sbsprite-ice_generator_5 { + background-position: -990px -440px +} + +.sbsprite-ice_generator_6 { + background-position: -1012px -440px +} + +.sbsprite-ice_generator_7 { + background-position: -1034px -440px +} + +.sbsprite-ice_generator_8 { + background-position: 0 -462px +} + +.sbsprite-ice_generator_9 { + background-position: -22px -462px +} + +.sbsprite-lady_bug_personality { + background-position: -44px -462px +} + +.sbsprite-pet_skin_rock_laugh { + background-position: -66px -462px +} + +.sbsprite-experimentation_table { + background-position: -88px -462px +} + +.sbsprite-titanium_ore { + background-position: -110px -462px +} + +.sbsprite-blue_medium_backpack { + background-position: -132px -462px +} + +.sbsprite-ice_sofa { + background-position: -154px -462px +} + +.sbsprite-rune_lightning { + background-position: -176px -462px +} + +.sbsprite-tarantula_talisman { + background-position: -198px -462px +} + +.sbsprite-mayor_aatrox { + background-position: -220px -462px +} + +.sbsprite-race_crystal_core { + background-position: -242px -462px +} + +.sbsprite-black_cat_plush { + background-position: -264px -462px +} + +.sbsprite-small_agronomy_sack { + background-position: -286px -462px +} + +.sbsprite-magenta_greater_backpack { + background-position: -308px -462px +} + +.sbsprite-pet_skin_sheep_light_gray { + background-position: -330px -462px +} + +.sbsprite-diamond_scarf_head { + background-position: -352px -462px +} + +.sbsprite-hay_bed { + background-position: -374px -462px +} + +.sbsprite-talisman_enrichment_sea_creature_chance { + background-position: -396px -462px +} + +.sbsprite-strong_shimmer { + background-position: -418px -462px +} + +.sbsprite-shady_ring { + background-position: -440px -462px +} + +.sbsprite-dante_talisman { + background-position: -462px -462px +} + +.sbsprite-pink_bunny_1 { + background-position: -484px -462px +} + +.sbsprite-black_greater_backpack { + background-position: -506px -462px +} + +.sbsprite-builder_cactus { + background-position: -528px -462px +} + +.sbsprite-magenta_small_backpack { + background-position: -550px -462px +} + +.sbsprite-talisman_enrichment_defense { + background-position: -572px -462px +} + +.sbsprite-pink_bunny_3 { + background-position: -594px -462px +} + +.sbsprite-talisman_enrichment_magic_find { + background-position: -616px -462px +} + +.sbsprite-pink_bunny_2 { + background-position: -638px -462px +} + +.sbsprite-pink_bunny_5 { + background-position: -660px -462px +} + +.sbsprite-pink_bunny_4 { + background-position: -682px -462px +} + +.sbsprite-salmon_opal { + background-position: -704px -462px +} + +.sbsprite-pink_bunny_7 { + background-position: -726px -462px +} + +.sbsprite-pink_bunny_6 { + background-position: -748px -462px +} + +.sbsprite-pink_bunny_9 { + background-position: -770px -462px +} + +.sbsprite-pink_bunny_8 { + background-position: -792px -462px +} + +.sbsprite-refined_mithril { + background-position: -814px -462px +} + +.sbsprite-happy_emoji_10 { + background-position: -836px -462px +} + +.sbsprite-happy_emoji_11 { + background-position: -858px -462px +} + +.sbsprite-mine_talisman { + background-position: -880px -462px +} + +.sbsprite-old_dragon_helmet { + background-position: -902px -462px +} + +.sbsprite-boss_collection_livid { + background-position: -924px -462px +} + +.sbsprite-green_small_backpack { + background-position: -946px -462px +} + +.sbsprite-rune_bite { + background-position: -968px -462px +} + +.sbsprite-jungle_generator_11 { + background-position: -990px -462px +} + +.sbsprite-mega_luck { + background-position: -1012px -462px +} + +.sbsprite-jungle_generator_10 { + background-position: -1034px -462px +} + +.sbsprite-pet_skin_chicken_baby_chick { + background-position: 0 -484px +} + +.sbsprite-pile_of_cash { + background-position: -22px -484px +} + +.sbsprite-dungeoneering { + background-position: -44px -484px +} + +.sbsprite-base_griffin_upgrade_stone { + background-position: -66px -484px +} + +.sbsprite-red_tent { + background-position: -88px -484px +} + +.sbsprite-dungeon_red_support_orb { + background-position: -110px -484px +} + +.sbsprite-fast_travel_nether { + background-position: -132px -484px +} + +.sbsprite-night_vision_charm { + background-position: -154px -484px +} + +.sbsprite-zombie_grave { + background-position: -176px -484px +} + +.sbsprite-fish_bait { + background-position: -198px -484px +} + +.sbsprite-ice_lolly_personality { + background-position: -220px -484px +} + +.sbsprite-grizzly_paw { + background-position: -242px -484px +} + +.sbsprite-large_potion_bag { + background-position: -264px -484px +} + +.sbsprite-poorly_wrapped_rock { + background-position: -286px -484px +} + +.sbsprite-drill_engine { + background-position: -308px -484px +} + +.sbsprite-dark_oak_generator_10 { + background-position: -330px -484px +} + +.sbsprite-dungeon_normal_key { + background-position: -352px -484px +} + +.sbsprite-dark_oak_generator_11 { + background-position: -374px -484px +} + +.sbsprite-unstable_shimmer { + background-position: -396px -484px +} + +.sbsprite-green_egg { + background-position: -418px -484px +} + +.sbsprite-rough_topaz_gem { + background-position: -440px -484px +} + +.sbsprite-mana_flux_power_orb { + background-position: -462px -484px +} + +.sbsprite-amber_material { + background-position: -484px -484px +} + +.sbsprite-grinch_personality { + background-position: -506px -484px +} + +.sbsprite-fast_travel_crystals { + background-position: -528px -484px +} + +.sbsprite-lapis_generator_2 { + background-position: -550px -484px +} + +.sbsprite-lapis_generator_3 { + background-position: -572px -484px +} + +.sbsprite-rune_sack { + background-position: -594px -484px +} + +.sbsprite-lapis_generator_4 { + background-position: -616px -484px +} + +.sbsprite-tightly_tied_hay_bale { + background-position: -638px -484px +} + +.sbsprite-beach_ball { + background-position: -660px -484px +} + +.sbsprite-lapis_generator_5 { + background-position: -682px -484px +} + +.sbsprite-lapis_generator_10 { + background-position: -704px -484px +} + +.sbsprite-lapis_generator_12 { + background-position: -726px -484px +} + +.sbsprite-light_grey_large_backpack { + background-position: -748px -484px +} + +.sbsprite-lapis_generator_1 { + background-position: -770px -484px +} + +.sbsprite-lapis_generator_11 { + background-position: -792px -484px +} + +.sbsprite-pet_item_quick_claw { + background-position: -814px -484px +} + +.sbsprite-basketball_9 { + background-position: -836px -484px +} + +.sbsprite-deck_chair { + background-position: -858px -484px +} + +.sbsprite-lady_bug_9 { + background-position: -880px -484px +} + +.sbsprite-basketball_8 { + background-position: -902px -484px +} + +.sbsprite-lady_bug_8 { + background-position: -924px -484px +} + +.sbsprite-basketball_7 { + background-position: -946px -484px +} + +.sbsprite-basketball_6 { + background-position: -968px -484px +} + +.sbsprite-rune_pestilence { + background-position: -990px -484px +} + +.sbsprite-basketball_5 { + background-position: -1012px -484px +} + +.sbsprite-mithril_generator_12 { + background-position: -1034px -484px +} + +.sbsprite-sea_creature_talisman { + background-position: 0 -506px +} + +.sbsprite-basketball_4 { + background-position: -22px -506px +} + +.sbsprite-mithril_generator_11 { + background-position: -44px -506px +} + +.sbsprite-basketball_3 { + background-position: -66px -506px +} + +.sbsprite-mithril_generator_10 { + background-position: -88px -506px +} + +.sbsprite-basketball_2 { + background-position: -110px -506px +} + +.sbsprite-blue_egg { + background-position: -132px -506px +} + +.sbsprite-basketball_1 { + background-position: -154px -506px +} + +.sbsprite-lady_bug_1 { + background-position: -176px -506px +} + +.sbsprite-emerald_ring { + background-position: -198px -506px +} + +.sbsprite-lady_bug_3 { + background-position: -220px -506px +} + +.sbsprite-lady_bug_2 { + background-position: -242px -506px +} + +.sbsprite-lady_bug_5 { + background-position: -264px -506px +} + +.sbsprite-lapis_generator_6 { + background-position: -286px -506px +} + +.sbsprite-epoch_cake_green { + background-position: -308px -506px +} + +.sbsprite-lady_bug_4 { + background-position: -330px -506px +} + +.sbsprite-lapis_generator_7 { + background-position: -352px -506px +} + +.sbsprite-medium_husbandry_sack { + background-position: -374px -506px +} + +.sbsprite-bunny_11 { + background-position: -396px -506px +} + +.sbsprite-lady_bug_7 { + background-position: -418px -506px +} + +.sbsprite-lapis_generator_8 { + background-position: -440px -506px +} + +.sbsprite-bunny_10 { + background-position: -462px -506px +} + +.sbsprite-candy_relic { + background-position: -484px -506px +} + +.sbsprite-lady_bug_6 { + background-position: -506px -506px +} + +.sbsprite-lapis_generator_9 { + background-position: -528px -506px +} + +.sbsprite-red_jumbo_backpack { + background-position: -550px -506px +} + +.sbsprite-holy_fragment { + background-position: -572px -506px +} + +.sbsprite-ice_cream_personality { + background-position: -594px -506px +} + +.sbsprite-dungeon_blue_support_orb { + background-position: -616px -506px +} + +.sbsprite-blaze_generator_4 { + background-position: -638px -506px +} + +.sbsprite-blaze_generator_3 { + background-position: -660px -506px +} + +.sbsprite-blaze_generator_2 { + background-position: -682px -506px +} + +.sbsprite-blaze_generator_1 { + background-position: -704px -506px +} + +.sbsprite-blaze_generator_8 { + background-position: -726px -506px +} + +.sbsprite-blaze_generator_7 { + background-position: -748px -506px +} + +.sbsprite-pet_skin_whale_orca { + background-position: -770px -506px +} + +.sbsprite-blaze_generator_6 { + background-position: -792px -506px +} + +.sbsprite-blaze_generator_5 { + background-position: -814px -506px +} + +.sbsprite-deadgehog_helmet { + background-position: -836px -506px +} + +.sbsprite-volta { + background-position: -858px -506px +} + +.sbsprite-blaze_generator_9 { + background-position: -880px -506px +} + +.sbsprite-frozen_chicken { + background-position: -902px -506px +} + +.sbsprite-pet_skin_dragon_neon_purple { + background-position: -924px -506px +} + +.sbsprite-cavespider_generator_6 { + background-position: -946px -506px +} + +.sbsprite-cavespider_generator_5 { + background-position: -968px -506px +} + +.sbsprite-rune_gem { + background-position: -990px -506px +} + +.sbsprite-cavespider_generator_8 { + background-position: -1012px -506px +} + +.sbsprite-cavespider_generator_7 { + background-position: -1034px -506px +} + +.sbsprite-cavespider_generator_2 { + background-position: 0 -528px +} + +.sbsprite-cavespider_generator_1 { + background-position: -22px -528px +} + +.sbsprite-cavespider_generator_4 { + background-position: -44px -528px +} + +.sbsprite-jerry_talisman_blue { + background-position: -66px -528px +} + +.sbsprite-cavespider_generator_3 { + background-position: -88px -528px +} + +.sbsprite-speed_talisman { + background-position: -110px -528px +} + +.sbsprite-mummy_1 { + background-position: -132px -528px +} + +.sbsprite-rabbit_hat { + background-position: -154px -528px +} + +.sbsprite-bat_person_ring { + background-position: -176px -528px +} + +.sbsprite-mummy_3 { + background-position: -198px -528px +} + +.sbsprite-cavespider_generator_9 { + background-position: -220px -528px +} + +.sbsprite-mummy_2 { + background-position: -242px -528px +} + +.sbsprite-mummy_5 { + background-position: -264px -528px +} + +.sbsprite-strong_baby { + background-position: -286px -528px +} + +.sbsprite-mummy_4 { + background-position: -308px -528px +} + +.sbsprite-mummy_7 { + background-position: -330px -528px +} + +.sbsprite-mummy_6 { + background-position: -352px -528px +} + +.sbsprite-spooky_helmet { + background-position: -374px -528px +} + +.sbsprite-dining_chair { + background-position: -396px -528px +} + +.sbsprite-mummy_9 { + background-position: -418px -528px +} + +.sbsprite-mummy_8 { + background-position: -440px -528px +} + +.sbsprite-ender_relic { + background-position: -462px -528px +} + +.sbsprite-flawed_jasper_gem { + background-position: -484px -528px +} + +.sbsprite-cactus_generator_10 { + background-position: -506px -528px +} + +.sbsprite-pet_skin_silverfish_fossilized { + background-position: -528px -528px +} + +.sbsprite-cactus_generator_11 { + background-position: -550px -528px +} + +.sbsprite-cactus_generator_12 { + background-position: -572px -528px +} + +.sbsprite-dark_goggles { + background-position: -594px -528px +} + +.sbsprite-starred_bonzo_mask { + background-position: -616px -528px +} + +.sbsprite-pigs_foot { + background-position: -638px -528px +} + +.sbsprite-gemstone_mixture { + background-position: -660px -528px +} + +.sbsprite-tarantula_black_widow { + background-position: -682px -528px +} + +.sbsprite-builder_berry_bush { + background-position: -704px -528px +} + +.sbsprite-chicken_head { + background-position: -726px -528px +} + +.sbsprite-pet_skin_elephant_purple { + background-position: -748px -528px +} + +.sbsprite-cow_head { + background-position: -770px -528px +} + +.sbsprite-witch_broomstick { + background-position: -792px -528px +} + +.sbsprite-pet_skin_monkey_gorilla { + background-position: -814px -528px +} + +.sbsprite-grey_large_backpack { + background-position: -836px -528px +} + +.sbsprite-pet_skin_sheep_neon_green { + background-position: -858px -528px +} + +.sbsprite-magic_mushroom_soup { + background-position: -880px -528px +} + +.sbsprite-petrified_starfall { + background-position: -902px -528px +} + +.sbsprite-spruce_generator_9 { + background-position: -924px -528px +} + +.sbsprite-second_master_star { + background-position: -946px -528px +} + +.sbsprite-sled { + background-position: -968px -528px +} + +.sbsprite-spruce_generator_1 { + background-position: -990px -528px +} + +.sbsprite-voidling_generator_2 { + background-position: -1012px -528px +} + +.sbsprite-red { + background-position: -1034px -528px +} + +.sbsprite-spirit_wing { + background-position: 0 -550px +} + +.sbsprite-spruce_generator_2 { + background-position: -22px -550px +} + +.sbsprite-voidling_generator_1 { + background-position: -44px -550px +} + +.sbsprite-spruce_generator_3 { + background-position: -66px -550px +} + +.sbsprite-voidling_generator_4 { + background-position: -88px -550px +} + +.sbsprite-spruce_generator_4 { + background-position: -110px -550px +} + +.sbsprite-voidling_generator_3 { + background-position: -132px -550px +} + +.sbsprite-spruce_generator_5 { + background-position: -154px -550px +} + +.sbsprite-voidling_generator_6 { + background-position: -176px -550px +} + +.sbsprite-spruce_generator_6 { + background-position: -198px -550px +} + +.sbsprite-voidling_generator_5 { + background-position: -220px -550px +} + +.sbsprite-spruce_generator_7 { + background-position: -242px -550px +} + +.sbsprite-voidling_generator_8 { + background-position: -264px -550px +} + +.sbsprite-spruce_generator_8 { + background-position: -286px -550px +} + +.sbsprite-voidling_generator_7 { + background-position: -308px -550px +} + +.sbsprite-voidling_generator_9 { + background-position: -330px -550px +} + +.sbsprite-magenta_large_backpack { + background-position: -352px -550px +} + +.sbsprite-fast_travel_end { + background-position: -374px -550px +} + +.sbsprite-cow_generator_8 { + background-position: -396px -550px +} + +.sbsprite-cow_generator_9 { + background-position: -418px -550px +} + +.sbsprite-present_1 { + background-position: -440px -550px +} + +.sbsprite-topaz_crystal { + background-position: -462px -550px +} + +.sbsprite-bestiary_private_island { + background-position: -484px -550px +} + +.sbsprite-present_2 { + background-position: -506px -550px +} + +.sbsprite-present_3 { + background-position: -528px -550px +} + +.sbsprite-cow_generator_1 { + background-position: -550px -550px +} + +.sbsprite-cow_generator_2 { + background-position: -572px -550px +} + +.sbsprite-dragon_horn { + background-position: -594px -550px +} + +.sbsprite-bat_artifact { + background-position: -616px -550px +} + +.sbsprite-cow_generator_3 { + background-position: -638px -550px +} + +.sbsprite-cow_generator_4 { + background-position: -660px -550px +} + +.sbsprite-cow_generator_5 { + background-position: -682px -550px +} + +.sbsprite-cow_generator_6 { + background-position: -704px -550px +} + +.sbsprite-cow_generator_7 { + background-position: -726px -550px +} + +.sbsprite-goblin_omelette_pesto { + background-position: -748px -550px +} + +.sbsprite-farming_2_portal { + background-position: -770px -550px +} + +.sbsprite-village_talisman { + background-position: -792px -550px +} + +.sbsprite-cheetah_talisman { + background-position: -814px -550px +} + +.sbsprite-mining_2_portal { + background-position: -836px -550px +} + +.sbsprite-present_8 { + background-position: -858px -550px +} + +.sbsprite-wood_talisman { + background-position: -880px -550px +} + +.sbsprite-present_9 { + background-position: -902px -550px +} + +.sbsprite-present_4 { + background-position: -924px -550px +} + +.sbsprite-present_5 { + background-position: -946px -550px +} + +.sbsprite-present_6 { + background-position: -968px -550px +} + +.sbsprite-present_7 { + background-position: -990px -550px +} + +.sbsprite-healing_ring { + background-position: -1012px -550px +} + +.sbsprite-titanium_artifact { + background-position: -1034px -550px +} + +.sbsprite-penguin_1 { + background-position: 0 -572px +} + +.sbsprite-penguin_2 { + background-position: -22px -572px +} + +.sbsprite-ruby_crystal { + background-position: -44px -572px +} + +.sbsprite-tiki_torch { + background-position: -66px -572px +} + +.sbsprite-wheat_generator_10 { + background-position: -88px -572px +} + +.sbsprite-emerald_generator_8 { + background-position: -110px -572px +} + +.sbsprite-wheat_generator_12 { + background-position: -132px -572px +} + +.sbsprite-emerald_generator_7 { + background-position: -154px -572px +} + +.sbsprite-wheat_generator_11 { + background-position: -176px -572px +} + +.sbsprite-scarecrow { + background-position: -198px -572px +} + +.sbsprite-emerald_generator_9 { + background-position: -220px -572px +} + +.sbsprite-emerald_generator_4 { + background-position: -242px -572px +} + +.sbsprite-emerald_generator_3 { + background-position: -264px -572px +} + +.sbsprite-emerald_generator_6 { + background-position: -286px -572px +} + +.sbsprite-emerald_generator_5 { + background-position: -308px -572px +} + +.sbsprite-pet_skin_elephant_monochrome { + background-position: -330px -572px +} + +.sbsprite-emerald_generator_2 { + background-position: -352px -572px +} + +.sbsprite-emerald_generator_1 { + background-position: -374px -572px +} + +.sbsprite-flawless_topaz_gem { + background-position: -396px -572px +} + +.sbsprite-raw_soulflow { + background-position: -418px -572px +} + +.sbsprite-large_enchanted_mining_sack { + background-position: -440px -572px +} + +.sbsprite-gold_scarf_head { + background-position: -462px -572px +} + +.sbsprite-orange_medium_backpack { + background-position: -484px -572px +} + +.sbsprite-fine_jade_gem { + background-position: -506px -572px +} + +.sbsprite-white_gift { + background-position: -528px -572px +} + +.sbsprite-goblin_omelette_sunny_side { + background-position: -550px -572px +} + +.sbsprite-builder_brown_mushroom { + background-position: -572px -572px +} + +.sbsprite-giant_flesh { + background-position: -594px -572px +} + +.sbsprite-jumbo_backpack { + background-position: -616px -572px +} + +.sbsprite-eternal_flame_ring { + background-position: -638px -572px +} + +.sbsprite-wrapped_gift_for_juliette { + background-position: -660px -572px +} + +.sbsprite-enchanted_book_bundle_counter_strike { + background-position: -682px -572px +} + +.sbsprite-pet_item_toy_jerry { + background-position: -704px -572px +} + +.sbsprite-golden_plate { + background-position: -726px -572px +} + +.sbsprite-penguin_5 { + background-position: -748px -572px +} + +.sbsprite-grandfather_clock { + background-position: -770px -572px +} + +.sbsprite-penguin_6 { + background-position: -792px -572px +} + +.sbsprite-penguin_3 { + background-position: -814px -572px +} + +.sbsprite-pet_skin_elephant_orange { + background-position: -836px -572px +} + +.sbsprite-fast_travel_museum { + background-position: -858px -572px +} + +.sbsprite-penguin_4 { + background-position: -880px -572px +} + +.sbsprite-penguin_9 { + background-position: -902px -572px +} + +.sbsprite-penguin_7 { + background-position: -924px -572px +} + +.sbsprite-penguin_8 { + background-position: -946px -572px +} + +.sbsprite-light_grey_medium_backpack { + background-position: -968px -572px +} + +.sbsprite-blue_jumbo_backpack { + background-position: -990px -572px +} + +.sbsprite-cyan_small_backpack { + background-position: -1012px -572px +} + +.sbsprite-jade_crystal { + background-position: -1034px -572px +} + +.sbsprite-large_dungeon_sack { + background-position: 0 -594px +} + +.sbsprite-summoning_ring { + background-position: -22px -594px +} + +.sbsprite-dragon_essence { + background-position: -44px -594px +} + +.sbsprite-basket_of_seeds { + background-position: -66px -594px +} + +.sbsprite-bunny_jerry { + background-position: -88px -594px +} + +.sbsprite-perfect_jade_gem { + background-position: -110px -594px +} + +.sbsprite-spray_can { + background-position: -132px -594px +} + +.sbsprite-campfire_talisman_4 { + background-position: -154px -594px +} + +.sbsprite-campfire_talisman_5 { + background-position: -176px -594px +} + +.sbsprite-campfire_talisman_2 { + background-position: -198px -594px +} + +.sbsprite-campfire_talisman_3 { + background-position: -220px -594px +} + +.sbsprite-remnant_of_the_eye { + background-position: -242px -594px +} + +.sbsprite-campfire_talisman_1 { + background-position: -264px -594px +} + +.sbsprite-talisman_enrichment_critical_chance { + background-position: -286px -594px +} + +.sbsprite-ghast_head { + background-position: -308px -594px +} + +.sbsprite-white_greater_backpack { + background-position: -330px -594px +} + +.sbsprite-mayor_diaz { + background-position: -352px -594px +} + +.sbsprite-campfire_talisman_8 { + background-position: -374px -594px +} + +.sbsprite-campfire_talisman_9 { + background-position: -396px -594px +} + +.sbsprite-jaderald { + background-position: -418px -594px +} + +.sbsprite-campfire_talisman_6 { + background-position: -440px -594px +} + +.sbsprite-gold_thorn_head { + background-position: -462px -594px +} + +.sbsprite-campfire_talisman_7 { + background-position: -484px -594px +} + +.sbsprite-dark_bait { + background-position: -506px -594px +} + +.sbsprite-game_annihilator { + background-position: -528px -594px +} + +.sbsprite-purple_greater_backpack { + background-position: -550px -594px +} + +.sbsprite-bestiary_deep_caverns { + background-position: -572px -594px +} + +.sbsprite-foraging_5_portal { + background-position: -594px -594px +} + +.sbsprite-wolf_talisman { + background-position: -616px -594px +} + +.sbsprite-gold_professor_head { + background-position: -638px -594px +} + +.sbsprite-pet_skin_sheep_light_blue { + background-position: -660px -594px +} + +.sbsprite-ice_lolly_4 { + background-position: -682px -594px +} + +.sbsprite-basketball_10 { + background-position: -704px -594px +} + +.sbsprite-ice_lolly_3 { + background-position: -726px -594px +} + +.sbsprite-mineral_helmet { + background-position: -748px -594px +} + +.sbsprite-basketball_11 { + background-position: -770px -594px +} + +.sbsprite-ice_lolly_2 { + background-position: -792px -594px +} + +.sbsprite-basketball_12 { + background-position: -814px -594px +} + +.sbsprite-ice_lolly_1 { + background-position: -836px -594px +} + +.sbsprite-rock_candy { + background-position: -858px -594px +} + +.sbsprite-ice_lolly_8 { + background-position: -880px -594px +} + +.sbsprite-tarantula_generator_2 { + background-position: -902px -594px +} + +.sbsprite-ice_lolly_7 { + background-position: -924px -594px +} + +.sbsprite-tarantula_generator_1 { + background-position: -946px -594px +} + +.sbsprite-ice_lolly_6 { + background-position: -968px -594px +} + +.sbsprite-ice_lolly_5 { + background-position: -990px -594px +} + +.sbsprite-purple_egg { + background-position: -1012px -594px +} + +.sbsprite-ice_lolly_9 { + background-position: -1034px -594px +} + +.sbsprite-tarantula_generator_9 { + background-position: 0 -616px +} + +.sbsprite-tarantula_generator_8 { + background-position: -22px -616px +} + +.sbsprite-tarantula_generator_7 { + background-position: -44px -616px +} + +.sbsprite-tarantula_generator_6 { + background-position: -66px -616px +} + +.sbsprite-tarantula_generator_5 { + background-position: -88px -616px +} + +.sbsprite-tarantula_generator_4 { + background-position: -110px -616px +} + +.sbsprite-tarantula_generator_3 { + background-position: -132px -616px +} + +.sbsprite-hypixel_castle { + background-position: -154px -616px +} + +.sbsprite-rune_golden { + background-position: -176px -616px +} + +.sbsprite-wheat_generator_9 { + background-position: -198px -616px +} + +.sbsprite-ftx_3070 { + background-position: -220px -616px +} + +.sbsprite-wheat_generator_8 { + background-position: -242px -616px +} + +.sbsprite-wheat_generator_5 { + background-position: -264px -616px +} + +.sbsprite-wheat_generator_4 { + background-position: -286px -616px +} + +.sbsprite-builder_corn { + background-position: -308px -616px +} + +.sbsprite-cheap_coffee { + background-position: -330px -616px +} + +.sbsprite-wheat_generator_7 { + background-position: -352px -616px +} + +.sbsprite-wheat_generator_6 { + background-position: -374px -616px +} + +.sbsprite-mushroom_generator_11 { + background-position: -396px -616px +} + +.sbsprite-wheat_generator_1 { + background-position: -418px -616px +} + +.sbsprite-mushroom_generator_10 { + background-position: -440px -616px +} + +.sbsprite-ender_plus { + background-position: -462px -616px +} + +.sbsprite-wheat_generator_3 { + background-position: -484px -616px +} + +.sbsprite-wheat_generator_2 { + background-position: -506px -616px +} + +.sbsprite-voidling_generator_10 { + background-position: -528px -616px +} + +.sbsprite-voidling_generator_11 { + background-position: -550px -616px +} + +.sbsprite-mushroom_generator_12 { + background-position: -572px -616px +} + +.sbsprite-personal_bonus { + background-position: -594px -616px +} + +.sbsprite-flawless_amber_gem { + background-position: -616px -616px +} + +.sbsprite-rune_darkness_within { + background-position: -638px -616px +} + +.sbsprite-bag_of_cash { + background-position: -660px -616px +} + +.sbsprite-pet_skin_hound_beagle { + background-position: -682px -616px +} + +.sbsprite-pufferfish_hat { + background-position: -704px -616px +} + +.sbsprite-lime_greater_backpack { + background-position: -726px -616px +} + +.sbsprite-food_trough { + background-position: -748px -616px +} + +.sbsprite-pet_skin_yeti_grown_up { + background-position: -770px -616px +} + +.sbsprite-slime_generator_10 { + background-position: -792px -616px +} + +.sbsprite-undead_personality { + background-position: -814px -616px +} + +.sbsprite-slime_generator_11 { + background-position: -836px -616px +} + +.sbsprite-nether_wart_island { + background-position: -858px -616px +} + +.sbsprite-gravel_generator_5 { + background-position: -880px -616px +} + +.sbsprite-gravel_generator_4 { + background-position: -902px -616px +} + +.sbsprite-gravel_generator_7 { + background-position: -924px -616px +} + +.sbsprite-gravel_generator_6 { + background-position: -946px -616px +} + +.sbsprite-gravel_generator_9 { + background-position: -968px -616px +} + +.sbsprite-gravel_generator_8 { + background-position: -990px -616px +} + +.sbsprite-shiny_shard { + background-position: -1012px -616px +} + +.sbsprite-pet_skin_rabbit_rose { + background-position: -1034px -616px +} + +.sbsprite-quiver { + background-position: 0 -638px +} + +.sbsprite-rune_snake { + background-position: -22px -638px +} + +.sbsprite-bonzo_mask { + background-position: -44px -638px +} + +.sbsprite-fast_travel { + background-position: -66px -638px +} + +.sbsprite-treasurite { + background-position: -88px -638px +} + +.sbsprite-chicken_coop { + background-position: -110px -638px +} + +.sbsprite-end_portal_fumes_mixin { + background-position: -132px -638px +} + +.sbsprite-crafting_plus { + background-position: -154px -638px +} + +.sbsprite-gravel_generator_1 { + background-position: -176px -638px +} + +.sbsprite-gravel_generator_3 { + background-position: -198px -638px +} + +.sbsprite-gravel_generator_2 { + background-position: -220px -638px +} + +.sbsprite-easter_egg_11 { + background-position: -242px -638px +} + +.sbsprite-easter_egg_10 { + background-position: -264px -638px +} + +.sbsprite-protein_bar { + background-position: -286px -638px +} + +.sbsprite-hard_stone_generator_10 { + background-position: -308px -638px +} + +.sbsprite-coin_gold { + background-position: -330px -638px +} + +.sbsprite-light_blue_jumbo_backpack { + background-position: -352px -638px +} + +.sbsprite-hard_stone_generator_12 { + background-position: -374px -638px +} + +.sbsprite-hard_stone_generator_11 { + background-position: -396px -638px +} + +.sbsprite-rune_blood { + background-position: -418px -638px +} + +.sbsprite-raggedy_shark_tooth_necklace { + background-position: -440px -638px +} + +.sbsprite-pure_mithril { + background-position: -462px -638px +} + +.sbsprite-coin_emerald { + background-position: -484px -638px +} + +.sbsprite-pet_skin_black_cat_onyx { + background-position: -506px -638px +} + +.sbsprite-easter_egg_12 { + background-position: -528px -638px +} + +.sbsprite-emperor_head { + background-position: -550px -638px +} + +.sbsprite-power_wither_helmet { + background-position: -572px -638px +} + +.sbsprite-bee_11 { + background-position: -594px -638px +} + +.sbsprite-bee_10 { + background-position: -616px -638px +} + +.sbsprite-pet_skin_wolf { + background-position: -638px -638px +} + +.sbsprite-pumpkin_4 { + background-position: -660px -638px +} + +.sbsprite-pumpkin_3 { + background-position: -682px -638px +} + +.sbsprite-pumpkin_6 { + background-position: -704px -638px +} + +.sbsprite-fine_ruby_gem { + background-position: -726px -638px +} + +.sbsprite-pumpkin_5 { + background-position: -748px -638px +} + +.sbsprite-pumpkin_2 { + background-position: -770px -638px +} + +.sbsprite-electron_transmitter { + background-position: -792px -638px +} + +.sbsprite-pumpkin_1 { + background-position: -814px -638px +} + +.sbsprite-gingerbread_house { + background-position: -836px -638px +} + +.sbsprite-bee_1 { + background-position: -858px -638px +} + +.sbsprite-large_mining_sack { + background-position: -880px -638px +} + +.sbsprite-bee_2 { + background-position: -902px -638px +} + +.sbsprite-bee_3 { + background-position: -924px -638px +} + +.sbsprite-bee_4 { + background-position: -946px -638px +} + +.sbsprite-midas_jewel { + background-position: -968px -638px +} + +.sbsprite-unstable_dragon_helmet { + background-position: -990px -638px +} + +.sbsprite-vaccine_talisman { + background-position: -1012px -638px +} + +.sbsprite-whale_bait { + background-position: -1034px -638px +} + +.sbsprite-bee_9 { + background-position: 0 -660px +} + +.sbsprite-bee_5 { + background-position: -22px -660px +} + +.sbsprite-booster_cookie_box { + background-position: -44px -660px +} + +.sbsprite-perfect_topaz_gem { + background-position: -66px -660px +} + +.sbsprite-bee_6 { + background-position: -88px -660px +} + +.sbsprite-bee_7 { + background-position: -110px -660px +} + +.sbsprite-bee_8 { + background-position: -132px -660px +} + +.sbsprite-elvish_helmet { + background-position: -154px -660px +} + +.sbsprite-pumpkin_8 { + background-position: -176px -660px +} + +.sbsprite-light_grey_greater_backpack { + background-position: -198px -660px +} + +.sbsprite-pumpkin_7 { + background-position: -220px -660px +} + +.sbsprite-pumpkin_9 { + background-position: -242px -660px +} + +.sbsprite-best_weapon_rack { + background-position: -264px -660px +} + +.sbsprite-washed_up_souvenir { + background-position: -286px -660px +} + +.sbsprite-coin_diamond { + background-position: -308px -660px +} + +.sbsprite-builder_pink_berry { + background-position: -330px -660px +} + +.sbsprite-clownfish_personality { + background-position: -352px -660px +} + +.sbsprite-easter_egg_personality { + background-position: -374px -660px +} + +.sbsprite-jerry_talisman_green { + background-position: -396px -660px +} + +.sbsprite-spiked_atrocity { + background-position: -418px -660px +} + +.sbsprite-flower_generator_8 { + background-position: -440px -660px +} + +.sbsprite-flower_generator_9 { + background-position: -462px -660px +} + +.sbsprite-farmer_orb { + background-position: -484px -660px +} + +.sbsprite-flower_generator_4 { + background-position: -506px -660px +} + +.sbsprite-crypt_skull_key { + background-position: -528px -660px +} + +.sbsprite-flower_generator_5 { + background-position: -550px -660px +} + +.sbsprite-flower_generator_6 { + background-position: -572px -660px +} + +.sbsprite-flower_generator_7 { + background-position: -594px -660px +} + +.sbsprite-flower_generator_1 { + background-position: -616px -660px +} + +.sbsprite-flower_generator_2 { + background-position: -638px -660px +} + +.sbsprite-nutcracker { + background-position: -660px -660px +} + +.sbsprite-flower_generator_3 { + background-position: -682px -660px +} + +.sbsprite-scarf_studies { + background-position: -704px -660px +} + +.sbsprite-builder_apple { + background-position: -726px -660px +} + +.sbsprite-skyblock_table { + background-position: -748px -660px +} + +.sbsprite-sleeping_eye { + background-position: -770px -660px +} + +.sbsprite-spider_generator_1 { + background-position: -792px -660px +} + +.sbsprite-pet_skin_elephant_blue { + background-position: -814px -660px +} + +.sbsprite-spider_generator_2 { + background-position: -836px -660px +} + +.sbsprite-spider_generator_3 { + background-position: -858px -660px +} + +.sbsprite-shark_bait { + background-position: -880px -660px +} + +.sbsprite-spider_generator_4 { + background-position: -902px -660px +} + +.sbsprite-spider_generator_5 { + background-position: -924px -660px +} + +.sbsprite-black { + background-position: -946px -660px +} + +.sbsprite-sapphire_polished_drill_engine { + background-position: -968px -660px +} + +.sbsprite-cocoa_generator_1 { + background-position: -990px -660px +} + +.sbsprite-cocoa_generator_7 { + background-position: -1012px -660px +} + +.sbsprite-cocoa_generator_6 { + background-position: -1034px -660px +} + +.sbsprite-rune_snow { + background-position: 0 -682px +} + +.sbsprite-cocoa_generator_9 { + background-position: -22px -682px +} + +.sbsprite-cocoa_generator_8 { + background-position: -44px -682px +} + +.sbsprite-cocoa_generator_3 { + background-position: -66px -682px +} + +.sbsprite-cocoa_generator_2 { + background-position: -88px -682px +} + +.sbsprite-cocoa_generator_5 { + background-position: -110px -682px +} + +.sbsprite-cocoa_generator_4 { + background-position: -132px -682px +} + +.sbsprite-spider_generator_6 { + background-position: -154px -682px +} + +.sbsprite-spider_generator_7 { + background-position: -176px -682px +} + +.sbsprite-spider_generator_8 { + background-position: -198px -682px +} + +.sbsprite-spider_generator_9 { + background-position: -220px -682px +} + +.sbsprite-brown_large_backpack { + background-position: -242px -682px +} + +.sbsprite-flower_maelstrom { + background-position: -264px -682px +} + +.sbsprite-pumpkin_generator_12 { + background-position: -286px -682px +} + +.sbsprite-coal_generator_9 { + background-position: -308px -682px +} + +.sbsprite-diamond_thorn_head { + background-position: -330px -682px +} + +.sbsprite-ender_stone_generator_11 { + background-position: -352px -682px +} + +.sbsprite-coal_generator_8 { + background-position: -374px -682px +} + +.sbsprite-ender_stone_generator_10 { + background-position: -396px -682px +} + +.sbsprite-coal_generator_7 { + background-position: -418px -682px +} + +.sbsprite-jerry_box_blue { + background-position: -440px -682px +} + +.sbsprite-coal_generator_6 { + background-position: -462px -682px +} + +.sbsprite-coal_generator_5 { + background-position: -484px -682px +} + +.sbsprite-pumpkin_generator_11 { + background-position: -506px -682px +} + +.sbsprite-coal_generator_4 { + background-position: -528px -682px +} + +.sbsprite-pumpkin_generator_10 { + background-position: -550px -682px +} + +.sbsprite-talisman_of_space { + background-position: -572px -682px +} + +.sbsprite-talisman_enrichment_strength { + background-position: -594px -682px +} + +.sbsprite-white_jumbo_backpack { + background-position: -616px -682px +} + +.sbsprite-full_fairy_control { + background-position: -638px -682px +} + +.sbsprite-quartz_generator_9 { + background-position: -660px -682px +} + +.sbsprite-rune_wake { + background-position: -682px -682px +} + +.sbsprite-quartz_generator_8 { + background-position: -704px -682px +} + +.sbsprite-festive_jerry_personality { + background-position: -726px -682px +} + +.sbsprite-quartz_generator_5 { + background-position: -748px -682px +} + +.sbsprite-builder_berry { + background-position: -770px -682px +} + +.sbsprite-quartz_generator_4 { + background-position: -792px -682px +} + +.sbsprite-quartz_generator_7 { + background-position: -814px -682px +} + +.sbsprite-quartz_generator_6 { + background-position: -836px -682px +} + +.sbsprite-quartz_generator_1 { + background-position: -858px -682px +} + +.sbsprite-quartz_generator_3 { + background-position: -880px -682px +} + +.sbsprite-quartz_generator_2 { + background-position: -902px -682px +} + +.sbsprite-bingo_heirloom { + background-position: -924px -682px +} + +.sbsprite-dwarf_turtle_shelmet { + background-position: -946px -682px +} + +.sbsprite-wolf_paw { + background-position: -968px -682px +} + +.sbsprite-jasper_crystal { + background-position: -990px -682px +} + +.sbsprite-party_hat_crab { + background-position: -1012px -682px +} + +.sbsprite-feather_artifact { + background-position: -1034px -682px +} + +.sbsprite-coal_generator_3 { + background-position: 0 -704px +} + +.sbsprite-coal_generator_2 { + background-position: -22px -704px +} + +.sbsprite-coal_generator_1 { + background-position: -44px -704px +} + +.sbsprite-fast_travel_gold { + background-position: -66px -704px +} + +.sbsprite-crystal_hollows_crystals { + background-position: -88px -704px +} + +.sbsprite-mining_island { + background-position: -110px -704px +} + +.sbsprite-flawless_jasper_gem { + background-position: -132px -704px +} + +.sbsprite-halloween_candles { + background-position: -154px -704px +} + +.sbsprite-ascension_rope { + background-position: -176px -704px +} + +.sbsprite-brown_small_backpack { + background-position: -198px -704px +} + +.sbsprite-diver_puffer { + background-position: -220px -704px +} + +.sbsprite-melon_generator_10 { + background-position: -242px -704px +} + +.sbsprite-melon_generator_12 { + background-position: -264px -704px +} + +.sbsprite-melon_generator_11 { + background-position: -286px -704px +} + +.sbsprite-desert_island { + background-position: -308px -704px +} + +.sbsprite-green { + background-position: -330px -704px +} + +.sbsprite-crystallized_heart { + background-position: -352px -704px +} + +.sbsprite-sinful_dice { + background-position: -374px -704px +} + +.sbsprite-soulflow_supercell { + background-position: -396px -704px +} + +.sbsprite-sea_creature_artifact { + background-position: -418px -704px +} + +.sbsprite-grey_small_backpack { + background-position: -440px -704px +} + +.sbsprite-aatrox_batphone { + background-position: -462px -704px +} + +.sbsprite-clay_generator_10 { + background-position: -484px -704px +} + +.sbsprite-clay_generator_11 { + background-position: -506px -704px +} + +.sbsprite-end_stone_personality { + background-position: -528px -704px +} + +.sbsprite-builder_banana_bunch { + background-position: -550px -704px +} + +.sbsprite-danger_2_portal { + background-position: -572px -704px +} + +.sbsprite-mayor_scorpius { + background-position: -594px -704px +} + +.sbsprite-voodoo { + background-position: -616px -704px +} + +.sbsprite-jerry_box_purple { + background-position: -638px -704px +} + +.sbsprite-wither_artifact { + background-position: -660px -704px +} + +.sbsprite-skull_chest { + background-position: -682px -704px +} + +.sbsprite-pet_skin_elephant_pink { + background-position: -704px -704px +} + +.sbsprite-oak_generator_10 { + background-position: -726px -704px +} + +.sbsprite-slime_generator_1 { + background-position: -748px -704px +} + +.sbsprite-slime_generator_2 { + background-position: -770px -704px +} + +.sbsprite-frozen_blaze_icicle { + background-position: -792px -704px +} + +.sbsprite-oak_generator_11 { + background-position: -814px -704px +} + +.sbsprite-slime_generator_5 { + background-position: -836px -704px +} + +.sbsprite-slime_generator_6 { + background-position: -858px -704px +} + +.sbsprite-slime_generator_3 { + background-position: -880px -704px +} + +.sbsprite-slime_generator_4 { + background-position: -902px -704px +} + +.sbsprite-slime_generator_9 { + background-position: -924px -704px +} + +.sbsprite-slime_generator_7 { + background-position: -946px -704px +} + +.sbsprite-slime_generator_8 { + background-position: -968px -704px +} + +.sbsprite-dungeon_golden_key { + background-position: -990px -704px +} + +.sbsprite-mender_fedora { + background-position: -1012px -704px +} + +.sbsprite-pet_skin_rock_smile { + background-position: -1034px -704px +} + +.sbsprite-builder_orange { + background-position: 0 -726px +} + +.sbsprite-ghast_generator_10 { + background-position: -22px -726px +} + +.sbsprite-beach_chair { + background-position: -44px -726px +} + +.sbsprite-ghast_generator_11 { + background-position: -66px -726px +} + +.sbsprite-boss { + background-position: -88px -726px +} + +.sbsprite-race_precursor_ruins { + background-position: -110px -726px +} + +.sbsprite-perfectly_cut_fuel_tank { + background-position: -132px -726px +} + +.sbsprite-ice_essence { + background-position: -154px -726px +} + +.sbsprite-jerry_box_green { + background-position: -176px -726px +} + +.sbsprite-fireplace { + background-position: -198px -726px +} + +.sbsprite-moldy_bread { + background-position: -220px -726px +} + +.sbsprite-pet_skin_tiger_saber_tooth { + background-position: -242px -726px +} + +.sbsprite-obsidian_generator_5 { + background-position: -264px -726px +} + +.sbsprite-obsidian_generator_4 { + background-position: -286px -726px +} + +.sbsprite-obsidian_generator_7 { + background-position: -308px -726px +} + +.sbsprite-obsidian_generator_6 { + background-position: -330px -726px +} + +.sbsprite-obsidian_generator_1 { + background-position: -352px -726px +} + +.sbsprite-obsidian_generator_3 { + background-position: -374px -726px +} + +.sbsprite-foraging_1_portal { + background-position: -396px -726px +} + +.sbsprite-obsidian_generator_2 { + background-position: -418px -726px +} + +.sbsprite-dungeon_stone_tank { + background-position: -440px -726px +} + +.sbsprite-obsidian_generator_9 { + background-position: -462px -726px +} + +.sbsprite-obsidian_generator_8 { + background-position: -484px -726px +} + +.sbsprite-pet_skin_sheep_light_green { + background-position: -506px -726px +} + +.sbsprite-decayed_bat { + background-position: -528px -726px +} + +.sbsprite-pet_skin_squid_glow { + background-position: -550px -726px +} + +.sbsprite-potato_generator_4 { + background-position: -572px -726px +} + +.sbsprite-potato_generator_5 { + background-position: -594px -726px +} + +.sbsprite-potato_generator_12 { + background-position: -616px -726px +} + +.sbsprite-potato_generator_6 { + background-position: -638px -726px +} + +.sbsprite-potato_generator_11 { + background-position: -660px -726px +} + +.sbsprite-potato_generator_7 { + background-position: -682px -726px +} + +.sbsprite-potato_generator_10 { + background-position: -704px -726px +} + +.sbsprite-potato_generator_8 { + background-position: -726px -726px +} + +.sbsprite-potato_generator_9 { + background-position: -748px -726px +} + +.sbsprite-slayer_energy_drink { + background-position: -770px -726px +} + +.sbsprite-arachne_keeper_fragment { + background-position: -792px -726px +} + +.sbsprite-cat_talisman { + background-position: -814px -726px +} + +.sbsprite-large_slayer_sack { + background-position: -836px -726px +} + +.sbsprite-rune_rainbow { + background-position: -858px -726px +} + +.sbsprite-potato_generator_1 { + background-position: -880px -726px +} + +.sbsprite-potato_generator_2 { + background-position: -902px -726px +} + +.sbsprite-potato_generator_3 { + background-position: -924px -726px +} + +.sbsprite-lime_large_backpack { + background-position: -946px -726px +} + +.sbsprite-bestiary_spiders_den { + background-position: -968px -726px +} + +.sbsprite-ruby_polished_drill_engine { + background-position: -990px -726px +} + +.sbsprite-yellow_jumbo_backpack { + background-position: -1012px -726px +} + +.sbsprite-pet_skin_dolphin_snubnose { + background-position: -1034px -726px +} + +.sbsprite-spider_egg_mixin { + background-position: 0 -748px +} + +.sbsprite-pet_skin_dragon_pastel { + background-position: -22px -748px +} + +.sbsprite-honed_shark_tooth_necklace { + background-position: -44px -748px +} + +.sbsprite-bob_omb { + background-position: -66px -748px +} + +.sbsprite-dungeon_wizard_crystal { + background-position: -88px -748px +} + +.sbsprite-barn_island { + background-position: -110px -748px +} + +.sbsprite-weapon_rack { + background-position: -132px -748px +} + +.sbsprite-shadow_assassin_crimson { + background-position: -154px -748px +} + +.sbsprite-small_talisman_bag { + background-position: -176px -748px +} + +.sbsprite-medium_combat_sack { + background-position: -198px -748px +} + +.sbsprite-bonzo_statue { + background-position: -220px -748px +} + +.sbsprite-zombie_artifact { + background-position: -242px -748px +} + +.sbsprite-cheese_hunter { + background-position: -264px -748px +} + +.sbsprite-hologram { + background-position: -286px -748px +} + +.sbsprite-ultrasequencer { + background-position: -308px -748px +} + +.sbsprite-wise_dragon_helmet { + background-position: -330px -748px +} + +.sbsprite-cyan_medium_backpack { + background-position: -352px -748px +} + +.sbsprite-light_grey_small_backpack { + background-position: -374px -748px +} + +.sbsprite-catacombs_pass_5 { + background-position: -396px -748px +} + +.sbsprite-catacombs_pass_4 { + background-position: -418px -748px +} + +.sbsprite-catacombs_pass_3 { + background-position: -440px -748px +} + +.sbsprite-magma_bucket_upgrade { + background-position: -462px -748px +} + +.sbsprite-catacombs_pass_2 { + background-position: -484px -748px +} + +.sbsprite-coin_redstone { + background-position: -506px -748px +} + +.sbsprite-catacombs_pass_1 { + background-position: -528px -748px +} + +.sbsprite-hermit_crab_10 { + background-position: -550px -748px +} + +.sbsprite-catacombs_pass_0 { + background-position: -572px -748px +} + +.sbsprite-hermit_crab_11 { + background-position: -594px -748px +} + +.sbsprite-dungeon_stone_mage { + background-position: -616px -748px +} + +.sbsprite-gingerbread_personality { + background-position: -638px -748px +} + +.sbsprite-titanium_drill_engine { + background-position: -660px -748px +} + +.sbsprite-catacombs_pass_9 { + background-position: -682px -748px +} + +.sbsprite-fast_travel_dragontail { + background-position: -704px -748px +} + +.sbsprite-catacombs_pass_8 { + background-position: -726px -748px +} + +.sbsprite-catacombs_pass_7 { + background-position: -748px -748px +} + +.sbsprite-reaper_spirit { + background-position: -770px -748px +} + +.sbsprite-catacombs_pass_6 { + background-position: -792px -748px +} + +.sbsprite-armor_of_the_resistance_helmet { + background-position: -814px -748px +} + +.sbsprite-orange_small_backpack { + background-position: -836px -748px +} + +.sbsprite-bait_ring { + background-position: -858px -748px +} + +.sbsprite-luck_talisman { + background-position: -880px -748px +} + +.sbsprite-beach_ball_11 { + background-position: -902px -748px +} + +.sbsprite-beach_ball_10 { + background-position: -924px -748px +} + +.sbsprite-shark_personality { + background-position: -946px -748px +} + +.sbsprite-coal_generator_11 { + background-position: -968px -748px +} + +.sbsprite-coal_generator_12 { + background-position: -990px -748px +} + +.sbsprite-fourth_master_star { + background-position: -1012px -748px +} + +.sbsprite-water_hydra_head { + background-position: -1034px -748px +} + +.sbsprite-coal_generator_10 { + background-position: 0 -770px +} + +.sbsprite-ice_dinner_table { + background-position: -22px -770px +} + +.sbsprite-talisman_enrichment_attack_speed { + background-position: -44px -770px +} + +.sbsprite-gemstone_fuel_tank { + background-position: -66px -770px +} + +.sbsprite-green_large_backpack { + background-position: -88px -770px +} + +.sbsprite-fairy_wings_charm { + background-position: -110px -770px +} + +.sbsprite-rare_diamond { + background-position: -132px -770px +} + +.sbsprite-bunny { + background-position: -154px -770px +} + +.sbsprite-storm_the_fish { + background-position: -176px -770px +} + +.sbsprite-penguin_personality { + background-position: -198px -770px +} + +.sbsprite-shark_1 { + background-position: -220px -770px +} + +.sbsprite-shard_of_the_shredded { + background-position: -242px -770px +} + +.sbsprite-shark_2 { + background-position: -264px -770px +} + +.sbsprite-sheep_generator_11 { + background-position: -286px -770px +} + +.sbsprite-diamonite { + background-position: -308px -770px +} + +.sbsprite-prehistoric_egg { + background-position: -330px -770px +} + +.sbsprite-shark_3 { + background-position: -352px -770px +} + +.sbsprite-sheep_generator_12 { + background-position: -374px -770px +} + +.sbsprite-shark_4 { + background-position: -396px -770px +} + +.sbsprite-shark_5 { + background-position: -418px -770px +} + +.sbsprite-shark_6 { + background-position: -440px -770px +} + +.sbsprite-shark_7 { + background-position: -462px -770px +} + +.sbsprite-shark_8 { + background-position: -484px -770px +} + +.sbsprite-shark_9 { + background-position: -506px -770px +} + +.sbsprite-bbq { + background-position: -528px -770px +} + +.sbsprite-pet_skin_sheep_white { + background-position: -550px -770px +} + +.sbsprite-sheep_generator_10 { + background-position: -572px -770px +} + +.sbsprite-rune_spirit { + background-position: -594px -770px +} + +.sbsprite-aote_stone { + background-position: -616px -770px +} + +.sbsprite-french_bread { + background-position: -638px -770px +} + +.sbsprite-ember_helmet { + background-position: -660px -770px +} + +.sbsprite-large_bed { + background-position: -682px -770px +} + +.sbsprite-builder_bush { + background-position: -704px -770px +} + +.sbsprite-talisman_enrichment_ferocity { + background-position: -726px -770px +} + +.sbsprite-fire_talisman { + background-position: -748px -770px +} + +.sbsprite-purple_candy { + background-position: -770px -770px +} + +.sbsprite-spider_talisman { + background-position: -792px -770px +} + +.sbsprite-intimidation_artifact { + background-position: -814px -770px +} + +.sbsprite-large_candy_sack { + background-position: -836px -770px +} + +.sbsprite-present_10 { + background-position: -858px -770px +} + +.sbsprite-present_11 { + background-position: -880px -770px +} + +.sbsprite-beach_ball_9 { + background-position: -902px -770px +} + +.sbsprite-tarantula_generator_10 { + background-position: -924px -770px +} + +.sbsprite-beach_ball_8 { + background-position: -946px -770px +} + +.sbsprite-gold_sadan_head { + background-position: -968px -770px +} + +.sbsprite-tarantula_generator_11 { + background-position: -990px -770px +} + +.sbsprite-large_enchanted_foraging_sack { + background-position: -1012px -770px +} + +.sbsprite-warrior_dungeon_ability_1 { + background-position: -1034px -770px +} + +.sbsprite-beach_ball_5 { + background-position: 0 -792px +} + +.sbsprite-beach_ball_4 { + background-position: -22px -792px +} + +.sbsprite-beach_ball_7 { + background-position: -44px -792px +} + +.sbsprite-cracked_piggy_bank { + background-position: -66px -792px +} + +.sbsprite-beach_ball_6 { + background-position: -88px -792px +} + +.sbsprite-ice_lolly_11 { + background-position: -110px -792px +} + +.sbsprite-ice_lolly_10 { + background-position: -132px -792px +} + +.sbsprite-razor_sharp_shark_tooth_necklace { + background-position: -154px -792px +} + +.sbsprite-farm_crystal { + background-position: -176px -792px +} + +.sbsprite-bank_upgrade_luxurious { + background-position: -198px -792px +} + +.sbsprite-large_fishing_sack { + background-position: -220px -792px +} + +.sbsprite-lime_small_backpack { + background-position: -242px -792px +} + +.sbsprite-portable_wool_weaver { + background-position: -264px -792px +} + +.sbsprite-beach_ball_1 { + background-position: -286px -792px +} + +.sbsprite-beach_ball_3 { + background-position: -308px -792px +} + +.sbsprite-beach_ball_2 { + background-position: -330px -792px +} + +.sbsprite-revive_stone_orb { + background-position: -352px -792px +} + +.sbsprite-fish_hat { + background-position: -374px -792px +} + +.sbsprite-skull_personality { + background-position: -396px -792px +} + +.sbsprite-builder_onion { + background-position: -418px -792px +} + +.sbsprite-melon_generator_3 { + background-position: -440px -792px +} + +.sbsprite-zombie_generator_9 { + background-position: -462px -792px +} + +.sbsprite-melon_generator_2 { + background-position: -484px -792px +} + +.sbsprite-melon_generator_1 { + background-position: -506px -792px +} + +.sbsprite-melon_generator_7 { + background-position: -528px -792px +} + +.sbsprite-zombie_generator_5 { + background-position: -550px -792px +} + +.sbsprite-melon_generator_6 { + background-position: -572px -792px +} + +.sbsprite-zombie_generator_6 { + background-position: -594px -792px +} + +.sbsprite-melon_generator_5 { + background-position: -616px -792px +} + +.sbsprite-zombie_generator_7 { + background-position: -638px -792px +} + +.sbsprite-melon_generator_4 { + background-position: -660px -792px +} + +.sbsprite-zombie_generator_8 { + background-position: -682px -792px +} + +.sbsprite-zombie_generator_1 { + background-position: -704px -792px +} + +.sbsprite-zombie_generator_2 { + background-position: -726px -792px +} + +.sbsprite-optical_lens { + background-position: -748px -792px +} + +.sbsprite-zombie_generator_3 { + background-position: -770px -792px +} + +.sbsprite-zombie_generator_4 { + background-position: -792px -792px +} + +.sbsprite-beach_umbrella { + background-position: -814px -792px +} + +.sbsprite-diamond_atom { + background-position: -836px -792px +} + +.sbsprite-coin_talisman { + background-position: -858px -792px +} + +.sbsprite-nether_island { + background-position: -880px -792px +} + +.sbsprite-rune_couture { + background-position: -902px -792px +} + +.sbsprite-fish_affinity_talisman { + background-position: -924px -792px +} + +.sbsprite-wedding_ring_4 { + background-position: -946px -792px +} + +.sbsprite-wedding_ring_5 { + background-position: -968px -792px +} + +.sbsprite-wedding_ring_6 { + background-position: -990px -792px +} + +.sbsprite-wedding_ring_7 { + background-position: -1012px -792px +} + +.sbsprite-wedding_ring_8 { + background-position: -1034px -792px +} + +.sbsprite-large_enchanted_combat_sack { + background-position: 0 -814px +} + +.sbsprite-wedding_ring_9 { + background-position: -22px -814px +} + +.sbsprite-rune_clouds { + background-position: -44px -814px +} + +.sbsprite-perfect_amber_gem { + background-position: -66px -814px +} + +.sbsprite-precursor_gear { + background-position: -88px -814px +} + +.sbsprite-wedding_ring_2 { + background-position: -110px -814px +} + +.sbsprite-wedding_ring_3 { + background-position: -132px -814px +} + +.sbsprite-rune_enchant { + background-position: -154px -814px +} + +.sbsprite-god_potion { + background-position: -176px -814px +} + +.sbsprite-rune_magical { + background-position: -198px -814px +} + +.sbsprite-pet_skin_monkey_golden { + background-position: -220px -814px +} + +.sbsprite-spiked_bait { + background-position: -242px -814px +} + +.sbsprite-ghost_11 { + background-position: -264px -814px +} + +.sbsprite-perfect_jasper_gem { + background-position: -286px -814px +} + +.sbsprite-quartz_generator_11 { + background-position: -308px -814px +} + +.sbsprite-sandcastle_1 { + background-position: -330px -814px +} + +.sbsprite-sandcastle_2 { + background-position: -352px -814px +} + +.sbsprite-pet_skin_sheep_pink { + background-position: -374px -814px +} + +.sbsprite-premium_flesh { + background-position: -396px -814px +} + +.sbsprite-sandcastle_5 { + background-position: -418px -814px +} + +.sbsprite-blessed_bait { + background-position: -440px -814px +} + +.sbsprite-sandcastle_6 { + background-position: -462px -814px +} + +.sbsprite-sandcastle_3 { + background-position: -484px -814px +} + +.sbsprite-sandcastle_4 { + background-position: -506px -814px +} + +.sbsprite-wise_wither_helmet { + background-position: -528px -814px +} + +.sbsprite-sandcastle_9 { + background-position: -550px -814px +} + +.sbsprite-quartz_generator_10 { + background-position: -572px -814px +} + +.sbsprite-sandcastle_7 { + background-position: -594px -814px +} + +.sbsprite-sandcastle_8 { + background-position: -616px -814px +} + +.sbsprite-mayor_cole { + background-position: -638px -814px +} + +.sbsprite-fifth_master_star { + background-position: -660px -814px +} + +.sbsprite-ghost_10 { + background-position: -682px -814px +} + +.sbsprite-young_shimmer { + background-position: -704px -814px +} + +.sbsprite-minion_chair { + background-position: -726px -814px +} + +.sbsprite-pig_mask { + background-position: -748px -814px +} + +.sbsprite-hyper_catalyst_upgrade { + background-position: -770px -814px +} + +.sbsprite-potion { + background-position: -792px -814px +} + +.sbsprite-exceedingly_rare_ender_artifact_upgrader { + background-position: -814px -814px +} + +.sbsprite-refined_titanium { + background-position: -836px -814px +} + +.sbsprite-sharp_shark_tooth_necklace { + background-position: -858px -814px +} + +.sbsprite-wreath { + background-position: -880px -814px +} + +.sbsprite-melon_generator_9 { + background-position: -902px -814px +} + +.sbsprite-melon_generator_8 { + background-position: -924px -814px +} + +.sbsprite-epoch_cake_pink { + background-position: -946px -814px +} + +.sbsprite-dungeon_stone_healer { + background-position: -968px -814px +} + +.sbsprite-young_baby { + background-position: -990px -814px +} + +.sbsprite-presents { + background-position: -1012px -814px +} + +.sbsprite-dark_oak_generator_5 { + background-position: -1034px -814px +} + +.sbsprite-dark_oak_generator_6 { + background-position: 0 -836px +} + +.sbsprite-large_enchanted_fishing_sack { + background-position: -22px -836px +} + +.sbsprite-radiant_power_orb { + background-position: -44px -836px +} + +.sbsprite-dark_oak_generator_3 { + background-position: -66px -836px +} + +.sbsprite-large_husbandry_sack { + background-position: -88px -836px +} + +.sbsprite-dark_oak_generator_4 { + background-position: -110px -836px +} + +.sbsprite-dark_oak_generator_9 { + background-position: -132px -836px +} + +.sbsprite-dark_oak_generator_7 { + background-position: -154px -836px +} + +.sbsprite-dark_oak_generator_8 { + background-position: -176px -836px +} + +.sbsprite-dark_oak_generator_1 { + background-position: -198px -836px +} + +.sbsprite-dark_oak_generator_2 { + background-position: -220px -836px +} + +.sbsprite-illusion_glass { + background-position: -242px -836px +} + +.sbsprite-iron_chest { + background-position: -264px -836px +} + +.sbsprite-festive_zombie_personality { + background-position: -286px -836px +} + +.sbsprite-frozen_blaze_helmet { + background-position: -308px -836px +} + +.sbsprite-fast_travel_nest { + background-position: -330px -836px +} + +.sbsprite-brown_greater_backpack { + background-position: -352px -836px +} + +.sbsprite-red_gift { + background-position: -374px -836px +} + +.sbsprite-builder_lemon { + background-position: -396px -836px +} + +.sbsprite-rune_hot { + background-position: -418px -836px +} + +.sbsprite-small_mining_sack { + background-position: -440px -836px +} + +.sbsprite-pet_skin_jerry_green_elf { + background-position: -462px -836px +} + +.sbsprite-amber_polished_drill_engine { + background-position: -484px -836px +} + +.sbsprite-pedestal { + background-position: -506px -836px +} + +.sbsprite-red_claw_artifact { + background-position: -528px -836px +} + +.sbsprite-zombie_generator_11 { + background-position: -550px -836px +} + +.sbsprite-zombie_generator_10 { + background-position: -572px -836px +} + +.sbsprite-wither_relic { + background-position: -594px -836px +} + +.sbsprite-spider_hat { + background-position: -616px -836px +} + +.sbsprite-sludge_juice { + background-position: -638px -836px +} + +.sbsprite-precursor_eye { + background-position: -660px -836px +} + +.sbsprite-fast_travel_scarleton { + background-position: -682px -836px +} + +.sbsprite-connect_four { + background-position: -704px -836px +} + +.sbsprite-sloth_3 { + background-position: -726px -836px +} + +.sbsprite-sloth_4 { + background-position: -748px -836px +} + +.sbsprite-pet_skin_enderman { + background-position: -770px -836px +} + +.sbsprite-sloth_1 { + background-position: -792px -836px +} + +.sbsprite-sloth_2 { + background-position: -814px -836px +} + +.sbsprite-rabbit_generator_9 { + background-position: -836px -836px +} + +.sbsprite-builder_chesto_berry { + background-position: -858px -836px +} + +.sbsprite-rabbit_generator_4 { + background-position: -880px -836px +} + +.sbsprite-sloth_7 { + background-position: -902px -836px +} + +.sbsprite-rabbit_generator_3 { + background-position: -924px -836px +} + +.sbsprite-sloth_8 { + background-position: -946px -836px +} + +.sbsprite-rabbit_generator_2 { + background-position: -968px -836px +} + +.sbsprite-sloth_5 { + background-position: -990px -836px +} + +.sbsprite-rabbit_generator_1 { + background-position: -1012px -836px +} + +.sbsprite-sloth_6 { + background-position: -1034px -836px +} + +.sbsprite-rabbit_generator_8 { + background-position: 0 -858px +} + +.sbsprite-lantern { + background-position: -22px -858px +} + +.sbsprite-rabbit_generator_7 { + background-position: -44px -858px +} + +.sbsprite-rabbit_generator_6 { + background-position: -66px -858px +} + +.sbsprite-sloth_9 { + background-position: -88px -858px +} + +.sbsprite-rabbit_generator_5 { + background-position: -110px -858px +} + +.sbsprite-clownfish_8 { + background-position: -132px -858px +} + +.sbsprite-clownfish_9 { + background-position: -154px -858px +} + +.sbsprite-clownfish_6 { + background-position: -176px -858px +} + +.sbsprite-clownfish_7 { + background-position: -198px -858px +} + +.sbsprite-clownfish_4 { + background-position: -220px -858px +} + +.sbsprite-clownfish_5 { + background-position: -242px -858px +} + +.sbsprite-mender_helmet { + background-position: -264px -858px +} + +.sbsprite-clownfish_2 { + background-position: -286px -858px +} + +.sbsprite-clownfish_3 { + background-position: -308px -858px +} + +.sbsprite-enderman_hat { + background-position: -330px -858px +} + +.sbsprite-superior_dragon_helmet { + background-position: -352px -858px +} + +.sbsprite-clownfish_1 { + background-position: -374px -858px +} + +.sbsprite-reset_heart_of_the_mountain { + background-position: -396px -858px +} + +.sbsprite-lapis_crystal { + background-position: -418px -858px +} + +.sbsprite-purple_jumbo_backpack { + background-position: -440px -858px +} + +.sbsprite-purple_large_backpack { + background-position: -462px -858px +} + +.sbsprite-dragon_claw { + background-position: -484px -858px +} + +.sbsprite-potato_talisman { + background-position: -506px -858px +} + +.sbsprite-nether_warts_generator_12 { + background-position: -528px -858px +} + +.sbsprite-nether_warts_generator_11 { + background-position: -550px -858px +} + +.sbsprite-nether_warts_generator_10 { + background-position: -572px -858px +} + +.sbsprite-yellow_medium_backpack { + background-position: -594px -858px +} + +.sbsprite-acacia_generator_9 { + background-position: -616px -858px +} + +.sbsprite-arachne_crystal { + background-position: -638px -858px +} + +.sbsprite-acacia_generator_8 { + background-position: -660px -858px +} + +.sbsprite-acacia_generator_7 { + background-position: -682px -858px +} + +.sbsprite-helix { + background-position: -704px -858px +} + +.sbsprite-acacia_generator_6 { + background-position: -726px -858px +} + +.sbsprite-mutant_nether_stalk { + background-position: -748px -858px +} + +.sbsprite-acacia_generator_5 { + background-position: -770px -858px +} + +.sbsprite-acacia_generator_4 { + background-position: -792px -858px +} + +.sbsprite-acacia_generator_3 { + background-position: -814px -858px +} + +.sbsprite-acacia_generator_2 { + background-position: -836px -858px +} + +.sbsprite-acacia_generator_1 { + background-position: -858px -858px +} + +.sbsprite-orange_greater_backpack { + background-position: -880px -858px +} + +.sbsprite-boss_collection_professor { + background-position: -902px -858px +} + +.sbsprite-soulflow_engine { + background-position: -924px -858px +} + +.sbsprite-armor_showcase { + background-position: -946px -858px +} + +.sbsprite-gingerbread_2 { + background-position: -968px -858px +} + +.sbsprite-gingerbread_1 { + background-position: -990px -858px +} + +.sbsprite-gingerbread_6 { + background-position: -1012px -858px +} + +.sbsprite-gingerbread_5 { + background-position: -1034px -858px +} + +.sbsprite-gingerbread_4 { + background-position: 0 -880px +} + +.sbsprite-small_backpack { + background-position: -22px -880px +} + +.sbsprite-gingerbread_3 { + background-position: -44px -880px +} + +.sbsprite-gingerbread_9 { + background-position: -66px -880px +} + +.sbsprite-gingerbread_8 { + background-position: -88px -880px +} + +.sbsprite-gingerbread_7 { + background-position: -110px -880px +} + +.sbsprite-small_fishing_sack { + background-position: -132px -880px +} + +.sbsprite-fast_travel_castle { + background-position: -154px -880px +} + +.sbsprite-glacite_jewel { + background-position: -176px -880px +} + +.sbsprite-medium_agronomy_sack { + background-position: -198px -880px +} + +.sbsprite-mining_fortune { + background-position: -220px -880px +} + +.sbsprite-pet_item_spooky_cupcake { + background-position: -242px -880px +} + +.sbsprite-red_medium_backpack { + background-position: -264px -880px +} + +.sbsprite-third_master_star { + background-position: -286px -880px +} + +.sbsprite-pet_skin_phoenix_ice { + background-position: -308px -880px +} + +.sbsprite-golem_hat { + background-position: -330px -880px +} + +.sbsprite-ghost_personality { + background-position: -352px -880px +} + +.sbsprite-epoch_cake_yellow { + background-position: -374px -880px +} + +.sbsprite-creeper_generator_11 { + background-position: -396px -880px +} + +.sbsprite-creeper_generator_10 { + background-position: -418px -880px +} + +.sbsprite-magenta_medium_backpack { + background-position: -440px -880px +} + +.sbsprite-pet_skin_elephant_green { + background-position: -462px -880px +} + +.sbsprite-soulflow_pile { + background-position: -484px -880px +} + +.sbsprite-pumpkin_personality { + background-position: -506px -880px +} + +.sbsprite-small_slayer_sack { + background-position: -528px -880px +} + +.sbsprite-poisoned_candle { + background-position: -550px -880px +} + +.sbsprite-bestiary_crimson_isle { + background-position: -572px -880px +} + +.sbsprite-ring_potion_affinity { + background-position: -594px -880px +} + +.sbsprite-rock_gemstone { + background-position: -616px -880px +} + +.sbsprite-blood_god_crest { + background-position: -638px -880px +} + +.sbsprite-judgement_core { + background-position: -660px -880px +} + +.sbsprite-rune_tidal { + background-position: -682px -880px +} + +.sbsprite-lava_talisman { + background-position: -704px -880px +} + +.sbsprite-revived_heart { + background-position: -726px -880px +} + +.sbsprite-killer_personality { + background-position: -748px -880px +} + +.sbsprite-snow_suit_helmet { + background-position: -770px -880px +} + +.sbsprite-blobfish_hat { + background-position: -792px -880px +} + +.sbsprite-stool { + background-position: -814px -880px +} + +.sbsprite-builder_blue_corn { + background-position: -836px -880px +} + +.sbsprite-pulpous_orange_juice { + background-position: -858px -880px +} + +.sbsprite-fast_travel_drag { + background-position: -880px -880px +} + +.sbsprite-tank_dungeon_ability_2 { + background-position: -902px -880px +} + +.sbsprite-tank_dungeon_ability_1 { + background-position: -924px -880px +} + +.sbsprite-treasure_talisman { + background-position: -946px -880px +} + +.sbsprite-bookcase { + background-position: -968px -880px +} + +.sbsprite-skeletor_helmet { + background-position: -990px -880px +} + +.sbsprite-unstable_baby { + background-position: -1012px -880px +} + +.sbsprite-large_combat_sack { + background-position: -1034px -880px +} + +.sbsprite-minos_relic { + background-position: 0 -902px +} + +.sbsprite-pet_item_bubblegum { + background-position: -22px -902px +} + +.sbsprite-small_xtree { + background-position: -44px -902px +} + +.sbsprite-epoch_cake_aqua { + background-position: -66px -902px +} + +.sbsprite-wither_blood { + background-position: -88px -902px +} + +.sbsprite-egg_hunt { + background-position: -110px -902px +} + +.sbsprite-rune_fire_spiral { + background-position: -132px -902px +} + +.sbsprite-wither_goggles { + background-position: -154px -902px +} + +.sbsprite-egg_stack { + background-position: -176px -902px +} + +.sbsprite-mummy_candle { + background-position: -198px -902px +} + +.sbsprite-enchanted_book_bundle_big_brain { + background-position: -220px -902px +} + +.sbsprite-builder_beetroot { + background-position: -242px -902px +} + +.sbsprite-rabbit_generator_11 { + background-position: -264px -902px +} + +.sbsprite-rabbit_generator_10 { + background-position: -286px -902px +} + +.sbsprite-rabbit_generator_12 { + background-position: -308px -902px +} + +.sbsprite-rotten_apple { + background-position: -330px -902px +} + +.sbsprite-etherwarp_merger { + background-position: -352px -902px +} + +.sbsprite-redstone_generator_11 { + background-position: -374px -902px +} + +.sbsprite-redstone_generator_10 { + background-position: -396px -902px +} + +.sbsprite-protector_baby { + background-position: -418px -902px +} + +.sbsprite-fast_travel_deep { + background-position: -440px -902px +} + +.sbsprite-polished_pumpkin { + background-position: -462px -902px +} + +.sbsprite-redstone_generator_12 { + background-position: -484px -902px +} + +.sbsprite-tic_tac_toe { + background-position: -506px -902px +} + +.sbsprite-foraging_2_portal { + background-position: -528px -902px +} + +.sbsprite-recombobulator_3000 { + background-position: -550px -902px +} + +.sbsprite-sand_generator_7 { + background-position: -572px -902px +} + +.sbsprite-sand_generator_8 { + background-position: -594px -902px +} + +.sbsprite-sand_generator_9 { + background-position: -616px -902px +} + +.sbsprite-scarecrow_personality { + background-position: -638px -902px +} + +.sbsprite-pet_skin_sheep_aqua { + background-position: -660px -902px +} + +.sbsprite-skull_10 { + background-position: -682px -902px +} + +.sbsprite-melon_personality { + background-position: -704px -902px +} + +.sbsprite-skull_11 { + background-position: -726px -902px +} + +.sbsprite-flawed_amethyst_gem { + background-position: -748px -902px +} + +.sbsprite-revive_stone { + background-position: -770px -902px +} + +.sbsprite-creeper_generator_9 { + background-position: -792px -902px +} + +.sbsprite-creeper_generator_8 { + background-position: -814px -902px +} + +.sbsprite-potato_basket { + background-position: -836px -902px +} + +.sbsprite-diamond_essence { + background-position: -858px -902px +} + +.sbsprite-creeper_generator_7 { + background-position: -880px -902px +} + +.sbsprite-creeper_generator_6 { + background-position: -902px -902px +} + +.sbsprite-creeper_generator_5 { + background-position: -924px -902px +} + +.sbsprite-creeper_generator_4 { + background-position: -946px -902px +} + +.sbsprite-creeper_generator_3 { + background-position: -968px -902px +} + +.sbsprite-creeper_generator_2 { + background-position: -990px -902px +} + +.sbsprite-sand_generator_1 { + background-position: -1012px -902px +} + +.sbsprite-creeper_generator_1 { + background-position: -1034px -902px +} + +.sbsprite-sand_generator_2 { + background-position: 0 -924px +} + +.sbsprite-sand_generator_3 { + background-position: -22px -924px +} + +.sbsprite-sand_generator_4 { + background-position: -44px -924px +} + +.sbsprite-sand_generator_5 { + background-position: -66px -924px +} + +.sbsprite-jerry_box_golden { + background-position: -88px -924px +} + +.sbsprite-sand_generator_6 { + background-position: -110px -924px +} + +.sbsprite-seal_of_the_family { + background-position: -132px -924px +} + +.sbsprite-gemstone_chamber { + background-position: -154px -924px +} + +.sbsprite-aqua { + background-position: -176px -924px +} + +.sbsprite-ice_hunk { + background-position: -198px -924px +} + +.sbsprite-crystal_ball { + background-position: -220px -924px +} + +.sbsprite-ice_chair { + background-position: -242px -924px +} + +.sbsprite-sandcastle_11 { + background-position: -264px -924px +} + +.sbsprite-sandcastle_10 { + background-position: -286px -924px +} + +.sbsprite-furnace_plus { + background-position: -308px -924px +} + +.sbsprite-pig_generator_12 { + background-position: -330px -924px +} + +.sbsprite-pig_generator_11 { + background-position: -352px -924px +} + +.sbsprite-pig_generator_10 { + background-position: -374px -924px +} + +.sbsprite-nether_artifact { + background-position: -396px -924px +} + +.sbsprite-chicken_generator_1 { + background-position: -418px -924px +} + +.sbsprite-sniper_helmet { + background-position: -440px -924px +} + +.sbsprite-chicken_generator_4 { + background-position: -462px -924px +} + +.sbsprite-chicken_generator_5 { + background-position: -484px -924px +} + +.sbsprite-heat_core { + background-position: -506px -924px +} + +.sbsprite-chicken_generator_2 { + background-position: -528px -924px +} + +.sbsprite-wishing_compass { + background-position: -550px -924px +} + +.sbsprite-chicken_generator_3 { + background-position: -572px -924px +} + +.sbsprite-desk { + background-position: -594px -924px +} + +.sbsprite-white_large_backpack { + background-position: -616px -924px +} + +.sbsprite-hub_portal { + background-position: -638px -924px +} + +.sbsprite-spruce_generator_10 { + background-position: -660px -924px +} + +.sbsprite-spruce_generator_11 { + background-position: -682px -924px +} + +.sbsprite-chicken_generator_8 { + background-position: -704px -924px +} + +.sbsprite-mithril_generator_9 { + background-position: -726px -924px +} + +.sbsprite-scarf_thesis { + background-position: -748px -924px +} + +.sbsprite-chicken_generator_9 { + background-position: -770px -924px +} + +.sbsprite-mithril_generator_8 { + background-position: -792px -924px +} + +.sbsprite-fast_travel_da { + background-position: -814px -924px +} + +.sbsprite-chicken_generator_6 { + background-position: -836px -924px +} + +.sbsprite-mithril_generator_7 { + background-position: -858px -924px +} + +.sbsprite-zombie_ring { + background-position: -880px -924px +} + +.sbsprite-chicken_generator_7 { + background-position: -902px -924px +} + +.sbsprite-mithril_generator_6 { + background-position: -924px -924px +} + +.sbsprite-wood_chest { + background-position: -946px -924px +} + +.sbsprite-glowstone_generator_8 { + background-position: -968px -924px +} + +.sbsprite-mithril_generator_1 { + background-position: -990px -924px +} + +.sbsprite-pink_bunny_12 { + background-position: -1012px -924px +} + +.sbsprite-purple_medium_backpack { + background-position: -1034px -924px +} + +.sbsprite-glowstone_generator_7 { + background-position: 0 -946px +} + +.sbsprite-pink_bunny_11 { + background-position: -22px -946px +} + +.sbsprite-pink_bunny_10 { + background-position: -44px -946px +} + +.sbsprite-glowstone_generator_9 { + background-position: -66px -946px +} + +.sbsprite-glowstone_generator_4 { + background-position: -88px -946px +} + +.sbsprite-mithril_generator_5 { + background-position: -110px -946px +} + +.sbsprite-glowstone_generator_3 { + background-position: -132px -946px +} + +.sbsprite-mithril_generator_4 { + background-position: -154px -946px +} + +.sbsprite-glowstone_generator_6 { + background-position: -176px -946px +} + +.sbsprite-mithril_generator_3 { + background-position: -198px -946px +} + +.sbsprite-glowstone_generator_5 { + background-position: -220px -946px +} + +.sbsprite-mithril_generator_2 { + background-position: -242px -946px +} + +.sbsprite-very_official_yellow_rock { + background-position: -264px -946px +} + +.sbsprite-bat_person_talisman { + background-position: -286px -946px +} + +.sbsprite-cyan_large_backpack { + background-position: -308px -946px +} + +.sbsprite-fairy_soul { + background-position: -330px -946px +} + +.sbsprite-ghost_8 { + background-position: -352px -946px +} + +.sbsprite-ghost_9 { + background-position: -374px -946px +} + +.sbsprite-power_talisman { + background-position: -396px -946px +} + +.sbsprite-ghost_4 { + background-position: -418px -946px +} + +.sbsprite-decent_coffee { + background-position: -440px -946px +} + +.sbsprite-ghost_5 { + background-position: -462px -946px +} + +.sbsprite-ember_fragment { + background-position: -484px -946px +} + +.sbsprite-ghost_6 { + background-position: -506px -946px +} + +.sbsprite-ghost_7 { + background-position: -528px -946px +} + +.sbsprite-dull_shark_tooth_necklace { + background-position: -550px -946px +} + +.sbsprite-ghost_1 { + background-position: -572px -946px +} + +.sbsprite-ghost_2 { + background-position: -594px -946px +} + +.sbsprite-ghost_3 { + background-position: -616px -946px +} + +.sbsprite-gold_gift { + background-position: -638px -946px +} + +.sbsprite-tank_wither_helmet { + background-position: -660px -946px +} + +.sbsprite-spider_ring { + background-position: -682px -946px +} + +.sbsprite-santa_10 { + background-position: -704px -946px +} + +.sbsprite-santa_11 { + background-position: -726px -946px +} + +.sbsprite-yellow_greater_backpack { + background-position: -748px -946px +} + +.sbsprite-sapphire_crystal { + background-position: -770px -946px +} + +.sbsprite-mayor_foxy { + background-position: -792px -946px +} + +.sbsprite-starred_shadow_assassin_helmet { + background-position: -814px -946px +} + +.sbsprite-god_potion_2 { + background-position: -836px -946px +} + +.sbsprite-goblin_helmet { + background-position: -858px -946px +} + +.sbsprite-diamond_generator_5 { + background-position: -880px -946px +} + +.sbsprite-lesser_orb_of_healing { + background-position: -902px -946px +} + +.sbsprite-diamond_generator_6 { + background-position: -924px -946px +} + +.sbsprite-diamond_generator_3 { + background-position: -946px -946px +} + +.sbsprite-pet_skin_jerry_red_elf { + background-position: -968px -946px +} + +.sbsprite-diamond_generator_4 { + background-position: -990px -946px +} + +.sbsprite-lady_bug_10 { + background-position: -1012px -946px +} + +.sbsprite-diamond_generator_1 { + background-position: -1034px -946px +} + +.sbsprite-star_decorations { + background-position: 0 -968px +} + +.sbsprite-diamond_generator_2 { + background-position: -22px -968px +} + +.sbsprite-bingo_artifact { + background-position: -44px -968px +} + +.sbsprite-diamond_generator_9 { + background-position: -66px -968px +} + +.sbsprite-lady_bug_11 { + background-position: -88px -968px +} + +.sbsprite-diamond_generator_7 { + background-position: -110px -968px +} + +.sbsprite-diamond_generator_8 { + background-position: -132px -968px +} + +.sbsprite-heart_of_the_mountain { + background-position: -154px -968px +} + +.sbsprite-glowstone_generator_2 { + background-position: -176px -968px +} + +.sbsprite-glowstone_generator_1 { + background-position: -198px -968px +} + +.sbsprite-pink_donut_personality { + background-position: -220px -968px +} + +.sbsprite-artifact_of_space { + background-position: -242px -968px +} + +.sbsprite-lesser_soulflow_engine { + background-position: -264px -968px +} + +.sbsprite-mithril_crystal { + background-position: -286px -968px +} + +.sbsprite-young_fragment { + background-position: -308px -968px +} + +.sbsprite-master_catacombs_pass_10 { + background-position: -330px -968px +} + +.sbsprite-flying_bats { + background-position: -352px -968px +} + +.sbsprite-light_blue_medium_backpack { + background-position: -374px -968px +} + +.sbsprite-fast_travel_hub { + background-position: -396px -968px +} + +.sbsprite-pumpkin_generator_2 { + background-position: -418px -968px +} + +.sbsprite-pumpkin_generator_1 { + background-position: -440px -968px +} + +.sbsprite-pumpkin_generator_4 { + background-position: -462px -968px +} + +.sbsprite-end_helmet { + background-position: -484px -968px +} + +.sbsprite-pumpkin_generator_3 { + background-position: -506px -968px +} + +.sbsprite-pumpkin_generator_6 { + background-position: -528px -968px +} + +.sbsprite-titanium_talisman { + background-position: -550px -968px +} + +.sbsprite-pumpkin_generator_5 { + background-position: -572px -968px +} + +.sbsprite-reaper_gem { + background-position: -594px -968px +} + +.sbsprite-rune_zap { + background-position: -616px -968px +} + +.sbsprite-pumpkin_generator_8 { + background-position: -638px -968px +} + +.sbsprite-pumpkin_generator_7 { + background-position: -660px -968px +} + +.sbsprite-pumpkin_generator_9 { + background-position: -682px -968px +} + +.sbsprite-crooked_artifact { + background-position: -704px -968px +} + +.sbsprite-haste_ring { + background-position: -726px -968px +} + +.sbsprite-soulflow_battery { + background-position: -748px -968px +} + +.sbsprite-medium_mining_sack { + background-position: -770px -968px +} + +.sbsprite-skull_1 { + background-position: -792px -968px +} + +.sbsprite-coffin { + background-position: -814px -968px +} + +.sbsprite-chest_shelves { + background-position: -836px -968px +} + +.sbsprite-power_ring { + background-position: -858px -968px +} + +.sbsprite-white_medium_backpack { + background-position: -880px -968px +} + +.sbsprite-divan_fragment { + background-position: -902px -968px +} + +.sbsprite-skull_8 { + background-position: -924px -968px +} + +.sbsprite-gold_essence { + background-position: -946px -968px +} + +.sbsprite-skull_9 { + background-position: -968px -968px +} + +.sbsprite-skull_6 { + background-position: -990px -968px +} + +.sbsprite-skull_7 { + background-position: -1012px -968px +} + +.sbsprite-skull_4 { + background-position: -1034px -968px +} + +.sbsprite-skull_5 { + background-position: 0 -990px +} + +.sbsprite-skull_2 { + background-position: -22px -990px +} + +.sbsprite-skull_3 { + background-position: -44px -990px +} + +.sbsprite-black_jumbo_backpack { + background-position: -66px -990px +} + +.sbsprite-fast_travel_mines { + background-position: -88px -990px +} + +.sbsprite-skull_vase { + background-position: -110px -990px +} + +.sbsprite-fishing_generator_8 { + background-position: -132px -990px +} + +.sbsprite-fishing_generator_7 { + background-position: -154px -990px +} + +.sbsprite-fishing_generator_6 { + background-position: -176px -990px +} + +.sbsprite-fishing_generator_5 { + background-position: -198px -990px +} + +.sbsprite-fishing_generator_4 { + background-position: -220px -990px +} + +.sbsprite-lime_jumbo_backpack { + background-position: -242px -990px +} + +.sbsprite-fishing_generator_3 { + background-position: -264px -990px +} + +.sbsprite-fishing_generator_2 { + background-position: -286px -990px +} + +.sbsprite-fishing_generator_1 { + background-position: -308px -990px +} + +.sbsprite-fishing_generator_9 { + background-position: -330px -990px +} + +.sbsprite-yellow_large_backpack { + background-position: -352px -990px +} + +.sbsprite-amber_crystal { + background-position: -374px -990px +} + +.sbsprite-suspicious_vial { + background-position: -396px -990px +} + +.sbsprite-campfire { + background-position: -418px -990px +} + +.sbsprite-snow_generator_4 { + background-position: -440px -990px +} + +.sbsprite-snow_generator_5 { + background-position: -462px -990px +} + +.sbsprite-ring_of_space { + background-position: -484px -990px +} + +.sbsprite-snow_generator_6 { + background-position: -506px -990px +} + +.sbsprite-talisman_enrichment_walk_speed { + background-position: -528px -990px +} + +.sbsprite-snow_generator_7 { + background-position: -550px -990px +} + +.sbsprite-snow_generator_1 { + background-position: -572px -990px +} + +.sbsprite-snow_generator_2 { + background-position: -594px -990px +} + +.sbsprite-snow_generator_3 { + background-position: -616px -990px +} + +.sbsprite-lime_medium_backpack { + background-position: -638px -990px +} + +.sbsprite-end_stone_1 { + background-position: -660px -990px +} + +.sbsprite-strong_fragment { + background-position: -682px -990px +} + +.sbsprite-small_foraging_sack { + background-position: -704px -990px +} + +.sbsprite-synthetic_heart { + background-position: -726px -990px +} + +.sbsprite-end_stone_4 { + background-position: -748px -990px +} + +.sbsprite-diamond_sadan_head { + background-position: -770px -990px +} + +.sbsprite-end_stone_5 { + background-position: -792px -990px +} + +.sbsprite-end_stone_2 { + background-position: -814px -990px +} + +.sbsprite-end_stone_3 { + background-position: -836px -990px +} + +.sbsprite-diamond_bonzo_head { + background-position: -858px -990px +} + +.sbsprite-end_stone_8 { + background-position: -880px -990px +} + +.sbsprite-end_stone_9 { + background-position: -902px -990px +} + +.sbsprite-end_stone_6 { + background-position: -924px -990px +} + +.sbsprite-end_stone_7 { + background-position: -946px -990px +} + +.sbsprite-snow_generator_8 { + background-position: -968px -990px +} + +.sbsprite-snow_generator_9 { + background-position: -990px -990px +} + +.sbsprite-ender_stone_generator_4 { + background-position: -1012px -990px +} + +.sbsprite-epoch_cake_blue { + background-position: -1034px -990px +} + +.sbsprite-sand_generator_10 { + background-position: 0 -1012px +} + +.sbsprite-ender_stone_generator_3 { + background-position: -22px -1012px +} + +.sbsprite-sand_generator_11 { + background-position: -44px -1012px +} + +.sbsprite-ender_stone_generator_2 { + background-position: -66px -1012px +} + +.sbsprite-ender_stone_generator_1 { + background-position: -88px -1012px +} + +.sbsprite-pet_skin_sheep_neon_yellow { + background-position: -110px -1012px +} + +.sbsprite-fast_travel_spider { + background-position: -132px -1012px +} + +.sbsprite-pet_skin_sheep_blue { + background-position: -154px -1012px +} + +.sbsprite-epoch_cake_black { + background-position: -176px -1012px +} + +.sbsprite-wise_baby { + background-position: -198px -1012px +} + +.sbsprite-chronomatron { + background-position: -220px -1012px +} + +.sbsprite-scarf_grimoire { + background-position: -242px -1012px +} + +.sbsprite-bestiary_hub { + background-position: -264px -1012px +} + +.sbsprite-ender_stone_generator_9 { + background-position: -286px -1012px +} + +.sbsprite-ender_stone_generator_8 { + background-position: -308px -1012px +} + +.sbsprite-ender_stone_generator_7 { + background-position: -330px -1012px +} + +.sbsprite-ender_stone_generator_6 { + background-position: -352px -1012px +} + +.sbsprite-ender_stone_generator_5 { + background-position: -374px -1012px +} + +.sbsprite-small_gemstone_sack { + background-position: -396px -1012px +} + +.sbsprite-flawless_ruby_gem { + background-position: -418px -1012px +} + +.sbsprite-gold_necron_head { + background-position: -440px -1012px +} + +.sbsprite-small_husbandry_sack { + background-position: -462px -1012px +} + +.sbsprite-reaper_orb { + background-position: -484px -1012px +} + +.sbsprite-blaze_helmet { + background-position: -506px -1012px +} + +.sbsprite-bee_personality { + background-position: -528px -1012px +} + +.sbsprite-fishing { + background-position: -550px -1012px +} + +.sbsprite-titanium_ring { + background-position: -572px -1012px +} + +.sbsprite-lime { + background-position: -594px -1012px +} + +.sbsprite-feather_talisman { + background-position: -616px -1012px +} + +.sbsprite-rough_jasper_gem { + background-position: -638px -1012px +} + +.sbsprite-goblin_omelette_spicy { + background-position: -660px -1012px +} + +.sbsprite-gold_generator_11 { + background-position: -682px -1012px +} + +.sbsprite-gold_generator_10 { + background-position: -704px -1012px +} + +.sbsprite-gold_generator_12 { + background-position: -726px -1012px +} + +.sbpet-sheep_green { + background-position: 0 0 +} + +.sbpet-sheep_yellow { + background-position: -20px 0 +} + +.sbpet-bal { + background-position: -40px 0 +} + +.sbpet-grandma_wolf { + background-position: -60px 0 +} + +.sbpet-sheep_orange { + background-position: -80px 0 +} + +.sbpet-sheep_red { + background-position: -100px 0 +} + +.sbpet-bat { + background-position: -120px 0 +} + +.sbpet-elephant_red { + background-position: -140px 0 +} + +.sbpet-rabbit { + background-position: -160px 0 +} + +.sbpet-megalodon_baby { + background-position: -180px 0 +} + +.sbpet-silverfish { + background-position: -200px 0 +} + +.sbpet-ghoul { + background-position: -220px 0 +} + +.sbpet-pigman { + background-position: 0 -22px +} + +.sbpet-elephant_orange { + background-position: -20px -22px +} + +.sbpet-jerry { + background-position: -40px -22px +} + +.sbpet-sheep_neon_yellow { + background-position: -60px -22px +} + +.sbpet-rat { + background-position: -80px -22px +} + +.sbpet-tiger { + background-position: -100px -22px +} + +.sbpet-lion { + background-position: -120px -22px +} + +.sbpet-horse { + background-position: -140px -22px +} + +.sbpet-sheep_neon_green { + background-position: -160px -22px +} + +.sbpet-giraffe { + background-position: -180px -22px +} + +.sbpet-black_cat_ivory { + background-position: -200px -22px +} + +.sbpet-golden_dragon { + background-position: -220px -22px +} + +.sbpet-rock_derp { + background-position: 0 -44px +} + +.sbpet-parrot { + background-position: -20px -44px +} + +.sbpet-sheep_blue { + background-position: -40px -44px +} + +.sbpet-monkey_golden { + background-position: -60px -44px +} + +.sbpet-jellyfish { + background-position: -80px -44px +} + +.sbpet-horse_zombie { + background-position: -100px -44px +} + +.sbpet-sheep_purple { + background-position: -120px -44px +} + +.sbpet-elephant_purple { + background-position: -140px -44px +} + +.sbpet-endermite_radiant { + background-position: -160px -44px +} + +.sbpet-rock { + background-position: -180px -44px +} + +.sbpet-default { + background-position: -200px -44px +} + +.sbpet-blaze { + background-position: -220px -44px +} + +.sbpet-endermite { + background-position: 0 -66px +} + +.sbpet-megalodon_bullhead { + background-position: -20px -66px +} + +.sbpet-hound_beagle { + background-position: -40px -66px +} + +.sbpet-zombie { + background-position: -60px -66px +} + +.sbpet-guardian { + background-position: -80px -66px +} + +.sbpet-scatha { + background-position: -100px -66px +} + +.sbpet-wolf { + background-position: -120px -66px +} + +.sbpet-rabbit_aquamarine { + background-position: -140px -66px +} + +.sbpet-spirit { + background-position: -160px -66px +} + +.sbpet-hound { + background-position: -180px -66px +} + +.sbpet-dragon_neon_purple { + background-position: -200px -66px +} + +.sbpet-tiger_twilight { + background-position: -220px -66px +} + +.sbpet-sheep_light_green { + background-position: 0 -88px +} + +.sbpet-monkey_gorilla { + background-position: -20px -88px +} + +.sbpet-spider { + background-position: -40px -88px +} + +.sbpet-mithril_golem { + background-position: -60px -88px +} + +.sbpet-dolphin_snubnose { + background-position: -80px -88px +} + +.sbpet-snowman { + background-position: -100px -88px +} + +.sbpet-bee { + background-position: -120px -88px +} + +.sbpet-monkey { + background-position: -140px -88px +} + +.sbpet-jerry_red_elf { + background-position: -160px -88px +} + +.sbpet-elephant_pink { + background-position: -180px -88px +} + +.sbpet-sheep_brown { + background-position: -200px -88px +} + +.sbpet-magma_cube { + background-position: -220px -88px +} + +.sbpet-pig { + background-position: 0 -110px +} + +.sbpet-blue_whale { + background-position: -20px -110px +} + +.sbpet-skeleton { + background-position: -40px -110px +} + +.sbpet-phoenix_ice { + background-position: -60px -110px +} + +.sbpet-ammonite { + background-position: -80px -110px +} + +.sbpet-elephant_green { + background-position: -100px -110px +} + +.sbpet-armadillo { + background-position: -120px -110px +} + +.sbpet-dolphin { + background-position: -140px -110px +} + +.sbpet-turtle { + background-position: -160px -110px +} + +.sbpet-dragon_neon_red { + background-position: -180px -110px +} + +.sbpet-tiger_saber_tooth { + background-position: -200px -110px +} + +.sbpet-wither_skeleton { + background-position: -220px -110px +} + +.sbpet-parrot_blue_macaw { + background-position: 0 -132px +} + +.sbpet-ocelot { + background-position: -20px -132px +} + +.sbpet-sheep_light_gray { + background-position: -40px -132px +} + +.sbpet-elephant_blue { + background-position: -60px -132px +} + +.sbpet-chicken_baby_chick { + background-position: -80px -132px +} + +.sbpet-rock_thinking { + background-position: -100px -132px +} + +.sbpet-enderman_slayer { + background-position: -120px -132px +} + +.sbpet-ender_dragon { + background-position: -140px -132px +} + +.sbpet-rabbit_rose { + background-position: -160px -132px +} + +.sbpet-sheep_white { + background-position: -180px -132px +} + +.sbpet-silverfish_fossilized { + background-position: -200px -132px +} + +.sbpet-squid { + background-position: -220px -132px +} + +.sbpet-sheep_light_blue { + background-position: 0 -154px +} + +.sbpet-elephant { + background-position: -20px -154px +} + +.sbpet-golden_dragon_egg { + background-position: -40px -154px +} + +.sbpet-enderman { + background-position: -60px -154px +} + +.sbpet-chicken { + background-position: -80px -154px +} + +.sbpet-parrot_gold_macaw { + background-position: -100px -154px +} + +.sbpet-sheep_gray { + background-position: -120px -154px +} + +.sbpet-rock_cool { + background-position: -140px -154px +} + +.sbpet-rock_laugh { + background-position: -160px -154px +} + +.sbpet-sheep_black { + background-position: -180px -154px +} + +.sbpet-sheep_neon_blue { + background-position: -200px -154px +} + +.sbpet-rock_embarrassed { + background-position: -220px -154px +} + +.sbpet-dragon_neon_blue { + background-position: 0 -176px +} + +.sbpet-sheep { + background-position: -20px -176px +} + +.sbpet-baby_yeti { + background-position: -40px -176px +} + +.sbpet-sheep_aqua { + background-position: -60px -176px +} + +.sbpet-sheep_pink { + background-position: -80px -176px +} + +.sbpet-elephant_monochrome { + background-position: -100px -176px +} + +.sbpet-wolf_henzo_doggo { + background-position: -120px -176px +} + +.sbpet-squid_glow { + background-position: -140px -176px +} + +.sbpet-flying_fish { + background-position: -160px -176px +} + +.sbpet-griffin { + background-position: -180px -176px +} + +.sbpet-jerry_green_elf { + background-position: -200px -176px +} + +.sbpet-dragon_pastel { + background-position: -220px -176px +} + +.sbpet-sheep_neon_red { + background-position: 0 -198px +} + +.sbpet-sheep_magenta { + background-position: -20px -198px +} + +.sbpet-skeleton_horse { + background-position: -40px -198px +} + +.sbpet-megalodon { + background-position: -60px -198px +} + +.sbpet-lion_lioness { + background-position: -80px -198px +} + +.sbpet-tarantula { + background-position: -100px -198px +} + +.sbpet-yeti_grown_up { + background-position: -120px -198px +} + +.sbpet-phoenix { + background-position: -140px -198px +} + +.sbpet-golem { + background-position: -160px -198px +} + +.sbpet-black_cat { + background-position: -180px -198px +} + +.sbpet-whale_orca { + background-position: -200px -198px +} + +.sbpet-rock_smile { + background-position: -220px -198px +} + +.sbpet-wither { + background-position: 0 -220px +} + +.sbpet-black_cat_onyx { + background-position: -20px -220px +} + +.sbspray-AngryTurkey { + background-position: 0 0 +} + +.sbspray-AnotherDimension { + background-position: -128px 0 +} + +.sbspray-BlueArrowE { + background-position: -256px 0 +} + +.sbspray-BlueArrowN { + background-position: -384px 0 +} + +.sbspray-BlueArrowNE { + background-position: -512px 0 +} + +.sbspray-BlueArrowNW { + background-position: -640px 0 +} + +.sbspray-BlueArrowS { + background-position: -768px 0 +} + +.sbspray-BlueArrowSE { + background-position: -896px 0 +} + +.sbspray-BlueArrowSW { + background-position: -1024px 0 +} + +.sbspray-BlueArrowW { + background-position: -1152px 0 +} + +.sbspray-Bonzo { + background-position: 0 -128px +} + +.sbspray-Boom { + background-position: -128px -128px +} + +.sbspray-BunnyGG { + background-position: -256px -128px +} + +.sbspray-ChestGlow { + background-position: -384px -128px +} + +.sbspray-Chill { + background-position: -512px -128px +} + +.sbspray-Chimney { + background-position: -640px -128px +} + +.sbspray-ChocolateFeast { + background-position: -768px -128px +} + +.sbspray-ChristmasTree { + background-position: -896px -128px +} + +.sbspray-Coconut { + background-position: -1024px -128px +} + +.sbspray-Creeper { + background-position: -1152px -128px +} + +.sbspray-EasterBasket { + background-position: 0 -256px +} + +.sbspray-EasterCreeper { + background-position: -128px -256px +} + +.sbspray-EasterEggs { + background-position: -256px -256px +} + +.sbspray-Eek { + background-position: -384px -256px +} + +.sbspray-EggHunt { + background-position: -512px -256px +} + +.sbspray-EggSurprise { + background-position: -640px -256px +} + +.sbspray-Faboolous { + background-position: -768px -256px +} + +.sbspray-FarmingArrowE { + background-position: -896px -256px +} + +.sbspray-FarmingArrowN { + background-position: -1024px -256px +} + +.sbspray-FarmingArrowS { + background-position: -1152px -256px +} + +.sbspray-FarmingArrowW { + background-position: 0 -384px +} + +.sbspray-FoundU { + background-position: -128px -384px +} + +.sbspray-Garlic { + background-position: -256px -384px +} + +.sbspray-GenericArmor { + background-position: -384px -384px +} + +.sbspray-GenericBooks { + background-position: -512px -384px +} + +.sbspray-GenericFishing { + background-position: -640px -384px +} + +.sbspray-GenericMob { + background-position: -768px -384px +} + +.sbspray-GenericOres { + background-position: -896px -384px +} + +.sbspray-GenericPotions { + background-position: -1024px -384px +} + +.sbspray-GenericWeapons { + background-position: -1152px -384px +} + +.sbspray-GoldenEgg { + background-position: 0 -512px +} + +.sbspray-Heart { + background-position: -128px -512px +} + +.sbspray-Hypixel { + background-position: -256px -512px +} + +.sbspray-HypixelDark { + background-position: -384px -512px +} + +.sbspray-IceCream { + background-position: -512px -512px +} + +.sbspray-Kite { + background-position: -640px -512px +} + +.sbspray-LetUsIn { + background-position: -768px -512px +} + +.sbspray-Lifebelt { + background-position: -896px -512px +} + +.sbspray-MinionAnimals { + background-position: -1024px -512px +} + +.sbspray-MinionFarming { + background-position: -1152px -512px +} + +.sbspray-MinionForaging { + background-position: 0 -640px +} + +.sbspray-MinionMining { + background-position: -128px -640px +} + +.sbspray-MinionMisc { + background-position: -256px -640px +} + +.sbspray-MinionMonsters { + background-position: -384px -640px +} + +.sbspray-OnFire { + background-position: -512px -640px +} + +.sbspray-Porkchop { + background-position: -640px -640px +} + +.sbspray-PortalArrowE { + background-position: -768px -640px +} + +.sbspray-PortalArrowN { + background-position: -896px -640px +} + +.sbspray-PortalArrowS { + background-position: -1024px -640px +} + +.sbspray-PortalArrowW { + background-position: -1152px -640px +} + +.sbspray-Presents { + background-position: 0 -768px +} + +.sbspray-Puffer { + background-position: -128px -768px +} + +.sbspray-PuppySurprise { + background-position: -256px -768px +} + +.sbspray-RabbitCostume { + background-position: -384px -768px +} + +.sbspray-RedArrowE { + background-position: -512px -768px +} + +.sbspray-RedArrowN { + background-position: -640px -768px +} + +.sbspray-RedArrowNE { + background-position: -768px -768px +} + +.sbspray-RedArrowNW { + background-position: -896px -768px +} + +.sbspray-RedArrowS { + background-position: -1024px -768px +} + +.sbspray-RedArrowSE { + background-position: -1152px -768px +} + +.sbspray-RedArrowSW { + background-position: 0 -896px +} + +.sbspray-RedArrowW { + background-position: -128px -896px +} + +.sbspray-SandCastleH { + background-position: -256px -896px +} + +.sbspray-Sandcastle { + background-position: -384px -896px +} + +.sbspray-SantaJerry { + background-position: -512px -896px +} + +.sbspray-SantaSlips { + background-position: -640px -896px +} + +.sbspray-Sign { + background-position: -768px -896px +} + +.sbspray-SkyBlockChristmas { + background-position: -896px -896px +} + +.sbspray-SniperSnowball { + background-position: -1024px -896px +} + +.sbspray-Snowball { + background-position: -1152px -896px +} + +.sbspray-StorageArrowE { + background-position: 0 -1024px +} + +.sbspray-StorageArrowN { + background-position: -128px -1024px +} + +.sbspray-StorageArrowS { + background-position: -256px -1024px +} + +.sbspray-StorageArrowW { + background-position: -384px -1024px +} + +.sbspray-Surfing { + background-position: -512px -1024px +} + +.sbspray-TheWrongEggs { + background-position: -640px -1024px +} + +.sbspray-Trap { + background-position: -768px -1024px +} + +.sbspray-TrickOrTreat { + background-position: -896px -1024px +} + +.sbspray-UndeadJerry { + background-position: -1024px -1024px +} + +.sbspray-Volleyball { + background-position: -1152px -1024px +} + +.sbspray-Watcher { + background-position: 0 -1152px +} + +.sbspray-Whoosh { + background-position: -128px -1152px +} + +.sbspray-WitchPlease { + background-position: -256px -1152px +} + +.sbspray-Wreath { + background-position: -384px -1152px +} + +.sbspray-YellowArrowE { + background-position: -512px -1152px +} + +.sbspray-YellowArrowN { + background-position: -640px -1152px +} + +.sbspray-YellowArrowNE { + background-position: -768px -1152px +} + +.sbspray-YellowArrowNW { + background-position: -896px -1152px +} + +.sbspray-YellowArrowS { + background-position: -1024px -1152px +} + +.sbspray-YellowArrowSE { + background-position: -1152px -1152px +} + +.sbspray-YellowArrowSW { + background-position: -1280px 0 +} + +.sbspray-YellowArrowW { + background-position: -1280px -128px +} + +.mcsprite-acacia_boat { + background-position: 0 0 +} + +.mcsprite-acacia_button { + background-position: -32px 0 +} + +.mcsprite-acacia_door { + background-position: -64px 0 +} + +.mcsprite-acacia_fence { + background-position: -96px 0 +} + +.mcsprite-acacia_fence_gate { + background-position: -128px 0 +} + +.mcsprite-acacia_leaves { + background-position: -160px 0 +} + +.mcsprite-acacia_log { + background-position: -192px 0 +} + +.mcsprite-acacia_planks { + background-position: -224px 0 +} + +.mcsprite-acacia_pressure_plate { + background-position: -256px 0 +} + +.mcsprite-acacia_sapling { + background-position: -288px 0 +} + +.mcsprite-acacia_sign { + background-position: -320px 0 +} + +.mcsprite-acacia_slab { + background-position: -352px 0 +} + +.mcsprite-acacia_stairs { + background-position: -384px 0 +} + +.mcsprite-acacia_trapdoor { + background-position: -416px 0 +} + +.mcsprite-acacia_wood { + background-position: -448px 0 +} + +.mcsprite-acacia_wood_button { + background-position: -480px 0 +} + +.mcsprite-acacia_wood_door { + background-position: -512px 0 +} + +.mcsprite-acacia_wood_fence { + background-position: -544px 0 +} + +.mcsprite-acacia_wood_fence_gate { + background-position: -576px 0 +} + +.mcsprite-acacia_wood_planks { + background-position: -608px 0 +} + +.mcsprite-acacia_wood_pressure_plate { + background-position: -640px 0 +} + +.mcsprite-acacia_wood_sign { + background-position: -672px 0 +} + +.mcsprite-acacia_wood_slab { + background-position: -704px 0 +} + +.mcsprite-acacia_wood_stairs { + background-position: -736px 0 +} + +.mcsprite-acacia_wood_trapdoor { + background-position: -768px 0 +} + +.mcsprite-activator_rail { + background-position: -800px 0 +} + +.mcsprite-adult_carrots { + background-position: -832px 0 +} + +.mcsprite-adult_nether_warts { + background-position: -864px 0 +} + +.mcsprite-adult_potatoes { + background-position: -896px 0 +} + +.mcsprite-adult_wheat_crops { + background-position: -928px 0 +} + +.mcsprite-air { + background-position: -960px 0 +} + +.mcsprite-allium { + background-position: -992px 0 +} + +.mcsprite-amethyst_cluster { + background-position: -1024px 0 +} + +.mcsprite-amethyst_shard { + background-position: -1056px 0 +} + +.mcsprite-ancient_debris { + background-position: -1088px 0 +} + +.mcsprite-andesite { + background-position: -1120px 0 +} + +.mcsprite-andesite_slab { + background-position: -1152px 0 +} + +.mcsprite-andesite_stairs { + background-position: -1184px 0 +} + +.mcsprite-andesite_wall { + background-position: -1216px 0 +} + +.mcsprite-anvil { + background-position: -1248px 0 +} + +.mcsprite-apple { + background-position: 0 -32px +} + +.mcsprite-armor_stand { + background-position: -32px -32px +} + +.mcsprite-arrow { + background-position: -64px -32px +} + +.mcsprite-arrow_loaded_crossbow { + background-position: -96px -32px +} + +.mcsprite-arrow_of_decay { + background-position: -128px -32px +} + +.mcsprite-arrow_of_fire_resistance { + background-position: -160px -32px +} + +.mcsprite-arrow_of_harming { + background-position: -192px -32px +} + +.mcsprite-arrow_of_healing { + background-position: -224px -32px +} + +.mcsprite-arrow_of_invisibility { + background-position: -256px -32px +} + +.mcsprite-arrow_of_leaping { + background-position: -288px -32px +} + +.mcsprite-arrow_of_luck { + background-position: -320px -32px +} + +.mcsprite-arrow_of_night_vision { + background-position: -352px -32px +} + +.mcsprite-arrow_of_poison { + background-position: -384px -32px +} + +.mcsprite-arrow_of_regeneration { + background-position: -416px -32px +} + +.mcsprite-arrow_of_slow_falling { + background-position: -448px -32px +} + +.mcsprite-arrow_of_slowness { + background-position: -480px -32px +} + +.mcsprite-arrow_of_splashing { + background-position: -512px -32px +} + +.mcsprite-arrow_of_strength { + background-position: -544px -32px +} + +.mcsprite-arrow_of_swiftness { + background-position: -576px -32px +} + +.mcsprite-arrow_of_the_turtle_master { + background-position: -608px -32px +} + +.mcsprite-arrow_of_water_breathing { + background-position: -640px -32px +} + +.mcsprite-arrow_of_weakness { + background-position: -672px -32px +} + +.mcsprite-awkward_lingering_potion { + background-position: -704px -32px +} + +.mcsprite-awkward_potion { + background-position: -736px -32px +} + +.mcsprite-awkward_splash_potion { + background-position: -768px -32px +} + +.mcsprite-axolotl_spawn_egg { + background-position: -800px -32px +} + +.mcsprite-azalea { + background-position: -832px -32px +} + +.mcsprite-azalea_leaves { + background-position: -864px -32px +} + +.mcsprite-azure_bluet { + background-position: -896px -32px +} + +.mcsprite-baked_potato { + background-position: -928px -32px +} + +.mcsprite-bamboo { + background-position: -960px -32px +} + +.mcsprite-banner { + background-position: -992px -32px +} + +.mcsprite-barrel { + background-position: -1024px -32px +} + +.mcsprite-barrier { + background-position: -1056px -32px +} + +.mcsprite-basalt { + background-position: -1088px -32px +} + +.mcsprite-bat_spawn_egg { + background-position: -1120px -32px +} + +.mcsprite-beacon { + background-position: -1152px -32px +} + +.mcsprite-bedrock { + background-position: -1184px -32px +} + +.mcsprite-bee_nest { + background-position: -1216px -32px +} + +.mcsprite-bee_spawn_egg { + background-position: -1248px -32px +} + +.mcsprite-beehive { + background-position: 0 -64px +} + +.mcsprite-beetroot { + background-position: -32px -64px +} + +.mcsprite-beetroot_seeds { + background-position: -64px -64px +} + +.mcsprite-beetroot_soup { + background-position: -96px -64px +} + +.mcsprite-beetroots { + background-position: -128px -64px +} + +.mcsprite-bell { + background-position: -160px -64px +} + +.mcsprite-big_dripleaf { + background-position: -192px -64px +} + +.mcsprite-birch_boat { + background-position: -224px -64px +} + +.mcsprite-birch_button { + background-position: -256px -64px +} + +.mcsprite-birch_door { + background-position: -288px -64px +} + +.mcsprite-birch_fence { + background-position: -320px -64px +} + +.mcsprite-birch_fence_gate { + background-position: -352px -64px +} + +.mcsprite-birch_leaves { + background-position: -384px -64px +} + +.mcsprite-birch_log { + background-position: -416px -64px +} + +.mcsprite-birch_planks { + background-position: -448px -64px +} + +.mcsprite-birch_pressure_plate { + background-position: -480px -64px +} + +.mcsprite-birch_sapling { + background-position: -512px -64px +} + +.mcsprite-birch_sign { + background-position: -544px -64px +} + +.mcsprite-birch_slab { + background-position: -576px -64px +} + +.mcsprite-birch_stairs { + background-position: -608px -64px +} + +.mcsprite-birch_trapdoor { + background-position: -640px -64px +} + +.mcsprite-birch_wood { + background-position: -672px -64px +} + +.mcsprite-birch_wood_button { + background-position: -704px -64px +} + +.mcsprite-birch_wood_door { + background-position: -736px -64px +} + +.mcsprite-birch_wood_fence { + background-position: -768px -64px +} + +.mcsprite-birch_wood_fence_gate { + background-position: -800px -64px +} + +.mcsprite-birch_wood_planks { + background-position: -832px -64px +} + +.mcsprite-birch_wood_pressure_plate { + background-position: -864px -64px +} + +.mcsprite-birch_wood_sign { + background-position: -896px -64px +} + +.mcsprite-birch_wood_slab { + background-position: -928px -64px +} + +.mcsprite-birch_wood_stairs { + background-position: -960px -64px +} + +.mcsprite-birch_wood_trapdoor { + background-position: -992px -64px +} + +.mcsprite-black_banner { + background-position: -1024px -64px +} + +.mcsprite-black_bed { + background-position: -1056px -64px +} + +.mcsprite-black_bed_lce { + background-position: -1088px -64px +} + +.mcsprite-black_candle { + background-position: -1120px -64px +} + +.mcsprite-black_carpet { + background-position: -1152px -64px +} + +.mcsprite-black_concrete { + background-position: -1184px -64px +} + +.mcsprite-black_concrete_powder { + background-position: -1216px -64px +} + +.mcsprite-black_dye { + background-position: -1248px -64px +} + +.mcsprite-black_firework_star { + background-position: 0 -96px +} + +.mcsprite-black_glazed_terracotta { + background-position: -32px -96px +} + +.mcsprite-black_shield { + background-position: -64px -96px +} + +.mcsprite-black_shulker_box { + background-position: -96px -96px +} + +.mcsprite-black_stained_glass { + background-position: -128px -96px +} + +.mcsprite-black_stained_glass_pane { + background-position: -160px -96px +} + +.mcsprite-black_terracotta { + background-position: -192px -96px +} + +.mcsprite-black_wool { + background-position: -224px -96px +} + +.mcsprite-blackstone { + background-position: -256px -96px +} + +.mcsprite-blackstone_slab { + background-position: -288px -96px +} + +.mcsprite-blackstone_stairs { + background-position: -320px -96px +} + +.mcsprite-blackstone_wall { + background-position: -352px -96px +} + +.mcsprite-blast_furnace { + background-position: -384px -96px +} + +.mcsprite-blaze_powder { + background-position: -416px -96px +} + +.mcsprite-blaze_rod { + background-position: -448px -96px +} + +.mcsprite-blaze_spawn_egg { + background-position: -480px -96px +} + +.mcsprite-block_of_amethyst { + background-position: -512px -96px +} + +.mcsprite-block_of_coal { + background-position: -544px -96px +} + +.mcsprite-block_of_copper { + background-position: -576px -96px +} + +.mcsprite-block_of_diamond { + background-position: -608px -96px +} + +.mcsprite-block_of_emerald { + background-position: -640px -96px +} + +.mcsprite-block_of_gold { + background-position: -672px -96px +} + +.mcsprite-block_of_iron { + background-position: -704px -96px +} + +.mcsprite-block_of_lapis_lazuli { + background-position: -736px -96px +} + +.mcsprite-block_of_netherite { + background-position: -768px -96px +} + +.mcsprite-block_of_quartz { + background-position: -800px -96px +} + +.mcsprite-block_of_raw_copper { + background-position: -832px -96px +} + +.mcsprite-block_of_raw_gold { + background-position: -864px -96px +} + +.mcsprite-block_of_raw_iron { + background-position: -896px -96px +} + +.mcsprite-block_of_redstone { + background-position: -928px -96px +} + +.mcsprite-blue_banner { + background-position: -960px -96px +} + +.mcsprite-blue_bed { + background-position: -992px -96px +} + +.mcsprite-blue_bed_lce { + background-position: -1024px -96px +} + +.mcsprite-blue_candle { + background-position: -1056px -96px +} + +.mcsprite-blue_carpet { + background-position: -1088px -96px +} + +.mcsprite-blue_concrete { + background-position: -1120px -96px +} + +.mcsprite-blue_concrete_powder { + background-position: -1152px -96px +} + +.mcsprite-blue_dye { + background-position: -1184px -96px +} + +.mcsprite-blue_firework_star { + background-position: -1216px -96px +} + +.mcsprite-blue_glazed_terracotta { + background-position: -1248px -96px +} + +.mcsprite-blue_ice { + background-position: 0 -128px +} + +.mcsprite-blue_orchid { + background-position: -32px -128px +} + +.mcsprite-blue_shield { + background-position: -64px -128px +} + +.mcsprite-blue_shulker_box { + background-position: -96px -128px +} + +.mcsprite-blue_stained_glass { + background-position: -128px -128px +} + +.mcsprite-blue_stained_glass_pane { + background-position: -160px -128px +} + +.mcsprite-blue_terracotta { + background-position: -192px -128px +} + +.mcsprite-blue_wool { + background-position: -224px -128px +} + +.mcsprite-bone { + background-position: -256px -128px +} + +.mcsprite-bone_block { + background-position: -288px -128px +} + +.mcsprite-bone_meal { + background-position: -320px -128px +} + +.mcsprite-book { + background-position: -352px -128px +} + +.mcsprite-book_and_quill { + background-position: -384px -128px +} + +.mcsprite-bookshelf { + background-position: -416px -128px +} + +.mcsprite-bottle_o_enchanting { + background-position: -448px -128px +} + +.mcsprite-bow { + background-position: -480px -128px +} + +.mcsprite-bowl { + background-position: -512px -128px +} + +.mcsprite-brain_coral { + background-position: -544px -128px +} + +.mcsprite-brain_coral_block { + background-position: -576px -128px +} + +.mcsprite-brain_coral_fan { + background-position: -608px -128px +} + +.mcsprite-bread { + background-position: -640px -128px +} + +.mcsprite-brewing_stand { + background-position: -672px -128px +} + +.mcsprite-brick { + background-position: -704px -128px +} + +.mcsprite-brick_slab { + background-position: -736px -128px +} + +.mcsprite-brick_slab_old { + background-position: -768px -128px +} + +.mcsprite-brick_stairs { + background-position: -800px -128px +} + +.mcsprite-brick_wall { + background-position: -832px -128px +} + +.mcsprite-bricks { + background-position: -864px -128px +} + +.mcsprite-bricks_old { + background-position: -896px -128px +} + +.mcsprite-broken_anvil { + background-position: -928px -128px +} + +.mcsprite-broken_elytra { + background-position: -960px -128px +} + +.mcsprite-brown_banner { + background-position: -992px -128px +} + +.mcsprite-brown_bed { + background-position: -1024px -128px +} + +.mcsprite-brown_bed_lce { + background-position: -1056px -128px +} + +.mcsprite-brown_candle { + background-position: -1088px -128px +} + +.mcsprite-brown_carpet { + background-position: -1120px -128px +} + +.mcsprite-brown_concrete { + background-position: -1152px -128px +} + +.mcsprite-brown_concrete_powder { + background-position: -1184px -128px +} + +.mcsprite-brown_dye { + background-position: -1216px -128px +} + +.mcsprite-brown_firework_star { + background-position: -1248px -128px +} + +.mcsprite-brown_glazed_terracotta { + background-position: 0 -160px +} + +.mcsprite-brown_mushroom { + background-position: -32px -160px +} + +.mcsprite-brown_mushroom_block { + background-position: -64px -160px +} + +.mcsprite-brown_shield { + background-position: -96px -160px +} + +.mcsprite-brown_shulker_box { + background-position: -128px -160px +} + +.mcsprite-brown_stained_glass { + background-position: -160px -160px +} + +.mcsprite-brown_stained_glass_pane { + background-position: -192px -160px +} + +.mcsprite-brown_terracotta { + background-position: -224px -160px +} + +.mcsprite-brown_wool { + background-position: -256px -160px +} + +.mcsprite-bubble_column { + background-position: -288px -160px +} + +.mcsprite-bubble_coral { + background-position: -320px -160px +} + +.mcsprite-bubble_coral_block { + background-position: -352px -160px +} + +.mcsprite-bubble_coral_fan { + background-position: -384px -160px +} + +.mcsprite-bucket { + background-position: -416px -160px +} + +.mcsprite-bucket_of_axolotl { + background-position: -448px -160px +} + +.mcsprite-bucket_of_cod { + background-position: -480px -160px +} + +.mcsprite-bucket_of_pufferfish { + background-position: -512px -160px +} + +.mcsprite-bucket_of_salmon { + background-position: -544px -160px +} + +.mcsprite-bucket_of_tropical_fish { + background-position: -576px -160px +} + +.mcsprite-budding_amethyst { + background-position: -608px -160px +} + +.mcsprite-bundle { + background-position: -640px -160px +} + +.mcsprite-buried_treasure_map { + background-position: -672px -160px +} + +.mcsprite-cactus { + background-position: -704px -160px +} + +.mcsprite-cactus_green { + background-position: -736px -160px +} + +.mcsprite-cake { + background-position: -768px -160px +} + +.mcsprite-calcite { + background-position: -800px -160px +} + +.mcsprite-campfire { + background-position: -832px -160px +} + +.mcsprite-candle { + background-position: -864px -160px +} + +.mcsprite-carrot { + background-position: -896px -160px +} + +.mcsprite-carrot_on_a_stick { + background-position: -928px -160px +} + +.mcsprite-cartography_table { + background-position: -960px -160px +} + +.mcsprite-carved_pumpkin { + background-position: -992px -160px +} + +.mcsprite-cast_fishing_rod { + background-position: -1024px -160px +} + +.mcsprite-cat_spawn_egg { + background-position: -1056px -160px +} + +.mcsprite-cauldron { + background-position: -1088px -160px +} + +.mcsprite-cave_air { + background-position: -1120px -160px +} + +.mcsprite-cave_spider_spawn_egg { + background-position: -1152px -160px +} + +.mcsprite-chain { + background-position: -1184px -160px +} + +.mcsprite-chainmail_boots { + background-position: -1216px -160px +} + +.mcsprite-chainmail_chestplate { + background-position: -1248px -160px +} + +.mcsprite-chainmail_helmet { + background-position: 0 -192px +} + +.mcsprite-chainmail_leggings { + background-position: -32px -192px +} + +.mcsprite-charcoal { + background-position: -64px -192px +} + +.mcsprite-chest { + background-position: -96px -192px +} + +.mcsprite-chicken_spawn_egg { + background-position: -128px -192px +} + +.mcsprite-chipped_anvil { + background-position: -160px -192px +} + +.mcsprite-chiseled_deepslate { + background-position: -192px -192px +} + +.mcsprite-chiseled_nether_bricks { + background-position: -224px -192px +} + +.mcsprite-chiseled_polished_blackstone { + background-position: -256px -192px +} + +.mcsprite-chiseled_quartz_block { + background-position: -288px -192px +} + +.mcsprite-chiseled_red_sandstone { + background-position: -320px -192px +} + +.mcsprite-chiseled_sandstone { + background-position: -352px -192px +} + +.mcsprite-chiseled_stone_bricks { + background-position: -384px -192px +} + +.mcsprite-chiseled_stone_bricks_monster_egg { + background-position: -416px -192px +} + +.mcsprite-chorus_flower { + background-position: -448px -192px +} + +.mcsprite-chorus_fruit { + background-position: -480px -192px +} + +.mcsprite-chorus_plant { + background-position: -512px -192px +} + +.mcsprite-clay { + background-position: -544px -192px +} + +.mcsprite-clay_ball { + background-position: -576px -192px +} + +.mcsprite-clock { + background-position: -608px -192px +} + +.mcsprite-clownfish { + background-position: -640px -192px +} + +.mcsprite-coal { + background-position: -672px -192px +} + +.mcsprite-coal_ore { + background-position: -704px -192px +} + +.mcsprite-coarse_dirt { + background-position: -736px -192px +} + +.mcsprite-cobbled_deepslate { + background-position: -768px -192px +} + +.mcsprite-cobbled_deepslate_slab { + background-position: -800px -192px +} + +.mcsprite-cobbled_deepslate_stairs { + background-position: -832px -192px +} + +.mcsprite-cobbled_deepslate_wall { + background-position: -864px -192px +} + +.mcsprite-cobblestone { + background-position: -896px -192px +} + +.mcsprite-cobblestone_monster_egg { + background-position: -928px -192px +} + +.mcsprite-cobblestone_slab { + background-position: -960px -192px +} + +.mcsprite-cobblestone_stairs { + background-position: -992px -192px +} + +.mcsprite-cobblestone_wall { + background-position: -1024px -192px +} + +.mcsprite-cobweb { + background-position: -1056px -192px +} + +.mcsprite-cocoa_beans { + background-position: -1088px -192px +} + +.mcsprite-cod_spawn_egg { + background-position: -1120px -192px +} + +.mcsprite-command_block { + background-position: -1152px -192px +} + +.mcsprite-compass { + background-position: -1184px -192px +} + +.mcsprite-composter { + background-position: -1216px -192px +} + +.mcsprite-conduit { + background-position: -1248px -192px +} + +.mcsprite-cooked_beef { + background-position: 0 -224px +} + +.mcsprite-cooked_chicken { + background-position: -32px -224px +} + +.mcsprite-cooked_cod { + background-position: -64px -224px +} + +.mcsprite-cooked_fish { + background-position: -96px -224px +} + +.mcsprite-cooked_mutton { + background-position: -128px -224px +} + +.mcsprite-cooked_porkchop { + background-position: -160px -224px +} + +.mcsprite-cooked_rabbit { + background-position: -192px -224px +} + +.mcsprite-cooked_salmon { + background-position: -224px -224px +} + +.mcsprite-cookie { + background-position: -256px -224px +} + +.mcsprite-copper_block { + background-position: -288px -224px +} + +.mcsprite-copper_ingot { + background-position: -320px -224px +} + +.mcsprite-copper_ore { + background-position: -352px -224px +} + +.mcsprite-cornflower { + background-position: -384px -224px +} + +.mcsprite-cow_spawn_egg { + background-position: -416px -224px +} + +.mcsprite-cracked_deepslate_bricks { + background-position: -448px -224px +} + +.mcsprite-cracked_deepslate_tiles { + background-position: -480px -224px +} + +.mcsprite-cracked_nether_bricks { + background-position: -512px -224px +} + +.mcsprite-cracked_polished_blackstone_bricks { + background-position: -544px -224px +} + +.mcsprite-cracked_stone_bricks { + background-position: -576px -224px +} + +.mcsprite-cracked_stone_bricks_monster_egg { + background-position: -608px -224px +} + +.mcsprite-crafting_table { + background-position: -640px -224px +} + +.mcsprite-creeper_head { + background-position: -672px -224px +} + +.mcsprite-creeper_spawn_egg { + background-position: -704px -224px +} + +.mcsprite-crimson_button { + background-position: -736px -224px +} + +.mcsprite-crimson_door { + background-position: -768px -224px +} + +.mcsprite-crimson_fence { + background-position: -800px -224px +} + +.mcsprite-crimson_fence_gate { + background-position: -832px -224px +} + +.mcsprite-crimson_fungus { + background-position: -864px -224px +} + +.mcsprite-crimson_hyphae { + background-position: -896px -224px +} + +.mcsprite-crimson_nylium { + background-position: -928px -224px +} + +.mcsprite-crimson_planks { + background-position: -960px -224px +} + +.mcsprite-crimson_pressure_plate { + background-position: -992px -224px +} + +.mcsprite-crimson_roots { + background-position: -1024px -224px +} + +.mcsprite-crimson_sign { + background-position: -1056px -224px +} + +.mcsprite-crimson_slab { + background-position: -1088px -224px +} + +.mcsprite-crimson_stairs { + background-position: -1120px -224px +} + +.mcsprite-crimson_stem { + background-position: -1152px -224px +} + +.mcsprite-crimson_trapdoor { + background-position: -1184px -224px +} + +.mcsprite-crossbow { + background-position: -1216px -224px +} + +.mcsprite-crying_obsidian { + background-position: -1248px -224px +} + +.mcsprite-cut_copper { + background-position: 0 -256px +} + +.mcsprite-cut_copper_block { + background-position: -32px -256px +} + +.mcsprite-cut_copper_slab { + background-position: -64px -256px +} + +.mcsprite-cut_copper_stairs { + background-position: -96px -256px +} + +.mcsprite-cut_red_sandstone { + background-position: -128px -256px +} + +.mcsprite-cut_red_sandstone_slab { + background-position: -160px -256px +} + +.mcsprite-cut_sandstone { + background-position: -192px -256px +} + +.mcsprite-cut_sandstone_slab { + background-position: -224px -256px +} + +.mcsprite-cyan_banner { + background-position: -256px -256px +} + +.mcsprite-cyan_bed { + background-position: -288px -256px +} + +.mcsprite-cyan_bed_lce { + background-position: -320px -256px +} + +.mcsprite-cyan_candle { + background-position: -352px -256px +} + +.mcsprite-cyan_carpet { + background-position: -384px -256px +} + +.mcsprite-cyan_concrete { + background-position: -416px -256px +} + +.mcsprite-cyan_concrete_powder { + background-position: -448px -256px +} + +.mcsprite-cyan_dye { + background-position: -480px -256px +} + +.mcsprite-cyan_firework_star { + background-position: -512px -256px +} + +.mcsprite-cyan_glazed_terracotta { + background-position: -544px -256px +} + +.mcsprite-cyan_shield { + background-position: -576px -256px +} + +.mcsprite-cyan_shulker_box { + background-position: -608px -256px +} + +.mcsprite-cyan_stained_glass { + background-position: -640px -256px +} + +.mcsprite-cyan_stained_glass_pane { + background-position: -672px -256px +} + +.mcsprite-cyan_terracotta { + background-position: -704px -256px +} + +.mcsprite-cyan_wool { + background-position: -736px -256px +} + +.mcsprite-dandelion { + background-position: -768px -256px +} + +.mcsprite-dandelion_yellow { + background-position: -800px -256px +} + +.mcsprite-dark_oak_boat { + background-position: -832px -256px +} + +.mcsprite-dark_oak_button { + background-position: -864px -256px +} + +.mcsprite-dark_oak_door { + background-position: -896px -256px +} + +.mcsprite-dark_oak_fence { + background-position: -928px -256px +} + +.mcsprite-dark_oak_fence_gate { + background-position: -960px -256px +} + +.mcsprite-dark_oak_leaves { + background-position: -992px -256px +} + +.mcsprite-dark_oak_log { + background-position: -1024px -256px +} + +.mcsprite-dark_oak_planks { + background-position: -1056px -256px +} + +.mcsprite-dark_oak_pressure_plate { + background-position: -1088px -256px +} + +.mcsprite-dark_oak_sapling { + background-position: -1120px -256px +} + +.mcsprite-dark_oak_sign { + background-position: -1152px -256px +} + +.mcsprite-dark_oak_slab { + background-position: -1184px -256px +} + +.mcsprite-dark_oak_stairs { + background-position: -1216px -256px +} + +.mcsprite-dark_oak_trapdoor { + background-position: -1248px -256px +} + +.mcsprite-dark_oak_wood { + background-position: 0 -288px +} + +.mcsprite-dark_oak_wood_button { + background-position: -32px -288px +} + +.mcsprite-dark_oak_wood_door { + background-position: -64px -288px +} + +.mcsprite-dark_oak_wood_fence { + background-position: -96px -288px +} + +.mcsprite-dark_oak_wood_fence_gate { + background-position: -128px -288px +} + +.mcsprite-dark_oak_wood_planks { + background-position: -160px -288px +} + +.mcsprite-dark_oak_wood_pressure_plate { + background-position: -192px -288px +} + +.mcsprite-dark_oak_wood_sign { + background-position: -224px -288px +} + +.mcsprite-dark_oak_wood_slab { + background-position: -256px -288px +} + +.mcsprite-dark_oak_wood_stairs { + background-position: -288px -288px +} + +.mcsprite-dark_oak_wood_trapdoor { + background-position: -320px -288px +} + +.mcsprite-dark_prismarine { + background-position: -352px -288px +} + +.mcsprite-dark_prismarine_slab { + background-position: -384px -288px +} + +.mcsprite-dark_prismarine_stairs { + background-position: -416px -288px +} + +.mcsprite-daylight_detector { + background-position: -448px -288px +} + +.mcsprite-daylight_sensor { + background-position: -480px -288px +} + +.mcsprite-dead_brain_coral { + background-position: -512px -288px +} + +.mcsprite-dead_brain_coral_block { + background-position: -544px -288px +} + +.mcsprite-dead_brain_coral_fan { + background-position: -576px -288px +} + +.mcsprite-dead_bubble_coral { + background-position: -608px -288px +} + +.mcsprite-dead_bubble_coral_block { + background-position: -640px -288px +} + +.mcsprite-dead_bubble_coral_fan { + background-position: -672px -288px +} + +.mcsprite-dead_bush { + background-position: -704px -288px +} + +.mcsprite-dead_fire_coral { + background-position: -736px -288px +} + +.mcsprite-dead_fire_coral_block { + background-position: -768px -288px +} + +.mcsprite-dead_fire_coral_fan { + background-position: -800px -288px +} + +.mcsprite-dead_horn_coral { + background-position: -832px -288px +} + +.mcsprite-dead_horn_coral_block { + background-position: -864px -288px +} + +.mcsprite-dead_horn_coral_fan { + background-position: -896px -288px +} + +.mcsprite-dead_tube_coral { + background-position: -928px -288px +} + +.mcsprite-dead_tube_coral_block { + background-position: -960px -288px +} + +.mcsprite-dead_tube_coral_fan { + background-position: -992px -288px +} + +.mcsprite-debug_stick { + background-position: -1024px -288px +} + +.mcsprite-deepslate { + background-position: -1056px -288px +} + +.mcsprite-deepslate_brick_slab { + background-position: -1088px -288px +} + +.mcsprite-deepslate_brick_stairs { + background-position: -1120px -288px +} + +.mcsprite-deepslate_brick_wall { + background-position: -1152px -288px +} + +.mcsprite-deepslate_bricks { + background-position: -1184px -288px +} + +.mcsprite-deepslate_coal_ore { + background-position: -1216px -288px +} + +.mcsprite-deepslate_copper_ore { + background-position: -1248px -288px +} + +.mcsprite-deepslate_diamond_ore { + background-position: 0 -320px +} + +.mcsprite-deepslate_emerald_ore { + background-position: -32px -320px +} + +.mcsprite-deepslate_gold_ore { + background-position: -64px -320px +} + +.mcsprite-deepslate_iron_ore { + background-position: -96px -320px +} + +.mcsprite-deepslate_lapis_lazuli_ore { + background-position: -128px -320px +} + +.mcsprite-deepslate_redstone_ore { + background-position: -160px -320px +} + +.mcsprite-deepslate_tile_slab { + background-position: -192px -320px +} + +.mcsprite-deepslate_tile_stairs { + background-position: -224px -320px +} + +.mcsprite-deepslate_tile_wall { + background-position: -256px -320px +} + +.mcsprite-deepslate_tiles { + background-position: -288px -320px +} + +.mcsprite-detector_rail { + background-position: -320px -320px +} + +.mcsprite-diamond { + background-position: -352px -320px +} + +.mcsprite-diamond_axe { + background-position: -384px -320px +} + +.mcsprite-diamond_boots { + background-position: -416px -320px +} + +.mcsprite-diamond_chestplate { + background-position: -448px -320px +} + +.mcsprite-diamond_helmet { + background-position: -480px -320px +} + +.mcsprite-diamond_hoe { + background-position: -512px -320px +} + +.mcsprite-diamond_horse_armor { + background-position: -544px -320px +} + +.mcsprite-diamond_leggings { + background-position: -576px -320px +} + +.mcsprite-diamond_ore { + background-position: -608px -320px +} + +.mcsprite-diamond_pickaxe { + background-position: -640px -320px +} + +.mcsprite-diamond_shovel { + background-position: -672px -320px +} + +.mcsprite-diamond_sword { + background-position: -704px -320px +} + +.mcsprite-diorite { + background-position: -736px -320px +} + +.mcsprite-diorite_slab { + background-position: -768px -320px +} + +.mcsprite-diorite_stairs { + background-position: -800px -320px +} + +.mcsprite-diorite_wall { + background-position: -832px -320px +} + +.mcsprite-dirt { + background-position: -864px -320px +} + +.mcsprite-dirt_path { + background-position: -896px -320px +} + +.mcsprite-dispenser { + background-position: -928px -320px +} + +.mcsprite-dolphin_spawn_egg { + background-position: -960px -320px +} + +.mcsprite-donkey_spawn_egg { + background-position: -992px -320px +} + +.mcsprite-double_smooth_stone_slab { + background-position: -1024px -320px +} + +.mcsprite-dragon_egg { + background-position: -1056px -320px +} + +.mcsprite-dragon_head { + background-position: -1088px -320px +} + +.mcsprite-dragons_breath { + background-position: -1120px -320px +} + +.mcsprite-dried_kelp { + background-position: -1152px -320px +} + +.mcsprite-dried_kelp_block { + background-position: -1184px -320px +} + +.mcsprite-dripstone_block { + background-position: -1216px -320px +} + +.mcsprite-dropper { + background-position: -1248px -320px +} + +.mcsprite-drowned_spawn_egg { + background-position: 0 -352px +} + +.mcsprite-egg { + background-position: -32px -352px +} + +.mcsprite-elder_guardian_spawn_egg { + background-position: -64px -352px +} + +.mcsprite-elytra { + background-position: -96px -352px +} + +.mcsprite-emerald { + background-position: -128px -352px +} + +.mcsprite-emerald_ore { + background-position: -160px -352px +} + +.mcsprite-empty_locator_map { + background-position: -192px -352px +} + +.mcsprite-empty_map { + background-position: -224px -352px +} + +.mcsprite-enchanted_apple { + background-position: -256px -352px +} + +.mcsprite-enchanted_book { + background-position: -288px -352px +} + +.mcsprite-enchanted_golden_apple { + background-position: -320px -352px +} + +.mcsprite-enchanting_table { + background-position: -352px -352px +} + +.mcsprite-enchantment_table { + background-position: -384px -352px +} + +.mcsprite-end_crystal { + background-position: -416px -352px +} + +.mcsprite-end_gateway { + background-position: -448px -352px +} + +.mcsprite-end_portal { + background-position: -480px -352px +} + +.mcsprite-end_portal_frame { + background-position: -512px -352px +} + +.mcsprite-end_rod { + background-position: -544px -352px +} + +.mcsprite-end_stone { + background-position: -576px -352px +} + +.mcsprite-end_stone_brick_slab { + background-position: -608px -352px +} + +.mcsprite-end_stone_brick_stairs { + background-position: -640px -352px +} + +.mcsprite-end_stone_brick_wall { + background-position: -672px -352px +} + +.mcsprite-end_stone_bricks { + background-position: -704px -352px +} + +.mcsprite-ender_chest { + background-position: -736px -352px +} + +.mcsprite-ender_pearl { + background-position: -768px -352px +} + +.mcsprite-enderman_spawn_egg { + background-position: -800px -352px +} + +.mcsprite-endermite_spawn_egg { + background-position: -832px -352px +} + +.mcsprite-evoker_spawn_egg { + background-position: -864px -352px +} + +.mcsprite-exposed_copper { + background-position: -896px -352px +} + +.mcsprite-exposed_copper_block { + background-position: -928px -352px +} + +.mcsprite-exposed_cut_copper { + background-position: -960px -352px +} + +.mcsprite-exposed_cut_copper_block { + background-position: -992px -352px +} + +.mcsprite-exposed_cut_copper_slab { + background-position: -1024px -352px +} + +.mcsprite-exposed_cut_copper_stairs { + background-position: -1056px -352px +} + +.mcsprite-eye_of_ender { + background-position: -1088px -352px +} + +.mcsprite-farmland { + background-position: -1120px -352px +} + +.mcsprite-feather { + background-position: -1152px -352px +} + +.mcsprite-fermented_spider_eye { + background-position: -1184px -352px +} + +.mcsprite-fern { + background-position: -1216px -352px +} + +.mcsprite-filled_bundle { + background-position: -1248px -352px +} + +.mcsprite-fire_charge { + background-position: 0 -384px +} + +.mcsprite-fire_coral { + background-position: -32px -384px +} + +.mcsprite-fire_coral_block { + background-position: -64px -384px +} + +.mcsprite-fire_coral_fan { + background-position: -96px -384px +} + +.mcsprite-firework_loaded_crossbow { + background-position: -128px -384px +} + +.mcsprite-firework_rocket { + background-position: -160px -384px +} + +.mcsprite-firework_star { + background-position: -192px -384px +} + +.mcsprite-fishing_rod { + background-position: -224px -384px +} + +.mcsprite-fletching_table { + background-position: -256px -384px +} + +.mcsprite-flint { + background-position: -288px -384px +} + +.mcsprite-flint_and_steel { + background-position: -320px -384px +} + +.mcsprite-flower_pot { + background-position: -352px -384px +} + +.mcsprite-flowering_azalea { + background-position: -384px -384px +} + +.mcsprite-flowering_azalea_leaves { + background-position: -416px -384px +} + +.mcsprite-flowing_lava { + background-position: -448px -384px +} + +.mcsprite-flowing_water { + background-position: -480px -384px +} + +.mcsprite-fox_spawn_egg { + background-position: -512px -384px +} + +.mcsprite-frosted_ice { + background-position: -544px -384px +} + +.mcsprite-furnace { + background-position: -576px -384px +} + +.mcsprite-ghast_spawn_egg { + background-position: -608px -384px +} + +.mcsprite-ghast_tear { + background-position: -640px -384px +} + +.mcsprite-gilded_blackstone { + background-position: -672px -384px +} + +.mcsprite-glass { + background-position: -704px -384px +} + +.mcsprite-glass_bottle { + background-position: -736px -384px +} + +.mcsprite-glass_pane { + background-position: -768px -384px +} + +.mcsprite-glistering_melon { + background-position: -800px -384px +} + +.mcsprite-glistering_melon_slice { + background-position: -832px -384px +} + +.mcsprite-glow_berries { + background-position: -864px -384px +} + +.mcsprite-glow_ink_sac { + background-position: -896px -384px +} + +.mcsprite-glow_item_frame { + background-position: -928px -384px +} + +.mcsprite-glow_lichen { + background-position: -960px -384px +} + +.mcsprite-glow_squid_spawn_egg { + background-position: -992px -384px +} + +.mcsprite-glowstone { + background-position: -1024px -384px +} + +.mcsprite-glowstone_dust { + background-position: -1056px -384px +} + +.mcsprite-goat_horn { + background-position: -1088px -384px +} + +.mcsprite-goat_spawn_egg { + background-position: -1120px -384px +} + +.mcsprite-gold_ingot { + background-position: -1152px -384px +} + +.mcsprite-gold_nugget { + background-position: -1184px -384px +} + +.mcsprite-gold_ore { + background-position: -1216px -384px +} + +.mcsprite-golden_apple { + background-position: -1248px -384px +} + +.mcsprite-golden_axe { + background-position: 0 -416px +} + +.mcsprite-golden_boots { + background-position: -32px -416px +} + +.mcsprite-golden_carrot { + background-position: -64px -416px +} + +.mcsprite-golden_chestplate { + background-position: -96px -416px +} + +.mcsprite-golden_helmet { + background-position: -128px -416px +} + +.mcsprite-golden_hoe { + background-position: -160px -416px +} + +.mcsprite-golden_horse_armor { + background-position: -192px -416px +} + +.mcsprite-golden_leggings { + background-position: -224px -416px +} + +.mcsprite-golden_pickaxe { + background-position: -256px -416px +} + +.mcsprite-golden_shovel { + background-position: -288px -416px +} + +.mcsprite-golden_sword { + background-position: -320px -416px +} + +.mcsprite-granite { + background-position: -352px -416px +} + +.mcsprite-granite_slab { + background-position: -384px -416px +} + +.mcsprite-granite_stairs { + background-position: -416px -416px +} + +.mcsprite-granite_wall { + background-position: -448px -416px +} + +.mcsprite-grass { + background-position: -480px -416px +} + +.mcsprite-grass_block { + background-position: -512px -416px +} + +.mcsprite-grass_path { + background-position: -544px -416px +} + +.mcsprite-gravel { + background-position: -576px -416px +} + +.mcsprite-gray_banner { + background-position: -608px -416px +} + +.mcsprite-gray_bed { + background-position: -640px -416px +} + +.mcsprite-gray_bed_lce { + background-position: -672px -416px +} + +.mcsprite-gray_candle { + background-position: -704px -416px +} + +.mcsprite-gray_carpet { + background-position: -736px -416px +} + +.mcsprite-gray_concrete { + background-position: -768px -416px +} + +.mcsprite-gray_concrete_powder { + background-position: -800px -416px +} + +.mcsprite-gray_dye { + background-position: -832px -416px +} + +.mcsprite-gray_firework_star { + background-position: -864px -416px +} + +.mcsprite-gray_glazed_terracotta { + background-position: -896px -416px +} + +.mcsprite-gray_shield { + background-position: -928px -416px +} + +.mcsprite-gray_shulker_box { + background-position: -960px -416px +} + +.mcsprite-gray_stained_glass { + background-position: -992px -416px +} + +.mcsprite-gray_stained_glass_pane { + background-position: -1024px -416px +} + +.mcsprite-gray_terracotta { + background-position: -1056px -416px +} + +.mcsprite-gray_wool { + background-position: -1088px -416px +} + +.mcsprite-green_banner { + background-position: -1120px -416px +} + +.mcsprite-green_bed { + background-position: -1152px -416px +} + +.mcsprite-green_bed_lce { + background-position: -1184px -416px +} + +.mcsprite-green_candle { + background-position: -1216px -416px +} + +.mcsprite-green_carpet { + background-position: -1248px -416px +} + +.mcsprite-green_concrete { + background-position: 0 -448px +} + +.mcsprite-green_concrete_powder { + background-position: -32px -448px +} + +.mcsprite-green_dye { + background-position: -64px -448px +} + +.mcsprite-green_firework_star { + background-position: -96px -448px +} + +.mcsprite-green_glazed_terracotta { + background-position: -128px -448px +} + +.mcsprite-green_shield { + background-position: -160px -448px +} + +.mcsprite-green_shulker_box { + background-position: -192px -448px +} + +.mcsprite-green_stained_glass { + background-position: -224px -448px +} + +.mcsprite-green_stained_glass_pane { + background-position: -256px -448px +} + +.mcsprite-green_terracotta { + background-position: -288px -448px +} + +.mcsprite-green_wool { + background-position: -320px -448px +} + +.mcsprite-grindstone { + background-position: -352px -448px +} + +.mcsprite-guardian_spawn_egg { + background-position: -384px -448px +} + +.mcsprite-gunpowder { + background-position: -416px -448px +} + +.mcsprite-half_filled_bundle { + background-position: -448px -448px +} + +.mcsprite-hanging_roots { + background-position: -480px -448px +} + +.mcsprite-hay_bale { + background-position: -512px -448px +} + +.mcsprite-head { + background-position: -544px -448px +} + +.mcsprite-heart_of_the_sea { + background-position: -576px -448px +} + +.mcsprite-heavy_weighted_pressure_plate { + background-position: -608px -448px +} + +.mcsprite-hoglin_spawn_egg { + background-position: -640px -448px +} + +.mcsprite-honey_block { + background-position: -672px -448px +} + +.mcsprite-honey_bottle { + background-position: -704px -448px +} + +.mcsprite-honeycomb { + background-position: -736px -448px +} + +.mcsprite-honeycomb_block { + background-position: -768px -448px +} + +.mcsprite-hopper { + background-position: -800px -448px +} + +.mcsprite-horn_coral { + background-position: -832px -448px +} + +.mcsprite-horn_coral_block { + background-position: -864px -448px +} + +.mcsprite-horn_coral_fan { + background-position: -896px -448px +} + +.mcsprite-horse_spawn_egg { + background-position: -928px -448px +} + +.mcsprite-husk_spawn_egg { + background-position: -960px -448px +} + +.mcsprite-ice { + background-position: -992px -448px +} + +.mcsprite-infested_chiseled_stone_bricks { + background-position: -1024px -448px +} + +.mcsprite-infested_cobblestone { + background-position: -1056px -448px +} + +.mcsprite-infested_cracked_stone_bricks { + background-position: -1088px -448px +} + +.mcsprite-infested_deepslate { + background-position: -1120px -448px +} + +.mcsprite-infested_mossy_stone_bricks { + background-position: -1152px -448px +} + +.mcsprite-infested_stone { + background-position: -1184px -448px +} + +.mcsprite-infested_stone_bricks { + background-position: -1216px -448px +} + +.mcsprite-ink_sac { + background-position: -1248px -448px +} + +.mcsprite-inverted_daylight_detector { + background-position: 0 -480px +} + +.mcsprite-inverted_daylight_sensor { + background-position: -32px -480px +} + +.mcsprite-invisible_bedrock { + background-position: -64px -480px +} + +.mcsprite-iron_axe { + background-position: -96px -480px +} + +.mcsprite-iron_bars { + background-position: -128px -480px +} + +.mcsprite-iron_boots { + background-position: -160px -480px +} + +.mcsprite-iron_chestplate { + background-position: -192px -480px +} + +.mcsprite-iron_door { + background-position: -224px -480px +} + +.mcsprite-iron_helmet { + background-position: -256px -480px +} + +.mcsprite-iron_hoe { + background-position: -288px -480px +} + +.mcsprite-iron_horse_armor { + background-position: -320px -480px +} + +.mcsprite-iron_ingot { + background-position: -352px -480px +} + +.mcsprite-iron_leggings { + background-position: -384px -480px +} + +.mcsprite-iron_nugget { + background-position: -416px -480px +} + +.mcsprite-iron_ore { + background-position: -448px -480px +} + +.mcsprite-iron_pickaxe { + background-position: -480px -480px +} + +.mcsprite-iron_shovel { + background-position: -512px -480px +} + +.mcsprite-iron_sword { + background-position: -544px -480px +} + +.mcsprite-iron_trapdoor { + background-position: -576px -480px +} + +.mcsprite-item_frame { + background-position: -608px -480px +} + +.mcsprite-jack_olantern { + background-position: -640px -480px +} + +.mcsprite-jigsaw { + background-position: -672px -480px +} + +.mcsprite-jigsaw_block { + background-position: -704px -480px +} + +.mcsprite-jukebox { + background-position: -736px -480px +} + +.mcsprite-jungle_boat { + background-position: -768px -480px +} + +.mcsprite-jungle_button { + background-position: -800px -480px +} + +.mcsprite-jungle_door { + background-position: -832px -480px +} + +.mcsprite-jungle_fence { + background-position: -864px -480px +} + +.mcsprite-jungle_fence_gate { + background-position: -896px -480px +} + +.mcsprite-jungle_leaves { + background-position: -928px -480px +} + +.mcsprite-jungle_log { + background-position: -960px -480px +} + +.mcsprite-jungle_planks { + background-position: -992px -480px +} + +.mcsprite-jungle_pressure_plate { + background-position: -1024px -480px +} + +.mcsprite-jungle_sapling { + background-position: -1056px -480px +} + +.mcsprite-jungle_sign { + background-position: -1088px -480px +} + +.mcsprite-jungle_slab { + background-position: -1120px -480px +} + +.mcsprite-jungle_stairs { + background-position: -1152px -480px +} + +.mcsprite-jungle_trapdoor { + background-position: -1184px -480px +} + +.mcsprite-jungle_wood { + background-position: -1216px -480px +} + +.mcsprite-jungle_wood_button { + background-position: -1248px -480px +} + +.mcsprite-jungle_wood_door { + background-position: 0 -512px +} + +.mcsprite-jungle_wood_fence { + background-position: -32px -512px +} + +.mcsprite-jungle_wood_fence_gate { + background-position: -64px -512px +} + +.mcsprite-jungle_wood_planks { + background-position: -96px -512px +} + +.mcsprite-jungle_wood_pressure_plate { + background-position: -128px -512px +} + +.mcsprite-jungle_wood_sign { + background-position: -160px -512px +} + +.mcsprite-jungle_wood_slab { + background-position: -192px -512px +} + +.mcsprite-jungle_wood_stairs { + background-position: -224px -512px +} + +.mcsprite-jungle_wood_trapdoor { + background-position: -256px -512px +} + +.mcsprite-kelp { + background-position: -288px -512px +} + +.mcsprite-knowledge_book { + background-position: -320px -512px +} + +.mcsprite-ladder { + background-position: -352px -512px +} + +.mcsprite-lantern { + background-position: -384px -512px +} + +.mcsprite-lapis_lazuli { + background-position: -416px -512px +} + +.mcsprite-lapis_lazuli_block { + background-position: -448px -512px +} + +.mcsprite-lapis_lazuli_ore { + background-position: -480px -512px +} + +.mcsprite-large_amethyst_bud { + background-position: -512px -512px +} + +.mcsprite-large_fern { + background-position: -544px -512px +} + +.mcsprite-lava { + background-position: -576px -512px +} + +.mcsprite-lava_bucket { + background-position: -608px -512px +} + +.mcsprite-lead { + background-position: -640px -512px +} + +.mcsprite-leather { + background-position: -672px -512px +} + +.mcsprite-leather_boots { + background-position: -704px -512px +} + +.mcsprite-leather_boots_black { + background-position: -736px -512px +} + +.mcsprite-leather_boots_blue { + background-position: -768px -512px +} + +.mcsprite-leather_boots_cyan { + background-position: -800px -512px +} + +.mcsprite-leather_boots_gray { + background-position: -832px -512px +} + +.mcsprite-leather_boots_green { + background-position: -864px -512px +} + +.mcsprite-leather_boots_light_blue { + background-position: -896px -512px +} + +.mcsprite-leather_boots_light_gray { + background-position: -928px -512px +} + +.mcsprite-leather_boots_lime { + background-position: -960px -512px +} + +.mcsprite-leather_boots_magenta { + background-position: -992px -512px +} + +.mcsprite-leather_boots_orange { + background-position: -1024px -512px +} + +.mcsprite-leather_boots_pink { + background-position: -1056px -512px +} + +.mcsprite-leather_boots_purple { + background-position: -1088px -512px +} + +.mcsprite-leather_boots_red { + background-position: -1120px -512px +} + +.mcsprite-leather_boots_white { + background-position: -1152px -512px +} + +.mcsprite-leather_boots_yellow { + background-position: -1184px -512px +} + +.mcsprite-leather_cap { + background-position: -1216px -512px +} + +.mcsprite-leather_cap_black { + background-position: -1248px -512px +} + +.mcsprite-leather_cap_blue { + background-position: 0 -544px +} + +.mcsprite-leather_cap_cyan { + background-position: -32px -544px +} + +.mcsprite-leather_cap_gray { + background-position: -64px -544px +} + +.mcsprite-leather_cap_green { + background-position: -96px -544px +} + +.mcsprite-leather_cap_light_blue { + background-position: -128px -544px +} + +.mcsprite-leather_cap_light_gray { + background-position: -160px -544px +} + +.mcsprite-leather_cap_lime { + background-position: -192px -544px +} + +.mcsprite-leather_cap_magenta { + background-position: -224px -544px +} + +.mcsprite-leather_cap_orange { + background-position: -256px -544px +} + +.mcsprite-leather_cap_pink { + background-position: -288px -544px +} + +.mcsprite-leather_cap_purple { + background-position: -320px -544px +} + +.mcsprite-leather_cap_red { + background-position: -352px -544px +} + +.mcsprite-leather_cap_white { + background-position: -384px -544px +} + +.mcsprite-leather_cap_yellow { + background-position: -416px -544px +} + +.mcsprite-leather_horse_armor { + background-position: -448px -544px +} + +.mcsprite-leather_pants { + background-position: -480px -544px +} + +.mcsprite-leather_pants_black { + background-position: -512px -544px +} + +.mcsprite-leather_pants_blue { + background-position: -544px -544px +} + +.mcsprite-leather_pants_cyan { + background-position: -576px -544px +} + +.mcsprite-leather_pants_gray { + background-position: -608px -544px +} + +.mcsprite-leather_pants_green { + background-position: -640px -544px +} + +.mcsprite-leather_pants_light_blue { + background-position: -672px -544px +} + +.mcsprite-leather_pants_light_gray { + background-position: -704px -544px +} + +.mcsprite-leather_pants_lime { + background-position: -736px -544px +} + +.mcsprite-leather_pants_magenta { + background-position: -768px -544px +} + +.mcsprite-leather_pants_orange { + background-position: -800px -544px +} + +.mcsprite-leather_pants_pink { + background-position: -832px -544px +} + +.mcsprite-leather_pants_purple { + background-position: -864px -544px +} + +.mcsprite-leather_pants_red { + background-position: -896px -544px +} + +.mcsprite-leather_pants_white { + background-position: -928px -544px +} + +.mcsprite-leather_pants_yellow { + background-position: -960px -544px +} + +.mcsprite-leather_tunic { + background-position: -992px -544px +} + +.mcsprite-leather_tunic_black { + background-position: -1024px -544px +} + +.mcsprite-leather_tunic_blue { + background-position: -1056px -544px +} + +.mcsprite-leather_tunic_cyan { + background-position: -1088px -544px +} + +.mcsprite-leather_tunic_gray { + background-position: -1120px -544px +} + +.mcsprite-leather_tunic_green { + background-position: -1152px -544px +} + +.mcsprite-leather_tunic_light_blue { + background-position: -1184px -544px +} + +.mcsprite-leather_tunic_light_gray { + background-position: -1216px -544px +} + +.mcsprite-leather_tunic_lime { + background-position: -1248px -544px +} + +.mcsprite-leather_tunic_magenta { + background-position: 0 -576px +} + +.mcsprite-leather_tunic_orange { + background-position: -32px -576px +} + +.mcsprite-leather_tunic_pink { + background-position: -64px -576px +} + +.mcsprite-leather_tunic_purple { + background-position: -96px -576px +} + +.mcsprite-leather_tunic_red { + background-position: -128px -576px +} + +.mcsprite-leather_tunic_white { + background-position: -160px -576px +} + +.mcsprite-leather_tunic_yellow { + background-position: -192px -576px +} + +.mcsprite-lectern { + background-position: -224px -576px +} + +.mcsprite-lever { + background-position: -256px -576px +} + +.mcsprite-light_blue_banner { + background-position: -288px -576px +} + +.mcsprite-light_blue_bed { + background-position: -320px -576px +} + +.mcsprite-light_blue_bed_lce { + background-position: -352px -576px +} + +.mcsprite-light_blue_candle { + background-position: -384px -576px +} + +.mcsprite-light_blue_carpet { + background-position: -416px -576px +} + +.mcsprite-light_blue_concrete { + background-position: -448px -576px +} + +.mcsprite-light_blue_concrete_powder { + background-position: -480px -576px +} + +.mcsprite-light_blue_dye { + background-position: -512px -576px +} + +.mcsprite-light_blue_firework_star { + background-position: -544px -576px +} + +.mcsprite-light_blue_glazed_terracotta { + background-position: -576px -576px +} + +.mcsprite-light_blue_shield { + background-position: -608px -576px +} + +.mcsprite-light_blue_shulker_box { + background-position: -640px -576px +} + +.mcsprite-light_blue_stained_glass { + background-position: -672px -576px +} + +.mcsprite-light_blue_stained_glass_pane { + background-position: -704px -576px +} + +.mcsprite-light_blue_terracotta { + background-position: -736px -576px +} + +.mcsprite-light_blue_wool { + background-position: -768px -576px +} + +.mcsprite-light_gray_banner { + background-position: -800px -576px +} + +.mcsprite-light_gray_bed { + background-position: -832px -576px +} + +.mcsprite-light_gray_bed_lce { + background-position: -864px -576px +} + +.mcsprite-light_gray_candle { + background-position: -896px -576px +} + +.mcsprite-light_gray_carpet { + background-position: -928px -576px +} + +.mcsprite-light_gray_concrete { + background-position: -960px -576px +} + +.mcsprite-light_gray_concrete_powder { + background-position: -992px -576px +} + +.mcsprite-light_gray_dye { + background-position: -1024px -576px +} + +.mcsprite-light_gray_firework_star { + background-position: -1056px -576px +} + +.mcsprite-light_gray_glazed_terracotta { + background-position: -1088px -576px +} + +.mcsprite-light_gray_shield { + background-position: -1120px -576px +} + +.mcsprite-light_gray_shulker_box { + background-position: -1152px -576px +} + +.mcsprite-light_gray_stained_glass { + background-position: -1184px -576px +} + +.mcsprite-light_gray_stained_glass_pane { + background-position: -1216px -576px +} + +.mcsprite-light_gray_terracotta { + background-position: -1248px -576px +} + +.mcsprite-light_gray_wool { + background-position: 0 -608px +} + +.mcsprite-light_negative { + background-position: -32px -608px +} + +.mcsprite-light_weighted_pressure_plate { + background-position: -64px -608px +} + +.mcsprite-lightning_rod { + background-position: -96px -608px +} + +.mcsprite-lilac { + background-position: -128px -608px +} + +.mcsprite-lily_of_the_valley { + background-position: -160px -608px +} + +.mcsprite-lily_pad { + background-position: -192px -608px +} + +.mcsprite-lime_banner { + background-position: -224px -608px +} + +.mcsprite-lime_bed { + background-position: -256px -608px +} + +.mcsprite-lime_bed_lce { + background-position: -288px -608px +} + +.mcsprite-lime_candle { + background-position: -320px -608px +} + +.mcsprite-lime_carpet { + background-position: -352px -608px +} + +.mcsprite-lime_concrete { + background-position: -384px -608px +} + +.mcsprite-lime_concrete_powder { + background-position: -416px -608px +} + +.mcsprite-lime_dye { + background-position: -448px -608px +} + +.mcsprite-lime_firework_star { + background-position: -480px -608px +} + +.mcsprite-lime_glazed_terracotta { + background-position: -512px -608px +} + +.mcsprite-lime_shield { + background-position: -544px -608px +} + +.mcsprite-lime_shulker_box { + background-position: -576px -608px +} + +.mcsprite-lime_stained_glass { + background-position: -608px -608px +} + +.mcsprite-lime_stained_glass_pane { + background-position: -640px -608px +} + +.mcsprite-lime_terracotta { + background-position: -672px -608px +} + +.mcsprite-lime_wool { + background-position: -704px -608px +} + +.mcsprite-lingering_potion_of_decay { + background-position: -736px -608px +} + +.mcsprite-lingering_potion_of_fire_resistance { + background-position: -768px -608px +} + +.mcsprite-lingering_potion_of_harming { + background-position: -800px -608px +} + +.mcsprite-lingering_potion_of_healing { + background-position: -832px -608px +} + +.mcsprite-lingering_potion_of_invisibility { + background-position: -864px -608px +} + +.mcsprite-lingering_potion_of_leaping { + background-position: -896px -608px +} + +.mcsprite-lingering_potion_of_levitation { + background-position: -928px -608px +} + +.mcsprite-lingering_potion_of_luck { + background-position: -960px -608px +} + +.mcsprite-lingering_potion_of_night_vision { + background-position: -992px -608px +} + +.mcsprite-lingering_potion_of_poison { + background-position: -1024px -608px +} + +.mcsprite-lingering_potion_of_regeneration { + background-position: -1056px -608px +} + +.mcsprite-lingering_potion_of_slow_falling { + background-position: -1088px -608px +} + +.mcsprite-lingering_potion_of_slowness { + background-position: -1120px -608px +} + +.mcsprite-lingering_potion_of_strength { + background-position: -1152px -608px +} + +.mcsprite-lingering_potion_of_swiftness { + background-position: -1184px -608px +} + +.mcsprite-lingering_potion_of_the_turtle_master { + background-position: -1216px -608px +} + +.mcsprite-lingering_potion_of_water_breathing { + background-position: -1248px -608px +} + +.mcsprite-lingering_potion_of_weakness { + background-position: 0 -640px +} + +.mcsprite-lingering_water_bottle { + background-position: -32px -640px +} + +.mcsprite-llama_spawn_egg { + background-position: -64px -640px +} + +.mcsprite-locked_map { + background-position: -96px -640px +} + +.mcsprite-lodestone { + background-position: -128px -640px +} + +.mcsprite-loom { + background-position: -160px -640px +} + +.mcsprite-magenta_banner { + background-position: -192px -640px +} + +.mcsprite-magenta_bed { + background-position: -224px -640px +} + +.mcsprite-magenta_bed_lce { + background-position: -256px -640px +} + +.mcsprite-magenta_candle { + background-position: -288px -640px +} + +.mcsprite-magenta_carpet { + background-position: -320px -640px +} + +.mcsprite-magenta_concrete { + background-position: -352px -640px +} + +.mcsprite-magenta_concrete_powder { + background-position: -384px -640px +} + +.mcsprite-magenta_dye { + background-position: -416px -640px +} + +.mcsprite-magenta_firework_star { + background-position: -448px -640px +} + +.mcsprite-magenta_glazed_terracotta { + background-position: -480px -640px +} + +.mcsprite-magenta_shield { + background-position: -512px -640px +} + +.mcsprite-magenta_shulker_box { + background-position: -544px -640px +} + +.mcsprite-magenta_stained_glass { + background-position: -576px -640px +} + +.mcsprite-magenta_stained_glass_pane { + background-position: -608px -640px +} + +.mcsprite-magenta_terracotta { + background-position: -640px -640px +} + +.mcsprite-magenta_wool { + background-position: -672px -640px +} + +.mcsprite-magma_cream { + background-position: -704px -640px +} + +.mcsprite-magma_cube_spawn_egg { + background-position: -736px -640px +} + +.mcsprite-map { + background-position: -768px -640px +} + +.mcsprite-medium_amethyst_bud { + background-position: -800px -640px +} + +.mcsprite-melon { + background-position: -832px -640px +} + +.mcsprite-melon_seeds { + background-position: -864px -640px +} + +.mcsprite-melon_slice { + background-position: -896px -640px +} + +.mcsprite-mhf_alex { + background-position: -928px -640px +} + +.mcsprite-mhf_arrowdown { + background-position: -960px -640px +} + +.mcsprite-mhf_arrowleft { + background-position: -992px -640px +} + +.mcsprite-mhf_arrowright { + background-position: -1024px -640px +} + +.mcsprite-mhf_arrowup { + background-position: -1056px -640px +} + +.mcsprite-mhf_blaze { + background-position: -1088px -640px +} + +.mcsprite-mhf_cactus { + background-position: -1120px -640px +} + +.mcsprite-mhf_cake { + background-position: -1152px -640px +} + +.mcsprite-mhf_cavespider { + background-position: -1184px -640px +} + +.mcsprite-mhf_chest { + background-position: -1216px -640px +} + +.mcsprite-mhf_chicken { + background-position: -1248px -640px +} + +.mcsprite-mhf_coconutb { + background-position: 0 -672px +} + +.mcsprite-mhf_coconutg { + background-position: -32px -672px +} + +.mcsprite-mhf_cow { + background-position: -64px -672px +} + +.mcsprite-mhf_creeper { + background-position: -96px -672px +} + +.mcsprite-mhf_enderman { + background-position: -128px -672px +} + +.mcsprite-mhf_exclamation { + background-position: -160px -672px +} + +.mcsprite-mhf_ghast { + background-position: -192px -672px +} + +.mcsprite-mhf_golem { + background-position: -224px -672px +} + +.mcsprite-mhf_herobrine { + background-position: -256px -672px +} + +.mcsprite-mhf_lavaslime { + background-position: -288px -672px +} + +.mcsprite-mhf_melon { + background-position: -320px -672px +} + +.mcsprite-mhf_mushroomcow { + background-position: -352px -672px +} + +.mcsprite-mhf_oaklog { + background-position: -384px -672px +} + +.mcsprite-mhf_ocelot { + background-position: -416px -672px +} + +.mcsprite-mhf_pig { + background-position: -448px -672px +} + +.mcsprite-mhf_pigzombie { + background-position: -480px -672px +} + +.mcsprite-mhf_present1 { + background-position: -512px -672px +} + +.mcsprite-mhf_present2 { + background-position: -544px -672px +} + +.mcsprite-mhf_pumpkin { + background-position: -576px -672px +} + +.mcsprite-mhf_question { + background-position: -608px -672px +} + +.mcsprite-mhf_sheep { + background-position: -640px -672px +} + +.mcsprite-mhf_skeleton { + background-position: -672px -672px +} + +.mcsprite-mhf_slime { + background-position: -704px -672px +} + +.mcsprite-mhf_spider { + background-position: -736px -672px +} + +.mcsprite-mhf_squid { + background-position: -768px -672px +} + +.mcsprite-mhf_steve { + background-position: -800px -672px +} + +.mcsprite-mhf_tnt { + background-position: -832px -672px +} + +.mcsprite-mhf_tnt2 { + background-position: -864px -672px +} + +.mcsprite-mhf_villager { + background-position: -896px -672px +} + +.mcsprite-mhf_wskeleton { + background-position: -928px -672px +} + +.mcsprite-mhf_zombie { + background-position: -960px -672px +} + +.mcsprite-milk_bucket { + background-position: -992px -672px +} + +.mcsprite-minecart { + background-position: -1024px -672px +} + +.mcsprite-minecart_with_chest { + background-position: -1056px -672px +} + +.mcsprite-minecart_with_command_block { + background-position: -1088px -672px +} + +.mcsprite-minecart_with_furnace { + background-position: -1120px -672px +} + +.mcsprite-minecart_with_hopper { + background-position: -1152px -672px +} + +.mcsprite-minecart_with_tnt { + background-position: -1184px -672px +} + +.mcsprite-monster_spawner { + background-position: -1216px -672px +} + +.mcsprite-mooshroom_spawn_egg { + background-position: -1248px -672px +} + +.mcsprite-moss_block { + background-position: 0 -704px +} + +.mcsprite-moss_carpet { + background-position: -32px -704px +} + +.mcsprite-moss_stone { + background-position: -64px -704px +} + +.mcsprite-mossy_cobblestone { + background-position: -96px -704px +} + +.mcsprite-mossy_cobblestone_slab { + background-position: -128px -704px +} + +.mcsprite-mossy_cobblestone_stairs { + background-position: -160px -704px +} + +.mcsprite-mossy_cobblestone_wall { + background-position: -192px -704px +} + +.mcsprite-mossy_stone_brick_slab { + background-position: -224px -704px +} + +.mcsprite-mossy_stone_brick_stairs { + background-position: -256px -704px +} + +.mcsprite-mossy_stone_brick_wall { + background-position: -288px -704px +} + +.mcsprite-mossy_stone_bricks { + background-position: -320px -704px +} + +.mcsprite-mossy_stone_bricks_monster_egg { + background-position: -352px -704px +} + +.mcsprite-mule_spawn_egg { + background-position: -384px -704px +} + +.mcsprite-mundane_lingering_potion { + background-position: -416px -704px +} + +.mcsprite-mundane_potion { + background-position: -448px -704px +} + +.mcsprite-mundane_splash_potion { + background-position: -480px -704px +} + +.mcsprite-mushroom_stem { + background-position: -512px -704px +} + +.mcsprite-mushroom_stew { + background-position: -544px -704px +} + +.mcsprite-music_disc_11 { + background-position: -576px -704px +} + +.mcsprite-music_disc_13 { + background-position: -608px -704px +} + +.mcsprite-music_disc_blocks { + background-position: -640px -704px +} + +.mcsprite-music_disc_cat { + background-position: -672px -704px +} + +.mcsprite-music_disc_chirp { + background-position: -704px -704px +} + +.mcsprite-music_disc_far { + background-position: -736px -704px +} + +.mcsprite-music_disc_mall { + background-position: -768px -704px +} + +.mcsprite-music_disc_mellohi { + background-position: -800px -704px +} + +.mcsprite-music_disc_pigstep { + background-position: -832px -704px +} + +.mcsprite-music_disc_stal { + background-position: -864px -704px +} + +.mcsprite-music_disc_strad { + background-position: -896px -704px +} + +.mcsprite-music_disc_wait { + background-position: -928px -704px +} + +.mcsprite-music_disc_ward { + background-position: -960px -704px +} + +.mcsprite-mycelium { + background-position: -992px -704px +} + +.mcsprite-name_tag { + background-position: -1024px -704px +} + +.mcsprite-nautilus_shell { + background-position: -1056px -704px +} + +.mcsprite-nether_brick { + background-position: -1088px -704px +} + +.mcsprite-nether_brick_block { + background-position: -1120px -704px +} + +.mcsprite-nether_brick_fence { + background-position: -1152px -704px +} + +.mcsprite-nether_brick_slab { + background-position: -1184px -704px +} + +.mcsprite-nether_brick_stairs { + background-position: -1216px -704px +} + +.mcsprite-nether_brick_wall { + background-position: -1248px -704px +} + +.mcsprite-nether_bricks { + background-position: 0 -736px +} + +.mcsprite-nether_gold_ore { + background-position: -32px -736px +} + +.mcsprite-nether_quartz { + background-position: -64px -736px +} + +.mcsprite-nether_quartz_ore { + background-position: -96px -736px +} + +.mcsprite-nether_sprouts { + background-position: -128px -736px +} + +.mcsprite-nether_sprouts_old { + background-position: -160px -736px +} + +.mcsprite-nether_star { + background-position: -192px -736px +} + +.mcsprite-nether_wart { + background-position: -224px -736px +} + +.mcsprite-nether_wart_block { + background-position: -256px -736px +} + +.mcsprite-netherite_axe { + background-position: -288px -736px +} + +.mcsprite-netherite_boots { + background-position: -320px -736px +} + +.mcsprite-netherite_chestplate { + background-position: -352px -736px +} + +.mcsprite-netherite_helmet { + background-position: -384px -736px +} + +.mcsprite-netherite_hoe { + background-position: -416px -736px +} + +.mcsprite-netherite_ingot { + background-position: -448px -736px +} + +.mcsprite-netherite_leggings { + background-position: -480px -736px +} + +.mcsprite-netherite_pickaxe { + background-position: -512px -736px +} + +.mcsprite-netherite_scrap { + background-position: -544px -736px +} + +.mcsprite-netherite_shovel { + background-position: -576px -736px +} + +.mcsprite-netherite_sword { + background-position: -608px -736px +} + +.mcsprite-netherrack { + background-position: -640px -736px +} + +.mcsprite-note_block { + background-position: -672px -736px +} + +.mcsprite-oak_boat { + background-position: -704px -736px +} + +.mcsprite-oak_button { + background-position: -736px -736px +} + +.mcsprite-oak_door { + background-position: -768px -736px +} + +.mcsprite-oak_fence { + background-position: -800px -736px +} + +.mcsprite-oak_fence_gate { + background-position: -832px -736px +} + +.mcsprite-oak_leaves { + background-position: -864px -736px +} + +.mcsprite-oak_log { + background-position: -896px -736px +} + +.mcsprite-oak_planks { + background-position: -928px -736px +} + +.mcsprite-oak_pressure_plate { + background-position: -960px -736px +} + +.mcsprite-oak_sapling { + background-position: -992px -736px +} + +.mcsprite-oak_sign { + background-position: -1024px -736px +} + +.mcsprite-oak_slab { + background-position: -1056px -736px +} + +.mcsprite-oak_stairs { + background-position: -1088px -736px +} + +.mcsprite-oak_trapdoor { + background-position: -1120px -736px +} + +.mcsprite-oak_wood { + background-position: -1152px -736px +} + +.mcsprite-oak_wood_button { + background-position: -1184px -736px +} + +.mcsprite-oak_wood_door { + background-position: -1216px -736px +} + +.mcsprite-oak_wood_fence { + background-position: -1248px -736px +} + +.mcsprite-oak_wood_fence_gate { + background-position: 0 -768px +} + +.mcsprite-oak_wood_planks { + background-position: -32px -768px +} + +.mcsprite-oak_wood_pressure_plate { + background-position: -64px -768px +} + +.mcsprite-oak_wood_sign { + background-position: -96px -768px +} + +.mcsprite-oak_wood_slab { + background-position: -128px -768px +} + +.mcsprite-oak_wood_stairs { + background-position: -160px -768px +} + +.mcsprite-oak_wood_trapdoor { + background-position: -192px -768px +} + +.mcsprite-observer { + background-position: -224px -768px +} + +.mcsprite-obsidian { + background-position: -256px -768px +} + +.mcsprite-ocean_explorer_map { + background-position: -288px -768px +} + +.mcsprite-ocelot_spawn_egg { + background-position: -320px -768px +} + +.mcsprite-ominous_shield { + background-position: -352px -768px +} + +.mcsprite-orange_banner { + background-position: -384px -768px +} + +.mcsprite-orange_bed { + background-position: -416px -768px +} + +.mcsprite-orange_bed_lce { + background-position: -448px -768px +} + +.mcsprite-orange_candle { + background-position: -480px -768px +} + +.mcsprite-orange_carpet { + background-position: -512px -768px +} + +.mcsprite-orange_concrete { + background-position: -544px -768px +} + +.mcsprite-orange_concrete_powder { + background-position: -576px -768px +} + +.mcsprite-orange_dye { + background-position: -608px -768px +} + +.mcsprite-orange_firework_star { + background-position: -640px -768px +} + +.mcsprite-orange_glazed_terracotta { + background-position: -672px -768px +} + +.mcsprite-orange_shield { + background-position: -704px -768px +} + +.mcsprite-orange_shulker_box { + background-position: -736px -768px +} + +.mcsprite-orange_stained_glass { + background-position: -768px -768px +} + +.mcsprite-orange_stained_glass_pane { + background-position: -800px -768px +} + +.mcsprite-orange_terracotta { + background-position: -832px -768px +} + +.mcsprite-orange_tulip { + background-position: -864px -768px +} + +.mcsprite-orange_wool { + background-position: -896px -768px +} + +.mcsprite-oxeye_daisy { + background-position: -928px -768px +} + +.mcsprite-oxidized_copper { + background-position: -960px -768px +} + +.mcsprite-oxidized_copper_block { + background-position: -992px -768px +} + +.mcsprite-oxidized_cut_copper { + background-position: -1024px -768px +} + +.mcsprite-oxidized_cut_copper_block { + background-position: -1056px -768px +} + +.mcsprite-oxidized_cut_copper_slab { + background-position: -1088px -768px +} + +.mcsprite-oxidized_cut_copper_stairs { + background-position: -1120px -768px +} + +.mcsprite-packed_ice { + background-position: -1152px -768px +} + +.mcsprite-painting { + background-position: -1184px -768px +} + +.mcsprite-panda_spawn_egg { + background-position: -1216px -768px +} + +.mcsprite-paper { + background-position: -1248px -768px +} + +.mcsprite-parrot_spawn_egg { + background-position: 0 -800px +} + +.mcsprite-peony { + background-position: -32px -800px +} + +.mcsprite-petrified_oak_slab { + background-position: -64px -800px +} + +.mcsprite-phantom_membrane { + background-position: -96px -800px +} + +.mcsprite-phantom_spawn_egg { + background-position: -128px -800px +} + +.mcsprite-pig_spawn_egg { + background-position: -160px -800px +} + +.mcsprite-piglin_brute_spawn_egg { + background-position: -192px -800px +} + +.mcsprite-piglin_spawn_egg { + background-position: -224px -800px +} + +.mcsprite-pillager_spawn_egg { + background-position: -256px -800px +} + +.mcsprite-pink_banner { + background-position: -288px -800px +} + +.mcsprite-pink_bed { + background-position: -320px -800px +} + +.mcsprite-pink_bed_lce { + background-position: -352px -800px +} + +.mcsprite-pink_candle { + background-position: -384px -800px +} + +.mcsprite-pink_carpet { + background-position: -416px -800px +} + +.mcsprite-pink_concrete { + background-position: -448px -800px +} + +.mcsprite-pink_concrete_powder { + background-position: -480px -800px +} + +.mcsprite-pink_dye { + background-position: -512px -800px +} + +.mcsprite-pink_firework_star { + background-position: -544px -800px +} + +.mcsprite-pink_glazed_terracotta { + background-position: -576px -800px +} + +.mcsprite-pink_shield { + background-position: -608px -800px +} + +.mcsprite-pink_shulker_box { + background-position: -640px -800px +} + +.mcsprite-pink_stained_glass { + background-position: -672px -800px +} + +.mcsprite-pink_stained_glass_pane { + background-position: -704px -800px +} + +.mcsprite-pink_terracotta { + background-position: -736px -800px +} + +.mcsprite-pink_tulip { + background-position: -768px -800px +} + +.mcsprite-pink_wool { + background-position: -800px -800px +} + +.mcsprite-piston { + background-position: -832px -800px +} + +.mcsprite-player_head { + background-position: -864px -800px +} + +.mcsprite-podzol { + background-position: -896px -800px +} + +.mcsprite-pointed_dripstone { + background-position: -928px -800px +} + +.mcsprite-poisonous_potato { + background-position: -960px -800px +} + +.mcsprite-polar_bear_spawn_egg { + background-position: -992px -800px +} + +.mcsprite-polished_andesite { + background-position: -1024px -800px +} + +.mcsprite-polished_andesite_slab { + background-position: -1056px -800px +} + +.mcsprite-polished_andesite_stairs { + background-position: -1088px -800px +} + +.mcsprite-polished_basalt { + background-position: -1120px -800px +} + +.mcsprite-polished_blackstone { + background-position: -1152px -800px +} + +.mcsprite-polished_blackstone_brick_slab { + background-position: -1184px -800px +} + +.mcsprite-polished_blackstone_brick_stairs { + background-position: -1216px -800px +} + +.mcsprite-polished_blackstone_brick_wall { + background-position: -1248px -800px +} + +.mcsprite-polished_blackstone_bricks { + background-position: 0 -832px +} + +.mcsprite-polished_blackstone_button { + background-position: -32px -832px +} + +.mcsprite-polished_blackstone_pressure_plate { + background-position: -64px -832px +} + +.mcsprite-polished_blackstone_slab { + background-position: -96px -832px +} + +.mcsprite-polished_blackstone_stairs { + background-position: -128px -832px +} + +.mcsprite-polished_blackstone_wall { + background-position: -160px -832px +} + +.mcsprite-polished_deepslate { + background-position: -192px -832px +} + +.mcsprite-polished_deepslate_slab { + background-position: -224px -832px +} + +.mcsprite-polished_deepslate_stairs { + background-position: -256px -832px +} + +.mcsprite-polished_deepslate_wall { + background-position: -288px -832px +} + +.mcsprite-polished_diorite { + background-position: -320px -832px +} + +.mcsprite-polished_diorite_slab { + background-position: -352px -832px +} + +.mcsprite-polished_diorite_stairs { + background-position: -384px -832px +} + +.mcsprite-polished_granite { + background-position: -416px -832px +} + +.mcsprite-polished_granite_slab { + background-position: -448px -832px +} + +.mcsprite-polished_granite_stairs { + background-position: -480px -832px +} + +.mcsprite-popped_chorus_fruit { + background-position: -512px -832px +} + +.mcsprite-poppy { + background-position: -544px -832px +} + +.mcsprite-portal { + background-position: -576px -832px +} + +.mcsprite-potato { + background-position: -608px -832px +} + +.mcsprite-potion_of_decay { + background-position: -640px -832px +} + +.mcsprite-potion_of_fire_resistance { + background-position: -672px -832px +} + +.mcsprite-potion_of_harming { + background-position: -704px -832px +} + +.mcsprite-potion_of_healing { + background-position: -736px -832px +} + +.mcsprite-potion_of_invisibility { + background-position: -768px -832px +} + +.mcsprite-potion_of_leaping { + background-position: -800px -832px +} + +.mcsprite-potion_of_levitation { + background-position: -832px -832px +} + +.mcsprite-potion_of_luck { + background-position: -864px -832px +} + +.mcsprite-potion_of_night_vision { + background-position: -896px -832px +} + +.mcsprite-potion_of_poison { + background-position: -928px -832px +} + +.mcsprite-potion_of_regeneration { + background-position: -960px -832px +} + +.mcsprite-potion_of_slow_falling { + background-position: -992px -832px +} + +.mcsprite-potion_of_slowness { + background-position: -1024px -832px +} + +.mcsprite-potion_of_strength { + background-position: -1056px -832px +} + +.mcsprite-potion_of_swiftness { + background-position: -1088px -832px +} + +.mcsprite-potion_of_the_turtle_master { + background-position: -1120px -832px +} + +.mcsprite-potion_of_water_breathing { + background-position: -1152px -832px +} + +.mcsprite-potion_of_weakness { + background-position: -1184px -832px +} + +.mcsprite-powder_snow { + background-position: -1216px -832px +} + +.mcsprite-powder_snow_bucket { + background-position: -1248px -832px +} + +.mcsprite-powered_rail { + background-position: 0 -864px +} + +.mcsprite-prismarine { + background-position: -32px -864px +} + +.mcsprite-prismarine_brick_slab { + background-position: -64px -864px +} + +.mcsprite-prismarine_brick_stairs { + background-position: -96px -864px +} + +.mcsprite-prismarine_brick_stairs_old { + background-position: -128px -864px +} + +.mcsprite-prismarine_bricks { + background-position: -160px -864px +} + +.mcsprite-prismarine_bricks_slab { + background-position: -192px -864px +} + +.mcsprite-prismarine_crystals { + background-position: -224px -864px +} + +.mcsprite-prismarine_shard { + background-position: -256px -864px +} + +.mcsprite-prismarine_wall { + background-position: -288px -864px +} + +.mcsprite-pufferfish { + background-position: -320px -864px +} + +.mcsprite-pufferfish_spawn_egg { + background-position: -352px -864px +} + +.mcsprite-pumpkin { + background-position: -384px -864px +} + +.mcsprite-pumpkin_pie { + background-position: -416px -864px +} + +.mcsprite-pumpkin_seeds { + background-position: -448px -864px +} + +.mcsprite-purple_banner { + background-position: -480px -864px +} + +.mcsprite-purple_bed { + background-position: -512px -864px +} + +.mcsprite-purple_bed_lce { + background-position: -544px -864px +} + +.mcsprite-purple_candle { + background-position: -576px -864px +} + +.mcsprite-purple_carpet { + background-position: -608px -864px +} + +.mcsprite-purple_concrete { + background-position: -640px -864px +} + +.mcsprite-purple_concrete_powder { + background-position: -672px -864px +} + +.mcsprite-purple_dye { + background-position: -704px -864px +} + +.mcsprite-purple_firework_star { + background-position: -736px -864px +} + +.mcsprite-purple_glazed_terracotta { + background-position: -768px -864px +} + +.mcsprite-purple_shield { + background-position: -800px -864px +} + +.mcsprite-purple_shulker_box { + background-position: -832px -864px +} + +.mcsprite-purple_stained_glass { + background-position: -864px -864px +} + +.mcsprite-purple_stained_glass_pane { + background-position: -896px -864px +} + +.mcsprite-purple_terracotta { + background-position: -928px -864px +} + +.mcsprite-purple_wool { + background-position: -960px -864px +} + +.mcsprite-purpur_block { + background-position: -992px -864px +} + +.mcsprite-purpur_pillar { + background-position: -1024px -864px +} + +.mcsprite-purpur_slab { + background-position: -1056px -864px +} + +.mcsprite-purpur_stairs { + background-position: -1088px -864px +} + +.mcsprite-quartz_bricks { + background-position: -1120px -864px +} + +.mcsprite-quartz_pillar { + background-position: -1152px -864px +} + +.mcsprite-quartz_slab { + background-position: -1184px -864px +} + +.mcsprite-quartz_stairs { + background-position: -1216px -864px +} + +.mcsprite-rabbit_hide { + background-position: -1248px -864px +} + +.mcsprite-rabbit_spawn_egg { + background-position: 0 -896px +} + +.mcsprite-rabbit_stew { + background-position: -32px -896px +} + +.mcsprite-rabbits_foot { + background-position: -64px -896px +} + +.mcsprite-rail { + background-position: -96px -896px +} + +.mcsprite-ravager_spawn_egg { + background-position: -128px -896px +} + +.mcsprite-raw_beef { + background-position: -160px -896px +} + +.mcsprite-raw_chicken { + background-position: -192px -896px +} + +.mcsprite-raw_cod { + background-position: -224px -896px +} + +.mcsprite-raw_copper { + background-position: -256px -896px +} + +.mcsprite-raw_fish { + background-position: -288px -896px +} + +.mcsprite-raw_gold { + background-position: -320px -896px +} + +.mcsprite-raw_iron { + background-position: -352px -896px +} + +.mcsprite-raw_mutton { + background-position: -384px -896px +} + +.mcsprite-raw_porkchop { + background-position: -416px -896px +} + +.mcsprite-raw_rabbit { + background-position: -448px -896px +} + +.mcsprite-raw_salmon { + background-position: -480px -896px +} + +.mcsprite-red_banner { + background-position: -512px -896px +} + +.mcsprite-red_bed { + background-position: -544px -896px +} + +.mcsprite-red_bed_lce { + background-position: -576px -896px +} + +.mcsprite-red_candle { + background-position: -608px -896px +} + +.mcsprite-red_carpet { + background-position: -640px -896px +} + +.mcsprite-red_concrete { + background-position: -672px -896px +} + +.mcsprite-red_concrete_powder { + background-position: -704px -896px +} + +.mcsprite-red_dye { + background-position: -736px -896px +} + +.mcsprite-red_firework_star { + background-position: -768px -896px +} + +.mcsprite-red_glazed_terracotta { + background-position: -800px -896px +} + +.mcsprite-red_mushroom { + background-position: -832px -896px +} + +.mcsprite-red_mushroom_block { + background-position: -864px -896px +} + +.mcsprite-red_nether_brick_slab { + background-position: -896px -896px +} + +.mcsprite-red_nether_brick_stairs { + background-position: -928px -896px +} + +.mcsprite-red_nether_brick_wall { + background-position: -960px -896px +} + +.mcsprite-red_nether_bricks { + background-position: -992px -896px +} + +.mcsprite-red_sand { + background-position: -1024px -896px +} + +.mcsprite-red_sandstone { + background-position: -1056px -896px +} + +.mcsprite-red_sandstone_slab { + background-position: -1088px -896px +} + +.mcsprite-red_sandstone_stairs { + background-position: -1120px -896px +} + +.mcsprite-red_sandstone_wall { + background-position: -1152px -896px +} + +.mcsprite-red_shield { + background-position: -1184px -896px +} + +.mcsprite-red_shulker_box { + background-position: -1216px -896px +} + +.mcsprite-red_stained_glass { + background-position: -1248px -896px +} + +.mcsprite-red_stained_glass_pane { + background-position: 0 -928px +} + +.mcsprite-red_terracotta { + background-position: -32px -928px +} + +.mcsprite-red_tulip { + background-position: -64px -928px +} + +.mcsprite-red_wool { + background-position: -96px -928px +} + +.mcsprite-redstone { + background-position: -128px -928px +} + +.mcsprite-redstone_comparator { + background-position: -160px -928px +} + +.mcsprite-redstone_dust { + background-position: -192px -928px +} + +.mcsprite-redstone_lamp { + background-position: -224px -928px +} + +.mcsprite-redstone_ore { + background-position: -256px -928px +} + +.mcsprite-redstone_repeater { + background-position: -288px -928px +} + +.mcsprite-redstone_torch { + background-position: -320px -928px +} + +.mcsprite-respawn_anchor { + background-position: -352px -928px +} + +.mcsprite-rooted_dirt { + background-position: -384px -928px +} + +.mcsprite-rose_bush { + background-position: -416px -928px +} + +.mcsprite-rose_red { + background-position: -448px -928px +} + +.mcsprite-rotten_flesh { + background-position: -480px -928px +} + +.mcsprite-saddle { + background-position: -512px -928px +} + +.mcsprite-salmon_spawn_egg { + background-position: -544px -928px +} + +.mcsprite-sand { + background-position: -576px -928px +} + +.mcsprite-sandstone { + background-position: -608px -928px +} + +.mcsprite-sandstone_slab { + background-position: -640px -928px +} + +.mcsprite-sandstone_stairs { + background-position: -672px -928px +} + +.mcsprite-sandstone_wall { + background-position: -704px -928px +} + +.mcsprite-scaffolding { + background-position: -736px -928px +} + +.mcsprite-sculk_sensor { + background-position: -768px -928px +} + +.mcsprite-scute { + background-position: -800px -928px +} + +.mcsprite-sea_lantern { + background-position: -832px -928px +} + +.mcsprite-sea_pickle { + background-position: -864px -928px +} + +.mcsprite-seagrass { + background-position: -896px -928px +} + +.mcsprite-seeds { + background-position: -928px -928px +} + +.mcsprite-shears { + background-position: -960px -928px +} + +.mcsprite-sheep_spawn_egg { + background-position: -992px -928px +} + +.mcsprite-shield { + background-position: -1024px -928px +} + +.mcsprite-shroomlight { + background-position: -1056px -928px +} + +.mcsprite-shrub_lce { + background-position: -1088px -928px +} + +.mcsprite-shulker_box { + background-position: -1120px -928px +} + +.mcsprite-shulker_shell { + background-position: -1152px -928px +} + +.mcsprite-shulker_spawn_egg { + background-position: -1184px -928px +} + +.mcsprite-silverfish_spawn_egg { + background-position: -1216px -928px +} + +.mcsprite-skeleton_horse_spawn_egg { + background-position: -1248px -928px +} + +.mcsprite-skeleton_skull { + background-position: 0 -960px +} + +.mcsprite-skeleton_spawn_egg { + background-position: -32px -960px +} + +.mcsprite-slime_block { + background-position: -64px -960px +} + +.mcsprite-slime_spawn_egg { + background-position: -96px -960px +} + +.mcsprite-slimeball { + background-position: -128px -960px +} + +.mcsprite-small_amethyst_bud { + background-position: -160px -960px +} + +.mcsprite-small_dripleaf { + background-position: -192px -960px +} + +.mcsprite-smithing_table { + background-position: -224px -960px +} + +.mcsprite-smoker { + background-position: -256px -960px +} + +.mcsprite-smooth_basalt { + background-position: -288px -960px +} + +.mcsprite-smooth_quartz { + background-position: -320px -960px +} + +.mcsprite-smooth_quartz_block { + background-position: -352px -960px +} + +.mcsprite-smooth_quartz_slab { + background-position: -384px -960px +} + +.mcsprite-smooth_quartz_stairs { + background-position: -416px -960px +} + +.mcsprite-smooth_red_sandstone { + background-position: -448px -960px +} + +.mcsprite-smooth_red_sandstone_slab { + background-position: -480px -960px +} + +.mcsprite-smooth_red_sandstone_stairs { + background-position: -512px -960px +} + +.mcsprite-smooth_sandstone { + background-position: -544px -960px +} + +.mcsprite-smooth_sandstone_slab { + background-position: -576px -960px +} + +.mcsprite-smooth_sandstone_stairs { + background-position: -608px -960px +} + +.mcsprite-smooth_stone { + background-position: -640px -960px +} + +.mcsprite-smooth_stone_bricks { + background-position: -672px -960px +} + +.mcsprite-smooth_stone_slab { + background-position: -704px -960px +} + +.mcsprite-snow { + background-position: -736px -960px +} + +.mcsprite-snow_block { + background-position: -768px -960px +} + +.mcsprite-snowball { + background-position: -800px -960px +} + +.mcsprite-soul_campfire { + background-position: -832px -960px +} + +.mcsprite-soul_lantern { + background-position: -864px -960px +} + +.mcsprite-soul_sand { + background-position: -896px -960px +} + +.mcsprite-soul_soil { + background-position: -928px -960px +} + +.mcsprite-soul_torch { + background-position: -960px -960px +} + +.mcsprite-spawn_agent { + background-position: -992px -960px +} + +.mcsprite-spawn_bat { + background-position: -1024px -960px +} + +.mcsprite-spawn_bee { + background-position: -1056px -960px +} + +.mcsprite-spawn_blaze { + background-position: -1088px -960px +} + +.mcsprite-spawn_cat { + background-position: -1120px -960px +} + +.mcsprite-spawn_cave_spider { + background-position: -1152px -960px +} + +.mcsprite-spawn_chicken { + background-position: -1184px -960px +} + +.mcsprite-spawn_cod { + background-position: -1216px -960px +} + +.mcsprite-spawn_cow { + background-position: -1248px -960px +} + +.mcsprite-spawn_creeper { + background-position: 0 -992px +} + +.mcsprite-spawn_dolphin { + background-position: -32px -992px +} + +.mcsprite-spawn_donkey { + background-position: -64px -992px +} + +.mcsprite-spawn_drowned { + background-position: -96px -992px +} + +.mcsprite-spawn_elder_guardian { + background-position: -128px -992px +} + +.mcsprite-spawn_enderman { + background-position: -160px -992px +} + +.mcsprite-spawn_endermite { + background-position: -192px -992px +} + +.mcsprite-spawn_evoker { + background-position: -224px -992px +} + +.mcsprite-spawn_fox { + background-position: -256px -992px +} + +.mcsprite-spawn_ghast { + background-position: -288px -992px +} + +.mcsprite-spawn_goat { + background-position: -320px -992px +} + +.mcsprite-spawn_guardian { + background-position: -352px -992px +} + +.mcsprite-spawn_horse { + background-position: -384px -992px +} + +.mcsprite-spawn_husk { + background-position: -416px -992px +} + +.mcsprite-spawn_llama { + background-position: -448px -992px +} + +.mcsprite-spawn_magma_cube { + background-position: -480px -992px +} + +.mcsprite-spawn_mask { + background-position: -512px -992px +} + +.mcsprite-spawn_mooshroom { + background-position: -544px -992px +} + +.mcsprite-spawn_mule { + background-position: -576px -992px +} + +.mcsprite-spawn_npc { + background-position: -608px -992px +} + +.mcsprite-spawn_ocelot { + background-position: -640px -992px +} + +.mcsprite-spawn_panda { + background-position: -672px -992px +} + +.mcsprite-spawn_parrot { + background-position: -704px -992px +} + +.mcsprite-spawn_phantom { + background-position: -736px -992px +} + +.mcsprite-spawn_pig { + background-position: -768px -992px +} + +.mcsprite-spawn_pillager { + background-position: -800px -992px +} + +.mcsprite-spawn_polar_bear { + background-position: -832px -992px +} + +.mcsprite-spawn_pufferfish { + background-position: -864px -992px +} + +.mcsprite-spawn_rabbit { + background-position: -896px -992px +} + +.mcsprite-spawn_ravager { + background-position: -928px -992px +} + +.mcsprite-spawn_salmon { + background-position: -960px -992px +} + +.mcsprite-spawn_sheep { + background-position: -992px -992px +} + +.mcsprite-spawn_shulker { + background-position: -1024px -992px +} + +.mcsprite-spawn_silverfish { + background-position: -1056px -992px +} + +.mcsprite-spawn_skeleton { + background-position: -1088px -992px +} + +.mcsprite-spawn_skeleton_horse { + background-position: -1120px -992px +} + +.mcsprite-spawn_slime { + background-position: -1152px -992px +} + +.mcsprite-spawn_spider { + background-position: -1184px -992px +} + +.mcsprite-spawn_squid { + background-position: -1216px -992px +} + +.mcsprite-spawn_stray { + background-position: -1248px -992px +} + +.mcsprite-spawn_strider { + background-position: 0 -1024px +} + +.mcsprite-spawn_trader_llama { + background-position: -32px -1024px +} + +.mcsprite-spawn_tropical_fish { + background-position: -64px -1024px +} + +.mcsprite-spawn_turtle { + background-position: -96px -1024px +} + +.mcsprite-spawn_vex { + background-position: -128px -1024px +} + +.mcsprite-spawn_villager { + background-position: -160px -1024px +} + +.mcsprite-spawn_vindicator { + background-position: -192px -1024px +} + +.mcsprite-spawn_wandering_trader { + background-position: -224px -1024px +} + +.mcsprite-spawn_witch { + background-position: -256px -1024px +} + +.mcsprite-spawn_wither_skeleton { + background-position: -288px -1024px +} + +.mcsprite-spawn_wolf { + background-position: -320px -1024px +} + +.mcsprite-spawn_zoglin { + background-position: -352px -1024px +} + +.mcsprite-spawn_zombie { + background-position: -384px -1024px +} + +.mcsprite-spawn_zombie_horse { + background-position: -416px -1024px +} + +.mcsprite-spawn_zombie_pigman { + background-position: -448px -1024px +} + +.mcsprite-spawn_zombie_villager { + background-position: -480px -1024px +} + +.mcsprite-spawner { + background-position: -512px -1024px +} + +.mcsprite-spectral_arrow { + background-position: -544px -1024px +} + +.mcsprite-spider_eye { + background-position: -576px -1024px +} + +.mcsprite-spider_spawn_egg { + background-position: -608px -1024px +} + +.mcsprite-splash_mundane_potion { + background-position: -640px -1024px +} + +.mcsprite-splash_potion_of_decay { + background-position: -672px -1024px +} + +.mcsprite-splash_potion_of_fire_resistance { + background-position: -704px -1024px +} + +.mcsprite-splash_potion_of_harming { + background-position: -736px -1024px +} + +.mcsprite-splash_potion_of_healing { + background-position: -768px -1024px +} + +.mcsprite-splash_potion_of_invisibility { + background-position: -800px -1024px +} + +.mcsprite-splash_potion_of_leaping { + background-position: -832px -1024px +} + +.mcsprite-splash_potion_of_levitation { + background-position: -864px -1024px +} + +.mcsprite-splash_potion_of_luck { + background-position: -896px -1024px +} + +.mcsprite-splash_potion_of_night_vision { + background-position: -928px -1024px +} + +.mcsprite-splash_potion_of_poison { + background-position: -960px -1024px +} + +.mcsprite-splash_potion_of_regeneration { + background-position: -992px -1024px +} + +.mcsprite-splash_potion_of_slow_falling { + background-position: -1024px -1024px +} + +.mcsprite-splash_potion_of_slowness { + background-position: -1056px -1024px +} + +.mcsprite-splash_potion_of_strength { + background-position: -1088px -1024px +} + +.mcsprite-splash_potion_of_swiftness { + background-position: -1120px -1024px +} + +.mcsprite-splash_potion_of_the_turtle_master { + background-position: -1152px -1024px +} + +.mcsprite-splash_potion_of_water_breathing { + background-position: -1184px -1024px +} + +.mcsprite-splash_potion_of_weakness { + background-position: -1216px -1024px +} + +.mcsprite-splash_water_bottle { + background-position: -1248px -1024px +} + +.mcsprite-sponge { + background-position: 0 -1056px +} + +.mcsprite-spore_blossom { + background-position: -32px -1056px +} + +.mcsprite-spruce_boat { + background-position: -64px -1056px +} + +.mcsprite-spruce_button { + background-position: -96px -1056px +} + +.mcsprite-spruce_door { + background-position: -128px -1056px +} + +.mcsprite-spruce_fence { + background-position: -160px -1056px +} + +.mcsprite-spruce_fence_gate { + background-position: -192px -1056px +} + +.mcsprite-spruce_leaves { + background-position: -224px -1056px +} + +.mcsprite-spruce_log { + background-position: -256px -1056px +} + +.mcsprite-spruce_planks { + background-position: -288px -1056px +} + +.mcsprite-spruce_pressure_plate { + background-position: -320px -1056px +} + +.mcsprite-spruce_sapling { + background-position: -352px -1056px +} + +.mcsprite-spruce_sign { + background-position: -384px -1056px +} + +.mcsprite-spruce_slab { + background-position: -416px -1056px +} + +.mcsprite-spruce_stairs { + background-position: -448px -1056px +} + +.mcsprite-spruce_trapdoor { + background-position: -480px -1056px +} + +.mcsprite-spruce_wood { + background-position: -512px -1056px +} + +.mcsprite-spruce_wood_button { + background-position: -544px -1056px +} + +.mcsprite-spruce_wood_door { + background-position: -576px -1056px +} + +.mcsprite-spruce_wood_fence { + background-position: -608px -1056px +} + +.mcsprite-spruce_wood_fence_gate { + background-position: -640px -1056px +} + +.mcsprite-spruce_wood_planks { + background-position: -672px -1056px +} + +.mcsprite-spruce_wood_pressure_plate { + background-position: -704px -1056px +} + +.mcsprite-spruce_wood_sign { + background-position: -736px -1056px +} + +.mcsprite-spruce_wood_slab { + background-position: -768px -1056px +} + +.mcsprite-spruce_wood_stairs { + background-position: -800px -1056px +} + +.mcsprite-spruce_wood_trapdoor { + background-position: -832px -1056px +} + +.mcsprite-spyglass { + background-position: -864px -1056px +} + +.mcsprite-squid_spawn_egg { + background-position: -896px -1056px +} + +.mcsprite-steak { + background-position: -928px -1056px +} + +.mcsprite-stick { + background-position: -960px -1056px +} + +.mcsprite-sticky_piston { + background-position: -992px -1056px +} + +.mcsprite-stone { + background-position: -1024px -1056px +} + +.mcsprite-stone_axe { + background-position: -1056px -1056px +} + +.mcsprite-stone_brick_slab { + background-position: -1088px -1056px +} + +.mcsprite-stone_brick_stairs { + background-position: -1120px -1056px +} + +.mcsprite-stone_brick_wall { + background-position: -1152px -1056px +} + +.mcsprite-stone_bricks { + background-position: -1184px -1056px +} + +.mcsprite-stone_bricks_monster_egg { + background-position: -1216px -1056px +} + +.mcsprite-stone_button { + background-position: -1248px -1056px +} + +.mcsprite-stone_hoe { + background-position: 0 -1088px +} + +.mcsprite-stone_monster_egg { + background-position: -32px -1088px +} + +.mcsprite-stone_pickaxe { + background-position: -64px -1088px +} + +.mcsprite-stone_pressure_plate { + background-position: -96px -1088px +} + +.mcsprite-stone_shovel { + background-position: -128px -1088px +} + +.mcsprite-stone_slab { + background-position: -160px -1088px +} + +.mcsprite-stone_stairs { + background-position: -192px -1088px +} + +.mcsprite-stone_sword { + background-position: -224px -1088px +} + +.mcsprite-stray_spawn_egg { + background-position: -256px -1088px +} + +.mcsprite-strider_spawn_egg { + background-position: -288px -1088px +} + +.mcsprite-string { + background-position: -320px -1088px +} + +.mcsprite-stripped_acacia_log { + background-position: -352px -1088px +} + +.mcsprite-stripped_acacia_wood { + background-position: -384px -1088px +} + +.mcsprite-stripped_birch_log { + background-position: -416px -1088px +} + +.mcsprite-stripped_birch_wood { + background-position: -448px -1088px +} + +.mcsprite-stripped_crimson_hyphae { + background-position: -480px -1088px +} + +.mcsprite-stripped_crimson_stem { + background-position: -512px -1088px +} + +.mcsprite-stripped_dark_oak_log { + background-position: -544px -1088px +} + +.mcsprite-stripped_dark_oak_wood { + background-position: -576px -1088px +} + +.mcsprite-stripped_jungle_log { + background-position: -608px -1088px +} + +.mcsprite-stripped_jungle_wood { + background-position: -640px -1088px +} + +.mcsprite-stripped_oak_log { + background-position: -672px -1088px +} + +.mcsprite-stripped_oak_wood { + background-position: -704px -1088px +} + +.mcsprite-stripped_spruce_log { + background-position: -736px -1088px +} + +.mcsprite-stripped_spruce_wood { + background-position: -768px -1088px +} + +.mcsprite-stripped_warped_hyphae { + background-position: -800px -1088px +} + +.mcsprite-stripped_warped_stem { + background-position: -832px -1088px +} + +.mcsprite-structure_block { + background-position: -864px -1088px +} + +.mcsprite-structure_void { + background-position: -896px -1088px +} + +.mcsprite-sugar { + background-position: -928px -1088px +} + +.mcsprite-sugar_cane { + background-position: -960px -1088px +} + +.mcsprite-sunflower { + background-position: -992px -1088px +} + +.mcsprite-suspicious_stew { + background-position: -1024px -1088px +} + +.mcsprite-sweet_berries { + background-position: -1056px -1088px +} + +.mcsprite-tall_grass { + background-position: -1088px -1088px +} + +.mcsprite-target { + background-position: -1120px -1088px +} + +.mcsprite-terracotta { + background-position: -1152px -1088px +} + +.mcsprite-thick_lingering_potion { + background-position: -1184px -1088px +} + +.mcsprite-thick_potion { + background-position: -1216px -1088px +} + +.mcsprite-thick_splash_potion { + background-position: -1248px -1088px +} + +.mcsprite-tinted_glass { + background-position: 0 -1120px +} + +.mcsprite-tipped_arrow { + background-position: -32px -1120px +} + +.mcsprite-tnt { + background-position: -64px -1120px +} + +.mcsprite-top_snow { + background-position: -96px -1120px +} + +.mcsprite-torch { + background-position: -128px -1120px +} + +.mcsprite-totem_of_undying { + background-position: -160px -1120px +} + +.mcsprite-trader_llama_spawn_egg { + background-position: -192px -1120px +} + +.mcsprite-trapped_chest { + background-position: -224px -1120px +} + +.mcsprite-treasure_map { + background-position: -256px -1120px +} + +.mcsprite-trident { + background-position: -288px -1120px +} + +.mcsprite-tripwire_hook { + background-position: -320px -1120px +} + +.mcsprite-tropical_fish { + background-position: -352px -1120px +} + +.mcsprite-tropical_fish_spawn_egg { + background-position: -384px -1120px +} + +.mcsprite-tube_coral { + background-position: -416px -1120px +} + +.mcsprite-tube_coral_block { + background-position: -448px -1120px +} + +.mcsprite-tube_coral_fan { + background-position: -480px -1120px +} + +.mcsprite-tuff { + background-position: -512px -1120px +} + +.mcsprite-turtle_egg { + background-position: -544px -1120px +} + +.mcsprite-turtle_helmet { + background-position: -576px -1120px +} + +.mcsprite-turtle_shell { + background-position: -608px -1120px +} + +.mcsprite-turtle_spawn_egg { + background-position: -640px -1120px +} + +.mcsprite-twisting_vines { + background-position: -672px -1120px +} + +.mcsprite-uncraftable_lingering_potion { + background-position: -704px -1120px +} + +.mcsprite-uncraftable_potion { + background-position: -736px -1120px +} + +.mcsprite-uncraftable_splash_potion { + background-position: -768px -1120px +} + +.mcsprite-uncraftable_tipped_arrow { + background-position: -800px -1120px +} + +.mcsprite-vex_spawn_egg { + background-position: -832px -1120px +} + +.mcsprite-villager_spawn_egg { + background-position: -864px -1120px +} + +.mcsprite-vindicator_spawn_egg { + background-position: -896px -1120px +} + +.mcsprite-vines { + background-position: -928px -1120px +} + +.mcsprite-void_air { + background-position: -960px -1120px +} + +.mcsprite-wandering_trader_spawn_egg { + background-position: -992px -1120px +} + +.mcsprite-warped_button { + background-position: -1024px -1120px +} + +.mcsprite-warped_door { + background-position: -1056px -1120px +} + +.mcsprite-warped_fence { + background-position: -1088px -1120px +} + +.mcsprite-warped_fence_gate { + background-position: -1120px -1120px +} + +.mcsprite-warped_fungus { + background-position: -1152px -1120px +} + +.mcsprite-warped_fungus_on_a_stick { + background-position: -1184px -1120px +} + +.mcsprite-warped_hyphae { + background-position: -1216px -1120px +} + +.mcsprite-warped_nylium { + background-position: -1248px -1120px +} + +.mcsprite-warped_planks { + background-position: 0 -1152px +} + +.mcsprite-warped_pressure_plate { + background-position: -32px -1152px +} + +.mcsprite-warped_roots { + background-position: -64px -1152px +} + +.mcsprite-warped_sign { + background-position: -96px -1152px +} + +.mcsprite-warped_slab { + background-position: -128px -1152px +} + +.mcsprite-warped_stairs { + background-position: -160px -1152px +} + +.mcsprite-warped_stem { + background-position: -192px -1152px +} + +.mcsprite-warped_trapdoor { + background-position: -224px -1152px +} + +.mcsprite-warped_wart_block { + background-position: -256px -1152px +} + +.mcsprite-water { + background-position: -288px -1152px +} + +.mcsprite-water_bottle { + background-position: -320px -1152px +} + +.mcsprite-water_bucket { + background-position: -352px -1152px +} + +.mcsprite-waxed_block_of_copper { + background-position: -384px -1152px +} + +.mcsprite-waxed_copper { + background-position: -416px -1152px +} + +.mcsprite-waxed_copper_block { + background-position: -448px -1152px +} + +.mcsprite-waxed_cut_copper { + background-position: -480px -1152px +} + +.mcsprite-waxed_cut_copper_block { + background-position: -512px -1152px +} + +.mcsprite-waxed_cut_copper_slab { + background-position: -544px -1152px +} + +.mcsprite-waxed_cut_copper_stairs { + background-position: -576px -1152px +} + +.mcsprite-waxed_exposed_copper { + background-position: -608px -1152px +} + +.mcsprite-waxed_exposed_copper_block { + background-position: -640px -1152px +} + +.mcsprite-waxed_exposed_cut_copper { + background-position: -672px -1152px +} + +.mcsprite-waxed_exposed_cut_copper_block { + background-position: -704px -1152px +} + +.mcsprite-waxed_exposed_cut_copper_slab { + background-position: -736px -1152px +} + +.mcsprite-waxed_exposed_cut_copper_stairs { + background-position: -768px -1152px +} + +.mcsprite-waxed_oxidized_copper { + background-position: -800px -1152px +} + +.mcsprite-waxed_oxidized_copper_block { + background-position: -832px -1152px +} + +.mcsprite-waxed_oxidized_cut_copper { + background-position: -864px -1152px +} + +.mcsprite-waxed_oxidized_cut_copper_block { + background-position: -896px -1152px +} + +.mcsprite-waxed_oxidized_cut_copper_slab { + background-position: -928px -1152px +} + +.mcsprite-waxed_oxidized_cut_copper_stairs { + background-position: -960px -1152px +} + +.mcsprite-waxed_weathered_copper { + background-position: -992px -1152px +} + +.mcsprite-waxed_weathered_copper_block { + background-position: -1024px -1152px +} + +.mcsprite-waxed_weathered_cut_copper { + background-position: -1056px -1152px +} + +.mcsprite-waxed_weathered_cut_copper_block { + background-position: -1088px -1152px +} + +.mcsprite-waxed_weathered_cut_copper_slab { + background-position: -1120px -1152px +} + +.mcsprite-waxed_weathered_cut_copper_stairs { + background-position: -1152px -1152px +} + +.mcsprite-weathered_copper { + background-position: -1184px -1152px +} + +.mcsprite-weathered_copper_block { + background-position: -1216px -1152px +} + +.mcsprite-weathered_cut_copper { + background-position: -1248px -1152px +} + +.mcsprite-weathered_cut_copper_block { + background-position: 0 -1184px +} + +.mcsprite-weathered_cut_copper_slab { + background-position: -32px -1184px +} + +.mcsprite-weathered_cut_copper_stairs { + background-position: -64px -1184px +} + +.mcsprite-weeping_vines { + background-position: -96px -1184px +} + +.mcsprite-wet_sponge { + background-position: -128px -1184px +} + +.mcsprite-wheat { + background-position: -160px -1184px +} + +.mcsprite-wheat_seeds { + background-position: -192px -1184px +} + +.mcsprite-white_banner { + background-position: -224px -1184px +} + +.mcsprite-white_bed { + background-position: -256px -1184px +} + +.mcsprite-white_bed_lce { + background-position: -288px -1184px +} + +.mcsprite-white_candle { + background-position: -320px -1184px +} + +.mcsprite-white_carpet { + background-position: -352px -1184px +} + +.mcsprite-white_concrete { + background-position: -384px -1184px +} + +.mcsprite-white_concrete_powder { + background-position: -416px -1184px +} + +.mcsprite-white_dye { + background-position: -448px -1184px +} + +.mcsprite-white_firework_star { + background-position: -480px -1184px +} + +.mcsprite-white_glazed_terracotta { + background-position: -512px -1184px +} + +.mcsprite-white_shield { + background-position: -544px -1184px +} + +.mcsprite-white_shulker_box { + background-position: -576px -1184px +} + +.mcsprite-white_stained_glass { + background-position: -608px -1184px +} + +.mcsprite-white_stained_glass_pane { + background-position: -640px -1184px +} + +.mcsprite-white_terracotta { + background-position: -672px -1184px +} + +.mcsprite-white_tulip { + background-position: -704px -1184px +} + +.mcsprite-white_wool { + background-position: -736px -1184px +} + +.mcsprite-witch_spawn_egg { + background-position: -768px -1184px +} + +.mcsprite-wither_rose { + background-position: -800px -1184px +} + +.mcsprite-wither_skeleton_skull { + background-position: -832px -1184px +} + +.mcsprite-wither_skeleton_spawn_egg { + background-position: -864px -1184px +} + +.mcsprite-wolf_spawn_egg { + background-position: -896px -1184px +} + +.mcsprite-wooden_axe { + background-position: -928px -1184px +} + +.mcsprite-wooden_hoe { + background-position: -960px -1184px +} + +.mcsprite-wooden_pickaxe { + background-position: -992px -1184px +} + +.mcsprite-wooden_shovel { + background-position: -1024px -1184px +} + +.mcsprite-wooden_slab { + background-position: -1056px -1184px +} + +.mcsprite-wooden_sword { + background-position: -1088px -1184px +} + +.mcsprite-woodland_explorer_map { + background-position: -1120px -1184px +} + +.mcsprite-written_book { + background-position: -1152px -1184px +} + +.mcsprite-yellow_banner { + background-position: -1184px -1184px +} + +.mcsprite-yellow_bed { + background-position: -1216px -1184px +} + +.mcsprite-yellow_bed_lce { + background-position: -1248px -1184px +} + +.mcsprite-yellow_candle { + background-position: 0 -1216px +} + +.mcsprite-yellow_carpet { + background-position: -32px -1216px +} + +.mcsprite-yellow_concrete { + background-position: -64px -1216px +} + +.mcsprite-yellow_concrete_powder { + background-position: -96px -1216px +} + +.mcsprite-yellow_dye { + background-position: -128px -1216px +} + +.mcsprite-yellow_firework_star { + background-position: -160px -1216px +} + +.mcsprite-yellow_glazed_terracotta { + background-position: -192px -1216px +} + +.mcsprite-yellow_shield { + background-position: -224px -1216px +} + +.mcsprite-yellow_shulker_box { + background-position: -256px -1216px +} + +.mcsprite-yellow_stained_glass { + background-position: -288px -1216px +} + +.mcsprite-yellow_stained_glass_pane { + background-position: -320px -1216px +} + +.mcsprite-yellow_terracotta { + background-position: -352px -1216px +} + +.mcsprite-yellow_wool { + background-position: -384px -1216px +} + +.mcsprite-zoglin_spawn_egg { + background-position: -416px -1216px +} + +.mcsprite-zombie_head { + background-position: -448px -1216px +} + +.mcsprite-zombie_horse_spawn_egg { + background-position: -480px -1216px +} + +.mcsprite-zombie_pigman_spawn_egg { + background-position: -512px -1216px +} + +.mcsprite-zombie_spawn_egg { + background-position: -544px -1216px +} + +.mcsprite-zombie_villager_spawn_egg { + background-position: -576px -1216px +} + +.mcsprite-zombified_piglin_spawn_egg { + background-position: -608px -1216px +} + +.toc { + display: none; + position: relative; + margin: 1em 0; + padding: .2em .5em; + background-color: #f8f9fa; + border: solid 1px #eaecf0; + box-sizing: border-box +} + +.toctogglecheckbox ~ ul { + visibility: hidden; + height: 0 +} + +.toctogglecheckbox:not(:checked) ~ ul { + visibility: visible; + padding-bottom: 20px; + height: auto +} + +.toctitle { + padding: 0 25px 0 32px +} + +.toctitle .mw-ui-icon { + position: absolute; + left: 0 +} + +.toctitle .toctogglespan + .mw-ui-icon { + top: 8px; + right: 0; + left: auto +} + +.toctogglelabel { + cursor: pointer; + position: absolute; + left: 0; + top: 0; + right: 0; + height: 50px; + z-index: 1 +} + +.client-js .toc .toctitle { + visibility: hidden; + background-position: right center; + font-weight: 700; + border-bottom: 0 +} + +.client-js .toc .toctitle h2 { + display: inline-block; + font-family: -apple-system, blinkmacsystemfont, segoe ui, roboto, lato, helvetica, arial, sans-serif; + font-size: 1.125em; + vertical-align: middle +} + +.client-js .toc .tocnumber { + display: none +} + +.client-js .toc > ul { + margin: 0 22.85714286em 0 32px; + padding-left: 0; + font-size: .875em +} + +.client-js .toc ul { + list-style: none +} + +@media screen and (min-width: 720px) { + .client-js .toc { + display: table + } + + .client-js .toc .toctitle { + visibility: visible + } +} + +body { + font-family: -apple-system, blinkmacsystemfont, segoe ui, roboto, lato, helvetica, arial, sans-serif; + line-height: 1.4; + -webkit-tap-highlight-color: rgba(0, 0, 0, .2); + overflow-y: scroll +} + +.content { + line-height: 1.65; + word-wrap: break-word +} + +.content .center { + width: 100%; + text-align: center +} + +.content .center > *, .content .center .thumb { + margin-left: auto; + margin-right: auto +} + +@media all and (max-width: 320px -1) { + html { + font-size: 80% + } + + .content { + margin: 0 12px + } +} + +.nomobile { + display: none !important +} + +@supports (font: -apple-system-body) { + html { + font: -apple-system-body + } + + body { + font-size: 94.11764706% + } + + @media all and (max-width: 320px -1) { + body { + font-size: 75.29411765% + } + } +} + +.content figure, .content .thumb { + margin: .6em 0 +} + +.content figure .thumbinner, .content .thumb .thumbinner { + margin: 0 auto; + max-width: 100% !important +} + +.content figcaption, .content .thumbcaption { + margin: .5em 0 0; + font-size: .8125em; + line-height: 1.5; + padding: 0 !important; + color: #54595d +} + +.content .thumbcaption { + width: auto !important +} + +.content .mw-image-border, .content .thumbborder { + border: 1px solid #c8ccd1 +} + +.content .magnify { + display: none +} + +.content img { + vertical-align: middle +} + +.content .floatright { + clear: right; + float: right; + margin: 0 0 .6em .6em +} + +.content .floatleft { + clear: left; + float: left; + margin: 0 .6em .6em 0 +} + +.content a > img, .content noscript > img { + max-width: 100% !important; + height: auto !important +} + +.content .noresize { + max-width: 100%; + overflow-x: auto +} + +.content .noresize a > img { + max-width: none !important +} + +h1 { + font-size: 1.7em +} + +h2 { + font-size: 1.5em +} + +h3 { + font-size: 1.2em; + font-weight: 700 +} + +h4 { + font-weight: 700 +} + +.pre-content h1, .content h1, .content h2 { + font-family: linux libertine, helvetica, georgia, times, serif +} + +.pre-content h1, .content h1, .content h2, h3, h4, h5, h6 { + line-height: 1.3; + word-wrap: break-word; + word-break: break-word +} + +.content h2, .content h3, .content h4, .content h5, .content h6 { + padding: .5em 0 +} + +.content p + h3 { + margin-top: 1.5em +} + +.content { +} + +.content ol { + padding-left: 2.25em +} + +.content ul { + list-style-type: disc; + padding-left: 1em +} + +.content ul > li > ul { + list-style-type: circle +} + +.content ul > li > ul > li > ul { + list-style-type: square +} + +.content ol ol, .content ul ol, .content ol ul, .content ul ul { + margin-left: 1em +} + +.content li { + margin-bottom: 10px +} + +.content li:last-child { + margin-bottom: inherit +} + +dl { + margin-left: 1em +} + +dl dt { + font-weight: 700 +} + +dl dd { + display: block; + overflow: auto +} + +body.mw-hide-empty-elt .mw-empty-elt { + display: none +} + +a:not([href]) { + color: #3f7dfb; + cursor: pointer +} + +a { + color: #3f7dfb; + text-decoration: none +} + +a:visited { + color: #ba91ff +} + +a:active { + color: #986be5 +} + +a:hover { + text-decoration: underline +} + +a.new, a.new:visited, a.new:hover { + color: #d33 +} + +a.new > *, a.new:visited > *, a.new:hover > * { + color: #d33 +} + +a.external { + background-size: 10px; + background-repeat: no-repeat; + background-position: center right; + padding-right: 13px +} + +.return-link { + display: block; + font-size: .875em; + margin-top: 1.5em +} + +.plainlinks a { + background: 0 0 !important; + padding: 0 !important +} + +.content p { + margin: .5em 0 1em +} + +.content hr { + background-color: #a2a9b1; + height: 1px; + border: 0 +} + +.content kbd, .content samp, .content code, .content pre { + font-family: menlo, consolas, liberation mono, courier new, monospace; + border: solid 1px #c8ccd1; + white-space: pre-wrap +} + +.content code { + padding: .2em .5em +} + +.content pre { + padding: 1em +} + +b, strong { + font-weight: 700 +} + +blockquote { + border-left: 3px solid #c8ccd1; + padding: 8px 24px 8px 32px; + font-family: linux libertine, helvetica, georgia, times, serif; + font-size: 1.1em +} + +blockquote > :first-child { + margin-top: 0 +} + +blockquote > :last-child { + margin-bottom: 0 +} + +blockquote > :only-child { + margin-top: 0; + margin-bottom: 0 +} + +em, i { + font-style: italic +} + +sup { + vertical-align: super +} + +sub { + vertical-align: sub +} + +sub, sup, .content .mw-ref { + font-size: .75em; + line-height: 1 +} + +@media all and (max-width: 720px) { + .content table { + display: block; + width: 100% !important; + box-sizing: border-box + } + + .content table.wikitable { + border: 0 + } + + .content caption { + display: block + } +} + +.content table { + margin: 1em 0; + overflow: auto; + overflow-y: hidden; + overflow-x: auto +} + +.content table caption { + text-align: left +} + +.wikitable { + border: 1px solid #54595d; + border-color: rgba(84, 89, 93, .3) +} + +.wikitable > tr > th, .wikitable > tr > td, .wikitable > * > tr > th, .wikitable > * > tr > td { + border: 1px solid #54595d; + border-color: rgba(84, 89, 93, .3); + padding: .2em +} + +.wikitable > tr > th, .wikitable > * > tr > th { + background-color: #eaecf0 +} + +@media screen and (min-width: 720px) { + .client-js #searchIcon { + display: none + } + + .header .branding-box { + width: 10.0625em + } + + .header .search-box { + display: table-cell; + width: auto + } + + .header .search-box .search { + width: 23.4375em + } + + .pre-content, #mw-content-text > form, .content, .post-content { + max-width: 993.3px; + margin: 0 3.35em + } + + .content figure, .content .thumb { + max-width: 704px + } + + .content figure.mw-halign-left, .content .thumb.mw-halign-left, .content figure.tleft, .content .thumb.tleft { + float: left; + clear: left; + margin-right: 1.4em + } + + .content figure.mw-default-size, .content .thumb.mw-default-size, .content figure.mw-halign-right, .content .thumb.mw-halign-right, .content figure.tright, .content .thumb.tright { + float: right; + clear: right; + margin-left: 1.4em + } + + .content table caption { + background: inherit + } + + .content table tbody { + display: table-row-group + } + + .last-modified-bar { + background-color: transparent; + padding-left: 0; + padding-right: 0; + font-size: 1em + } +} + +@media screen and (min-width: 1000px) { + .banner-container, .header, .page-header-bar, .overlay-header, .content, .overlay-content, .content-unstyled, .pre-content, .post-content, #mw-content-text > form { + margin-left: auto; + margin-right: auto; + width: 90%; + max-width: 993.3px + } + + .header { + max-width: 995.3px + } +} + +toast.mw-notification-type-error, .mw-notification.mw-notification-type-error { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&format=rasterized&skin=minerva&version=qhhuv); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&format=original&skin=minerva&version=qhhuv) +} + +toast.mw-notification-type-error, .mw-notification.mw-notification-type-error--reference { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&variant=reference&format=rasterized&skin=minerva&version=qhhuv); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&variant=reference&format=original&skin=minerva&version=qhhuv) +} + +a.external { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&format=rasterized&lang=en&skin=minerva&version=qhhuv); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&format=original&lang=en&skin=minerva&version=qhhuv) +} + +a.external--reference { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&variant=reference&format=rasterized&lang=en&skin=minerva&version=qhhuv); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&variant=reference&format=original&lang=en&skin=minerva&version=qhhuv) +} + +.mw-ui-icon-wikimedia-history-base20:before, .mw-ui-background-icon-history { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-history-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=invert&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=invert&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-history-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=progressive&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=progressive&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-language-base20:before, .mw-ui-background-icon-language { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-language-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=invert&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=invert&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-language-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=progressive&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=progressive&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-edit-base20:before, .mw-ui-background-icon-edit { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-edit-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=invert&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=invert&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-edit-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=progressive&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=progressive&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-editLock-base20:before, .mw-ui-background-icon-editLock { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-editLock-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=invert&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=invert&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-editLock-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=progressive&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=progressive&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-search-base20:before, .mw-ui-background-icon-search { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-search-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=invert&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=invert&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-search-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=progressive&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=progressive&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-menu-base20:before, .mw-ui-background-icon-menu { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-menu-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=invert&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=invert&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-menu-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=progressive&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=progressive&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-star-base20:before, .mw-ui-background-icon-star { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-star-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=invert&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=invert&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-star-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=progressive&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=progressive&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-halfStar-base20:before, .mw-ui-background-icon-halfStar { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&format=rasterized&lang=en&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&format=original&lang=en&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-halfStar-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=invert&format=rasterized&lang=en&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=invert&format=original&lang=en&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-halfStar-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=progressive&format=rasterized&lang=en&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=progressive&format=original&lang=en&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-unStar-base20:before, .mw-ui-background-icon-unStar { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-unStar-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=invert&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=invert&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-unStar-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=progressive&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=progressive&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-userAvatar-base20:before, .mw-ui-background-icon-userAvatar { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-userAvatar-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=invert&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=invert&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-wikimedia-userAvatar-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=progressive&format=rasterized&skin=minerva&version=4y50j); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=progressive&format=original&skin=minerva&version=4y50j) +} + +.mw-ui-icon-minerva-speechBubbles:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.advanced.icons&image=speechBubbles&format=rasterized&lang=en&skin=minerva&version=jhnt0); + background-image: linear-gradient(transparent, transparent), url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+c3BlZWNoIGJ1YmJsZXM8L3RpdGxlPjxnIGZpbGw9IiM1NDU5NWQiPjxwYXRoIGQ9Ik0xNyA0djdhMiAyIDAgMDEtMiAySDR2MWEyIDIgMCAwMDIgMmgxMGw0IDRWNmEyIDIgMCAwMC0yLTJ6TTYgMTBIMHY2eiIvPjxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxMiIgcng9IjIiLz48L2c+PC9zdmc+) +} + +.mw-ui-icon-minerva-specialPages:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.advanced.icons&image=specialPages&format=rasterized&lang=en&skin=minerva&version=jhnt0); + background-image: linear-gradient(transparent, transparent), url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+c3BlY2lhbCBwYWdlczwvdGl0bGU+PGcgZmlsbD0iIzU0NTk1ZCI+PHBhdGggZD0iTTcgMGEyIDIgMCAwMC0yIDJoOWEyIDIgMCAwMTIgMnYxMmEyIDIgMCAwMDItMlYyYTIgMiAwIDAwLTItMnoiLz48cGF0aCBkPSJNMTMgMjBINGEyIDIgMCAwMS0yLTJWNWEyIDIgMCAwMTItMmg5YTIgMiAwIDAxMiAydjEzYTIgMiAwIDAxLTIgMnptLTYuNS0zLjVsLjQxLTEuMDlMOCAxNWwtMS4wOS0uNDEtLjQxLTEuMDktLjQxIDEuMDlMNSAxNWwxLjA5LjQxLjQxIDEuMDl6bTIuOTgyLS45NDlsLjk1Mi0yLjU2MSAyLjUzLS45NjQtMi41My0uOTY0TDkuNDgyIDguNWwtLjk1MiAyLjU2Mi0yLjUzLjk2NCAyLjUzLjk2NC45NTIgMi41NjF6TTYgMTAuNWwuNTQ3LTEuNDUzTDggOC41bC0xLjQ1My0uNTQ3TDYgNi41bC0uNTQ3IDEuNDUzTDQgOC41bDEuNDUzLjU0N0w2IDEwLjV6Ii8+PC9nPjwvc3ZnPg==) +} + +.mw-ui-icon-minerva-recentChanges:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.advanced.icons&image=recentChanges&format=rasterized&lang=en&skin=minerva&version=jhnt0); + background-image: linear-gradient(transparent, transparent), url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+cmVjZW50IGNoYW5nZXM8L3RpdGxlPjxnIGZpbGw9IiM1NDU5NWQiPjxjaXJjbGUgY3g9IjIiIGN5PSI0IiByPSIyIi8+PGNpcmNsZSBjeD0iMiIgY3k9IjEwIiByPSIyIi8+PGNpcmNsZSBjeD0iMiIgY3k9IjE2IiByPSIyIi8+PHBhdGggZD0iTTYgM2gxMXYySDZ6bTAgNmg2djJINnptMCA2aDJ2Mkg2em0xMi43Ni0zLjExbDEuMDc4LTEuMTEyYS41NTYuNTU2IDAgMDAwLS43ODNsLTEuODU1LTEuODMzYS41NTYuNTU2IDAgMDAtLjc4MyAwbC0xLjA5IDEuMDc3IDIuNjUgMi42NXptLTMuMjI3LTIuMDYyTDEwIDE1LjM2MVYxOGgyLjYzOWw1LjUzMy01LjUzM3oiLz48L2c+PC9zdmc+) +} + +.mw-ui-icon-minerva-die:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=die&format=rasterized&skin=minerva&version=17p52); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=die&format=original&skin=minerva&version=17p52) +} + +.mw-ui-icon-minerva-heart:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=heart&format=rasterized&skin=minerva&version=17p52); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=heart&format=original&skin=minerva&version=17p52) +} + +.mw-ui-icon-minerva-home:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=home&format=rasterized&skin=minerva&version=17p52); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=home&format=original&skin=minerva&version=17p52) +} + +.mw-ui-icon-minerva-logIn:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logIn&format=rasterized&lang=en&skin=minerva&version=17p52); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logIn&format=original&lang=en&skin=minerva&version=17p52) +} + +.mw-ui-icon-minerva-logOut:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logOut&format=rasterized&lang=en&skin=minerva&version=17p52); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logOut&format=original&lang=en&skin=minerva&version=17p52) +} + +.mw-ui-icon-minerva-settings:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=settings&format=rasterized&skin=minerva&version=17p52); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=settings&format=original&skin=minerva&version=17p52) +} + +.mw-ui-icon-minerva-mapPin:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=mapPin&format=rasterized&skin=minerva&version=17p52); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=mapPin&format=original&skin=minerva&version=17p52) +} + +.mw-ui-icon-minerva-unStar:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=unStar&format=rasterized&skin=minerva&version=17p52); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=unStar&format=original&skin=minerva&version=17p52) +} + +.mw-ui-icon-minerva-userContributions:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=userContributions&format=rasterized&lang=en&skin=minerva&version=17p52); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=userContributions&format=original&lang=en&skin=minerva&version=17p52) +} + +#mw-mf-page-left { + position: fixed; + top: 0; + left: 0; + bottom: 0; + min-width: 275px; + visibility: hidden; + max-width: 80%; + z-index: 2; + overflow-y: auto; + background-color: #eaecf0; + -webkit-transform: translate(-100%, 0); + -ms-transform: translate(-100%, 0); + transform: translate(-100%, 0) +} + +@media screen and (min-width: 720px) { + #mw-mf-page-left { + min-width: 320px + } +} + +#mw-mf-page-left ul { + padding-bottom: 22px +} + +.main-menu-mask { + position: fixed; + top: 0; + left: 0; + right: 0; + opacity: 0; + bottom: 0; + background: rgba(0, 0, 0, .8); + z-index: 1; + visibility: hidden +} + +#main-menu-input:checked ~ .main-menu-mask { + visibility: visible; + opacity: .5 +} + +#main-menu-input:checked ~ #mw-mf-page-left { + visibility: visible; + box-shadow: 1px 0 8px 0 rgba(0, 0, 0, .35); + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0) +} + +.minerva-animations-ready #mw-mf-page-left { + -webkit-transition: opacity 250ms ease-in-out, visibility 250ms ease-in-out, transform 250ms ease-in-out; + transition: opacity 250ms ease-in-out, visibility 250ms ease-in-out, transform 250ms ease-in-out +} + +.minerva-animations-ready .main-menu-mask { + -webkit-transition: opacity 100ms ease-in-out, visibility 0ms linear 100ms; + transition: opacity 100ms ease-in-out, visibility 0ms linear 100ms +} + +.minerva-animations-ready #main-menu-input:checked ~ .main-menu-mask { + -webkit-transition: opacity 100ms ease-in-out; + transition: opacity 100ms ease-in-out +} + +.navigation-full-screen #mw-mf-page-left { + max-width: none; + -webkit-transform: none; + -ms-transform: none; + transform: none +} + +.hotfix-T264376 .main-menu-mask { + display: none +} + +.hotfix-T264376 #main-menu-input:checked ~ .main-menu-mask { + display: block +} + +#mw-mf-page-left .secondary-action { + border: 0; + font-size: 16px; + position: absolute; + right: 0; + top: 0; + bottom: 0; + border-left: 1px solid #a2a9b1; + color: transparent +} + +#mw-mf-page-left .primary-action { + margin-right: 3.5em +} + +#mw-mf-page-left ul:first-child li:first-child { + border-top: 0 +} + +#mw-mf-page-left ul li { + background-color: #fff; + position: relative; + border-top: 1px solid #eaecf0; + margin-top: -1px +} + +#mw-mf-page-left ul li:first-child { + border-top: 0 +} + +#mw-mf-page-left ul li a { + color: #54595d; + display: block; + max-width: 100%; + padding: 12px 10px 12px 15px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap +} + +#mw-mf-page-left ul li a.secondary-action { + padding-left: 10px +} + +#mw-mf-page-left ul li a:hover { + box-shadow: inset 4px 0 0 0 #36c; + text-decoration: none +} + +#mw-mf-page-left ul li a span { + font-size: .875em; + font-weight: 700; + vertical-align: middle +} + +#mw-mf-page-left ul.hlist li { + background-color: transparent; + border: 0; + margin: 0; + font-size: .75em +} + +#mw-mf-page-left ul.hlist li:after { + content: none +} + +#mw-mf-page-left ul.hlist li a { + color: #36c; + padding: .7em 12px +} + +#mw-mf-page-left ul.hlist li a:hover { + background-color: transparent; + box-shadow: none +} + +.notifications-overlay { + visibility: visible +} + +.notifications-overlay.navigation-drawer { + display: block; + width: auto; + right: 0; + box-shadow: -5px 0 0 0 rgba(0, 0, 0, .35); + -webkit-transform: translate(100%, 0); + -ms-transform: translate(100%, 0); + transform: translate(100%, 0); + -webkit-transition: transform 250ms ease-in-out; + transition: transform 250ms ease-in-out +} + +.notifications-overlay.navigation-drawer.visible { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0) +} + +@media all and (min-width: 720px) { + .notifications-overlay.navigation-drawer { + left: 40% + } + + .notifications-overlay.navigation-drawer .overlay-header { + margin: 0; + width: 100%; + max-width: none + } + + .notifications-overlay.navigation-drawer .overlay-header .cancel { + left: 0 + } +} + +.toggle-list__checkbox { + position: absolute; + z-index: -1; + opacity: 0 +} + +.toggle-list__toggle { + display: inline-block; + cursor: pointer +} + +.toggle-list__checkbox:focus + .toggle-list__toggle { + outline: dotted 1px; + outline: auto #447ff5 +} + +.toggle-list__checkbox:checked + .toggle-list__toggle { + outline: 0; + background: rgba(1, 1, 1, .1) +} + +.touch-events .toggle-list__checkbox:focus + .toggle-list__toggle { + outline: 0 +} + +.toggle-list__list { + background: #fff; + position: absolute; + overflow-y: auto; + z-index: 2; + box-shadow: 0 5px 17px 0 rgba(0, 0, 0, .24), 0 0 1px #a2a9b1; + visibility: hidden; + opacity: 0 +} + +.toggle-list__checkbox:checked ~ .toggle-list__list { + visibility: visible; + opacity: 1 +} + +.mw-ui-icon-minerva-articleRedirect:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&format=rasterized&lang=en&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&format=original&lang=en&skin=minerva&version=bdzvr) +} + +.oo-ui-image-invert.oo-ui-icon-articleRedirect, .mw-ui-icon-articleRedirect-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr) +} + +.oo-ui-image-progressive.oo-ui-icon-articleRedirect, .mw-ui-icon-articleRedirect-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr) +} + +.mw-ui-icon-minerva-infoFilled:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&format=rasterized&lang=en&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&format=original&lang=en&skin=minerva&version=bdzvr) +} + +.oo-ui-image-invert.oo-ui-icon-infoFilled, .mw-ui-icon-infoFilled-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr) +} + +.oo-ui-image-progressive.oo-ui-icon-infoFilled, .mw-ui-icon-infoFilled-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr) +} + +.mw-ui-icon-minerva-quotes:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&format=rasterized&lang=en&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&format=original&lang=en&skin=minerva&version=bdzvr) +} + +.oo-ui-image-invert.oo-ui-icon-quotes, .mw-ui-icon-quotes-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr) +} + +.oo-ui-image-progressive.oo-ui-icon-quotes, .mw-ui-icon-quotes-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr) +} + +.mw-ui-icon-minerva-link:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&format=rasterized&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&format=original&skin=minerva&version=bdzvr) +} + +.oo-ui-image-invert.oo-ui-icon-link, .mw-ui-icon-link-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=invert&format=rasterized&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=invert&format=original&skin=minerva&version=bdzvr) +} + +.oo-ui-image-progressive.oo-ui-icon-link, .mw-ui-icon-link-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=progressive&format=original&skin=minerva&version=bdzvr) +} + +.mw-ui-icon-minerva-listBullet:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&format=rasterized&lang=en&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&format=original&lang=en&skin=minerva&version=bdzvr) +} + +.oo-ui-image-invert.oo-ui-icon-listBullet, .mw-ui-icon-listBullet-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr) +} + +.oo-ui-image-progressive.oo-ui-icon-listBullet, .mw-ui-icon-listBullet-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr) +} + +.mw-ui-icon-minerva-ellipsis:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&format=rasterized&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&format=original&skin=minerva&version=bdzvr) +} + +.oo-ui-image-invert.oo-ui-icon-ellipsis, .mw-ui-icon-ellipsis-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=invert&format=rasterized&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=invert&format=original&skin=minerva&version=bdzvr) +} + +.oo-ui-image-progressive.oo-ui-icon-ellipsis, .mw-ui-icon-ellipsis-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=progressive&format=original&skin=minerva&version=bdzvr) +} + +.mw-ui-icon-minerva-userAvatar:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&format=rasterized&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&format=original&skin=minerva&version=bdzvr) +} + +.oo-ui-image-invert.oo-ui-icon-userAvatar, .mw-ui-icon-userAvatar-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=invert&format=rasterized&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=invert&format=original&skin=minerva&version=bdzvr) +} + +.oo-ui-image-progressive.oo-ui-icon-userAvatar, .mw-ui-icon-userAvatar-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=progressive&format=original&skin=minerva&version=bdzvr) +} + +.mw-ui-icon-minerva-userAvatarOutline:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&format=rasterized&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&format=original&skin=minerva&version=bdzvr) +} + +.oo-ui-image-invert.oo-ui-icon-userAvatarOutline, .mw-ui-icon-userAvatarOutline-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=invert&format=rasterized&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=invert&format=original&skin=minerva&version=bdzvr) +} + +.oo-ui-image-progressive.oo-ui-icon-userAvatarOutline, .mw-ui-icon-userAvatarOutline-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=progressive&format=original&skin=minerva&version=bdzvr) +} + +.mw-ui-icon-minerva-userGroup:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&format=rasterized&lang=en&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&format=original&lang=en&skin=minerva&version=bdzvr) +} + +.oo-ui-image-invert.oo-ui-icon-userGroup, .mw-ui-icon-userGroup-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr) +} + +.oo-ui-image-progressive.oo-ui-icon-userGroup, .mw-ui-icon-userGroup-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr) +} + +.mw-ui-icon-minerva-userTalk:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&format=rasterized&lang=en&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&format=original&lang=en&skin=minerva&version=bdzvr) +} + +.oo-ui-image-invert.oo-ui-icon-userTalk, .mw-ui-icon-userTalk-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr) +} + +.oo-ui-image-progressive.oo-ui-icon-userTalk, .mw-ui-icon-userTalk-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr) +} + +.mw-ui-icon-minerva-logoWikidata:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&format=rasterized&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&format=original&skin=minerva&version=bdzvr) +} + +.oo-ui-image-invert.oo-ui-icon-logoWikidata, .mw-ui-icon-logoWikidata-invert:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=invert&format=rasterized&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=invert&format=original&skin=minerva&version=bdzvr) +} + +.oo-ui-image-progressive.oo-ui-icon-logoWikidata, .mw-ui-icon-logoWikidata-progressive:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); + background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=progressive&format=original&skin=minerva&version=bdzvr) +} + +.mw-ui-icon-minerva-markup:before { + background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.personalMenu.icons&image=markup&format=rasterized&skin=minerva&version=1j2d9); + background-image: linear-gradient(transparent, transparent), url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+bWFya3VwPC90aXRsZT48ZyBmaWxsPSIjNTQ1OTVkIj48cGF0aCBkPSJNNi41IDMuNUwwIDEwbDEuNSAxLjUgNSA1TDggMTVsLTUtNSA1LTV6bTcgMEwxMiA1bDUgNS01IDUgMS41IDEuNUwyMCAxMHoiLz48L2c+PC9zdmc+) +} + +div#mw-content-text { + position: absolute; +} + +body { + text-rendering: optimizeLegibility; + text-rendering: geometricPrecision +} diff --git a/src/main/resources/assets/notenoughupdates/shaders/program/blur.json b/src/main/resources/assets/notenoughupdates/shaders/program/blur.json index 9da3c2e8..01c0578d 100644 --- a/src/main/resources/assets/notenoughupdates/shaders/program/blur.json +++ b/src/main/resources/assets/notenoughupdates/shaders/program/blur.json @@ -1,21 +1,85 @@ { - "blend": { - "func": "add", - "srcrgb": "srcalpha", - "dstrgb": "1-srcalpha" + "blend": { + "func": "add", + "srcrgb": "srcalpha", + "dstrgb": "1-srcalpha" + }, + "vertex": "sobel", + "fragment": "blur2", + "attributes": [ + "Position" + ], + "samplers": [ + { + "name": "DiffuseSampler" + } + ], + "uniforms": [ + { + "name": "ProjMat", + "type": "matrix4x4", + "count": 16, + "values": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] }, - "vertex": "sobel", - "fragment": "blur2", - "attributes": [ "Position" ], - "samplers": [ - { "name": "DiffuseSampler" } - ], - "uniforms": [ - { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, - { "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, - { "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, - { "name": "BlurDir", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, - { "name": "Radius", "type": "float", "count": 1, "values": [ 5.0 ] }, - { "name": "AlphaMult", "type": "float", "count": 1, "values": [ 1.0 ] } - ] + { + "name": "InSize", + "type": "float", + "count": 2, + "values": [ + 1.0, + 1.0 + ] + }, + { + "name": "OutSize", + "type": "float", + "count": 2, + "values": [ + 1.0, + 1.0 + ] + }, + { + "name": "BlurDir", + "type": "float", + "count": 2, + "values": [ + 1.0, + 1.0 + ] + }, + { + "name": "Radius", + "type": "float", + "count": 1, + "values": [ + 5.0 + ] + }, + { + "name": "AlphaMult", + "type": "float", + "count": 1, + "values": [ + 1.0 + ] + } + ] } diff --git a/src/main/resources/assets/notenoughupdates/shaders/program/dungeonmap.json b/src/main/resources/assets/notenoughupdates/shaders/program/dungeonmap.json index bb41ffd5..a8a3fc79 100644 --- a/src/main/resources/assets/notenoughupdates/shaders/program/dungeonmap.json +++ b/src/main/resources/assets/notenoughupdates/shaders/program/dungeonmap.json @@ -6,14 +6,63 @@ }, "vertex": "dungeonmap", "fragment": "dungeonmap", - "attributes": [ "Position" ], + "attributes": [ + "Position" + ], "samplers": [ - { "name": "DiffuseSampler" } + { + "name": "DiffuseSampler" + } ], "uniforms": [ - { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, - { "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, - { "name": "InSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, - { "name": "radiusSq", "type": "float", "count": 1, "values": [ 1.0 ] } + { + "name": "ProjMat", + "type": "matrix4x4", + "count": 16, + "values": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "OutSize", + "type": "float", + "count": 2, + "values": [ + 1.0, + 1.0 + ] + }, + { + "name": "InSize", + "type": "float", + "count": 2, + "values": [ + 1.0, + 1.0 + ] + }, + { + "name": "radiusSq", + "type": "float", + "count": 1, + "values": [ + 1.0 + ] + } ] } diff --git a/src/main/resources/assets/notenoughupdates/shaders/program/grayscale.json b/src/main/resources/assets/notenoughupdates/shaders/program/grayscale.json index 048ceb9f..2878f3ed 100644 --- a/src/main/resources/assets/notenoughupdates/shaders/program/grayscale.json +++ b/src/main/resources/assets/notenoughupdates/shaders/program/grayscale.json @@ -6,12 +6,46 @@ }, "vertex": "blit", "fragment": "grayscale", - "attributes": [ "Position" ], + "attributes": [ + "Position" + ], "samplers": [ - { "name": "DiffuseSampler" } + { + "name": "DiffuseSampler" + } ], "uniforms": [ - { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, - { "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] } + { + "name": "ProjMat", + "type": "matrix4x4", + "count": 16, + "values": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "OutSize", + "type": "float", + "count": 2, + "values": [ + 1.0, + 1.0 + ] + } ] } diff --git a/src/main/resources/assets/notenoughupdates/shaders/program/setrgbtoalpha.json b/src/main/resources/assets/notenoughupdates/shaders/program/setrgbtoalpha.json index 653764fb..3bd50d8b 100644 --- a/src/main/resources/assets/notenoughupdates/shaders/program/setrgbtoalpha.json +++ b/src/main/resources/assets/notenoughupdates/shaders/program/setrgbtoalpha.json @@ -6,12 +6,46 @@ }, "vertex": "blit", "fragment": "setrgbtoalpha", - "attributes": [ "Position" ], + "attributes": [ + "Position" + ], "samplers": [ - { "name": "DiffuseSampler" } + { + "name": "DiffuseSampler" + } ], "uniforms": [ - { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, - { "name": "OutSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] } + { + "name": "ProjMat", + "type": "matrix4x4", + "count": 16, + "values": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] + }, + { + "name": "OutSize", + "type": "float", + "count": 2, + "values": [ + 1.0, + 1.0 + ] + } ] } diff --git a/src/main/resources/assets/notenoughupdates/sounds.json b/src/main/resources/assets/notenoughupdates/sounds.json index 6d827876..5a3b5528 100644 --- a/src/main/resources/assets/notenoughupdates/sounds.json +++ b/src/main/resources/assets/notenoughupdates/sounds.json @@ -71,7 +71,6 @@ } ] }, - "titanium.break": { "category": "block", "sounds": [ diff --git a/src/main/resources/assets/notenoughupdates/sounds/gemstoneamberbreak.json b/src/main/resources/assets/notenoughupdates/sounds/gemstoneamberbreak.json index b02ee0c7..e46a3897 100644 --- a/src/main/resources/assets/notenoughupdates/sounds/gemstoneamberbreak.json +++ b/src/main/resources/assets/notenoughupdates/sounds/gemstoneamberbreak.json @@ -1 +1,3 @@ -{ "debouncer": 20 } +{ + "debouncer": 20 +} diff --git a/src/main/resources/assets/notenoughupdates/sounds/gemstoneamethystbreak.json b/src/main/resources/assets/notenoughupdates/sounds/gemstoneamethystbreak.json index b02ee0c7..e46a3897 100644 --- a/src/main/resources/assets/notenoughupdates/sounds/gemstoneamethystbreak.json +++ b/src/main/resources/assets/notenoughupdates/sounds/gemstoneamethystbreak.json @@ -1 +1,3 @@ -{ "debouncer": 20 } +{ + "debouncer": 20 +} diff --git a/src/main/resources/assets/notenoughupdates/sounds/gemstonejadebreak.json b/src/main/resources/assets/notenoughupdates/sounds/gemstonejadebreak.json index b02ee0c7..e46a3897 100644 --- a/src/main/resources/assets/notenoughupdates/sounds/gemstonejadebreak.json +++ b/src/main/resources/assets/notenoughupdates/sounds/gemstonejadebreak.json @@ -1 +1,3 @@ -{ "debouncer": 20 } +{ + "debouncer": 20 +} diff --git a/src/main/resources/assets/notenoughupdates/sounds/gemstonejasperbreak.json b/src/main/resources/assets/notenoughupdates/sounds/gemstonejasperbreak.json index b02ee0c7..e46a3897 100644 --- a/src/main/resources/assets/notenoughupdates/sounds/gemstonejasperbreak.json +++ b/src/main/resources/assets/notenoughupdates/sounds/gemstonejasperbreak.json @@ -1 +1,3 @@ -{ "debouncer": 20 } +{ + "debouncer": 20 +} diff --git a/src/main/resources/assets/notenoughupdates/sounds/gemstonerubybreak.json b/src/main/resources/assets/notenoughupdates/sounds/gemstonerubybreak.json index b02ee0c7..e46a3897 100644 --- a/src/main/resources/assets/notenoughupdates/sounds/gemstonerubybreak.json +++ b/src/main/resources/assets/notenoughupdates/sounds/gemstonerubybreak.json @@ -1 +1,3 @@ -{ "debouncer": 20 } +{ + "debouncer": 20 +} diff --git a/src/main/resources/assets/notenoughupdates/sounds/gemstonesapphirebreak.json b/src/main/resources/assets/notenoughupdates/sounds/gemstonesapphirebreak.json index b02ee0c7..e46a3897 100644 --- a/src/main/resources/assets/notenoughupdates/sounds/gemstonesapphirebreak.json +++ b/src/main/resources/assets/notenoughupdates/sounds/gemstonesapphirebreak.json @@ -1 +1,3 @@ -{ "debouncer": 20 } +{ + "debouncer": 20 +} diff --git a/src/main/resources/assets/notenoughupdates/sounds/gemstonetopazbreak.json b/src/main/resources/assets/notenoughupdates/sounds/gemstonetopazbreak.json index b02ee0c7..e46a3897 100644 --- a/src/main/resources/assets/notenoughupdates/sounds/gemstonetopazbreak.json +++ b/src/main/resources/assets/notenoughupdates/sounds/gemstonetopazbreak.json @@ -1 +1,3 @@ -{ "debouncer": 20 } +{ + "debouncer": 20 +} diff --git a/src/main/resources/assets/notenoughupdates/sounds/mithrilbreak.json b/src/main/resources/assets/notenoughupdates/sounds/mithrilbreak.json index b02ee0c7..e46a3897 100644 --- a/src/main/resources/assets/notenoughupdates/sounds/mithrilbreak.json +++ b/src/main/resources/assets/notenoughupdates/sounds/mithrilbreak.json @@ -1 +1,3 @@ -{ "debouncer": 20 } +{ + "debouncer": 20 +} diff --git a/src/main/resources/assets/notenoughupdates/sounds/titaniumbreak.json b/src/main/resources/assets/notenoughupdates/sounds/titaniumbreak.json index b02ee0c7..e46a3897 100644 --- a/src/main/resources/assets/notenoughupdates/sounds/titaniumbreak.json +++ b/src/main/resources/assets/notenoughupdates/sounds/titaniumbreak.json @@ -1 +1,3 @@ -{ "debouncer": 20 } +{ + "debouncer": 20 +} diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index d20efafe..70f63a48 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -1,16 +1,18 @@ [ -{ - "modid": "notenoughupdates", - "name": "NotEnoughUpdates", - "description": "Mod that shows recipes and useful info for Hypixel's Skyblock gamemode.", - "version": "${version}", - "mcversion": "${mcversion}", - "url": "https://github.com/Moulberry/NotEnoughUpdates/", - "updateUrl": "https://github.com/Moulberry/NotEnoughUpdates/releases", - "authorList": ["Moulberry"], - "credits": "", - "logoFile": "", - "screenshots": [], - "dependencies": [] -} + { + "modid": "notenoughupdates", + "name": "NotEnoughUpdates", + "description": "Mod that shows recipes and useful info for Hypixel's Skyblock gamemode.", + "version": "${version}", + "mcversion": "${mcversion}", + "url": "https://github.com/NotEnoughUpdates/NotEnoughUpdates/", + "updateUrl": "https://github.com/NotEnoughUpdates/NotEnoughUpdates/releases", + "authorList": [ + "Moulberry" + ], + "credits": "", + "logoFile": "", + "screenshots": [], + "dependencies": [] + } ] diff --git a/src/main/resources/mixins.notenoughupdates.json b/src/main/resources/mixins.notenoughupdates.json index ab2c705e..63b8211b 100644 --- a/src/main/resources/mixins.notenoughupdates.json +++ b/src/main/resources/mixins.notenoughupdates.json @@ -4,51 +4,47 @@ "minVersion": "0.7", "compatibilityLevel": "JAVA_8", "mixins": [ - "AccessorEntityAgeable", - "AccessorEntityArmorStand", - "AccessorGuiPlayerTabOverlay", - "MixinAbstractClientPlayer", - "MixinContainer", - "MixinEffectRenderer", - "MixinEntity", - "MixinEntityAgeable", - "MixinEntityHorse", - "MixinEntityPlayer", - "MixinEntityPlayerSP", - "MixinEntityRenderer", - "MixinEntitySkeleton", - "MixinGuiChest", - "MixinGuiContainer", - "MixinGuiIngame", - "MixinGuiInventory", - "MixinGuiScreen", - "MixinInventoryEffectRenderer", - "MixinInventoryPlayer", - "MixinItemCameraTransforms", - "MixinItemRenderer", - "MixinItemStack", - "MixinLayerArmorBase", - "MixinLayerCustomHead", - "MixinMinecraft", - "MixinMouseHelper", - "MixinNetHandlerPlayClient", - "MixinPlayerControllerMP", - "MixinRender", - "MixinRendererLivingEntity", - "MixinRenderFish", - "MixinRenderGlobal", - "MixinRenderItem", - "MixinRenderList", - "MixinTextureManager", - "MixinTileEntitySkullRenderer", - "MixinTileEntitySpecialRenderer", - "MixinVboRenderList", - "MixinWorld", - "MixinWorldClient" + "AccessorEntityAgeable", + "AccessorEntityArmorStand", + "AccessorGuiPlayerTabOverlay", + "MixinAbstractClientPlayer", + "MixinContainer", + "MixinEffectRenderer", + "MixinEntity", + "MixinEntityAgeable", + "MixinEntityHorse", + "MixinEntityPlayer", + "MixinEntityPlayerSP", + "MixinEntityRenderer", + "MixinEntitySkeleton", + "MixinGuiChest", + "MixinGuiContainer", + "MixinGuiIngame", + "MixinGuiInventory", + "MixinGuiScreen", + "MixinInventoryEffectRenderer", + "MixinInventoryPlayer", + "MixinItemCameraTransforms", + "MixinItemRenderer", + "MixinItemStack", + "MixinLayerArmorBase", + "MixinLayerCustomHead", + "MixinMinecraft", + "MixinMouseHelper", + "MixinNetHandlerPlayClient", + "MixinPlayerControllerMP", + "MixinRender", + "MixinRendererLivingEntity", + "MixinRenderFish", + "MixinRenderGlobal", + "MixinRenderItem", + "MixinRenderList", + "MixinTextureManager", + "MixinTileEntitySkullRenderer", + "MixinTileEntitySpecialRenderer", + "MixinVboRenderList", + "MixinWorld", + "MixinWorldClient" ], - "client": [ - "AccessorGuiContainer", - "AccessorGuiEditSign", - "AccessorMinecraft" - ] + "client": ["AccessorGuiContainer", "AccessorGuiEditSign", "AccessorMinecraft"] } diff --git a/src/test/java/io/github/moulberry/notenoughupdates/core/util/Vec3ComparableTest.java b/src/test/java/io/github/moulberry/notenoughupdates/core/util/Vec3ComparableTest.java index c0b451e3..12645152 100644 --- a/src/test/java/io/github/moulberry/notenoughupdates/core/util/Vec3ComparableTest.java +++ b/src/test/java/io/github/moulberry/notenoughupdates/core/util/Vec3ComparableTest.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.core.util; import net.minecraft.util.BlockPos; diff --git a/src/test/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalMetalDetectorSolverTest.java b/src/test/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalMetalDetectorSolverTest.java index 58233410..123f5bf3 100644 --- a/src/test/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalMetalDetectorSolverTest.java +++ b/src/test/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalMetalDetectorSolverTest.java @@ -1,12 +1,31 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.core.util.Vec3Comparable; import io.github.moulberry.notenoughupdates.miscfeatures.CrystalMetalDetectorSolver.SolutionState; import io.github.moulberry.notenoughupdates.util.NEUDebugLogger; import net.minecraft.util.BlockPos; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.Assertions; import java.util.ArrayList; @@ -17,10 +36,12 @@ class CrystalMetalDetectorSolverTest { SolutionState expectedState; boolean centerKnown; - public Location(double distance, - Vec3Comparable playerPosition, - SolutionState expectedState, - boolean centerKnown) { + public Location( + double distance, + Vec3Comparable playerPosition, + SolutionState expectedState, + boolean centerKnown + ) { this.distance = distance; this.playerPosition = playerPosition; this.expectedState = expectedState; @@ -38,7 +59,7 @@ class CrystalMetalDetectorSolverTest { void setUp() { CrystalMetalDetectorSolver.initWorld(); CrystalMetalDetectorSolver.treasureAllowedPredicate = blockPos -> true; - NEUDebugLogger.logMethod = CrystalMetalDetectorSolverTest::neuDebugLog; + NEUDebugLogger.logMethod = CrystalMetalDetectorSolverTest::neuDebugLog; NEUDebugLogger.allFlagsEnabled = true; } @@ -59,9 +80,11 @@ class CrystalMetalDetectorSolverTest { } else { findPossibleSolutionsTwice(loc, false); } - Assertions.assertEquals(loc.expectedState, + Assertions.assertEquals( + loc.expectedState, CrystalMetalDetectorSolver.currentState, - "Location index " + index); + "Location index " + index + ); index++; } @@ -70,30 +93,38 @@ class CrystalMetalDetectorSolverTest { @Test void findPossibleSolutions_single_location_sample_is_ignored() { - Location location = new Location(37.3, + Location location = new Location( + 37.3, new Vec3Comparable(779.1057116115207, 70.5, 502.2997937667801), SolutionState.MULTIPLE, - false); + false + ); CrystalMetalDetectorSolver.findPossibleSolutions(location.distance, location.playerPosition, false); Assertions.assertEquals(SolutionState.NOT_STARTED, CrystalMetalDetectorSolver.previousState, - "Previous state"); + "Previous state" + ); Assertions.assertEquals(SolutionState.NOT_STARTED, CrystalMetalDetectorSolver.currentState, - "Current state"); + "Current state" + ); } @Test void findPossibleSolutions_currentState_becomes_previousState() { - Location location = new Location(37.3, + Location location = new Location( + 37.3, new Vec3Comparable(779.1057116115207, 70.5, 502.2997937667801), SolutionState.MULTIPLE, - false); + false + ); findPossibleSolutionsTwice(location, false); Assertions.assertEquals(SolutionState.NOT_STARTED, CrystalMetalDetectorSolver.previousState, - "Previous state"); + "Previous state" + ); Assertions.assertEquals(location.expectedState, CrystalMetalDetectorSolver.currentState, - "Current state"); + "Current state" + ); } @Test @@ -101,15 +132,19 @@ class CrystalMetalDetectorSolverTest { Solution solution = new Solution(); solution.center = new BlockPos(736, 88, 547); solution.expectedSolution = new BlockPos(722, 67, 590); - solution.locations.add(new Location(67.5, + solution.locations.add(new Location( + 67.5, new Vec3Comparable(757.8235166144441, 68.0, 532.8037800566217), SolutionState.FOUND_KNOWN, - true)); + true + )); // slightly different player position with invalid distance - solution.locations.add(new Location(4.0, + solution.locations.add(new Location( + 4.0, new Vec3Comparable(757.8235166144441, 69.0, 532.8037800566217), SolutionState.INVALID, - true)); + true + )); checkSolution(solution); } @@ -117,14 +152,18 @@ class CrystalMetalDetectorSolverTest { void findPossibleSolutions_state_is_failed_when_second_location_eliminates_all_blocks() { Solution solution = new Solution(); solution.center = new BlockPos(736, 88, 547); - solution.locations.add(new Location(29.4, + solution.locations.add(new Location( + 29.4, new Vec3Comparable(721.5979761606153, 68.0, 590.9056839507032), SolutionState.MULTIPLE_KNOWN, - true)); - solution.locations.add(new Location(4.0, // actual distance should be 38.2 + true + )); + solution.locations.add(new Location( + 4.0, // actual distance should be 38.2 new Vec3Comparable(711.858759313838, 67.0, 590.3583935310772), SolutionState.FAILED, - true)); + true + )); checkSolution(solution); } @@ -132,10 +171,12 @@ class CrystalMetalDetectorSolverTest { void findPossibleSolutions_state_is_found_known_when_center_found_after_location() { Solution solution = new Solution(); solution.center = new BlockPos(736, 88, 547); - solution.locations.add(new Location(67.5, + solution.locations.add(new Location( + 67.5, new Vec3Comparable(757.8235166144441, 68.0, 532.8037800566217), SolutionState.MULTIPLE, - false)); + false + )); checkSolution(solution); solution.locations.get(0).centerKnown = true; @@ -149,24 +190,30 @@ class CrystalMetalDetectorSolverTest { Solution solution = new Solution(); solution.center = new BlockPos(736, 88, 547); solution.expectedSolution = new BlockPos(722, 67, 590); - solution.locations.add(new Location(67.5, + solution.locations.add(new Location( + 67.5, new Vec3Comparable(757.8235166144441, 68.0, 532.8037800566217), SolutionState.FOUND_KNOWN, - true)); + true + )); checkSolution(solution); } @Test void findPossibleSolutions_states_are_correct_using_multiple_locations_with_unknown_center() { Solution solution = new Solution(); - solution.locations.add(new Location(37.3, + solution.locations.add(new Location( + 37.3, new Vec3Comparable(779.1057116115207, 70.5, 502.2997937667801), SolutionState.MULTIPLE, - false)); - solution.locations.add(new Location(34.8, + false + )); + solution.locations.add(new Location( + 34.8, new Vec3Comparable(782.6999999880791, 71.0, 508.69999998807907), SolutionState.FOUND, - false)); + false + )); solution.expectedSolution = new BlockPos(758, 67, 533); checkSolution(solution); @@ -177,14 +224,18 @@ class CrystalMetalDetectorSolverTest { Solution solution = new Solution(); // First, validate that the solution doesn't work without the center - solution.locations.add(new Location(29.4, + solution.locations.add(new Location( + 29.4, new Vec3Comparable(721.5979761606153, 68.0, 590.9056839507032), SolutionState.MULTIPLE, - false)); - solution.locations.add(new Location(38.2, + false + )); + solution.locations.add(new Location( + 38.2, new Vec3Comparable(711.858759313838, 67.0, 590.3583935310772), SolutionState.MULTIPLE, - false)); + false + )); checkSolution(solution); // Now validate that the solution works with the center diff --git a/src/test/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalWishingCompassSolverTest.java b/src/test/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalWishingCompassSolverTest.java index dff8749c..5cf5fa90 100644 --- a/src/test/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalWishingCompassSolverTest.java +++ b/src/test/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalWishingCompassSolverTest.java @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.core.util.Vec3Comparable; @@ -17,7 +36,10 @@ import java.util.Arrays; import java.util.Collections; import java.util.EnumSet; -import static io.github.moulberry.notenoughupdates.miscfeatures.CrystalWishingCompassSolver.*; +import static io.github.moulberry.notenoughupdates.miscfeatures.CrystalWishingCompassSolver.ALL_PARTICLES_MAX_MILLIS; +import static io.github.moulberry.notenoughupdates.miscfeatures.CrystalWishingCompassSolver.Crystal; +import static io.github.moulberry.notenoughupdates.miscfeatures.CrystalWishingCompassSolver.HollowsZone; +import static io.github.moulberry.notenoughupdates.miscfeatures.CrystalWishingCompassSolver.getInstance; class CrystalWishingCompassSolverTest { private static final CrystalWishingCompassSolver solver = getInstance(); @@ -51,7 +73,8 @@ class CrystalWishingCompassSolverTest { new ParticleSpawn(new Vec3Comparable(754.333618, 138.527710, 239.197800), 55) )), HandleCompassResult.SUCCESS, - SolverState.NEED_SECOND_COMPASS); + SolverState.NEED_SECOND_COMPASS + ); private final CompassUse minesOfDivanCompassUse2 = new CompassUse( DELAY_AFTER_FIRST_COMPASS_LAST_PARTICLE, @@ -80,7 +103,8 @@ class CrystalWishingCompassSolverTest { new ParticleSpawn(new Vec3Comparable(759.636658, 135.522827, 266.186371), 0) )), HandleCompassResult.SUCCESS, - SolverState.SOLVED); + SolverState.SOLVED + ); Vec3i minesOfDivanSolution = new Vec3i(735, 98, 451); @@ -110,7 +134,8 @@ class CrystalWishingCompassSolverTest { new ParticleSpawn(new Vec3Comparable(454.183441, 88.616600, 775.803040), 54) )), HandleCompassResult.SUCCESS, - SolverState.NEED_SECOND_COMPASS); + SolverState.NEED_SECOND_COMPASS + ); private final CompassUse goblinHoldoutCompassUse2 = new CompassUse( DELAY_AFTER_FIRST_COMPASS_LAST_PARTICLE, @@ -139,7 +164,8 @@ class CrystalWishingCompassSolverTest { new ParticleSpawn(new Vec3Comparable(439.108551, 86.620811, 776.031067), 0) )), HandleCompassResult.SUCCESS, - SolverState.SOLVED); + SolverState.SOLVED + ); Vec3i goblinHoldoutKingSolution = new Vec3i(377, 87, 550); Vec3i goblinHoldoutQueenSolution = new Vec3i(322, 139, 769); @@ -171,7 +197,8 @@ class CrystalWishingCompassSolverTest { new ParticleSpawn(new Vec3Comparable(570.372192, 121.631874, 565.694946), 0) )), HandleCompassResult.SUCCESS, - SolverState.NEED_SECOND_COMPASS); + SolverState.NEED_SECOND_COMPASS + ); private final CompassUse precursorCityCompassUse2 = new CompassUse( DELAY_AFTER_FIRST_COMPASS_LAST_PARTICLE, @@ -200,7 +227,8 @@ class CrystalWishingCompassSolverTest { new ParticleSpawn(new Vec3Comparable(590.766357, 137.556885, 579.791565), 0) )), HandleCompassResult.SUCCESS, - SolverState.SOLVED); + SolverState.SOLVED + ); Vec3i precursorCitySolution = new Vec3i(604, 124, 681); @@ -231,7 +259,8 @@ class CrystalWishingCompassSolverTest { new ParticleSpawn(new Vec3Comparable(453.975647, 122.920158, 458.668488), 0) )), HandleCompassResult.SUCCESS, - SolverState.NEED_SECOND_COMPASS); + SolverState.NEED_SECOND_COMPASS + ); private final CompassUse jungleCompassUse2 = new CompassUse( DELAY_AFTER_FIRST_COMPASS_LAST_PARTICLE, @@ -260,13 +289,15 @@ class CrystalWishingCompassSolverTest { new ParticleSpawn(new Vec3Comparable(437.732666, 127.385803, 467.381592), 1) )), HandleCompassResult.SUCCESS, - SolverState.SOLVED); + SolverState.SOLVED + ); Vec3i jungleSolution = new Vec3i(343, 72, 424); Vec3i jungleSolutionTempleDoor = new Vec3i( jungleSolution.getX() - 57, jungleSolution.getY() + 36, - jungleSolution.getZ() -21); + jungleSolution.getZ() - 21 + ); private final CompassUse magmaCompassUse1 = new CompassUse( 1647745029814L, @@ -295,7 +326,8 @@ class CrystalWishingCompassSolverTest { new ParticleSpawn(new Vec3Comparable(462.221954, 59.614719, 550.019165), 0) )), HandleCompassResult.SUCCESS, - SolverState.NEED_SECOND_COMPASS); + SolverState.NEED_SECOND_COMPASS + ); private final CompassUse magmaCompassUse2 = new CompassUse( DELAY_AFTER_FIRST_COMPASS_LAST_PARTICLE, @@ -323,7 +355,8 @@ class CrystalWishingCompassSolverTest { new ParticleSpawn(new Vec3Comparable(449.110443, 54.623035, 556.079163), 49) )), HandleCompassResult.SUCCESS, - SolverState.SOLVED); + SolverState.SOLVED + ); Vec3i magmaSolution = new Vec3i(737, 56, 444); @@ -336,7 +369,8 @@ class CrystalWishingCompassSolverTest { new BlockPos(512, 106, 512), null, HandleCompassResult.PLAYER_IN_NUCLEUS, - SolverState.NOT_STARTED); + SolverState.NOT_STARTED + ); private void resetSolverState() { solver.initWorld(); @@ -351,7 +385,7 @@ class CrystalWishingCompassSolverTest { @BeforeEach void setUp() { - NEUDebugLogger.logMethod = CrystalWishingCompassSolverTest::neuDebugLog; + NEUDebugLogger.logMethod = CrystalWishingCompassSolverTest::neuDebugLog; NEUDebugLogger.allFlagsEnabled = true; resetSolverState(); } @@ -361,9 +395,11 @@ class CrystalWishingCompassSolverTest { for (CompassUse compassUse : solution.compassUses) { systemTimeMillis += compassUse.timeIncrementMillis; HandleCompassResult handleCompassResult = solver.handleCompassUse(compassUse.playerPos); - Assertions.assertEquals(compassUse.expectedHandleCompassUseResult, + Assertions.assertEquals( + compassUse.expectedHandleCompassUseResult, handleCompassResult, - "CompassUse index " + index); + "CompassUse index " + index + ); for (ParticleSpawn particle : compassUse.particles) { systemTimeMillis += particle.timeIncrementMillis; @@ -371,15 +407,20 @@ class CrystalWishingCompassSolverTest { particle.spawnLocation.xCoord, particle.spawnLocation.yCoord, particle.spawnLocation.zCoord, - systemTimeMillis); + systemTimeMillis + ); } - Assertions.assertEquals(compassUse.expectedSolverState, + Assertions.assertEquals( + compassUse.expectedSolverState, solver.getSolverState(), - "CompassUse index " + index); + "CompassUse index " + index + ); if (compassUse.expectedSolverState == SolverState.SOLVED) { - Assertions.assertEquals(solution.expectedSolutionCoords, - solver.getSolutionCoords()); + Assertions.assertEquals( + solution.expectedSolutionCoords, + solver.getSolutionCoords() + ); } index++; @@ -395,7 +436,8 @@ class CrystalWishingCompassSolverTest { Solution solution = new Solution( new ArrayList<>(Collections.singletonList(compassUse)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); // Act & Assert checkSolution(solution); @@ -409,7 +451,8 @@ class CrystalWishingCompassSolverTest { processingFirstUseCompassUse.expectedSolverState = SolverState.PROCESSING_FIRST_USE; Solution processingFirstUseSolution = new Solution( new ArrayList<>(Collections.singletonList(processingFirstUseCompassUse)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); checkSolution(processingFirstUseSolution); Assertions.assertEquals(SolverState.PROCESSING_FIRST_USE, solver.getSolverState()); @@ -419,7 +462,8 @@ class CrystalWishingCompassSolverTest { resetStateCompassUse.expectedSolverState = SolverState.FAILED_TIMEOUT_NO_REPEATING; Solution goodSolution = new Solution( new ArrayList<>(Collections.singletonList(resetStateCompassUse)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); // Act & Assert checkSolution(goodSolution); @@ -430,7 +474,8 @@ class CrystalWishingCompassSolverTest { // Arrange Solution solution = new Solution( new ArrayList<>(Collections.singletonList(minesOfDivanCompassUse1)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); // Act & Assert checkSolution(solution); @@ -441,7 +486,8 @@ class CrystalWishingCompassSolverTest { // Arrange Solution solution = new Solution( new ArrayList<>(Collections.singletonList(nucleusCompass)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); // Act & Assert checkSolution(solution); @@ -457,7 +503,8 @@ class CrystalWishingCompassSolverTest { new ParticleSpawn(new Vec3Comparable(754.358459, 138.536407, 239.200928), 137) )), HandleCompassResult.SUCCESS, - SolverState.PROCESSING_FIRST_USE); + SolverState.PROCESSING_FIRST_USE + ); // STILL_PROCESSING_FIRST_USE is expected instead of LOCATION_TOO_CLOSE since the solver // isn't ready for the second compass use, which includes the location check @@ -467,7 +514,8 @@ class CrystalWishingCompassSolverTest { Solution solution = new Solution( new ArrayList<>(Arrays.asList(compassUse1, compassUse2)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); // Act & Assert checkSolution(solution); @@ -477,13 +525,14 @@ class CrystalWishingCompassSolverTest { void missing_repeating_particles_sets_state_to_failed_timeout_no_repeating() { // Arrange CompassUse compassUse = new CompassUse(minesOfDivanCompassUse1); - compassUse.particles.remove(compassUse.particles.size()-1); - compassUse.particles.get(compassUse.particles.size()-1).timeIncrementMillis += ALL_PARTICLES_MAX_MILLIS; + compassUse.particles.remove(compassUse.particles.size() - 1); + compassUse.particles.get(compassUse.particles.size() - 1).timeIncrementMillis += ALL_PARTICLES_MAX_MILLIS; compassUse.expectedSolverState = SolverState.FAILED_TIMEOUT_NO_REPEATING; Solution solution = new Solution( new ArrayList<>(Collections.singletonList(compassUse)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); // Act & Assert checkSolution(solution); @@ -498,11 +547,12 @@ class CrystalWishingCompassSolverTest { null, HandleCompassResult.LOCATION_TOO_CLOSE, SolverState.NEED_SECOND_COMPASS - ); + ); Solution solution = new Solution( new ArrayList<>(Arrays.asList(minesOfDivanCompassUse1, secondCompassUse)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); // Act & Assert checkSolution(solution); @@ -557,7 +607,7 @@ class CrystalWishingCompassSolverTest { // reverse the direction of the particles, moving the repeat particle // to "new" end - compassUse2.particles.remove(compassUse2.particles.size()-1); + compassUse2.particles.remove(compassUse2.particles.size() - 1); Collections.reverse(compassUse2.particles); // add a new repeat particle compassUse2.particles.add(new ParticleSpawn(compassUse2.particles.get(0))); @@ -567,7 +617,8 @@ class CrystalWishingCompassSolverTest { compassUse2.expectedSolverState = SolverState.FAILED_INVALID_SOLUTION; Solution solution = new Solution( new ArrayList<>(Arrays.asList(minesOfDivanCompassUse1, compassUse2)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); // Act & Assert checkSolution(solution); @@ -584,7 +635,7 @@ class CrystalWishingCompassSolverTest { // Arrange CompassUse compassUse1 = new CompassUse(minesOfDivanCompassUse1); CompassUse compassUse2 = new CompassUse(minesOfDivanCompassUse2); - double invalidYOffset = -(minesOfDivanSolution.getY() - (CH_LOWEST_VALID_Y -1)); + double invalidYOffset = -(minesOfDivanSolution.getY() - (CH_LOWEST_VALID_Y - 1)); Vec3 offset = new Vec3(0.0, invalidYOffset, 0.0); compassUse1.playerPos = compassUse1.playerPos.add(offset.xCoord, offset.yCoord, offset.zCoord); @@ -600,7 +651,8 @@ class CrystalWishingCompassSolverTest { Solution solution = new Solution( new ArrayList<>(Arrays.asList(compassUse1, compassUse2)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); // Act & Assert checkSolution(solution); @@ -646,7 +698,8 @@ class CrystalWishingCompassSolverTest { compassUse.particles.get(2).spawnLocation.addVector(100.0, 100.0, 100.0); Solution solution = new Solution( new ArrayList<>(Collections.singletonList(minesOfDivanCompassUse1)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); // Act & Assert checkSolution(solution); @@ -657,7 +710,8 @@ class CrystalWishingCompassSolverTest { // Arrange Solution solution = new Solution( new ArrayList<>(Collections.singletonList(goblinHoldoutCompassUse1)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); solver.kingsScentPresent = () -> true; // Act @@ -674,7 +728,8 @@ class CrystalWishingCompassSolverTest { // Arrange Solution solution = new Solution( new ArrayList<>(Collections.singletonList(goblinHoldoutCompassUse1)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); solver.kingsScentPresent = () -> false; // Act @@ -691,7 +746,8 @@ class CrystalWishingCompassSolverTest { // Arrange Solution solution = new Solution( new ArrayList<>(Collections.singletonList(jungleCompassUse1)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); solver.keyInInventory = () -> true; // Act @@ -708,7 +764,8 @@ class CrystalWishingCompassSolverTest { // Arrange Solution solution = new Solution( new ArrayList<>(Collections.singletonList(jungleCompassUse1)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); solver.keyInInventory = () -> false; // Act @@ -725,7 +782,8 @@ class CrystalWishingCompassSolverTest { // Arrange Solution solution = new Solution( new ArrayList<>(Collections.singletonList(precursorCityCompassUse1)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); solver.foundCrystals = () -> EnumSet.noneOf(Crystal.class); solver.keyInInventory = () -> false; solver.kingsScentPresent = () -> false; @@ -747,14 +805,16 @@ class CrystalWishingCompassSolverTest { } private void CheckExcludedTargetsForCrystals( - CompassUse compassUseToExecute, - ArrayList excludedTargets, - EnumSet foundCrystals) { + CompassUse compassUseToExecute, + ArrayList excludedTargets, + EnumSet foundCrystals + ) { // Arrange EnumSet targets; Solution solution = new Solution( new ArrayList<>(Collections.singletonList(compassUseToExecute)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); // Act checkSolution(solution); @@ -796,7 +856,8 @@ class CrystalWishingCompassSolverTest { // Arrange ArrayList excludedTargets = new ArrayList<>(Arrays.asList( CompassTarget.ODAWA, - CompassTarget.JUNGLE_TEMPLE)); + CompassTarget.JUNGLE_TEMPLE + )); // Act & Assert CheckExcludedTargetsForCrystals(jungleCompassUse1, excludedTargets, EnumSet.of(Crystal.AMETHYST)); @@ -837,7 +898,8 @@ class CrystalWishingCompassSolverTest { // Arrange Solution solution = new Solution( new ArrayList<>(Collections.singletonList(minesOfDivanCompassUse1)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); // Act checkSolution(solution); @@ -855,12 +917,13 @@ class CrystalWishingCompassSolverTest { // Arrange Solution solution = new Solution( new ArrayList<>(Collections.singletonList(minesOfDivanCompassUse1)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); // Act checkSolution(solution); systemTimeMillis += minesOfDivanCompassUse2.timeIncrementMillis; - BlockPos newLocation = minesOfDivanCompassUse2.playerPos.add(-400, 0 ,0); + BlockPos newLocation = minesOfDivanCompassUse2.playerPos.add(-400, 0, 0); HandleCompassResult handleCompassResult = solver.handleCompassUse(newLocation); // Assert @@ -873,7 +936,8 @@ class CrystalWishingCompassSolverTest { // Arrange Solution solution = new Solution( new ArrayList<>(Collections.singletonList(jungleCompassUse1)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); // Act solver.keyInInventory = () -> false; @@ -892,7 +956,8 @@ class CrystalWishingCompassSolverTest { // Arrange Solution solution = new Solution( new ArrayList<>(Collections.singletonList(goblinHoldoutCompassUse1)), - Vec3i.NULL_VECTOR); + Vec3i.NULL_VECTOR + ); // Act solver.kingsScentPresent = () -> false; @@ -980,17 +1045,19 @@ class CrystalWishingCompassSolverTest { } EnumSet GetSolutionTargetsHelper( - HollowsZone compassUsedZone, - EnumSet foundCrystals, - EnumSet possibleTargets, - Vec3Comparable solutionCoords, - int expectedSolutionCount) { + HollowsZone compassUsedZone, + EnumSet foundCrystals, + EnumSet possibleTargets, + Vec3Comparable solutionCoords, + int expectedSolutionCount + ) { EnumSet solutionTargets = CrystalWishingCompassSolver.getSolutionTargets( compassUsedZone, foundCrystals, possibleTargets, - solutionCoords); + solutionCoords + ); Assertions.assertEquals(expectedSolutionCount, solutionTargets.size()); return solutionTargets; } @@ -1003,7 +1070,8 @@ class CrystalWishingCompassSolverTest { EnumSet.noneOf(Crystal.class), EnumSet.allOf(CompassTarget.class), new Vec3Comparable(minesOfDivanSolution), - 1); + 1 + ); // Assert Assertions.assertFalse(solutionTargets.contains(CompassTarget.CRYSTAL_NUCLEUS)); @@ -1021,7 +1089,8 @@ class CrystalWishingCompassSolverTest { EnumSet.of(Crystal.AMBER), possibleTargets, new Vec3Comparable(202, 72, 513), // upper left of Goblin Holdout - 2); + 2 + ); // Assert Assertions.assertTrue(solutionTargets.contains(CompassTarget.JUNGLE_TEMPLE)); @@ -1036,7 +1105,8 @@ class CrystalWishingCompassSolverTest { EnumSet.noneOf(Crystal.class), EnumSet.allOf(CompassTarget.class), kingOdawaMinesOrNucleusCoordsInRemnants, - 3); + 3 + ); // Assert Assertions.assertTrue(solutionTargets.contains(CompassTarget.GOBLIN_KING)); @@ -1057,7 +1127,8 @@ class CrystalWishingCompassSolverTest { EnumSet.noneOf(Crystal.class), possibleTargets, queenKingOdawaOrCityNucleusCoordsInMithrilDeposits, - 2); + 2 + ); // Assert Assertions.assertTrue(solutionTargets.contains(CompassTarget.GOBLIN_QUEEN)); @@ -1067,7 +1138,7 @@ class CrystalWishingCompassSolverTest { @Test void solutionPossibleTargets_excludes_jungle_temple_from_other_zone_when_not_overlapping() { // Arrange - Vec3Comparable notOverlapping = new Vec3Comparable(202, 72, 513+110); // upper left of Goblin Holdout + Vec3Comparable notOverlapping = new Vec3Comparable(202, 72, 513 + 110); // upper left of Goblin Holdout EnumSet possibleTargets = EnumSet.allOf(CompassTarget.class); possibleTargets.remove(CompassTarget.ODAWA); @@ -1077,7 +1148,8 @@ class CrystalWishingCompassSolverTest { EnumSet.of(Crystal.AMBER), possibleTargets, notOverlapping, - 1); + 1 + ); // Assert Assertions.assertTrue(solutionTargets.contains(CompassTarget.BAL)); @@ -1094,7 +1166,8 @@ class CrystalWishingCompassSolverTest { EnumSet.noneOf(Crystal.class), EnumSet.allOf(CompassTarget.class), notOverlapping, - 0); + 0 + ); } @Test @@ -1111,7 +1184,8 @@ class CrystalWishingCompassSolverTest { EnumSet.noneOf(Crystal.class), possibleTargets, notOverlapping, - 0); + 0 + ); } @Test @@ -1126,7 +1200,8 @@ class CrystalWishingCompassSolverTest { EnumSet.noneOf(Crystal.class), possibleTargets, new Vec3Comparable(goblinHoldoutKingSolution), - 1); + 1 + ); // Assert Assertions.assertTrue(solutionTargets.contains(CompassTarget.GOBLIN_KING)); @@ -1144,7 +1219,8 @@ class CrystalWishingCompassSolverTest { EnumSet.noneOf(Crystal.class), possibleTargets, new Vec3Comparable(odawaSolution), - 1); + 1 + ); // Assert Assertions.assertTrue(solutionTargets.contains(CompassTarget.ODAWA)); @@ -1162,7 +1238,8 @@ class CrystalWishingCompassSolverTest { EnumSet.noneOf(Crystal.class), possibleTargets, new Vec3Comparable(minesOfDivanSolution), - 1); + 1 + ); // Assert Assertions.assertTrue(solutionTargets.contains(CompassTarget.MINES_OF_DIVAN)); @@ -1182,7 +1259,8 @@ class CrystalWishingCompassSolverTest { EnumSet.noneOf(Crystal.class), possibleTargets, new Vec3Comparable(jungleSolution), - 1); + 1 + ); // Assert Assertions.assertTrue(solutionTargets.contains(CompassTarget.JUNGLE_TEMPLE)); @@ -1201,7 +1279,8 @@ class CrystalWishingCompassSolverTest { EnumSet.noneOf(Crystal.class), possibleTargets, new Vec3Comparable(goblinHoldoutQueenSolution), - 1); + 1 + ); // Assert Assertions.assertTrue(solutionTargets.contains(CompassTarget.GOBLIN_QUEEN)); @@ -1219,7 +1298,8 @@ class CrystalWishingCompassSolverTest { EnumSet.noneOf(Crystal.class), possibleTargets, new Vec3Comparable(precursorCitySolution), - 1); + 1 + ); // Assert Assertions.assertTrue(solutionTargets.contains(CompassTarget.PRECURSOR_CITY)); @@ -1233,7 +1313,8 @@ class CrystalWishingCompassSolverTest { EnumSet.noneOf(Crystal.class), EnumSet.allOf(CompassTarget.class), new Vec3Comparable(magmaSolution), - 1); + 1 + ); // Assert Assertions.assertTrue(solutionTargets.contains(CompassTarget.BAL)); @@ -1269,11 +1350,13 @@ class CrystalWishingCompassSolverTest { HandleCompassResult expectedHandleCompassUseResult; SolverState expectedSolverState; - CompassUse(long timeIncrementMillis, - BlockPos playerPos, - ArrayList particles, - HandleCompassResult expectedHandleCompassUseResult, - SolverState expectedState) { + CompassUse( + long timeIncrementMillis, + BlockPos playerPos, + ArrayList particles, + HandleCompassResult expectedHandleCompassUseResult, + SolverState expectedState + ) { this.timeIncrementMillis = timeIncrementMillis; this.playerPos = playerPos; this.particles = particles != null ? particles : new ArrayList<>(); @@ -1296,7 +1379,11 @@ class CrystalWishingCompassSolverTest { Solution(ArrayList compassUses, Vec3i expectedSolutionCoords) { this.compassUses = compassUses; - this.expectedSolutionCoords = new Vec3i(expectedSolutionCoords.getX(), expectedSolutionCoords.getY(), expectedSolutionCoords.getZ()); + this.expectedSolutionCoords = new Vec3i( + expectedSolutionCoords.getX(), + expectedSolutionCoords.getY(), + expectedSolutionCoords.getZ() + ); } } diff --git a/src/test/resources/log4j2-test.xml b/src/test/resources/log4j2-test.xml index 25209eae..61ee1966 100644 --- a/src/test/resources/log4j2-test.xml +++ b/src/test/resources/log4j2-test.xml @@ -2,13 +2,13 @@ - + - + -- cgit From 5cf1e871f1f9fa5601384c90af7868dd557f92f6 Mon Sep 17 00:00:00 2001 From: IRONM00N <64110067+IRONM00N@users.noreply.github.com> Date: Thu, 9 Jun 2022 18:28:03 -0400 Subject: revert css formatting --- .../assets/notenoughupdates/official-wiki.css | 22623 +------------------ 1 file changed, 1 insertion(+), 22622 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/notenoughupdates/official-wiki.css b/src/main/resources/assets/notenoughupdates/official-wiki.css index f942a3f0..a9f82a32 100644 --- a/src/main/resources/assets/notenoughupdates/official-wiki.css +++ b/src/main/resources/assets/notenoughupdates/official-wiki.css @@ -1,22622 +1 @@ -/* - * Copyright (C) 2022 NotEnoughUpdates contributors - * - * This file is part of NotEnoughUpdates. - * - * NotEnoughUpdates is free software: you can redistribute it - * and/or modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation, either - * version 3 of the License, or (at your option) any later version. - * - * NotEnoughUpdates is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with NotEnoughUpdates. If not, see . - */ - -.client-js .mw-dismissable-notice { - display: none -} - -.mw-dismissable-notice-close { - visibility: hidden -} - -.sitedir-ltr .mw-dismissable-notice-close { - float: right -} - -.sitedir-rtl .mw-dismissable-notice-close { - float: left -} - -.sitedir-ltr .mw-dismissable-notice-body { - margin: .5em 20% .5em 5em -} - -.sitedir-rtl .mw-dismissable-notice-body { - margin: .5em 5em .5em 20% -} - -.hlist dl, .hlist ol, .hlist ul { - margin: 0; - padding: 0 -} - -.hlist dl dl, .hlist ol dl, .hlist ul dl, .hlist dl ol, .hlist ol ol, .hlist ul ol, .hlist dl ul, .hlist ol ul, .hlist ul ul { - display: inline -} - -.hlist dd, .hlist dt, .hlist li { - margin: 0; - display: inline -} - -ul.hlist li, .hlist > ul li, .hlist > dl li { - display: inline-block; - margin-right: 8px -} - -.hlist-separated li:after { - content: '•' !important; - padding-left: 8px; - font-size: 1em; - line-height: 1 -} - -.hlist-separated :last-child:after { - content: none !important -} - -.mw-ui-button { - background-color: #f8f9fa; - color: #202122; - display: inline-block; - -moz-box-sizing: border-box; - box-sizing: border-box; - border: 1px solid #a2a9b1; - border-radius: 2px; - cursor: pointer; - vertical-align: middle; - font-family: inherit; - font-size: 1em; - font-weight: 700; - line-height: 1.28571429em; - text-align: center; - -webkit-appearance: none -} - -.mw-ui-button:not(.mw-ui-icon-element) { - min-height: 32px; - min-width: 4em; - max-width: 28.75em; - margin: 0; - padding: 5px 12px -} - -.mw-ui-button:not(:disabled) { - -webkit-transition: background-color 100ms, color 100ms, border-color 100ms, box-shadow 100ms; - transition: background-color 100ms, color 100ms, border-color 100ms, box-shadow 100ms -} - -.mw-ui-button:not(:disabled):visited { - color: #202122 -} - -.mw-ui-button:not(:disabled):hover { - background-color: #fff; - color: #404244; - border-color: #a2a9b1 -} - -.mw-ui-button:not(:disabled):focus { - color: #202122; - border-color: #36c; - box-shadow: inset 0 0 0 1px #36c, inset 0 0 0 2px #fff; - outline-width: 0 -} - -.mw-ui-button:not(:disabled):focus::-moz-focus-inner { - border-color: transparent; - padding: 0 -} - -.mw-ui-button:not(:disabled):active, .mw-ui-button:not(:disabled).is-on { - background-color: #c8ccd1; - color: #000; - border-color: #72777d; - box-shadow: none -} - -.mw-ui-button:disabled { - background-color: #c8ccd1; - color: #fff; - border-color: #c8ccd1; - cursor: default -} - -.mw-ui-button.mw-ui-icon-element:not(.mw-ui-icon-with-label-desktop) { - color: transparent !important -} - -.mw-ui-button.mw-ui-icon-element:not(.mw-ui-icon-with-label-desktop) span { - display: block; - position: absolute !important; - clip: rect(1px, 1px, 1px, 1px); - width: 1px; - height: 1px; - margin: -1px; - border: 0; - padding: 0; - overflow: hidden -} - -@media all and (max-width: 1000px) { - .mw-ui-button.mw-ui-icon-element.mw-ui-icon-with-label-desktop { - color: transparent !important - } - - .mw-ui-button.mw-ui-icon-element span { - display: block; - position: absolute !important; - clip: rect(1px, 1px, 1px, 1px); - width: 1px; - height: 1px; - margin: -1px; - border: 0; - padding: 0; - overflow: hidden - } -} - -.mw-ui-button.mw-ui-quiet, .mw-ui-button.mw-ui-quiet.mw-ui-progressive, .mw-ui-button.mw-ui-quiet.mw-ui-destructive { - background-color: transparent; - color: #202122; - border-color: transparent; - font-weight: 700 -} - -.mw-ui-button.mw-ui-quiet:not(.mw-ui-icon-element), .mw-ui-button.mw-ui-quiet.mw-ui-progressive:not(.mw-ui-icon-element), .mw-ui-button.mw-ui-quiet.mw-ui-destructive:not(.mw-ui-icon-element) { - min-height: 32px -} - -input[type=checkbox]:hover + .mw-ui-button.mw-ui-quiet, input[type=checkbox]:hover + .mw-ui-button.mw-ui-quiet.mw-ui-progressive, input[type=checkbox]:hover + .mw-ui-button.mw-ui-quiet.mw-ui-destructive, .mw-ui-button.mw-ui-quiet:hover, .mw-ui-button.mw-ui-quiet.mw-ui-progressive:hover, .mw-ui-button.mw-ui-quiet.mw-ui-destructive:hover { - background-color: rgba(0, 24, 73, .02745098); - color: #202122; - border-color: transparent -} - -input[type=checkbox]:focus + .mw-ui-button.mw-ui-quiet, input[type=checkbox]:focus + .mw-ui-button.mw-ui-quiet.mw-ui-progressive, input[type=checkbox]:focus + .mw-ui-button.mw-ui-quiet.mw-ui-destructive, .mw-ui-button.mw-ui-quiet:focus, .mw-ui-button.mw-ui-quiet.mw-ui-progressive:focus, .mw-ui-button.mw-ui-quiet.mw-ui-destructive:focus { - color: #202122; - border-color: #36c; - box-shadow: inset 0 0 0 1px #36c, inset 0 0 0 2px #fff -} - -input[type=checkbox]:active + .mw-ui-button.mw-ui-quiet, input[type=checkbox]:active + .mw-ui-button.mw-ui-quiet.mw-ui-progressive, input[type=checkbox]:active + .mw-ui-button.mw-ui-quiet.mw-ui-destructive, .mw-ui-button.mw-ui-quiet:active, .mw-ui-button.mw-ui-quiet.mw-ui-progressive:active, .mw-ui-button.mw-ui-quiet.mw-ui-destructive:active { - background-color: rgba(0, 36, 73, .08235294); - color: #000; - border-color: #72777d; - box-shadow: none -} - -.mw-ui-button.mw-ui-quiet:disabled, .mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled, .mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled, .mw-ui-button.mw-ui-quiet:disabled:hover, .mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled:hover, .mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled:hover, .mw-ui-button.mw-ui-quiet:disabled:active, .mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled:active, .mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled:active { - background-color: transparent; - color: #72777d; - border-color: transparent -} - -.mw-ui-button.mw-ui-progressive:not(:disabled) { - background-color: #36c; - color: #fff; - border-color: #36c -} - -.mw-ui-button.mw-ui-progressive:not(:disabled):hover { - background-color: #447ff5; - border-color: #447ff5 -} - -.mw-ui-button.mw-ui-progressive:not(:disabled):focus { - box-shadow: inset 0 0 0 1px #36c, inset 0 0 0 2px #fff -} - -.mw-ui-button.mw-ui-progressive:not(:disabled):active, .mw-ui-button.mw-ui-progressive:not(:disabled).is-on { - background-color: #2a4b8d; - border-color: #2a4b8d; - box-shadow: none -} - -.mw-ui-button.mw-ui-progressive:disabled { - background-color: #c8ccd1; - color: #fff; - border-color: #c8ccd1 -} - -.mw-ui-button.mw-ui-progressive.mw-ui-quiet { - color: #36c; - background-color: transparent; - border-color: transparent -} - -input[type=checkbox]:hover + .mw-ui-button.mw-ui-progressive.mw-ui-quiet, .mw-ui-button.mw-ui-progressive.mw-ui-quiet:hover { - background-color: rgba(52, 123, 255, .2); - border-color: transparent; - color: #447ff5 -} - -input[type=checkbox]:focus + .mw-ui-button.mw-ui-progressive.mw-ui-quiet, .mw-ui-button.mw-ui-progressive.mw-ui-quiet:focus { - color: #36c; - border-color: #36c -} - -input[type=checkbox]:active + .mw-ui-button.mw-ui-progressive.mw-ui-quiet, .mw-ui-button.mw-ui-progressive.mw-ui-quiet:active { - color: #fff; - background-color: #2a4b8d; - border-color: #2a4b8d -} - -.mw-ui-button.mw-ui-destructive:not(:disabled) { - background-color: #d33; - color: #fff; - border-color: #d33 -} - -.mw-ui-button.mw-ui-destructive:not(:disabled):hover { - background-color: #ff4242; - border-color: #ff4242 -} - -.mw-ui-button.mw-ui-destructive:not(:disabled):focus { - box-shadow: inset 0 0 0 1px #d33, inset 0 0 0 2px #fff -} - -.mw-ui-button.mw-ui-destructive:not(:disabled):active, .mw-ui-button.mw-ui-destructive:not(:disabled).is-on { - background-color: #b32424; - border-color: #b32424; - box-shadow: none -} - -.mw-ui-button.mw-ui-destructive:disabled { - background-color: #c8ccd1; - color: #fff; - border-color: #c8ccd1 -} - -.mw-ui-button.mw-ui-destructive.mw-ui-quiet { - color: #d33; - background-color: transparent; - border-color: transparent -} - -input[type=checkbox]:hover + .mw-ui-button.mw-ui-destructive.mw-ui-quiet, .mw-ui-button.mw-ui-destructive.mw-ui-quiet:hover { - background-color: rgba(209, 29, 19, .2); - border-color: transparent; - color: #ff4242 -} - -input[type=checkbox]:focus + .mw-ui-button.mw-ui-destructive.mw-ui-quiet, .mw-ui-button.mw-ui-destructive.mw-ui-quiet:focus { - color: #d33; - border-color: #d33 -} - -input[type=checkbox]:active + .mw-ui-button.mw-ui-destructive.mw-ui-quiet, .mw-ui-button.mw-ui-destructive.mw-ui-quiet:active { - color: #fff; - background-color: #b32424; - border-color: #b32424 -} - -.mw-ui-button.mw-ui-big { - font-size: 1.3em -} - -.mw-ui-button.mw-ui-block { - display: block; - width: 100%; - margin-left: auto; - margin-right: auto -} - -a.mw-ui-button { - text-decoration: none -} - -a.mw-ui-button:hover, a.mw-ui-button:focus { - text-decoration: none -} - -.mw-ui-button-group > * { - min-width: 48px; - border-radius: 0; - float: left -} - -.mw-ui-button-group > *:first-child { - border-top-left-radius: 2px; - border-bottom-left-radius: 2px -} - -.mw-ui-button-group > *:not(:first-child) { - border-left: 0 -} - -.mw-ui-button-group > *:last-child { - border-top-right-radius: 2px; - border-bottom-right-radius: 2px -} - -.mw-ui-button-group .is-on .button { - cursor: default -} - -.mw-ui-icon { - font-size: initial; - position: relative; - display: inline-block; - box-sizing: content-box !important; - width: 1.25em; - height: 1.25em; - min-width: 1.25em; - min-height: 1.25em; - flex-basis: 1.25em; - vertical-align: middle; - line-height: 0; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - -moz-appearance: none; - -webkit-appearance: none; - background-color: transparent; - border: 0; - margin: 0; - padding: 0 -} - -.mw-ui-icon:before { - content: ''; - display: block; - width: 100%; - height: 100%; - min-width: 1.25em; - min-height: 1.25em; - background-repeat: no-repeat; - background-size: 1.25em 1.25em; - background-position: center -} - -.mw-ui-icon-flush-top { - margin-top: -.75em -} - -.mw-ui-icon-flush-left { - margin-left: -.75em -} - -.mw-ui-icon-flush-right { - margin-right: -.75em -} - -.mw-ui-icon-element { - border-radius: 2px; - padding: .75em; - -webkit-transition: background-color 100ms; - transition: background-color 100ms; - color: transparent -} - -.mw-ui-icon-element:focus, .mw-ui-icon-element:active, .mw-ui-icon-element:visited { - color: transparent -} - -.mw-ui-icon-element:active { - background-color: rgba(0, 0, 0, .03) -} - -@media (hover: hover) { - .mw-ui-icon-element:not(.disabled):hover { - background-color: rgba(0, 0, 0, .03) - } -} - -.mw-ui-icon-small { - width: 1em; - height: 1em; - min-width: 1em; - min-height: 1em; - flex-basis: 1em; - line-height: 1em -} - -.mw-ui-icon-small:before { - content: ''; - display: block; - width: 100%; - height: 100%; - min-width: 1em; - min-height: 1em; - background-repeat: no-repeat; - background-size: 1em 1em; - background-position: center -} - -.mw-ui-icon-small.mw-ui-icon-element { - padding: .5625em -} - -.mw-ui-icon-small.mw-ui-icon-flush-left { - margin-left: -.5625em -} - -.mw-ui-icon-small.mw-ui-icon-flush-right { - margin-right: -.5625em -} - -.mw-ui-icon-small.mw-ui-icon-before:before { - min-width: 1em; - min-height: 1em; - margin-right: .5625em -} - -.mw-ui-icon-before { - width: auto; - max-width: 100% -} - -.mw-ui-icon-before:before { - display: inline-block; - font-size: initial; - width: auto; - min-width: 1.25em; - min-height: 1.25em; - margin-right: 8px; - vertical-align: middle -} - -.mw-ui-icon-before span { - vertical-align: middle -} - -@media all and (min-width: 1000px) { - .mw-ui-icon-with-label-desktop { - color: #54595d; - width: auto; - line-height: inherit; - flex-basis: auto - } - - .mw-ui-icon-with-label-desktop:hover, .mw-ui-icon-with-label-desktop:focus, .mw-ui-icon-with-label-desktop:active, .mw-ui-icon-with-label-desktop:visited { - color: #54595d; - text-decoration: none - } - - .mw-ui-icon-with-label-desktop:before { - width: auto; - display: inline-block; - margin-right: 8px; - vertical-align: text-bottom - } -} - -.minerva__tab-container { - white-space: nowrap; - overflow-x: auto -} - -.minerva__tab-container .minerva__tab { - font-size: .85em; - margin: 0 10px 0 0; - color: #54595d; - font-weight: 700; - padding-bottom: 6px; - display: inline-block -} - -.minerva__tab-container .minerva__tab:visited, .minerva__tab-container .minerva__tab:hover, .minerva__tab-container .minerva__tab:active, .minerva__tab-container .minerva__tab.new, .minerva__tab-container .minerva__tab.new:visited, .minerva__tab-container .minerva__tab.new:active, .minerva__tab-container .minerva__tab.new:hover { - color: #54595d; - text-decoration: none -} - -.minerva__tab-container .minerva__tab:last-child { - margin-right: 0 -} - -.minerva__tab-container .minerva__tab.selected { - border-bottom: 2px solid #54595d -} - -.toggle-list__list--drop-down { - -webkit-transform: translateY(-8px); - -ms-transform: translateY(-8px); - transform: translateY(-8px); - -webkit-tap-highlight-color: transparent -} - -.minerva-animations-ready .toggle-list__list--drop-down { - -webkit-transition: opacity 100ms ease-in-out, -webkit-tap-highlight-color 0s ease-in-out, transform 100ms ease-in-out, visibility 100ms ease-in-out; - transition: opacity 100ms ease-in-out, -webkit-tap-highlight-color 0s ease-in-out, transform 100ms ease-in-out, visibility 100ms ease-in-out -} - -.toggle-list__checkbox:checked ~ .toggle-list__list--drop-down { - -webkit-transform: translateY(0); - -ms-transform: translateY(0); - transform: translateY(0) -} - -.toggle-list-item { - display: block; - padding: .75em .875em -} - -.toggle-list-item:hover { - background: #eaecf0 -} - -.toggle-list-item__anchor { - display: block; - line-height: 1 -} - -.toggle-list-item__anchor:hover { - text-decoration: none -} - -.toggle-list-item__anchor:visited, .toggle-list-item__anchor:active { - color: #54595d -} - -.toggle-list-item__icon { - vertical-align: middle -} - -.toggle-list-item__label { - text-align: left; - color: #54595d; - font-weight: 700; - white-space: nowrap; - vertical-align: middle; - font-size: .875em -} - -.minerva-user-menu-list { - top: 100%; - right: -.75em; - min-width: 200px; - border-radius: 2px -} - -.minerva--history-page-action-enabled .page-actions-menu__list-item { - flex-basis: auto -} - -.minerva--history-page-action-enabled .page-actions-menu__list-item:first-child { - flex-grow: 0 -} - -.page-actions-overflow-list { - top: 100%; - right: -.75em; - border-radius: 2px -} - -.mw-ui-icon-minerva-ellipsis:before { - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg) -} - -@media screen { - @counter-style meetei { - system: numeric; - symbols: '\ABF0' '\ABF1' '\ABF2' '\ABF3' '\ABF4' '\ABF5' '\ABF6' '\ABF7' '\ABF8' '\ABF9'; - suffix: ') ' - } @counter-style santali { - system: numeric; - symbols: '\1C50' '\1C51' '\1C52' '\1C53' '\1C54' '\1C55' '\1C56' '\1C57' '\1C58' '\1C59' -} ol:lang(azb) li, ol:lang(bcc) li, ol:lang(bgn) li, ol:lang(bqi) li, ol:lang(fa) li, ol:lang(glk) li, ol:lang(kk-arab) li, ol:lang(lrc) li, ol:lang(luz) li, ol:lang(mzn) li { - list-style-type: persian - } - - ol:lang(ckb) li, ol:lang(sdh) li { - list-style-type: arabic-indic - } - - ol:lang(hi) li, ol:lang(mai) li, ol:lang(mr) li, ol:lang(ne) li { - list-style-type: devanagari - } - - ol:lang(as) li, ol:lang(bn) li { - list-style-type: bengali - } - - ol:lang(mni) li { - list-style-type: meetei - } - - ol:lang(or) li { - list-style-type: oriya - } - - ol:lang(sat) li { - list-style-type: santali - } -} - -div, span, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, ins, em, img, small, strike, strong, sub, sup, tt, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, input, button, select, audio, video { - margin: 0; - padding: 0; - border: 0; - font: inherit; - font-size: 100%; - vertical-align: baseline; - background: 0 0 -} - -table, caption, tbody, tfoot, thead, tr, th, td { - font-size: 100% -} - -caption { - font-weight: 700 -} - -button { - border: 0; - background-color: transparent; - cursor: pointer -} - -input { - line-height: normal -} - -ul { - list-style: none -} - -table { - border-collapse: collapse -} - -html, body { - height: 100% -} - -html { - font-size: 100%; - -webkit-text-size-adjust: none -} - -body { - background-color: transparent; - color: #202122; - margin: 0 -} - -main { - display: block -} - -.mw-body { - border-top: 1px solid transparent; - padding-bottom: 32px -} - -.overlay-enabled, .mw-body { - background-color: transparent -} - -.header-container { - border-bottom: 1px solid #c8ccd1; - padding: 0 16px -} - -.header-container.header-chrome { - background-color: #eaecf0; - border: 0; - box-shadow: inset 0 -1px 3px rgba(0, 0, 0, .08) -} - -.navigation-drawer--loading, #footer-info-lastmod { - display: none -} - -.header { - display: table; - width: 100%; - border-spacing: 0; - border-collapse: collapse; - height: 3.375em; - white-space: nowrap; - border-top: 1px solid #c8ccd1; - margin-top: -1px -} - -.header > div, .header > .navigation-drawer { - position: relative; - vertical-align: middle; - display: table-cell -} - -.header > div a { - display: block -} - -.header .branding-box { - width: auto; - opacity: .66 -} - -.header .branding-box h1, .header .branding-box a { - margin-left: 5px; - font-size: 1em; - text-decoration: none; - color: #202122 -} - -.header .branding-box h1 span, .header .branding-box a span { - line-height: 1; - font-size: inherit -} - -.header .branding-box h1 img, .header .branding-box a img { - vertical-align: middle -} - -.header .branding-box h1 > *, .header .branding-box a > * { - float: left -} - -.header .branding-box h1 sup, .header .branding-box a sup { - color: #54595d; - display: none -} - -.beta .header .branding-box h1 sup, .beta .header .branding-box a sup { - display: initial -} - -.header > .header-title { - vertical-align: middle -} - -#searchInput { - cursor: text -} - -.search-box, .header .search-box { - display: none; - width: auto -} - -.search-box .search { - background-color: #fff; - background-position: left .5em center; - background-repeat: no-repeat; - background-size: 1.125em; - -webkit-appearance: none; - width: 100%; - margin-top: 0; - height: 2.25em; - border: 1px solid #fff; - border-radius: 2px; - padding: 7px 0 7px 2.0625em; - box-shadow: 0 1px 1px rgba(0, 0, 0, .05); - outline: 0; - -webkit-transition: border-color 250ms, box-shadow 250ms; - transition: border-color 250ms, box-shadow 250ms -} - -.client-nojs .search-box .search:focus, .search-overlay .search-box .search:focus { - border-color: #36c; - box-shadow: inset 0 0 0 1px #36c, 0 1px 1px rgba(0, 0, 0, .05) -} - -input.search::-webkit-search-decoration, input.search::-webkit-search-cancel-button, input.search::-webkit-search-results-button, input.search::-webkit-search-results-decoration { - display: none -} - -.content h2 { - clear: left -} - -.content .collapsible-heading .edit-page { - visibility: hidden -} - -.content .collapsible-heading.open-block .edit-page { - visibility: visible -} - -.content .mw-parser-output > h2, .content .section-heading { - border-bottom: 1px solid #eaecf0; - margin-bottom: .5em -} - -.content .mw-parser-output > h1, .content .mw-parser-output > h2, .content .mw-parser-output > h3, .content .mw-parser-output > h4, .content .mw-parser-output > h5, .content .section-heading, .content .in-block { - display: table -} - -.content .mw-parser-output > h1 .mw-headline, .content .mw-parser-output > h2 .mw-headline, .content .mw-parser-output > h3 .mw-headline, .content .mw-parser-output > h4 .mw-headline, .content .mw-parser-output > h5 .mw-headline, .content .section-heading .mw-headline, .content .in-block .mw-headline { - width: 100% -} - -.content .mw-parser-output > h1 > span, .content .mw-parser-output > h2 > span, .content .mw-parser-output > h3 > span, .content .mw-parser-output > h4 > span, .content .mw-parser-output > h5 > span, .content .section-heading > span, .content .in-block > span { - display: table-cell; - vertical-align: middle -} - -.content .mw-parser-output > h1 > .mw-editsection > .mw-ui-icon-element, .content .mw-parser-output > h2 > .mw-editsection > .mw-ui-icon-element, .content .mw-parser-output > h3 > .mw-editsection > .mw-ui-icon-element, .content .mw-parser-output > h4 > .mw-editsection > .mw-ui-icon-element, .content .mw-parser-output > h5 > .mw-editsection > .mw-ui-icon-element, .content .section-heading > .mw-editsection > .mw-ui-icon-element, .content .in-block > .mw-editsection > .mw-ui-icon-element { - margin-top: -.75em; - margin-bottom: -.75em -} - -.client-nojs .section-heading .indicator { - display: none -} - -#page-secondary-actions { - clear: both -} - -#page-secondary-actions a { - margin: 10px 2px 2px 0 -} - -#bodyContent .panel .content, .overlay .content-header, .overlay .panel, .page-list.side-list .list-thumb, .page-list li, .topic-title-list li, .site-link-list li, .drawer, .messagebox, .errorbox, .successbox, .warningbox, .list-header, .mw-revision { - padding-left: 16px; - padding-right: 16px -} - -.talk-overlay .comment .comment-content, .image-list, .pre-content, #mw-content-text > form > .oo-ui-fieldLayout > .oo-ui-fieldLayout-body, #mw-content-text > form > .oo-ui-widget, .content, .post-content { - margin: 0 16px -} - -.minerva__subtitle { - margin-top: 10px; - margin-bottom: 10px -} - -.minerva__subtitle:empty { - margin: 0 -} - -@media all and (min-width: 720px) { - .page-summary-list, .topic-title-list, .site-link-list, .overlay .panel, .list-header { - padding-left: 3.35em; - padding-right: 3.35em - } -} - -.heading-holder { - padding: 20px 0 0; - position: relative -} - -.heading-holder .tagline { - color: #54595d; - font-size: .85em -} - -.page-heading { - margin-bottom: 12px -} - -.mw-ui-icon-element.disabled, .language-selector.disabled { - cursor: default; - opacity: .25 -} - -#page-actions { - position: relative -} - -.page-actions-menu { - -moz-box-sizing: border-box; - box-sizing: border-box; - border-top: 1px solid #eaecf0; - border-bottom: 1px solid #c8ccd1; - margin-top: -1px -} - -.page-actions-menu__list { - display: flex; - height: 3em; - justify-content: space-between -} - -.page-actions-menu__list-item { - display: flex; - justify-content: flex-end; - align-items: center; - min-width: 0; - overflow: hidden -} - -.page-actions-menu__list-item > a { - font-weight: 500 -} - -.page-actions-menu__list-item li > *:hover { - box-shadow: none -} - -.page-actions-menu__list-item:first-child { - flex-grow: 1; - justify-content: flex-start; - margin-left: -8px -} - -.page-actions-menu__list-item:last-child { - margin-right: -8px -} - -.client-nojs .watch-this-article { - visibility: hidden -} - -.client-nojs .is-authenticated .watch-this-article { - visibility: visible -} - -@media all and (max-width: 320px -1) { - .client-nojs #page-actions { - display: none - } - - .client-nojs #section_0 { - border: 0 - } -} - -.minerva-user-navigation { - display: flex; - min-width: 7em; - min-height: 3.375em; - height: 100%; - width: 100%; - align-items: center; - justify-content: flex-end; - position: relative -} - -.minerva-user-navigation > *:last-child { - margin-right: -.75em -} - -.view-border-box *, .view-border-box { - -moz-box-sizing: border-box; - box-sizing: border-box -} - -.client-js .mw-redirectedfrom, .printfooter, .jsonly { - display: none -} - -.client-js .jsonly { - display: inherit -} - -.hidden { - display: none !important -} - -#mw-mf-viewport { - position: relative; - height: 100% -} - -#mw-mf-page-center { - width: 100%; - min-height: 100%; - position: relative; - background-color: #eaecf0 -} - -.content { - position: relative; - z-index: 0 -} - -.minerva-footer { - border-top: solid 1px #c8ccd1; - overflow: auto; - padding-bottom: 6px -} - -.client-nojs footer .indicator, .client-nojs .mw-footer .indicator { - display: none -} - -footer .hlist li:after, .mw-footer .hlist li:after { - color: #36c -} - -footer > .post-content, .mw-footer > .post-content { - overflow: auto; - margin-top: 42px -} - -footer > .post-content > *, .mw-footer > .post-content > * { - margin-bottom: 9px -} - -footer > .post-content > h2, .mw-footer > .post-content > h2 { - border-bottom: solid 1px #c8ccd1; - padding-bottom: 10px; - margin-top: 42px; - font-size: 1em; - font-weight: 700 -} - -footer > .post-content > h2:first-child, .mw-footer > .post-content > h2:first-child { - margin-top: 0 -} - -footer > .post-content .hlist, .mw-footer > .post-content .hlist, footer > .post-content .license, .mw-footer > .post-content .license { - font-size: .875em -} - -.last-modified-bar { - border-bottom: solid 1px #c8ccd1; - background-color: #eaecf0; - color: #72777d; - padding-top: .75em; - padding-bottom: .75em; - font-size: .875em; - -webkit-transition: background-color 250ms, color 250ms; - transition: background-color 250ms, color 250ms -} - -.last-modified-bar a, .last-modified-bar a:visited { - color: #54595d -} - -.last-modified-bar a:nth-child(1), .last-modified-bar a:visited:nth-child(1) { - font-weight: 700 -} - -.last-modified-bar a.external { - background-image: none; - padding-right: 0 -} - -.last-modified-bar__content { - align-items: center; - display: -ms-flexbox; - display: flex -} - -.last-modified-bar__text { - padding-right: 3.5em; - padding-left: .75em; - line-height: 1.65; - vertical-align: middle; - flex-grow: 1; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap -} - -@media (max-width: 720px) { - .last-modified-bar__text { - padding-right: 1em - } -} - -@media print { - .noprint, .banner-container, .header, .minerva__tab-container, .page-actions-menu, .post-content { - display: none - } - - h1, h2, h3, h4, h5, h6 { - page-break-after: avoid - } - - table, figure, img { - page-break-inside: avoid - } - - img { - max-width: 100% - } - - img.image-lazy-loaded { - -webkit-animation: none !important; - animation: none !important - } -} - -@media print and (max-device-width: 720px) { - @page { - margin: 50px 0 - } - - html { - padding: 0 50px - } - - .header-container, .header-container.header-chrome { - background: #fff; - box-shadow: none !important - } - - .header { - border-top: 0; - display: block; - height: auto; - padding: 0 16px - } - - .header .branding-box { - padding-left: 0 !important - } - - .header .branding-box sup { - display: none !important - } - - .header > nav, .header > div { - display: none !important - } - - .header > .branding-box { - height: auto; - display: block !important; - padding: 0 0 51px 50px - } - - .header > .branding-box h1 { - font-size: inherit - } - - .header > .branding-box h1 > * { - float: none - } - - .header > .branding-box h1 img { - height: 41px; - width: auto; - vertical-align: inherit - } - - .hatnote, .pre-content #page-actions { - display: none - } - - .pre-content { - display: block; - padding: 51px 0 35px - } - - .pre-content h1 { - font-size: 70px; - font-weight: 400; - font-style: italic; - font-stretch: normal; - line-height: normal; - letter-spacing: normal; - text-align: left; - color: #000 - } - - .pre-content .tagline { - font-size: 36px - } - - .mw-body > .content { - padding-top: 55px; - position: relative - } - - .mw-body > .content:before { - top: 0 - } - - .thumbinner { - width: auto !important - } - - .thumbinner > a { - width: 100% - } - - .thumb { - position: relative; - padding: 58px 0 !important; - text-align: left; - margin: 0 !important - } - - .thumb:after { - bottom: 30px - } - - .thumb:after, .mw-body > .content:before { - position: absolute; - left: 0; - content: ''; - display: block; - width: 55px; - height: 2px; - background: #999 - } - - .thumbcaption { - margin-top: 23px !important; - width: 100%; - font-style: italic; - font-size: 28px - } - - [class|=mw-content] { - font-size: 36px - } - - [class|=mw-content] a { - text-decoration: underline; - color: #202122 - } - - [class|=mw-content] blockquote { - color: #54595d; - padding: 5px 39px; - font-style: italic - } - - [class|=mw-content] .section-heading { - border-bottom: 0; - padding-bottom: 0; - margin-bottom: 16px - } - - [class|=mw-content] h2 { - font-size: 48px - } - - [class|=mw-content] h3 { - font-size: 40px; - margin-bottom: 13px - } - - [class|=mw-content] h4, [class|=mw-content] h5, [class|=mw-content] h6 { - font-size: 36px; - margin-bottom: 12px - } - - [class|=mw-content] .wikitable { - font-size: 16px - } - - [class|=mw-content] .infobox { - font-size: 30px - } - - .references .mw-cite-backlink { - display: none - } - - .references .reference-text { - font-style: italic - } - - .references a { - text-decoration: none - } - - .references .external.text { - background-image: none - } - - .printfooter { - display: block; - padding-top: 108px; - font-size: 30px - } - - #mw-mf-page-center > footer { - border-top: solid 4px #000; - padding-top: 23px; - background: #fff !important - } - - #mw-mf-page-center > footer .mw-ui-icon:before { - display: none !important - } - - #mw-mf-page-center > footer .last-modified-bar { - background: 0 0 !important; - border: 0 !important - } - - #mw-mf-page-center > footer .last-modifier-tagline { - font-size: 36px; - padding-top: 0 !important; - padding-bottom: 16px !important - } - - #mw-mf-page-center > footer .last-modified-bar, #mw-mf-page-center > footer .last-modified-bar a { - font-weight: 700 !important; - color: #000 !important - } - - #mw-mf-page-center > footer .post-content { - margin-top: 15px !important; - display: block - } - - #mw-mf-page-center > footer .post-content .hlist, #mw-mf-page-center > footer .post-content h2 { - display: none - } - - #mw-mf-page-center > footer .post-content .license a, #mw-mf-page-center > footer .post-content .license { - font-size: 30px; - color: #999; - font-weight: 400 - } -} - -@font-face { - font-family: raleway; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCFPrEHJA.woff2) format('woff2'); - unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F -} - -@font-face { - font-family: raleway; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCMPrEHJA.woff2) format('woff2'); - unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116 -} - -@font-face { - font-family: raleway; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCHPrEHJA.woff2) format('woff2'); - unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB -} - -@font-face { - font-family: raleway; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCGPrEHJA.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF -} - -@font-face { - font-family: raleway; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrE.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD -} - -@font-face { - font-family: neuton; - font-style: italic; - font-weight: 400; - font-display: swap; - src: url(https://fonts.gstatic.com/s/neuton/v16/UMBRrPtMoH62xUZCyrg2Wi_FBw.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF -} - -@font-face { - font-family: neuton; - font-style: italic; - font-weight: 400; - font-display: swap; - src: url(https://fonts.gstatic.com/s/neuton/v16/UMBRrPtMoH62xUZCyrg4Wi8.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD -} - -@font-face { - font-family: neuton; - font-style: normal; - font-weight: 200; - font-display: swap; - src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKAKkvcwr4Pro.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF -} - -@font-face { - font-family: neuton; - font-style: normal; - font-weight: 200; - font-display: swap; - src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKAKkvfQr4.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD -} - -@font-face { - font-family: neuton; - font-style: normal; - font-weight: 300; - font-display: swap; - src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKZKovcwr4Pro.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF -} - -@font-face { - font-family: neuton; - font-style: normal; - font-weight: 300; - font-display: swap; - src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKZKovfQr4.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD -} - -@font-face { - font-family: neuton; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url(https://fonts.gstatic.com/s/neuton/v16/UMBTrPtMoH62xUZCwYg6Qis.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF -} - -@font-face { - font-family: neuton; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url(https://fonts.gstatic.com/s/neuton/v16/UMBTrPtMoH62xUZCz4g6.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD -} - -@font-face { - font-family: neuton; - font-style: normal; - font-weight: 700; - font-display: swap; - src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKdK0vcwr4Pro.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF -} - -@font-face { - font-family: neuton; - font-style: normal; - font-weight: 700; - font-display: swap; - src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKdK0vfQr4.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD -} - -@font-face { - font-family: neuton; - font-style: normal; - font-weight: 800; - font-display: swap; - src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKaK4vcwr4Pro.woff2) format('woff2'); - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF -} - -@font-face { - font-family: neuton; - font-style: normal; - font-weight: 800; - font-display: swap; - src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKaK4vfQr4.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD -} - -@media screen and (min-width: 1000px) { - .header { - max-width: 1250px !important - } -} - -.banner-container, .header, .page-header-bar, .overlay-header, .content, .overlay-content, .content-unstyled, .pre-content, .post-content, .last-modified-bar, #mw-content-text > form { - max-width: 1250px !important -} - -.page-Main_Page .page-heading, .page-Main_Page .pre-content { - display: none !important -} - -.page-Main_Page pre { - display: none -} - -.page-Main_Page .blocks-list { - display: flex; - flex-wrap: wrap; - justify-content: space-evenly; - list-style: none; - column-gap: 20px; - row-gap: 20px; - padding: 0; - margin: 0 -} - -.page-Main_Page .blocks-item { - box-sizing: border-box; - color: #ffc376; - display: flex; - flex: 1 0 180px; - text-align: center; - margin: 0 !important; - border: 1px solid #ecebeb; - border-radius: 8px; - box-shadow: 0 2px 15px rgba(175, 175, 175, .2); - flex-flow: wrap; - position: relative -} - -.page-Main_Page .blocks-item:hover { - box-shadow: 0 2px 15px rgba(231, 135, 27, .4) !important; - cursor: pointer; - top: -2px -} - -.page-Main_Page .blocks-item > a { - color: #ffc376; - padding: 0 10px 15px; - display: flex; - flex-direction: column; - flex: 1; - justify-content: center; - border-radius: inherit; - text-decoration: none; - background-color: transparent -} - -.page-Main_Page .block-icon { - background-position: top center; - background-repeat: no-repeat; - background-size: contain; - height: 140px; - margin: 0; - transition: all .1s ease-in-out -} - -.page-Main_Page .blocks-item-title { - margin: 0; - font-size: 22px; - color: #ffc376 -} - -.page-Main_Page .blocks-item-description:not(:empty) { - margin-top: 10px -} - -.page-Main_Page .blocks-item-description { - font-weight: 300; - margin: 0; - color: #1a1a1a -} - -.page-Main_Page .block-icon:before { - content: ""; - display: block; - position: relative -} - -.page-Main_Page .blocks-item#block-accessories > a > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.png) 2x) -} - -.page-Main_Page .blocks-item#block-accessories > a > .block-icon:before, .page-Main_Page .blocks-item#block-accessories:hover > a > .block-icon, .page-Main_Page .blocks-item#block-accessories > a:focus > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.ro.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.ro.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.ro.png) 2x) -} - -.page-Main_Page .blocks-item#block-armor > a > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.png) 2x) -} - -.page-Main_Page .blocks-item#block-armor > a > .block-icon:before, .page-Main_Page .blocks-item#block-armor:hover > a > .block-icon, .page-Main_Page .blocks-item#block-armor > a:focus > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.ro.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.ro.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.ro.png) 2x) -} - -.page-Main_Page .blocks-item#block-collections > a > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.png) 2x) -} - -.page-Main_Page .blocks-item#block-collections > a > .block-icon:before, .page-Main_Page .blocks-item#block-collections:hover > a > .block-icon, .page-Main_Page .blocks-item#block-collections > a:focus > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.ro.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.ro.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.ro.png) 2x) -} - -.page-Main_Page .blocks-item#block-hub > a > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.png) 2x) -} - -.page-Main_Page .blocks-item#block-hub > a > .block-icon:before, .page-Main_Page .blocks-item#block-hub:hover > a > .block-icon, .page-Main_Page .blocks-item#block-hub > a:focus > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.ro.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.ro.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.ro.png) 2x) -} - -.page-Main_Page .blocks-item#block-fairysouls > a > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.png) 2x) -} - -.page-Main_Page .blocks-item#block-fairysouls > a > .block-icon:before, .page-Main_Page .blocks-item#block-fairysouls:hover > a > .block-icon, .page-Main_Page .blocks-item#block-fairysouls > a:focus > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.ro.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.ro.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.ro.png) 2x) -} - -.page-Main_Page .blocks-item#block-island > a > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.png) 2x) -} - -.page-Main_Page .blocks-item#block-island > a > .block-icon:before, .page-Main_Page .blocks-item#block-island:hover > a > .block-icon, .page-Main_Page .blocks-item#block-island > a:focus > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.ro.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.ro.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.ro.png) 2x) -} - -.page-Main_Page .blocks-item#block-locations > a > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.png) 2x) -} - -.page-Main_Page .blocks-item#block-locations > a > .block-icon:before, .page-Main_Page .blocks-item#block-locations:hover > a > .block-icon, .page-Main_Page .blocks-item#block-locations > a:focus > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.ro.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.ro.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.ro.png) 2x) -} - -.page-Main_Page .blocks-item#block-minions > a > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.png) 2x) -} - -.page-Main_Page .blocks-item#block-minions > a > .block-icon:before, .page-Main_Page .blocks-item#block-minions:hover > a > .block-icon, .page-Main_Page .blocks-item#block-minions > a:focus > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.ro.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.ro.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.ro.png) 2x) -} - -.page-Main_Page .blocks-item#block-pets > a > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.png) 2x) -} - -.page-Main_Page .blocks-item#block-pets > a > .block-icon:before, .page-Main_Page .blocks-item#block-pets:hover > a > .block-icon, .page-Main_Page .blocks-item#block-pets > a:focus > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.ro.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.ro.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.ro.png) 2x) -} - -.page-Main_Page .blocks-item#block-reforging > a > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.png) 2x) -} - -.page-Main_Page .blocks-item#block-reforging > a > .block-icon:before, .page-Main_Page .blocks-item#block-reforging:hover > a > .block-icon, .page-Main_Page .blocks-item#block-reforging > a:focus > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.ro.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.ro.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.ro.png) 2x) -} - -.page-Main_Page .blocks-item#block-skills > a > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.png) 2x) -} - -.page-Main_Page .blocks-item#block-skills > a > .block-icon:before, .page-Main_Page .blocks-item#block-skills:hover > a > .block-icon, .page-Main_Page .blocks-item#block-skills > a:focus > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.ro.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.ro.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.ro.png) 2x) -} - -.page-Main_Page .blocks-item#block-stats > a > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.png) 2x) -} - -.page-Main_Page .blocks-item#block-stats > a > .block-icon:before, .page-Main_Page .blocks-item#block-stats:hover > a > .block-icon, .page-Main_Page .blocks-item#block-stats > a:focus > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.ro.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.ro.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.ro.png) 2x) -} - -.page-Main_Page .blocks-item#block-weapons > a > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.png) 2x) -} - -.page-Main_Page .blocks-item#block-weapons > a > .block-icon:before, .page-Main_Page .blocks-item#block-weapons:hover > a > .block-icon, .page-Main_Page .blocks-item#block-weapons > a:focus > .block-icon { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.ro.png); - background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.ro.png) 2x); - background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.ro.png) 1x, url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.ro.png) 2x) -} - -.page-Main_Page #wrapper { - display: flex; - flex-direction: row; - column-gap: 50px; - row-gap: 50px; - justify-content: space-between -} - -.page-Main_Page #wrapper #content { - display: flex; - flex-direction: column; - row-gap: 50px -} - -.page-Main_Page #wrapper #content #introduction { - display: flex; - flex-direction: row; - column-gap: 25px; - row-gap: 25px; - align-content: center -} - -.page-Main_Page #wrapper #content #introduction #welcome { - margin: .5em 0 -} - -.page-Main_Page #wrapper #content #introduction .blocks-item { - margin: 0 !important -} - -.page-Main_Page #wrapper #content #statistics .stats-list { - display: flex; - flex-wrap: wrap; - list-style: none; - justify-content: space-evenly; - padding: 0; - row-gap: 25px -} - -.page-Main_Page #wrapper #content #statistics .stats-list .stats-item { - margin: 0 -} - -.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon { - background-position: center; - background-size: contain; - background-repeat: no-repeat; - height: 55px; - width: 55px; - display: inline-block; - position: relative; - vertical-align: middle -} - -.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon.stats-icon-edits { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/edits.png) -} - -.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon.stats-icon-pages { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/pages.png) -} - -.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon.stats-icon-files { - background-image: url(https://wiki.hypixel.net/images/hypixel/icons/files.png) -} - -.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-item-text { - vertical-align: middle; - display: inline-flex; - position: relative; - flex-direction: column; - flex-wrap: nowrap; - justify-content: center; - align-content: center; - margin: 0 15px -} - -.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-item-text span:first-child { - font-size: 20px -} - -.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-item-text span:nth-child(2) { - font-size: 16px -} - -.page-Main_Page #wrapper #content #other-game-content ul { - columns: 200px auto -} - -.page-Main_Page #wrapper #content .content-heading { - height: 50px; - background-color: #1f1f1f; - border: 1px solid #333; - border-image: url(https://wiki.hypixel.net/images/hypixel/borders/classic_border.png) 1000 1000 repeat !important; - border-image-width: 35px !important; - border-image-outset: 2px !important; - margin: 0 0 1em; - font-size: 20px; - display: flex; - justify-content: center; - align-items: center -} - -.page-Main_Page #wrapper #sidebar { - display: flex; - flex-direction: column; - row-gap: 50px -} - -.page-Main_Page #wrapper #sidebar .sidebar-heading { - text-align: center; - font-size: 20px -} - -.page-Main_Page #wrapper #sidebar .sidebar-content { - display: flex; - flex-direction: column; - flex-wrap: nowrap; - row-gap: 15px; - background-color: #1f1f1f; - padding: 20px; - border-radius: 3px; - border: 1px solid #333; - border-image: url(https://wiki.hypixel.net/images/hypixel/borders/square_border.png) 500 500 repeat; - border-image-width: 35px !important; - border-image-outset: 2px !important -} - -.page-Main_Page #wrapper #sidebar #clock { - display: none -} - -.page-Main_Page #wrapper #sidebar #clock p { - text-align: center; - margin: 0 -} - -.page-Main_Page #wrapper #sidebar #clock #clock-time { - font-size: 2em -} - -.page-Main_Page #wrapper #sidebar #clock #clock-date { - font-size: 1em -} - -@media (max-width: 1000px) { - #wrapper { - flex-wrap: wrap - } -} - -@media (max-width: 720px) { - #introduction { - flex-wrap: wrap; - justify-content: center - } - - .stats-list { - flex-direction: column; - align-content: center - } -} - -.mw-ui-button.mw-ui-progressive { - background-color: #e7871b; - color: #fff; - border: 1px solid #e7871b -} - -.oo-ui-panelLayout-framed { - background-color: #eaecf0 !important; - border-radius: 4px; - border: none !important -} - -.oo-ui-dropdownInputWidget.oo-ui-widget-enabled { - background-color: transparent -} - -ul.mw-contributions-list li { - min-height: 0 !important -} - -ul.special li { - min-height: 0 !important -} - -body { - color: transparent; - background-color: transparent; - font-family: Raleway, helvetica, serif !important -} - -#content h1, #content h2, #content h3 { - font-family: Neuton, Raleway, helvetica, serif !important -} - -html, #mw-mf-page-center, #mw-script-doc, #content, .navbox, .navbox-subgroup, .overlay.search-overlay { - background-color: #fff !important -} - -.overlay.search-overlay { - background-color: #fff !important -} - -.overlay.search-overlay .search-box { - display: block !important; - position: relative !important -} - -a.external { - background-image: none !important; - padding-right: 0 !important -} - -.mw-body h2.list-header { - margin-top: 16px -} - -.page-heading > h1 { - font-size: 1.7em !important; - font-weight: 400 !important; - line-height: 1.3; - word-wrap: break-word; - word-break: break-word -} - -.list-header { - background-color: transparent; - color: inherit -} - -#toc ul { - list-style: decimal -} - -#mw-toc-heading::before { - background-image: url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJsaXN0IiBjbGFzcz0ic3ZnLWlubGluZS0tZmEgZmEtbGlzdCBmYS13LTE2IiByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Ik04MCAzNjhIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2NjRhMTYgMTYgMCAwIDAgMTYgMTZoNjRhMTYgMTYgMCAwIDAgMTYtMTZ2LTY0YTE2IDE2IDAgMCAwLTE2LTE2em0wLTMyMEgxNkExNiAxNiAwIDAgMCAwIDY0djY0YTE2IDE2IDAgMCAwIDE2IDE2aDY0YTE2IDE2IDAgMCAwIDE2LTE2VjY0YTE2IDE2IDAgMCAwLTE2LTE2em0wIDE2MEgxNmExNiAxNiAwIDAgMC0xNiAxNnY2NGExNiAxNiAwIDAgMCAxNiAxNmg2NGExNiAxNiAwIDAgMCAxNi0xNnYtNjRhMTYgMTYgMCAwIDAtMTYtMTZ6bTQxNiAxNzZIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAtMzIwSDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZWODBhMTYgMTYgMCAwIDAtMTYtMTZ6bTAgMTYwSDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2eiI+PC9wYXRoPjwvc3ZnPg==); - content: ""; - float: left; - height: 14px; - left: -14px; - position: relative; - top: 5px; - width: 14px -} - -#footer-company { - padding: 0 50px 0 0 -} - -#footer-links { - display: flex; - flex: 1; - flex-direction: column; - flex-wrap: wrap; - font-size: 15px; - max-height: 120px -} - -#footer-links > li { - padding: 4px 10px -} - -#footer-logo { - max-height: 64px -} - -#footer-socials { - font-size: 16px; - vertical-align: top; - color: gray; - display: block; - padding: 0 4px -} - -#footer-socials .fab { - min-width: 18px; - text-align: center; - vertical-align: middle -} - -#footer-socials a:hover { - color: gray !important -} - -#footer-socials a:hover > .fa-discord { - color: #7289da -} - -#footer-socials a:hover > .fa-facebook { - color: #4267b2 -} - -#footer-socials a:hover > .fa-instagram { - color: #405de6 -} - -#footer-socials a:hover > .fa-tiktok { - color: #000 -} - -#footer-socials a:hover > .fa-twitter { - color: #1da1f2 -} - -#footer-socials a:hover > .fa-youtube { - color: red -} - -#mw-content-text > form { - width: 100% !important -} - -.branding-box { - background: url(https://wiki.hypixel.net/images/hypixel-full.png) no-repeat; - background-origin: content-box; - background-size: contain; - background-position: center; - opacity: 1 !important; - padding: 10px 0; - cursor: pointer; - height: 100% -} - -.branding-box > a { - height: 100%; - width: 100% -} - -.branding-box > a > span { - color: transparent -} - -.client-nojs .search-box .search:focus { - border: none; - box-shadow: none -} - -.search-overlay .search-box .search:focus { - border: none; - box-shadow: none -} - -.toggle-list__toggle, #mw-mf-main-menu-button { - border: none; - box-shadow: none; - outline: none !important -} - -.footer { - background-image: linear-gradient(to bottom, rgba(26, 26, 26, 0.92), #1a1a1a), url(https://wiki.hypixel.net/images/artwork.png); - background-position: center; - background-repeat: no-repeat; - background-size: cover; - border-top: 1px solid #ddd; - color: #fff; - margin-top: 60px; - padding: 30px 0; - user-select: none -} - -.footer a { - color: gray !important; - text-decoration: none !important; - transition: .12s ease-in-out -} - -.footer a:hover { - color: #fff !important -} - -.footer-copyright { - color: gray; - display: block; - padding: 0 4px -} - -.footer-inner { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - margin: 0 auto; - max-width: 1160px; - padding: 0 !important; - width: 65% !important -} - -.header { - height: 71px !important; - user-select: none -} - -.header-chrome:before { - background-image: radial-gradient(farthest-side at top, rgba(255, 255, 255, 0.5), #ffffff), url(https://wiki.hypixel.net/images/artwork.png) !important; - background-position: center; - background-repeat: no-repeat; - background-size: cover; - content: ""; - height: 72px; - left: 0; - max-width: 100% !important; - position: absolute; - width: 100% !important -} - -.last-modified-bar { - margin: auto; - width: 90%; - background-color: #eaecf0 !important; - border-radius: 4px -} - -.minerva__tab.selected { - border-bottom: 2px solid #e7871b !important -} - -.mw-editform .editOptions { - margin-top: 20px -} - -.mw-ui-icon-element.cancel { - height: 44px; - margin: 10px; - padding: 0; - vertical-align: middle; - width: 44px -} - -.mw-ui-icon-element:not(.disabled):hover { - background-color: rgba(0, 0, 0, .1) -} - -.overlay-footer-container { - display: none -} - -.overlay.search-overlay.visible { - animation-duration: .1s !important -} - -.minerva__tab-container { - display: none -} - -.page-actions-menu, #filetoc, .warningbox { - border-radius: 4px; - margin-bottom: 16px; - padding: 0 20px; - background-color: #eaecf0; - border: 1px solid #c8ccd1 -} - -.warningbox { - padding: 10px 25px !important -} - -.warningbox, #mw-clearyourcache { - margin-bottom: 16px !important -} - -.search { - -webkit-appearance: none !important; - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&format=original&skin=minerva&version=1qbws); - background-position: left .8em center !important; - background-size: 18px !important; - border: 1px solid #fff !important; - border-radius: 6px !important; - box-shadow: 0 0 10px #bbb !important; - box-sizing: border-box !important; - color: #666 !important; - font-family: BlinkMacSystemFont, segoe ui, helvetica, Arial, sans-serif !important; - font-size: 14px !important; - height: 40px !important; - line-height: 1.15 !important; - max-width: 380px; - padding-left: 40px !important; - padding-right: 20px !important; - transition: border .12s ease-in-out !important; - width: 100% !important -} - -.search:focus { - outline: 1px solid #ffc376 !important -} - -.search-box .search { - border-radius: 4px -} - -.content kbd { - border-radius: 4px -} - -.content samp { - border-radius: 4px -} - -.content code { - border-radius: 4px -} - -.content pre { - border-radius: 4px -} - -footer { - border: none !important -} - -fieldset { - margin: 10px 0 -} - -#mw-mf-page-left { - box-shadow: 0 5px 17px 0 rgba(0, 0, 0, .24), 0 0 1px #a2a9b1 !important; - position: absolute !important; - height: max-content; - border-radius: 3px; - -webkit-transition: opacity 100ms ease-in-out, -webkit-tap-highlight-color 0s ease-in-out, transform 100ms ease-in-out, visibility 100ms ease-in-out !important; - transition: opacity 100ms ease-in-out, -webkit-tap-highlight-color 0s ease-in-out, transform 100ms ease-in-out, visibility 100ms ease-in-out !important; - top: 45px !important; - left: -12px !important; - transform: translate(0, -10px) !important -} - -#mw-mf-page-left li { - border: none !important -} - -#mw-mf-page-left li:hover { - background-color: #eaecf0 !important -} - -#mw-mf-page-left ul { - padding-bottom: 0 !important -} - -#mw-mf-page-left ul li a { - color: #54595d !important -} - -#mw-mf-page-left ul li a:hover { - box-shadow: none !important -} - -form.search-box { - display: block; - width: 100% -} - -input { - outline: none -} - -#main-menu-input:checked ~ #mw-mf-page-left { - transform: translate(0, 0) !important -} - -.hlist { - display: none -} - -.last-modified-bar.active { - background-color: #218e47 !important -} - -.wikitable > tr > th, .wikitable > tr > td, .wikitable > * > tr > th, .wikitable > * > tr > td { - padding: .25em .55em !important -} - -.suggestions { - border-radius: 6px !important -} - -.suggestions-result, .suggestions-special { - padding: .5em 1em !important -} - -.suggestions-results, .suggestions-special { - border-color: #ccc !important -} - -kbd, samp, code, pre, .page-actions-menu, #filetoc, .warningbox, .last-modified-bar { - border: 1px solid #333; - border-image: url(https://wiki.hypixel.net/images/hypixel/borders/classic_border.png) 1000 1000 repeat !important; - border-image-width: 35px !important; - border-image-outset: 2px !important -} - -@media only screen { - .oo-ui-tabOptionWidget { - color: #fff !important - } - - .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected { - background-color: #212121 - } - - .suggestions-results, .suggestions-special { - background-color: #1f1f1f !important; - border-color: #333 !important - } - - .suggestions-results .special-label, .suggestions-special .special-label { - color: #ccc !important - } - - .suggestions-results .suggestions-result, .suggestions-special .suggestions-result, .suggestions-results .special-query, .suggestions-special .special-query { - color: #fff !important - } - - .search { - color: #ccc !important - } - - html, body, #mw-mf-page-center, #mw-script-doc, #content, .navbox, .navbox-subgroup, .overlay.search-overlay, .oo-ui-tabSelectWidget-framed, .oo-ui-tagMultiselectWidget-handle, .mw-prefs-buttons, .mw-scribunto-message, .mw-scribunto-console-fieldset, .mw-history-compareselectedversions { - background-color: transparent !important; - color: #fff - } - - .mw-rcfilters-ui-watchlistTopSectionWidget-separator { - border-color: #212121 !important - } - - .mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-content-title, .mw-rcfilters-ui-filterTagMultiselectWidget-emptyFilters { - color: #fff !important - } - - .oo-ui-tabSelectWidget-framed { - border-bottom-color: transparent - } - - .oo-ui-tagMultiselectWidget-handle, .oo-ui-buttonGroupWidget, .oo-ui-dropdownWidget-handle, .oo-ui-optionWidget, .oo-ui-selectWidget, .oo-ui-optionWidget-selected { - background-color: #1a1a1a !important; - color: #fff !important; - border-color: #212121 !important - } - - .oo-ui-optionWidget-highlighted { - background-color: #212121 !important - } - - .oo-ui-optionWidget-selected { - background-color: #1f1f1f !important - } - - input, select, .oo-ui-buttonElement-button, #mw-scribunto-input, .diff-context { - color: #fff !important; - background-color: #1f1f1f !important; - border: 1px solid #333 !important - } - - legend { - color: #aaa - } - - .content .mw-parser-output > h2 { - border-bottom: 2px solid #333 - } - - .content .mw-parser-output > h3 { - border-bottom: 1px solid #333; - margin-bottom: .5em - } - - .content .section-heading { - border-bottom: 1px solid #aaa - } - - .content kbd, .content samp, .content code, .content pre, .content .toc, .content .infobox { - background-color: #1f1f1f !important; - border-color: #333 !important - } - - .content .infobox td { - border-color: #333 !important - } - - .infobox tr { - color: #fff !important - } - - table.wikitable > tr > th, table.wikitable > tr > td { - background-color: #212121; - border-color: #333 !important - } - - table.wikitable > tr > th { - background-color: #2b2b2b - } - - table.wikitable > tr:nth-child(odd) > td { - background: #2b2b2b - } - - table.wikitable > * > tr > th, table.wikitable > * > tr > td { - background-color: #212121; - border-color: #333 !important - } - - table.wikitable > * > tr > th { - background-color: #2b2b2b - } - - table.wikitable > * > tr:nth-child(odd) > td { - background: #2b2b2b - } - - .mw-datatable > tr > th, .mw_metadata > tr > th, .mw-datatable > tr > td, .mw_metadata > tr > td { - background-color: #212121 !important; - border-color: #333 !important - } - - .mw-datatable > tr > th, .mw_metadata > tr > th { - background-color: #2b2b2b !important - } - - .mw-datatable > * > tr > th, .mw_metadata > * > tr > th, .mw-datatable > * > tr > td, .mw_metadata > * > tr > td { - background-color: #212121 !important; - border-color: #333 !important - } - - .mw-datatable > * > tr > th, .mw_metadata > * > tr > th { - background-color: #2b2b2b !important - } - - .footer { - background-image: linear-gradient(to bottom, rgba(26, 26, 26, 0.85), #1a1a1a), url(https://wiki.hypixel.net/images/artwork.png); - border-top: 1px solid #1a1a1a - } - - .header-chrome:before { - background-image: radial-gradient(farthest-side at top, rgba(26, 26, 26, 0.5), #1a1a1a), url(https://wiki.hypixel.net/images/artwork.png) !important - } - - .oo-ui-iconElement-icon, .oo-ui-indicatorElement-indicator { - filter: invert(1) hue-rotate(180deg) brightness(1.2) - } - - .mw-ui-icon:not(.mw-ui-icon-wikimedia-history-invert):before { - filter: invert(1) hue-rotate(180deg) brightness(1.2) - } - - .mw-ui-icon:not(.mw-ui-icon-mf-expand-invert):before { - filter: invert(1) hue-rotate(180deg) brightness(1.2) - } - - .last-modified-bar { - background-color: #1f1f1f !important - } - - .last-modified-bar .last-modified-bar__text { - color: #fff !important - } - - .oo-ui-panelLayout-framed { - background-color: #1f1f1f !important - } - - .minerva__tab { - color: #aaa !important - } - - .mw-ui-icon-with-label-desktop:hover, .mw-ui-icon-with-label-desktop:focus, .mw-ui-icon-with-label-desktop:active, .mw-ui-icon-with-label-desktop:visited { - color: #aaa !important - } - - .page-heading > h1, .page-heading > .tagline { - color: #fff !important - } - - .toggle-list__list { - color: #fff !important; - background-color: #1f1f1f !important; - box-shadow: 0 5px 17px 0 rgba(0, 0, 0, .24), 0 0 1px #000 !important; - border: 1px solid #333 - } - - .search { - box-shadow: 0 0 10px #1f1f1f !important - } - - .search, .page-actions-menu, #filetoc, .warningbox { - background-color: #1f1f1f !important; - border-color: #333 !important - } - - .toggle-list-item:hover { - background: #000; - color: #fff - } - - .blocks-item-description, .mw-mf-user { - color: #fff !important - } - - .blocks-item { - box-shadow: 0 2px 15px rgba(35, 35, 35, .5) !important; - border: 1px solid #333 !important; - background-color: #212121 - } - - .mw-ui-button { - background-color: #1f1f1f !important; - border: 1px solid #333 !important; - color: #fff !important - } - - .mw-ui-button:hover { - background-color: #212121 !important - } - - .mw-history-undo a, .mw-rollback-link a { - background-color: #1f1f1f !important; - border: 1px solid #333 !important; - color: #fff !important - } - - .mw-history-undo a:hover, .mw-rollback-link a:hover { - background-color: #212121 !important - } - - .toggle-list-item__label { - color: #aaa !important - } - - .page-list .info, .page-list .component { - color: #aaa !important - } - - .page-list li { - border-color: #333 !important - } - - .topic-title-list .info, .topic-title-list .component { - color: #aaa !important - } - - .topic-title-list li { - border-color: #333 !important - } - - .site-link-list .info, .site-link-list .component { - color: #aaa !important - } - - .site-link-list li { - border-color: #333 !important - } - - .page-list.side-list .list-thumb { - color: #aaa !important - } - - .topic-title-list.side-list .list-thumb { - color: #aaa !important - } - - .site-link-list.side-list .list-thumb { - color: #aaa !important - } - - ul.mw-contributions-list li { - border-color: #1f1f1f !important - } - - ul.special li { - border-color: #1f1f1f !important - } - - .ns-special .content-header { - border-color: #1f1f1f !important - } - - .mw-prefs-buttons { - border-color: #1f1f1f !important - } - - #mw-mf-page-left { - box-shadow: 0 5px 17px 0 rgba(0, 0, 0, .24), 0 0 1px #000 !important - } - - #mw-mf-page-left ul li { - background-color: #1f1f1f !important; - color: #fff !important - } - - #mw-mf-page-left ul li a { - color: #aaa !important - } - - #mw-mf-page-left li:hover { - background-color: #000 !important - } - - .mw-ui-icon-element:not(.disabled):hover { - background-color: rgba(0, 0, 0, .4) - } -} - -@media only screen and (min-width: 720px) { - .header .branding-box { - width: auto !important; - min-width: 82px - } - - .overlay.search-overlay .overlay-title { - padding-left: 236px !important; - width: 380px !important - } - - #page-actions a { - color: #fff !important - } - - #page-actions label { - color: #fff !important - } -} - -@media only screen and (max-width: 720px) { - #footer-company { - padding: 0 0 30px; - text-align: center; - width: 100% - } - - #footer-links { - max-height: 100%; - text-align: center - } - - .header-chrome:before { - background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.5), #ffffff), url(https://wiki.hypixel.net/images/artwork.png) !important; - height: 170px !important - } - - .last-modified-bar { - margin: 0 16px - } - - .header-chrome:before { - background-image: linear-gradient(to bottom, rgba(26, 26, 26, 0.5), #1a1a1a), url(https://wiki.hypixel.net/images/artwork.png) !important - } -} - -@media only screen and (min-width: 1000px) { - .footer-inner { - padding: 0; - width: 90% - } -} - -@media only screen and (max-width: 1000px) { - #footer-links { - max-width: 100% - } - - .footer-inner { - padding: 0 5% !important; - width: calc(90%) !important - } -} - -.infobox { - border: 15px solid #232445 !important; - border-image: url(https://wiki.hypixel.net/images/hypixel/borders/square_border.png) 1000 1000 repeat !important; - border-image-width: 100px !important; - border-image-outset: 2px !important; - border-collapse: separate !important -} - -.infobox { - background-color: #f2f2f2; - border-collapse: collapse; - clear: both; - display: table !important; - float: right; - margin: 0 !important; - margin-left: 20px !important; - width: 320px; - margin-bottom: 15px !important; - table-layout: fixed -} - -.infobox table { - border-collapse: inherit !important -} - -.infobox img { - display: block; - margin: 20px auto; - max-width: 150px; - height: auto -} - -.infobox td { - border-top: 1px solid #c7c7c7; - padding: 2px 8px; - text-align: right -} - -.infobox td:first-of-type { - font-weight: 700; - text-align: left -} - -.infobox td:last-child { - float: right; - width: 100%; - text-align: right -} - -.infobox tr:first-of-type > th { - font-size: 16px; - font-weight: 700; - padding: 10px 0; - text-align: center -} - -.infobox.minor { - border-image-width: 0 100px 100px 100px !important; - border-width: 0 15px 15px !important; - margin-top: -15px !important -} - -.infobox tr:first-of-type > td { - border-top: none -} - -.mw-parser-output .infobox:last-of-type { - margin-bottom: 15px -} - -span.color-divine, span.color-light_blue, span.color-aqua { - color: #5ff !important -} - -span.color-black { - color: #000 !important -} - -span.color-rare, span.color-blue { - color: #55f !important -} - -span.color-dark_aqua { - color: #0aa !important -} - -span.color-dark_blue { - color: #00a !important -} - -span.color-dark_gray { - color: #555 !important -} - -span.color-dark_green { - color: #0a0 !important -} - -span.color-epic, span.color-dark_purple { - color: #a0a !important -} - -span.color-dark_red { - color: #a00 !important -} - -span.color-legendary, span.color-orange, span.color-gold { - color: #fa0 !important -} - -span.color-gray { - color: #aaa !important -} - -span.color-uncommon, span.color-green { - color: #5f5 !important -} - -span.color-pink, span.color-mythic, span.color-light_purple { - color: #f5f !important -} - -span.color-supreme, span.color-special, span.color-very-special, span.color-red { - color: #f55 !important -} - -span.color-common, span.color-white { - color: #fff !important -} - -span.color-yellow { - color: #ff5 !important -} - -.tabber__header__prev:after, .tabber__header__next:after { - filter: invert(1) -} - -:not(.infobox) .tabber__tab--active { - background-color: rgba(51, 102, 204, .2) -} - -:not(.infobox) .tabber__panel, :not(.infobox) .tabber__header { - background-color: #1f1f1f; - border: 1px solid #333 -} - -:not(.infobox) .tabber__panel { - padding: 1em !important -} - -:not(.infobox) .tabber__panel h1, :not(.infobox) .tabber__panel h2, :not(.infobox) .tabber__panel h3 { - margin-top: 0 -} - -.diff-addedline .diffchange { - background: #0083ff -} - -.codeEditor-status { - color: #000 !important -} - -#toctogglecheckbox:not(:checked) + .toctitle { - border-bottom: 1px solid #333; - margin-bottom: 10px -} - -a.new { - color: #d33 !important -} - -.contributionscores { - width: 100% -} - -.contributionscores td { - text-align: center !important -} - -.contributionscores .header { - display: table-row -} - -.contributionscores .content { - width: auto -} - -.wikiEditor-ui-toolbar { - background-color: #1f1f1f !important -} - -.wikiEditor-ui-toolbar .label:after { - filter: invert(1) hue-rotate(180deg) brightness(1.2) -} - -.wikiEditor-ui-toolbar .tabs .tab a::before { - filter: invert(1) hue-rotate(180deg) brightness(1.2) -} - -.wikiEditor-ui .wikiEditor-ui-view { - border: 1px solid #54595d -} - -.wikiEditor-ui-toolbar { - box-shadow: 0 10px 9px 0 rgba(0, 0, 0, .1) -} - -.wikiEditor-ui-toolbar .sections .section { - border-top: none -} - -.wikiEditor-ui-toolbar .group { - border-right: none; - border-left: none -} - -.tabber__panel { - overflow: visible -} - -:not(.tabber__panel--active).tabber__panel { - display: none -} - -.tabber__section { - height: auto !important; - overflow: visible -} - -.infobox td { - font-size: 13px -} - -.minecraft-inventory td { - font-size: 15px !important -} - -.content { - padding: 0 -} - -.tabber__tab--active, .tabber__tab--active:visited { - box-shadow: inset 0 -2px 0 0 #ffc376; - border-width: 0 1px; - background-color: rgba(255, 195, 118, .1) !important; - font-weight: 700 -} - -.tabber__tab--active a:active, .tabber__tab a:visited { - color: #ffc376 !important -} - -.tabber__tab:hover { - box-shadow: inset 0 -2px 0 0 #ffc376; - color: #ffc376; - filter: brightness(1.5) -} - -.tabber__tab a:active, .tabber__tab a:visited { - color: #bdbcb9 !important -} - -.tabber__tabs { - box-shadow: none !important -} - -.tabber__tabs a:first-of-type { - border-left: none -} - -.tabber__tab { - color: #36c; - line-height: 30px; - font-weight: 400 -} - -.tabber { - margin-bottom: 5px -} - -#mw-mf-page-left ul { - list-style-type: none; - padding-left: 0 -} - -#mw-mf-page-left li { - margin-bottom: 0 -} - -#mw-mf-page-left ul li a { - color: #aaa !important -} - -#mw-mf-main-menu-button:hover + #mw-mf-page-left, #mw-mf-page-left:hover { - visibility: visible -} - -.mw-hypixel-right ul { - padding-left: 0 -} - -.mw-hypixel-right li { - margin-bottom: 0 -} - -.mw-hypixel-right a { - text-decoration: none -} - -table.mw-collapsible :first-child tr:first-child th:last-child::before { - color: #ffc376 !important -} - -.infobox.minor img, .remove-img-span img { - display: inline !important; - margin: 0 !important -} - -.infobox.minor tr:first-of-type > th { - padding: 7px; - border-bottom: 1px solid #333 !important -} - -.infobox.minor tr:nth-of-type(2) > td { - border-top: none -} - -.occupants-minor, .resources-minor { - text-align: left !important; - font-weight: 400; - padding: 5px 0 0 !important -} - -.occupants-minor:first-of-type, .resources-minor:first-of-type { - border-right: 1px solid #333 !important -} - -.occupants-minor li, .resources-minor li, .materials-minor li { - margin-bottom: 0 !important -} - -.occupants-minor ul, .resources-minor ul, .materials-minor ul { - list-style: none !important; - padding: 7px !important; - font-weight: 400 !important -} - -.color-wheel-minor { - border-radius: 50px; - border-style: solid; - border-width: 30px; - height: 0; - width: 0; - transform: rotate(45deg) -} - -.loot-drops-minor li { - list-style-type: none; - margin-bottom: 0 -} - -.gemstone-slot-minor { - text-align: center !important; - padding: 5px -} - -.upgrades-low-minor { - text-align: center !important; - font-weight: 400 !important; - border-right: 1px solid #333 !important -} - -.upgrades-right-minor { - padding: 2px !important; - padding-top: 5px !important; - text-align: center !important -} - -.upgrades-text-minor { - font-size: 15px !important; - font-weight: 700 !important -} - -.attributes-minor { - text-align: center !important; - font-weight: 400 !important; - border-right: 1px #333 solid !important -} - -.attributes-text-minor { - font-size: 13px !important; - font-weight: 700 !important -} - -.container-navbox { - max-width: 100%; - height: auto; - padding: 6px; - font-size: 15px; - background-color: #1f1f1f; - border: 1px solid #c8ccd1; - border-color: #333 !important; - border-image: url(https://wiki.hypixel.net/images/hypixel/borders/classic_border.png) 1000 1000 repeat !important; - border-image-width: 35px !important; - border-image-outset: 2px !important; - clear: both -} - -.container-navbox-header { - width: auto; - height: 35px; - padding: 10px; - border-bottom: 2px solid #333; - text-align: center; - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-between; - font-size: 18px; - vertical-align: middle -} - -.container-navbox-header p { - margin: 0 !important -} - -.container-navbox-section { - max-width: 100%; - height: auto; - border-bottom: 2px solid #333; - display: flex; - flex-direction: row; - background-color: #1f1f1f; - column-gap: 5px -} - -.container-navbox-section:last-child { - border-bottom: none -} - -.container-navbox-group-header { - width: 200px; - max-height: 100%; - padding: 1em; - display: flex; - align-items: center; - background-color: #1f1f1f; - font-weight: 700; - white-space: pre-wrap; - column-gap: 10px -} - -.container-navbox-group { - width: 100%; - padding: 15px 1em -} - -.container-navbox-group ul { - columns: 220px auto -} - -.container-navbox-group ul li { - margin-bottom: 5px -} - -.dropdown:hover .dropdown-content { - visibility: visible; - opacity: 1 -} - -blockquote { - font-family: Raleway, helvetica, serif !important -} - -.cata-image-loot-tabber * .tabber__tabs a::before { - content: ""; - width: 35px; - height: 45px; - background-position: center; - background-repeat: no-repeat; - background-size: cover -} - -.cata-image-loot-tabber * .tabber__tabs a:nth-child(1)::before { - background-image: url(https://wiki.hypixel.net/images/a/a8/SkyBlock_furniture_wood_chest_plus.png) -} - -.cata-image-loot-tabber * .tabber__tabs a:nth-child(2)::before { - background-image: url(https://wiki.hypixel.net/images/b/be/SkyBlock_furniture_gold_chest_plus.png) -} - -.cata-image-loot-tabber * .tabber__tabs a:nth-child(3)::before { - background-image: url(https://wiki.hypixel.net/images/e/e9/SkyBlock_furniture_diamond_chest_plus.png) -} - -.cata-image-loot-tabber * .tabber__tabs a:nth-child(4)::before { - background-image: url(https://wiki.hypixel.net/images/8/82/SkyBlock_furniture_emerald_chest_plus.png) -} - -.cata-image-loot-tabber * .tabber__tabs a:nth-child(5)::before { - background-image: url(https://wiki.hypixel.net/images/b/be/SkyBlock_furniture_ender_chest_plus.png) -} - -.cata-image-loot-tabber * .tabber__tabs a:nth-child(6)::before { - background-image: url(https://wiki.hypixel.net/images/b/be/SkyBlock_furniture_ender_chest_plus.png) -} - -.boss-quote-table-quote { - font-family: sans, serif; - font-size: 40px; - font-weight: 700; - color: #f55; - padding: 16px 10px; - line-height: .5 -} - -.toc > ul { - margin: 0 5em 0 32px !important -} - -.toctogglecheckbox ~ ul { - display: none -} - -.toctogglecheckbox:not(:checked) ~ ul { - display: block -} - -.dialogue-headine { - padding: .5em 0; - line-height: 1.3; - word-wrap: break-word; - word-break: break-word; - font-weight: 700 -} - -.content code { - padding: .1em .4em -} - -code { - border-image: none !important -} - -.mw-parser-output { - display: inline-block; - width: 100%; - max-width: 100% -} - -@media (min-width: 1000px) { - .header-container.header-chrome { - position: fixed; - z-index: 2; - width: 100%; - top: 0; - padding: 0 !important - } - - .header-container.header-chrome:before { - box-shadow: 0 0 20px 10px #1a1a1a - } - - #mw-mf-page-center, #mw-mf-page-center::before { - top: 100px !important - } - - .minerva-user-menu-list { - top: 60px - } -} - -@media (max-width: 1000px) { - .hypixel-site-navigation .toggle-list__toggle { - padding-left: 0 !important; - padding-right: 0 !important - } - - #hypixel-site-navigation-wrapper { - padding: 0 .75em - } -} - -@media (max-width: 720px) { - .header { - flex-wrap: wrap !important; - height: auto !important; - justify-content: space-around !important - } - - #hypixel-site-navigation-wrapper { - order: 3; - flex-wrap: wrap !important; - row-gap: 15px; - justify-content: space-around - } - - #hypixel-site-navigation-wrapper .toggle-list__list { - left: 0 !important; - width: 100% !important - } - - .branding-box { - width: 80px; - height: 40px - } - - .search-box { - width: 100% !important; - left: 0 !important - } -} - -.main-menu-mask { - display: none !important -} - -#hypixel-site-navigation-wrapper { - display: flex; - flex-wrap: nowrap -} - -.hypixel-site-navigation { - color: #fff !important; - text-shadow: 1px 1px rgba(0, 0, 0, .5) -} - -.hypixel-site-navigation a { - color: inherit !important -} - -.hypixel-site-navigation .toggle-list__toggle { - padding: .75em -} - -.hypixel-site-navigation .toggle-list__toggle:hover { - background-color: rgba(0, 0, 0, .4) -} - -.hypixel-site-navigation .toggle-list__list { - top: 100%; - min-width: 200px -} - -.hypixel-site-navigation .toggle-list__list .toggle-list-item .toggle-list-item__anchor { - min-height: 20px -} - -.toggle-list__list, .minerva-user-menu-list { - border-radius: 3px -} - -.minerva-user-navigation { - width: auto !important; - min-width: revert !important -} - -.header { - display: flex; - justify-content: space-between; - align-content: center; - align-items: center; - flex-direction: row; - flex-wrap: nowrap -} - -.hypixel-site-navigation > label::after { - content: ""; - background-image: linear-gradient(transparent, transparent), url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+ZXhwYW5kPC90aXRsZT48ZyBmaWxsPSIjYTJhOWIxIj48cGF0aCBkPSJNMTcuNSA0Ljc1bC03LjUgNy41LTcuNS03LjVMMSA2LjI1bDkgOSA5LTl6Ii8+PC9nPjwvc3ZnPg==); - display: inline-block; - vertical-align: middle; - min-width: 1em; - min-height: 1em; - padding: 0 0 0 20px; - background-repeat: no-repeat; - background-size: 1em 1em; - background-position: center -} - -#mw-mf-page-left ul li a span, .toggle-list-item__label { - color: #fff !important -} - -.mw-ui-icon-wikimedia-flag-ltr-base20:before { - background-image: url(https://wiki.hypixel.net/resources/lib/ooui/themes/wikimediaui/images/icons/flag-ltr.svg) -} - -.mw-ui-icon-wikimedia-articleRedirect-ltr-base20:before { - background-image: url(https://wiki.hypixel.net/resources/lib/ooui/themes/wikimediaui/images/icons/articleRedirect-ltr.svg) -} - -@media (max-width: 720px) { - table.infobox { - display: table !important - } - - table.wikitable { - display: block !important - } -} - -table.infobox { - display: revert !important -} - -.infobox ul { - list-style: none -} - -#userloginForm .mw-userlogin-rememberme { - display: block !important -} - -.mw-hp-tree { - color: #5f5; - margin-left: 20px -} - -.mw-hp-tree li { - margin-bottom: 0; - list-style-type: disc -} - -.mw-hp-tree li::marker { - color: #fff -} - -.mw-hp-tree ul:first-of-type { - margin-top: 6px -} - -.mw-hp-tree ul:last-of-type { - margin-bottom: 6px -} - -.mw-hp-tree-container { - margin-left: 5px -} - -.mw-hp-tree-text::after { - content: "Expand"; - color: #ba91ff; - display: inline-block -} - -.mw-hp-tree-text-down::after { - content: "Collapse"; - color: #7698ff; - display: inline-block -} - -.mw-hp-tree-anchor { - cursor: pointer; - user-select: none -} - -.mw-hp-tree-nested { - display: none -} - -.mw-hp-tree-active { - display: block -} - -.mw-display-qrcode { - border: 2px solid #fff -} - -.mw-overlays-container .search-overlay { - top: 71px -} - -.mw-overlays-container .search-overlay .search-content, .mw-overlays-container .search-overlay .results { - margin-left: 0 !important -} - -.mw-overlays-container .search-overlay .search-content { - z-index: 4; - position: relative; - border: none !important -} - -.mw-overlays-container .search-overlay .overlay-content { - padding-top: 0 !important; - z-index: 3 -} - -.mw-overlays-container .search-overlay .overlay-header { - flex-wrap: nowrap !important -} - -.mw-overlays-container .search-overlay .overlay-title { - padding-right: 15px -} - -.mw-overlays-container .search-overlay .search { - max-width: unset !important -} - -.mw-overlays-container .search-overlay .clear { - right: 5px !important -} - -.mw-overlays-container .search-overlay .results { - position: relative; - box-shadow: none !important; - background: 0 0 !important -} - -.mw-overlays-container .search-overlay .results ul > li { - color: #fff; - background: #1f1f1f; - border: 1px solid #333 !important; - border-radius: 6px; - margin: 5px 0; - box-shadow: 0 0 10px #1f1f1f !important -} - -.mw-overlays-container .search-overlay .results .list-thumb { - background-color: #212121; - border-radius: 6px -} - -.mw-overlays-container .search-overlay .results .page-summary h2, .mw-overlays-container .search-overlay .results .page-summary h3 { - color: #fff -} - -@media (min-width: 720px) { - .overlay-content { - padding-left: 236px !important - } - - .overlay-header-container { - z-index: 4 !important - } - - .search-content, .results { - width: 380px !important - } -} - -@media (max-width: 720px) { - div.overlay-header-container { - position: relative !important; - top: -71px !important - } - - .overlay-content { - padding: 0 15px - } - - .search-content, .results { - width: 100% !important - } -} - -table.sortable .headerSort { - padding-right: 21px !important; - position: relative -} - -table.sortable .headerSort:after { - background-image: inherit; - content: ""; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-repeat: no-repeat; - background-position: center right; - filter: invert(100%); - pointer-events: none -} - -.warningbox > p { - color: #fff; - margin: .5em 0 -} - -.suggestions-special { - border-radius: 6px -} - -.mw-dismissable-notice { - background-color: #1f1f1f; - border-radius: 8px; - border: 1px solid #333; - border-image-width: 35px !important; - border-image-outset: 2px !important -} - -.mw-dismissable-notice { - position: fixed; - display: block; - bottom: 25px; - z-index: 6; - width: 100%; - max-width: 92% !important; - box-shadow: 0 -5px 30px 20px rgba(0, 0, 0, .3); - margin: 0 !important; - left: 50%; - transform: translateX(-50%) -} - -.mw-dismissable-notice-body { - padding: 20px; - margin: 0 !important -} - -.mw-dismissable-notice-close { - padding: 20px -} - -.banner-container { - position: relative -} - -.warningbox { - color: #fff !important -} - -#content { - position: relative; - z-index: 1; - background-color: transparent !important -} - -div#mw-mf-page-center::before { - content: ""; - position: fixed; - top: 0; - bottom: 0; - right: 0; - height: 100%; - width: 100%; - background-image: linear-gradient(#1a1a1a, transparent), url(https://wiki.hypixel.net/images/hypixel/background.png); - background-image: linear-gradient(#1a1a1a, transparent), image-set(url(https://wiki.hypixel.net/images/hypixel/background.png) 1x, url(https://wiki.hypixel.net/images/hypixel/background-large.png) 2x); - background-attachment: fixed; - background-color: #1a1a1a; - background-position: center; - background-repeat: no-repeat; - background-size: cover; - opacity: .075; - z-index: 0; - pointer-events: none -} - -.page-Main_Page #wrapper #content { - background: 0 0 !important -} - -.last-modified-bar, .footer { - position: relative -} - -.last-modified-bar a, .last-modified-bar a:visited { - color: #fff -} - -.overlay { - z-index: 2 !important -} - -.mwe-math-element { - overflow: auto; - display: block -} - -#page-secondary-actions { - display: none -} - -.loot-drops-minor li { - margin-bottom: 0 !important -} - -.warningbox { - color: #fff -} - -.warningbox > p { - margin: .5em 0 !important; - font-size: 17px -} - -.toctitle > .mw-ui-icon-minerva-listBullet { - display: none -} - -.infobox img { - max-width: 100% !important -} - -.hp-loottable td { - border: 2px solid #1a1a1a !important -} - -.hp-loottable td:last-child { - color: #5f5 -} - -.is-affected-by-mf { - outline: dotted 3px transparent; - outline-offset: -1px; - outline-color: #5ff -} - -.is-affected-by-pl { - outline: dotted 3px transparent; - outline-offset: -1px; - outline-color: #f5f -} - -.is-affected-by-mf.is-affected-by-pl { - outline-color: #b591b7 !important -} - -.cata-image-loot-tabber * .tabber__tabs a:nth-child(1)::before { - background-image: url(https://wiki.hypixel.net/images/b/b9/SkyBlock_furniture_dungeon_wood_reward_chest.png); - height: 65px -} - -.cata-image-loot-tabber * .tabber__tabs a:nth-child(2)::before { - background-image: url(https://wiki.hypixel.net/images/8/85/SkyBlock_furniture_dungeon_gold_reward_chest.png); - height: 65px -} - -.cata-image-loot-tabber * .tabber__tabs a:nth-child(3)::before { - background-image: url(https://wiki.hypixel.net/images/9/98/SkyBlock_furniture_dungeon_diamond_reward_chest.png); - height: 65px; - width: 40px -} - -.cata-image-loot-tabber * .tabber__tabs a:nth-child(4)::before { - background-image: url(https://wiki.hypixel.net/images/e/e4/SkyBlock_furniture_dungeon_emerald_reward_chest.png); - height: 65px; - width: 40px -} - -.cata-image-loot-tabber * .tabber__tabs a:nth-child(5)::before { - background-image: url(https://wiki.hypixel.net/images/4/40/SkyBlock_furniture_dungeon_obsidian_reward_chest.png); - height: 65px; - width: 50px -} - -.cata-image-loot-tabber * .tabber__tabs a:nth-child(6)::before { - background-image: url(https://wiki.hypixel.net/images/8/87/SkyBlock_furniture_dungeon_bedrock_reward_chest.png); - height: 65px; - width: 55px -} - -.diff-deletedline .diffchange { - background: #988e78 !important -} - -.hide { - display: none -} - -.page-notif-box { - border: 2px solid #333 !important; - border-left-width: 10px !important; - border-radius: 6px; - border-collapse: separate !important; - width: 75%; - background-color: #1f1f1f !important; - box-shadow: 0 0 10px #1f1f1f !important; - display: flex; - margin: auto !important; - color: #fff; - font-weight: 700; - margin-top: 25px !important; - margin-bottom: 25px !important -} - -.page-notif-box tr > td { - border: none; - padding: .25em .9em -} - -.page-notif-box img { - max-width: revert !important; - flex-shrink: 0 -} - -.page-notif-box-updating, .page-notif-box-changed { - border-color: #e7871b !important -} - -.page-notif-box-no-obtain, .page-notif-box-cannot-obtain { - border-color: #e30000 !important -} - -.page-notif-box-alpha { - border-color: #0d6f67 !important -} - -.hp-input { - height: 35px; - width: 100%; - border: none !important -} - -.dungeon-calc-container td, .loot-calc-container td { - border: 2px solid #1a1a1a -} - -.dungeon-calc-button, .loot-calc-button { - cursor: pointer; - vertical-align: bottom; - background-color: #3f7dfb !important; - transition-duration: .35s; - padding: 5px !important -} - -.dungeon-calc-button:hover, .loot-calc-button:hover { - background-color: #5e93fe !important -} - -.hp-loottable td:last-child { - color: #5f5 -} - -.dungeon-loottable td:last-child { - color: #5f5 -} - -.listspacing li { - margin-bottom: 0 !important -} - -.listspacing li:last-child { - margin-bottom: 1em !important -} - -.listdisplay li { - display: inline !important -} - -.categoryboxcontainer { - max-width: 100%; - height: 35px; - background-color: #1f1f1f; - border: 1px solid #333; - padding: 3px; - font-size: 15px; - clear: both -} - -.categoryboxcontainer li { - display: inline-block; - padding-left: 5px; - padding-right: 5px; - line-height: 35px -} - -.categoryboxcontainer li:first-child { - padding-left: 0; - border-left: none -} - -.categoryboxcontainer li:nth-child(2) { - border-left: none -} - -.categoryboxcontainer li:empty { - display: none -} - -.tooltiptemp { - position: relative !important; - display: inline-block !important; - text-decoration: underline dotted; - cursor: help -} - -.tooltiptemp .tooltiptexttemp { - visibility: hidden; - width: 240px; - background-color: #000; - color: #fff; - text-align: center; - border: 1px #333 solid; - border-radius: 6px; - padding: 5px 0; - position: absolute; - z-index: 1; - bottom: 100% !important; - left: 50% !important; - margin-left: -120px !important; - opacity: 0; - transition: opacity 1s -} - -.tooltiptemp .tooltiptexttemp::after { - content: ""; - position: absolute; - top: 100%; - left: 50%; - margin-left: -5px; - border-width: 5px; - border-style: solid; - border-color: #000 transparent transparent transparent -} - -.tooltiptemp:hover .tooltiptexttemp { - visibility: visible; - opacity: 1 -} - -.tooltiptemp p { - margin: 0 -} - -.raw-mctooltip { - position: relative !important; - display: inline-block !important; - font-weight: 400 -} - -.raw-mctooltip:hover .raw-mctooltiptext { - display: inline -} - -.raw-mctooltiptext { - display: none; - font-family: minecraft, helvetica, serif; - margin: 0 -} - -.content .mw-parser-output > h2 { - padding: .25em 0; - font-size: 1.8em; - margin-top: 35px -} - -.content .mw-parser-output > h2, .content .mw-parser-output > h3 { - text-transform: uppercase; - font-weight: 400 -} - -.heading-holder { - padding: 0 !important -} - -.mw-body-content blockquote { - background-color: #212121; - border-radius: 6px; - border: 1px solid #333 !important; - border-left-width: 5px !important; - display: table -} - -.tabber__tab { - font-weight: 400 !important; - column-gap: 10px -} - -.tabber__header .tabber__tab:not(.tabber__tab--active) { - color: #fff -} - -.mw-collapsible-toggle { - padding-left: 5px -} - -.tabber__header, .tabber__section, .tabber__panel { - scroll-snap-type: none !important; - overscroll-behavior: none !important; - scroll-snap-align: none !important; - overflow: hidden !important -} - -.mw-userlogin-help { - display: none -} - -@media (min-width: 720px) { - .header .branding-box { - max-height: 55px - } -} - -@font-face { - font-family: minecraft; - src: url(https://wiki.hypixel.net/fonts/minecraft.woff) format("woff") -} - -.minecraft-inventory { - -moz-user-select: none; - -ms-user-select: none; - -webkit-user-select: none; - background-color: #c6c6c6; - border: 4px solid; - border-color: #fff #555 #555 #fff; - border-radius: 4px; - box-shadow: 0 0 0 1px #000; - color: #404040; - display: inline-block; - font-family: minecraft, serif; - font-size: 15px; - font-weight: 400; - padding: 2px 6px 6px; - user-select: none; - margin: 10px 0 -} - -.minecraft-inventory table { - border-collapse: separate; - margin: 0 !important -} - -.minecraft-inventory td { - background: #8b8b8b no-repeat center center/32px 32px; - border: 2px solid; - border-color: #373737 #fff #fff #373737; - box-sizing: border-box; - padding: 0; - position: relative; - width: 36px -} - -.minecraft-inventory td > .external { - background: 0 0; - padding: 0 -} - -.minecraft-inventory td > a:hover { - text-decoration: none -} - -.minecraft-inventory td:hover:after { - background: #fff; - content: ""; - float: left; - height: 100%; - left: 0; - opacity: .5; - pointer-events: none; - position: absolute; - top: 0; - width: 100% -} - -.minecraft-inventory td:hover .mctooltip { - display: block -} - -.minecraft-inventory > span { - padding: 2px -} - -.minecraft-inventory tr { - height: 36px -} - -.minecraft-inventory .enchanted::before { - content: ""; - height: 32px; - left: 0; - position: absolute; - top: 0; - width: 32px; - background-image: url(https://wiki.hypixel.net/images/minecraft/glint.webp); - mix-blend-mode: color-dodge -} - -.minecraft-inventory .enchanted::after { - content: ""; - height: 32px; - left: 0; - position: absolute; - top: 0; - width: 32px; - background-image: url(https://wiki.hypixel.net/images/minecraft/item-spritesheet_cutout.png); - background-position: inherit -} - -.minecraft-inventory .amount { - margin: 0; - position: relative; - z-index: 999 -} - -.minecraft-inventory .sbsprite { - background-repeat: no-repeat; - color: #fff; - direction: rtl; - display: block; - text-shadow: 2px 2px #3f3f3f; - background-image: url(https://wiki.hypixel.net/images/skyblock/item-spritesheet.png); - height: 22px; - line-height: 44px; - margin: 0 5px; - text-indent: -8px; - width: 22px -} - -.minecraft-inventory .mcsprite { - background-repeat: no-repeat; - color: #fff; - direction: rtl; - display: block; - text-shadow: 2px 2px #3f3f3f; - background-image: url(https://wiki.hypixel.net/images/minecraft/item-spritesheet.png); - height: 32px; - line-height: 54px; - text-indent: -2px; - width: 32px -} - -.minecraft-inventory .sbpet { - background-repeat: no-repeat; - color: #fff; - direction: rtl; - display: block; - text-shadow: 2px 2px #3f3f3f; - background-image: url(https://wiki.hypixel.net/images/skyblock/pet-spritesheet.png); - height: 22px; - line-height: 44px; - margin: 0 6px; - text-indent: -8px; - width: 20px -} - -.mctooltip { - background: rgba(16, 0, 16, .93); - border: 2px solid; - border-image: linear-gradient(to bottom, rgba(80, 0, 255, 0.31), rgba(40, 0, 127, 0.31)); - border-image-slice: 1; - border-radius: 4px; - box-shadow: 0 0 0 2px rgba(16, 0, 16, .93); - display: none; - line-height: 18px; - margin-left: 15px; - margin-top: -30px; - padding: 4px 4px 3px; - position: fixed; - text-indent: initial; - text-shadow: 2px 2px #3f3f3f; - z-index: 9999 -} - -.mctooltip > span { - direction: ltr; - display: block; - white-space: nowrap; - text-align: left -} - -.mctooltip > span:nth-child(1):not(:last-child) { - padding-bottom: 5px -} - -.mctooltip > span:nth-child(n+2) { - float: left -} - -.mctooltip > span:nth-child(n+2):not(:last-child) { - padding-right: 4px -} - -.mctooltip > span.inline { - display: inline-block !important -} - -.mctooltip .rarity-divine { - color: #5ff -} - -.mctooltip .rarity-rare { - color: #55f; - text-shadow: 2px 2px #15153f -} - -.mctooltip .rarity-epic { - color: #a0a; - text-shadow: 2px 2px #2a002a -} - -.mctooltip .rarity-supreme { - color: #a00; - text-shadow: 2px 2px #2a0000 -} - -.mctooltip .rarity-legendary { - color: #fa0; - text-shadow: 2px 2px #2a2a00 -} - -.mctooltip .rarity-uncommon { - color: #5f5; - text-shadow: 2px 2px #153f15 -} - -.mctooltip .rarity-mythic { - color: #f5f; - text-shadow: 2px 2px #3f153f -} - -.mctooltip .rarity-veryspecial { - color: #f55; - text-shadow: 2px 2px #3f1515 -} - -.mctooltip .rarity-special { - color: #f55; - text-shadow: 2px 2px #3f1515 -} - -.mctooltip .color-aqua { - text-shadow: 2px 2px #153f3f -} - -.mctooltip .color-black { - text-shadow: 2px 2px #000 -} - -.mctooltip .color-blue { - text-shadow: 2px 2px #15153f -} - -.mctooltip .color-dark_aqua { - text-shadow: 2px 2px #002a2a -} - -.mctooltip .color-dark_blue { - text-shadow: 2px 2px #00002a -} - -.mctooltip .color-dark_gray { - text-shadow: 2px 2px #151515 -} - -.mctooltip .color-dark_green { - text-shadow: 2px 2px #002a00 -} - -.mctooltip .color-dark_purple { - text-shadow: 2px 2px #2a002a -} - -.mctooltip .color-dark_red { - text-shadow: 2px 2px #2a0000 -} - -.mctooltip .color-gold { - text-shadow: 2px 2px #2a2a00 -} - -.mctooltip .color-gray { - text-shadow: 2px 2px #2a2a2a -} - -.mctooltip .color-green { - text-shadow: 2px 2px #153f15 -} - -.mctooltip .color-light_purple { - text-shadow: 2px 2px #3f153f -} - -.mctooltip .color-red { - text-shadow: 2px 2px #3f1515 -} - -.mctooltip .color-white { - text-shadow: 2px 2px #3f3f3f -} - -.mctooltip .color-yellow { - text-shadow: 2px 2px #3f3f15 -} - -.color-aqua { - color: #5ff -} - -.color-black { - color: #000 -} - -.color-blue { - color: #55f -} - -.color-dark_aqua { - color: #0aa -} - -.color-dark_blue { - color: #00a -} - -.color-dark_gray { - color: #555 -} - -.color-dark_green { - color: #0a0 -} - -.color-dark_purple { - color: #a0a -} - -.color-dark_red { - color: #a00 -} - -.color-gold { - color: #fa0 -} - -.color-gray { - color: #aaa -} - -.color-green { - color: #5f5 -} - -.color-light_purple { - color: #f5f -} - -.color-red { - color: #f55 -} - -.color-white { - color: #fff -} - -.color-yellow { - color: #ff5 -} - -.mcentity { - background-image: url(https://wiki.hypixel.net/images/minecraft/entity-spritesheet.png); - height: 16px; - width: 16px -} - -.mcblock { - background-image: url(https://wiki.hypixel.net/images/minecraft/block-spritesheet.png); - height: 16px; - width: 16px -} - -.sbspray { - background-image: url(https://wiki.hypixel.net/images/skyblock/spray-spritesheet.png); - height: 128px; - width: 128px -} - -.sbnpc { - background-image: url(https://wiki.hypixel.net/images/skyblock/npc-spritesheet.png); - height: 120px; - width: 270px -} - -.sbnpc-_56ms { - background-position: 0 0 -} - -.sbnpc-adventurer { - background-position: -120px 0 -} - -.sbnpc-agents { - background-position: -240px 0 -} - -.sbnpc-anita { - background-position: -360px 0 -} - -.sbnpc-archeologist { - background-position: -480px 0 -} - -.sbnpc-armorsmith { - background-position: -600px 0 -} - -.sbnpc-arthur { - background-position: -720px 0 -} - -.sbnpc-artist { - background-position: -840px 0 -} - -.sbnpc-artist_2 { - background-position: -960px 0 -} - -.sbnpc-auction_agent_0 { - background-position: -1080px 0 -} - -.sbnpc-auction_agent_1 { - background-position: -1200px 0 -} - -.sbnpc-auction_agent_2 { - background-position: -1320px 0 -} - -.sbnpc-auction_agent_3 { - background-position: -1440px 0 -} - -.sbnpc-auction_master { - background-position: -1560px 0 -} - -.sbnpc-baker { - background-position: -1680px 0 -} - -.sbnpc-banker { - background-position: -1800px 0 -} - -.sbnpc-bartender { - background-position: -1920px 0 -} - -.sbnpc-bazaar { - background-position: -2040px 0 -} - -.sbnpc-bazaar_assistant { - background-position: -2160px 0 -} - -.sbnpc-beekeeper { - background-position: -2280px 0 -} - -.sbnpc-bestiary { - background-position: -2400px 0 -} - -.sbnpc-beth { - background-position: -2520px 0 -} - -.sbnpc-blue_shark { - background-position: -2640px 0 -} - -.sbnpc-bodyguard_1 { - background-position: -2760px 0 -} - -.sbnpc-bodyguard_2 { - background-position: 0 -270px -} - -.sbnpc-bonzo { - background-position: -120px -270px -} - -.sbnpc-bonzo_summon_0 { - background-position: -240px -270px -} - -.sbnpc-bonzo_summon_1 { - background-position: -360px -270px -} - -.sbnpc-bonzo_summon_2 { - background-position: -480px -270px -} - -.sbnpc-bonzo_undead { - background-position: -600px -270px -} - -.sbnpc-builder { - background-position: -720px -270px -} - -.sbnpc-candidate { - background-position: -840px -270px -} - -.sbnpc-cannibal_undead { - background-position: -960px -270px -} - -.sbnpc-carpenter { - background-position: -1080px -270px -} - -.sbnpc-catacombs_blacksmith { - background-position: -1200px -270px -} - -.sbnpc-century_simon { - background-position: -1320px -270px -} - -.sbnpc-charlie { - background-position: -1440px -270px -} - -.sbnpc-clerk_election { - background-position: -1560px -270px -} - -.sbnpc-community_shop { - background-position: -1680px -270px -} - -.sbnpc-crypt_dreadlord { - background-position: -1800px -270px -} - -.sbnpc-crypt_souleater { - background-position: -1920px -270px -} - -.sbnpc-crystal_sentry { - background-position: -2040px -270px -} - -.sbnpc-dante_grey { - background-position: -2160px -270px -} - -.sbnpc-dante_statue { - background-position: -2280px -270px -} - -.sbnpc-default_lost_adventurer { - background-position: -2400px -270px -} - -.sbnpc-derp_candidate { - background-position: -2520px -270px -} - -.sbnpc-diamond_guy { - background-position: -2640px -270px -} - -.sbnpc-dictator { - background-position: -2760px -270px -} - -.sbnpc-dirt_guy { - background-position: 0 -540px -} - -.sbnpc-donpireso { - background-position: -120px -540px -} - -.sbnpc-duncan { - background-position: -240px -540px -} - -.sbnpc-dungeons_candidate { - background-position: -360px -540px -} - -.sbnpc-dungeons_hub_selector { - background-position: -480px -540px -} - -.sbnpc-dusk { - background-position: -600px -540px -} - -.sbnpc-dwarf_banker { - background-position: -720px -540px -} - -.sbnpc-dwarf_citizen_female_5 { - background-position: -840px -540px -} - -.sbnpc-dwarf_citizen_female_6 { - background-position: -960px -540px -} - -.sbnpc-dwarf_citizen_female_7 { - background-position: -1080px -540px -} - -.sbnpc-dwarf_citizen_male_1 { - background-position: -1200px -540px -} - -.sbnpc-dwarf_citizen_male_2 { - background-position: -1320px -540px -} - -.sbnpc-dwarf_citizen_male_3 { - background-position: -1440px -540px -} - -.sbnpc-dwarf_citizen_male_4 { - background-position: -1560px -540px -} - -.sbnpc-dwarf_council_female_5 { - background-position: -1680px -540px -} - -.sbnpc-dwarf_council_female_6 { - background-position: -1800px -540px -} - -.sbnpc-dwarf_council_female_7 { - background-position: -1920px -540px -} - -.sbnpc-dwarf_council_female_8 { - background-position: -2040px -540px -} - -.sbnpc-dwarf_council_male_1 { - background-position: -2160px -540px -} - -.sbnpc-dwarf_council_male_2 { - background-position: -2280px -540px -} - -.sbnpc-dwarf_council_male_3 { - background-position: -2400px -540px -} - -.sbnpc-dwarf_council_male_4 { - background-position: -2520px -540px -} - -.sbnpc-dwarf_militia_1 { - background-position: -2640px -540px -} - -.sbnpc-dwarf_militia_2 { - background-position: -2760px -540px -} - -.sbnpc-dwarf_militia_3 { - background-position: 0 -810px -} - -.sbnpc-dwarf_militia_4 { - background-position: -120px -810px -} - -.sbnpc-dwarf_militia_5 { - background-position: -240px -810px -} - -.sbnpc-dwarf_militia_6 { - background-position: -360px -810px -} - -.sbnpc-dwarf_royalguard_female_5 { - background-position: -480px -810px -} - -.sbnpc-dwarf_royalguard_female_6 { - background-position: -600px -810px -} - -.sbnpc-dwarf_royalguard_female_7 { - background-position: -720px -810px -} - -.sbnpc-dwarf_royalguard_female_8 { - background-position: -840px -810px -} - -.sbnpc-dwarf_royalguard_male_1 { - background-position: -960px -810px -} - -.sbnpc-dwarf_royalguard_male_2 { - background-position: -1080px -810px -} - -.sbnpc-dwarf_royalguard_male_3 { - background-position: -1200px -810px -} - -.sbnpc-dwarf_royalguard_male_4 { - background-position: -1320px -810px -} - -.sbnpc-economist_candidate { - background-position: -1440px -810px -} - -.sbnpc-elle { - background-position: -1560px -810px -} - -.sbnpc-emissary_female_1 { - background-position: -1680px -810px -} - -.sbnpc-emissary_female_2 { - background-position: -1800px -810px -} - -.sbnpc-emissary_female_3 { - background-position: -1920px -810px -} - -.sbnpc-emissary_male_1 { - background-position: -2040px -810px -} - -.sbnpc-emissary_male_2 { - background-position: -2160px -810px -} - -.sbnpc-emissary_male_3 { - background-position: -2280px -810px -} - -.sbnpc-end_dealer { - background-position: -2400px -810px -} - -.sbnpc-enderman_liquid_hot_magma { - background-position: -2520px -810px -} - -.sbnpc-enraged_revenant_horror { - background-position: -2640px -810px -} - -.sbnpc-entity_liquid_hot_magma { - background-position: -2760px -810px -} - -.sbnpc-event_master { - background-position: 0 -1080px -} - -.sbnpc-events_candidate { - background-position: -120px -1080px -} - -.sbnpc-fairy { - background-position: -240px -1080px -} - -.sbnpc-farm_merchant { - background-position: -360px -1080px -} - -.sbnpc-farmer { - background-position: -480px -1080px -} - -.sbnpc-farmer_jon { - background-position: -600px -1080px -} - -.sbnpc-fire_guy { - background-position: -720px -1080px -} - -.sbnpc-fish_merchant { - background-position: -840px -1080px -} - -.sbnpc-fisherman { - background-position: -960px -1080px -} - -.sbnpc-fishing_candidate { - background-position: -1080px -1080px -} - -.sbnpc-flamer_undead { - background-position: -1200px -1080px -} - -.sbnpc-forger { - background-position: -1320px -1080px -} - -.sbnpc-frank_undead { - background-position: -1440px -1080px -} - -.sbnpc-friendly_hiker { - background-position: -1560px -1080px -} - -.sbnpc-frost_undead { - background-position: -1680px -1080px -} - -.sbnpc-frosty { - background-position: -1800px -1080px -} - -.sbnpc-frozen_lost_adventurer { - background-position: -1920px -1080px -} - -.sbnpc-furry_e_boy { - background-position: -2040px -1080px -} - -.sbnpc-gatekeeper { - background-position: -2160px -1080px -} - -.sbnpc-giant_undead { - background-position: -2280px -1080px -} - -.sbnpc-goblin { - background-position: -2400px -1080px -} - -.sbnpc-goblin_armor_1 { - background-position: -2520px -1080px -} - -.sbnpc-goblin_armor_2 { - background-position: -2640px -1080px -} - -.sbnpc-goblin_armor_3 { - background-position: -2760px -1080px -} - -.sbnpc-goblin_armor_4 { - background-position: 0 -1350px -} - -.sbnpc-goblin_king_1 { - background-position: -120px -1350px -} - -.sbnpc-goblin_murderlover { - background-position: -240px -1350px -} - -.sbnpc-goblin_naked_1 { - background-position: -360px -1350px -} - -.sbnpc-goblin_naked_2 { - background-position: -480px -1350px -} - -.sbnpc-goblin_naked_3 { - background-position: -600px -1350px -} - -.sbnpc-goblin_naked_4 { - background-position: -720px -1350px -} - -.sbnpc-goblin_naked_5 { - background-position: -840px -1350px -} - -.sbnpc-gold_forger { - background-position: -960px -1350px -} - -.sbnpc-goon { - background-position: -1080px -1350px -} - -.sbnpc-grandma_wolf { - background-position: -1200px -1350px -} - -.sbnpc-great_white_shark { - background-position: -1320px -1350px -} - -.sbnpc-guber { - background-position: -1440px -1350px -} - -.sbnpc-guildford { - background-position: -1560px -1350px -} - -.sbnpc-gulliver { - background-position: -1680px -1350px -} - -.sbnpc-gustave { - background-position: -1800px -1350px -} - -.sbnpc-haymitch { - background-position: -1920px -1350px -} - -.sbnpc-hephaestus { - background-position: -2040px -1350px -} - -.sbnpc-holy_lost_adventurer { - background-position: -2160px -1350px -} - -.sbnpc-hub_selector { - background-position: -2280px -1350px -} - -.sbnpc-hungry_hiker { - background-position: -2400px -1350px -} - -.sbnpc-hunter_ava { - background-position: -2520px -1350px -} - -.sbnpc-ice_fisherman { - background-position: -2640px -1350px -} - -.sbnpc-iron_forger { - background-position: -2760px -1350px -} - -.sbnpc-jacob { - background-position: 0 -1620px -} - -.sbnpc-jake { - background-position: -120px -1620px -} - -.sbnpc-juliette { - background-position: -240px -1620px -} - -.sbnpc-kessie { - background-position: -360px -1620px -} - -.sbnpc-king_midas { - background-position: -480px -1620px -} - -.sbnpc-lapis_miner { - background-position: -600px -1620px -} - -.sbnpc-lazy_miner { - background-position: -720px -1620px -} - -.sbnpc-leech_undead { - background-position: -840px -1620px -} - -.sbnpc-lift_operator { - background-position: -960px -1620px -} - -.sbnpc-liquid_hot_magma { - background-position: -1080px -1620px -} - -.sbnpc-livid { - background-position: -1200px -1620px -} - -.sbnpc-livid_undead { - background-position: -1320px -1620px -} - -.sbnpc-lonely_philosopher { - background-position: -1440px -1620px -} - -.sbnpc-lumber_merchant { - background-position: -1560px -1620px -} - -.sbnpc-lumberjack { - background-position: -1680px -1620px -} - -.sbnpc-mason { - background-position: -1800px -1620px -} - -.sbnpc-master_tactician { - background-position: -1920px -1620px -} - -.sbnpc-mayhem_main { - background-position: -2040px -1620px -} - -.sbnpc-mayor { - background-position: -2160px -1620px -} - -.sbnpc-melancholic_viking { - background-position: -2280px -1620px -} - -.sbnpc-melody { - background-position: -2400px -1620px -} - -.sbnpc-mine_merchant { - background-position: -2520px -1620px -} - -.sbnpc-mining_candidate { - background-position: -2640px -1620px -} - -.sbnpc-minos_champion { - background-position: -2760px -1620px -} - -.sbnpc-minos_inquisitor { - background-position: 0 -1890px -} - -.sbnpc-minotaur { - background-position: -120px -1890px -} - -.sbnpc-mort { - background-position: -240px -1890px -} - -.sbnpc-mr_dead_undead { - background-position: -360px -1890px -} - -.sbnpc-mute_undead { - background-position: -480px -1890px -} - -.sbnpc-nitroholic { - background-position: -600px -1890px -} - -.sbnpc-nurse_shark { - background-position: -720px -1890px -} - -.sbnpc-old_man_garry { - background-position: -840px -1890px -} - -.sbnpc-ooze_undead { - background-position: -960px -1890px -} - -.sbnpc-ophelia { - background-position: -1080px -1890px -} - -.sbnpc-oringo { - background-position: -1200px -1890px -} - -.sbnpc-parasite_undead { - background-position: -1320px -1890px -} - -.sbnpc-pat { - background-position: -1440px -1890px -} - -.sbnpc-personal_bank_upgrader { - background-position: -1560px -1890px -} - -.sbnpc-pet_collector { - background-position: -1680px -1890px -} - -.sbnpc-pet_sitter { - background-position: -1800px -1890px -} - -.sbnpc-pets_candidate { - background-position: -1920px -1890px -} - -.sbnpc-placeholder_candidate { - background-position: -2040px -1890px -} - -.sbnpc-player_jerry { - background-position: -2160px -1890px -} - -.sbnpc-potato_king { - background-position: -2280px -1890px -} - -.sbnpc-professor { - background-position: -2400px -1890px -} - -.sbnpc-psycho_undead { - background-position: -2520px -1890px -} - -.sbnpc-putrid_undead { - background-position: -2640px -1890px -} - -.sbnpc-puzzler { - background-position: -2760px -1890px -} - -.sbnpc-rainmaker { - background-position: 0 -2160px -} - -.sbnpc-reaper_undead { - background-position: -120px -2160px -} - -.sbnpc-redstone_engineer { - background-position: -240px -2160px -} - -.sbnpc-refraction { - background-position: -360px -2160px -} - -.sbnpc-relenter { - background-position: -480px -2160px -} - -.sbnpc-revenant_horror { - background-position: -600px -2160px -} - -.sbnpc-revoker_undead { - background-position: -720px -2160px -} - -.sbnpc-rick { - background-position: -840px -2160px -} - -.sbnpc-romero_final { - background-position: -960px -2160px -} - -.sbnpc-romero_normal { - background-position: -1080px -2160px -} - -.sbnpc-sadan { - background-position: -1200px -2160px -} - -.sbnpc-salesman_christmas { - background-position: -1320px -2160px -} - -.sbnpc-salesman_easter { - background-position: -1440px -2160px -} - -.sbnpc-salesman_generic { - background-position: -1560px -2160px -} - -.sbnpc-salesman_halloween { - background-position: -1680px -2160px -} - -.sbnpc-salesman_summer { - background-position: -1800px -2160px -} - -.sbnpc-scarf_archer { - background-position: -1920px -2160px -} - -.sbnpc-scarf_mage { - background-position: -2040px -2160px -} - -.sbnpc-scarf_priest { - background-position: -2160px -2160px -} - -.sbnpc-scarf_undead { - background-position: -2280px -2160px -} - -.sbnpc-scarf_warrior { - background-position: -2400px -2160px -} - -.sbnpc-scoop { - background-position: -2520px -2160px -} - -.sbnpc-scorpius { - background-position: -2640px -2160px -} - -.sbnpc-shadow_assassin { - background-position: -2760px -2160px -} - -.sbnpc-shady_bartender { - background-position: 0 -2430px -} - -.sbnpc-shady_cousin { - background-position: -120px -2430px -} - -.sbnpc-shaggy { - background-position: -240px -2430px -} - -.sbnpc-shepherd { - background-position: -360px -2430px -} - -.sbnpc-simon_hat { - background-position: -480px -2430px -} - -.sbnpc-sirius { - background-position: -600px -2430px -} - -.sbnpc-skeletor_prime { - background-position: -720px -2430px -} - -.sbnpc-skull_undead { - background-position: -840px -2430px -} - -.sbnpc-slayer { - background-position: -960px -2430px -} - -.sbnpc-slayer_candidate { - background-position: -1080px -2430px -} - -.sbnpc-snowmaker { - background-position: -1200px -2430px -} - -.sbnpc-spirit_bear { - background-position: -1320px -2430px -} - -.sbnpc-spooky { - background-position: -1440px -2430px -} - -.sbnpc-st_jerry { - background-position: -1560px -2430px -} - -.sbnpc-sylent { - background-position: -1680px -2430px -} - -.sbnpc-tailor_assistant { - background-position: -1800px -2430px -} - -.sbnpc-tailor_owner { - background-position: -1920px -2430px -} - -.sbnpc-tammy { - background-position: -2040px -2430px -} - -.sbnpc-tear_undead { - background-position: -2160px -2430px -} - -.sbnpc-technoblade { - background-position: -2280px -2430px -} - -.sbnpc-terracotta { - background-position: -2400px -2430px -} - -.sbnpc-terry { - background-position: -2520px -2430px -} - -.sbnpc-thirty_virus { - background-position: -2640px -2430px -} - -.sbnpc-tiger_shark { - background-position: -2760px -2430px -} - -.sbnpc-timedeo { - background-position: -2880px 0 -} - -.sbnpc-tomioka { - background-position: -2880px -270px -} - -.sbnpc-tony { - background-position: -2880px -540px -} - -.sbnpc-treasure_horder { - background-position: -2880px -810px -} - -.sbnpc-treasure_hunter { - background-position: -2880px -1080px -} - -.sbnpc-trevor { - background-position: -2880px -1350px -} - -.sbnpc-trinity { - background-position: -2880px -1620px -} - -.sbnpc-unstable_lost_adventurer { - background-position: -2880px -1890px -} - -.sbnpc-vader_undead { - background-position: -2880px -2160px -} - -.sbnpc-vinny { - background-position: -2880px -2430px -} - -.sbnpc-walker_undead { - background-position: 0 -2700px -} - -.sbnpc-walter { - background-position: -120px -2700px -} - -.sbnpc-weaponsmith { - background-position: -240px -2700px -} - -.sbnpc-weirdo_0 { - background-position: -360px -2700px -} - -.sbnpc-weirdo_1 { - background-position: -480px -2700px -} - -.sbnpc-weirdo_2 { - background-position: -600px -2700px -} - -.sbnpc-winona { - background-position: -720px -2700px -} - -.sbnpc-winter_banker { - background-position: -840px -2700px -} - -.sbnpc-wizard { - background-position: -960px -2700px -} - -.sbnpc-wizard_candidate { - background-position: -1080px -2700px -} - -.sbnpc-wizard_quest { - background-position: -1200px -2700px -} - -.sbnpc-wolf_shaman { - background-position: -1320px -2700px -} - -.sbnpc-wool_weaver { - background-position: -1440px -2700px -} - -.sbnpc-young_lost_adventurer { - background-position: -1560px -2700px -} - -.sbnpc-zog { - background-position: -1680px -2700px -} - -.sbnpc-zombie_commander { - background-position: -1800px -2700px -} - -.sbsprite-cobblestone_generator_10 { - background-position: 0 0 -} - -.sbsprite-cobblestone_generator_11 { - background-position: -22px 0 -} - -.sbsprite-danger_3_portal { - background-position: -44px 0 -} - -.sbsprite-resource_regenerator_crystal { - background-position: -66px 0 -} - -.sbsprite-sugar_cane_generator_12 { - background-position: -88px 0 -} - -.sbsprite-cobblestone_generator_12 { - background-position: -110px 0 -} - -.sbsprite-sugar_cane_generator_11 { - background-position: -132px 0 -} - -.sbsprite-sugar_cane_generator_10 { - background-position: -154px 0 -} - -.sbsprite-small_shelves { - background-position: -176px 0 -} - -.sbsprite-bingo_talisman { - background-position: -198px 0 -} - -.sbsprite-red_scarf { - background-position: -220px 0 -} - -.sbsprite-wither_helmet { - background-position: -242px 0 -} - -.sbsprite-glowstone_generator_11 { - background-position: -264px 0 -} - -.sbsprite-glowstone_generator_10 { - background-position: -286px 0 -} - -.sbsprite-fast_travel_crypt { - background-position: -308px 0 -} - -.sbsprite-present_personality { - background-position: -330px 0 -} - -.sbsprite-extra_large_gemstone_sack { - background-position: -352px 0 -} - -.sbsprite-gold_bonzo_head { - background-position: -374px 0 -} - -.sbsprite-shadow_assassin_mauve { - background-position: -396px 0 -} - -.sbsprite-ender_artifact { - background-position: -418px 0 -} - -.sbsprite-sheep_generator_1 { - background-position: -440px 0 -} - -.sbsprite-beach_chair_plus { - background-position: -462px 0 -} - -.sbsprite-sheep_generator_2 { - background-position: -484px 0 -} - -.sbsprite-sheep_generator_3 { - background-position: -506px 0 -} - -.sbsprite-sheep_generator_4 { - background-position: -528px 0 -} - -.sbsprite-sheep_generator_5 { - background-position: -550px 0 -} - -.sbsprite-sheep_generator_6 { - background-position: -572px 0 -} - -.sbsprite-frozen_spider { - background-position: -594px 0 -} - -.sbsprite-sheep_generator_7 { - background-position: -616px 0 -} - -.sbsprite-sheep_generator_8 { - background-position: -638px 0 -} - -.sbsprite-sheep_generator_9 { - background-position: -660px 0 -} - -.sbsprite-nether_wart_island_crystal { - background-position: -682px 0 -} - -.sbsprite-medium_fishing_sack { - background-position: -704px 0 -} - -.sbsprite-gold_generator_9 { - background-position: -726px 0 -} - -.sbsprite-gold_generator_7 { - background-position: -748px 0 -} - -.sbsprite-gold_generator_8 { - background-position: -770px 0 -} - -.sbsprite-gold_generator_5 { - background-position: -792px 0 -} - -.sbsprite-penguin_10 { - background-position: -814px 0 -} - -.sbsprite-diver_helmet { - background-position: -836px 0 -} - -.sbsprite-gold_generator_6 { - background-position: -858px 0 -} - -.sbsprite-penguin_11 { - background-position: -880px 0 -} - -.sbsprite-gold_generator_3 { - background-position: -902px 0 -} - -.sbsprite-gold_generator_4 { - background-position: -924px 0 -} - -.sbsprite-pet_skin_sheep_purple { - background-position: -946px 0 -} - -.sbsprite-gold_generator_1 { - background-position: -968px 0 -} - -.sbsprite-gold_generator_2 { - background-position: -990px 0 -} - -.sbsprite-jar_of_pickles { - background-position: -1012px 0 -} - -.sbsprite-griffin_upgrade_stone_legendary { - background-position: -1034px 0 -} - -.sbsprite-pet_skin_sheep_orange { - background-position: 0 -22px -} - -.sbsprite-talisman { - background-position: -22px -22px -} - -.sbsprite-jungle_generator_7 { - background-position: -44px -22px -} - -.sbsprite-jungle_generator_6 { - background-position: -66px -22px -} - -.sbsprite-tutti_frutti_poison { - background-position: -88px -22px -} - -.sbsprite-fishing_generator_11 { - background-position: -110px -22px -} - -.sbsprite-jungle_generator_9 { - background-position: -132px -22px -} - -.sbsprite-fishing_generator_10 { - background-position: -154px -22px -} - -.sbsprite-jungle_generator_8 { - background-position: -176px -22px -} - -.sbsprite-jungle_generator_3 { - background-position: -198px -22px -} - -.sbsprite-witch_mask { - background-position: -220px -22px -} - -.sbsprite-yellow { - background-position: -242px -22px -} - -.sbsprite-jungle_generator_2 { - background-position: -264px -22px -} - -.sbsprite-jungle_generator_5 { - background-position: -286px -22px -} - -.sbsprite-jungle_generator_4 { - background-position: -308px -22px -} - -.sbsprite-bat_person_artifact { - background-position: -330px -22px -} - -.sbsprite-cocoa_generator_11 { - background-position: -352px -22px -} - -.sbsprite-cocoa_generator_12 { - background-position: -374px -22px -} - -.sbsprite-jungle_generator_1 { - background-position: -396px -22px -} - -.sbsprite-cocoa_generator_10 { - background-position: -418px -22px -} - -.sbsprite-beheaded_horror { - background-position: -440px -22px -} - -.sbsprite-clay_generator_6 { - background-position: -462px -22px -} - -.sbsprite-clay_generator_7 { - background-position: -484px -22px -} - -.sbsprite-clay_generator_8 { - background-position: -506px -22px -} - -.sbsprite-clay_generator_9 { - background-position: -528px -22px -} - -.sbsprite-clay_generator_2 { - background-position: -550px -22px -} - -.sbsprite-clay_generator_3 { - background-position: -572px -22px -} - -.sbsprite-clay_generator_4 { - background-position: -594px -22px -} - -.sbsprite-clay_generator_5 { - background-position: -616px -22px -} - -.sbsprite-gold_livid_head { - background-position: -638px -22px -} - -.sbsprite-clay_generator_1 { - background-position: -660px -22px -} - -.sbsprite-medium_slayer_sack { - background-position: -682px -22px -} - -.sbsprite-pet_skin_wither { - background-position: -704px -22px -} - -.sbsprite-pink_frosted_donut_3 { - background-position: -726px -22px -} - -.sbsprite-pink_frosted_donut_2 { - background-position: -748px -22px -} - -.sbsprite-pink_frosted_donut_5 { - background-position: -770px -22px -} - -.sbsprite-garland { - background-position: -792px -22px -} - -.sbsprite-pink_frosted_donut_4 { - background-position: -814px -22px -} - -.sbsprite-pink_frosted_donut_7 { - background-position: -836px -22px -} - -.sbsprite-pink_frosted_donut_6 { - background-position: -858px -22px -} - -.sbsprite-pink_frosted_donut_9 { - background-position: -880px -22px -} - -.sbsprite-pink_frosted_donut_8 { - background-position: -902px -22px -} - -.sbsprite-rune_jerry { - background-position: -924px -22px -} - -.sbsprite-feather_ring { - background-position: -946px -22px -} - -.sbsprite-perfect_forge { - background-position: -968px -22px -} - -.sbsprite-bingo_relic { - background-position: -990px -22px -} - -.sbsprite-revenant_catalyst { - background-position: -1012px -22px -} - -.sbsprite-sun_2 { - background-position: -1034px -22px -} - -.sbsprite-sun_1 { - background-position: 0 -44px -} - -.sbsprite-pet_skin_tiger_twilight { - background-position: -22px -44px -} - -.sbsprite-blessing_of_life { - background-position: -44px -44px -} - -.sbsprite-plasma { - background-position: -66px -44px -} - -.sbsprite-carrot_patch { - background-position: -88px -44px -} - -.sbsprite-pink_frosted_donut_1 { - background-position: -110px -44px -} - -.sbsprite-bestiary_the_park { - background-position: -132px -44px -} - -.sbsprite-end_stone_10 { - background-position: -154px -44px -} - -.sbsprite-end_stone_11 { - background-position: -176px -44px -} - -.sbsprite-griffin_upgrade_stone_epic { - background-position: -198px -44px -} - -.sbsprite-iron_generator_10 { - background-position: -220px -44px -} - -.sbsprite-pet_skin_rock_embarrassed { - background-position: -242px -44px -} - -.sbsprite-fast_travel_barn { - background-position: -264px -44px -} - -.sbsprite-iron_generator_11 { - background-position: -286px -44px -} - -.sbsprite-iron_generator_12 { - background-position: -308px -44px -} - -.sbsprite-large_runes_sack { - background-position: -330px -44px -} - -.sbsprite-rune_redstone { - background-position: -352px -44px -} - -.sbsprite-horseman_candle { - background-position: -374px -44px -} - -.sbsprite-tepid_green_tea { - background-position: -396px -44px -} - -.sbsprite-large_agronomy_sack { - background-position: -418px -44px -} - -.sbsprite-wise_shimmer { - background-position: -440px -44px -} - -.sbsprite-maxor_the_fish { - background-position: -462px -44px -} - -.sbsprite-revenant_generator_4 { - background-position: -484px -44px -} - -.sbsprite-revenant_generator_5 { - background-position: -506px -44px -} - -.sbsprite-revenant_generator_6 { - background-position: -528px -44px -} - -.sbsprite-revenant_generator_7 { - background-position: -550px -44px -} - -.sbsprite-revenant_generator_1 { - background-position: -572px -44px -} - -.sbsprite-revenant_generator_2 { - background-position: -594px -44px -} - -.sbsprite-epoch_cake_orange { - background-position: -616px -44px -} - -.sbsprite-revenant_generator_3 { - background-position: -638px -44px -} - -.sbsprite-large_gemstone_sack { - background-position: -660px -44px -} - -.sbsprite-mender_crown { - background-position: -682px -44px -} - -.sbsprite-mummy_10 { - background-position: -704px -44px -} - -.sbsprite-revenant_generator_8 { - background-position: -726px -44px -} - -.sbsprite-revenant_generator_9 { - background-position: -748px -44px -} - -.sbsprite-mummy_11 { - background-position: -770px -44px -} - -.sbsprite-hard_stone_generator_9 { - background-position: -792px -44px -} - -.sbsprite-hard_stone_generator_8 { - background-position: -814px -44px -} - -.sbsprite-hard_stone_generator_7 { - background-position: -836px -44px -} - -.sbsprite-hard_stone_generator_6 { - background-position: -858px -44px -} - -.sbsprite-hard_stone_generator_5 { - background-position: -880px -44px -} - -.sbsprite-hard_stone_generator_4 { - background-position: -902px -44px -} - -.sbsprite-medium_talisman_bag { - background-position: -924px -44px -} - -.sbsprite-hard_stone_generator_3 { - background-position: -946px -44px -} - -.sbsprite-black_small_backpack { - background-position: -968px -44px -} - -.sbsprite-hard_stone_generator_2 { - background-position: -990px -44px -} - -.sbsprite-harp { - background-position: -1012px -44px -} - -.sbsprite-hard_stone_generator_1 { - background-position: -1034px -44px -} - -.sbsprite-pet_skin_sheep_green { - background-position: 0 -66px -} - -.sbsprite-magma_cube_generator_10 { - background-position: -22px -66px -} - -.sbsprite-fishing_crystal { - background-position: -44px -66px -} - -.sbsprite-magma_cube_generator_11 { - background-position: -66px -66px -} - -.sbsprite-rough_amber_gem { - background-position: -88px -66px -} - -.sbsprite-oak_generator_5 { - background-position: -110px -66px -} - -.sbsprite-oak_generator_4 { - background-position: -132px -66px -} - -.sbsprite-oak_generator_3 { - background-position: -154px -66px -} - -.sbsprite-oak_generator_2 { - background-position: -176px -66px -} - -.sbsprite-red_claw_ring { - background-position: -198px -66px -} - -.sbsprite-oak_generator_9 { - background-position: -220px -66px -} - -.sbsprite-oak_generator_8 { - background-position: -242px -66px -} - -.sbsprite-purple_small_backpack { - background-position: -264px -66px -} - -.sbsprite-oak_generator_7 { - background-position: -286px -66px -} - -.sbsprite-oak_generator_6 { - background-position: -308px -66px -} - -.sbsprite-picnic_set { - background-position: -330px -66px -} - -.sbsprite-oak_generator_1 { - background-position: -352px -66px -} - -.sbsprite-pet_skin_sheep_neon_red { - background-position: -374px -66px -} - -.sbsprite-hot_stuff { - background-position: -396px -66px -} - -.sbsprite-skeleton_generator_11 { - background-position: -418px -66px -} - -.sbsprite-skeleton_generator_10 { - background-position: -440px -66px -} - -.sbsprite-mayor_jerry { - background-position: -462px -66px -} - -.sbsprite-generals_armor_of_the_resistance_helmet { - background-position: -484px -66px -} - -.sbsprite-recall_potion { - background-position: -506px -66px -} - -.sbsprite-portable_builder { - background-position: -528px -66px -} - -.sbsprite-rune_ice { - background-position: -550px -66px -} - -.sbsprite-zombie_brain_mixin { - background-position: -572px -66px -} - -.sbsprite-pet_skin_rabbit_aquamarine { - background-position: -594px -66px -} - -.sbsprite-rune_music { - background-position: -616px -66px -} - -.sbsprite-magnetic_talisman { - background-position: -638px -66px -} - -.sbsprite-light_grey_jumbo_backpack { - background-position: -660px -66px -} - -.sbsprite-onyx { - background-position: -682px -66px -} - -.sbsprite-rune_fire { - background-position: -704px -66px -} - -.sbsprite-pet_skin_sheep_black { - background-position: -726px -66px -} - -.sbsprite-ice_fireplace { - background-position: -748px -66px -} - -.sbsprite-sun_personality { - background-position: -770px -66px -} - -.sbsprite-pet { - background-position: -792px -66px -} - -.sbsprite-melon_2 { - background-position: -814px -66px -} - -.sbsprite-melon_3 { - background-position: -836px -66px -} - -.sbsprite-epoch_cake_purple { - background-position: -858px -66px -} - -.sbsprite-melon_1 { - background-position: -880px -66px -} - -.sbsprite-krampus_helmet { - background-position: -902px -66px -} - -.sbsprite-coffee_table { - background-position: -924px -66px -} - -.sbsprite-necromancer_lord_helmet { - background-position: -946px -66px -} - -.sbsprite-melon_8 { - background-position: -968px -66px -} - -.sbsprite-blue_ice_hunk { - background-position: -990px -66px -} - -.sbsprite-divan_helmet { - background-position: -1012px -66px -} - -.sbsprite-melon_9 { - background-position: -1034px -66px -} - -.sbsprite-melon_6 { - background-position: 0 -88px -} - -.sbsprite-melon_7 { - background-position: -22px -88px -} - -.sbsprite-melon_4 { - background-position: -44px -88px -} - -.sbsprite-melon_5 { - background-position: -66px -88px -} - -.sbsprite-blue_candy { - background-position: -88px -88px -} - -.sbsprite-squid_hat { - background-position: -110px -88px -} - -.sbsprite-dungeon_green_support_orb { - background-position: -132px -88px -} - -.sbsprite-coin_diamond_3 { - background-position: -154px -88px -} - -.sbsprite-pink { - background-position: -176px -88px -} - -.sbsprite-coin_diamond_2 { - background-position: -198px -88px -} - -.sbsprite-repelling_candle { - background-position: -220px -88px -} - -.sbsprite-enderman_generator_11 { - background-position: -242px -88px -} - -.sbsprite-power_artifact { - background-position: -264px -88px -} - -.sbsprite-enderman_generator_10 { - background-position: -286px -88px -} - -.sbsprite-amethyst_crystal { - background-position: -308px -88px -} - -.sbsprite-crimson_essence { - background-position: -330px -88px -} - -.sbsprite-blue_small_backpack { - background-position: -352px -88px -} - -.sbsprite-grey_jumbo_backpack { - background-position: -374px -88px -} - -.sbsprite-wither_essence { - background-position: -396px -88px -} - -.sbsprite-brown_jumbo_backpack { - background-position: -418px -88px -} - -.sbsprite-archer_dungeon_ability_1 { - background-position: -440px -88px -} - -.sbsprite-crochet_tiger_plushie { - background-position: -462px -88px -} - -.sbsprite-final_destination_helmet { - background-position: -484px -88px -} - -.sbsprite-luxurious_spool { - background-position: -506px -88px -} - -.sbsprite-auto_recombobulator { - background-position: -528px -88px -} - -.sbsprite-killer_11 { - background-position: -550px -88px -} - -.sbsprite-spooky_bait { - background-position: -572px -88px -} - -.sbsprite-killer_10 { - background-position: -594px -88px -} - -.sbsprite-fast_travel_howl { - background-position: -616px -88px -} - -.sbsprite-etherwarp_conduit { - background-position: -638px -88px -} - -.sbsprite-forest_island_crystal { - background-position: -660px -88px -} - -.sbsprite-spirit_mask { - background-position: -682px -88px -} - -.sbsprite-sacks { - background-position: -704px -88px -} - -.sbsprite-obsidian_generator_10 { - background-position: -726px -88px -} - -.sbsprite-chicken_generator_10 { - background-position: -748px -88px -} - -.sbsprite-chicken_generator_12 { - background-position: -770px -88px -} - -.sbsprite-wood_singularity { - background-position: -792px -88px -} - -.sbsprite-chicken_generator_11 { - background-position: -814px -88px -} - -.sbsprite-sun_6 { - background-position: -836px -88px -} - -.sbsprite-builder_melon { - background-position: -858px -88px -} - -.sbsprite-santa_1 { - background-position: -880px -88px -} - -.sbsprite-sun_5 { - background-position: -902px -88px -} - -.sbsprite-dirt_bottle { - background-position: -924px -88px -} - -.sbsprite-sun_4 { - background-position: -946px -88px -} - -.sbsprite-handy_blood_chalice { - background-position: -968px -88px -} - -.sbsprite-sun_3 { - background-position: -990px -88px -} - -.sbsprite-sun_9 { - background-position: -1012px -88px -} - -.sbsprite-superior_fragment { - background-position: -1034px -88px -} - -.sbsprite-sun_8 { - background-position: 0 -110px -} - -.sbsprite-sun_7 { - background-position: -22px -110px -} - -.sbsprite-your_essence { - background-position: -44px -110px -} - -.sbsprite-pink_greater_backpack { - background-position: -66px -110px -} - -.sbsprite-unstable_fragment { - background-position: -88px -110px -} - -.sbsprite-obsidian_generator_11 { - background-position: -110px -110px -} - -.sbsprite-obsidian_generator_12 { - background-position: -132px -110px -} - -.sbsprite-perfect_sapphire_gem { - background-position: -154px -110px -} - -.sbsprite-gravel_generator_11 { - background-position: -176px -110px -} - -.sbsprite-gravel_generator_10 { - background-position: -198px -110px -} - -.sbsprite-candy_corn { - background-position: -220px -110px -} - -.sbsprite-mineral_talisman { - background-position: -242px -110px -} - -.sbsprite-divan_alloy { - background-position: -264px -110px -} - -.sbsprite-moil_log { - background-position: -286px -110px -} - -.sbsprite-super_magic_mushroom_soup { - background-position: -308px -110px -} - -.sbsprite-easter_basket { - background-position: -330px -110px -} - -.sbsprite-hunter_talisman { - background-position: -352px -110px -} - -.sbsprite-medium_potion_bag { - background-position: -374px -110px -} - -.sbsprite-pet_skin_megalodon_bullhead { - background-position: -396px -110px -} - -.sbsprite-broken_piggy_bank { - background-position: -418px -110px -} - -.sbsprite-mayor_technoblade { - background-position: -440px -110px -} - -.sbsprite-farming_talisman { - background-position: -462px -110px -} - -.sbsprite-flawed_sapphire_gem { - background-position: -484px -110px -} - -.sbsprite-light_blue_large_backpack { - background-position: -506px -110px -} - -.sbsprite-kindred { - background-position: -528px -110px -} - -.sbsprite-pocket_espresso_machine { - background-position: -550px -110px -} - -.sbsprite-overflux_power_orb { - background-position: -572px -110px -} - -.sbsprite-potato_spreading { - background-position: -594px -110px -} - -.sbsprite-acacia_generator_11 { - background-position: -616px -110px -} - -.sbsprite-birch_generator_6 { - background-position: -638px -110px -} - -.sbsprite-acacia_generator_10 { - background-position: -660px -110px -} - -.sbsprite-birch_generator_5 { - background-position: -682px -110px -} - -.sbsprite-birch_generator_4 { - background-position: -704px -110px -} - -.sbsprite-birch_generator_3 { - background-position: -726px -110px -} - -.sbsprite-holy_dragon_helmet { - background-position: -748px -110px -} - -.sbsprite-basketball_personality { - background-position: -770px -110px -} - -.sbsprite-birch_generator_9 { - background-position: -792px -110px -} - -.sbsprite-birch_generator_8 { - background-position: -814px -110px -} - -.sbsprite-birch_generator_7 { - background-position: -836px -110px -} - -.sbsprite-birch_generator_2 { - background-position: -858px -110px -} - -.sbsprite-birch_generator_1 { - background-position: -880px -110px -} - -.sbsprite-anubis { - background-position: -902px -110px -} - -.sbsprite-santa_8 { - background-position: -924px -110px -} - -.sbsprite-santa_9 { - background-position: -946px -110px -} - -.sbsprite-santa_6 { - background-position: -968px -110px -} - -.sbsprite-santa_7 { - background-position: -990px -110px -} - -.sbsprite-santa_4 { - background-position: -1012px -110px -} - -.sbsprite-candy_talisman { - background-position: -1034px -110px -} - -.sbsprite-santa_5 { - background-position: 0 -132px -} - -.sbsprite-santa_2 { - background-position: -22px -132px -} - -.sbsprite-santa_3 { - background-position: -44px -132px -} - -.sbsprite-small_combat_sack { - background-position: -66px -132px -} - -.sbsprite-speed_racer { - background-position: -88px -132px -} - -.sbsprite-pet_skin_parrot_blue_macaw { - background-position: -110px -132px -} - -.sbsprite-red_large_backpack { - background-position: -132px -132px -} - -.sbsprite-sea_archer_helmet { - background-position: -154px -132px -} - -.sbsprite-happy_mask { - background-position: -176px -132px -} - -.sbsprite-blue_large_backpack { - background-position: -198px -132px -} - -.sbsprite-enderman_generator_4 { - background-position: -220px -132px -} - -.sbsprite-enderman_generator_3 { - background-position: -242px -132px -} - -.sbsprite-enderman_generator_2 { - background-position: -264px -132px -} - -.sbsprite-enderman_generator_1 { - background-position: -286px -132px -} - -.sbsprite-enderman_generator_8 { - background-position: -308px -132px -} - -.sbsprite-enderman_generator_7 { - background-position: -330px -132px -} - -.sbsprite-enderman_generator_6 { - background-position: -352px -132px -} - -.sbsprite-enderman_generator_5 { - background-position: -374px -132px -} - -.sbsprite-green_candy { - background-position: -396px -132px -} - -.sbsprite-bestiary_milestone { - background-position: -418px -132px -} - -.sbsprite-colossal_exp_bottle_upgrade { - background-position: -440px -132px -} - -.sbsprite-sun_11 { - background-position: -462px -132px -} - -.sbsprite-sun_10 { - background-position: -484px -132px -} - -.sbsprite-vampire_witch_mask { - background-position: -506px -132px -} - -.sbsprite-pet_skin_sheep_yellow { - background-position: -528px -132px -} - -.sbsprite-bank_upgrade_palatial { - background-position: -550px -132px -} - -.sbsprite-flawed_ruby_gem { - background-position: -572px -132px -} - -.sbsprite-redstone_generator_9 { - background-position: -594px -132px -} - -.sbsprite-redstone_generator_7 { - background-position: -616px -132px -} - -.sbsprite-redstone_generator_8 { - background-position: -638px -132px -} - -.sbsprite-arachne_fragment { - background-position: -660px -132px -} - -.sbsprite-spider_generator_10 { - background-position: -682px -132px -} - -.sbsprite-spider_generator_11 { - background-position: -704px -132px -} - -.sbsprite-epoch_cake_red { - background-position: -726px -132px -} - -.sbsprite-orange_jumbo_backpack { - background-position: -748px -132px -} - -.sbsprite-giant_the_fish { - background-position: -770px -132px -} - -.sbsprite-minnow_bait { - background-position: -792px -132px -} - -.sbsprite-enderman_generator_9 { - background-position: -814px -132px -} - -.sbsprite-mastiff_puppy { - background-position: -836px -132px -} - -.sbsprite-talisman_enrichment_critical_damage { - background-position: -858px -132px -} - -.sbsprite-fast_travel_forge { - background-position: -880px -132px -} - -.sbsprite-goblin_omelette { - background-position: -902px -132px -} - -.sbsprite-builder_ancient_fruit { - background-position: -924px -132px -} - -.sbsprite-master_skull_tier_10 { - background-position: -946px -132px -} - -.sbsprite-hardened_wood { - background-position: -968px -132px -} - -.sbsprite-large_winter_sack { - background-position: -990px -132px -} - -.sbsprite-talisman_enrichment_intelligence { - background-position: -1012px -132px -} - -.sbsprite-snow_snowglobe { - background-position: -1034px -132px -} - -.sbsprite-summoning_eye { - background-position: 0 -154px -} - -.sbsprite-cavespider_generator_10 { - background-position: -22px -154px -} - -.sbsprite-clownfish_10 { - background-position: -44px -154px -} - -.sbsprite-cavespider_generator_11 { - background-position: -66px -154px -} - -.sbsprite-revenant_generator_12 { - background-position: -88px -154px -} - -.sbsprite-clownfish_11 { - background-position: -110px -154px -} - -.sbsprite-revenant_generator_11 { - background-position: -132px -154px -} - -.sbsprite-revenant_generator_10 { - background-position: -154px -154px -} - -.sbsprite-red_small_backpack { - background-position: -176px -154px -} - -.sbsprite-soulflow { - background-position: -198px -154px -} - -.sbsprite-farming_fortune { - background-position: -220px -154px -} - -.sbsprite-dungeon_stone_berserk { - background-position: -242px -154px -} - -.sbsprite-green_greater_backpack { - background-position: -264px -154px -} - -.sbsprite-mastiff_helmet { - background-position: -286px -154px -} - -.sbsprite-purple { - background-position: -308px -154px -} - -.sbsprite-skeleton_generator_7 { - background-position: -330px -154px -} - -.sbsprite-skeleton_generator_6 { - background-position: -352px -154px -} - -.sbsprite-skeleton_generator_9 { - background-position: -374px -154px -} - -.sbsprite-skeleton_generator_8 { - background-position: -396px -154px -} - -.sbsprite-speed_ring { - background-position: -418px -154px -} - -.sbsprite-skeleton_generator_3 { - background-position: -440px -154px -} - -.sbsprite-rabbit_hutch { - background-position: -462px -154px -} - -.sbsprite-skeleton_generator_2 { - background-position: -484px -154px -} - -.sbsprite-skeleton_generator_5 { - background-position: -506px -154px -} - -.sbsprite-minion_storage_expander { - background-position: -528px -154px -} - -.sbsprite-skeleton_generator_4 { - background-position: -550px -154px -} - -.sbsprite-werewolf_helmet { - background-position: -572px -154px -} - -.sbsprite-light_blue_small_backpack { - background-position: -594px -154px -} - -.sbsprite-skeleton_generator_1 { - background-position: -616px -154px -} - -.sbsprite-lapis_chest { - background-position: -638px -154px -} - -.sbsprite-healing_talisman { - background-position: -660px -154px -} - -.sbsprite-magma_cube_head { - background-position: -682px -154px -} - -.sbsprite-shadow_goggles { - background-position: -704px -154px -} - -.sbsprite-ice_generator_11 { - background-position: -726px -154px -} - -.sbsprite-fine_jasper_gem { - background-position: -748px -154px -} - -.sbsprite-candy_artifact { - background-position: -770px -154px -} - -.sbsprite-pet_skin_dragon_neon_blue { - background-position: -792px -154px -} - -.sbsprite-fast_travel_desert { - background-position: -814px -154px -} - -.sbsprite-rune_end { - background-position: -836px -154px -} - -.sbsprite-old_shimmer { - background-position: -858px -154px -} - -.sbsprite-skyblock_bench { - background-position: -880px -154px -} - -.sbsprite-hay_bale { - background-position: -902px -154px -} - -.sbsprite-crit_chance { - background-position: -924px -154px -} - -.sbsprite-dungeon_stone { - background-position: -946px -154px -} - -.sbsprite-artifact_potion_affinity { - background-position: -968px -154px -} - -.sbsprite-yoggie { - background-position: -990px -154px -} - -.sbsprite-starred_adaptive_helmet { - background-position: -1012px -154px -} - -.sbsprite-foraging_3_portal { - background-position: -1034px -154px -} - -.sbsprite-pet_skin_dragon_neon_red { - background-position: 0 -176px -} - -.sbsprite-ditto_skull { - background-position: -22px -176px -} - -.sbsprite-pig_generator_6 { - background-position: -44px -176px -} - -.sbsprite-redstone_generator_1 { - background-position: -66px -176px -} - -.sbsprite-pig_generator_5 { - background-position: -88px -176px -} - -.sbsprite-redstone_generator_2 { - background-position: -110px -176px -} - -.sbsprite-pig_generator_8 { - background-position: -132px -176px -} - -.sbsprite-pig_generator_7 { - background-position: -154px -176px -} - -.sbsprite-flawless_amethyst_gem { - background-position: -176px -176px -} - -.sbsprite-redstone_generator_5 { - background-position: -198px -176px -} - -.sbsprite-wither_catalyst { - background-position: -220px -176px -} - -.sbsprite-pig_generator_9 { - background-position: -242px -176px -} - -.sbsprite-redstone_generator_6 { - background-position: -264px -176px -} - -.sbsprite-cyan_jumbo_backpack { - background-position: -286px -176px -} - -.sbsprite-redstone_generator_3 { - background-position: -308px -176px -} - -.sbsprite-redstone_generator_4 { - background-position: -330px -176px -} - -.sbsprite-ice_generator_10 { - background-position: -352px -176px -} - -.sbsprite-pig_generator_2 { - background-position: -374px -176px -} - -.sbsprite-builder_lettuce { - background-position: -396px -176px -} - -.sbsprite-first_master_star { - background-position: -418px -176px -} - -.sbsprite-pig_generator_1 { - background-position: -440px -176px -} - -.sbsprite-pig_generator_4 { - background-position: -462px -176px -} - -.sbsprite-green_medium_backpack { - background-position: -484px -176px -} - -.sbsprite-pig_generator_3 { - background-position: -506px -176px -} - -.sbsprite-sugar_cane_generator_9 { - background-position: -528px -176px -} - -.sbsprite-greater_backpack { - background-position: -550px -176px -} - -.sbsprite-sugar_cane_generator_6 { - background-position: -572px -176px -} - -.sbsprite-sugar_cane_generator_5 { - background-position: -594px -176px -} - -.sbsprite-pet_skin_sheep_neon_blue { - background-position: -616px -176px -} - -.sbsprite-sugar_cane_generator_8 { - background-position: -638px -176px -} - -.sbsprite-sugar_cane_generator_7 { - background-position: -660px -176px -} - -.sbsprite-sugar_cane_generator_2 { - background-position: -682px -176px -} - -.sbsprite-sugar_cane_generator_1 { - background-position: -704px -176px -} - -.sbsprite-cauldron { - background-position: -726px -176px -} - -.sbsprite-sugar_cane_generator_4 { - background-position: -748px -176px -} - -.sbsprite-sugar_cane_generator_3 { - background-position: -770px -176px -} - -.sbsprite-wheat_island_crystal { - background-position: -792px -176px -} - -.sbsprite-boss_collection_scarf { - background-position: -814px -176px -} - -.sbsprite-deep_sea_orb { - background-position: -836px -176px -} - -.sbsprite-pet_skin_elephant_red { - background-position: -858px -176px -} - -.sbsprite-pink_large_backpack { - background-position: -880px -176px -} - -.sbsprite-gemstone_collection { - background-position: -902px -176px -} - -.sbsprite-carpentry_bench { - background-position: -924px -176px -} - -.sbsprite-pet_skin_wolf_henzo_doggo { - background-position: -946px -176px -} - -.sbsprite-sloth_11 { - background-position: -968px -176px -} - -.sbsprite-sloth_10 { - background-position: -990px -176px -} - -.sbsprite-vampire_mask { - background-position: -1012px -176px -} - -.sbsprite-reindeer_personality { - background-position: -1034px -176px -} - -.sbsprite-minos_hunter_helmet { - background-position: 0 -198px -} - -.sbsprite-catacombs_2 { - background-position: -22px -198px -} - -.sbsprite-catacombs_3 { - background-position: -44px -198px -} - -.sbsprite-catacombs_1 { - background-position: -66px -198px -} - -.sbsprite-catacombs_6 { - background-position: -88px -198px -} - -.sbsprite-small_runes_sack { - background-position: -110px -198px -} - -.sbsprite-catacombs_4 { - background-position: -132px -198px -} - -.sbsprite-catacombs_5 { - background-position: -154px -198px -} - -.sbsprite-clownfish_hat { - background-position: -176px -198px -} - -.sbsprite-fine_topaz_gem { - background-position: -198px -198px -} - -.sbsprite-beastmaster_crest_uncommon { - background-position: -220px -198px -} - -.sbsprite-superlite_motor { - background-position: -242px -198px -} - -.sbsprite-red_greater_backpack { - background-position: -264px -198px -} - -.sbsprite-hunter_ring { - background-position: -286px -198px -} - -.sbsprite-necromancer_brooch { - background-position: -308px -198px -} - -.sbsprite-spooky_shard { - background-position: -330px -198px -} - -.sbsprite-grey_medium_backpack { - background-position: -352px -198px -} - -.sbsprite-diamond_chest { - background-position: -374px -198px -} - -.sbsprite-slime_hat { - background-position: -396px -198px -} - -.sbsprite-hermit_crab_2 { - background-position: -418px -198px -} - -.sbsprite-enderman_cortex_rewriter { - background-position: -440px -198px -} - -.sbsprite-hermit_crab_1 { - background-position: -462px -198px -} - -.sbsprite-carrot_generator_11 { - background-position: -484px -198px -} - -.sbsprite-carrot_generator_12 { - background-position: -506px -198px -} - -.sbsprite-mushroom_generator_4 { - background-position: -528px -198px -} - -.sbsprite-carrot_generator_10 { - background-position: -550px -198px -} - -.sbsprite-mushroom_generator_3 { - background-position: -572px -198px -} - -.sbsprite-mushroom_generator_6 { - background-position: -594px -198px -} - -.sbsprite-mushroom_generator_5 { - background-position: -616px -198px -} - -.sbsprite-mushroom_generator_8 { - background-position: -638px -198px -} - -.sbsprite-mushroom_generator_7 { - background-position: -660px -198px -} - -.sbsprite-mushroom_generator_9 { - background-position: -682px -198px -} - -.sbsprite-diamond_professor_head { - background-position: -704px -198px -} - -.sbsprite-large_foraging_sack { - background-position: -726px -198px -} - -.sbsprite-robotron_reflector { - background-position: -748px -198px -} - -.sbsprite-wish_ultimate { - background-position: -770px -198px -} - -.sbsprite-tessellated_ender_pearl { - background-position: -792px -198px -} - -.sbsprite-pet_skin_sheep_red { - background-position: -814px -198px -} - -.sbsprite-spirit_decoy { - background-position: -836px -198px -} - -.sbsprite-stacked_pumpkins { - background-position: -858px -198px -} - -.sbsprite-medium_runes_sack { - background-position: -880px -198px -} - -.sbsprite-mushroom_generator_2 { - background-position: -902px -198px -} - -.sbsprite-young_dragon_helmet { - background-position: -924px -198px -} - -.sbsprite-mushroom_generator_1 { - background-position: -946px -198px -} - -.sbsprite-hermit_crab_6 { - background-position: -968px -198px -} - -.sbsprite-gravity_talisman { - background-position: -990px -198px -} - -.sbsprite-hermit_crab_5 { - background-position: -1012px -198px -} - -.sbsprite-hermit_crab_4 { - background-position: -1034px -198px -} - -.sbsprite-hermit_crab_3 { - background-position: 0 -220px -} - -.sbsprite-melon_10 { - background-position: -22px -220px -} - -.sbsprite-party_time_event { - background-position: -44px -220px -} - -.sbsprite-grinch_10 { - background-position: -66px -220px -} - -.sbsprite-melon_11 { - background-position: -88px -220px -} - -.sbsprite-hermit_crab_9 { - background-position: -110px -220px -} - -.sbsprite-hermit_crab_8 { - background-position: -132px -220px -} - -.sbsprite-grinch_11 { - background-position: -154px -220px -} - -.sbsprite-hermit_crab_7 { - background-position: -176px -220px -} - -.sbsprite-flower_generator_10 { - background-position: -198px -220px -} - -.sbsprite-race_giant_mushroom { - background-position: -220px -220px -} - -.sbsprite-flower_generator_11 { - background-position: -242px -220px -} - -.sbsprite-flower_generator_12 { - background-position: -264px -220px -} - -.sbsprite-redstone_chest { - background-position: -286px -220px -} - -.sbsprite-undead_catalyst { - background-position: -308px -220px -} - -.sbsprite-master_skull_tier_7 { - background-position: -330px -220px -} - -.sbsprite-reindeer_9 { - background-position: -352px -220px -} - -.sbsprite-master_skull_tier_6 { - background-position: -374px -220px -} - -.sbsprite-rune_slimy { - background-position: -396px -220px -} - -.sbsprite-master_skull_tier_9 { - background-position: -418px -220px -} - -.sbsprite-medium_shelves { - background-position: -440px -220px -} - -.sbsprite-master_skull_tier_8 { - background-position: -462px -220px -} - -.sbsprite-plasmaflux_power_orb { - background-position: -484px -220px -} - -.sbsprite-adaptive_helmet { - background-position: -506px -220px -} - -.sbsprite-pet_skin_endermite_radiant { - background-position: -528px -220px -} - -.sbsprite-master_skull_tier_1 { - background-position: -550px -220px -} - -.sbsprite-master_skull_tier_3 { - background-position: -572px -220px -} - -.sbsprite-oil_barrel { - background-position: -594px -220px -} - -.sbsprite-master_skull_tier_2 { - background-position: -616px -220px -} - -.sbsprite-master_skull_tier_5 { - background-position: -638px -220px -} - -.sbsprite-master_skull_tier_4 { - background-position: -660px -220px -} - -.sbsprite-pet_skin_guardian { - background-position: -682px -220px -} - -.sbsprite-flawless_jade_gem { - background-position: -704px -220px -} - -.sbsprite-survivor_cube { - background-position: -726px -220px -} - -.sbsprite-undead_2 { - background-position: -748px -220px -} - -.sbsprite-undead_3 { - background-position: -770px -220px -} - -.sbsprite-undead_4 { - background-position: -792px -220px -} - -.sbsprite-undead_5 { - background-position: -814px -220px -} - -.sbsprite-undead_6 { - background-position: -836px -220px -} - -.sbsprite-undead_7 { - background-position: -858px -220px -} - -.sbsprite-undead_8 { - background-position: -880px -220px -} - -.sbsprite-undead_9 { - background-position: -902px -220px -} - -.sbsprite-enchanted_book_bundle_vicious { - background-position: -924px -220px -} - -.sbsprite-endstone_chest { - background-position: -946px -220px -} - -.sbsprite-titanium_fuel_tank { - background-position: -968px -220px -} - -.sbsprite-golden_ball { - background-position: -990px -220px -} - -.sbsprite-undead_1 { - background-position: -1012px -220px -} - -.sbsprite-happy_emoji_5 { - background-position: -1034px -220px -} - -.sbsprite-reindeer_1 { - background-position: 0 -242px -} - -.sbsprite-warden_heart { - background-position: -22px -242px -} - -.sbsprite-happy_emoji_4 { - background-position: -44px -242px -} - -.sbsprite-reindeer_2 { - background-position: -66px -242px -} - -.sbsprite-happy_emoji_7 { - background-position: -88px -242px -} - -.sbsprite-reindeer_3 { - background-position: -110px -242px -} - -.sbsprite-happy_emoji_6 { - background-position: -132px -242px -} - -.sbsprite-kalhuiki_mask { - background-position: -154px -242px -} - -.sbsprite-reindeer_4 { - background-position: -176px -242px -} - -.sbsprite-happy_emoji_1 { - background-position: -198px -242px -} - -.sbsprite-reindeer_5 { - background-position: -220px -242px -} - -.sbsprite-reindeer_6 { - background-position: -242px -242px -} - -.sbsprite-happy_emoji_3 { - background-position: -264px -242px -} - -.sbsprite-reindeer_7 { - background-position: -286px -242px -} - -.sbsprite-happy_emoji_2 { - background-position: -308px -242px -} - -.sbsprite-reindeer_8 { - background-position: -330px -242px -} - -.sbsprite-happy_emoji_9 { - background-position: -352px -242px -} - -.sbsprite-festive_skeleton_personality { - background-position: -374px -242px -} - -.sbsprite-happy_emoji_8 { - background-position: -396px -242px -} - -.sbsprite-mimic_fragment { - background-position: -418px -242px -} - -.sbsprite-pet_skin_parrot_gold_macaw { - background-position: -440px -242px -} - -.sbsprite-mithril_drill_engine { - background-position: -462px -242px -} - -.sbsprite-titan_helmet { - background-position: -484px -242px -} - -.sbsprite-warden_helmet { - background-position: -506px -242px -} - -.sbsprite-nether_wart_pouch { - background-position: -528px -242px -} - -.sbsprite-red_nose { - background-position: -550px -242px -} - -.sbsprite-emerald_generator_12 { - background-position: -572px -242px -} - -.sbsprite-farming_1_portal { - background-position: -594px -242px -} - -.sbsprite-pet_skin_horse_zombie { - background-position: -616px -242px -} - -.sbsprite-devour_ring { - background-position: -638px -242px -} - -.sbsprite-mining_1_portal { - background-position: -660px -242px -} - -.sbsprite-builder_lilac_fruit { - background-position: -682px -242px -} - -.sbsprite-diamond_livid_head { - background-position: -704px -242px -} - -.sbsprite-fast_travel_dungeon_hub { - background-position: -726px -242px -} - -.sbsprite-emerald_generator_10 { - background-position: -748px -242px -} - -.sbsprite-emerald_generator_11 { - background-position: -770px -242px -} - -.sbsprite-bestiary_catacombs { - background-position: -792px -242px -} - -.sbsprite-fine_amber_gem { - background-position: -814px -242px -} - -.sbsprite-beach_ball_personality { - background-position: -836px -242px -} - -.sbsprite-cow_generator_11 { - background-position: -858px -242px -} - -.sbsprite-cow_generator_12 { - background-position: -880px -242px -} - -.sbsprite-mummy_personality { - background-position: -902px -242px -} - -.sbsprite-rune_wet { - background-position: -924px -242px -} - -.sbsprite-jumbo_backpack_upgrade { - background-position: -946px -242px -} - -.sbsprite-shadow_assassin_admiral { - background-position: -968px -242px -} - -.sbsprite-beating_heart { - background-position: -990px -242px -} - -.sbsprite-giant_tooth { - background-position: -1012px -242px -} - -.sbsprite-black_large_backpack { - background-position: -1034px -242px -} - -.sbsprite-corleonite { - background-position: 0 -264px -} - -.sbsprite-magma_cube_generator_1 { - background-position: -22px -264px -} - -.sbsprite-magma_cube_generator_5 { - background-position: -44px -264px -} - -.sbsprite-gold_candy { - background-position: -66px -264px -} - -.sbsprite-magma_cube_generator_4 { - background-position: -88px -264px -} - -.sbsprite-magma_cube_generator_3 { - background-position: -110px -264px -} - -.sbsprite-magma_cube_generator_2 { - background-position: -132px -264px -} - -.sbsprite-magma_cube_generator_9 { - background-position: -154px -264px -} - -.sbsprite-dining_table { - background-position: -176px -264px -} - -.sbsprite-magma_cube_generator_8 { - background-position: -198px -264px -} - -.sbsprite-magma_cube_generator_7 { - background-position: -220px -264px -} - -.sbsprite-magma_cube_generator_6 { - background-position: -242px -264px -} - -.sbsprite-sadan_brooch { - background-position: -264px -264px -} - -.sbsprite-birch_generator_11 { - background-position: -286px -264px -} - -.sbsprite-birch_generator_10 { - background-position: -308px -264px -} - -.sbsprite-strong_dragon_helmet { - background-position: -330px -264px -} - -.sbsprite-greater_enchanted_chest_upgrade { - background-position: -352px -264px -} - -.sbsprite-pink_frosted_donut_11 { - background-position: -374px -264px -} - -.sbsprite-molten_cube { - background-position: -396px -264px -} - -.sbsprite-pink_frosted_donut_10 { - background-position: -418px -264px -} - -.sbsprite-ultimate_carrot_candy_upgrade { - background-position: -440px -264px -} - -.sbsprite-old_baby { - background-position: -462px -264px -} - -.sbsprite-coin_lapis { - background-position: -484px -264px -} - -.sbsprite-superior_shimmer { - background-position: -506px -264px -} - -.sbsprite-diver_fragment { - background-position: -528px -264px -} - -.sbsprite-blue_greater_backpack { - background-position: -550px -264px -} - -.sbsprite-piggy_bank { - background-position: -572px -264px -} - -.sbsprite-flawed_jade_gem { - background-position: -594px -264px -} - -.sbsprite-dungeon_boss_key { - background-position: -616px -264px -} - -.sbsprite-spider_catalyst { - background-position: -638px -264px -} - -.sbsprite-shark_scale_helmet { - background-position: -660px -264px -} - -.sbsprite-ghost_book { - background-position: -682px -264px -} - -.sbsprite-titanium_alloy { - background-position: -704px -264px -} - -.sbsprite-pet_skin_enderman_slayer { - background-position: -726px -264px -} - -.sbsprite-hegemony_artifact { - background-position: -748px -264px -} - -.sbsprite-potion_affinity_talisman { - background-position: -770px -264px -} - -.sbsprite-trick_or_treat_bag { - background-position: -792px -264px -} - -.sbsprite-fake_gold_ring { - background-position: -814px -264px -} - -.sbsprite-dr_paper { - background-position: -836px -264px -} - -.sbsprite-fuel_tank { - background-position: -858px -264px -} - -.sbsprite-rough_amethyst_gem { - background-position: -880px -264px -} - -.sbsprite-flawless_sapphire_gem { - background-position: -902px -264px -} - -.sbsprite-pink_small_backpack { - background-position: -924px -264px -} - -.sbsprite-cow_generator_10 { - background-position: -946px -264px -} - -.sbsprite-mithril_infusion { - background-position: -968px -264px -} - -.sbsprite-beastmaster_crest_common { - background-position: -990px -264px -} - -.sbsprite-shiny_relic { - background-position: -1012px -264px -} - -.sbsprite-concentrated_stone { - background-position: -1034px -264px -} - -.sbsprite-sloth_personality { - background-position: 0 -286px -} - -.sbsprite-stocking { - background-position: -22px -286px -} - -.sbsprite-egg_pile { - background-position: -44px -286px -} - -.sbsprite-blessing_of_wisdom { - background-position: -66px -286px -} - -.sbsprite-happy_snowman { - background-position: -88px -286px -} - -.sbsprite-gingerbread_10 { - background-position: -110px -286px -} - -.sbsprite-gingerbread_11 { - background-position: -132px -286px -} - -.sbsprite-diamond_generator_11 { - background-position: -154px -286px -} - -.sbsprite-diamond_generator_10 { - background-position: -176px -286px -} - -.sbsprite-medium_backpack { - background-position: -198px -286px -} - -.sbsprite-rune_white_spiral { - background-position: -220px -286px -} - -.sbsprite-diamond_generator_12 { - background-position: -242px -286px -} - -.sbsprite-blacksmith_plus { - background-position: -264px -286px -} - -.sbsprite-light_blue_greater_backpack { - background-position: -286px -286px -} - -.sbsprite-watcher_eye { - background-position: -308px -286px -} - -.sbsprite-pet_skin_silverfish { - background-position: -330px -286px -} - -.sbsprite-rough_ruby_gem { - background-position: -352px -286px -} - -.sbsprite-fine_amethyst_gem { - background-position: -374px -286px -} - -.sbsprite-flawed_topaz_gem { - background-position: -396px -286px -} - -.sbsprite-spirit_bone { - background-position: -418px -286px -} - -.sbsprite-snow_blaster { - background-position: -440px -286px -} - -.sbsprite-unknown_item { - background-position: -462px -286px -} - -.sbsprite-spider_essence { - background-position: -484px -286px -} - -.sbsprite-light_bait { - background-position: -506px -286px -} - -.sbsprite-beastmaster_crest_legendary { - background-position: -528px -286px -} - -.sbsprite-mayor_diana { - background-position: -550px -286px -} - -.sbsprite-enchanted_jack_o_lantern { - background-position: -572px -286px -} - -.sbsprite-medium_foraging_sack { - background-position: -594px -286px -} - -.sbsprite-emerald_chest { - background-position: -616px -286px -} - -.sbsprite-carrot_generator_6 { - background-position: -638px -286px -} - -.sbsprite-reindeer_11 { - background-position: -660px -286px -} - -.sbsprite-carrot_generator_7 { - background-position: -682px -286px -} - -.sbsprite-reindeer_10 { - background-position: -704px -286px -} - -.sbsprite-carrot_generator_4 { - background-position: -726px -286px -} - -.sbsprite-carrot_generator_5 { - background-position: -748px -286px -} - -.sbsprite-carrot_generator_2 { - background-position: -770px -286px -} - -.sbsprite-carrot_generator_3 { - background-position: -792px -286px -} - -.sbsprite-carrot_generator_1 { - background-position: -814px -286px -} - -.sbsprite-carrot_generator_8 { - background-position: -836px -286px -} - -.sbsprite-dragon_scale { - background-position: -858px -286px -} - -.sbsprite-carrot_generator_9 { - background-position: -880px -286px -} - -.sbsprite-protector_dragon_helmet { - background-position: -902px -286px -} - -.sbsprite-rune_hearts { - background-position: -924px -286px -} - -.sbsprite-pet_skin_sheep_magenta { - background-position: -946px -286px -} - -.sbsprite-shadow_assassin_helmet { - background-position: -968px -286px -} - -.sbsprite-gemstone_gauntlet_gold { - background-position: -990px -286px -} - -.sbsprite-lucky_dice { - background-position: -1012px -286px -} - -.sbsprite-wolf_ring { - background-position: -1034px -286px -} - -.sbsprite-haunt_ability { - background-position: 0 -308px -} - -.sbsprite-undead_essence { - background-position: -22px -308px -} - -.sbsprite-bitter_ice_tea { - background-position: -44px -308px -} - -.sbsprite-beastmaster_crest_rare { - background-position: -66px -308px -} - -.sbsprite-enchanted_titanium { - background-position: -88px -308px -} - -.sbsprite-red_claw_talisman { - background-position: -110px -308px -} - -.sbsprite-intimidation_talisman { - background-position: -132px -308px -} - -.sbsprite-ice_bait { - background-position: -154px -308px -} - -.sbsprite-empty_soda_can { - background-position: -176px -308px -} - -.sbsprite-jerry_candy { - background-position: -198px -308px -} - -.sbsprite-ghast_generator_3 { - background-position: -220px -308px -} - -.sbsprite-fancy_flower_pot { - background-position: -242px -308px -} - -.sbsprite-ghast_generator_2 { - background-position: -264px -308px -} - -.sbsprite-cyan_greater_backpack { - background-position: -286px -308px -} - -.sbsprite-ghast_generator_5 { - background-position: -308px -308px -} - -.sbsprite-ghast_generator_4 { - background-position: -330px -308px -} - -.sbsprite-ghast_generator_7 { - background-position: -352px -308px -} - -.sbsprite-cold_ones { - background-position: -374px -308px -} - -.sbsprite-ghast_generator_6 { - background-position: -396px -308px -} - -.sbsprite-mega_jerry_lure { - background-position: -418px -308px -} - -.sbsprite-ghast_generator_9 { - background-position: -440px -308px -} - -.sbsprite-rune_smokey { - background-position: -462px -308px -} - -.sbsprite-ghast_generator_8 { - background-position: -484px -308px -} - -.sbsprite-healer_dungeon_ability_2 { - background-position: -506px -308px -} - -.sbsprite-healer_dungeon_ability_3 { - background-position: -528px -308px -} - -.sbsprite-ghast_generator_1 { - background-position: -550px -308px -} - -.sbsprite-brown_medium_backpack { - background-position: -572px -308px -} - -.sbsprite-healer_dungeon_ability_1 { - background-position: -594px -308px -} - -.sbsprite-ice_cream_2 { - background-position: -616px -308px -} - -.sbsprite-ice_cream_1 { - background-position: -638px -308px -} - -.sbsprite-ice_cream_4 { - background-position: -660px -308px -} - -.sbsprite-ice_cream_3 { - background-position: -682px -308px -} - -.sbsprite-ice_cream_6 { - background-position: -704px -308px -} - -.sbsprite-ice_cream_5 { - background-position: -726px -308px -} - -.sbsprite-ice_cream_8 { - background-position: -748px -308px -} - -.sbsprite-ice_cream_7 { - background-position: -770px -308px -} - -.sbsprite-ice_cream_9 { - background-position: -792px -308px -} - -.sbsprite-ice_cream_10 { - background-position: -814px -308px -} - -.sbsprite-ice_cream_11 { - background-position: -836px -308px -} - -.sbsprite-coin_iron { - background-position: -858px -308px -} - -.sbsprite-chewed_gum { - background-position: -880px -308px -} - -.sbsprite-training_weights { - background-position: -902px -308px -} - -.sbsprite-orange_large_backpack { - background-position: -924px -308px -} - -.sbsprite-campfire_talisman_24 { - background-position: -946px -308px -} - -.sbsprite-campfire_talisman_25 { - background-position: -968px -308px -} - -.sbsprite-campfire_talisman_26 { - background-position: -990px -308px -} - -.sbsprite-campfire_talisman_27 { - background-position: -1012px -308px -} - -.sbsprite-campfire_talisman_28 { - background-position: -1034px -308px -} - -.sbsprite-campfire_talisman_29 { - background-position: 0 -330px -} - -.sbsprite-candle_table { - background-position: -22px -330px -} - -.sbsprite-jingle_bells { - background-position: -44px -330px -} - -.sbsprite-lynx_talisman { - background-position: -66px -330px -} - -.sbsprite-campfire_talisman_20 { - background-position: -88px -330px -} - -.sbsprite-campfire_talisman_21 { - background-position: -110px -330px -} - -.sbsprite-campfire_talisman_22 { - background-position: -132px -330px -} - -.sbsprite-campfire_talisman_23 { - background-position: -154px -330px -} - -.sbsprite-perfect_ruby_gem { - background-position: -176px -330px -} - -.sbsprite-pet_skin_megalodon_baby { - background-position: -198px -330px -} - -.sbsprite-jungle_amulet { - background-position: -220px -330px -} - -.sbsprite-reaper_mask { - background-position: -242px -330px -} - -.sbsprite-enchanting_plus { - background-position: -264px -330px -} - -.sbsprite-catacombs_expert_ring { - background-position: -286px -330px -} - -.sbsprite-ice_knight_statue { - background-position: -308px -330px -} - -.sbsprite-bits_talisman { - background-position: -330px -330px -} - -.sbsprite-dark_orb { - background-position: -352px -330px -} - -.sbsprite-blessing_of_power { - background-position: -374px -330px -} - -.sbsprite-beastmaster_crest_epic { - background-position: -396px -330px -} - -.sbsprite-bulky_stone { - background-position: -418px -330px -} - -.sbsprite-yellow_small_backpack { - background-position: -440px -330px -} - -.sbsprite-small_potion_bag { - background-position: -462px -330px -} - -.sbsprite-green_jumbo_backpack { - background-position: -484px -330px -} - -.sbsprite-zombie_heart { - background-position: -506px -330px -} - -.sbsprite-pet_skin_black_cat_ivory { - background-position: -528px -330px -} - -.sbsprite-titanium_relic { - background-position: -550px -330px -} - -.sbsprite-fast_travel_jungle { - background-position: -572px -330px -} - -.sbsprite-pet_skin_rabbit { - background-position: -594px -330px -} - -.sbsprite-enderman_mask { - background-position: -616px -330px -} - -.sbsprite-perfect_amethyst_gem { - background-position: -638px -330px -} - -.sbsprite-boss_collection_sadan { - background-position: -660px -330px -} - -.sbsprite-blessing_of_stone { - background-position: -682px -330px -} - -.sbsprite-master_catacombs_pass_0 { - background-position: -704px -330px -} - -.sbsprite-snowman { - background-position: -726px -330px -} - -.sbsprite-candy_the_fish { - background-position: -748px -330px -} - -.sbsprite-gold_chest { - background-position: -770px -330px -} - -.sbsprite-master_catacombs_pass_6 { - background-position: -792px -330px -} - -.sbsprite-master_catacombs_pass_5 { - background-position: -814px -330px -} - -.sbsprite-master_catacombs_pass_8 { - background-position: -836px -330px -} - -.sbsprite-master_catacombs_pass_7 { - background-position: -858px -330px -} - -.sbsprite-master_catacombs_pass_2 { - background-position: -880px -330px -} - -.sbsprite-master_catacombs_pass_1 { - background-position: -902px -330px -} - -.sbsprite-master_catacombs_pass_4 { - background-position: -924px -330px -} - -.sbsprite-master_catacombs_pass_3 { - background-position: -946px -330px -} - -.sbsprite-candy_bowl { - background-position: -968px -330px -} - -.sbsprite-large_talisman_bag { - background-position: -990px -330px -} - -.sbsprite-secret_dungeon_redstone_key { - background-position: -1012px -330px -} - -.sbsprite-knockoff_cola { - background-position: -1034px -330px -} - -.sbsprite-grinch_2 { - background-position: 0 -352px -} - -.sbsprite-grinch_3 { - background-position: -22px -352px -} - -.sbsprite-grinch_4 { - background-position: -44px -352px -} - -.sbsprite-personal_bank_item { - background-position: -66px -352px -} - -.sbsprite-grinch_5 { - background-position: -88px -352px -} - -.sbsprite-grinch_6 { - background-position: -110px -352px -} - -.sbsprite-blessing_of_time { - background-position: -132px -352px -} - -.sbsprite-grinch_7 { - background-position: -154px -352px -} - -.sbsprite-grinch_8 { - background-position: -176px -352px -} - -.sbsprite-grinch_9 { - background-position: -198px -352px -} - -.sbsprite-crit_damage { - background-position: -220px -352px -} - -.sbsprite-grinch_1 { - background-position: -242px -352px -} - -.sbsprite-bunny_4 { - background-position: -264px -352px -} - -.sbsprite-bunny_3 { - background-position: -286px -352px -} - -.sbsprite-the_watchers_head { - background-position: -308px -352px -} - -.sbsprite-bunny_2 { - background-position: -330px -352px -} - -.sbsprite-bunny_1 { - background-position: -352px -352px -} - -.sbsprite-bunny_8 { - background-position: -374px -352px -} - -.sbsprite-bunny_7 { - background-position: -396px -352px -} - -.sbsprite-master_catacombs_pass_9 { - background-position: -418px -352px -} - -.sbsprite-bat_person_helmet { - background-position: -440px -352px -} - -.sbsprite-bunny_6 { - background-position: -462px -352px -} - -.sbsprite-bunny_5 { - background-position: -484px -352px -} - -.sbsprite-refined_amber { - background-position: -506px -352px -} - -.sbsprite-pet_skin_rock_derp { - background-position: -528px -352px -} - -.sbsprite-pet_skin_sheep_gray { - background-position: -550px -352px -} - -.sbsprite-flawed_amber_gem { - background-position: -572px -352px -} - -.sbsprite-pumpkin_11 { - background-position: -594px -352px -} - -.sbsprite-pumpkin_10 { - background-position: -616px -352px -} - -.sbsprite-white_small_backpack { - background-position: -638px -352px -} - -.sbsprite-blaze_hat { - background-position: -660px -352px -} - -.sbsprite-woodcutting_crystal { - background-position: -682px -352px -} - -.sbsprite-bunny_9 { - background-position: -704px -352px -} - -.sbsprite-roofed_forest_island { - background-position: -726px -352px -} - -.sbsprite-campfire_talisman_13 { - background-position: -748px -352px -} - -.sbsprite-campfire_talisman_14 { - background-position: -770px -352px -} - -.sbsprite-rune_lava { - background-position: -792px -352px -} - -.sbsprite-campfire_talisman_15 { - background-position: -814px -352px -} - -.sbsprite-campfire_talisman_16 { - background-position: -836px -352px -} - -.sbsprite-campfire_talisman_17 { - background-position: -858px -352px -} - -.sbsprite-campfire_talisman_18 { - background-position: -880px -352px -} - -.sbsprite-golden_dante_statue { - background-position: -902px -352px -} - -.sbsprite-campfire_talisman_19 { - background-position: -924px -352px -} - -.sbsprite-foraging_4_portal { - background-position: -946px -352px -} - -.sbsprite-new_year_cake_bag { - background-position: -968px -352px -} - -.sbsprite-santa_personality { - background-position: -990px -352px -} - -.sbsprite-campfire_talisman_10 { - background-position: -1012px -352px -} - -.sbsprite-campfire_talisman_11 { - background-position: -1034px -352px -} - -.sbsprite-campfire_talisman_12 { - background-position: 0 -374px -} - -.sbsprite-jerry_stone { - background-position: -22px -374px -} - -.sbsprite-cyclops_personality { - background-position: -44px -374px -} - -.sbsprite-desert_island_crystal { - background-position: -66px -374px -} - -.sbsprite-happy_emoji_personality { - background-position: -88px -374px -} - -.sbsprite-rough_sapphire_gem { - background-position: -110px -374px -} - -.sbsprite-fallen_star_hat { - background-position: -132px -374px -} - -.sbsprite-blaze_generator_10 { - background-position: -154px -374px -} - -.sbsprite-blaze_generator_11 { - background-position: -176px -374px -} - -.sbsprite-goblin_omelette_blue_cheese { - background-position: -198px -374px -} - -.sbsprite-treasure_artifact { - background-position: -220px -374px -} - -.sbsprite-hermit_crab_personality { - background-position: -242px -374px -} - -.sbsprite-orange { - background-position: -264px -374px -} - -.sbsprite-pond_island { - background-position: -286px -374px -} - -.sbsprite-fast_travel_void { - background-position: -308px -374px -} - -.sbsprite-transmission_tuner { - background-position: -330px -374px -} - -.sbsprite-bestiary_the_end { - background-position: -352px -374px -} - -.sbsprite-danger_1_portal { - background-position: -374px -374px -} - -.sbsprite-pink_jumbo_backpack { - background-position: -396px -374px -} - -.sbsprite-sea_walker_helmet { - background-position: -418px -374px -} - -.sbsprite-wise_fragment { - background-position: -440px -374px -} - -.sbsprite-jerry_talisman_golden { - background-position: -462px -374px -} - -.sbsprite-superior_baby { - background-position: -484px -374px -} - -.sbsprite-flower_bed { - background-position: -506px -374px -} - -.sbsprite-cactus_generator_1 { - background-position: -528px -374px -} - -.sbsprite-endstone_geode { - background-position: -550px -374px -} - -.sbsprite-holy_baby { - background-position: -572px -374px -} - -.sbsprite-cactus_generator_3 { - background-position: -594px -374px -} - -.sbsprite-cactus_generator_2 { - background-position: -616px -374px -} - -.sbsprite-cactus_generator_5 { - background-position: -638px -374px -} - -.sbsprite-cactus_generator_4 { - background-position: -660px -374px -} - -.sbsprite-cactus_generator_7 { - background-position: -682px -374px -} - -.sbsprite-cactus_generator_6 { - background-position: -704px -374px -} - -.sbsprite-cactus_generator_9 { - background-position: -726px -374px -} - -.sbsprite-protector_shimmer { - background-position: -748px -374px -} - -.sbsprite-cactus_generator_8 { - background-position: -770px -374px -} - -.sbsprite-rune_sparkling { - background-position: -792px -374px -} - -.sbsprite-bingo_ring { - background-position: -814px -374px -} - -.sbsprite-griffin_upgrade_stone_rare { - background-position: -836px -374px -} - -.sbsprite-chick_nest { - background-position: -858px -374px -} - -.sbsprite-solved_prism { - background-position: -880px -374px -} - -.sbsprite-king_talisman { - background-position: -902px -374px -} - -.sbsprite-treasure_ring { - background-position: -924px -374px -} - -.sbsprite-black_medium_backpack { - background-position: -946px -374px -} - -.sbsprite-surfboard { - background-position: -968px -374px -} - -.sbsprite-mithril_fuel_tank { - background-position: -990px -374px -} - -.sbsprite-fast_travel_home { - background-position: -1012px -374px -} - -.sbsprite-water_trough { - background-position: -1034px -374px -} - -.sbsprite-mayor_dante { - background-position: 0 -396px -} - -.sbsprite-cheese_fuel { - background-position: -22px -396px -} - -.sbsprite-pet_skin_lion_lioness { - background-position: -44px -396px -} - -.sbsprite-pink_bunny_personality { - background-position: -66px -396px -} - -.sbsprite-goldor_the_fish { - background-position: -88px -396px -} - -.sbsprite-speed_wither_helmet { - background-position: -110px -396px -} - -.sbsprite-pink_medium_backpack { - background-position: -132px -396px -} - -.sbsprite-mayor_derpy { - background-position: -154px -396px -} - -.sbsprite-talisman_enrichment_health { - background-position: -176px -396px -} - -.sbsprite-enderpack { - background-position: -198px -396px -} - -.sbsprite-pet_skin_rock_thinking { - background-position: -220px -396px -} - -.sbsprite-soul_fragment { - background-position: -242px -396px -} - -.sbsprite-skyblock_chair { - background-position: -264px -396px -} - -.sbsprite-mayor_paul { - background-position: -286px -396px -} - -.sbsprite-autopet_rules_2 { - background-position: -308px -396px -} - -.sbsprite-bat_talisman { - background-position: -330px -396px -} - -.sbsprite-killer_4 { - background-position: -352px -396px -} - -.sbsprite-killer_5 { - background-position: -374px -396px -} - -.sbsprite-killer_6 { - background-position: -396px -396px -} - -.sbsprite-killer_7 { - background-position: -418px -396px -} - -.sbsprite-killer_8 { - background-position: -440px -396px -} - -.sbsprite-killer_9 { - background-position: -462px -396px -} - -.sbsprite-builder_appalled_pumpkin { - background-position: -484px -396px -} - -.sbsprite-holy_shimmer { - background-position: -506px -396px -} - -.sbsprite-royal_pigeon { - background-position: -528px -396px -} - -.sbsprite-life_preserver { - background-position: -550px -396px -} - -.sbsprite-killer_1 { - background-position: -572px -396px -} - -.sbsprite-killer_2 { - background-position: -594px -396px -} - -.sbsprite-killer_3 { - background-position: -616px -396px -} - -.sbsprite-pet_skin_rock_cool { - background-position: -638px -396px -} - -.sbsprite-dingy { - background-position: -660px -396px -} - -.sbsprite-intimidation_ring { - background-position: -682px -396px -} - -.sbsprite-easter_egg_6 { - background-position: -704px -396px -} - -.sbsprite-builder_kiwi { - background-position: -726px -396px -} - -.sbsprite-easter_egg_5 { - background-position: -748px -396px -} - -.sbsprite-easter_egg_4 { - background-position: -770px -396px -} - -.sbsprite-rough_jade_gem { - background-position: -792px -396px -} - -.sbsprite-easter_egg_3 { - background-position: -814px -396px -} - -.sbsprite-easter_egg_2 { - background-position: -836px -396px -} - -.sbsprite-easter_egg_1 { - background-position: -858px -396px -} - -.sbsprite-snow_generator_11 { - background-position: -880px -396px -} - -.sbsprite-snow_generator_10 { - background-position: -902px -396px -} - -.sbsprite-easter_egg_9 { - background-position: -924px -396px -} - -.sbsprite-easter_egg_8 { - background-position: -946px -396px -} - -.sbsprite-easter_egg_7 { - background-position: -968px -396px -} - -.sbsprite-medium_gemstone_sack { - background-position: -990px -396px -} - -.sbsprite-large_enchanted_agronomy_sack { - background-position: -1012px -396px -} - -.sbsprite-blessed_fruit { - background-position: -1034px -396px -} - -.sbsprite-dungeon_stone_archer { - background-position: 0 -418px -} - -.sbsprite-arrow_swapper { - background-position: -22px -418px -} - -.sbsprite-snow_cannon { - background-position: -44px -418px -} - -.sbsprite-jerry_box_mega { - background-position: -66px -418px -} - -.sbsprite-pet_skin_sheep_brown { - background-position: -88px -418px -} - -.sbsprite-brewing_plus { - background-position: -110px -418px -} - -.sbsprite-mayor_barry { - background-position: -132px -418px -} - -.sbsprite-bat_ring { - background-position: -154px -418px -} - -.sbsprite-candle_arch { - background-position: -176px -418px -} - -.sbsprite-mithril_plate { - background-position: -198px -418px -} - -.sbsprite-carrot_bait { - background-position: -220px -418px -} - -.sbsprite-speed_artifact { - background-position: -242px -418px -} - -.sbsprite-salmon_hat { - background-position: -264px -418px -} - -.sbsprite-mini_sandcastle { - background-position: -286px -418px -} - -.sbsprite-scavenger_talisman { - background-position: -308px -418px -} - -.sbsprite-fast_travel_kuudra { - background-position: -330px -418px -} - -.sbsprite-foraging_fortune { - background-position: -352px -418px -} - -.sbsprite-bunny_personality { - background-position: -374px -418px -} - -.sbsprite-sandcastle_personality { - background-position: -396px -418px -} - -.sbsprite-undead_11 { - background-position: -418px -418px -} - -.sbsprite-magenta_jumbo_backpack { - background-position: -440px -418px -} - -.sbsprite-undead_10 { - background-position: -462px -418px -} - -.sbsprite-diamond_necron_head { - background-position: -484px -418px -} - -.sbsprite-wet_pumpkin { - background-position: -506px -418px -} - -.sbsprite-gemstone_gauntlet { - background-position: -528px -418px -} - -.sbsprite-cobblestone_generator_9 { - background-position: -550px -418px -} - -.sbsprite-cobblestone_generator_8 { - background-position: -572px -418px -} - -.sbsprite-iron_generator_1 { - background-position: -594px -418px -} - -.sbsprite-cobblestone_generator_7 { - background-position: -616px -418px -} - -.sbsprite-control_switch { - background-position: -638px -418px -} - -.sbsprite-iron_generator_2 { - background-position: -660px -418px -} - -.sbsprite-cobblestone_generator_6 { - background-position: -682px -418px -} - -.sbsprite-pumpkin_bomb { - background-position: -704px -418px -} - -.sbsprite-cobblestone_generator_5 { - background-position: -726px -418px -} - -.sbsprite-cobblestone_generator_4 { - background-position: -748px -418px -} - -.sbsprite-dwarven_tankard { - background-position: -770px -418px -} - -.sbsprite-jerry_talisman_purple { - background-position: -792px -418px -} - -.sbsprite-cobblestone_generator_3 { - background-position: -814px -418px -} - -.sbsprite-cobblestone_generator_2 { - background-position: -836px -418px -} - -.sbsprite-reindeer_plush { - background-position: -858px -418px -} - -.sbsprite-cobblestone_generator_1 { - background-position: -880px -418px -} - -.sbsprite-big_xtree { - background-position: -902px -418px -} - -.sbsprite-farming_island { - background-position: -924px -418px -} - -.sbsprite-rune_endersnake { - background-position: -946px -418px -} - -.sbsprite-rune { - background-position: -968px -418px -} - -.sbsprite-sweet_flesh { - background-position: -990px -418px -} - -.sbsprite-shark_10 { - background-position: -1012px -418px -} - -.sbsprite-shark_12 { - background-position: -1034px -418px -} - -.sbsprite-viking_tear { - background-position: 0 -440px -} - -.sbsprite-shark_11 { - background-position: -22px -440px -} - -.sbsprite-iron_generator_7 { - background-position: -44px -440px -} - -.sbsprite-iron_generator_8 { - background-position: -66px -440px -} - -.sbsprite-iron_generator_9 { - background-position: -88px -440px -} - -.sbsprite-beacon_skull { - background-position: -110px -440px -} - -.sbsprite-coin_gold_2 { - background-position: -132px -440px -} - -.sbsprite-iron_generator_3 { - background-position: -154px -440px -} - -.sbsprite-iron_generator_4 { - background-position: -176px -440px -} - -.sbsprite-sea_creature_ring { - background-position: -198px -440px -} - -.sbsprite-iron_generator_5 { - background-position: -220px -440px -} - -.sbsprite-iron_generator_6 { - background-position: -242px -440px -} - -.sbsprite-nether_warts_generator_7 { - background-position: -264px -440px -} - -.sbsprite-nether_warts_generator_8 { - background-position: -286px -440px -} - -.sbsprite-nether_warts_generator_9 { - background-position: -308px -440px -} - -.sbsprite-nether_warts_generator_3 { - background-position: -330px -440px -} - -.sbsprite-wolf_fur_mixin { - background-position: -352px -440px -} - -.sbsprite-mayor_marina { - background-position: -374px -440px -} - -.sbsprite-candy_ring { - background-position: -396px -440px -} - -.sbsprite-nether_warts_generator_4 { - background-position: -418px -440px -} - -.sbsprite-nether_warts_generator_5 { - background-position: -440px -440px -} - -.sbsprite-nether_warts_generator_6 { - background-position: -462px -440px -} - -.sbsprite-large_backpack { - background-position: -484px -440px -} - -.sbsprite-fine_sapphire_gem { - background-position: -506px -440px -} - -.sbsprite-nether_warts_generator_1 { - background-position: -528px -440px -} - -.sbsprite-nether_warts_generator_2 { - background-position: -550px -440px -} - -.sbsprite-griffin_upgrade_stone_uncommon { - background-position: -572px -440px -} - -.sbsprite-grey_greater_backpack { - background-position: -594px -440px -} - -.sbsprite-shiny_orb { - background-position: -616px -440px -} - -.sbsprite-large_enchanted_husbandry_sack { - background-position: -638px -440px -} - -.sbsprite-milk_cookies { - background-position: -660px -440px -} - -.sbsprite-spider_artifact { - background-position: -682px -440px -} - -.sbsprite-green_gift { - background-position: -704px -440px -} - -.sbsprite-fast_travel_park { - background-position: -726px -440px -} - -.sbsprite-jungle_heart { - background-position: -748px -440px -} - -.sbsprite-toil_log { - background-position: -770px -440px -} - -.sbsprite-absolute_ender_pearl { - background-position: -792px -440px -} - -.sbsprite-catacombs_pass_10 { - background-position: -814px -440px -} - -.sbsprite-protector_fragment { - background-position: -836px -440px -} - -.sbsprite-ice_generator_1 { - background-position: -858px -440px -} - -.sbsprite-ice_generator_2 { - background-position: -880px -440px -} - -.sbsprite-old_fragment { - background-position: -902px -440px -} - -.sbsprite-ice_generator_3 { - background-position: -924px -440px -} - -.sbsprite-traveling_zoo { - background-position: -946px -440px -} - -.sbsprite-ice_generator_4 { - background-position: -968px -440px -} - -.sbsprite-ice_generator_5 { - background-position: -990px -440px -} - -.sbsprite-ice_generator_6 { - background-position: -1012px -440px -} - -.sbsprite-ice_generator_7 { - background-position: -1034px -440px -} - -.sbsprite-ice_generator_8 { - background-position: 0 -462px -} - -.sbsprite-ice_generator_9 { - background-position: -22px -462px -} - -.sbsprite-lady_bug_personality { - background-position: -44px -462px -} - -.sbsprite-pet_skin_rock_laugh { - background-position: -66px -462px -} - -.sbsprite-experimentation_table { - background-position: -88px -462px -} - -.sbsprite-titanium_ore { - background-position: -110px -462px -} - -.sbsprite-blue_medium_backpack { - background-position: -132px -462px -} - -.sbsprite-ice_sofa { - background-position: -154px -462px -} - -.sbsprite-rune_lightning { - background-position: -176px -462px -} - -.sbsprite-tarantula_talisman { - background-position: -198px -462px -} - -.sbsprite-mayor_aatrox { - background-position: -220px -462px -} - -.sbsprite-race_crystal_core { - background-position: -242px -462px -} - -.sbsprite-black_cat_plush { - background-position: -264px -462px -} - -.sbsprite-small_agronomy_sack { - background-position: -286px -462px -} - -.sbsprite-magenta_greater_backpack { - background-position: -308px -462px -} - -.sbsprite-pet_skin_sheep_light_gray { - background-position: -330px -462px -} - -.sbsprite-diamond_scarf_head { - background-position: -352px -462px -} - -.sbsprite-hay_bed { - background-position: -374px -462px -} - -.sbsprite-talisman_enrichment_sea_creature_chance { - background-position: -396px -462px -} - -.sbsprite-strong_shimmer { - background-position: -418px -462px -} - -.sbsprite-shady_ring { - background-position: -440px -462px -} - -.sbsprite-dante_talisman { - background-position: -462px -462px -} - -.sbsprite-pink_bunny_1 { - background-position: -484px -462px -} - -.sbsprite-black_greater_backpack { - background-position: -506px -462px -} - -.sbsprite-builder_cactus { - background-position: -528px -462px -} - -.sbsprite-magenta_small_backpack { - background-position: -550px -462px -} - -.sbsprite-talisman_enrichment_defense { - background-position: -572px -462px -} - -.sbsprite-pink_bunny_3 { - background-position: -594px -462px -} - -.sbsprite-talisman_enrichment_magic_find { - background-position: -616px -462px -} - -.sbsprite-pink_bunny_2 { - background-position: -638px -462px -} - -.sbsprite-pink_bunny_5 { - background-position: -660px -462px -} - -.sbsprite-pink_bunny_4 { - background-position: -682px -462px -} - -.sbsprite-salmon_opal { - background-position: -704px -462px -} - -.sbsprite-pink_bunny_7 { - background-position: -726px -462px -} - -.sbsprite-pink_bunny_6 { - background-position: -748px -462px -} - -.sbsprite-pink_bunny_9 { - background-position: -770px -462px -} - -.sbsprite-pink_bunny_8 { - background-position: -792px -462px -} - -.sbsprite-refined_mithril { - background-position: -814px -462px -} - -.sbsprite-happy_emoji_10 { - background-position: -836px -462px -} - -.sbsprite-happy_emoji_11 { - background-position: -858px -462px -} - -.sbsprite-mine_talisman { - background-position: -880px -462px -} - -.sbsprite-old_dragon_helmet { - background-position: -902px -462px -} - -.sbsprite-boss_collection_livid { - background-position: -924px -462px -} - -.sbsprite-green_small_backpack { - background-position: -946px -462px -} - -.sbsprite-rune_bite { - background-position: -968px -462px -} - -.sbsprite-jungle_generator_11 { - background-position: -990px -462px -} - -.sbsprite-mega_luck { - background-position: -1012px -462px -} - -.sbsprite-jungle_generator_10 { - background-position: -1034px -462px -} - -.sbsprite-pet_skin_chicken_baby_chick { - background-position: 0 -484px -} - -.sbsprite-pile_of_cash { - background-position: -22px -484px -} - -.sbsprite-dungeoneering { - background-position: -44px -484px -} - -.sbsprite-base_griffin_upgrade_stone { - background-position: -66px -484px -} - -.sbsprite-red_tent { - background-position: -88px -484px -} - -.sbsprite-dungeon_red_support_orb { - background-position: -110px -484px -} - -.sbsprite-fast_travel_nether { - background-position: -132px -484px -} - -.sbsprite-night_vision_charm { - background-position: -154px -484px -} - -.sbsprite-zombie_grave { - background-position: -176px -484px -} - -.sbsprite-fish_bait { - background-position: -198px -484px -} - -.sbsprite-ice_lolly_personality { - background-position: -220px -484px -} - -.sbsprite-grizzly_paw { - background-position: -242px -484px -} - -.sbsprite-large_potion_bag { - background-position: -264px -484px -} - -.sbsprite-poorly_wrapped_rock { - background-position: -286px -484px -} - -.sbsprite-drill_engine { - background-position: -308px -484px -} - -.sbsprite-dark_oak_generator_10 { - background-position: -330px -484px -} - -.sbsprite-dungeon_normal_key { - background-position: -352px -484px -} - -.sbsprite-dark_oak_generator_11 { - background-position: -374px -484px -} - -.sbsprite-unstable_shimmer { - background-position: -396px -484px -} - -.sbsprite-green_egg { - background-position: -418px -484px -} - -.sbsprite-rough_topaz_gem { - background-position: -440px -484px -} - -.sbsprite-mana_flux_power_orb { - background-position: -462px -484px -} - -.sbsprite-amber_material { - background-position: -484px -484px -} - -.sbsprite-grinch_personality { - background-position: -506px -484px -} - -.sbsprite-fast_travel_crystals { - background-position: -528px -484px -} - -.sbsprite-lapis_generator_2 { - background-position: -550px -484px -} - -.sbsprite-lapis_generator_3 { - background-position: -572px -484px -} - -.sbsprite-rune_sack { - background-position: -594px -484px -} - -.sbsprite-lapis_generator_4 { - background-position: -616px -484px -} - -.sbsprite-tightly_tied_hay_bale { - background-position: -638px -484px -} - -.sbsprite-beach_ball { - background-position: -660px -484px -} - -.sbsprite-lapis_generator_5 { - background-position: -682px -484px -} - -.sbsprite-lapis_generator_10 { - background-position: -704px -484px -} - -.sbsprite-lapis_generator_12 { - background-position: -726px -484px -} - -.sbsprite-light_grey_large_backpack { - background-position: -748px -484px -} - -.sbsprite-lapis_generator_1 { - background-position: -770px -484px -} - -.sbsprite-lapis_generator_11 { - background-position: -792px -484px -} - -.sbsprite-pet_item_quick_claw { - background-position: -814px -484px -} - -.sbsprite-basketball_9 { - background-position: -836px -484px -} - -.sbsprite-deck_chair { - background-position: -858px -484px -} - -.sbsprite-lady_bug_9 { - background-position: -880px -484px -} - -.sbsprite-basketball_8 { - background-position: -902px -484px -} - -.sbsprite-lady_bug_8 { - background-position: -924px -484px -} - -.sbsprite-basketball_7 { - background-position: -946px -484px -} - -.sbsprite-basketball_6 { - background-position: -968px -484px -} - -.sbsprite-rune_pestilence { - background-position: -990px -484px -} - -.sbsprite-basketball_5 { - background-position: -1012px -484px -} - -.sbsprite-mithril_generator_12 { - background-position: -1034px -484px -} - -.sbsprite-sea_creature_talisman { - background-position: 0 -506px -} - -.sbsprite-basketball_4 { - background-position: -22px -506px -} - -.sbsprite-mithril_generator_11 { - background-position: -44px -506px -} - -.sbsprite-basketball_3 { - background-position: -66px -506px -} - -.sbsprite-mithril_generator_10 { - background-position: -88px -506px -} - -.sbsprite-basketball_2 { - background-position: -110px -506px -} - -.sbsprite-blue_egg { - background-position: -132px -506px -} - -.sbsprite-basketball_1 { - background-position: -154px -506px -} - -.sbsprite-lady_bug_1 { - background-position: -176px -506px -} - -.sbsprite-emerald_ring { - background-position: -198px -506px -} - -.sbsprite-lady_bug_3 { - background-position: -220px -506px -} - -.sbsprite-lady_bug_2 { - background-position: -242px -506px -} - -.sbsprite-lady_bug_5 { - background-position: -264px -506px -} - -.sbsprite-lapis_generator_6 { - background-position: -286px -506px -} - -.sbsprite-epoch_cake_green { - background-position: -308px -506px -} - -.sbsprite-lady_bug_4 { - background-position: -330px -506px -} - -.sbsprite-lapis_generator_7 { - background-position: -352px -506px -} - -.sbsprite-medium_husbandry_sack { - background-position: -374px -506px -} - -.sbsprite-bunny_11 { - background-position: -396px -506px -} - -.sbsprite-lady_bug_7 { - background-position: -418px -506px -} - -.sbsprite-lapis_generator_8 { - background-position: -440px -506px -} - -.sbsprite-bunny_10 { - background-position: -462px -506px -} - -.sbsprite-candy_relic { - background-position: -484px -506px -} - -.sbsprite-lady_bug_6 { - background-position: -506px -506px -} - -.sbsprite-lapis_generator_9 { - background-position: -528px -506px -} - -.sbsprite-red_jumbo_backpack { - background-position: -550px -506px -} - -.sbsprite-holy_fragment { - background-position: -572px -506px -} - -.sbsprite-ice_cream_personality { - background-position: -594px -506px -} - -.sbsprite-dungeon_blue_support_orb { - background-position: -616px -506px -} - -.sbsprite-blaze_generator_4 { - background-position: -638px -506px -} - -.sbsprite-blaze_generator_3 { - background-position: -660px -506px -} - -.sbsprite-blaze_generator_2 { - background-position: -682px -506px -} - -.sbsprite-blaze_generator_1 { - background-position: -704px -506px -} - -.sbsprite-blaze_generator_8 { - background-position: -726px -506px -} - -.sbsprite-blaze_generator_7 { - background-position: -748px -506px -} - -.sbsprite-pet_skin_whale_orca { - background-position: -770px -506px -} - -.sbsprite-blaze_generator_6 { - background-position: -792px -506px -} - -.sbsprite-blaze_generator_5 { - background-position: -814px -506px -} - -.sbsprite-deadgehog_helmet { - background-position: -836px -506px -} - -.sbsprite-volta { - background-position: -858px -506px -} - -.sbsprite-blaze_generator_9 { - background-position: -880px -506px -} - -.sbsprite-frozen_chicken { - background-position: -902px -506px -} - -.sbsprite-pet_skin_dragon_neon_purple { - background-position: -924px -506px -} - -.sbsprite-cavespider_generator_6 { - background-position: -946px -506px -} - -.sbsprite-cavespider_generator_5 { - background-position: -968px -506px -} - -.sbsprite-rune_gem { - background-position: -990px -506px -} - -.sbsprite-cavespider_generator_8 { - background-position: -1012px -506px -} - -.sbsprite-cavespider_generator_7 { - background-position: -1034px -506px -} - -.sbsprite-cavespider_generator_2 { - background-position: 0 -528px -} - -.sbsprite-cavespider_generator_1 { - background-position: -22px -528px -} - -.sbsprite-cavespider_generator_4 { - background-position: -44px -528px -} - -.sbsprite-jerry_talisman_blue { - background-position: -66px -528px -} - -.sbsprite-cavespider_generator_3 { - background-position: -88px -528px -} - -.sbsprite-speed_talisman { - background-position: -110px -528px -} - -.sbsprite-mummy_1 { - background-position: -132px -528px -} - -.sbsprite-rabbit_hat { - background-position: -154px -528px -} - -.sbsprite-bat_person_ring { - background-position: -176px -528px -} - -.sbsprite-mummy_3 { - background-position: -198px -528px -} - -.sbsprite-cavespider_generator_9 { - background-position: -220px -528px -} - -.sbsprite-mummy_2 { - background-position: -242px -528px -} - -.sbsprite-mummy_5 { - background-position: -264px -528px -} - -.sbsprite-strong_baby { - background-position: -286px -528px -} - -.sbsprite-mummy_4 { - background-position: -308px -528px -} - -.sbsprite-mummy_7 { - background-position: -330px -528px -} - -.sbsprite-mummy_6 { - background-position: -352px -528px -} - -.sbsprite-spooky_helmet { - background-position: -374px -528px -} - -.sbsprite-dining_chair { - background-position: -396px -528px -} - -.sbsprite-mummy_9 { - background-position: -418px -528px -} - -.sbsprite-mummy_8 { - background-position: -440px -528px -} - -.sbsprite-ender_relic { - background-position: -462px -528px -} - -.sbsprite-flawed_jasper_gem { - background-position: -484px -528px -} - -.sbsprite-cactus_generator_10 { - background-position: -506px -528px -} - -.sbsprite-pet_skin_silverfish_fossilized { - background-position: -528px -528px -} - -.sbsprite-cactus_generator_11 { - background-position: -550px -528px -} - -.sbsprite-cactus_generator_12 { - background-position: -572px -528px -} - -.sbsprite-dark_goggles { - background-position: -594px -528px -} - -.sbsprite-starred_bonzo_mask { - background-position: -616px -528px -} - -.sbsprite-pigs_foot { - background-position: -638px -528px -} - -.sbsprite-gemstone_mixture { - background-position: -660px -528px -} - -.sbsprite-tarantula_black_widow { - background-position: -682px -528px -} - -.sbsprite-builder_berry_bush { - background-position: -704px -528px -} - -.sbsprite-chicken_head { - background-position: -726px -528px -} - -.sbsprite-pet_skin_elephant_purple { - background-position: -748px -528px -} - -.sbsprite-cow_head { - background-position: -770px -528px -} - -.sbsprite-witch_broomstick { - background-position: -792px -528px -} - -.sbsprite-pet_skin_monkey_gorilla { - background-position: -814px -528px -} - -.sbsprite-grey_large_backpack { - background-position: -836px -528px -} - -.sbsprite-pet_skin_sheep_neon_green { - background-position: -858px -528px -} - -.sbsprite-magic_mushroom_soup { - background-position: -880px -528px -} - -.sbsprite-petrified_starfall { - background-position: -902px -528px -} - -.sbsprite-spruce_generator_9 { - background-position: -924px -528px -} - -.sbsprite-second_master_star { - background-position: -946px -528px -} - -.sbsprite-sled { - background-position: -968px -528px -} - -.sbsprite-spruce_generator_1 { - background-position: -990px -528px -} - -.sbsprite-voidling_generator_2 { - background-position: -1012px -528px -} - -.sbsprite-red { - background-position: -1034px -528px -} - -.sbsprite-spirit_wing { - background-position: 0 -550px -} - -.sbsprite-spruce_generator_2 { - background-position: -22px -550px -} - -.sbsprite-voidling_generator_1 { - background-position: -44px -550px -} - -.sbsprite-spruce_generator_3 { - background-position: -66px -550px -} - -.sbsprite-voidling_generator_4 { - background-position: -88px -550px -} - -.sbsprite-spruce_generator_4 { - background-position: -110px -550px -} - -.sbsprite-voidling_generator_3 { - background-position: -132px -550px -} - -.sbsprite-spruce_generator_5 { - background-position: -154px -550px -} - -.sbsprite-voidling_generator_6 { - background-position: -176px -550px -} - -.sbsprite-spruce_generator_6 { - background-position: -198px -550px -} - -.sbsprite-voidling_generator_5 { - background-position: -220px -550px -} - -.sbsprite-spruce_generator_7 { - background-position: -242px -550px -} - -.sbsprite-voidling_generator_8 { - background-position: -264px -550px -} - -.sbsprite-spruce_generator_8 { - background-position: -286px -550px -} - -.sbsprite-voidling_generator_7 { - background-position: -308px -550px -} - -.sbsprite-voidling_generator_9 { - background-position: -330px -550px -} - -.sbsprite-magenta_large_backpack { - background-position: -352px -550px -} - -.sbsprite-fast_travel_end { - background-position: -374px -550px -} - -.sbsprite-cow_generator_8 { - background-position: -396px -550px -} - -.sbsprite-cow_generator_9 { - background-position: -418px -550px -} - -.sbsprite-present_1 { - background-position: -440px -550px -} - -.sbsprite-topaz_crystal { - background-position: -462px -550px -} - -.sbsprite-bestiary_private_island { - background-position: -484px -550px -} - -.sbsprite-present_2 { - background-position: -506px -550px -} - -.sbsprite-present_3 { - background-position: -528px -550px -} - -.sbsprite-cow_generator_1 { - background-position: -550px -550px -} - -.sbsprite-cow_generator_2 { - background-position: -572px -550px -} - -.sbsprite-dragon_horn { - background-position: -594px -550px -} - -.sbsprite-bat_artifact { - background-position: -616px -550px -} - -.sbsprite-cow_generator_3 { - background-position: -638px -550px -} - -.sbsprite-cow_generator_4 { - background-position: -660px -550px -} - -.sbsprite-cow_generator_5 { - background-position: -682px -550px -} - -.sbsprite-cow_generator_6 { - background-position: -704px -550px -} - -.sbsprite-cow_generator_7 { - background-position: -726px -550px -} - -.sbsprite-goblin_omelette_pesto { - background-position: -748px -550px -} - -.sbsprite-farming_2_portal { - background-position: -770px -550px -} - -.sbsprite-village_talisman { - background-position: -792px -550px -} - -.sbsprite-cheetah_talisman { - background-position: -814px -550px -} - -.sbsprite-mining_2_portal { - background-position: -836px -550px -} - -.sbsprite-present_8 { - background-position: -858px -550px -} - -.sbsprite-wood_talisman { - background-position: -880px -550px -} - -.sbsprite-present_9 { - background-position: -902px -550px -} - -.sbsprite-present_4 { - background-position: -924px -550px -} - -.sbsprite-present_5 { - background-position: -946px -550px -} - -.sbsprite-present_6 { - background-position: -968px -550px -} - -.sbsprite-present_7 { - background-position: -990px -550px -} - -.sbsprite-healing_ring { - background-position: -1012px -550px -} - -.sbsprite-titanium_artifact { - background-position: -1034px -550px -} - -.sbsprite-penguin_1 { - background-position: 0 -572px -} - -.sbsprite-penguin_2 { - background-position: -22px -572px -} - -.sbsprite-ruby_crystal { - background-position: -44px -572px -} - -.sbsprite-tiki_torch { - background-position: -66px -572px -} - -.sbsprite-wheat_generator_10 { - background-position: -88px -572px -} - -.sbsprite-emerald_generator_8 { - background-position: -110px -572px -} - -.sbsprite-wheat_generator_12 { - background-position: -132px -572px -} - -.sbsprite-emerald_generator_7 { - background-position: -154px -572px -} - -.sbsprite-wheat_generator_11 { - background-position: -176px -572px -} - -.sbsprite-scarecrow { - background-position: -198px -572px -} - -.sbsprite-emerald_generator_9 { - background-position: -220px -572px -} - -.sbsprite-emerald_generator_4 { - background-position: -242px -572px -} - -.sbsprite-emerald_generator_3 { - background-position: -264px -572px -} - -.sbsprite-emerald_generator_6 { - background-position: -286px -572px -} - -.sbsprite-emerald_generator_5 { - background-position: -308px -572px -} - -.sbsprite-pet_skin_elephant_monochrome { - background-position: -330px -572px -} - -.sbsprite-emerald_generator_2 { - background-position: -352px -572px -} - -.sbsprite-emerald_generator_1 { - background-position: -374px -572px -} - -.sbsprite-flawless_topaz_gem { - background-position: -396px -572px -} - -.sbsprite-raw_soulflow { - background-position: -418px -572px -} - -.sbsprite-large_enchanted_mining_sack { - background-position: -440px -572px -} - -.sbsprite-gold_scarf_head { - background-position: -462px -572px -} - -.sbsprite-orange_medium_backpack { - background-position: -484px -572px -} - -.sbsprite-fine_jade_gem { - background-position: -506px -572px -} - -.sbsprite-white_gift { - background-position: -528px -572px -} - -.sbsprite-goblin_omelette_sunny_side { - background-position: -550px -572px -} - -.sbsprite-builder_brown_mushroom { - background-position: -572px -572px -} - -.sbsprite-giant_flesh { - background-position: -594px -572px -} - -.sbsprite-jumbo_backpack { - background-position: -616px -572px -} - -.sbsprite-eternal_flame_ring { - background-position: -638px -572px -} - -.sbsprite-wrapped_gift_for_juliette { - background-position: -660px -572px -} - -.sbsprite-enchanted_book_bundle_counter_strike { - background-position: -682px -572px -} - -.sbsprite-pet_item_toy_jerry { - background-position: -704px -572px -} - -.sbsprite-golden_plate { - background-position: -726px -572px -} - -.sbsprite-penguin_5 { - background-position: -748px -572px -} - -.sbsprite-grandfather_clock { - background-position: -770px -572px -} - -.sbsprite-penguin_6 { - background-position: -792px -572px -} - -.sbsprite-penguin_3 { - background-position: -814px -572px -} - -.sbsprite-pet_skin_elephant_orange { - background-position: -836px -572px -} - -.sbsprite-fast_travel_museum { - background-position: -858px -572px -} - -.sbsprite-penguin_4 { - background-position: -880px -572px -} - -.sbsprite-penguin_9 { - background-position: -902px -572px -} - -.sbsprite-penguin_7 { - background-position: -924px -572px -} - -.sbsprite-penguin_8 { - background-position: -946px -572px -} - -.sbsprite-light_grey_medium_backpack { - background-position: -968px -572px -} - -.sbsprite-blue_jumbo_backpack { - background-position: -990px -572px -} - -.sbsprite-cyan_small_backpack { - background-position: -1012px -572px -} - -.sbsprite-jade_crystal { - background-position: -1034px -572px -} - -.sbsprite-large_dungeon_sack { - background-position: 0 -594px -} - -.sbsprite-summoning_ring { - background-position: -22px -594px -} - -.sbsprite-dragon_essence { - background-position: -44px -594px -} - -.sbsprite-basket_of_seeds { - background-position: -66px -594px -} - -.sbsprite-bunny_jerry { - background-position: -88px -594px -} - -.sbsprite-perfect_jade_gem { - background-position: -110px -594px -} - -.sbsprite-spray_can { - background-position: -132px -594px -} - -.sbsprite-campfire_talisman_4 { - background-position: -154px -594px -} - -.sbsprite-campfire_talisman_5 { - background-position: -176px -594px -} - -.sbsprite-campfire_talisman_2 { - background-position: -198px -594px -} - -.sbsprite-campfire_talisman_3 { - background-position: -220px -594px -} - -.sbsprite-remnant_of_the_eye { - background-position: -242px -594px -} - -.sbsprite-campfire_talisman_1 { - background-position: -264px -594px -} - -.sbsprite-talisman_enrichment_critical_chance { - background-position: -286px -594px -} - -.sbsprite-ghast_head { - background-position: -308px -594px -} - -.sbsprite-white_greater_backpack { - background-position: -330px -594px -} - -.sbsprite-mayor_diaz { - background-position: -352px -594px -} - -.sbsprite-campfire_talisman_8 { - background-position: -374px -594px -} - -.sbsprite-campfire_talisman_9 { - background-position: -396px -594px -} - -.sbsprite-jaderald { - background-position: -418px -594px -} - -.sbsprite-campfire_talisman_6 { - background-position: -440px -594px -} - -.sbsprite-gold_thorn_head { - background-position: -462px -594px -} - -.sbsprite-campfire_talisman_7 { - background-position: -484px -594px -} - -.sbsprite-dark_bait { - background-position: -506px -594px -} - -.sbsprite-game_annihilator { - background-position: -528px -594px -} - -.sbsprite-purple_greater_backpack { - background-position: -550px -594px -} - -.sbsprite-bestiary_deep_caverns { - background-position: -572px -594px -} - -.sbsprite-foraging_5_portal { - background-position: -594px -594px -} - -.sbsprite-wolf_talisman { - background-position: -616px -594px -} - -.sbsprite-gold_professor_head { - background-position: -638px -594px -} - -.sbsprite-pet_skin_sheep_light_blue { - background-position: -660px -594px -} - -.sbsprite-ice_lolly_4 { - background-position: -682px -594px -} - -.sbsprite-basketball_10 { - background-position: -704px -594px -} - -.sbsprite-ice_lolly_3 { - background-position: -726px -594px -} - -.sbsprite-mineral_helmet { - background-position: -748px -594px -} - -.sbsprite-basketball_11 { - background-position: -770px -594px -} - -.sbsprite-ice_lolly_2 { - background-position: -792px -594px -} - -.sbsprite-basketball_12 { - background-position: -814px -594px -} - -.sbsprite-ice_lolly_1 { - background-position: -836px -594px -} - -.sbsprite-rock_candy { - background-position: -858px -594px -} - -.sbsprite-ice_lolly_8 { - background-position: -880px -594px -} - -.sbsprite-tarantula_generator_2 { - background-position: -902px -594px -} - -.sbsprite-ice_lolly_7 { - background-position: -924px -594px -} - -.sbsprite-tarantula_generator_1 { - background-position: -946px -594px -} - -.sbsprite-ice_lolly_6 { - background-position: -968px -594px -} - -.sbsprite-ice_lolly_5 { - background-position: -990px -594px -} - -.sbsprite-purple_egg { - background-position: -1012px -594px -} - -.sbsprite-ice_lolly_9 { - background-position: -1034px -594px -} - -.sbsprite-tarantula_generator_9 { - background-position: 0 -616px -} - -.sbsprite-tarantula_generator_8 { - background-position: -22px -616px -} - -.sbsprite-tarantula_generator_7 { - background-position: -44px -616px -} - -.sbsprite-tarantula_generator_6 { - background-position: -66px -616px -} - -.sbsprite-tarantula_generator_5 { - background-position: -88px -616px -} - -.sbsprite-tarantula_generator_4 { - background-position: -110px -616px -} - -.sbsprite-tarantula_generator_3 { - background-position: -132px -616px -} - -.sbsprite-hypixel_castle { - background-position: -154px -616px -} - -.sbsprite-rune_golden { - background-position: -176px -616px -} - -.sbsprite-wheat_generator_9 { - background-position: -198px -616px -} - -.sbsprite-ftx_3070 { - background-position: -220px -616px -} - -.sbsprite-wheat_generator_8 { - background-position: -242px -616px -} - -.sbsprite-wheat_generator_5 { - background-position: -264px -616px -} - -.sbsprite-wheat_generator_4 { - background-position: -286px -616px -} - -.sbsprite-builder_corn { - background-position: -308px -616px -} - -.sbsprite-cheap_coffee { - background-position: -330px -616px -} - -.sbsprite-wheat_generator_7 { - background-position: -352px -616px -} - -.sbsprite-wheat_generator_6 { - background-position: -374px -616px -} - -.sbsprite-mushroom_generator_11 { - background-position: -396px -616px -} - -.sbsprite-wheat_generator_1 { - background-position: -418px -616px -} - -.sbsprite-mushroom_generator_10 { - background-position: -440px -616px -} - -.sbsprite-ender_plus { - background-position: -462px -616px -} - -.sbsprite-wheat_generator_3 { - background-position: -484px -616px -} - -.sbsprite-wheat_generator_2 { - background-position: -506px -616px -} - -.sbsprite-voidling_generator_10 { - background-position: -528px -616px -} - -.sbsprite-voidling_generator_11 { - background-position: -550px -616px -} - -.sbsprite-mushroom_generator_12 { - background-position: -572px -616px -} - -.sbsprite-personal_bonus { - background-position: -594px -616px -} - -.sbsprite-flawless_amber_gem { - background-position: -616px -616px -} - -.sbsprite-rune_darkness_within { - background-position: -638px -616px -} - -.sbsprite-bag_of_cash { - background-position: -660px -616px -} - -.sbsprite-pet_skin_hound_beagle { - background-position: -682px -616px -} - -.sbsprite-pufferfish_hat { - background-position: -704px -616px -} - -.sbsprite-lime_greater_backpack { - background-position: -726px -616px -} - -.sbsprite-food_trough { - background-position: -748px -616px -} - -.sbsprite-pet_skin_yeti_grown_up { - background-position: -770px -616px -} - -.sbsprite-slime_generator_10 { - background-position: -792px -616px -} - -.sbsprite-undead_personality { - background-position: -814px -616px -} - -.sbsprite-slime_generator_11 { - background-position: -836px -616px -} - -.sbsprite-nether_wart_island { - background-position: -858px -616px -} - -.sbsprite-gravel_generator_5 { - background-position: -880px -616px -} - -.sbsprite-gravel_generator_4 { - background-position: -902px -616px -} - -.sbsprite-gravel_generator_7 { - background-position: -924px -616px -} - -.sbsprite-gravel_generator_6 { - background-position: -946px -616px -} - -.sbsprite-gravel_generator_9 { - background-position: -968px -616px -} - -.sbsprite-gravel_generator_8 { - background-position: -990px -616px -} - -.sbsprite-shiny_shard { - background-position: -1012px -616px -} - -.sbsprite-pet_skin_rabbit_rose { - background-position: -1034px -616px -} - -.sbsprite-quiver { - background-position: 0 -638px -} - -.sbsprite-rune_snake { - background-position: -22px -638px -} - -.sbsprite-bonzo_mask { - background-position: -44px -638px -} - -.sbsprite-fast_travel { - background-position: -66px -638px -} - -.sbsprite-treasurite { - background-position: -88px -638px -} - -.sbsprite-chicken_coop { - background-position: -110px -638px -} - -.sbsprite-end_portal_fumes_mixin { - background-position: -132px -638px -} - -.sbsprite-crafting_plus { - background-position: -154px -638px -} - -.sbsprite-gravel_generator_1 { - background-position: -176px -638px -} - -.sbsprite-gravel_generator_3 { - background-position: -198px -638px -} - -.sbsprite-gravel_generator_2 { - background-position: -220px -638px -} - -.sbsprite-easter_egg_11 { - background-position: -242px -638px -} - -.sbsprite-easter_egg_10 { - background-position: -264px -638px -} - -.sbsprite-protein_bar { - background-position: -286px -638px -} - -.sbsprite-hard_stone_generator_10 { - background-position: -308px -638px -} - -.sbsprite-coin_gold { - background-position: -330px -638px -} - -.sbsprite-light_blue_jumbo_backpack { - background-position: -352px -638px -} - -.sbsprite-hard_stone_generator_12 { - background-position: -374px -638px -} - -.sbsprite-hard_stone_generator_11 { - background-position: -396px -638px -} - -.sbsprite-rune_blood { - background-position: -418px -638px -} - -.sbsprite-raggedy_shark_tooth_necklace { - background-position: -440px -638px -} - -.sbsprite-pure_mithril { - background-position: -462px -638px -} - -.sbsprite-coin_emerald { - background-position: -484px -638px -} - -.sbsprite-pet_skin_black_cat_onyx { - background-position: -506px -638px -} - -.sbsprite-easter_egg_12 { - background-position: -528px -638px -} - -.sbsprite-emperor_head { - background-position: -550px -638px -} - -.sbsprite-power_wither_helmet { - background-position: -572px -638px -} - -.sbsprite-bee_11 { - background-position: -594px -638px -} - -.sbsprite-bee_10 { - background-position: -616px -638px -} - -.sbsprite-pet_skin_wolf { - background-position: -638px -638px -} - -.sbsprite-pumpkin_4 { - background-position: -660px -638px -} - -.sbsprite-pumpkin_3 { - background-position: -682px -638px -} - -.sbsprite-pumpkin_6 { - background-position: -704px -638px -} - -.sbsprite-fine_ruby_gem { - background-position: -726px -638px -} - -.sbsprite-pumpkin_5 { - background-position: -748px -638px -} - -.sbsprite-pumpkin_2 { - background-position: -770px -638px -} - -.sbsprite-electron_transmitter { - background-position: -792px -638px -} - -.sbsprite-pumpkin_1 { - background-position: -814px -638px -} - -.sbsprite-gingerbread_house { - background-position: -836px -638px -} - -.sbsprite-bee_1 { - background-position: -858px -638px -} - -.sbsprite-large_mining_sack { - background-position: -880px -638px -} - -.sbsprite-bee_2 { - background-position: -902px -638px -} - -.sbsprite-bee_3 { - background-position: -924px -638px -} - -.sbsprite-bee_4 { - background-position: -946px -638px -} - -.sbsprite-midas_jewel { - background-position: -968px -638px -} - -.sbsprite-unstable_dragon_helmet { - background-position: -990px -638px -} - -.sbsprite-vaccine_talisman { - background-position: -1012px -638px -} - -.sbsprite-whale_bait { - background-position: -1034px -638px -} - -.sbsprite-bee_9 { - background-position: 0 -660px -} - -.sbsprite-bee_5 { - background-position: -22px -660px -} - -.sbsprite-booster_cookie_box { - background-position: -44px -660px -} - -.sbsprite-perfect_topaz_gem { - background-position: -66px -660px -} - -.sbsprite-bee_6 { - background-position: -88px -660px -} - -.sbsprite-bee_7 { - background-position: -110px -660px -} - -.sbsprite-bee_8 { - background-position: -132px -660px -} - -.sbsprite-elvish_helmet { - background-position: -154px -660px -} - -.sbsprite-pumpkin_8 { - background-position: -176px -660px -} - -.sbsprite-light_grey_greater_backpack { - background-position: -198px -660px -} - -.sbsprite-pumpkin_7 { - background-position: -220px -660px -} - -.sbsprite-pumpkin_9 { - background-position: -242px -660px -} - -.sbsprite-best_weapon_rack { - background-position: -264px -660px -} - -.sbsprite-washed_up_souvenir { - background-position: -286px -660px -} - -.sbsprite-coin_diamond { - background-position: -308px -660px -} - -.sbsprite-builder_pink_berry { - background-position: -330px -660px -} - -.sbsprite-clownfish_personality { - background-position: -352px -660px -} - -.sbsprite-easter_egg_personality { - background-position: -374px -660px -} - -.sbsprite-jerry_talisman_green { - background-position: -396px -660px -} - -.sbsprite-spiked_atrocity { - background-position: -418px -660px -} - -.sbsprite-flower_generator_8 { - background-position: -440px -660px -} - -.sbsprite-flower_generator_9 { - background-position: -462px -660px -} - -.sbsprite-farmer_orb { - background-position: -484px -660px -} - -.sbsprite-flower_generator_4 { - background-position: -506px -660px -} - -.sbsprite-crypt_skull_key { - background-position: -528px -660px -} - -.sbsprite-flower_generator_5 { - background-position: -550px -660px -} - -.sbsprite-flower_generator_6 { - background-position: -572px -660px -} - -.sbsprite-flower_generator_7 { - background-position: -594px -660px -} - -.sbsprite-flower_generator_1 { - background-position: -616px -660px -} - -.sbsprite-flower_generator_2 { - background-position: -638px -660px -} - -.sbsprite-nutcracker { - background-position: -660px -660px -} - -.sbsprite-flower_generator_3 { - background-position: -682px -660px -} - -.sbsprite-scarf_studies { - background-position: -704px -660px -} - -.sbsprite-builder_apple { - background-position: -726px -660px -} - -.sbsprite-skyblock_table { - background-position: -748px -660px -} - -.sbsprite-sleeping_eye { - background-position: -770px -660px -} - -.sbsprite-spider_generator_1 { - background-position: -792px -660px -} - -.sbsprite-pet_skin_elephant_blue { - background-position: -814px -660px -} - -.sbsprite-spider_generator_2 { - background-position: -836px -660px -} - -.sbsprite-spider_generator_3 { - background-position: -858px -660px -} - -.sbsprite-shark_bait { - background-position: -880px -660px -} - -.sbsprite-spider_generator_4 { - background-position: -902px -660px -} - -.sbsprite-spider_generator_5 { - background-position: -924px -660px -} - -.sbsprite-black { - background-position: -946px -660px -} - -.sbsprite-sapphire_polished_drill_engine { - background-position: -968px -660px -} - -.sbsprite-cocoa_generator_1 { - background-position: -990px -660px -} - -.sbsprite-cocoa_generator_7 { - background-position: -1012px -660px -} - -.sbsprite-cocoa_generator_6 { - background-position: -1034px -660px -} - -.sbsprite-rune_snow { - background-position: 0 -682px -} - -.sbsprite-cocoa_generator_9 { - background-position: -22px -682px -} - -.sbsprite-cocoa_generator_8 { - background-position: -44px -682px -} - -.sbsprite-cocoa_generator_3 { - background-position: -66px -682px -} - -.sbsprite-cocoa_generator_2 { - background-position: -88px -682px -} - -.sbsprite-cocoa_generator_5 { - background-position: -110px -682px -} - -.sbsprite-cocoa_generator_4 { - background-position: -132px -682px -} - -.sbsprite-spider_generator_6 { - background-position: -154px -682px -} - -.sbsprite-spider_generator_7 { - background-position: -176px -682px -} - -.sbsprite-spider_generator_8 { - background-position: -198px -682px -} - -.sbsprite-spider_generator_9 { - background-position: -220px -682px -} - -.sbsprite-brown_large_backpack { - background-position: -242px -682px -} - -.sbsprite-flower_maelstrom { - background-position: -264px -682px -} - -.sbsprite-pumpkin_generator_12 { - background-position: -286px -682px -} - -.sbsprite-coal_generator_9 { - background-position: -308px -682px -} - -.sbsprite-diamond_thorn_head { - background-position: -330px -682px -} - -.sbsprite-ender_stone_generator_11 { - background-position: -352px -682px -} - -.sbsprite-coal_generator_8 { - background-position: -374px -682px -} - -.sbsprite-ender_stone_generator_10 { - background-position: -396px -682px -} - -.sbsprite-coal_generator_7 { - background-position: -418px -682px -} - -.sbsprite-jerry_box_blue { - background-position: -440px -682px -} - -.sbsprite-coal_generator_6 { - background-position: -462px -682px -} - -.sbsprite-coal_generator_5 { - background-position: -484px -682px -} - -.sbsprite-pumpkin_generator_11 { - background-position: -506px -682px -} - -.sbsprite-coal_generator_4 { - background-position: -528px -682px -} - -.sbsprite-pumpkin_generator_10 { - background-position: -550px -682px -} - -.sbsprite-talisman_of_space { - background-position: -572px -682px -} - -.sbsprite-talisman_enrichment_strength { - background-position: -594px -682px -} - -.sbsprite-white_jumbo_backpack { - background-position: -616px -682px -} - -.sbsprite-full_fairy_control { - background-position: -638px -682px -} - -.sbsprite-quartz_generator_9 { - background-position: -660px -682px -} - -.sbsprite-rune_wake { - background-position: -682px -682px -} - -.sbsprite-quartz_generator_8 { - background-position: -704px -682px -} - -.sbsprite-festive_jerry_personality { - background-position: -726px -682px -} - -.sbsprite-quartz_generator_5 { - background-position: -748px -682px -} - -.sbsprite-builder_berry { - background-position: -770px -682px -} - -.sbsprite-quartz_generator_4 { - background-position: -792px -682px -} - -.sbsprite-quartz_generator_7 { - background-position: -814px -682px -} - -.sbsprite-quartz_generator_6 { - background-position: -836px -682px -} - -.sbsprite-quartz_generator_1 { - background-position: -858px -682px -} - -.sbsprite-quartz_generator_3 { - background-position: -880px -682px -} - -.sbsprite-quartz_generator_2 { - background-position: -902px -682px -} - -.sbsprite-bingo_heirloom { - background-position: -924px -682px -} - -.sbsprite-dwarf_turtle_shelmet { - background-position: -946px -682px -} - -.sbsprite-wolf_paw { - background-position: -968px -682px -} - -.sbsprite-jasper_crystal { - background-position: -990px -682px -} - -.sbsprite-party_hat_crab { - background-position: -1012px -682px -} - -.sbsprite-feather_artifact { - background-position: -1034px -682px -} - -.sbsprite-coal_generator_3 { - background-position: 0 -704px -} - -.sbsprite-coal_generator_2 { - background-position: -22px -704px -} - -.sbsprite-coal_generator_1 { - background-position: -44px -704px -} - -.sbsprite-fast_travel_gold { - background-position: -66px -704px -} - -.sbsprite-crystal_hollows_crystals { - background-position: -88px -704px -} - -.sbsprite-mining_island { - background-position: -110px -704px -} - -.sbsprite-flawless_jasper_gem { - background-position: -132px -704px -} - -.sbsprite-halloween_candles { - background-position: -154px -704px -} - -.sbsprite-ascension_rope { - background-position: -176px -704px -} - -.sbsprite-brown_small_backpack { - background-position: -198px -704px -} - -.sbsprite-diver_puffer { - background-position: -220px -704px -} - -.sbsprite-melon_generator_10 { - background-position: -242px -704px -} - -.sbsprite-melon_generator_12 { - background-position: -264px -704px -} - -.sbsprite-melon_generator_11 { - background-position: -286px -704px -} - -.sbsprite-desert_island { - background-position: -308px -704px -} - -.sbsprite-green { - background-position: -330px -704px -} - -.sbsprite-crystallized_heart { - background-position: -352px -704px -} - -.sbsprite-sinful_dice { - background-position: -374px -704px -} - -.sbsprite-soulflow_supercell { - background-position: -396px -704px -} - -.sbsprite-sea_creature_artifact { - background-position: -418px -704px -} - -.sbsprite-grey_small_backpack { - background-position: -440px -704px -} - -.sbsprite-aatrox_batphone { - background-position: -462px -704px -} - -.sbsprite-clay_generator_10 { - background-position: -484px -704px -} - -.sbsprite-clay_generator_11 { - background-position: -506px -704px -} - -.sbsprite-end_stone_personality { - background-position: -528px -704px -} - -.sbsprite-builder_banana_bunch { - background-position: -550px -704px -} - -.sbsprite-danger_2_portal { - background-position: -572px -704px -} - -.sbsprite-mayor_scorpius { - background-position: -594px -704px -} - -.sbsprite-voodoo { - background-position: -616px -704px -} - -.sbsprite-jerry_box_purple { - background-position: -638px -704px -} - -.sbsprite-wither_artifact { - background-position: -660px -704px -} - -.sbsprite-skull_chest { - background-position: -682px -704px -} - -.sbsprite-pet_skin_elephant_pink { - background-position: -704px -704px -} - -.sbsprite-oak_generator_10 { - background-position: -726px -704px -} - -.sbsprite-slime_generator_1 { - background-position: -748px -704px -} - -.sbsprite-slime_generator_2 { - background-position: -770px -704px -} - -.sbsprite-frozen_blaze_icicle { - background-position: -792px -704px -} - -.sbsprite-oak_generator_11 { - background-position: -814px -704px -} - -.sbsprite-slime_generator_5 { - background-position: -836px -704px -} - -.sbsprite-slime_generator_6 { - background-position: -858px -704px -} - -.sbsprite-slime_generator_3 { - background-position: -880px -704px -} - -.sbsprite-slime_generator_4 { - background-position: -902px -704px -} - -.sbsprite-slime_generator_9 { - background-position: -924px -704px -} - -.sbsprite-slime_generator_7 { - background-position: -946px -704px -} - -.sbsprite-slime_generator_8 { - background-position: -968px -704px -} - -.sbsprite-dungeon_golden_key { - background-position: -990px -704px -} - -.sbsprite-mender_fedora { - background-position: -1012px -704px -} - -.sbsprite-pet_skin_rock_smile { - background-position: -1034px -704px -} - -.sbsprite-builder_orange { - background-position: 0 -726px -} - -.sbsprite-ghast_generator_10 { - background-position: -22px -726px -} - -.sbsprite-beach_chair { - background-position: -44px -726px -} - -.sbsprite-ghast_generator_11 { - background-position: -66px -726px -} - -.sbsprite-boss { - background-position: -88px -726px -} - -.sbsprite-race_precursor_ruins { - background-position: -110px -726px -} - -.sbsprite-perfectly_cut_fuel_tank { - background-position: -132px -726px -} - -.sbsprite-ice_essence { - background-position: -154px -726px -} - -.sbsprite-jerry_box_green { - background-position: -176px -726px -} - -.sbsprite-fireplace { - background-position: -198px -726px -} - -.sbsprite-moldy_bread { - background-position: -220px -726px -} - -.sbsprite-pet_skin_tiger_saber_tooth { - background-position: -242px -726px -} - -.sbsprite-obsidian_generator_5 { - background-position: -264px -726px -} - -.sbsprite-obsidian_generator_4 { - background-position: -286px -726px -} - -.sbsprite-obsidian_generator_7 { - background-position: -308px -726px -} - -.sbsprite-obsidian_generator_6 { - background-position: -330px -726px -} - -.sbsprite-obsidian_generator_1 { - background-position: -352px -726px -} - -.sbsprite-obsidian_generator_3 { - background-position: -374px -726px -} - -.sbsprite-foraging_1_portal { - background-position: -396px -726px -} - -.sbsprite-obsidian_generator_2 { - background-position: -418px -726px -} - -.sbsprite-dungeon_stone_tank { - background-position: -440px -726px -} - -.sbsprite-obsidian_generator_9 { - background-position: -462px -726px -} - -.sbsprite-obsidian_generator_8 { - background-position: -484px -726px -} - -.sbsprite-pet_skin_sheep_light_green { - background-position: -506px -726px -} - -.sbsprite-decayed_bat { - background-position: -528px -726px -} - -.sbsprite-pet_skin_squid_glow { - background-position: -550px -726px -} - -.sbsprite-potato_generator_4 { - background-position: -572px -726px -} - -.sbsprite-potato_generator_5 { - background-position: -594px -726px -} - -.sbsprite-potato_generator_12 { - background-position: -616px -726px -} - -.sbsprite-potato_generator_6 { - background-position: -638px -726px -} - -.sbsprite-potato_generator_11 { - background-position: -660px -726px -} - -.sbsprite-potato_generator_7 { - background-position: -682px -726px -} - -.sbsprite-potato_generator_10 { - background-position: -704px -726px -} - -.sbsprite-potato_generator_8 { - background-position: -726px -726px -} - -.sbsprite-potato_generator_9 { - background-position: -748px -726px -} - -.sbsprite-slayer_energy_drink { - background-position: -770px -726px -} - -.sbsprite-arachne_keeper_fragment { - background-position: -792px -726px -} - -.sbsprite-cat_talisman { - background-position: -814px -726px -} - -.sbsprite-large_slayer_sack { - background-position: -836px -726px -} - -.sbsprite-rune_rainbow { - background-position: -858px -726px -} - -.sbsprite-potato_generator_1 { - background-position: -880px -726px -} - -.sbsprite-potato_generator_2 { - background-position: -902px -726px -} - -.sbsprite-potato_generator_3 { - background-position: -924px -726px -} - -.sbsprite-lime_large_backpack { - background-position: -946px -726px -} - -.sbsprite-bestiary_spiders_den { - background-position: -968px -726px -} - -.sbsprite-ruby_polished_drill_engine { - background-position: -990px -726px -} - -.sbsprite-yellow_jumbo_backpack { - background-position: -1012px -726px -} - -.sbsprite-pet_skin_dolphin_snubnose { - background-position: -1034px -726px -} - -.sbsprite-spider_egg_mixin { - background-position: 0 -748px -} - -.sbsprite-pet_skin_dragon_pastel { - background-position: -22px -748px -} - -.sbsprite-honed_shark_tooth_necklace { - background-position: -44px -748px -} - -.sbsprite-bob_omb { - background-position: -66px -748px -} - -.sbsprite-dungeon_wizard_crystal { - background-position: -88px -748px -} - -.sbsprite-barn_island { - background-position: -110px -748px -} - -.sbsprite-weapon_rack { - background-position: -132px -748px -} - -.sbsprite-shadow_assassin_crimson { - background-position: -154px -748px -} - -.sbsprite-small_talisman_bag { - background-position: -176px -748px -} - -.sbsprite-medium_combat_sack { - background-position: -198px -748px -} - -.sbsprite-bonzo_statue { - background-position: -220px -748px -} - -.sbsprite-zombie_artifact { - background-position: -242px -748px -} - -.sbsprite-cheese_hunter { - background-position: -264px -748px -} - -.sbsprite-hologram { - background-position: -286px -748px -} - -.sbsprite-ultrasequencer { - background-position: -308px -748px -} - -.sbsprite-wise_dragon_helmet { - background-position: -330px -748px -} - -.sbsprite-cyan_medium_backpack { - background-position: -352px -748px -} - -.sbsprite-light_grey_small_backpack { - background-position: -374px -748px -} - -.sbsprite-catacombs_pass_5 { - background-position: -396px -748px -} - -.sbsprite-catacombs_pass_4 { - background-position: -418px -748px -} - -.sbsprite-catacombs_pass_3 { - background-position: -440px -748px -} - -.sbsprite-magma_bucket_upgrade { - background-position: -462px -748px -} - -.sbsprite-catacombs_pass_2 { - background-position: -484px -748px -} - -.sbsprite-coin_redstone { - background-position: -506px -748px -} - -.sbsprite-catacombs_pass_1 { - background-position: -528px -748px -} - -.sbsprite-hermit_crab_10 { - background-position: -550px -748px -} - -.sbsprite-catacombs_pass_0 { - background-position: -572px -748px -} - -.sbsprite-hermit_crab_11 { - background-position: -594px -748px -} - -.sbsprite-dungeon_stone_mage { - background-position: -616px -748px -} - -.sbsprite-gingerbread_personality { - background-position: -638px -748px -} - -.sbsprite-titanium_drill_engine { - background-position: -660px -748px -} - -.sbsprite-catacombs_pass_9 { - background-position: -682px -748px -} - -.sbsprite-fast_travel_dragontail { - background-position: -704px -748px -} - -.sbsprite-catacombs_pass_8 { - background-position: -726px -748px -} - -.sbsprite-catacombs_pass_7 { - background-position: -748px -748px -} - -.sbsprite-reaper_spirit { - background-position: -770px -748px -} - -.sbsprite-catacombs_pass_6 { - background-position: -792px -748px -} - -.sbsprite-armor_of_the_resistance_helmet { - background-position: -814px -748px -} - -.sbsprite-orange_small_backpack { - background-position: -836px -748px -} - -.sbsprite-bait_ring { - background-position: -858px -748px -} - -.sbsprite-luck_talisman { - background-position: -880px -748px -} - -.sbsprite-beach_ball_11 { - background-position: -902px -748px -} - -.sbsprite-beach_ball_10 { - background-position: -924px -748px -} - -.sbsprite-shark_personality { - background-position: -946px -748px -} - -.sbsprite-coal_generator_11 { - background-position: -968px -748px -} - -.sbsprite-coal_generator_12 { - background-position: -990px -748px -} - -.sbsprite-fourth_master_star { - background-position: -1012px -748px -} - -.sbsprite-water_hydra_head { - background-position: -1034px -748px -} - -.sbsprite-coal_generator_10 { - background-position: 0 -770px -} - -.sbsprite-ice_dinner_table { - background-position: -22px -770px -} - -.sbsprite-talisman_enrichment_attack_speed { - background-position: -44px -770px -} - -.sbsprite-gemstone_fuel_tank { - background-position: -66px -770px -} - -.sbsprite-green_large_backpack { - background-position: -88px -770px -} - -.sbsprite-fairy_wings_charm { - background-position: -110px -770px -} - -.sbsprite-rare_diamond { - background-position: -132px -770px -} - -.sbsprite-bunny { - background-position: -154px -770px -} - -.sbsprite-storm_the_fish { - background-position: -176px -770px -} - -.sbsprite-penguin_personality { - background-position: -198px -770px -} - -.sbsprite-shark_1 { - background-position: -220px -770px -} - -.sbsprite-shard_of_the_shredded { - background-position: -242px -770px -} - -.sbsprite-shark_2 { - background-position: -264px -770px -} - -.sbsprite-sheep_generator_11 { - background-position: -286px -770px -} - -.sbsprite-diamonite { - background-position: -308px -770px -} - -.sbsprite-prehistoric_egg { - background-position: -330px -770px -} - -.sbsprite-shark_3 { - background-position: -352px -770px -} - -.sbsprite-sheep_generator_12 { - background-position: -374px -770px -} - -.sbsprite-shark_4 { - background-position: -396px -770px -} - -.sbsprite-shark_5 { - background-position: -418px -770px -} - -.sbsprite-shark_6 { - background-position: -440px -770px -} - -.sbsprite-shark_7 { - background-position: -462px -770px -} - -.sbsprite-shark_8 { - background-position: -484px -770px -} - -.sbsprite-shark_9 { - background-position: -506px -770px -} - -.sbsprite-bbq { - background-position: -528px -770px -} - -.sbsprite-pet_skin_sheep_white { - background-position: -550px -770px -} - -.sbsprite-sheep_generator_10 { - background-position: -572px -770px -} - -.sbsprite-rune_spirit { - background-position: -594px -770px -} - -.sbsprite-aote_stone { - background-position: -616px -770px -} - -.sbsprite-french_bread { - background-position: -638px -770px -} - -.sbsprite-ember_helmet { - background-position: -660px -770px -} - -.sbsprite-large_bed { - background-position: -682px -770px -} - -.sbsprite-builder_bush { - background-position: -704px -770px -} - -.sbsprite-talisman_enrichment_ferocity { - background-position: -726px -770px -} - -.sbsprite-fire_talisman { - background-position: -748px -770px -} - -.sbsprite-purple_candy { - background-position: -770px -770px -} - -.sbsprite-spider_talisman { - background-position: -792px -770px -} - -.sbsprite-intimidation_artifact { - background-position: -814px -770px -} - -.sbsprite-large_candy_sack { - background-position: -836px -770px -} - -.sbsprite-present_10 { - background-position: -858px -770px -} - -.sbsprite-present_11 { - background-position: -880px -770px -} - -.sbsprite-beach_ball_9 { - background-position: -902px -770px -} - -.sbsprite-tarantula_generator_10 { - background-position: -924px -770px -} - -.sbsprite-beach_ball_8 { - background-position: -946px -770px -} - -.sbsprite-gold_sadan_head { - background-position: -968px -770px -} - -.sbsprite-tarantula_generator_11 { - background-position: -990px -770px -} - -.sbsprite-large_enchanted_foraging_sack { - background-position: -1012px -770px -} - -.sbsprite-warrior_dungeon_ability_1 { - background-position: -1034px -770px -} - -.sbsprite-beach_ball_5 { - background-position: 0 -792px -} - -.sbsprite-beach_ball_4 { - background-position: -22px -792px -} - -.sbsprite-beach_ball_7 { - background-position: -44px -792px -} - -.sbsprite-cracked_piggy_bank { - background-position: -66px -792px -} - -.sbsprite-beach_ball_6 { - background-position: -88px -792px -} - -.sbsprite-ice_lolly_11 { - background-position: -110px -792px -} - -.sbsprite-ice_lolly_10 { - background-position: -132px -792px -} - -.sbsprite-razor_sharp_shark_tooth_necklace { - background-position: -154px -792px -} - -.sbsprite-farm_crystal { - background-position: -176px -792px -} - -.sbsprite-bank_upgrade_luxurious { - background-position: -198px -792px -} - -.sbsprite-large_fishing_sack { - background-position: -220px -792px -} - -.sbsprite-lime_small_backpack { - background-position: -242px -792px -} - -.sbsprite-portable_wool_weaver { - background-position: -264px -792px -} - -.sbsprite-beach_ball_1 { - background-position: -286px -792px -} - -.sbsprite-beach_ball_3 { - background-position: -308px -792px -} - -.sbsprite-beach_ball_2 { - background-position: -330px -792px -} - -.sbsprite-revive_stone_orb { - background-position: -352px -792px -} - -.sbsprite-fish_hat { - background-position: -374px -792px -} - -.sbsprite-skull_personality { - background-position: -396px -792px -} - -.sbsprite-builder_onion { - background-position: -418px -792px -} - -.sbsprite-melon_generator_3 { - background-position: -440px -792px -} - -.sbsprite-zombie_generator_9 { - background-position: -462px -792px -} - -.sbsprite-melon_generator_2 { - background-position: -484px -792px -} - -.sbsprite-melon_generator_1 { - background-position: -506px -792px -} - -.sbsprite-melon_generator_7 { - background-position: -528px -792px -} - -.sbsprite-zombie_generator_5 { - background-position: -550px -792px -} - -.sbsprite-melon_generator_6 { - background-position: -572px -792px -} - -.sbsprite-zombie_generator_6 { - background-position: -594px -792px -} - -.sbsprite-melon_generator_5 { - background-position: -616px -792px -} - -.sbsprite-zombie_generator_7 { - background-position: -638px -792px -} - -.sbsprite-melon_generator_4 { - background-position: -660px -792px -} - -.sbsprite-zombie_generator_8 { - background-position: -682px -792px -} - -.sbsprite-zombie_generator_1 { - background-position: -704px -792px -} - -.sbsprite-zombie_generator_2 { - background-position: -726px -792px -} - -.sbsprite-optical_lens { - background-position: -748px -792px -} - -.sbsprite-zombie_generator_3 { - background-position: -770px -792px -} - -.sbsprite-zombie_generator_4 { - background-position: -792px -792px -} - -.sbsprite-beach_umbrella { - background-position: -814px -792px -} - -.sbsprite-diamond_atom { - background-position: -836px -792px -} - -.sbsprite-coin_talisman { - background-position: -858px -792px -} - -.sbsprite-nether_island { - background-position: -880px -792px -} - -.sbsprite-rune_couture { - background-position: -902px -792px -} - -.sbsprite-fish_affinity_talisman { - background-position: -924px -792px -} - -.sbsprite-wedding_ring_4 { - background-position: -946px -792px -} - -.sbsprite-wedding_ring_5 { - background-position: -968px -792px -} - -.sbsprite-wedding_ring_6 { - background-position: -990px -792px -} - -.sbsprite-wedding_ring_7 { - background-position: -1012px -792px -} - -.sbsprite-wedding_ring_8 { - background-position: -1034px -792px -} - -.sbsprite-large_enchanted_combat_sack { - background-position: 0 -814px -} - -.sbsprite-wedding_ring_9 { - background-position: -22px -814px -} - -.sbsprite-rune_clouds { - background-position: -44px -814px -} - -.sbsprite-perfect_amber_gem { - background-position: -66px -814px -} - -.sbsprite-precursor_gear { - background-position: -88px -814px -} - -.sbsprite-wedding_ring_2 { - background-position: -110px -814px -} - -.sbsprite-wedding_ring_3 { - background-position: -132px -814px -} - -.sbsprite-rune_enchant { - background-position: -154px -814px -} - -.sbsprite-god_potion { - background-position: -176px -814px -} - -.sbsprite-rune_magical { - background-position: -198px -814px -} - -.sbsprite-pet_skin_monkey_golden { - background-position: -220px -814px -} - -.sbsprite-spiked_bait { - background-position: -242px -814px -} - -.sbsprite-ghost_11 { - background-position: -264px -814px -} - -.sbsprite-perfect_jasper_gem { - background-position: -286px -814px -} - -.sbsprite-quartz_generator_11 { - background-position: -308px -814px -} - -.sbsprite-sandcastle_1 { - background-position: -330px -814px -} - -.sbsprite-sandcastle_2 { - background-position: -352px -814px -} - -.sbsprite-pet_skin_sheep_pink { - background-position: -374px -814px -} - -.sbsprite-premium_flesh { - background-position: -396px -814px -} - -.sbsprite-sandcastle_5 { - background-position: -418px -814px -} - -.sbsprite-blessed_bait { - background-position: -440px -814px -} - -.sbsprite-sandcastle_6 { - background-position: -462px -814px -} - -.sbsprite-sandcastle_3 { - background-position: -484px -814px -} - -.sbsprite-sandcastle_4 { - background-position: -506px -814px -} - -.sbsprite-wise_wither_helmet { - background-position: -528px -814px -} - -.sbsprite-sandcastle_9 { - background-position: -550px -814px -} - -.sbsprite-quartz_generator_10 { - background-position: -572px -814px -} - -.sbsprite-sandcastle_7 { - background-position: -594px -814px -} - -.sbsprite-sandcastle_8 { - background-position: -616px -814px -} - -.sbsprite-mayor_cole { - background-position: -638px -814px -} - -.sbsprite-fifth_master_star { - background-position: -660px -814px -} - -.sbsprite-ghost_10 { - background-position: -682px -814px -} - -.sbsprite-young_shimmer { - background-position: -704px -814px -} - -.sbsprite-minion_chair { - background-position: -726px -814px -} - -.sbsprite-pig_mask { - background-position: -748px -814px -} - -.sbsprite-hyper_catalyst_upgrade { - background-position: -770px -814px -} - -.sbsprite-potion { - background-position: -792px -814px -} - -.sbsprite-exceedingly_rare_ender_artifact_upgrader { - background-position: -814px -814px -} - -.sbsprite-refined_titanium { - background-position: -836px -814px -} - -.sbsprite-sharp_shark_tooth_necklace { - background-position: -858px -814px -} - -.sbsprite-wreath { - background-position: -880px -814px -} - -.sbsprite-melon_generator_9 { - background-position: -902px -814px -} - -.sbsprite-melon_generator_8 { - background-position: -924px -814px -} - -.sbsprite-epoch_cake_pink { - background-position: -946px -814px -} - -.sbsprite-dungeon_stone_healer { - background-position: -968px -814px -} - -.sbsprite-young_baby { - background-position: -990px -814px -} - -.sbsprite-presents { - background-position: -1012px -814px -} - -.sbsprite-dark_oak_generator_5 { - background-position: -1034px -814px -} - -.sbsprite-dark_oak_generator_6 { - background-position: 0 -836px -} - -.sbsprite-large_enchanted_fishing_sack { - background-position: -22px -836px -} - -.sbsprite-radiant_power_orb { - background-position: -44px -836px -} - -.sbsprite-dark_oak_generator_3 { - background-position: -66px -836px -} - -.sbsprite-large_husbandry_sack { - background-position: -88px -836px -} - -.sbsprite-dark_oak_generator_4 { - background-position: -110px -836px -} - -.sbsprite-dark_oak_generator_9 { - background-position: -132px -836px -} - -.sbsprite-dark_oak_generator_7 { - background-position: -154px -836px -} - -.sbsprite-dark_oak_generator_8 { - background-position: -176px -836px -} - -.sbsprite-dark_oak_generator_1 { - background-position: -198px -836px -} - -.sbsprite-dark_oak_generator_2 { - background-position: -220px -836px -} - -.sbsprite-illusion_glass { - background-position: -242px -836px -} - -.sbsprite-iron_chest { - background-position: -264px -836px -} - -.sbsprite-festive_zombie_personality { - background-position: -286px -836px -} - -.sbsprite-frozen_blaze_helmet { - background-position: -308px -836px -} - -.sbsprite-fast_travel_nest { - background-position: -330px -836px -} - -.sbsprite-brown_greater_backpack { - background-position: -352px -836px -} - -.sbsprite-red_gift { - background-position: -374px -836px -} - -.sbsprite-builder_lemon { - background-position: -396px -836px -} - -.sbsprite-rune_hot { - background-position: -418px -836px -} - -.sbsprite-small_mining_sack { - background-position: -440px -836px -} - -.sbsprite-pet_skin_jerry_green_elf { - background-position: -462px -836px -} - -.sbsprite-amber_polished_drill_engine { - background-position: -484px -836px -} - -.sbsprite-pedestal { - background-position: -506px -836px -} - -.sbsprite-red_claw_artifact { - background-position: -528px -836px -} - -.sbsprite-zombie_generator_11 { - background-position: -550px -836px -} - -.sbsprite-zombie_generator_10 { - background-position: -572px -836px -} - -.sbsprite-wither_relic { - background-position: -594px -836px -} - -.sbsprite-spider_hat { - background-position: -616px -836px -} - -.sbsprite-sludge_juice { - background-position: -638px -836px -} - -.sbsprite-precursor_eye { - background-position: -660px -836px -} - -.sbsprite-fast_travel_scarleton { - background-position: -682px -836px -} - -.sbsprite-connect_four { - background-position: -704px -836px -} - -.sbsprite-sloth_3 { - background-position: -726px -836px -} - -.sbsprite-sloth_4 { - background-position: -748px -836px -} - -.sbsprite-pet_skin_enderman { - background-position: -770px -836px -} - -.sbsprite-sloth_1 { - background-position: -792px -836px -} - -.sbsprite-sloth_2 { - background-position: -814px -836px -} - -.sbsprite-rabbit_generator_9 { - background-position: -836px -836px -} - -.sbsprite-builder_chesto_berry { - background-position: -858px -836px -} - -.sbsprite-rabbit_generator_4 { - background-position: -880px -836px -} - -.sbsprite-sloth_7 { - background-position: -902px -836px -} - -.sbsprite-rabbit_generator_3 { - background-position: -924px -836px -} - -.sbsprite-sloth_8 { - background-position: -946px -836px -} - -.sbsprite-rabbit_generator_2 { - background-position: -968px -836px -} - -.sbsprite-sloth_5 { - background-position: -990px -836px -} - -.sbsprite-rabbit_generator_1 { - background-position: -1012px -836px -} - -.sbsprite-sloth_6 { - background-position: -1034px -836px -} - -.sbsprite-rabbit_generator_8 { - background-position: 0 -858px -} - -.sbsprite-lantern { - background-position: -22px -858px -} - -.sbsprite-rabbit_generator_7 { - background-position: -44px -858px -} - -.sbsprite-rabbit_generator_6 { - background-position: -66px -858px -} - -.sbsprite-sloth_9 { - background-position: -88px -858px -} - -.sbsprite-rabbit_generator_5 { - background-position: -110px -858px -} - -.sbsprite-clownfish_8 { - background-position: -132px -858px -} - -.sbsprite-clownfish_9 { - background-position: -154px -858px -} - -.sbsprite-clownfish_6 { - background-position: -176px -858px -} - -.sbsprite-clownfish_7 { - background-position: -198px -858px -} - -.sbsprite-clownfish_4 { - background-position: -220px -858px -} - -.sbsprite-clownfish_5 { - background-position: -242px -858px -} - -.sbsprite-mender_helmet { - background-position: -264px -858px -} - -.sbsprite-clownfish_2 { - background-position: -286px -858px -} - -.sbsprite-clownfish_3 { - background-position: -308px -858px -} - -.sbsprite-enderman_hat { - background-position: -330px -858px -} - -.sbsprite-superior_dragon_helmet { - background-position: -352px -858px -} - -.sbsprite-clownfish_1 { - background-position: -374px -858px -} - -.sbsprite-reset_heart_of_the_mountain { - background-position: -396px -858px -} - -.sbsprite-lapis_crystal { - background-position: -418px -858px -} - -.sbsprite-purple_jumbo_backpack { - background-position: -440px -858px -} - -.sbsprite-purple_large_backpack { - background-position: -462px -858px -} - -.sbsprite-dragon_claw { - background-position: -484px -858px -} - -.sbsprite-potato_talisman { - background-position: -506px -858px -} - -.sbsprite-nether_warts_generator_12 { - background-position: -528px -858px -} - -.sbsprite-nether_warts_generator_11 { - background-position: -550px -858px -} - -.sbsprite-nether_warts_generator_10 { - background-position: -572px -858px -} - -.sbsprite-yellow_medium_backpack { - background-position: -594px -858px -} - -.sbsprite-acacia_generator_9 { - background-position: -616px -858px -} - -.sbsprite-arachne_crystal { - background-position: -638px -858px -} - -.sbsprite-acacia_generator_8 { - background-position: -660px -858px -} - -.sbsprite-acacia_generator_7 { - background-position: -682px -858px -} - -.sbsprite-helix { - background-position: -704px -858px -} - -.sbsprite-acacia_generator_6 { - background-position: -726px -858px -} - -.sbsprite-mutant_nether_stalk { - background-position: -748px -858px -} - -.sbsprite-acacia_generator_5 { - background-position: -770px -858px -} - -.sbsprite-acacia_generator_4 { - background-position: -792px -858px -} - -.sbsprite-acacia_generator_3 { - background-position: -814px -858px -} - -.sbsprite-acacia_generator_2 { - background-position: -836px -858px -} - -.sbsprite-acacia_generator_1 { - background-position: -858px -858px -} - -.sbsprite-orange_greater_backpack { - background-position: -880px -858px -} - -.sbsprite-boss_collection_professor { - background-position: -902px -858px -} - -.sbsprite-soulflow_engine { - background-position: -924px -858px -} - -.sbsprite-armor_showcase { - background-position: -946px -858px -} - -.sbsprite-gingerbread_2 { - background-position: -968px -858px -} - -.sbsprite-gingerbread_1 { - background-position: -990px -858px -} - -.sbsprite-gingerbread_6 { - background-position: -1012px -858px -} - -.sbsprite-gingerbread_5 { - background-position: -1034px -858px -} - -.sbsprite-gingerbread_4 { - background-position: 0 -880px -} - -.sbsprite-small_backpack { - background-position: -22px -880px -} - -.sbsprite-gingerbread_3 { - background-position: -44px -880px -} - -.sbsprite-gingerbread_9 { - background-position: -66px -880px -} - -.sbsprite-gingerbread_8 { - background-position: -88px -880px -} - -.sbsprite-gingerbread_7 { - background-position: -110px -880px -} - -.sbsprite-small_fishing_sack { - background-position: -132px -880px -} - -.sbsprite-fast_travel_castle { - background-position: -154px -880px -} - -.sbsprite-glacite_jewel { - background-position: -176px -880px -} - -.sbsprite-medium_agronomy_sack { - background-position: -198px -880px -} - -.sbsprite-mining_fortune { - background-position: -220px -880px -} - -.sbsprite-pet_item_spooky_cupcake { - background-position: -242px -880px -} - -.sbsprite-red_medium_backpack { - background-position: -264px -880px -} - -.sbsprite-third_master_star { - background-position: -286px -880px -} - -.sbsprite-pet_skin_phoenix_ice { - background-position: -308px -880px -} - -.sbsprite-golem_hat { - background-position: -330px -880px -} - -.sbsprite-ghost_personality { - background-position: -352px -880px -} - -.sbsprite-epoch_cake_yellow { - background-position: -374px -880px -} - -.sbsprite-creeper_generator_11 { - background-position: -396px -880px -} - -.sbsprite-creeper_generator_10 { - background-position: -418px -880px -} - -.sbsprite-magenta_medium_backpack { - background-position: -440px -880px -} - -.sbsprite-pet_skin_elephant_green { - background-position: -462px -880px -} - -.sbsprite-soulflow_pile { - background-position: -484px -880px -} - -.sbsprite-pumpkin_personality { - background-position: -506px -880px -} - -.sbsprite-small_slayer_sack { - background-position: -528px -880px -} - -.sbsprite-poisoned_candle { - background-position: -550px -880px -} - -.sbsprite-bestiary_crimson_isle { - background-position: -572px -880px -} - -.sbsprite-ring_potion_affinity { - background-position: -594px -880px -} - -.sbsprite-rock_gemstone { - background-position: -616px -880px -} - -.sbsprite-blood_god_crest { - background-position: -638px -880px -} - -.sbsprite-judgement_core { - background-position: -660px -880px -} - -.sbsprite-rune_tidal { - background-position: -682px -880px -} - -.sbsprite-lava_talisman { - background-position: -704px -880px -} - -.sbsprite-revived_heart { - background-position: -726px -880px -} - -.sbsprite-killer_personality { - background-position: -748px -880px -} - -.sbsprite-snow_suit_helmet { - background-position: -770px -880px -} - -.sbsprite-blobfish_hat { - background-position: -792px -880px -} - -.sbsprite-stool { - background-position: -814px -880px -} - -.sbsprite-builder_blue_corn { - background-position: -836px -880px -} - -.sbsprite-pulpous_orange_juice { - background-position: -858px -880px -} - -.sbsprite-fast_travel_drag { - background-position: -880px -880px -} - -.sbsprite-tank_dungeon_ability_2 { - background-position: -902px -880px -} - -.sbsprite-tank_dungeon_ability_1 { - background-position: -924px -880px -} - -.sbsprite-treasure_talisman { - background-position: -946px -880px -} - -.sbsprite-bookcase { - background-position: -968px -880px -} - -.sbsprite-skeletor_helmet { - background-position: -990px -880px -} - -.sbsprite-unstable_baby { - background-position: -1012px -880px -} - -.sbsprite-large_combat_sack { - background-position: -1034px -880px -} - -.sbsprite-minos_relic { - background-position: 0 -902px -} - -.sbsprite-pet_item_bubblegum { - background-position: -22px -902px -} - -.sbsprite-small_xtree { - background-position: -44px -902px -} - -.sbsprite-epoch_cake_aqua { - background-position: -66px -902px -} - -.sbsprite-wither_blood { - background-position: -88px -902px -} - -.sbsprite-egg_hunt { - background-position: -110px -902px -} - -.sbsprite-rune_fire_spiral { - background-position: -132px -902px -} - -.sbsprite-wither_goggles { - background-position: -154px -902px -} - -.sbsprite-egg_stack { - background-position: -176px -902px -} - -.sbsprite-mummy_candle { - background-position: -198px -902px -} - -.sbsprite-enchanted_book_bundle_big_brain { - background-position: -220px -902px -} - -.sbsprite-builder_beetroot { - background-position: -242px -902px -} - -.sbsprite-rabbit_generator_11 { - background-position: -264px -902px -} - -.sbsprite-rabbit_generator_10 { - background-position: -286px -902px -} - -.sbsprite-rabbit_generator_12 { - background-position: -308px -902px -} - -.sbsprite-rotten_apple { - background-position: -330px -902px -} - -.sbsprite-etherwarp_merger { - background-position: -352px -902px -} - -.sbsprite-redstone_generator_11 { - background-position: -374px -902px -} - -.sbsprite-redstone_generator_10 { - background-position: -396px -902px -} - -.sbsprite-protector_baby { - background-position: -418px -902px -} - -.sbsprite-fast_travel_deep { - background-position: -440px -902px -} - -.sbsprite-polished_pumpkin { - background-position: -462px -902px -} - -.sbsprite-redstone_generator_12 { - background-position: -484px -902px -} - -.sbsprite-tic_tac_toe { - background-position: -506px -902px -} - -.sbsprite-foraging_2_portal { - background-position: -528px -902px -} - -.sbsprite-recombobulator_3000 { - background-position: -550px -902px -} - -.sbsprite-sand_generator_7 { - background-position: -572px -902px -} - -.sbsprite-sand_generator_8 { - background-position: -594px -902px -} - -.sbsprite-sand_generator_9 { - background-position: -616px -902px -} - -.sbsprite-scarecrow_personality { - background-position: -638px -902px -} - -.sbsprite-pet_skin_sheep_aqua { - background-position: -660px -902px -} - -.sbsprite-skull_10 { - background-position: -682px -902px -} - -.sbsprite-melon_personality { - background-position: -704px -902px -} - -.sbsprite-skull_11 { - background-position: -726px -902px -} - -.sbsprite-flawed_amethyst_gem { - background-position: -748px -902px -} - -.sbsprite-revive_stone { - background-position: -770px -902px -} - -.sbsprite-creeper_generator_9 { - background-position: -792px -902px -} - -.sbsprite-creeper_generator_8 { - background-position: -814px -902px -} - -.sbsprite-potato_basket { - background-position: -836px -902px -} - -.sbsprite-diamond_essence { - background-position: -858px -902px -} - -.sbsprite-creeper_generator_7 { - background-position: -880px -902px -} - -.sbsprite-creeper_generator_6 { - background-position: -902px -902px -} - -.sbsprite-creeper_generator_5 { - background-position: -924px -902px -} - -.sbsprite-creeper_generator_4 { - background-position: -946px -902px -} - -.sbsprite-creeper_generator_3 { - background-position: -968px -902px -} - -.sbsprite-creeper_generator_2 { - background-position: -990px -902px -} - -.sbsprite-sand_generator_1 { - background-position: -1012px -902px -} - -.sbsprite-creeper_generator_1 { - background-position: -1034px -902px -} - -.sbsprite-sand_generator_2 { - background-position: 0 -924px -} - -.sbsprite-sand_generator_3 { - background-position: -22px -924px -} - -.sbsprite-sand_generator_4 { - background-position: -44px -924px -} - -.sbsprite-sand_generator_5 { - background-position: -66px -924px -} - -.sbsprite-jerry_box_golden { - background-position: -88px -924px -} - -.sbsprite-sand_generator_6 { - background-position: -110px -924px -} - -.sbsprite-seal_of_the_family { - background-position: -132px -924px -} - -.sbsprite-gemstone_chamber { - background-position: -154px -924px -} - -.sbsprite-aqua { - background-position: -176px -924px -} - -.sbsprite-ice_hunk { - background-position: -198px -924px -} - -.sbsprite-crystal_ball { - background-position: -220px -924px -} - -.sbsprite-ice_chair { - background-position: -242px -924px -} - -.sbsprite-sandcastle_11 { - background-position: -264px -924px -} - -.sbsprite-sandcastle_10 { - background-position: -286px -924px -} - -.sbsprite-furnace_plus { - background-position: -308px -924px -} - -.sbsprite-pig_generator_12 { - background-position: -330px -924px -} - -.sbsprite-pig_generator_11 { - background-position: -352px -924px -} - -.sbsprite-pig_generator_10 { - background-position: -374px -924px -} - -.sbsprite-nether_artifact { - background-position: -396px -924px -} - -.sbsprite-chicken_generator_1 { - background-position: -418px -924px -} - -.sbsprite-sniper_helmet { - background-position: -440px -924px -} - -.sbsprite-chicken_generator_4 { - background-position: -462px -924px -} - -.sbsprite-chicken_generator_5 { - background-position: -484px -924px -} - -.sbsprite-heat_core { - background-position: -506px -924px -} - -.sbsprite-chicken_generator_2 { - background-position: -528px -924px -} - -.sbsprite-wishing_compass { - background-position: -550px -924px -} - -.sbsprite-chicken_generator_3 { - background-position: -572px -924px -} - -.sbsprite-desk { - background-position: -594px -924px -} - -.sbsprite-white_large_backpack { - background-position: -616px -924px -} - -.sbsprite-hub_portal { - background-position: -638px -924px -} - -.sbsprite-spruce_generator_10 { - background-position: -660px -924px -} - -.sbsprite-spruce_generator_11 { - background-position: -682px -924px -} - -.sbsprite-chicken_generator_8 { - background-position: -704px -924px -} - -.sbsprite-mithril_generator_9 { - background-position: -726px -924px -} - -.sbsprite-scarf_thesis { - background-position: -748px -924px -} - -.sbsprite-chicken_generator_9 { - background-position: -770px -924px -} - -.sbsprite-mithril_generator_8 { - background-position: -792px -924px -} - -.sbsprite-fast_travel_da { - background-position: -814px -924px -} - -.sbsprite-chicken_generator_6 { - background-position: -836px -924px -} - -.sbsprite-mithril_generator_7 { - background-position: -858px -924px -} - -.sbsprite-zombie_ring { - background-position: -880px -924px -} - -.sbsprite-chicken_generator_7 { - background-position: -902px -924px -} - -.sbsprite-mithril_generator_6 { - background-position: -924px -924px -} - -.sbsprite-wood_chest { - background-position: -946px -924px -} - -.sbsprite-glowstone_generator_8 { - background-position: -968px -924px -} - -.sbsprite-mithril_generator_1 { - background-position: -990px -924px -} - -.sbsprite-pink_bunny_12 { - background-position: -1012px -924px -} - -.sbsprite-purple_medium_backpack { - background-position: -1034px -924px -} - -.sbsprite-glowstone_generator_7 { - background-position: 0 -946px -} - -.sbsprite-pink_bunny_11 { - background-position: -22px -946px -} - -.sbsprite-pink_bunny_10 { - background-position: -44px -946px -} - -.sbsprite-glowstone_generator_9 { - background-position: -66px -946px -} - -.sbsprite-glowstone_generator_4 { - background-position: -88px -946px -} - -.sbsprite-mithril_generator_5 { - background-position: -110px -946px -} - -.sbsprite-glowstone_generator_3 { - background-position: -132px -946px -} - -.sbsprite-mithril_generator_4 { - background-position: -154px -946px -} - -.sbsprite-glowstone_generator_6 { - background-position: -176px -946px -} - -.sbsprite-mithril_generator_3 { - background-position: -198px -946px -} - -.sbsprite-glowstone_generator_5 { - background-position: -220px -946px -} - -.sbsprite-mithril_generator_2 { - background-position: -242px -946px -} - -.sbsprite-very_official_yellow_rock { - background-position: -264px -946px -} - -.sbsprite-bat_person_talisman { - background-position: -286px -946px -} - -.sbsprite-cyan_large_backpack { - background-position: -308px -946px -} - -.sbsprite-fairy_soul { - background-position: -330px -946px -} - -.sbsprite-ghost_8 { - background-position: -352px -946px -} - -.sbsprite-ghost_9 { - background-position: -374px -946px -} - -.sbsprite-power_talisman { - background-position: -396px -946px -} - -.sbsprite-ghost_4 { - background-position: -418px -946px -} - -.sbsprite-decent_coffee { - background-position: -440px -946px -} - -.sbsprite-ghost_5 { - background-position: -462px -946px -} - -.sbsprite-ember_fragment { - background-position: -484px -946px -} - -.sbsprite-ghost_6 { - background-position: -506px -946px -} - -.sbsprite-ghost_7 { - background-position: -528px -946px -} - -.sbsprite-dull_shark_tooth_necklace { - background-position: -550px -946px -} - -.sbsprite-ghost_1 { - background-position: -572px -946px -} - -.sbsprite-ghost_2 { - background-position: -594px -946px -} - -.sbsprite-ghost_3 { - background-position: -616px -946px -} - -.sbsprite-gold_gift { - background-position: -638px -946px -} - -.sbsprite-tank_wither_helmet { - background-position: -660px -946px -} - -.sbsprite-spider_ring { - background-position: -682px -946px -} - -.sbsprite-santa_10 { - background-position: -704px -946px -} - -.sbsprite-santa_11 { - background-position: -726px -946px -} - -.sbsprite-yellow_greater_backpack { - background-position: -748px -946px -} - -.sbsprite-sapphire_crystal { - background-position: -770px -946px -} - -.sbsprite-mayor_foxy { - background-position: -792px -946px -} - -.sbsprite-starred_shadow_assassin_helmet { - background-position: -814px -946px -} - -.sbsprite-god_potion_2 { - background-position: -836px -946px -} - -.sbsprite-goblin_helmet { - background-position: -858px -946px -} - -.sbsprite-diamond_generator_5 { - background-position: -880px -946px -} - -.sbsprite-lesser_orb_of_healing { - background-position: -902px -946px -} - -.sbsprite-diamond_generator_6 { - background-position: -924px -946px -} - -.sbsprite-diamond_generator_3 { - background-position: -946px -946px -} - -.sbsprite-pet_skin_jerry_red_elf { - background-position: -968px -946px -} - -.sbsprite-diamond_generator_4 { - background-position: -990px -946px -} - -.sbsprite-lady_bug_10 { - background-position: -1012px -946px -} - -.sbsprite-diamond_generator_1 { - background-position: -1034px -946px -} - -.sbsprite-star_decorations { - background-position: 0 -968px -} - -.sbsprite-diamond_generator_2 { - background-position: -22px -968px -} - -.sbsprite-bingo_artifact { - background-position: -44px -968px -} - -.sbsprite-diamond_generator_9 { - background-position: -66px -968px -} - -.sbsprite-lady_bug_11 { - background-position: -88px -968px -} - -.sbsprite-diamond_generator_7 { - background-position: -110px -968px -} - -.sbsprite-diamond_generator_8 { - background-position: -132px -968px -} - -.sbsprite-heart_of_the_mountain { - background-position: -154px -968px -} - -.sbsprite-glowstone_generator_2 { - background-position: -176px -968px -} - -.sbsprite-glowstone_generator_1 { - background-position: -198px -968px -} - -.sbsprite-pink_donut_personality { - background-position: -220px -968px -} - -.sbsprite-artifact_of_space { - background-position: -242px -968px -} - -.sbsprite-lesser_soulflow_engine { - background-position: -264px -968px -} - -.sbsprite-mithril_crystal { - background-position: -286px -968px -} - -.sbsprite-young_fragment { - background-position: -308px -968px -} - -.sbsprite-master_catacombs_pass_10 { - background-position: -330px -968px -} - -.sbsprite-flying_bats { - background-position: -352px -968px -} - -.sbsprite-light_blue_medium_backpack { - background-position: -374px -968px -} - -.sbsprite-fast_travel_hub { - background-position: -396px -968px -} - -.sbsprite-pumpkin_generator_2 { - background-position: -418px -968px -} - -.sbsprite-pumpkin_generator_1 { - background-position: -440px -968px -} - -.sbsprite-pumpkin_generator_4 { - background-position: -462px -968px -} - -.sbsprite-end_helmet { - background-position: -484px -968px -} - -.sbsprite-pumpkin_generator_3 { - background-position: -506px -968px -} - -.sbsprite-pumpkin_generator_6 { - background-position: -528px -968px -} - -.sbsprite-titanium_talisman { - background-position: -550px -968px -} - -.sbsprite-pumpkin_generator_5 { - background-position: -572px -968px -} - -.sbsprite-reaper_gem { - background-position: -594px -968px -} - -.sbsprite-rune_zap { - background-position: -616px -968px -} - -.sbsprite-pumpkin_generator_8 { - background-position: -638px -968px -} - -.sbsprite-pumpkin_generator_7 { - background-position: -660px -968px -} - -.sbsprite-pumpkin_generator_9 { - background-position: -682px -968px -} - -.sbsprite-crooked_artifact { - background-position: -704px -968px -} - -.sbsprite-haste_ring { - background-position: -726px -968px -} - -.sbsprite-soulflow_battery { - background-position: -748px -968px -} - -.sbsprite-medium_mining_sack { - background-position: -770px -968px -} - -.sbsprite-skull_1 { - background-position: -792px -968px -} - -.sbsprite-coffin { - background-position: -814px -968px -} - -.sbsprite-chest_shelves { - background-position: -836px -968px -} - -.sbsprite-power_ring { - background-position: -858px -968px -} - -.sbsprite-white_medium_backpack { - background-position: -880px -968px -} - -.sbsprite-divan_fragment { - background-position: -902px -968px -} - -.sbsprite-skull_8 { - background-position: -924px -968px -} - -.sbsprite-gold_essence { - background-position: -946px -968px -} - -.sbsprite-skull_9 { - background-position: -968px -968px -} - -.sbsprite-skull_6 { - background-position: -990px -968px -} - -.sbsprite-skull_7 { - background-position: -1012px -968px -} - -.sbsprite-skull_4 { - background-position: -1034px -968px -} - -.sbsprite-skull_5 { - background-position: 0 -990px -} - -.sbsprite-skull_2 { - background-position: -22px -990px -} - -.sbsprite-skull_3 { - background-position: -44px -990px -} - -.sbsprite-black_jumbo_backpack { - background-position: -66px -990px -} - -.sbsprite-fast_travel_mines { - background-position: -88px -990px -} - -.sbsprite-skull_vase { - background-position: -110px -990px -} - -.sbsprite-fishing_generator_8 { - background-position: -132px -990px -} - -.sbsprite-fishing_generator_7 { - background-position: -154px -990px -} - -.sbsprite-fishing_generator_6 { - background-position: -176px -990px -} - -.sbsprite-fishing_generator_5 { - background-position: -198px -990px -} - -.sbsprite-fishing_generator_4 { - background-position: -220px -990px -} - -.sbsprite-lime_jumbo_backpack { - background-position: -242px -990px -} - -.sbsprite-fishing_generator_3 { - background-position: -264px -990px -} - -.sbsprite-fishing_generator_2 { - background-position: -286px -990px -} - -.sbsprite-fishing_generator_1 { - background-position: -308px -990px -} - -.sbsprite-fishing_generator_9 { - background-position: -330px -990px -} - -.sbsprite-yellow_large_backpack { - background-position: -352px -990px -} - -.sbsprite-amber_crystal { - background-position: -374px -990px -} - -.sbsprite-suspicious_vial { - background-position: -396px -990px -} - -.sbsprite-campfire { - background-position: -418px -990px -} - -.sbsprite-snow_generator_4 { - background-position: -440px -990px -} - -.sbsprite-snow_generator_5 { - background-position: -462px -990px -} - -.sbsprite-ring_of_space { - background-position: -484px -990px -} - -.sbsprite-snow_generator_6 { - background-position: -506px -990px -} - -.sbsprite-talisman_enrichment_walk_speed { - background-position: -528px -990px -} - -.sbsprite-snow_generator_7 { - background-position: -550px -990px -} - -.sbsprite-snow_generator_1 { - background-position: -572px -990px -} - -.sbsprite-snow_generator_2 { - background-position: -594px -990px -} - -.sbsprite-snow_generator_3 { - background-position: -616px -990px -} - -.sbsprite-lime_medium_backpack { - background-position: -638px -990px -} - -.sbsprite-end_stone_1 { - background-position: -660px -990px -} - -.sbsprite-strong_fragment { - background-position: -682px -990px -} - -.sbsprite-small_foraging_sack { - background-position: -704px -990px -} - -.sbsprite-synthetic_heart { - background-position: -726px -990px -} - -.sbsprite-end_stone_4 { - background-position: -748px -990px -} - -.sbsprite-diamond_sadan_head { - background-position: -770px -990px -} - -.sbsprite-end_stone_5 { - background-position: -792px -990px -} - -.sbsprite-end_stone_2 { - background-position: -814px -990px -} - -.sbsprite-end_stone_3 { - background-position: -836px -990px -} - -.sbsprite-diamond_bonzo_head { - background-position: -858px -990px -} - -.sbsprite-end_stone_8 { - background-position: -880px -990px -} - -.sbsprite-end_stone_9 { - background-position: -902px -990px -} - -.sbsprite-end_stone_6 { - background-position: -924px -990px -} - -.sbsprite-end_stone_7 { - background-position: -946px -990px -} - -.sbsprite-snow_generator_8 { - background-position: -968px -990px -} - -.sbsprite-snow_generator_9 { - background-position: -990px -990px -} - -.sbsprite-ender_stone_generator_4 { - background-position: -1012px -990px -} - -.sbsprite-epoch_cake_blue { - background-position: -1034px -990px -} - -.sbsprite-sand_generator_10 { - background-position: 0 -1012px -} - -.sbsprite-ender_stone_generator_3 { - background-position: -22px -1012px -} - -.sbsprite-sand_generator_11 { - background-position: -44px -1012px -} - -.sbsprite-ender_stone_generator_2 { - background-position: -66px -1012px -} - -.sbsprite-ender_stone_generator_1 { - background-position: -88px -1012px -} - -.sbsprite-pet_skin_sheep_neon_yellow { - background-position: -110px -1012px -} - -.sbsprite-fast_travel_spider { - background-position: -132px -1012px -} - -.sbsprite-pet_skin_sheep_blue { - background-position: -154px -1012px -} - -.sbsprite-epoch_cake_black { - background-position: -176px -1012px -} - -.sbsprite-wise_baby { - background-position: -198px -1012px -} - -.sbsprite-chronomatron { - background-position: -220px -1012px -} - -.sbsprite-scarf_grimoire { - background-position: -242px -1012px -} - -.sbsprite-bestiary_hub { - background-position: -264px -1012px -} - -.sbsprite-ender_stone_generator_9 { - background-position: -286px -1012px -} - -.sbsprite-ender_stone_generator_8 { - background-position: -308px -1012px -} - -.sbsprite-ender_stone_generator_7 { - background-position: -330px -1012px -} - -.sbsprite-ender_stone_generator_6 { - background-position: -352px -1012px -} - -.sbsprite-ender_stone_generator_5 { - background-position: -374px -1012px -} - -.sbsprite-small_gemstone_sack { - background-position: -396px -1012px -} - -.sbsprite-flawless_ruby_gem { - background-position: -418px -1012px -} - -.sbsprite-gold_necron_head { - background-position: -440px -1012px -} - -.sbsprite-small_husbandry_sack { - background-position: -462px -1012px -} - -.sbsprite-reaper_orb { - background-position: -484px -1012px -} - -.sbsprite-blaze_helmet { - background-position: -506px -1012px -} - -.sbsprite-bee_personality { - background-position: -528px -1012px -} - -.sbsprite-fishing { - background-position: -550px -1012px -} - -.sbsprite-titanium_ring { - background-position: -572px -1012px -} - -.sbsprite-lime { - background-position: -594px -1012px -} - -.sbsprite-feather_talisman { - background-position: -616px -1012px -} - -.sbsprite-rough_jasper_gem { - background-position: -638px -1012px -} - -.sbsprite-goblin_omelette_spicy { - background-position: -660px -1012px -} - -.sbsprite-gold_generator_11 { - background-position: -682px -1012px -} - -.sbsprite-gold_generator_10 { - background-position: -704px -1012px -} - -.sbsprite-gold_generator_12 { - background-position: -726px -1012px -} - -.sbpet-sheep_green { - background-position: 0 0 -} - -.sbpet-sheep_yellow { - background-position: -20px 0 -} - -.sbpet-bal { - background-position: -40px 0 -} - -.sbpet-grandma_wolf { - background-position: -60px 0 -} - -.sbpet-sheep_orange { - background-position: -80px 0 -} - -.sbpet-sheep_red { - background-position: -100px 0 -} - -.sbpet-bat { - background-position: -120px 0 -} - -.sbpet-elephant_red { - background-position: -140px 0 -} - -.sbpet-rabbit { - background-position: -160px 0 -} - -.sbpet-megalodon_baby { - background-position: -180px 0 -} - -.sbpet-silverfish { - background-position: -200px 0 -} - -.sbpet-ghoul { - background-position: -220px 0 -} - -.sbpet-pigman { - background-position: 0 -22px -} - -.sbpet-elephant_orange { - background-position: -20px -22px -} - -.sbpet-jerry { - background-position: -40px -22px -} - -.sbpet-sheep_neon_yellow { - background-position: -60px -22px -} - -.sbpet-rat { - background-position: -80px -22px -} - -.sbpet-tiger { - background-position: -100px -22px -} - -.sbpet-lion { - background-position: -120px -22px -} - -.sbpet-horse { - background-position: -140px -22px -} - -.sbpet-sheep_neon_green { - background-position: -160px -22px -} - -.sbpet-giraffe { - background-position: -180px -22px -} - -.sbpet-black_cat_ivory { - background-position: -200px -22px -} - -.sbpet-golden_dragon { - background-position: -220px -22px -} - -.sbpet-rock_derp { - background-position: 0 -44px -} - -.sbpet-parrot { - background-position: -20px -44px -} - -.sbpet-sheep_blue { - background-position: -40px -44px -} - -.sbpet-monkey_golden { - background-position: -60px -44px -} - -.sbpet-jellyfish { - background-position: -80px -44px -} - -.sbpet-horse_zombie { - background-position: -100px -44px -} - -.sbpet-sheep_purple { - background-position: -120px -44px -} - -.sbpet-elephant_purple { - background-position: -140px -44px -} - -.sbpet-endermite_radiant { - background-position: -160px -44px -} - -.sbpet-rock { - background-position: -180px -44px -} - -.sbpet-default { - background-position: -200px -44px -} - -.sbpet-blaze { - background-position: -220px -44px -} - -.sbpet-endermite { - background-position: 0 -66px -} - -.sbpet-megalodon_bullhead { - background-position: -20px -66px -} - -.sbpet-hound_beagle { - background-position: -40px -66px -} - -.sbpet-zombie { - background-position: -60px -66px -} - -.sbpet-guardian { - background-position: -80px -66px -} - -.sbpet-scatha { - background-position: -100px -66px -} - -.sbpet-wolf { - background-position: -120px -66px -} - -.sbpet-rabbit_aquamarine { - background-position: -140px -66px -} - -.sbpet-spirit { - background-position: -160px -66px -} - -.sbpet-hound { - background-position: -180px -66px -} - -.sbpet-dragon_neon_purple { - background-position: -200px -66px -} - -.sbpet-tiger_twilight { - background-position: -220px -66px -} - -.sbpet-sheep_light_green { - background-position: 0 -88px -} - -.sbpet-monkey_gorilla { - background-position: -20px -88px -} - -.sbpet-spider { - background-position: -40px -88px -} - -.sbpet-mithril_golem { - background-position: -60px -88px -} - -.sbpet-dolphin_snubnose { - background-position: -80px -88px -} - -.sbpet-snowman { - background-position: -100px -88px -} - -.sbpet-bee { - background-position: -120px -88px -} - -.sbpet-monkey { - background-position: -140px -88px -} - -.sbpet-jerry_red_elf { - background-position: -160px -88px -} - -.sbpet-elephant_pink { - background-position: -180px -88px -} - -.sbpet-sheep_brown { - background-position: -200px -88px -} - -.sbpet-magma_cube { - background-position: -220px -88px -} - -.sbpet-pig { - background-position: 0 -110px -} - -.sbpet-blue_whale { - background-position: -20px -110px -} - -.sbpet-skeleton { - background-position: -40px -110px -} - -.sbpet-phoenix_ice { - background-position: -60px -110px -} - -.sbpet-ammonite { - background-position: -80px -110px -} - -.sbpet-elephant_green { - background-position: -100px -110px -} - -.sbpet-armadillo { - background-position: -120px -110px -} - -.sbpet-dolphin { - background-position: -140px -110px -} - -.sbpet-turtle { - background-position: -160px -110px -} - -.sbpet-dragon_neon_red { - background-position: -180px -110px -} - -.sbpet-tiger_saber_tooth { - background-position: -200px -110px -} - -.sbpet-wither_skeleton { - background-position: -220px -110px -} - -.sbpet-parrot_blue_macaw { - background-position: 0 -132px -} - -.sbpet-ocelot { - background-position: -20px -132px -} - -.sbpet-sheep_light_gray { - background-position: -40px -132px -} - -.sbpet-elephant_blue { - background-position: -60px -132px -} - -.sbpet-chicken_baby_chick { - background-position: -80px -132px -} - -.sbpet-rock_thinking { - background-position: -100px -132px -} - -.sbpet-enderman_slayer { - background-position: -120px -132px -} - -.sbpet-ender_dragon { - background-position: -140px -132px -} - -.sbpet-rabbit_rose { - background-position: -160px -132px -} - -.sbpet-sheep_white { - background-position: -180px -132px -} - -.sbpet-silverfish_fossilized { - background-position: -200px -132px -} - -.sbpet-squid { - background-position: -220px -132px -} - -.sbpet-sheep_light_blue { - background-position: 0 -154px -} - -.sbpet-elephant { - background-position: -20px -154px -} - -.sbpet-golden_dragon_egg { - background-position: -40px -154px -} - -.sbpet-enderman { - background-position: -60px -154px -} - -.sbpet-chicken { - background-position: -80px -154px -} - -.sbpet-parrot_gold_macaw { - background-position: -100px -154px -} - -.sbpet-sheep_gray { - background-position: -120px -154px -} - -.sbpet-rock_cool { - background-position: -140px -154px -} - -.sbpet-rock_laugh { - background-position: -160px -154px -} - -.sbpet-sheep_black { - background-position: -180px -154px -} - -.sbpet-sheep_neon_blue { - background-position: -200px -154px -} - -.sbpet-rock_embarrassed { - background-position: -220px -154px -} - -.sbpet-dragon_neon_blue { - background-position: 0 -176px -} - -.sbpet-sheep { - background-position: -20px -176px -} - -.sbpet-baby_yeti { - background-position: -40px -176px -} - -.sbpet-sheep_aqua { - background-position: -60px -176px -} - -.sbpet-sheep_pink { - background-position: -80px -176px -} - -.sbpet-elephant_monochrome { - background-position: -100px -176px -} - -.sbpet-wolf_henzo_doggo { - background-position: -120px -176px -} - -.sbpet-squid_glow { - background-position: -140px -176px -} - -.sbpet-flying_fish { - background-position: -160px -176px -} - -.sbpet-griffin { - background-position: -180px -176px -} - -.sbpet-jerry_green_elf { - background-position: -200px -176px -} - -.sbpet-dragon_pastel { - background-position: -220px -176px -} - -.sbpet-sheep_neon_red { - background-position: 0 -198px -} - -.sbpet-sheep_magenta { - background-position: -20px -198px -} - -.sbpet-skeleton_horse { - background-position: -40px -198px -} - -.sbpet-megalodon { - background-position: -60px -198px -} - -.sbpet-lion_lioness { - background-position: -80px -198px -} - -.sbpet-tarantula { - background-position: -100px -198px -} - -.sbpet-yeti_grown_up { - background-position: -120px -198px -} - -.sbpet-phoenix { - background-position: -140px -198px -} - -.sbpet-golem { - background-position: -160px -198px -} - -.sbpet-black_cat { - background-position: -180px -198px -} - -.sbpet-whale_orca { - background-position: -200px -198px -} - -.sbpet-rock_smile { - background-position: -220px -198px -} - -.sbpet-wither { - background-position: 0 -220px -} - -.sbpet-black_cat_onyx { - background-position: -20px -220px -} - -.sbspray-AngryTurkey { - background-position: 0 0 -} - -.sbspray-AnotherDimension { - background-position: -128px 0 -} - -.sbspray-BlueArrowE { - background-position: -256px 0 -} - -.sbspray-BlueArrowN { - background-position: -384px 0 -} - -.sbspray-BlueArrowNE { - background-position: -512px 0 -} - -.sbspray-BlueArrowNW { - background-position: -640px 0 -} - -.sbspray-BlueArrowS { - background-position: -768px 0 -} - -.sbspray-BlueArrowSE { - background-position: -896px 0 -} - -.sbspray-BlueArrowSW { - background-position: -1024px 0 -} - -.sbspray-BlueArrowW { - background-position: -1152px 0 -} - -.sbspray-Bonzo { - background-position: 0 -128px -} - -.sbspray-Boom { - background-position: -128px -128px -} - -.sbspray-BunnyGG { - background-position: -256px -128px -} - -.sbspray-ChestGlow { - background-position: -384px -128px -} - -.sbspray-Chill { - background-position: -512px -128px -} - -.sbspray-Chimney { - background-position: -640px -128px -} - -.sbspray-ChocolateFeast { - background-position: -768px -128px -} - -.sbspray-ChristmasTree { - background-position: -896px -128px -} - -.sbspray-Coconut { - background-position: -1024px -128px -} - -.sbspray-Creeper { - background-position: -1152px -128px -} - -.sbspray-EasterBasket { - background-position: 0 -256px -} - -.sbspray-EasterCreeper { - background-position: -128px -256px -} - -.sbspray-EasterEggs { - background-position: -256px -256px -} - -.sbspray-Eek { - background-position: -384px -256px -} - -.sbspray-EggHunt { - background-position: -512px -256px -} - -.sbspray-EggSurprise { - background-position: -640px -256px -} - -.sbspray-Faboolous { - background-position: -768px -256px -} - -.sbspray-FarmingArrowE { - background-position: -896px -256px -} - -.sbspray-FarmingArrowN { - background-position: -1024px -256px -} - -.sbspray-FarmingArrowS { - background-position: -1152px -256px -} - -.sbspray-FarmingArrowW { - background-position: 0 -384px -} - -.sbspray-FoundU { - background-position: -128px -384px -} - -.sbspray-Garlic { - background-position: -256px -384px -} - -.sbspray-GenericArmor { - background-position: -384px -384px -} - -.sbspray-GenericBooks { - background-position: -512px -384px -} - -.sbspray-GenericFishing { - background-position: -640px -384px -} - -.sbspray-GenericMob { - background-position: -768px -384px -} - -.sbspray-GenericOres { - background-position: -896px -384px -} - -.sbspray-GenericPotions { - background-position: -1024px -384px -} - -.sbspray-GenericWeapons { - background-position: -1152px -384px -} - -.sbspray-GoldenEgg { - background-position: 0 -512px -} - -.sbspray-Heart { - background-position: -128px -512px -} - -.sbspray-Hypixel { - background-position: -256px -512px -} - -.sbspray-HypixelDark { - background-position: -384px -512px -} - -.sbspray-IceCream { - background-position: -512px -512px -} - -.sbspray-Kite { - background-position: -640px -512px -} - -.sbspray-LetUsIn { - background-position: -768px -512px -} - -.sbspray-Lifebelt { - background-position: -896px -512px -} - -.sbspray-MinionAnimals { - background-position: -1024px -512px -} - -.sbspray-MinionFarming { - background-position: -1152px -512px -} - -.sbspray-MinionForaging { - background-position: 0 -640px -} - -.sbspray-MinionMining { - background-position: -128px -640px -} - -.sbspray-MinionMisc { - background-position: -256px -640px -} - -.sbspray-MinionMonsters { - background-position: -384px -640px -} - -.sbspray-OnFire { - background-position: -512px -640px -} - -.sbspray-Porkchop { - background-position: -640px -640px -} - -.sbspray-PortalArrowE { - background-position: -768px -640px -} - -.sbspray-PortalArrowN { - background-position: -896px -640px -} - -.sbspray-PortalArrowS { - background-position: -1024px -640px -} - -.sbspray-PortalArrowW { - background-position: -1152px -640px -} - -.sbspray-Presents { - background-position: 0 -768px -} - -.sbspray-Puffer { - background-position: -128px -768px -} - -.sbspray-PuppySurprise { - background-position: -256px -768px -} - -.sbspray-RabbitCostume { - background-position: -384px -768px -} - -.sbspray-RedArrowE { - background-position: -512px -768px -} - -.sbspray-RedArrowN { - background-position: -640px -768px -} - -.sbspray-RedArrowNE { - background-position: -768px -768px -} - -.sbspray-RedArrowNW { - background-position: -896px -768px -} - -.sbspray-RedArrowS { - background-position: -1024px -768px -} - -.sbspray-RedArrowSE { - background-position: -1152px -768px -} - -.sbspray-RedArrowSW { - background-position: 0 -896px -} - -.sbspray-RedArrowW { - background-position: -128px -896px -} - -.sbspray-SandCastleH { - background-position: -256px -896px -} - -.sbspray-Sandcastle { - background-position: -384px -896px -} - -.sbspray-SantaJerry { - background-position: -512px -896px -} - -.sbspray-SantaSlips { - background-position: -640px -896px -} - -.sbspray-Sign { - background-position: -768px -896px -} - -.sbspray-SkyBlockChristmas { - background-position: -896px -896px -} - -.sbspray-SniperSnowball { - background-position: -1024px -896px -} - -.sbspray-Snowball { - background-position: -1152px -896px -} - -.sbspray-StorageArrowE { - background-position: 0 -1024px -} - -.sbspray-StorageArrowN { - background-position: -128px -1024px -} - -.sbspray-StorageArrowS { - background-position: -256px -1024px -} - -.sbspray-StorageArrowW { - background-position: -384px -1024px -} - -.sbspray-Surfing { - background-position: -512px -1024px -} - -.sbspray-TheWrongEggs { - background-position: -640px -1024px -} - -.sbspray-Trap { - background-position: -768px -1024px -} - -.sbspray-TrickOrTreat { - background-position: -896px -1024px -} - -.sbspray-UndeadJerry { - background-position: -1024px -1024px -} - -.sbspray-Volleyball { - background-position: -1152px -1024px -} - -.sbspray-Watcher { - background-position: 0 -1152px -} - -.sbspray-Whoosh { - background-position: -128px -1152px -} - -.sbspray-WitchPlease { - background-position: -256px -1152px -} - -.sbspray-Wreath { - background-position: -384px -1152px -} - -.sbspray-YellowArrowE { - background-position: -512px -1152px -} - -.sbspray-YellowArrowN { - background-position: -640px -1152px -} - -.sbspray-YellowArrowNE { - background-position: -768px -1152px -} - -.sbspray-YellowArrowNW { - background-position: -896px -1152px -} - -.sbspray-YellowArrowS { - background-position: -1024px -1152px -} - -.sbspray-YellowArrowSE { - background-position: -1152px -1152px -} - -.sbspray-YellowArrowSW { - background-position: -1280px 0 -} - -.sbspray-YellowArrowW { - background-position: -1280px -128px -} - -.mcsprite-acacia_boat { - background-position: 0 0 -} - -.mcsprite-acacia_button { - background-position: -32px 0 -} - -.mcsprite-acacia_door { - background-position: -64px 0 -} - -.mcsprite-acacia_fence { - background-position: -96px 0 -} - -.mcsprite-acacia_fence_gate { - background-position: -128px 0 -} - -.mcsprite-acacia_leaves { - background-position: -160px 0 -} - -.mcsprite-acacia_log { - background-position: -192px 0 -} - -.mcsprite-acacia_planks { - background-position: -224px 0 -} - -.mcsprite-acacia_pressure_plate { - background-position: -256px 0 -} - -.mcsprite-acacia_sapling { - background-position: -288px 0 -} - -.mcsprite-acacia_sign { - background-position: -320px 0 -} - -.mcsprite-acacia_slab { - background-position: -352px 0 -} - -.mcsprite-acacia_stairs { - background-position: -384px 0 -} - -.mcsprite-acacia_trapdoor { - background-position: -416px 0 -} - -.mcsprite-acacia_wood { - background-position: -448px 0 -} - -.mcsprite-acacia_wood_button { - background-position: -480px 0 -} - -.mcsprite-acacia_wood_door { - background-position: -512px 0 -} - -.mcsprite-acacia_wood_fence { - background-position: -544px 0 -} - -.mcsprite-acacia_wood_fence_gate { - background-position: -576px 0 -} - -.mcsprite-acacia_wood_planks { - background-position: -608px 0 -} - -.mcsprite-acacia_wood_pressure_plate { - background-position: -640px 0 -} - -.mcsprite-acacia_wood_sign { - background-position: -672px 0 -} - -.mcsprite-acacia_wood_slab { - background-position: -704px 0 -} - -.mcsprite-acacia_wood_stairs { - background-position: -736px 0 -} - -.mcsprite-acacia_wood_trapdoor { - background-position: -768px 0 -} - -.mcsprite-activator_rail { - background-position: -800px 0 -} - -.mcsprite-adult_carrots { - background-position: -832px 0 -} - -.mcsprite-adult_nether_warts { - background-position: -864px 0 -} - -.mcsprite-adult_potatoes { - background-position: -896px 0 -} - -.mcsprite-adult_wheat_crops { - background-position: -928px 0 -} - -.mcsprite-air { - background-position: -960px 0 -} - -.mcsprite-allium { - background-position: -992px 0 -} - -.mcsprite-amethyst_cluster { - background-position: -1024px 0 -} - -.mcsprite-amethyst_shard { - background-position: -1056px 0 -} - -.mcsprite-ancient_debris { - background-position: -1088px 0 -} - -.mcsprite-andesite { - background-position: -1120px 0 -} - -.mcsprite-andesite_slab { - background-position: -1152px 0 -} - -.mcsprite-andesite_stairs { - background-position: -1184px 0 -} - -.mcsprite-andesite_wall { - background-position: -1216px 0 -} - -.mcsprite-anvil { - background-position: -1248px 0 -} - -.mcsprite-apple { - background-position: 0 -32px -} - -.mcsprite-armor_stand { - background-position: -32px -32px -} - -.mcsprite-arrow { - background-position: -64px -32px -} - -.mcsprite-arrow_loaded_crossbow { - background-position: -96px -32px -} - -.mcsprite-arrow_of_decay { - background-position: -128px -32px -} - -.mcsprite-arrow_of_fire_resistance { - background-position: -160px -32px -} - -.mcsprite-arrow_of_harming { - background-position: -192px -32px -} - -.mcsprite-arrow_of_healing { - background-position: -224px -32px -} - -.mcsprite-arrow_of_invisibility { - background-position: -256px -32px -} - -.mcsprite-arrow_of_leaping { - background-position: -288px -32px -} - -.mcsprite-arrow_of_luck { - background-position: -320px -32px -} - -.mcsprite-arrow_of_night_vision { - background-position: -352px -32px -} - -.mcsprite-arrow_of_poison { - background-position: -384px -32px -} - -.mcsprite-arrow_of_regeneration { - background-position: -416px -32px -} - -.mcsprite-arrow_of_slow_falling { - background-position: -448px -32px -} - -.mcsprite-arrow_of_slowness { - background-position: -480px -32px -} - -.mcsprite-arrow_of_splashing { - background-position: -512px -32px -} - -.mcsprite-arrow_of_strength { - background-position: -544px -32px -} - -.mcsprite-arrow_of_swiftness { - background-position: -576px -32px -} - -.mcsprite-arrow_of_the_turtle_master { - background-position: -608px -32px -} - -.mcsprite-arrow_of_water_breathing { - background-position: -640px -32px -} - -.mcsprite-arrow_of_weakness { - background-position: -672px -32px -} - -.mcsprite-awkward_lingering_potion { - background-position: -704px -32px -} - -.mcsprite-awkward_potion { - background-position: -736px -32px -} - -.mcsprite-awkward_splash_potion { - background-position: -768px -32px -} - -.mcsprite-axolotl_spawn_egg { - background-position: -800px -32px -} - -.mcsprite-azalea { - background-position: -832px -32px -} - -.mcsprite-azalea_leaves { - background-position: -864px -32px -} - -.mcsprite-azure_bluet { - background-position: -896px -32px -} - -.mcsprite-baked_potato { - background-position: -928px -32px -} - -.mcsprite-bamboo { - background-position: -960px -32px -} - -.mcsprite-banner { - background-position: -992px -32px -} - -.mcsprite-barrel { - background-position: -1024px -32px -} - -.mcsprite-barrier { - background-position: -1056px -32px -} - -.mcsprite-basalt { - background-position: -1088px -32px -} - -.mcsprite-bat_spawn_egg { - background-position: -1120px -32px -} - -.mcsprite-beacon { - background-position: -1152px -32px -} - -.mcsprite-bedrock { - background-position: -1184px -32px -} - -.mcsprite-bee_nest { - background-position: -1216px -32px -} - -.mcsprite-bee_spawn_egg { - background-position: -1248px -32px -} - -.mcsprite-beehive { - background-position: 0 -64px -} - -.mcsprite-beetroot { - background-position: -32px -64px -} - -.mcsprite-beetroot_seeds { - background-position: -64px -64px -} - -.mcsprite-beetroot_soup { - background-position: -96px -64px -} - -.mcsprite-beetroots { - background-position: -128px -64px -} - -.mcsprite-bell { - background-position: -160px -64px -} - -.mcsprite-big_dripleaf { - background-position: -192px -64px -} - -.mcsprite-birch_boat { - background-position: -224px -64px -} - -.mcsprite-birch_button { - background-position: -256px -64px -} - -.mcsprite-birch_door { - background-position: -288px -64px -} - -.mcsprite-birch_fence { - background-position: -320px -64px -} - -.mcsprite-birch_fence_gate { - background-position: -352px -64px -} - -.mcsprite-birch_leaves { - background-position: -384px -64px -} - -.mcsprite-birch_log { - background-position: -416px -64px -} - -.mcsprite-birch_planks { - background-position: -448px -64px -} - -.mcsprite-birch_pressure_plate { - background-position: -480px -64px -} - -.mcsprite-birch_sapling { - background-position: -512px -64px -} - -.mcsprite-birch_sign { - background-position: -544px -64px -} - -.mcsprite-birch_slab { - background-position: -576px -64px -} - -.mcsprite-birch_stairs { - background-position: -608px -64px -} - -.mcsprite-birch_trapdoor { - background-position: -640px -64px -} - -.mcsprite-birch_wood { - background-position: -672px -64px -} - -.mcsprite-birch_wood_button { - background-position: -704px -64px -} - -.mcsprite-birch_wood_door { - background-position: -736px -64px -} - -.mcsprite-birch_wood_fence { - background-position: -768px -64px -} - -.mcsprite-birch_wood_fence_gate { - background-position: -800px -64px -} - -.mcsprite-birch_wood_planks { - background-position: -832px -64px -} - -.mcsprite-birch_wood_pressure_plate { - background-position: -864px -64px -} - -.mcsprite-birch_wood_sign { - background-position: -896px -64px -} - -.mcsprite-birch_wood_slab { - background-position: -928px -64px -} - -.mcsprite-birch_wood_stairs { - background-position: -960px -64px -} - -.mcsprite-birch_wood_trapdoor { - background-position: -992px -64px -} - -.mcsprite-black_banner { - background-position: -1024px -64px -} - -.mcsprite-black_bed { - background-position: -1056px -64px -} - -.mcsprite-black_bed_lce { - background-position: -1088px -64px -} - -.mcsprite-black_candle { - background-position: -1120px -64px -} - -.mcsprite-black_carpet { - background-position: -1152px -64px -} - -.mcsprite-black_concrete { - background-position: -1184px -64px -} - -.mcsprite-black_concrete_powder { - background-position: -1216px -64px -} - -.mcsprite-black_dye { - background-position: -1248px -64px -} - -.mcsprite-black_firework_star { - background-position: 0 -96px -} - -.mcsprite-black_glazed_terracotta { - background-position: -32px -96px -} - -.mcsprite-black_shield { - background-position: -64px -96px -} - -.mcsprite-black_shulker_box { - background-position: -96px -96px -} - -.mcsprite-black_stained_glass { - background-position: -128px -96px -} - -.mcsprite-black_stained_glass_pane { - background-position: -160px -96px -} - -.mcsprite-black_terracotta { - background-position: -192px -96px -} - -.mcsprite-black_wool { - background-position: -224px -96px -} - -.mcsprite-blackstone { - background-position: -256px -96px -} - -.mcsprite-blackstone_slab { - background-position: -288px -96px -} - -.mcsprite-blackstone_stairs { - background-position: -320px -96px -} - -.mcsprite-blackstone_wall { - background-position: -352px -96px -} - -.mcsprite-blast_furnace { - background-position: -384px -96px -} - -.mcsprite-blaze_powder { - background-position: -416px -96px -} - -.mcsprite-blaze_rod { - background-position: -448px -96px -} - -.mcsprite-blaze_spawn_egg { - background-position: -480px -96px -} - -.mcsprite-block_of_amethyst { - background-position: -512px -96px -} - -.mcsprite-block_of_coal { - background-position: -544px -96px -} - -.mcsprite-block_of_copper { - background-position: -576px -96px -} - -.mcsprite-block_of_diamond { - background-position: -608px -96px -} - -.mcsprite-block_of_emerald { - background-position: -640px -96px -} - -.mcsprite-block_of_gold { - background-position: -672px -96px -} - -.mcsprite-block_of_iron { - background-position: -704px -96px -} - -.mcsprite-block_of_lapis_lazuli { - background-position: -736px -96px -} - -.mcsprite-block_of_netherite { - background-position: -768px -96px -} - -.mcsprite-block_of_quartz { - background-position: -800px -96px -} - -.mcsprite-block_of_raw_copper { - background-position: -832px -96px -} - -.mcsprite-block_of_raw_gold { - background-position: -864px -96px -} - -.mcsprite-block_of_raw_iron { - background-position: -896px -96px -} - -.mcsprite-block_of_redstone { - background-position: -928px -96px -} - -.mcsprite-blue_banner { - background-position: -960px -96px -} - -.mcsprite-blue_bed { - background-position: -992px -96px -} - -.mcsprite-blue_bed_lce { - background-position: -1024px -96px -} - -.mcsprite-blue_candle { - background-position: -1056px -96px -} - -.mcsprite-blue_carpet { - background-position: -1088px -96px -} - -.mcsprite-blue_concrete { - background-position: -1120px -96px -} - -.mcsprite-blue_concrete_powder { - background-position: -1152px -96px -} - -.mcsprite-blue_dye { - background-position: -1184px -96px -} - -.mcsprite-blue_firework_star { - background-position: -1216px -96px -} - -.mcsprite-blue_glazed_terracotta { - background-position: -1248px -96px -} - -.mcsprite-blue_ice { - background-position: 0 -128px -} - -.mcsprite-blue_orchid { - background-position: -32px -128px -} - -.mcsprite-blue_shield { - background-position: -64px -128px -} - -.mcsprite-blue_shulker_box { - background-position: -96px -128px -} - -.mcsprite-blue_stained_glass { - background-position: -128px -128px -} - -.mcsprite-blue_stained_glass_pane { - background-position: -160px -128px -} - -.mcsprite-blue_terracotta { - background-position: -192px -128px -} - -.mcsprite-blue_wool { - background-position: -224px -128px -} - -.mcsprite-bone { - background-position: -256px -128px -} - -.mcsprite-bone_block { - background-position: -288px -128px -} - -.mcsprite-bone_meal { - background-position: -320px -128px -} - -.mcsprite-book { - background-position: -352px -128px -} - -.mcsprite-book_and_quill { - background-position: -384px -128px -} - -.mcsprite-bookshelf { - background-position: -416px -128px -} - -.mcsprite-bottle_o_enchanting { - background-position: -448px -128px -} - -.mcsprite-bow { - background-position: -480px -128px -} - -.mcsprite-bowl { - background-position: -512px -128px -} - -.mcsprite-brain_coral { - background-position: -544px -128px -} - -.mcsprite-brain_coral_block { - background-position: -576px -128px -} - -.mcsprite-brain_coral_fan { - background-position: -608px -128px -} - -.mcsprite-bread { - background-position: -640px -128px -} - -.mcsprite-brewing_stand { - background-position: -672px -128px -} - -.mcsprite-brick { - background-position: -704px -128px -} - -.mcsprite-brick_slab { - background-position: -736px -128px -} - -.mcsprite-brick_slab_old { - background-position: -768px -128px -} - -.mcsprite-brick_stairs { - background-position: -800px -128px -} - -.mcsprite-brick_wall { - background-position: -832px -128px -} - -.mcsprite-bricks { - background-position: -864px -128px -} - -.mcsprite-bricks_old { - background-position: -896px -128px -} - -.mcsprite-broken_anvil { - background-position: -928px -128px -} - -.mcsprite-broken_elytra { - background-position: -960px -128px -} - -.mcsprite-brown_banner { - background-position: -992px -128px -} - -.mcsprite-brown_bed { - background-position: -1024px -128px -} - -.mcsprite-brown_bed_lce { - background-position: -1056px -128px -} - -.mcsprite-brown_candle { - background-position: -1088px -128px -} - -.mcsprite-brown_carpet { - background-position: -1120px -128px -} - -.mcsprite-brown_concrete { - background-position: -1152px -128px -} - -.mcsprite-brown_concrete_powder { - background-position: -1184px -128px -} - -.mcsprite-brown_dye { - background-position: -1216px -128px -} - -.mcsprite-brown_firework_star { - background-position: -1248px -128px -} - -.mcsprite-brown_glazed_terracotta { - background-position: 0 -160px -} - -.mcsprite-brown_mushroom { - background-position: -32px -160px -} - -.mcsprite-brown_mushroom_block { - background-position: -64px -160px -} - -.mcsprite-brown_shield { - background-position: -96px -160px -} - -.mcsprite-brown_shulker_box { - background-position: -128px -160px -} - -.mcsprite-brown_stained_glass { - background-position: -160px -160px -} - -.mcsprite-brown_stained_glass_pane { - background-position: -192px -160px -} - -.mcsprite-brown_terracotta { - background-position: -224px -160px -} - -.mcsprite-brown_wool { - background-position: -256px -160px -} - -.mcsprite-bubble_column { - background-position: -288px -160px -} - -.mcsprite-bubble_coral { - background-position: -320px -160px -} - -.mcsprite-bubble_coral_block { - background-position: -352px -160px -} - -.mcsprite-bubble_coral_fan { - background-position: -384px -160px -} - -.mcsprite-bucket { - background-position: -416px -160px -} - -.mcsprite-bucket_of_axolotl { - background-position: -448px -160px -} - -.mcsprite-bucket_of_cod { - background-position: -480px -160px -} - -.mcsprite-bucket_of_pufferfish { - background-position: -512px -160px -} - -.mcsprite-bucket_of_salmon { - background-position: -544px -160px -} - -.mcsprite-bucket_of_tropical_fish { - background-position: -576px -160px -} - -.mcsprite-budding_amethyst { - background-position: -608px -160px -} - -.mcsprite-bundle { - background-position: -640px -160px -} - -.mcsprite-buried_treasure_map { - background-position: -672px -160px -} - -.mcsprite-cactus { - background-position: -704px -160px -} - -.mcsprite-cactus_green { - background-position: -736px -160px -} - -.mcsprite-cake { - background-position: -768px -160px -} - -.mcsprite-calcite { - background-position: -800px -160px -} - -.mcsprite-campfire { - background-position: -832px -160px -} - -.mcsprite-candle { - background-position: -864px -160px -} - -.mcsprite-carrot { - background-position: -896px -160px -} - -.mcsprite-carrot_on_a_stick { - background-position: -928px -160px -} - -.mcsprite-cartography_table { - background-position: -960px -160px -} - -.mcsprite-carved_pumpkin { - background-position: -992px -160px -} - -.mcsprite-cast_fishing_rod { - background-position: -1024px -160px -} - -.mcsprite-cat_spawn_egg { - background-position: -1056px -160px -} - -.mcsprite-cauldron { - background-position: -1088px -160px -} - -.mcsprite-cave_air { - background-position: -1120px -160px -} - -.mcsprite-cave_spider_spawn_egg { - background-position: -1152px -160px -} - -.mcsprite-chain { - background-position: -1184px -160px -} - -.mcsprite-chainmail_boots { - background-position: -1216px -160px -} - -.mcsprite-chainmail_chestplate { - background-position: -1248px -160px -} - -.mcsprite-chainmail_helmet { - background-position: 0 -192px -} - -.mcsprite-chainmail_leggings { - background-position: -32px -192px -} - -.mcsprite-charcoal { - background-position: -64px -192px -} - -.mcsprite-chest { - background-position: -96px -192px -} - -.mcsprite-chicken_spawn_egg { - background-position: -128px -192px -} - -.mcsprite-chipped_anvil { - background-position: -160px -192px -} - -.mcsprite-chiseled_deepslate { - background-position: -192px -192px -} - -.mcsprite-chiseled_nether_bricks { - background-position: -224px -192px -} - -.mcsprite-chiseled_polished_blackstone { - background-position: -256px -192px -} - -.mcsprite-chiseled_quartz_block { - background-position: -288px -192px -} - -.mcsprite-chiseled_red_sandstone { - background-position: -320px -192px -} - -.mcsprite-chiseled_sandstone { - background-position: -352px -192px -} - -.mcsprite-chiseled_stone_bricks { - background-position: -384px -192px -} - -.mcsprite-chiseled_stone_bricks_monster_egg { - background-position: -416px -192px -} - -.mcsprite-chorus_flower { - background-position: -448px -192px -} - -.mcsprite-chorus_fruit { - background-position: -480px -192px -} - -.mcsprite-chorus_plant { - background-position: -512px -192px -} - -.mcsprite-clay { - background-position: -544px -192px -} - -.mcsprite-clay_ball { - background-position: -576px -192px -} - -.mcsprite-clock { - background-position: -608px -192px -} - -.mcsprite-clownfish { - background-position: -640px -192px -} - -.mcsprite-coal { - background-position: -672px -192px -} - -.mcsprite-coal_ore { - background-position: -704px -192px -} - -.mcsprite-coarse_dirt { - background-position: -736px -192px -} - -.mcsprite-cobbled_deepslate { - background-position: -768px -192px -} - -.mcsprite-cobbled_deepslate_slab { - background-position: -800px -192px -} - -.mcsprite-cobbled_deepslate_stairs { - background-position: -832px -192px -} - -.mcsprite-cobbled_deepslate_wall { - background-position: -864px -192px -} - -.mcsprite-cobblestone { - background-position: -896px -192px -} - -.mcsprite-cobblestone_monster_egg { - background-position: -928px -192px -} - -.mcsprite-cobblestone_slab { - background-position: -960px -192px -} - -.mcsprite-cobblestone_stairs { - background-position: -992px -192px -} - -.mcsprite-cobblestone_wall { - background-position: -1024px -192px -} - -.mcsprite-cobweb { - background-position: -1056px -192px -} - -.mcsprite-cocoa_beans { - background-position: -1088px -192px -} - -.mcsprite-cod_spawn_egg { - background-position: -1120px -192px -} - -.mcsprite-command_block { - background-position: -1152px -192px -} - -.mcsprite-compass { - background-position: -1184px -192px -} - -.mcsprite-composter { - background-position: -1216px -192px -} - -.mcsprite-conduit { - background-position: -1248px -192px -} - -.mcsprite-cooked_beef { - background-position: 0 -224px -} - -.mcsprite-cooked_chicken { - background-position: -32px -224px -} - -.mcsprite-cooked_cod { - background-position: -64px -224px -} - -.mcsprite-cooked_fish { - background-position: -96px -224px -} - -.mcsprite-cooked_mutton { - background-position: -128px -224px -} - -.mcsprite-cooked_porkchop { - background-position: -160px -224px -} - -.mcsprite-cooked_rabbit { - background-position: -192px -224px -} - -.mcsprite-cooked_salmon { - background-position: -224px -224px -} - -.mcsprite-cookie { - background-position: -256px -224px -} - -.mcsprite-copper_block { - background-position: -288px -224px -} - -.mcsprite-copper_ingot { - background-position: -320px -224px -} - -.mcsprite-copper_ore { - background-position: -352px -224px -} - -.mcsprite-cornflower { - background-position: -384px -224px -} - -.mcsprite-cow_spawn_egg { - background-position: -416px -224px -} - -.mcsprite-cracked_deepslate_bricks { - background-position: -448px -224px -} - -.mcsprite-cracked_deepslate_tiles { - background-position: -480px -224px -} - -.mcsprite-cracked_nether_bricks { - background-position: -512px -224px -} - -.mcsprite-cracked_polished_blackstone_bricks { - background-position: -544px -224px -} - -.mcsprite-cracked_stone_bricks { - background-position: -576px -224px -} - -.mcsprite-cracked_stone_bricks_monster_egg { - background-position: -608px -224px -} - -.mcsprite-crafting_table { - background-position: -640px -224px -} - -.mcsprite-creeper_head { - background-position: -672px -224px -} - -.mcsprite-creeper_spawn_egg { - background-position: -704px -224px -} - -.mcsprite-crimson_button { - background-position: -736px -224px -} - -.mcsprite-crimson_door { - background-position: -768px -224px -} - -.mcsprite-crimson_fence { - background-position: -800px -224px -} - -.mcsprite-crimson_fence_gate { - background-position: -832px -224px -} - -.mcsprite-crimson_fungus { - background-position: -864px -224px -} - -.mcsprite-crimson_hyphae { - background-position: -896px -224px -} - -.mcsprite-crimson_nylium { - background-position: -928px -224px -} - -.mcsprite-crimson_planks { - background-position: -960px -224px -} - -.mcsprite-crimson_pressure_plate { - background-position: -992px -224px -} - -.mcsprite-crimson_roots { - background-position: -1024px -224px -} - -.mcsprite-crimson_sign { - background-position: -1056px -224px -} - -.mcsprite-crimson_slab { - background-position: -1088px -224px -} - -.mcsprite-crimson_stairs { - background-position: -1120px -224px -} - -.mcsprite-crimson_stem { - background-position: -1152px -224px -} - -.mcsprite-crimson_trapdoor { - background-position: -1184px -224px -} - -.mcsprite-crossbow { - background-position: -1216px -224px -} - -.mcsprite-crying_obsidian { - background-position: -1248px -224px -} - -.mcsprite-cut_copper { - background-position: 0 -256px -} - -.mcsprite-cut_copper_block { - background-position: -32px -256px -} - -.mcsprite-cut_copper_slab { - background-position: -64px -256px -} - -.mcsprite-cut_copper_stairs { - background-position: -96px -256px -} - -.mcsprite-cut_red_sandstone { - background-position: -128px -256px -} - -.mcsprite-cut_red_sandstone_slab { - background-position: -160px -256px -} - -.mcsprite-cut_sandstone { - background-position: -192px -256px -} - -.mcsprite-cut_sandstone_slab { - background-position: -224px -256px -} - -.mcsprite-cyan_banner { - background-position: -256px -256px -} - -.mcsprite-cyan_bed { - background-position: -288px -256px -} - -.mcsprite-cyan_bed_lce { - background-position: -320px -256px -} - -.mcsprite-cyan_candle { - background-position: -352px -256px -} - -.mcsprite-cyan_carpet { - background-position: -384px -256px -} - -.mcsprite-cyan_concrete { - background-position: -416px -256px -} - -.mcsprite-cyan_concrete_powder { - background-position: -448px -256px -} - -.mcsprite-cyan_dye { - background-position: -480px -256px -} - -.mcsprite-cyan_firework_star { - background-position: -512px -256px -} - -.mcsprite-cyan_glazed_terracotta { - background-position: -544px -256px -} - -.mcsprite-cyan_shield { - background-position: -576px -256px -} - -.mcsprite-cyan_shulker_box { - background-position: -608px -256px -} - -.mcsprite-cyan_stained_glass { - background-position: -640px -256px -} - -.mcsprite-cyan_stained_glass_pane { - background-position: -672px -256px -} - -.mcsprite-cyan_terracotta { - background-position: -704px -256px -} - -.mcsprite-cyan_wool { - background-position: -736px -256px -} - -.mcsprite-dandelion { - background-position: -768px -256px -} - -.mcsprite-dandelion_yellow { - background-position: -800px -256px -} - -.mcsprite-dark_oak_boat { - background-position: -832px -256px -} - -.mcsprite-dark_oak_button { - background-position: -864px -256px -} - -.mcsprite-dark_oak_door { - background-position: -896px -256px -} - -.mcsprite-dark_oak_fence { - background-position: -928px -256px -} - -.mcsprite-dark_oak_fence_gate { - background-position: -960px -256px -} - -.mcsprite-dark_oak_leaves { - background-position: -992px -256px -} - -.mcsprite-dark_oak_log { - background-position: -1024px -256px -} - -.mcsprite-dark_oak_planks { - background-position: -1056px -256px -} - -.mcsprite-dark_oak_pressure_plate { - background-position: -1088px -256px -} - -.mcsprite-dark_oak_sapling { - background-position: -1120px -256px -} - -.mcsprite-dark_oak_sign { - background-position: -1152px -256px -} - -.mcsprite-dark_oak_slab { - background-position: -1184px -256px -} - -.mcsprite-dark_oak_stairs { - background-position: -1216px -256px -} - -.mcsprite-dark_oak_trapdoor { - background-position: -1248px -256px -} - -.mcsprite-dark_oak_wood { - background-position: 0 -288px -} - -.mcsprite-dark_oak_wood_button { - background-position: -32px -288px -} - -.mcsprite-dark_oak_wood_door { - background-position: -64px -288px -} - -.mcsprite-dark_oak_wood_fence { - background-position: -96px -288px -} - -.mcsprite-dark_oak_wood_fence_gate { - background-position: -128px -288px -} - -.mcsprite-dark_oak_wood_planks { - background-position: -160px -288px -} - -.mcsprite-dark_oak_wood_pressure_plate { - background-position: -192px -288px -} - -.mcsprite-dark_oak_wood_sign { - background-position: -224px -288px -} - -.mcsprite-dark_oak_wood_slab { - background-position: -256px -288px -} - -.mcsprite-dark_oak_wood_stairs { - background-position: -288px -288px -} - -.mcsprite-dark_oak_wood_trapdoor { - background-position: -320px -288px -} - -.mcsprite-dark_prismarine { - background-position: -352px -288px -} - -.mcsprite-dark_prismarine_slab { - background-position: -384px -288px -} - -.mcsprite-dark_prismarine_stairs { - background-position: -416px -288px -} - -.mcsprite-daylight_detector { - background-position: -448px -288px -} - -.mcsprite-daylight_sensor { - background-position: -480px -288px -} - -.mcsprite-dead_brain_coral { - background-position: -512px -288px -} - -.mcsprite-dead_brain_coral_block { - background-position: -544px -288px -} - -.mcsprite-dead_brain_coral_fan { - background-position: -576px -288px -} - -.mcsprite-dead_bubble_coral { - background-position: -608px -288px -} - -.mcsprite-dead_bubble_coral_block { - background-position: -640px -288px -} - -.mcsprite-dead_bubble_coral_fan { - background-position: -672px -288px -} - -.mcsprite-dead_bush { - background-position: -704px -288px -} - -.mcsprite-dead_fire_coral { - background-position: -736px -288px -} - -.mcsprite-dead_fire_coral_block { - background-position: -768px -288px -} - -.mcsprite-dead_fire_coral_fan { - background-position: -800px -288px -} - -.mcsprite-dead_horn_coral { - background-position: -832px -288px -} - -.mcsprite-dead_horn_coral_block { - background-position: -864px -288px -} - -.mcsprite-dead_horn_coral_fan { - background-position: -896px -288px -} - -.mcsprite-dead_tube_coral { - background-position: -928px -288px -} - -.mcsprite-dead_tube_coral_block { - background-position: -960px -288px -} - -.mcsprite-dead_tube_coral_fan { - background-position: -992px -288px -} - -.mcsprite-debug_stick { - background-position: -1024px -288px -} - -.mcsprite-deepslate { - background-position: -1056px -288px -} - -.mcsprite-deepslate_brick_slab { - background-position: -1088px -288px -} - -.mcsprite-deepslate_brick_stairs { - background-position: -1120px -288px -} - -.mcsprite-deepslate_brick_wall { - background-position: -1152px -288px -} - -.mcsprite-deepslate_bricks { - background-position: -1184px -288px -} - -.mcsprite-deepslate_coal_ore { - background-position: -1216px -288px -} - -.mcsprite-deepslate_copper_ore { - background-position: -1248px -288px -} - -.mcsprite-deepslate_diamond_ore { - background-position: 0 -320px -} - -.mcsprite-deepslate_emerald_ore { - background-position: -32px -320px -} - -.mcsprite-deepslate_gold_ore { - background-position: -64px -320px -} - -.mcsprite-deepslate_iron_ore { - background-position: -96px -320px -} - -.mcsprite-deepslate_lapis_lazuli_ore { - background-position: -128px -320px -} - -.mcsprite-deepslate_redstone_ore { - background-position: -160px -320px -} - -.mcsprite-deepslate_tile_slab { - background-position: -192px -320px -} - -.mcsprite-deepslate_tile_stairs { - background-position: -224px -320px -} - -.mcsprite-deepslate_tile_wall { - background-position: -256px -320px -} - -.mcsprite-deepslate_tiles { - background-position: -288px -320px -} - -.mcsprite-detector_rail { - background-position: -320px -320px -} - -.mcsprite-diamond { - background-position: -352px -320px -} - -.mcsprite-diamond_axe { - background-position: -384px -320px -} - -.mcsprite-diamond_boots { - background-position: -416px -320px -} - -.mcsprite-diamond_chestplate { - background-position: -448px -320px -} - -.mcsprite-diamond_helmet { - background-position: -480px -320px -} - -.mcsprite-diamond_hoe { - background-position: -512px -320px -} - -.mcsprite-diamond_horse_armor { - background-position: -544px -320px -} - -.mcsprite-diamond_leggings { - background-position: -576px -320px -} - -.mcsprite-diamond_ore { - background-position: -608px -320px -} - -.mcsprite-diamond_pickaxe { - background-position: -640px -320px -} - -.mcsprite-diamond_shovel { - background-position: -672px -320px -} - -.mcsprite-diamond_sword { - background-position: -704px -320px -} - -.mcsprite-diorite { - background-position: -736px -320px -} - -.mcsprite-diorite_slab { - background-position: -768px -320px -} - -.mcsprite-diorite_stairs { - background-position: -800px -320px -} - -.mcsprite-diorite_wall { - background-position: -832px -320px -} - -.mcsprite-dirt { - background-position: -864px -320px -} - -.mcsprite-dirt_path { - background-position: -896px -320px -} - -.mcsprite-dispenser { - background-position: -928px -320px -} - -.mcsprite-dolphin_spawn_egg { - background-position: -960px -320px -} - -.mcsprite-donkey_spawn_egg { - background-position: -992px -320px -} - -.mcsprite-double_smooth_stone_slab { - background-position: -1024px -320px -} - -.mcsprite-dragon_egg { - background-position: -1056px -320px -} - -.mcsprite-dragon_head { - background-position: -1088px -320px -} - -.mcsprite-dragons_breath { - background-position: -1120px -320px -} - -.mcsprite-dried_kelp { - background-position: -1152px -320px -} - -.mcsprite-dried_kelp_block { - background-position: -1184px -320px -} - -.mcsprite-dripstone_block { - background-position: -1216px -320px -} - -.mcsprite-dropper { - background-position: -1248px -320px -} - -.mcsprite-drowned_spawn_egg { - background-position: 0 -352px -} - -.mcsprite-egg { - background-position: -32px -352px -} - -.mcsprite-elder_guardian_spawn_egg { - background-position: -64px -352px -} - -.mcsprite-elytra { - background-position: -96px -352px -} - -.mcsprite-emerald { - background-position: -128px -352px -} - -.mcsprite-emerald_ore { - background-position: -160px -352px -} - -.mcsprite-empty_locator_map { - background-position: -192px -352px -} - -.mcsprite-empty_map { - background-position: -224px -352px -} - -.mcsprite-enchanted_apple { - background-position: -256px -352px -} - -.mcsprite-enchanted_book { - background-position: -288px -352px -} - -.mcsprite-enchanted_golden_apple { - background-position: -320px -352px -} - -.mcsprite-enchanting_table { - background-position: -352px -352px -} - -.mcsprite-enchantment_table { - background-position: -384px -352px -} - -.mcsprite-end_crystal { - background-position: -416px -352px -} - -.mcsprite-end_gateway { - background-position: -448px -352px -} - -.mcsprite-end_portal { - background-position: -480px -352px -} - -.mcsprite-end_portal_frame { - background-position: -512px -352px -} - -.mcsprite-end_rod { - background-position: -544px -352px -} - -.mcsprite-end_stone { - background-position: -576px -352px -} - -.mcsprite-end_stone_brick_slab { - background-position: -608px -352px -} - -.mcsprite-end_stone_brick_stairs { - background-position: -640px -352px -} - -.mcsprite-end_stone_brick_wall { - background-position: -672px -352px -} - -.mcsprite-end_stone_bricks { - background-position: -704px -352px -} - -.mcsprite-ender_chest { - background-position: -736px -352px -} - -.mcsprite-ender_pearl { - background-position: -768px -352px -} - -.mcsprite-enderman_spawn_egg { - background-position: -800px -352px -} - -.mcsprite-endermite_spawn_egg { - background-position: -832px -352px -} - -.mcsprite-evoker_spawn_egg { - background-position: -864px -352px -} - -.mcsprite-exposed_copper { - background-position: -896px -352px -} - -.mcsprite-exposed_copper_block { - background-position: -928px -352px -} - -.mcsprite-exposed_cut_copper { - background-position: -960px -352px -} - -.mcsprite-exposed_cut_copper_block { - background-position: -992px -352px -} - -.mcsprite-exposed_cut_copper_slab { - background-position: -1024px -352px -} - -.mcsprite-exposed_cut_copper_stairs { - background-position: -1056px -352px -} - -.mcsprite-eye_of_ender { - background-position: -1088px -352px -} - -.mcsprite-farmland { - background-position: -1120px -352px -} - -.mcsprite-feather { - background-position: -1152px -352px -} - -.mcsprite-fermented_spider_eye { - background-position: -1184px -352px -} - -.mcsprite-fern { - background-position: -1216px -352px -} - -.mcsprite-filled_bundle { - background-position: -1248px -352px -} - -.mcsprite-fire_charge { - background-position: 0 -384px -} - -.mcsprite-fire_coral { - background-position: -32px -384px -} - -.mcsprite-fire_coral_block { - background-position: -64px -384px -} - -.mcsprite-fire_coral_fan { - background-position: -96px -384px -} - -.mcsprite-firework_loaded_crossbow { - background-position: -128px -384px -} - -.mcsprite-firework_rocket { - background-position: -160px -384px -} - -.mcsprite-firework_star { - background-position: -192px -384px -} - -.mcsprite-fishing_rod { - background-position: -224px -384px -} - -.mcsprite-fletching_table { - background-position: -256px -384px -} - -.mcsprite-flint { - background-position: -288px -384px -} - -.mcsprite-flint_and_steel { - background-position: -320px -384px -} - -.mcsprite-flower_pot { - background-position: -352px -384px -} - -.mcsprite-flowering_azalea { - background-position: -384px -384px -} - -.mcsprite-flowering_azalea_leaves { - background-position: -416px -384px -} - -.mcsprite-flowing_lava { - background-position: -448px -384px -} - -.mcsprite-flowing_water { - background-position: -480px -384px -} - -.mcsprite-fox_spawn_egg { - background-position: -512px -384px -} - -.mcsprite-frosted_ice { - background-position: -544px -384px -} - -.mcsprite-furnace { - background-position: -576px -384px -} - -.mcsprite-ghast_spawn_egg { - background-position: -608px -384px -} - -.mcsprite-ghast_tear { - background-position: -640px -384px -} - -.mcsprite-gilded_blackstone { - background-position: -672px -384px -} - -.mcsprite-glass { - background-position: -704px -384px -} - -.mcsprite-glass_bottle { - background-position: -736px -384px -} - -.mcsprite-glass_pane { - background-position: -768px -384px -} - -.mcsprite-glistering_melon { - background-position: -800px -384px -} - -.mcsprite-glistering_melon_slice { - background-position: -832px -384px -} - -.mcsprite-glow_berries { - background-position: -864px -384px -} - -.mcsprite-glow_ink_sac { - background-position: -896px -384px -} - -.mcsprite-glow_item_frame { - background-position: -928px -384px -} - -.mcsprite-glow_lichen { - background-position: -960px -384px -} - -.mcsprite-glow_squid_spawn_egg { - background-position: -992px -384px -} - -.mcsprite-glowstone { - background-position: -1024px -384px -} - -.mcsprite-glowstone_dust { - background-position: -1056px -384px -} - -.mcsprite-goat_horn { - background-position: -1088px -384px -} - -.mcsprite-goat_spawn_egg { - background-position: -1120px -384px -} - -.mcsprite-gold_ingot { - background-position: -1152px -384px -} - -.mcsprite-gold_nugget { - background-position: -1184px -384px -} - -.mcsprite-gold_ore { - background-position: -1216px -384px -} - -.mcsprite-golden_apple { - background-position: -1248px -384px -} - -.mcsprite-golden_axe { - background-position: 0 -416px -} - -.mcsprite-golden_boots { - background-position: -32px -416px -} - -.mcsprite-golden_carrot { - background-position: -64px -416px -} - -.mcsprite-golden_chestplate { - background-position: -96px -416px -} - -.mcsprite-golden_helmet { - background-position: -128px -416px -} - -.mcsprite-golden_hoe { - background-position: -160px -416px -} - -.mcsprite-golden_horse_armor { - background-position: -192px -416px -} - -.mcsprite-golden_leggings { - background-position: -224px -416px -} - -.mcsprite-golden_pickaxe { - background-position: -256px -416px -} - -.mcsprite-golden_shovel { - background-position: -288px -416px -} - -.mcsprite-golden_sword { - background-position: -320px -416px -} - -.mcsprite-granite { - background-position: -352px -416px -} - -.mcsprite-granite_slab { - background-position: -384px -416px -} - -.mcsprite-granite_stairs { - background-position: -416px -416px -} - -.mcsprite-granite_wall { - background-position: -448px -416px -} - -.mcsprite-grass { - background-position: -480px -416px -} - -.mcsprite-grass_block { - background-position: -512px -416px -} - -.mcsprite-grass_path { - background-position: -544px -416px -} - -.mcsprite-gravel { - background-position: -576px -416px -} - -.mcsprite-gray_banner { - background-position: -608px -416px -} - -.mcsprite-gray_bed { - background-position: -640px -416px -} - -.mcsprite-gray_bed_lce { - background-position: -672px -416px -} - -.mcsprite-gray_candle { - background-position: -704px -416px -} - -.mcsprite-gray_carpet { - background-position: -736px -416px -} - -.mcsprite-gray_concrete { - background-position: -768px -416px -} - -.mcsprite-gray_concrete_powder { - background-position: -800px -416px -} - -.mcsprite-gray_dye { - background-position: -832px -416px -} - -.mcsprite-gray_firework_star { - background-position: -864px -416px -} - -.mcsprite-gray_glazed_terracotta { - background-position: -896px -416px -} - -.mcsprite-gray_shield { - background-position: -928px -416px -} - -.mcsprite-gray_shulker_box { - background-position: -960px -416px -} - -.mcsprite-gray_stained_glass { - background-position: -992px -416px -} - -.mcsprite-gray_stained_glass_pane { - background-position: -1024px -416px -} - -.mcsprite-gray_terracotta { - background-position: -1056px -416px -} - -.mcsprite-gray_wool { - background-position: -1088px -416px -} - -.mcsprite-green_banner { - background-position: -1120px -416px -} - -.mcsprite-green_bed { - background-position: -1152px -416px -} - -.mcsprite-green_bed_lce { - background-position: -1184px -416px -} - -.mcsprite-green_candle { - background-position: -1216px -416px -} - -.mcsprite-green_carpet { - background-position: -1248px -416px -} - -.mcsprite-green_concrete { - background-position: 0 -448px -} - -.mcsprite-green_concrete_powder { - background-position: -32px -448px -} - -.mcsprite-green_dye { - background-position: -64px -448px -} - -.mcsprite-green_firework_star { - background-position: -96px -448px -} - -.mcsprite-green_glazed_terracotta { - background-position: -128px -448px -} - -.mcsprite-green_shield { - background-position: -160px -448px -} - -.mcsprite-green_shulker_box { - background-position: -192px -448px -} - -.mcsprite-green_stained_glass { - background-position: -224px -448px -} - -.mcsprite-green_stained_glass_pane { - background-position: -256px -448px -} - -.mcsprite-green_terracotta { - background-position: -288px -448px -} - -.mcsprite-green_wool { - background-position: -320px -448px -} - -.mcsprite-grindstone { - background-position: -352px -448px -} - -.mcsprite-guardian_spawn_egg { - background-position: -384px -448px -} - -.mcsprite-gunpowder { - background-position: -416px -448px -} - -.mcsprite-half_filled_bundle { - background-position: -448px -448px -} - -.mcsprite-hanging_roots { - background-position: -480px -448px -} - -.mcsprite-hay_bale { - background-position: -512px -448px -} - -.mcsprite-head { - background-position: -544px -448px -} - -.mcsprite-heart_of_the_sea { - background-position: -576px -448px -} - -.mcsprite-heavy_weighted_pressure_plate { - background-position: -608px -448px -} - -.mcsprite-hoglin_spawn_egg { - background-position: -640px -448px -} - -.mcsprite-honey_block { - background-position: -672px -448px -} - -.mcsprite-honey_bottle { - background-position: -704px -448px -} - -.mcsprite-honeycomb { - background-position: -736px -448px -} - -.mcsprite-honeycomb_block { - background-position: -768px -448px -} - -.mcsprite-hopper { - background-position: -800px -448px -} - -.mcsprite-horn_coral { - background-position: -832px -448px -} - -.mcsprite-horn_coral_block { - background-position: -864px -448px -} - -.mcsprite-horn_coral_fan { - background-position: -896px -448px -} - -.mcsprite-horse_spawn_egg { - background-position: -928px -448px -} - -.mcsprite-husk_spawn_egg { - background-position: -960px -448px -} - -.mcsprite-ice { - background-position: -992px -448px -} - -.mcsprite-infested_chiseled_stone_bricks { - background-position: -1024px -448px -} - -.mcsprite-infested_cobblestone { - background-position: -1056px -448px -} - -.mcsprite-infested_cracked_stone_bricks { - background-position: -1088px -448px -} - -.mcsprite-infested_deepslate { - background-position: -1120px -448px -} - -.mcsprite-infested_mossy_stone_bricks { - background-position: -1152px -448px -} - -.mcsprite-infested_stone { - background-position: -1184px -448px -} - -.mcsprite-infested_stone_bricks { - background-position: -1216px -448px -} - -.mcsprite-ink_sac { - background-position: -1248px -448px -} - -.mcsprite-inverted_daylight_detector { - background-position: 0 -480px -} - -.mcsprite-inverted_daylight_sensor { - background-position: -32px -480px -} - -.mcsprite-invisible_bedrock { - background-position: -64px -480px -} - -.mcsprite-iron_axe { - background-position: -96px -480px -} - -.mcsprite-iron_bars { - background-position: -128px -480px -} - -.mcsprite-iron_boots { - background-position: -160px -480px -} - -.mcsprite-iron_chestplate { - background-position: -192px -480px -} - -.mcsprite-iron_door { - background-position: -224px -480px -} - -.mcsprite-iron_helmet { - background-position: -256px -480px -} - -.mcsprite-iron_hoe { - background-position: -288px -480px -} - -.mcsprite-iron_horse_armor { - background-position: -320px -480px -} - -.mcsprite-iron_ingot { - background-position: -352px -480px -} - -.mcsprite-iron_leggings { - background-position: -384px -480px -} - -.mcsprite-iron_nugget { - background-position: -416px -480px -} - -.mcsprite-iron_ore { - background-position: -448px -480px -} - -.mcsprite-iron_pickaxe { - background-position: -480px -480px -} - -.mcsprite-iron_shovel { - background-position: -512px -480px -} - -.mcsprite-iron_sword { - background-position: -544px -480px -} - -.mcsprite-iron_trapdoor { - background-position: -576px -480px -} - -.mcsprite-item_frame { - background-position: -608px -480px -} - -.mcsprite-jack_olantern { - background-position: -640px -480px -} - -.mcsprite-jigsaw { - background-position: -672px -480px -} - -.mcsprite-jigsaw_block { - background-position: -704px -480px -} - -.mcsprite-jukebox { - background-position: -736px -480px -} - -.mcsprite-jungle_boat { - background-position: -768px -480px -} - -.mcsprite-jungle_button { - background-position: -800px -480px -} - -.mcsprite-jungle_door { - background-position: -832px -480px -} - -.mcsprite-jungle_fence { - background-position: -864px -480px -} - -.mcsprite-jungle_fence_gate { - background-position: -896px -480px -} - -.mcsprite-jungle_leaves { - background-position: -928px -480px -} - -.mcsprite-jungle_log { - background-position: -960px -480px -} - -.mcsprite-jungle_planks { - background-position: -992px -480px -} - -.mcsprite-jungle_pressure_plate { - background-position: -1024px -480px -} - -.mcsprite-jungle_sapling { - background-position: -1056px -480px -} - -.mcsprite-jungle_sign { - background-position: -1088px -480px -} - -.mcsprite-jungle_slab { - background-position: -1120px -480px -} - -.mcsprite-jungle_stairs { - background-position: -1152px -480px -} - -.mcsprite-jungle_trapdoor { - background-position: -1184px -480px -} - -.mcsprite-jungle_wood { - background-position: -1216px -480px -} - -.mcsprite-jungle_wood_button { - background-position: -1248px -480px -} - -.mcsprite-jungle_wood_door { - background-position: 0 -512px -} - -.mcsprite-jungle_wood_fence { - background-position: -32px -512px -} - -.mcsprite-jungle_wood_fence_gate { - background-position: -64px -512px -} - -.mcsprite-jungle_wood_planks { - background-position: -96px -512px -} - -.mcsprite-jungle_wood_pressure_plate { - background-position: -128px -512px -} - -.mcsprite-jungle_wood_sign { - background-position: -160px -512px -} - -.mcsprite-jungle_wood_slab { - background-position: -192px -512px -} - -.mcsprite-jungle_wood_stairs { - background-position: -224px -512px -} - -.mcsprite-jungle_wood_trapdoor { - background-position: -256px -512px -} - -.mcsprite-kelp { - background-position: -288px -512px -} - -.mcsprite-knowledge_book { - background-position: -320px -512px -} - -.mcsprite-ladder { - background-position: -352px -512px -} - -.mcsprite-lantern { - background-position: -384px -512px -} - -.mcsprite-lapis_lazuli { - background-position: -416px -512px -} - -.mcsprite-lapis_lazuli_block { - background-position: -448px -512px -} - -.mcsprite-lapis_lazuli_ore { - background-position: -480px -512px -} - -.mcsprite-large_amethyst_bud { - background-position: -512px -512px -} - -.mcsprite-large_fern { - background-position: -544px -512px -} - -.mcsprite-lava { - background-position: -576px -512px -} - -.mcsprite-lava_bucket { - background-position: -608px -512px -} - -.mcsprite-lead { - background-position: -640px -512px -} - -.mcsprite-leather { - background-position: -672px -512px -} - -.mcsprite-leather_boots { - background-position: -704px -512px -} - -.mcsprite-leather_boots_black { - background-position: -736px -512px -} - -.mcsprite-leather_boots_blue { - background-position: -768px -512px -} - -.mcsprite-leather_boots_cyan { - background-position: -800px -512px -} - -.mcsprite-leather_boots_gray { - background-position: -832px -512px -} - -.mcsprite-leather_boots_green { - background-position: -864px -512px -} - -.mcsprite-leather_boots_light_blue { - background-position: -896px -512px -} - -.mcsprite-leather_boots_light_gray { - background-position: -928px -512px -} - -.mcsprite-leather_boots_lime { - background-position: -960px -512px -} - -.mcsprite-leather_boots_magenta { - background-position: -992px -512px -} - -.mcsprite-leather_boots_orange { - background-position: -1024px -512px -} - -.mcsprite-leather_boots_pink { - background-position: -1056px -512px -} - -.mcsprite-leather_boots_purple { - background-position: -1088px -512px -} - -.mcsprite-leather_boots_red { - background-position: -1120px -512px -} - -.mcsprite-leather_boots_white { - background-position: -1152px -512px -} - -.mcsprite-leather_boots_yellow { - background-position: -1184px -512px -} - -.mcsprite-leather_cap { - background-position: -1216px -512px -} - -.mcsprite-leather_cap_black { - background-position: -1248px -512px -} - -.mcsprite-leather_cap_blue { - background-position: 0 -544px -} - -.mcsprite-leather_cap_cyan { - background-position: -32px -544px -} - -.mcsprite-leather_cap_gray { - background-position: -64px -544px -} - -.mcsprite-leather_cap_green { - background-position: -96px -544px -} - -.mcsprite-leather_cap_light_blue { - background-position: -128px -544px -} - -.mcsprite-leather_cap_light_gray { - background-position: -160px -544px -} - -.mcsprite-leather_cap_lime { - background-position: -192px -544px -} - -.mcsprite-leather_cap_magenta { - background-position: -224px -544px -} - -.mcsprite-leather_cap_orange { - background-position: -256px -544px -} - -.mcsprite-leather_cap_pink { - background-position: -288px -544px -} - -.mcsprite-leather_cap_purple { - background-position: -320px -544px -} - -.mcsprite-leather_cap_red { - background-position: -352px -544px -} - -.mcsprite-leather_cap_white { - background-position: -384px -544px -} - -.mcsprite-leather_cap_yellow { - background-position: -416px -544px -} - -.mcsprite-leather_horse_armor { - background-position: -448px -544px -} - -.mcsprite-leather_pants { - background-position: -480px -544px -} - -.mcsprite-leather_pants_black { - background-position: -512px -544px -} - -.mcsprite-leather_pants_blue { - background-position: -544px -544px -} - -.mcsprite-leather_pants_cyan { - background-position: -576px -544px -} - -.mcsprite-leather_pants_gray { - background-position: -608px -544px -} - -.mcsprite-leather_pants_green { - background-position: -640px -544px -} - -.mcsprite-leather_pants_light_blue { - background-position: -672px -544px -} - -.mcsprite-leather_pants_light_gray { - background-position: -704px -544px -} - -.mcsprite-leather_pants_lime { - background-position: -736px -544px -} - -.mcsprite-leather_pants_magenta { - background-position: -768px -544px -} - -.mcsprite-leather_pants_orange { - background-position: -800px -544px -} - -.mcsprite-leather_pants_pink { - background-position: -832px -544px -} - -.mcsprite-leather_pants_purple { - background-position: -864px -544px -} - -.mcsprite-leather_pants_red { - background-position: -896px -544px -} - -.mcsprite-leather_pants_white { - background-position: -928px -544px -} - -.mcsprite-leather_pants_yellow { - background-position: -960px -544px -} - -.mcsprite-leather_tunic { - background-position: -992px -544px -} - -.mcsprite-leather_tunic_black { - background-position: -1024px -544px -} - -.mcsprite-leather_tunic_blue { - background-position: -1056px -544px -} - -.mcsprite-leather_tunic_cyan { - background-position: -1088px -544px -} - -.mcsprite-leather_tunic_gray { - background-position: -1120px -544px -} - -.mcsprite-leather_tunic_green { - background-position: -1152px -544px -} - -.mcsprite-leather_tunic_light_blue { - background-position: -1184px -544px -} - -.mcsprite-leather_tunic_light_gray { - background-position: -1216px -544px -} - -.mcsprite-leather_tunic_lime { - background-position: -1248px -544px -} - -.mcsprite-leather_tunic_magenta { - background-position: 0 -576px -} - -.mcsprite-leather_tunic_orange { - background-position: -32px -576px -} - -.mcsprite-leather_tunic_pink { - background-position: -64px -576px -} - -.mcsprite-leather_tunic_purple { - background-position: -96px -576px -} - -.mcsprite-leather_tunic_red { - background-position: -128px -576px -} - -.mcsprite-leather_tunic_white { - background-position: -160px -576px -} - -.mcsprite-leather_tunic_yellow { - background-position: -192px -576px -} - -.mcsprite-lectern { - background-position: -224px -576px -} - -.mcsprite-lever { - background-position: -256px -576px -} - -.mcsprite-light_blue_banner { - background-position: -288px -576px -} - -.mcsprite-light_blue_bed { - background-position: -320px -576px -} - -.mcsprite-light_blue_bed_lce { - background-position: -352px -576px -} - -.mcsprite-light_blue_candle { - background-position: -384px -576px -} - -.mcsprite-light_blue_carpet { - background-position: -416px -576px -} - -.mcsprite-light_blue_concrete { - background-position: -448px -576px -} - -.mcsprite-light_blue_concrete_powder { - background-position: -480px -576px -} - -.mcsprite-light_blue_dye { - background-position: -512px -576px -} - -.mcsprite-light_blue_firework_star { - background-position: -544px -576px -} - -.mcsprite-light_blue_glazed_terracotta { - background-position: -576px -576px -} - -.mcsprite-light_blue_shield { - background-position: -608px -576px -} - -.mcsprite-light_blue_shulker_box { - background-position: -640px -576px -} - -.mcsprite-light_blue_stained_glass { - background-position: -672px -576px -} - -.mcsprite-light_blue_stained_glass_pane { - background-position: -704px -576px -} - -.mcsprite-light_blue_terracotta { - background-position: -736px -576px -} - -.mcsprite-light_blue_wool { - background-position: -768px -576px -} - -.mcsprite-light_gray_banner { - background-position: -800px -576px -} - -.mcsprite-light_gray_bed { - background-position: -832px -576px -} - -.mcsprite-light_gray_bed_lce { - background-position: -864px -576px -} - -.mcsprite-light_gray_candle { - background-position: -896px -576px -} - -.mcsprite-light_gray_carpet { - background-position: -928px -576px -} - -.mcsprite-light_gray_concrete { - background-position: -960px -576px -} - -.mcsprite-light_gray_concrete_powder { - background-position: -992px -576px -} - -.mcsprite-light_gray_dye { - background-position: -1024px -576px -} - -.mcsprite-light_gray_firework_star { - background-position: -1056px -576px -} - -.mcsprite-light_gray_glazed_terracotta { - background-position: -1088px -576px -} - -.mcsprite-light_gray_shield { - background-position: -1120px -576px -} - -.mcsprite-light_gray_shulker_box { - background-position: -1152px -576px -} - -.mcsprite-light_gray_stained_glass { - background-position: -1184px -576px -} - -.mcsprite-light_gray_stained_glass_pane { - background-position: -1216px -576px -} - -.mcsprite-light_gray_terracotta { - background-position: -1248px -576px -} - -.mcsprite-light_gray_wool { - background-position: 0 -608px -} - -.mcsprite-light_negative { - background-position: -32px -608px -} - -.mcsprite-light_weighted_pressure_plate { - background-position: -64px -608px -} - -.mcsprite-lightning_rod { - background-position: -96px -608px -} - -.mcsprite-lilac { - background-position: -128px -608px -} - -.mcsprite-lily_of_the_valley { - background-position: -160px -608px -} - -.mcsprite-lily_pad { - background-position: -192px -608px -} - -.mcsprite-lime_banner { - background-position: -224px -608px -} - -.mcsprite-lime_bed { - background-position: -256px -608px -} - -.mcsprite-lime_bed_lce { - background-position: -288px -608px -} - -.mcsprite-lime_candle { - background-position: -320px -608px -} - -.mcsprite-lime_carpet { - background-position: -352px -608px -} - -.mcsprite-lime_concrete { - background-position: -384px -608px -} - -.mcsprite-lime_concrete_powder { - background-position: -416px -608px -} - -.mcsprite-lime_dye { - background-position: -448px -608px -} - -.mcsprite-lime_firework_star { - background-position: -480px -608px -} - -.mcsprite-lime_glazed_terracotta { - background-position: -512px -608px -} - -.mcsprite-lime_shield { - background-position: -544px -608px -} - -.mcsprite-lime_shulker_box { - background-position: -576px -608px -} - -.mcsprite-lime_stained_glass { - background-position: -608px -608px -} - -.mcsprite-lime_stained_glass_pane { - background-position: -640px -608px -} - -.mcsprite-lime_terracotta { - background-position: -672px -608px -} - -.mcsprite-lime_wool { - background-position: -704px -608px -} - -.mcsprite-lingering_potion_of_decay { - background-position: -736px -608px -} - -.mcsprite-lingering_potion_of_fire_resistance { - background-position: -768px -608px -} - -.mcsprite-lingering_potion_of_harming { - background-position: -800px -608px -} - -.mcsprite-lingering_potion_of_healing { - background-position: -832px -608px -} - -.mcsprite-lingering_potion_of_invisibility { - background-position: -864px -608px -} - -.mcsprite-lingering_potion_of_leaping { - background-position: -896px -608px -} - -.mcsprite-lingering_potion_of_levitation { - background-position: -928px -608px -} - -.mcsprite-lingering_potion_of_luck { - background-position: -960px -608px -} - -.mcsprite-lingering_potion_of_night_vision { - background-position: -992px -608px -} - -.mcsprite-lingering_potion_of_poison { - background-position: -1024px -608px -} - -.mcsprite-lingering_potion_of_regeneration { - background-position: -1056px -608px -} - -.mcsprite-lingering_potion_of_slow_falling { - background-position: -1088px -608px -} - -.mcsprite-lingering_potion_of_slowness { - background-position: -1120px -608px -} - -.mcsprite-lingering_potion_of_strength { - background-position: -1152px -608px -} - -.mcsprite-lingering_potion_of_swiftness { - background-position: -1184px -608px -} - -.mcsprite-lingering_potion_of_the_turtle_master { - background-position: -1216px -608px -} - -.mcsprite-lingering_potion_of_water_breathing { - background-position: -1248px -608px -} - -.mcsprite-lingering_potion_of_weakness { - background-position: 0 -640px -} - -.mcsprite-lingering_water_bottle { - background-position: -32px -640px -} - -.mcsprite-llama_spawn_egg { - background-position: -64px -640px -} - -.mcsprite-locked_map { - background-position: -96px -640px -} - -.mcsprite-lodestone { - background-position: -128px -640px -} - -.mcsprite-loom { - background-position: -160px -640px -} - -.mcsprite-magenta_banner { - background-position: -192px -640px -} - -.mcsprite-magenta_bed { - background-position: -224px -640px -} - -.mcsprite-magenta_bed_lce { - background-position: -256px -640px -} - -.mcsprite-magenta_candle { - background-position: -288px -640px -} - -.mcsprite-magenta_carpet { - background-position: -320px -640px -} - -.mcsprite-magenta_concrete { - background-position: -352px -640px -} - -.mcsprite-magenta_concrete_powder { - background-position: -384px -640px -} - -.mcsprite-magenta_dye { - background-position: -416px -640px -} - -.mcsprite-magenta_firework_star { - background-position: -448px -640px -} - -.mcsprite-magenta_glazed_terracotta { - background-position: -480px -640px -} - -.mcsprite-magenta_shield { - background-position: -512px -640px -} - -.mcsprite-magenta_shulker_box { - background-position: -544px -640px -} - -.mcsprite-magenta_stained_glass { - background-position: -576px -640px -} - -.mcsprite-magenta_stained_glass_pane { - background-position: -608px -640px -} - -.mcsprite-magenta_terracotta { - background-position: -640px -640px -} - -.mcsprite-magenta_wool { - background-position: -672px -640px -} - -.mcsprite-magma_cream { - background-position: -704px -640px -} - -.mcsprite-magma_cube_spawn_egg { - background-position: -736px -640px -} - -.mcsprite-map { - background-position: -768px -640px -} - -.mcsprite-medium_amethyst_bud { - background-position: -800px -640px -} - -.mcsprite-melon { - background-position: -832px -640px -} - -.mcsprite-melon_seeds { - background-position: -864px -640px -} - -.mcsprite-melon_slice { - background-position: -896px -640px -} - -.mcsprite-mhf_alex { - background-position: -928px -640px -} - -.mcsprite-mhf_arrowdown { - background-position: -960px -640px -} - -.mcsprite-mhf_arrowleft { - background-position: -992px -640px -} - -.mcsprite-mhf_arrowright { - background-position: -1024px -640px -} - -.mcsprite-mhf_arrowup { - background-position: -1056px -640px -} - -.mcsprite-mhf_blaze { - background-position: -1088px -640px -} - -.mcsprite-mhf_cactus { - background-position: -1120px -640px -} - -.mcsprite-mhf_cake { - background-position: -1152px -640px -} - -.mcsprite-mhf_cavespider { - background-position: -1184px -640px -} - -.mcsprite-mhf_chest { - background-position: -1216px -640px -} - -.mcsprite-mhf_chicken { - background-position: -1248px -640px -} - -.mcsprite-mhf_coconutb { - background-position: 0 -672px -} - -.mcsprite-mhf_coconutg { - background-position: -32px -672px -} - -.mcsprite-mhf_cow { - background-position: -64px -672px -} - -.mcsprite-mhf_creeper { - background-position: -96px -672px -} - -.mcsprite-mhf_enderman { - background-position: -128px -672px -} - -.mcsprite-mhf_exclamation { - background-position: -160px -672px -} - -.mcsprite-mhf_ghast { - background-position: -192px -672px -} - -.mcsprite-mhf_golem { - background-position: -224px -672px -} - -.mcsprite-mhf_herobrine { - background-position: -256px -672px -} - -.mcsprite-mhf_lavaslime { - background-position: -288px -672px -} - -.mcsprite-mhf_melon { - background-position: -320px -672px -} - -.mcsprite-mhf_mushroomcow { - background-position: -352px -672px -} - -.mcsprite-mhf_oaklog { - background-position: -384px -672px -} - -.mcsprite-mhf_ocelot { - background-position: -416px -672px -} - -.mcsprite-mhf_pig { - background-position: -448px -672px -} - -.mcsprite-mhf_pigzombie { - background-position: -480px -672px -} - -.mcsprite-mhf_present1 { - background-position: -512px -672px -} - -.mcsprite-mhf_present2 { - background-position: -544px -672px -} - -.mcsprite-mhf_pumpkin { - background-position: -576px -672px -} - -.mcsprite-mhf_question { - background-position: -608px -672px -} - -.mcsprite-mhf_sheep { - background-position: -640px -672px -} - -.mcsprite-mhf_skeleton { - background-position: -672px -672px -} - -.mcsprite-mhf_slime { - background-position: -704px -672px -} - -.mcsprite-mhf_spider { - background-position: -736px -672px -} - -.mcsprite-mhf_squid { - background-position: -768px -672px -} - -.mcsprite-mhf_steve { - background-position: -800px -672px -} - -.mcsprite-mhf_tnt { - background-position: -832px -672px -} - -.mcsprite-mhf_tnt2 { - background-position: -864px -672px -} - -.mcsprite-mhf_villager { - background-position: -896px -672px -} - -.mcsprite-mhf_wskeleton { - background-position: -928px -672px -} - -.mcsprite-mhf_zombie { - background-position: -960px -672px -} - -.mcsprite-milk_bucket { - background-position: -992px -672px -} - -.mcsprite-minecart { - background-position: -1024px -672px -} - -.mcsprite-minecart_with_chest { - background-position: -1056px -672px -} - -.mcsprite-minecart_with_command_block { - background-position: -1088px -672px -} - -.mcsprite-minecart_with_furnace { - background-position: -1120px -672px -} - -.mcsprite-minecart_with_hopper { - background-position: -1152px -672px -} - -.mcsprite-minecart_with_tnt { - background-position: -1184px -672px -} - -.mcsprite-monster_spawner { - background-position: -1216px -672px -} - -.mcsprite-mooshroom_spawn_egg { - background-position: -1248px -672px -} - -.mcsprite-moss_block { - background-position: 0 -704px -} - -.mcsprite-moss_carpet { - background-position: -32px -704px -} - -.mcsprite-moss_stone { - background-position: -64px -704px -} - -.mcsprite-mossy_cobblestone { - background-position: -96px -704px -} - -.mcsprite-mossy_cobblestone_slab { - background-position: -128px -704px -} - -.mcsprite-mossy_cobblestone_stairs { - background-position: -160px -704px -} - -.mcsprite-mossy_cobblestone_wall { - background-position: -192px -704px -} - -.mcsprite-mossy_stone_brick_slab { - background-position: -224px -704px -} - -.mcsprite-mossy_stone_brick_stairs { - background-position: -256px -704px -} - -.mcsprite-mossy_stone_brick_wall { - background-position: -288px -704px -} - -.mcsprite-mossy_stone_bricks { - background-position: -320px -704px -} - -.mcsprite-mossy_stone_bricks_monster_egg { - background-position: -352px -704px -} - -.mcsprite-mule_spawn_egg { - background-position: -384px -704px -} - -.mcsprite-mundane_lingering_potion { - background-position: -416px -704px -} - -.mcsprite-mundane_potion { - background-position: -448px -704px -} - -.mcsprite-mundane_splash_potion { - background-position: -480px -704px -} - -.mcsprite-mushroom_stem { - background-position: -512px -704px -} - -.mcsprite-mushroom_stew { - background-position: -544px -704px -} - -.mcsprite-music_disc_11 { - background-position: -576px -704px -} - -.mcsprite-music_disc_13 { - background-position: -608px -704px -} - -.mcsprite-music_disc_blocks { - background-position: -640px -704px -} - -.mcsprite-music_disc_cat { - background-position: -672px -704px -} - -.mcsprite-music_disc_chirp { - background-position: -704px -704px -} - -.mcsprite-music_disc_far { - background-position: -736px -704px -} - -.mcsprite-music_disc_mall { - background-position: -768px -704px -} - -.mcsprite-music_disc_mellohi { - background-position: -800px -704px -} - -.mcsprite-music_disc_pigstep { - background-position: -832px -704px -} - -.mcsprite-music_disc_stal { - background-position: -864px -704px -} - -.mcsprite-music_disc_strad { - background-position: -896px -704px -} - -.mcsprite-music_disc_wait { - background-position: -928px -704px -} - -.mcsprite-music_disc_ward { - background-position: -960px -704px -} - -.mcsprite-mycelium { - background-position: -992px -704px -} - -.mcsprite-name_tag { - background-position: -1024px -704px -} - -.mcsprite-nautilus_shell { - background-position: -1056px -704px -} - -.mcsprite-nether_brick { - background-position: -1088px -704px -} - -.mcsprite-nether_brick_block { - background-position: -1120px -704px -} - -.mcsprite-nether_brick_fence { - background-position: -1152px -704px -} - -.mcsprite-nether_brick_slab { - background-position: -1184px -704px -} - -.mcsprite-nether_brick_stairs { - background-position: -1216px -704px -} - -.mcsprite-nether_brick_wall { - background-position: -1248px -704px -} - -.mcsprite-nether_bricks { - background-position: 0 -736px -} - -.mcsprite-nether_gold_ore { - background-position: -32px -736px -} - -.mcsprite-nether_quartz { - background-position: -64px -736px -} - -.mcsprite-nether_quartz_ore { - background-position: -96px -736px -} - -.mcsprite-nether_sprouts { - background-position: -128px -736px -} - -.mcsprite-nether_sprouts_old { - background-position: -160px -736px -} - -.mcsprite-nether_star { - background-position: -192px -736px -} - -.mcsprite-nether_wart { - background-position: -224px -736px -} - -.mcsprite-nether_wart_block { - background-position: -256px -736px -} - -.mcsprite-netherite_axe { - background-position: -288px -736px -} - -.mcsprite-netherite_boots { - background-position: -320px -736px -} - -.mcsprite-netherite_chestplate { - background-position: -352px -736px -} - -.mcsprite-netherite_helmet { - background-position: -384px -736px -} - -.mcsprite-netherite_hoe { - background-position: -416px -736px -} - -.mcsprite-netherite_ingot { - background-position: -448px -736px -} - -.mcsprite-netherite_leggings { - background-position: -480px -736px -} - -.mcsprite-netherite_pickaxe { - background-position: -512px -736px -} - -.mcsprite-netherite_scrap { - background-position: -544px -736px -} - -.mcsprite-netherite_shovel { - background-position: -576px -736px -} - -.mcsprite-netherite_sword { - background-position: -608px -736px -} - -.mcsprite-netherrack { - background-position: -640px -736px -} - -.mcsprite-note_block { - background-position: -672px -736px -} - -.mcsprite-oak_boat { - background-position: -704px -736px -} - -.mcsprite-oak_button { - background-position: -736px -736px -} - -.mcsprite-oak_door { - background-position: -768px -736px -} - -.mcsprite-oak_fence { - background-position: -800px -736px -} - -.mcsprite-oak_fence_gate { - background-position: -832px -736px -} - -.mcsprite-oak_leaves { - background-position: -864px -736px -} - -.mcsprite-oak_log { - background-position: -896px -736px -} - -.mcsprite-oak_planks { - background-position: -928px -736px -} - -.mcsprite-oak_pressure_plate { - background-position: -960px -736px -} - -.mcsprite-oak_sapling { - background-position: -992px -736px -} - -.mcsprite-oak_sign { - background-position: -1024px -736px -} - -.mcsprite-oak_slab { - background-position: -1056px -736px -} - -.mcsprite-oak_stairs { - background-position: -1088px -736px -} - -.mcsprite-oak_trapdoor { - background-position: -1120px -736px -} - -.mcsprite-oak_wood { - background-position: -1152px -736px -} - -.mcsprite-oak_wood_button { - background-position: -1184px -736px -} - -.mcsprite-oak_wood_door { - background-position: -1216px -736px -} - -.mcsprite-oak_wood_fence { - background-position: -1248px -736px -} - -.mcsprite-oak_wood_fence_gate { - background-position: 0 -768px -} - -.mcsprite-oak_wood_planks { - background-position: -32px -768px -} - -.mcsprite-oak_wood_pressure_plate { - background-position: -64px -768px -} - -.mcsprite-oak_wood_sign { - background-position: -96px -768px -} - -.mcsprite-oak_wood_slab { - background-position: -128px -768px -} - -.mcsprite-oak_wood_stairs { - background-position: -160px -768px -} - -.mcsprite-oak_wood_trapdoor { - background-position: -192px -768px -} - -.mcsprite-observer { - background-position: -224px -768px -} - -.mcsprite-obsidian { - background-position: -256px -768px -} - -.mcsprite-ocean_explorer_map { - background-position: -288px -768px -} - -.mcsprite-ocelot_spawn_egg { - background-position: -320px -768px -} - -.mcsprite-ominous_shield { - background-position: -352px -768px -} - -.mcsprite-orange_banner { - background-position: -384px -768px -} - -.mcsprite-orange_bed { - background-position: -416px -768px -} - -.mcsprite-orange_bed_lce { - background-position: -448px -768px -} - -.mcsprite-orange_candle { - background-position: -480px -768px -} - -.mcsprite-orange_carpet { - background-position: -512px -768px -} - -.mcsprite-orange_concrete { - background-position: -544px -768px -} - -.mcsprite-orange_concrete_powder { - background-position: -576px -768px -} - -.mcsprite-orange_dye { - background-position: -608px -768px -} - -.mcsprite-orange_firework_star { - background-position: -640px -768px -} - -.mcsprite-orange_glazed_terracotta { - background-position: -672px -768px -} - -.mcsprite-orange_shield { - background-position: -704px -768px -} - -.mcsprite-orange_shulker_box { - background-position: -736px -768px -} - -.mcsprite-orange_stained_glass { - background-position: -768px -768px -} - -.mcsprite-orange_stained_glass_pane { - background-position: -800px -768px -} - -.mcsprite-orange_terracotta { - background-position: -832px -768px -} - -.mcsprite-orange_tulip { - background-position: -864px -768px -} - -.mcsprite-orange_wool { - background-position: -896px -768px -} - -.mcsprite-oxeye_daisy { - background-position: -928px -768px -} - -.mcsprite-oxidized_copper { - background-position: -960px -768px -} - -.mcsprite-oxidized_copper_block { - background-position: -992px -768px -} - -.mcsprite-oxidized_cut_copper { - background-position: -1024px -768px -} - -.mcsprite-oxidized_cut_copper_block { - background-position: -1056px -768px -} - -.mcsprite-oxidized_cut_copper_slab { - background-position: -1088px -768px -} - -.mcsprite-oxidized_cut_copper_stairs { - background-position: -1120px -768px -} - -.mcsprite-packed_ice { - background-position: -1152px -768px -} - -.mcsprite-painting { - background-position: -1184px -768px -} - -.mcsprite-panda_spawn_egg { - background-position: -1216px -768px -} - -.mcsprite-paper { - background-position: -1248px -768px -} - -.mcsprite-parrot_spawn_egg { - background-position: 0 -800px -} - -.mcsprite-peony { - background-position: -32px -800px -} - -.mcsprite-petrified_oak_slab { - background-position: -64px -800px -} - -.mcsprite-phantom_membrane { - background-position: -96px -800px -} - -.mcsprite-phantom_spawn_egg { - background-position: -128px -800px -} - -.mcsprite-pig_spawn_egg { - background-position: -160px -800px -} - -.mcsprite-piglin_brute_spawn_egg { - background-position: -192px -800px -} - -.mcsprite-piglin_spawn_egg { - background-position: -224px -800px -} - -.mcsprite-pillager_spawn_egg { - background-position: -256px -800px -} - -.mcsprite-pink_banner { - background-position: -288px -800px -} - -.mcsprite-pink_bed { - background-position: -320px -800px -} - -.mcsprite-pink_bed_lce { - background-position: -352px -800px -} - -.mcsprite-pink_candle { - background-position: -384px -800px -} - -.mcsprite-pink_carpet { - background-position: -416px -800px -} - -.mcsprite-pink_concrete { - background-position: -448px -800px -} - -.mcsprite-pink_concrete_powder { - background-position: -480px -800px -} - -.mcsprite-pink_dye { - background-position: -512px -800px -} - -.mcsprite-pink_firework_star { - background-position: -544px -800px -} - -.mcsprite-pink_glazed_terracotta { - background-position: -576px -800px -} - -.mcsprite-pink_shield { - background-position: -608px -800px -} - -.mcsprite-pink_shulker_box { - background-position: -640px -800px -} - -.mcsprite-pink_stained_glass { - background-position: -672px -800px -} - -.mcsprite-pink_stained_glass_pane { - background-position: -704px -800px -} - -.mcsprite-pink_terracotta { - background-position: -736px -800px -} - -.mcsprite-pink_tulip { - background-position: -768px -800px -} - -.mcsprite-pink_wool { - background-position: -800px -800px -} - -.mcsprite-piston { - background-position: -832px -800px -} - -.mcsprite-player_head { - background-position: -864px -800px -} - -.mcsprite-podzol { - background-position: -896px -800px -} - -.mcsprite-pointed_dripstone { - background-position: -928px -800px -} - -.mcsprite-poisonous_potato { - background-position: -960px -800px -} - -.mcsprite-polar_bear_spawn_egg { - background-position: -992px -800px -} - -.mcsprite-polished_andesite { - background-position: -1024px -800px -} - -.mcsprite-polished_andesite_slab { - background-position: -1056px -800px -} - -.mcsprite-polished_andesite_stairs { - background-position: -1088px -800px -} - -.mcsprite-polished_basalt { - background-position: -1120px -800px -} - -.mcsprite-polished_blackstone { - background-position: -1152px -800px -} - -.mcsprite-polished_blackstone_brick_slab { - background-position: -1184px -800px -} - -.mcsprite-polished_blackstone_brick_stairs { - background-position: -1216px -800px -} - -.mcsprite-polished_blackstone_brick_wall { - background-position: -1248px -800px -} - -.mcsprite-polished_blackstone_bricks { - background-position: 0 -832px -} - -.mcsprite-polished_blackstone_button { - background-position: -32px -832px -} - -.mcsprite-polished_blackstone_pressure_plate { - background-position: -64px -832px -} - -.mcsprite-polished_blackstone_slab { - background-position: -96px -832px -} - -.mcsprite-polished_blackstone_stairs { - background-position: -128px -832px -} - -.mcsprite-polished_blackstone_wall { - background-position: -160px -832px -} - -.mcsprite-polished_deepslate { - background-position: -192px -832px -} - -.mcsprite-polished_deepslate_slab { - background-position: -224px -832px -} - -.mcsprite-polished_deepslate_stairs { - background-position: -256px -832px -} - -.mcsprite-polished_deepslate_wall { - background-position: -288px -832px -} - -.mcsprite-polished_diorite { - background-position: -320px -832px -} - -.mcsprite-polished_diorite_slab { - background-position: -352px -832px -} - -.mcsprite-polished_diorite_stairs { - background-position: -384px -832px -} - -.mcsprite-polished_granite { - background-position: -416px -832px -} - -.mcsprite-polished_granite_slab { - background-position: -448px -832px -} - -.mcsprite-polished_granite_stairs { - background-position: -480px -832px -} - -.mcsprite-popped_chorus_fruit { - background-position: -512px -832px -} - -.mcsprite-poppy { - background-position: -544px -832px -} - -.mcsprite-portal { - background-position: -576px -832px -} - -.mcsprite-potato { - background-position: -608px -832px -} - -.mcsprite-potion_of_decay { - background-position: -640px -832px -} - -.mcsprite-potion_of_fire_resistance { - background-position: -672px -832px -} - -.mcsprite-potion_of_harming { - background-position: -704px -832px -} - -.mcsprite-potion_of_healing { - background-position: -736px -832px -} - -.mcsprite-potion_of_invisibility { - background-position: -768px -832px -} - -.mcsprite-potion_of_leaping { - background-position: -800px -832px -} - -.mcsprite-potion_of_levitation { - background-position: -832px -832px -} - -.mcsprite-potion_of_luck { - background-position: -864px -832px -} - -.mcsprite-potion_of_night_vision { - background-position: -896px -832px -} - -.mcsprite-potion_of_poison { - background-position: -928px -832px -} - -.mcsprite-potion_of_regeneration { - background-position: -960px -832px -} - -.mcsprite-potion_of_slow_falling { - background-position: -992px -832px -} - -.mcsprite-potion_of_slowness { - background-position: -1024px -832px -} - -.mcsprite-potion_of_strength { - background-position: -1056px -832px -} - -.mcsprite-potion_of_swiftness { - background-position: -1088px -832px -} - -.mcsprite-potion_of_the_turtle_master { - background-position: -1120px -832px -} - -.mcsprite-potion_of_water_breathing { - background-position: -1152px -832px -} - -.mcsprite-potion_of_weakness { - background-position: -1184px -832px -} - -.mcsprite-powder_snow { - background-position: -1216px -832px -} - -.mcsprite-powder_snow_bucket { - background-position: -1248px -832px -} - -.mcsprite-powered_rail { - background-position: 0 -864px -} - -.mcsprite-prismarine { - background-position: -32px -864px -} - -.mcsprite-prismarine_brick_slab { - background-position: -64px -864px -} - -.mcsprite-prismarine_brick_stairs { - background-position: -96px -864px -} - -.mcsprite-prismarine_brick_stairs_old { - background-position: -128px -864px -} - -.mcsprite-prismarine_bricks { - background-position: -160px -864px -} - -.mcsprite-prismarine_bricks_slab { - background-position: -192px -864px -} - -.mcsprite-prismarine_crystals { - background-position: -224px -864px -} - -.mcsprite-prismarine_shard { - background-position: -256px -864px -} - -.mcsprite-prismarine_wall { - background-position: -288px -864px -} - -.mcsprite-pufferfish { - background-position: -320px -864px -} - -.mcsprite-pufferfish_spawn_egg { - background-position: -352px -864px -} - -.mcsprite-pumpkin { - background-position: -384px -864px -} - -.mcsprite-pumpkin_pie { - background-position: -416px -864px -} - -.mcsprite-pumpkin_seeds { - background-position: -448px -864px -} - -.mcsprite-purple_banner { - background-position: -480px -864px -} - -.mcsprite-purple_bed { - background-position: -512px -864px -} - -.mcsprite-purple_bed_lce { - background-position: -544px -864px -} - -.mcsprite-purple_candle { - background-position: -576px -864px -} - -.mcsprite-purple_carpet { - background-position: -608px -864px -} - -.mcsprite-purple_concrete { - background-position: -640px -864px -} - -.mcsprite-purple_concrete_powder { - background-position: -672px -864px -} - -.mcsprite-purple_dye { - background-position: -704px -864px -} - -.mcsprite-purple_firework_star { - background-position: -736px -864px -} - -.mcsprite-purple_glazed_terracotta { - background-position: -768px -864px -} - -.mcsprite-purple_shield { - background-position: -800px -864px -} - -.mcsprite-purple_shulker_box { - background-position: -832px -864px -} - -.mcsprite-purple_stained_glass { - background-position: -864px -864px -} - -.mcsprite-purple_stained_glass_pane { - background-position: -896px -864px -} - -.mcsprite-purple_terracotta { - background-position: -928px -864px -} - -.mcsprite-purple_wool { - background-position: -960px -864px -} - -.mcsprite-purpur_block { - background-position: -992px -864px -} - -.mcsprite-purpur_pillar { - background-position: -1024px -864px -} - -.mcsprite-purpur_slab { - background-position: -1056px -864px -} - -.mcsprite-purpur_stairs { - background-position: -1088px -864px -} - -.mcsprite-quartz_bricks { - background-position: -1120px -864px -} - -.mcsprite-quartz_pillar { - background-position: -1152px -864px -} - -.mcsprite-quartz_slab { - background-position: -1184px -864px -} - -.mcsprite-quartz_stairs { - background-position: -1216px -864px -} - -.mcsprite-rabbit_hide { - background-position: -1248px -864px -} - -.mcsprite-rabbit_spawn_egg { - background-position: 0 -896px -} - -.mcsprite-rabbit_stew { - background-position: -32px -896px -} - -.mcsprite-rabbits_foot { - background-position: -64px -896px -} - -.mcsprite-rail { - background-position: -96px -896px -} - -.mcsprite-ravager_spawn_egg { - background-position: -128px -896px -} - -.mcsprite-raw_beef { - background-position: -160px -896px -} - -.mcsprite-raw_chicken { - background-position: -192px -896px -} - -.mcsprite-raw_cod { - background-position: -224px -896px -} - -.mcsprite-raw_copper { - background-position: -256px -896px -} - -.mcsprite-raw_fish { - background-position: -288px -896px -} - -.mcsprite-raw_gold { - background-position: -320px -896px -} - -.mcsprite-raw_iron { - background-position: -352px -896px -} - -.mcsprite-raw_mutton { - background-position: -384px -896px -} - -.mcsprite-raw_porkchop { - background-position: -416px -896px -} - -.mcsprite-raw_rabbit { - background-position: -448px -896px -} - -.mcsprite-raw_salmon { - background-position: -480px -896px -} - -.mcsprite-red_banner { - background-position: -512px -896px -} - -.mcsprite-red_bed { - background-position: -544px -896px -} - -.mcsprite-red_bed_lce { - background-position: -576px -896px -} - -.mcsprite-red_candle { - background-position: -608px -896px -} - -.mcsprite-red_carpet { - background-position: -640px -896px -} - -.mcsprite-red_concrete { - background-position: -672px -896px -} - -.mcsprite-red_concrete_powder { - background-position: -704px -896px -} - -.mcsprite-red_dye { - background-position: -736px -896px -} - -.mcsprite-red_firework_star { - background-position: -768px -896px -} - -.mcsprite-red_glazed_terracotta { - background-position: -800px -896px -} - -.mcsprite-red_mushroom { - background-position: -832px -896px -} - -.mcsprite-red_mushroom_block { - background-position: -864px -896px -} - -.mcsprite-red_nether_brick_slab { - background-position: -896px -896px -} - -.mcsprite-red_nether_brick_stairs { - background-position: -928px -896px -} - -.mcsprite-red_nether_brick_wall { - background-position: -960px -896px -} - -.mcsprite-red_nether_bricks { - background-position: -992px -896px -} - -.mcsprite-red_sand { - background-position: -1024px -896px -} - -.mcsprite-red_sandstone { - background-position: -1056px -896px -} - -.mcsprite-red_sandstone_slab { - background-position: -1088px -896px -} - -.mcsprite-red_sandstone_stairs { - background-position: -1120px -896px -} - -.mcsprite-red_sandstone_wall { - background-position: -1152px -896px -} - -.mcsprite-red_shield { - background-position: -1184px -896px -} - -.mcsprite-red_shulker_box { - background-position: -1216px -896px -} - -.mcsprite-red_stained_glass { - background-position: -1248px -896px -} - -.mcsprite-red_stained_glass_pane { - background-position: 0 -928px -} - -.mcsprite-red_terracotta { - background-position: -32px -928px -} - -.mcsprite-red_tulip { - background-position: -64px -928px -} - -.mcsprite-red_wool { - background-position: -96px -928px -} - -.mcsprite-redstone { - background-position: -128px -928px -} - -.mcsprite-redstone_comparator { - background-position: -160px -928px -} - -.mcsprite-redstone_dust { - background-position: -192px -928px -} - -.mcsprite-redstone_lamp { - background-position: -224px -928px -} - -.mcsprite-redstone_ore { - background-position: -256px -928px -} - -.mcsprite-redstone_repeater { - background-position: -288px -928px -} - -.mcsprite-redstone_torch { - background-position: -320px -928px -} - -.mcsprite-respawn_anchor { - background-position: -352px -928px -} - -.mcsprite-rooted_dirt { - background-position: -384px -928px -} - -.mcsprite-rose_bush { - background-position: -416px -928px -} - -.mcsprite-rose_red { - background-position: -448px -928px -} - -.mcsprite-rotten_flesh { - background-position: -480px -928px -} - -.mcsprite-saddle { - background-position: -512px -928px -} - -.mcsprite-salmon_spawn_egg { - background-position: -544px -928px -} - -.mcsprite-sand { - background-position: -576px -928px -} - -.mcsprite-sandstone { - background-position: -608px -928px -} - -.mcsprite-sandstone_slab { - background-position: -640px -928px -} - -.mcsprite-sandstone_stairs { - background-position: -672px -928px -} - -.mcsprite-sandstone_wall { - background-position: -704px -928px -} - -.mcsprite-scaffolding { - background-position: -736px -928px -} - -.mcsprite-sculk_sensor { - background-position: -768px -928px -} - -.mcsprite-scute { - background-position: -800px -928px -} - -.mcsprite-sea_lantern { - background-position: -832px -928px -} - -.mcsprite-sea_pickle { - background-position: -864px -928px -} - -.mcsprite-seagrass { - background-position: -896px -928px -} - -.mcsprite-seeds { - background-position: -928px -928px -} - -.mcsprite-shears { - background-position: -960px -928px -} - -.mcsprite-sheep_spawn_egg { - background-position: -992px -928px -} - -.mcsprite-shield { - background-position: -1024px -928px -} - -.mcsprite-shroomlight { - background-position: -1056px -928px -} - -.mcsprite-shrub_lce { - background-position: -1088px -928px -} - -.mcsprite-shulker_box { - background-position: -1120px -928px -} - -.mcsprite-shulker_shell { - background-position: -1152px -928px -} - -.mcsprite-shulker_spawn_egg { - background-position: -1184px -928px -} - -.mcsprite-silverfish_spawn_egg { - background-position: -1216px -928px -} - -.mcsprite-skeleton_horse_spawn_egg { - background-position: -1248px -928px -} - -.mcsprite-skeleton_skull { - background-position: 0 -960px -} - -.mcsprite-skeleton_spawn_egg { - background-position: -32px -960px -} - -.mcsprite-slime_block { - background-position: -64px -960px -} - -.mcsprite-slime_spawn_egg { - background-position: -96px -960px -} - -.mcsprite-slimeball { - background-position: -128px -960px -} - -.mcsprite-small_amethyst_bud { - background-position: -160px -960px -} - -.mcsprite-small_dripleaf { - background-position: -192px -960px -} - -.mcsprite-smithing_table { - background-position: -224px -960px -} - -.mcsprite-smoker { - background-position: -256px -960px -} - -.mcsprite-smooth_basalt { - background-position: -288px -960px -} - -.mcsprite-smooth_quartz { - background-position: -320px -960px -} - -.mcsprite-smooth_quartz_block { - background-position: -352px -960px -} - -.mcsprite-smooth_quartz_slab { - background-position: -384px -960px -} - -.mcsprite-smooth_quartz_stairs { - background-position: -416px -960px -} - -.mcsprite-smooth_red_sandstone { - background-position: -448px -960px -} - -.mcsprite-smooth_red_sandstone_slab { - background-position: -480px -960px -} - -.mcsprite-smooth_red_sandstone_stairs { - background-position: -512px -960px -} - -.mcsprite-smooth_sandstone { - background-position: -544px -960px -} - -.mcsprite-smooth_sandstone_slab { - background-position: -576px -960px -} - -.mcsprite-smooth_sandstone_stairs { - background-position: -608px -960px -} - -.mcsprite-smooth_stone { - background-position: -640px -960px -} - -.mcsprite-smooth_stone_bricks { - background-position: -672px -960px -} - -.mcsprite-smooth_stone_slab { - background-position: -704px -960px -} - -.mcsprite-snow { - background-position: -736px -960px -} - -.mcsprite-snow_block { - background-position: -768px -960px -} - -.mcsprite-snowball { - background-position: -800px -960px -} - -.mcsprite-soul_campfire { - background-position: -832px -960px -} - -.mcsprite-soul_lantern { - background-position: -864px -960px -} - -.mcsprite-soul_sand { - background-position: -896px -960px -} - -.mcsprite-soul_soil { - background-position: -928px -960px -} - -.mcsprite-soul_torch { - background-position: -960px -960px -} - -.mcsprite-spawn_agent { - background-position: -992px -960px -} - -.mcsprite-spawn_bat { - background-position: -1024px -960px -} - -.mcsprite-spawn_bee { - background-position: -1056px -960px -} - -.mcsprite-spawn_blaze { - background-position: -1088px -960px -} - -.mcsprite-spawn_cat { - background-position: -1120px -960px -} - -.mcsprite-spawn_cave_spider { - background-position: -1152px -960px -} - -.mcsprite-spawn_chicken { - background-position: -1184px -960px -} - -.mcsprite-spawn_cod { - background-position: -1216px -960px -} - -.mcsprite-spawn_cow { - background-position: -1248px -960px -} - -.mcsprite-spawn_creeper { - background-position: 0 -992px -} - -.mcsprite-spawn_dolphin { - background-position: -32px -992px -} - -.mcsprite-spawn_donkey { - background-position: -64px -992px -} - -.mcsprite-spawn_drowned { - background-position: -96px -992px -} - -.mcsprite-spawn_elder_guardian { - background-position: -128px -992px -} - -.mcsprite-spawn_enderman { - background-position: -160px -992px -} - -.mcsprite-spawn_endermite { - background-position: -192px -992px -} - -.mcsprite-spawn_evoker { - background-position: -224px -992px -} - -.mcsprite-spawn_fox { - background-position: -256px -992px -} - -.mcsprite-spawn_ghast { - background-position: -288px -992px -} - -.mcsprite-spawn_goat { - background-position: -320px -992px -} - -.mcsprite-spawn_guardian { - background-position: -352px -992px -} - -.mcsprite-spawn_horse { - background-position: -384px -992px -} - -.mcsprite-spawn_husk { - background-position: -416px -992px -} - -.mcsprite-spawn_llama { - background-position: -448px -992px -} - -.mcsprite-spawn_magma_cube { - background-position: -480px -992px -} - -.mcsprite-spawn_mask { - background-position: -512px -992px -} - -.mcsprite-spawn_mooshroom { - background-position: -544px -992px -} - -.mcsprite-spawn_mule { - background-position: -576px -992px -} - -.mcsprite-spawn_npc { - background-position: -608px -992px -} - -.mcsprite-spawn_ocelot { - background-position: -640px -992px -} - -.mcsprite-spawn_panda { - background-position: -672px -992px -} - -.mcsprite-spawn_parrot { - background-position: -704px -992px -} - -.mcsprite-spawn_phantom { - background-position: -736px -992px -} - -.mcsprite-spawn_pig { - background-position: -768px -992px -} - -.mcsprite-spawn_pillager { - background-position: -800px -992px -} - -.mcsprite-spawn_polar_bear { - background-position: -832px -992px -} - -.mcsprite-spawn_pufferfish { - background-position: -864px -992px -} - -.mcsprite-spawn_rabbit { - background-position: -896px -992px -} - -.mcsprite-spawn_ravager { - background-position: -928px -992px -} - -.mcsprite-spawn_salmon { - background-position: -960px -992px -} - -.mcsprite-spawn_sheep { - background-position: -992px -992px -} - -.mcsprite-spawn_shulker { - background-position: -1024px -992px -} - -.mcsprite-spawn_silverfish { - background-position: -1056px -992px -} - -.mcsprite-spawn_skeleton { - background-position: -1088px -992px -} - -.mcsprite-spawn_skeleton_horse { - background-position: -1120px -992px -} - -.mcsprite-spawn_slime { - background-position: -1152px -992px -} - -.mcsprite-spawn_spider { - background-position: -1184px -992px -} - -.mcsprite-spawn_squid { - background-position: -1216px -992px -} - -.mcsprite-spawn_stray { - background-position: -1248px -992px -} - -.mcsprite-spawn_strider { - background-position: 0 -1024px -} - -.mcsprite-spawn_trader_llama { - background-position: -32px -1024px -} - -.mcsprite-spawn_tropical_fish { - background-position: -64px -1024px -} - -.mcsprite-spawn_turtle { - background-position: -96px -1024px -} - -.mcsprite-spawn_vex { - background-position: -128px -1024px -} - -.mcsprite-spawn_villager { - background-position: -160px -1024px -} - -.mcsprite-spawn_vindicator { - background-position: -192px -1024px -} - -.mcsprite-spawn_wandering_trader { - background-position: -224px -1024px -} - -.mcsprite-spawn_witch { - background-position: -256px -1024px -} - -.mcsprite-spawn_wither_skeleton { - background-position: -288px -1024px -} - -.mcsprite-spawn_wolf { - background-position: -320px -1024px -} - -.mcsprite-spawn_zoglin { - background-position: -352px -1024px -} - -.mcsprite-spawn_zombie { - background-position: -384px -1024px -} - -.mcsprite-spawn_zombie_horse { - background-position: -416px -1024px -} - -.mcsprite-spawn_zombie_pigman { - background-position: -448px -1024px -} - -.mcsprite-spawn_zombie_villager { - background-position: -480px -1024px -} - -.mcsprite-spawner { - background-position: -512px -1024px -} - -.mcsprite-spectral_arrow { - background-position: -544px -1024px -} - -.mcsprite-spider_eye { - background-position: -576px -1024px -} - -.mcsprite-spider_spawn_egg { - background-position: -608px -1024px -} - -.mcsprite-splash_mundane_potion { - background-position: -640px -1024px -} - -.mcsprite-splash_potion_of_decay { - background-position: -672px -1024px -} - -.mcsprite-splash_potion_of_fire_resistance { - background-position: -704px -1024px -} - -.mcsprite-splash_potion_of_harming { - background-position: -736px -1024px -} - -.mcsprite-splash_potion_of_healing { - background-position: -768px -1024px -} - -.mcsprite-splash_potion_of_invisibility { - background-position: -800px -1024px -} - -.mcsprite-splash_potion_of_leaping { - background-position: -832px -1024px -} - -.mcsprite-splash_potion_of_levitation { - background-position: -864px -1024px -} - -.mcsprite-splash_potion_of_luck { - background-position: -896px -1024px -} - -.mcsprite-splash_potion_of_night_vision { - background-position: -928px -1024px -} - -.mcsprite-splash_potion_of_poison { - background-position: -960px -1024px -} - -.mcsprite-splash_potion_of_regeneration { - background-position: -992px -1024px -} - -.mcsprite-splash_potion_of_slow_falling { - background-position: -1024px -1024px -} - -.mcsprite-splash_potion_of_slowness { - background-position: -1056px -1024px -} - -.mcsprite-splash_potion_of_strength { - background-position: -1088px -1024px -} - -.mcsprite-splash_potion_of_swiftness { - background-position: -1120px -1024px -} - -.mcsprite-splash_potion_of_the_turtle_master { - background-position: -1152px -1024px -} - -.mcsprite-splash_potion_of_water_breathing { - background-position: -1184px -1024px -} - -.mcsprite-splash_potion_of_weakness { - background-position: -1216px -1024px -} - -.mcsprite-splash_water_bottle { - background-position: -1248px -1024px -} - -.mcsprite-sponge { - background-position: 0 -1056px -} - -.mcsprite-spore_blossom { - background-position: -32px -1056px -} - -.mcsprite-spruce_boat { - background-position: -64px -1056px -} - -.mcsprite-spruce_button { - background-position: -96px -1056px -} - -.mcsprite-spruce_door { - background-position: -128px -1056px -} - -.mcsprite-spruce_fence { - background-position: -160px -1056px -} - -.mcsprite-spruce_fence_gate { - background-position: -192px -1056px -} - -.mcsprite-spruce_leaves { - background-position: -224px -1056px -} - -.mcsprite-spruce_log { - background-position: -256px -1056px -} - -.mcsprite-spruce_planks { - background-position: -288px -1056px -} - -.mcsprite-spruce_pressure_plate { - background-position: -320px -1056px -} - -.mcsprite-spruce_sapling { - background-position: -352px -1056px -} - -.mcsprite-spruce_sign { - background-position: -384px -1056px -} - -.mcsprite-spruce_slab { - background-position: -416px -1056px -} - -.mcsprite-spruce_stairs { - background-position: -448px -1056px -} - -.mcsprite-spruce_trapdoor { - background-position: -480px -1056px -} - -.mcsprite-spruce_wood { - background-position: -512px -1056px -} - -.mcsprite-spruce_wood_button { - background-position: -544px -1056px -} - -.mcsprite-spruce_wood_door { - background-position: -576px -1056px -} - -.mcsprite-spruce_wood_fence { - background-position: -608px -1056px -} - -.mcsprite-spruce_wood_fence_gate { - background-position: -640px -1056px -} - -.mcsprite-spruce_wood_planks { - background-position: -672px -1056px -} - -.mcsprite-spruce_wood_pressure_plate { - background-position: -704px -1056px -} - -.mcsprite-spruce_wood_sign { - background-position: -736px -1056px -} - -.mcsprite-spruce_wood_slab { - background-position: -768px -1056px -} - -.mcsprite-spruce_wood_stairs { - background-position: -800px -1056px -} - -.mcsprite-spruce_wood_trapdoor { - background-position: -832px -1056px -} - -.mcsprite-spyglass { - background-position: -864px -1056px -} - -.mcsprite-squid_spawn_egg { - background-position: -896px -1056px -} - -.mcsprite-steak { - background-position: -928px -1056px -} - -.mcsprite-stick { - background-position: -960px -1056px -} - -.mcsprite-sticky_piston { - background-position: -992px -1056px -} - -.mcsprite-stone { - background-position: -1024px -1056px -} - -.mcsprite-stone_axe { - background-position: -1056px -1056px -} - -.mcsprite-stone_brick_slab { - background-position: -1088px -1056px -} - -.mcsprite-stone_brick_stairs { - background-position: -1120px -1056px -} - -.mcsprite-stone_brick_wall { - background-position: -1152px -1056px -} - -.mcsprite-stone_bricks { - background-position: -1184px -1056px -} - -.mcsprite-stone_bricks_monster_egg { - background-position: -1216px -1056px -} - -.mcsprite-stone_button { - background-position: -1248px -1056px -} - -.mcsprite-stone_hoe { - background-position: 0 -1088px -} - -.mcsprite-stone_monster_egg { - background-position: -32px -1088px -} - -.mcsprite-stone_pickaxe { - background-position: -64px -1088px -} - -.mcsprite-stone_pressure_plate { - background-position: -96px -1088px -} - -.mcsprite-stone_shovel { - background-position: -128px -1088px -} - -.mcsprite-stone_slab { - background-position: -160px -1088px -} - -.mcsprite-stone_stairs { - background-position: -192px -1088px -} - -.mcsprite-stone_sword { - background-position: -224px -1088px -} - -.mcsprite-stray_spawn_egg { - background-position: -256px -1088px -} - -.mcsprite-strider_spawn_egg { - background-position: -288px -1088px -} - -.mcsprite-string { - background-position: -320px -1088px -} - -.mcsprite-stripped_acacia_log { - background-position: -352px -1088px -} - -.mcsprite-stripped_acacia_wood { - background-position: -384px -1088px -} - -.mcsprite-stripped_birch_log { - background-position: -416px -1088px -} - -.mcsprite-stripped_birch_wood { - background-position: -448px -1088px -} - -.mcsprite-stripped_crimson_hyphae { - background-position: -480px -1088px -} - -.mcsprite-stripped_crimson_stem { - background-position: -512px -1088px -} - -.mcsprite-stripped_dark_oak_log { - background-position: -544px -1088px -} - -.mcsprite-stripped_dark_oak_wood { - background-position: -576px -1088px -} - -.mcsprite-stripped_jungle_log { - background-position: -608px -1088px -} - -.mcsprite-stripped_jungle_wood { - background-position: -640px -1088px -} - -.mcsprite-stripped_oak_log { - background-position: -672px -1088px -} - -.mcsprite-stripped_oak_wood { - background-position: -704px -1088px -} - -.mcsprite-stripped_spruce_log { - background-position: -736px -1088px -} - -.mcsprite-stripped_spruce_wood { - background-position: -768px -1088px -} - -.mcsprite-stripped_warped_hyphae { - background-position: -800px -1088px -} - -.mcsprite-stripped_warped_stem { - background-position: -832px -1088px -} - -.mcsprite-structure_block { - background-position: -864px -1088px -} - -.mcsprite-structure_void { - background-position: -896px -1088px -} - -.mcsprite-sugar { - background-position: -928px -1088px -} - -.mcsprite-sugar_cane { - background-position: -960px -1088px -} - -.mcsprite-sunflower { - background-position: -992px -1088px -} - -.mcsprite-suspicious_stew { - background-position: -1024px -1088px -} - -.mcsprite-sweet_berries { - background-position: -1056px -1088px -} - -.mcsprite-tall_grass { - background-position: -1088px -1088px -} - -.mcsprite-target { - background-position: -1120px -1088px -} - -.mcsprite-terracotta { - background-position: -1152px -1088px -} - -.mcsprite-thick_lingering_potion { - background-position: -1184px -1088px -} - -.mcsprite-thick_potion { - background-position: -1216px -1088px -} - -.mcsprite-thick_splash_potion { - background-position: -1248px -1088px -} - -.mcsprite-tinted_glass { - background-position: 0 -1120px -} - -.mcsprite-tipped_arrow { - background-position: -32px -1120px -} - -.mcsprite-tnt { - background-position: -64px -1120px -} - -.mcsprite-top_snow { - background-position: -96px -1120px -} - -.mcsprite-torch { - background-position: -128px -1120px -} - -.mcsprite-totem_of_undying { - background-position: -160px -1120px -} - -.mcsprite-trader_llama_spawn_egg { - background-position: -192px -1120px -} - -.mcsprite-trapped_chest { - background-position: -224px -1120px -} - -.mcsprite-treasure_map { - background-position: -256px -1120px -} - -.mcsprite-trident { - background-position: -288px -1120px -} - -.mcsprite-tripwire_hook { - background-position: -320px -1120px -} - -.mcsprite-tropical_fish { - background-position: -352px -1120px -} - -.mcsprite-tropical_fish_spawn_egg { - background-position: -384px -1120px -} - -.mcsprite-tube_coral { - background-position: -416px -1120px -} - -.mcsprite-tube_coral_block { - background-position: -448px -1120px -} - -.mcsprite-tube_coral_fan { - background-position: -480px -1120px -} - -.mcsprite-tuff { - background-position: -512px -1120px -} - -.mcsprite-turtle_egg { - background-position: -544px -1120px -} - -.mcsprite-turtle_helmet { - background-position: -576px -1120px -} - -.mcsprite-turtle_shell { - background-position: -608px -1120px -} - -.mcsprite-turtle_spawn_egg { - background-position: -640px -1120px -} - -.mcsprite-twisting_vines { - background-position: -672px -1120px -} - -.mcsprite-uncraftable_lingering_potion { - background-position: -704px -1120px -} - -.mcsprite-uncraftable_potion { - background-position: -736px -1120px -} - -.mcsprite-uncraftable_splash_potion { - background-position: -768px -1120px -} - -.mcsprite-uncraftable_tipped_arrow { - background-position: -800px -1120px -} - -.mcsprite-vex_spawn_egg { - background-position: -832px -1120px -} - -.mcsprite-villager_spawn_egg { - background-position: -864px -1120px -} - -.mcsprite-vindicator_spawn_egg { - background-position: -896px -1120px -} - -.mcsprite-vines { - background-position: -928px -1120px -} - -.mcsprite-void_air { - background-position: -960px -1120px -} - -.mcsprite-wandering_trader_spawn_egg { - background-position: -992px -1120px -} - -.mcsprite-warped_button { - background-position: -1024px -1120px -} - -.mcsprite-warped_door { - background-position: -1056px -1120px -} - -.mcsprite-warped_fence { - background-position: -1088px -1120px -} - -.mcsprite-warped_fence_gate { - background-position: -1120px -1120px -} - -.mcsprite-warped_fungus { - background-position: -1152px -1120px -} - -.mcsprite-warped_fungus_on_a_stick { - background-position: -1184px -1120px -} - -.mcsprite-warped_hyphae { - background-position: -1216px -1120px -} - -.mcsprite-warped_nylium { - background-position: -1248px -1120px -} - -.mcsprite-warped_planks { - background-position: 0 -1152px -} - -.mcsprite-warped_pressure_plate { - background-position: -32px -1152px -} - -.mcsprite-warped_roots { - background-position: -64px -1152px -} - -.mcsprite-warped_sign { - background-position: -96px -1152px -} - -.mcsprite-warped_slab { - background-position: -128px -1152px -} - -.mcsprite-warped_stairs { - background-position: -160px -1152px -} - -.mcsprite-warped_stem { - background-position: -192px -1152px -} - -.mcsprite-warped_trapdoor { - background-position: -224px -1152px -} - -.mcsprite-warped_wart_block { - background-position: -256px -1152px -} - -.mcsprite-water { - background-position: -288px -1152px -} - -.mcsprite-water_bottle { - background-position: -320px -1152px -} - -.mcsprite-water_bucket { - background-position: -352px -1152px -} - -.mcsprite-waxed_block_of_copper { - background-position: -384px -1152px -} - -.mcsprite-waxed_copper { - background-position: -416px -1152px -} - -.mcsprite-waxed_copper_block { - background-position: -448px -1152px -} - -.mcsprite-waxed_cut_copper { - background-position: -480px -1152px -} - -.mcsprite-waxed_cut_copper_block { - background-position: -512px -1152px -} - -.mcsprite-waxed_cut_copper_slab { - background-position: -544px -1152px -} - -.mcsprite-waxed_cut_copper_stairs { - background-position: -576px -1152px -} - -.mcsprite-waxed_exposed_copper { - background-position: -608px -1152px -} - -.mcsprite-waxed_exposed_copper_block { - background-position: -640px -1152px -} - -.mcsprite-waxed_exposed_cut_copper { - background-position: -672px -1152px -} - -.mcsprite-waxed_exposed_cut_copper_block { - background-position: -704px -1152px -} - -.mcsprite-waxed_exposed_cut_copper_slab { - background-position: -736px -1152px -} - -.mcsprite-waxed_exposed_cut_copper_stairs { - background-position: -768px -1152px -} - -.mcsprite-waxed_oxidized_copper { - background-position: -800px -1152px -} - -.mcsprite-waxed_oxidized_copper_block { - background-position: -832px -1152px -} - -.mcsprite-waxed_oxidized_cut_copper { - background-position: -864px -1152px -} - -.mcsprite-waxed_oxidized_cut_copper_block { - background-position: -896px -1152px -} - -.mcsprite-waxed_oxidized_cut_copper_slab { - background-position: -928px -1152px -} - -.mcsprite-waxed_oxidized_cut_copper_stairs { - background-position: -960px -1152px -} - -.mcsprite-waxed_weathered_copper { - background-position: -992px -1152px -} - -.mcsprite-waxed_weathered_copper_block { - background-position: -1024px -1152px -} - -.mcsprite-waxed_weathered_cut_copper { - background-position: -1056px -1152px -} - -.mcsprite-waxed_weathered_cut_copper_block { - background-position: -1088px -1152px -} - -.mcsprite-waxed_weathered_cut_copper_slab { - background-position: -1120px -1152px -} - -.mcsprite-waxed_weathered_cut_copper_stairs { - background-position: -1152px -1152px -} - -.mcsprite-weathered_copper { - background-position: -1184px -1152px -} - -.mcsprite-weathered_copper_block { - background-position: -1216px -1152px -} - -.mcsprite-weathered_cut_copper { - background-position: -1248px -1152px -} - -.mcsprite-weathered_cut_copper_block { - background-position: 0 -1184px -} - -.mcsprite-weathered_cut_copper_slab { - background-position: -32px -1184px -} - -.mcsprite-weathered_cut_copper_stairs { - background-position: -64px -1184px -} - -.mcsprite-weeping_vines { - background-position: -96px -1184px -} - -.mcsprite-wet_sponge { - background-position: -128px -1184px -} - -.mcsprite-wheat { - background-position: -160px -1184px -} - -.mcsprite-wheat_seeds { - background-position: -192px -1184px -} - -.mcsprite-white_banner { - background-position: -224px -1184px -} - -.mcsprite-white_bed { - background-position: -256px -1184px -} - -.mcsprite-white_bed_lce { - background-position: -288px -1184px -} - -.mcsprite-white_candle { - background-position: -320px -1184px -} - -.mcsprite-white_carpet { - background-position: -352px -1184px -} - -.mcsprite-white_concrete { - background-position: -384px -1184px -} - -.mcsprite-white_concrete_powder { - background-position: -416px -1184px -} - -.mcsprite-white_dye { - background-position: -448px -1184px -} - -.mcsprite-white_firework_star { - background-position: -480px -1184px -} - -.mcsprite-white_glazed_terracotta { - background-position: -512px -1184px -} - -.mcsprite-white_shield { - background-position: -544px -1184px -} - -.mcsprite-white_shulker_box { - background-position: -576px -1184px -} - -.mcsprite-white_stained_glass { - background-position: -608px -1184px -} - -.mcsprite-white_stained_glass_pane { - background-position: -640px -1184px -} - -.mcsprite-white_terracotta { - background-position: -672px -1184px -} - -.mcsprite-white_tulip { - background-position: -704px -1184px -} - -.mcsprite-white_wool { - background-position: -736px -1184px -} - -.mcsprite-witch_spawn_egg { - background-position: -768px -1184px -} - -.mcsprite-wither_rose { - background-position: -800px -1184px -} - -.mcsprite-wither_skeleton_skull { - background-position: -832px -1184px -} - -.mcsprite-wither_skeleton_spawn_egg { - background-position: -864px -1184px -} - -.mcsprite-wolf_spawn_egg { - background-position: -896px -1184px -} - -.mcsprite-wooden_axe { - background-position: -928px -1184px -} - -.mcsprite-wooden_hoe { - background-position: -960px -1184px -} - -.mcsprite-wooden_pickaxe { - background-position: -992px -1184px -} - -.mcsprite-wooden_shovel { - background-position: -1024px -1184px -} - -.mcsprite-wooden_slab { - background-position: -1056px -1184px -} - -.mcsprite-wooden_sword { - background-position: -1088px -1184px -} - -.mcsprite-woodland_explorer_map { - background-position: -1120px -1184px -} - -.mcsprite-written_book { - background-position: -1152px -1184px -} - -.mcsprite-yellow_banner { - background-position: -1184px -1184px -} - -.mcsprite-yellow_bed { - background-position: -1216px -1184px -} - -.mcsprite-yellow_bed_lce { - background-position: -1248px -1184px -} - -.mcsprite-yellow_candle { - background-position: 0 -1216px -} - -.mcsprite-yellow_carpet { - background-position: -32px -1216px -} - -.mcsprite-yellow_concrete { - background-position: -64px -1216px -} - -.mcsprite-yellow_concrete_powder { - background-position: -96px -1216px -} - -.mcsprite-yellow_dye { - background-position: -128px -1216px -} - -.mcsprite-yellow_firework_star { - background-position: -160px -1216px -} - -.mcsprite-yellow_glazed_terracotta { - background-position: -192px -1216px -} - -.mcsprite-yellow_shield { - background-position: -224px -1216px -} - -.mcsprite-yellow_shulker_box { - background-position: -256px -1216px -} - -.mcsprite-yellow_stained_glass { - background-position: -288px -1216px -} - -.mcsprite-yellow_stained_glass_pane { - background-position: -320px -1216px -} - -.mcsprite-yellow_terracotta { - background-position: -352px -1216px -} - -.mcsprite-yellow_wool { - background-position: -384px -1216px -} - -.mcsprite-zoglin_spawn_egg { - background-position: -416px -1216px -} - -.mcsprite-zombie_head { - background-position: -448px -1216px -} - -.mcsprite-zombie_horse_spawn_egg { - background-position: -480px -1216px -} - -.mcsprite-zombie_pigman_spawn_egg { - background-position: -512px -1216px -} - -.mcsprite-zombie_spawn_egg { - background-position: -544px -1216px -} - -.mcsprite-zombie_villager_spawn_egg { - background-position: -576px -1216px -} - -.mcsprite-zombified_piglin_spawn_egg { - background-position: -608px -1216px -} - -.toc { - display: none; - position: relative; - margin: 1em 0; - padding: .2em .5em; - background-color: #f8f9fa; - border: solid 1px #eaecf0; - box-sizing: border-box -} - -.toctogglecheckbox ~ ul { - visibility: hidden; - height: 0 -} - -.toctogglecheckbox:not(:checked) ~ ul { - visibility: visible; - padding-bottom: 20px; - height: auto -} - -.toctitle { - padding: 0 25px 0 32px -} - -.toctitle .mw-ui-icon { - position: absolute; - left: 0 -} - -.toctitle .toctogglespan + .mw-ui-icon { - top: 8px; - right: 0; - left: auto -} - -.toctogglelabel { - cursor: pointer; - position: absolute; - left: 0; - top: 0; - right: 0; - height: 50px; - z-index: 1 -} - -.client-js .toc .toctitle { - visibility: hidden; - background-position: right center; - font-weight: 700; - border-bottom: 0 -} - -.client-js .toc .toctitle h2 { - display: inline-block; - font-family: -apple-system, blinkmacsystemfont, segoe ui, roboto, lato, helvetica, arial, sans-serif; - font-size: 1.125em; - vertical-align: middle -} - -.client-js .toc .tocnumber { - display: none -} - -.client-js .toc > ul { - margin: 0 22.85714286em 0 32px; - padding-left: 0; - font-size: .875em -} - -.client-js .toc ul { - list-style: none -} - -@media screen and (min-width: 720px) { - .client-js .toc { - display: table - } - - .client-js .toc .toctitle { - visibility: visible - } -} - -body { - font-family: -apple-system, blinkmacsystemfont, segoe ui, roboto, lato, helvetica, arial, sans-serif; - line-height: 1.4; - -webkit-tap-highlight-color: rgba(0, 0, 0, .2); - overflow-y: scroll -} - -.content { - line-height: 1.65; - word-wrap: break-word -} - -.content .center { - width: 100%; - text-align: center -} - -.content .center > *, .content .center .thumb { - margin-left: auto; - margin-right: auto -} - -@media all and (max-width: 320px -1) { - html { - font-size: 80% - } - - .content { - margin: 0 12px - } -} - -.nomobile { - display: none !important -} - -@supports (font: -apple-system-body) { - html { - font: -apple-system-body - } - - body { - font-size: 94.11764706% - } - - @media all and (max-width: 320px -1) { - body { - font-size: 75.29411765% - } - } -} - -.content figure, .content .thumb { - margin: .6em 0 -} - -.content figure .thumbinner, .content .thumb .thumbinner { - margin: 0 auto; - max-width: 100% !important -} - -.content figcaption, .content .thumbcaption { - margin: .5em 0 0; - font-size: .8125em; - line-height: 1.5; - padding: 0 !important; - color: #54595d -} - -.content .thumbcaption { - width: auto !important -} - -.content .mw-image-border, .content .thumbborder { - border: 1px solid #c8ccd1 -} - -.content .magnify { - display: none -} - -.content img { - vertical-align: middle -} - -.content .floatright { - clear: right; - float: right; - margin: 0 0 .6em .6em -} - -.content .floatleft { - clear: left; - float: left; - margin: 0 .6em .6em 0 -} - -.content a > img, .content noscript > img { - max-width: 100% !important; - height: auto !important -} - -.content .noresize { - max-width: 100%; - overflow-x: auto -} - -.content .noresize a > img { - max-width: none !important -} - -h1 { - font-size: 1.7em -} - -h2 { - font-size: 1.5em -} - -h3 { - font-size: 1.2em; - font-weight: 700 -} - -h4 { - font-weight: 700 -} - -.pre-content h1, .content h1, .content h2 { - font-family: linux libertine, helvetica, georgia, times, serif -} - -.pre-content h1, .content h1, .content h2, h3, h4, h5, h6 { - line-height: 1.3; - word-wrap: break-word; - word-break: break-word -} - -.content h2, .content h3, .content h4, .content h5, .content h6 { - padding: .5em 0 -} - -.content p + h3 { - margin-top: 1.5em -} - -.content { -} - -.content ol { - padding-left: 2.25em -} - -.content ul { - list-style-type: disc; - padding-left: 1em -} - -.content ul > li > ul { - list-style-type: circle -} - -.content ul > li > ul > li > ul { - list-style-type: square -} - -.content ol ol, .content ul ol, .content ol ul, .content ul ul { - margin-left: 1em -} - -.content li { - margin-bottom: 10px -} - -.content li:last-child { - margin-bottom: inherit -} - -dl { - margin-left: 1em -} - -dl dt { - font-weight: 700 -} - -dl dd { - display: block; - overflow: auto -} - -body.mw-hide-empty-elt .mw-empty-elt { - display: none -} - -a:not([href]) { - color: #3f7dfb; - cursor: pointer -} - -a { - color: #3f7dfb; - text-decoration: none -} - -a:visited { - color: #ba91ff -} - -a:active { - color: #986be5 -} - -a:hover { - text-decoration: underline -} - -a.new, a.new:visited, a.new:hover { - color: #d33 -} - -a.new > *, a.new:visited > *, a.new:hover > * { - color: #d33 -} - -a.external { - background-size: 10px; - background-repeat: no-repeat; - background-position: center right; - padding-right: 13px -} - -.return-link { - display: block; - font-size: .875em; - margin-top: 1.5em -} - -.plainlinks a { - background: 0 0 !important; - padding: 0 !important -} - -.content p { - margin: .5em 0 1em -} - -.content hr { - background-color: #a2a9b1; - height: 1px; - border: 0 -} - -.content kbd, .content samp, .content code, .content pre { - font-family: menlo, consolas, liberation mono, courier new, monospace; - border: solid 1px #c8ccd1; - white-space: pre-wrap -} - -.content code { - padding: .2em .5em -} - -.content pre { - padding: 1em -} - -b, strong { - font-weight: 700 -} - -blockquote { - border-left: 3px solid #c8ccd1; - padding: 8px 24px 8px 32px; - font-family: linux libertine, helvetica, georgia, times, serif; - font-size: 1.1em -} - -blockquote > :first-child { - margin-top: 0 -} - -blockquote > :last-child { - margin-bottom: 0 -} - -blockquote > :only-child { - margin-top: 0; - margin-bottom: 0 -} - -em, i { - font-style: italic -} - -sup { - vertical-align: super -} - -sub { - vertical-align: sub -} - -sub, sup, .content .mw-ref { - font-size: .75em; - line-height: 1 -} - -@media all and (max-width: 720px) { - .content table { - display: block; - width: 100% !important; - box-sizing: border-box - } - - .content table.wikitable { - border: 0 - } - - .content caption { - display: block - } -} - -.content table { - margin: 1em 0; - overflow: auto; - overflow-y: hidden; - overflow-x: auto -} - -.content table caption { - text-align: left -} - -.wikitable { - border: 1px solid #54595d; - border-color: rgba(84, 89, 93, .3) -} - -.wikitable > tr > th, .wikitable > tr > td, .wikitable > * > tr > th, .wikitable > * > tr > td { - border: 1px solid #54595d; - border-color: rgba(84, 89, 93, .3); - padding: .2em -} - -.wikitable > tr > th, .wikitable > * > tr > th { - background-color: #eaecf0 -} - -@media screen and (min-width: 720px) { - .client-js #searchIcon { - display: none - } - - .header .branding-box { - width: 10.0625em - } - - .header .search-box { - display: table-cell; - width: auto - } - - .header .search-box .search { - width: 23.4375em - } - - .pre-content, #mw-content-text > form, .content, .post-content { - max-width: 993.3px; - margin: 0 3.35em - } - - .content figure, .content .thumb { - max-width: 704px - } - - .content figure.mw-halign-left, .content .thumb.mw-halign-left, .content figure.tleft, .content .thumb.tleft { - float: left; - clear: left; - margin-right: 1.4em - } - - .content figure.mw-default-size, .content .thumb.mw-default-size, .content figure.mw-halign-right, .content .thumb.mw-halign-right, .content figure.tright, .content .thumb.tright { - float: right; - clear: right; - margin-left: 1.4em - } - - .content table caption { - background: inherit - } - - .content table tbody { - display: table-row-group - } - - .last-modified-bar { - background-color: transparent; - padding-left: 0; - padding-right: 0; - font-size: 1em - } -} - -@media screen and (min-width: 1000px) { - .banner-container, .header, .page-header-bar, .overlay-header, .content, .overlay-content, .content-unstyled, .pre-content, .post-content, #mw-content-text > form { - margin-left: auto; - margin-right: auto; - width: 90%; - max-width: 993.3px - } - - .header { - max-width: 995.3px - } -} - -toast.mw-notification-type-error, .mw-notification.mw-notification-type-error { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&format=rasterized&skin=minerva&version=qhhuv); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&format=original&skin=minerva&version=qhhuv) -} - -toast.mw-notification-type-error, .mw-notification.mw-notification-type-error--reference { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&variant=reference&format=rasterized&skin=minerva&version=qhhuv); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&variant=reference&format=original&skin=minerva&version=qhhuv) -} - -a.external { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&format=rasterized&lang=en&skin=minerva&version=qhhuv); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&format=original&lang=en&skin=minerva&version=qhhuv) -} - -a.external--reference { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&variant=reference&format=rasterized&lang=en&skin=minerva&version=qhhuv); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&variant=reference&format=original&lang=en&skin=minerva&version=qhhuv) -} - -.mw-ui-icon-wikimedia-history-base20:before, .mw-ui-background-icon-history { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-history-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=invert&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=invert&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-history-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=progressive&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=progressive&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-language-base20:before, .mw-ui-background-icon-language { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-language-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=invert&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=invert&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-language-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=progressive&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=progressive&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-edit-base20:before, .mw-ui-background-icon-edit { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-edit-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=invert&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=invert&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-edit-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=progressive&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=progressive&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-editLock-base20:before, .mw-ui-background-icon-editLock { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-editLock-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=invert&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=invert&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-editLock-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=progressive&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=progressive&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-search-base20:before, .mw-ui-background-icon-search { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-search-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=invert&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=invert&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-search-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=progressive&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=progressive&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-menu-base20:before, .mw-ui-background-icon-menu { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-menu-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=invert&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=invert&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-menu-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=progressive&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=progressive&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-star-base20:before, .mw-ui-background-icon-star { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-star-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=invert&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=invert&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-star-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=progressive&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=progressive&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-halfStar-base20:before, .mw-ui-background-icon-halfStar { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&format=rasterized&lang=en&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&format=original&lang=en&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-halfStar-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=invert&format=rasterized&lang=en&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=invert&format=original&lang=en&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-halfStar-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=progressive&format=rasterized&lang=en&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=progressive&format=original&lang=en&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-unStar-base20:before, .mw-ui-background-icon-unStar { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-unStar-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=invert&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=invert&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-unStar-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=progressive&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=progressive&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-userAvatar-base20:before, .mw-ui-background-icon-userAvatar { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-userAvatar-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=invert&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=invert&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-wikimedia-userAvatar-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=progressive&format=rasterized&skin=minerva&version=4y50j); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=progressive&format=original&skin=minerva&version=4y50j) -} - -.mw-ui-icon-minerva-speechBubbles:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.advanced.icons&image=speechBubbles&format=rasterized&lang=en&skin=minerva&version=jhnt0); - background-image: linear-gradient(transparent, transparent), url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+c3BlZWNoIGJ1YmJsZXM8L3RpdGxlPjxnIGZpbGw9IiM1NDU5NWQiPjxwYXRoIGQ9Ik0xNyA0djdhMiAyIDAgMDEtMiAySDR2MWEyIDIgMCAwMDIgMmgxMGw0IDRWNmEyIDIgMCAwMC0yLTJ6TTYgMTBIMHY2eiIvPjxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxMiIgcng9IjIiLz48L2c+PC9zdmc+) -} - -.mw-ui-icon-minerva-specialPages:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.advanced.icons&image=specialPages&format=rasterized&lang=en&skin=minerva&version=jhnt0); - background-image: linear-gradient(transparent, transparent), url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+c3BlY2lhbCBwYWdlczwvdGl0bGU+PGcgZmlsbD0iIzU0NTk1ZCI+PHBhdGggZD0iTTcgMGEyIDIgMCAwMC0yIDJoOWEyIDIgMCAwMTIgMnYxMmEyIDIgMCAwMDItMlYyYTIgMiAwIDAwLTItMnoiLz48cGF0aCBkPSJNMTMgMjBINGEyIDIgMCAwMS0yLTJWNWEyIDIgMCAwMTItMmg5YTIgMiAwIDAxMiAydjEzYTIgMiAwIDAxLTIgMnptLTYuNS0zLjVsLjQxLTEuMDlMOCAxNWwtMS4wOS0uNDEtLjQxLTEuMDktLjQxIDEuMDlMNSAxNWwxLjA5LjQxLjQxIDEuMDl6bTIuOTgyLS45NDlsLjk1Mi0yLjU2MSAyLjUzLS45NjQtMi41My0uOTY0TDkuNDgyIDguNWwtLjk1MiAyLjU2Mi0yLjUzLjk2NCAyLjUzLjk2NC45NTIgMi41NjF6TTYgMTAuNWwuNTQ3LTEuNDUzTDggOC41bC0xLjQ1My0uNTQ3TDYgNi41bC0uNTQ3IDEuNDUzTDQgOC41bDEuNDUzLjU0N0w2IDEwLjV6Ii8+PC9nPjwvc3ZnPg==) -} - -.mw-ui-icon-minerva-recentChanges:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.advanced.icons&image=recentChanges&format=rasterized&lang=en&skin=minerva&version=jhnt0); - background-image: linear-gradient(transparent, transparent), url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+cmVjZW50IGNoYW5nZXM8L3RpdGxlPjxnIGZpbGw9IiM1NDU5NWQiPjxjaXJjbGUgY3g9IjIiIGN5PSI0IiByPSIyIi8+PGNpcmNsZSBjeD0iMiIgY3k9IjEwIiByPSIyIi8+PGNpcmNsZSBjeD0iMiIgY3k9IjE2IiByPSIyIi8+PHBhdGggZD0iTTYgM2gxMXYySDZ6bTAgNmg2djJINnptMCA2aDJ2Mkg2em0xMi43Ni0zLjExbDEuMDc4LTEuMTEyYS41NTYuNTU2IDAgMDAwLS43ODNsLTEuODU1LTEuODMzYS41NTYuNTU2IDAgMDAtLjc4MyAwbC0xLjA5IDEuMDc3IDIuNjUgMi42NXptLTMuMjI3LTIuMDYyTDEwIDE1LjM2MVYxOGgyLjYzOWw1LjUzMy01LjUzM3oiLz48L2c+PC9zdmc+) -} - -.mw-ui-icon-minerva-die:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=die&format=rasterized&skin=minerva&version=17p52); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=die&format=original&skin=minerva&version=17p52) -} - -.mw-ui-icon-minerva-heart:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=heart&format=rasterized&skin=minerva&version=17p52); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=heart&format=original&skin=minerva&version=17p52) -} - -.mw-ui-icon-minerva-home:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=home&format=rasterized&skin=minerva&version=17p52); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=home&format=original&skin=minerva&version=17p52) -} - -.mw-ui-icon-minerva-logIn:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logIn&format=rasterized&lang=en&skin=minerva&version=17p52); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logIn&format=original&lang=en&skin=minerva&version=17p52) -} - -.mw-ui-icon-minerva-logOut:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logOut&format=rasterized&lang=en&skin=minerva&version=17p52); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logOut&format=original&lang=en&skin=minerva&version=17p52) -} - -.mw-ui-icon-minerva-settings:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=settings&format=rasterized&skin=minerva&version=17p52); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=settings&format=original&skin=minerva&version=17p52) -} - -.mw-ui-icon-minerva-mapPin:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=mapPin&format=rasterized&skin=minerva&version=17p52); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=mapPin&format=original&skin=minerva&version=17p52) -} - -.mw-ui-icon-minerva-unStar:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=unStar&format=rasterized&skin=minerva&version=17p52); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=unStar&format=original&skin=minerva&version=17p52) -} - -.mw-ui-icon-minerva-userContributions:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=userContributions&format=rasterized&lang=en&skin=minerva&version=17p52); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=userContributions&format=original&lang=en&skin=minerva&version=17p52) -} - -#mw-mf-page-left { - position: fixed; - top: 0; - left: 0; - bottom: 0; - min-width: 275px; - visibility: hidden; - max-width: 80%; - z-index: 2; - overflow-y: auto; - background-color: #eaecf0; - -webkit-transform: translate(-100%, 0); - -ms-transform: translate(-100%, 0); - transform: translate(-100%, 0) -} - -@media screen and (min-width: 720px) { - #mw-mf-page-left { - min-width: 320px - } -} - -#mw-mf-page-left ul { - padding-bottom: 22px -} - -.main-menu-mask { - position: fixed; - top: 0; - left: 0; - right: 0; - opacity: 0; - bottom: 0; - background: rgba(0, 0, 0, .8); - z-index: 1; - visibility: hidden -} - -#main-menu-input:checked ~ .main-menu-mask { - visibility: visible; - opacity: .5 -} - -#main-menu-input:checked ~ #mw-mf-page-left { - visibility: visible; - box-shadow: 1px 0 8px 0 rgba(0, 0, 0, .35); - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - transform: translate(0, 0) -} - -.minerva-animations-ready #mw-mf-page-left { - -webkit-transition: opacity 250ms ease-in-out, visibility 250ms ease-in-out, transform 250ms ease-in-out; - transition: opacity 250ms ease-in-out, visibility 250ms ease-in-out, transform 250ms ease-in-out -} - -.minerva-animations-ready .main-menu-mask { - -webkit-transition: opacity 100ms ease-in-out, visibility 0ms linear 100ms; - transition: opacity 100ms ease-in-out, visibility 0ms linear 100ms -} - -.minerva-animations-ready #main-menu-input:checked ~ .main-menu-mask { - -webkit-transition: opacity 100ms ease-in-out; - transition: opacity 100ms ease-in-out -} - -.navigation-full-screen #mw-mf-page-left { - max-width: none; - -webkit-transform: none; - -ms-transform: none; - transform: none -} - -.hotfix-T264376 .main-menu-mask { - display: none -} - -.hotfix-T264376 #main-menu-input:checked ~ .main-menu-mask { - display: block -} - -#mw-mf-page-left .secondary-action { - border: 0; - font-size: 16px; - position: absolute; - right: 0; - top: 0; - bottom: 0; - border-left: 1px solid #a2a9b1; - color: transparent -} - -#mw-mf-page-left .primary-action { - margin-right: 3.5em -} - -#mw-mf-page-left ul:first-child li:first-child { - border-top: 0 -} - -#mw-mf-page-left ul li { - background-color: #fff; - position: relative; - border-top: 1px solid #eaecf0; - margin-top: -1px -} - -#mw-mf-page-left ul li:first-child { - border-top: 0 -} - -#mw-mf-page-left ul li a { - color: #54595d; - display: block; - max-width: 100%; - padding: 12px 10px 12px 15px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap -} - -#mw-mf-page-left ul li a.secondary-action { - padding-left: 10px -} - -#mw-mf-page-left ul li a:hover { - box-shadow: inset 4px 0 0 0 #36c; - text-decoration: none -} - -#mw-mf-page-left ul li a span { - font-size: .875em; - font-weight: 700; - vertical-align: middle -} - -#mw-mf-page-left ul.hlist li { - background-color: transparent; - border: 0; - margin: 0; - font-size: .75em -} - -#mw-mf-page-left ul.hlist li:after { - content: none -} - -#mw-mf-page-left ul.hlist li a { - color: #36c; - padding: .7em 12px -} - -#mw-mf-page-left ul.hlist li a:hover { - background-color: transparent; - box-shadow: none -} - -.notifications-overlay { - visibility: visible -} - -.notifications-overlay.navigation-drawer { - display: block; - width: auto; - right: 0; - box-shadow: -5px 0 0 0 rgba(0, 0, 0, .35); - -webkit-transform: translate(100%, 0); - -ms-transform: translate(100%, 0); - transform: translate(100%, 0); - -webkit-transition: transform 250ms ease-in-out; - transition: transform 250ms ease-in-out -} - -.notifications-overlay.navigation-drawer.visible { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - transform: translate(0, 0) -} - -@media all and (min-width: 720px) { - .notifications-overlay.navigation-drawer { - left: 40% - } - - .notifications-overlay.navigation-drawer .overlay-header { - margin: 0; - width: 100%; - max-width: none - } - - .notifications-overlay.navigation-drawer .overlay-header .cancel { - left: 0 - } -} - -.toggle-list__checkbox { - position: absolute; - z-index: -1; - opacity: 0 -} - -.toggle-list__toggle { - display: inline-block; - cursor: pointer -} - -.toggle-list__checkbox:focus + .toggle-list__toggle { - outline: dotted 1px; - outline: auto #447ff5 -} - -.toggle-list__checkbox:checked + .toggle-list__toggle { - outline: 0; - background: rgba(1, 1, 1, .1) -} - -.touch-events .toggle-list__checkbox:focus + .toggle-list__toggle { - outline: 0 -} - -.toggle-list__list { - background: #fff; - position: absolute; - overflow-y: auto; - z-index: 2; - box-shadow: 0 5px 17px 0 rgba(0, 0, 0, .24), 0 0 1px #a2a9b1; - visibility: hidden; - opacity: 0 -} - -.toggle-list__checkbox:checked ~ .toggle-list__list { - visibility: visible; - opacity: 1 -} - -.mw-ui-icon-minerva-articleRedirect:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&format=rasterized&lang=en&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&format=original&lang=en&skin=minerva&version=bdzvr) -} - -.oo-ui-image-invert.oo-ui-icon-articleRedirect, .mw-ui-icon-articleRedirect-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr) -} - -.oo-ui-image-progressive.oo-ui-icon-articleRedirect, .mw-ui-icon-articleRedirect-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr) -} - -.mw-ui-icon-minerva-infoFilled:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&format=rasterized&lang=en&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&format=original&lang=en&skin=minerva&version=bdzvr) -} - -.oo-ui-image-invert.oo-ui-icon-infoFilled, .mw-ui-icon-infoFilled-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr) -} - -.oo-ui-image-progressive.oo-ui-icon-infoFilled, .mw-ui-icon-infoFilled-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr) -} - -.mw-ui-icon-minerva-quotes:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&format=rasterized&lang=en&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&format=original&lang=en&skin=minerva&version=bdzvr) -} - -.oo-ui-image-invert.oo-ui-icon-quotes, .mw-ui-icon-quotes-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr) -} - -.oo-ui-image-progressive.oo-ui-icon-quotes, .mw-ui-icon-quotes-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr) -} - -.mw-ui-icon-minerva-link:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&format=rasterized&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&format=original&skin=minerva&version=bdzvr) -} - -.oo-ui-image-invert.oo-ui-icon-link, .mw-ui-icon-link-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=invert&format=rasterized&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=invert&format=original&skin=minerva&version=bdzvr) -} - -.oo-ui-image-progressive.oo-ui-icon-link, .mw-ui-icon-link-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=progressive&format=original&skin=minerva&version=bdzvr) -} - -.mw-ui-icon-minerva-listBullet:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&format=rasterized&lang=en&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&format=original&lang=en&skin=minerva&version=bdzvr) -} - -.oo-ui-image-invert.oo-ui-icon-listBullet, .mw-ui-icon-listBullet-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr) -} - -.oo-ui-image-progressive.oo-ui-icon-listBullet, .mw-ui-icon-listBullet-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr) -} - -.mw-ui-icon-minerva-ellipsis:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&format=rasterized&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&format=original&skin=minerva&version=bdzvr) -} - -.oo-ui-image-invert.oo-ui-icon-ellipsis, .mw-ui-icon-ellipsis-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=invert&format=rasterized&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=invert&format=original&skin=minerva&version=bdzvr) -} - -.oo-ui-image-progressive.oo-ui-icon-ellipsis, .mw-ui-icon-ellipsis-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=progressive&format=original&skin=minerva&version=bdzvr) -} - -.mw-ui-icon-minerva-userAvatar:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&format=rasterized&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&format=original&skin=minerva&version=bdzvr) -} - -.oo-ui-image-invert.oo-ui-icon-userAvatar, .mw-ui-icon-userAvatar-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=invert&format=rasterized&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=invert&format=original&skin=minerva&version=bdzvr) -} - -.oo-ui-image-progressive.oo-ui-icon-userAvatar, .mw-ui-icon-userAvatar-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=progressive&format=original&skin=minerva&version=bdzvr) -} - -.mw-ui-icon-minerva-userAvatarOutline:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&format=rasterized&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&format=original&skin=minerva&version=bdzvr) -} - -.oo-ui-image-invert.oo-ui-icon-userAvatarOutline, .mw-ui-icon-userAvatarOutline-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=invert&format=rasterized&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=invert&format=original&skin=minerva&version=bdzvr) -} - -.oo-ui-image-progressive.oo-ui-icon-userAvatarOutline, .mw-ui-icon-userAvatarOutline-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=progressive&format=original&skin=minerva&version=bdzvr) -} - -.mw-ui-icon-minerva-userGroup:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&format=rasterized&lang=en&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&format=original&lang=en&skin=minerva&version=bdzvr) -} - -.oo-ui-image-invert.oo-ui-icon-userGroup, .mw-ui-icon-userGroup-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr) -} - -.oo-ui-image-progressive.oo-ui-icon-userGroup, .mw-ui-icon-userGroup-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr) -} - -.mw-ui-icon-minerva-userTalk:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&format=rasterized&lang=en&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&format=original&lang=en&skin=minerva&version=bdzvr) -} - -.oo-ui-image-invert.oo-ui-icon-userTalk, .mw-ui-icon-userTalk-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr) -} - -.oo-ui-image-progressive.oo-ui-icon-userTalk, .mw-ui-icon-userTalk-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr) -} - -.mw-ui-icon-minerva-logoWikidata:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&format=rasterized&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&format=original&skin=minerva&version=bdzvr) -} - -.oo-ui-image-invert.oo-ui-icon-logoWikidata, .mw-ui-icon-logoWikidata-invert:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=invert&format=rasterized&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=invert&format=original&skin=minerva&version=bdzvr) -} - -.oo-ui-image-progressive.oo-ui-icon-logoWikidata, .mw-ui-icon-logoWikidata-progressive:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); - background-image: linear-gradient(transparent, transparent), url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=progressive&format=original&skin=minerva&version=bdzvr) -} - -.mw-ui-icon-minerva-markup:before { - background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.personalMenu.icons&image=markup&format=rasterized&skin=minerva&version=1j2d9); - background-image: linear-gradient(transparent, transparent), url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+bWFya3VwPC90aXRsZT48ZyBmaWxsPSIjNTQ1OTVkIj48cGF0aCBkPSJNNi41IDMuNUwwIDEwbDEuNSAxLjUgNSA1TDggMTVsLTUtNSA1LTV6bTcgMEwxMiA1bDUgNS01IDUgMS41IDEuNUwyMCAxMHoiLz48L2c+PC9zdmc+) -} - -div#mw-content-text { - position: absolute; -} - -body { - text-rendering: optimizeLegibility; - text-rendering: geometricPrecision -} +.client-js .mw-dismissable-notice { display: none}.mw-dismissable-notice-close { visibility: hidden}.sitedir-ltr .mw-dismissable-notice-close { float: right}.sitedir-rtl .mw-dismissable-notice-close { float: left}.sitedir-ltr .mw-dismissable-notice-body { margin: .5em 20% .5em 5em}.sitedir-rtl .mw-dismissable-notice-body { margin: .5em 5em .5em 20%}.hlist dl,.hlist ol,.hlist ul { margin: 0; padding: 0}.hlist dl dl,.hlist ol dl,.hlist ul dl,.hlist dl ol,.hlist ol ol,.hlist ul ol,.hlist dl ul,.hlist ol ul,.hlist ul ul { display: inline}.hlist dd,.hlist dt,.hlist li { margin: 0; display: inline}ul.hlist li,.hlist>ul li,.hlist>dl li { display: inline-block; margin-right: 8px}.hlist-separated li:after { content: '•'!important; padding-left: 8px; font-size: 1em; line-height: 1}.hlist-separated :last-child:after { content: none!important}.mw-ui-button { background-color: #f8f9fa; color: #202122; display: inline-block; -moz-box-sizing: border-box; box-sizing: border-box; border: 1px solid #a2a9b1; border-radius: 2px; cursor: pointer; vertical-align: middle; font-family: inherit; font-size: 1em; font-weight: 700; line-height: 1.28571429em; text-align: center; -webkit-appearance: none}.mw-ui-button:not(.mw-ui-icon-element) { min-height: 32px; min-width: 4em; max-width: 28.75em; margin: 0; padding: 5px 12px}.mw-ui-button:not(:disabled) { -webkit-transition: background-color 100ms,color 100ms,border-color 100ms,box-shadow 100ms; transition: background-color 100ms,color 100ms,border-color 100ms,box-shadow 100ms}.mw-ui-button:not(:disabled):visited { color: #202122}.mw-ui-button:not(:disabled):hover { background-color: #fff; color: #404244; border-color: #a2a9b1}.mw-ui-button:not(:disabled):focus { color: #202122; border-color: #36c; box-shadow: inset 0 0 0 1px #36c,inset 0 0 0 2px #fff; outline-width: 0}.mw-ui-button:not(:disabled):focus::-moz-focus-inner { border-color: transparent; padding: 0}.mw-ui-button:not(:disabled):active,.mw-ui-button:not(:disabled).is-on { background-color: #c8ccd1; color: #000; border-color: #72777d; box-shadow: none}.mw-ui-button:disabled { background-color: #c8ccd1; color: #fff; border-color: #c8ccd1; cursor: default}.mw-ui-button.mw-ui-icon-element:not(.mw-ui-icon-with-label-desktop) { color: transparent!important}.mw-ui-button.mw-ui-icon-element:not(.mw-ui-icon-with-label-desktop) span { display: block; position: absolute!important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; margin: -1px; border: 0; padding: 0; overflow: hidden}@media all and (max-width: 1000px) { .mw-ui-button.mw-ui-icon-element.mw-ui-icon-with-label-desktop { color:transparent!important } .mw-ui-button.mw-ui-icon-element span { display: block; position: absolute!important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; margin: -1px; border: 0; padding: 0; overflow: hidden }}.mw-ui-button.mw-ui-quiet,.mw-ui-button.mw-ui-quiet.mw-ui-progressive,.mw-ui-button.mw-ui-quiet.mw-ui-destructive { background-color: transparent; color: #202122; border-color: transparent; font-weight: 700}.mw-ui-button.mw-ui-quiet:not(.mw-ui-icon-element),.mw-ui-button.mw-ui-quiet.mw-ui-progressive:not(.mw-ui-icon-element),.mw-ui-button.mw-ui-quiet.mw-ui-destructive:not(.mw-ui-icon-element) { min-height: 32px}input[type=checkbox]:hover+.mw-ui-button.mw-ui-quiet,input[type=checkbox]:hover+.mw-ui-button.mw-ui-quiet.mw-ui-progressive,input[type=checkbox]:hover+.mw-ui-button.mw-ui-quiet.mw-ui-destructive,.mw-ui-button.mw-ui-quiet:hover,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:hover,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:hover { background-color: rgba(0,24,73,.02745098); color: #202122; border-color: transparent}input[type=checkbox]:focus+.mw-ui-button.mw-ui-quiet,input[type=checkbox]:focus+.mw-ui-button.mw-ui-quiet.mw-ui-progressive,input[type=checkbox]:focus+.mw-ui-button.mw-ui-quiet.mw-ui-destructive,.mw-ui-button.mw-ui-quiet:focus,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:focus,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:focus { color: #202122; border-color: #36c; box-shadow: inset 0 0 0 1px #36c,inset 0 0 0 2px #fff}input[type=checkbox]:active+.mw-ui-button.mw-ui-quiet,input[type=checkbox]:active+.mw-ui-button.mw-ui-quiet.mw-ui-progressive,input[type=checkbox]:active+.mw-ui-button.mw-ui-quiet.mw-ui-destructive,.mw-ui-button.mw-ui-quiet:active,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:active,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:active { background-color: rgba(0,36,73,.08235294); color: #000; border-color: #72777d; box-shadow: none}.mw-ui-button.mw-ui-quiet:disabled,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled,.mw-ui-button.mw-ui-quiet:disabled:hover,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled:hover,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled:hover,.mw-ui-button.mw-ui-quiet:disabled:active,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled:active,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled:active { background-color: transparent; color: #72777d; border-color: transparent}.mw-ui-button.mw-ui-progressive:not(:disabled) { background-color: #36c; color: #fff; border-color: #36c}.mw-ui-button.mw-ui-progressive:not(:disabled):hover { background-color: #447ff5; border-color: #447ff5}.mw-ui-button.mw-ui-progressive:not(:disabled):focus { box-shadow: inset 0 0 0 1px #36c,inset 0 0 0 2px #fff}.mw-ui-button.mw-ui-progressive:not(:disabled):active,.mw-ui-button.mw-ui-progressive:not(:disabled).is-on { background-color: #2a4b8d; border-color: #2a4b8d; box-shadow: none}.mw-ui-button.mw-ui-progressive:disabled { background-color: #c8ccd1; color: #fff; border-color: #c8ccd1}.mw-ui-button.mw-ui-progressive.mw-ui-quiet { color: #36c; background-color: transparent; border-color: transparent}input[type=checkbox]:hover+.mw-ui-button.mw-ui-progressive.mw-ui-quiet,.mw-ui-button.mw-ui-progressive.mw-ui-quiet:hover { background-color: rgba(52,123,255,.2); border-color: transparent; color: #447ff5}input[type=checkbox]:focus+.mw-ui-button.mw-ui-progressive.mw-ui-quiet,.mw-ui-button.mw-ui-progressive.mw-ui-quiet:focus { color: #36c; border-color: #36c}input[type=checkbox]:active+.mw-ui-button.mw-ui-progressive.mw-ui-quiet,.mw-ui-button.mw-ui-progressive.mw-ui-quiet:active { color: #fff; background-color: #2a4b8d; border-color: #2a4b8d}.mw-ui-button.mw-ui-destructive:not(:disabled) { background-color: #d33; color: #fff; border-color: #d33}.mw-ui-button.mw-ui-destructive:not(:disabled):hover { background-color: #ff4242; border-color: #ff4242}.mw-ui-button.mw-ui-destructive:not(:disabled):focus { box-shadow: inset 0 0 0 1px #d33,inset 0 0 0 2px #fff}.mw-ui-button.mw-ui-destructive:not(:disabled):active,.mw-ui-button.mw-ui-destructive:not(:disabled).is-on { background-color: #b32424; border-color: #b32424; box-shadow: none}.mw-ui-button.mw-ui-destructive:disabled { background-color: #c8ccd1; color: #fff; border-color: #c8ccd1}.mw-ui-button.mw-ui-destructive.mw-ui-quiet { color: #d33; background-color: transparent; border-color: transparent}input[type=checkbox]:hover+.mw-ui-button.mw-ui-destructive.mw-ui-quiet,.mw-ui-button.mw-ui-destructive.mw-ui-quiet:hover { background-color: rgba(209,29,19,.2); border-color: transparent; color: #ff4242}input[type=checkbox]:focus+.mw-ui-button.mw-ui-destructive.mw-ui-quiet,.mw-ui-button.mw-ui-destructive.mw-ui-quiet:focus { color: #d33; border-color: #d33}input[type=checkbox]:active+.mw-ui-button.mw-ui-destructive.mw-ui-quiet,.mw-ui-button.mw-ui-destructive.mw-ui-quiet:active { color: #fff; background-color: #b32424; border-color: #b32424}.mw-ui-button.mw-ui-big { font-size: 1.3em}.mw-ui-button.mw-ui-block { display: block; width: 100%; margin-left: auto; margin-right: auto}a.mw-ui-button { text-decoration: none}a.mw-ui-button:hover,a.mw-ui-button:focus { text-decoration: none}.mw-ui-button-group>* { min-width: 48px; border-radius: 0; float: left}.mw-ui-button-group>*:first-child { border-top-left-radius: 2px; border-bottom-left-radius: 2px}.mw-ui-button-group>*:not(:first-child) { border-left: 0}.mw-ui-button-group>*:last-child { border-top-right-radius: 2px; border-bottom-right-radius: 2px}.mw-ui-button-group .is-on .button { cursor: default}.mw-ui-icon { font-size: initial; position: relative; display: inline-block; box-sizing: content-box!important; width: 1.25em; height: 1.25em; min-width: 1.25em; min-height: 1.25em; flex-basis: 1.25em; vertical-align: middle; line-height: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; -moz-appearance: none; -webkit-appearance: none; background-color: transparent; border: 0; margin: 0; padding: 0}.mw-ui-icon:before { content: ''; display: block; width: 100%; height: 100%; min-width: 1.25em; min-height: 1.25em; background-repeat: no-repeat; background-size: 1.25em 1.25em; background-position: center}.mw-ui-icon-flush-top { margin-top: -.75em}.mw-ui-icon-flush-left { margin-left: -.75em}.mw-ui-icon-flush-right { margin-right: -.75em}.mw-ui-icon-element { border-radius: 2px; padding: .75em; -webkit-transition: background-color 100ms; transition: background-color 100ms; color: transparent}.mw-ui-icon-element:focus,.mw-ui-icon-element:active,.mw-ui-icon-element:visited { color: transparent}.mw-ui-icon-element:active { background-color: rgba(0,0,0,.03)}@media(hover: hover) { .mw-ui-icon-element:not(.disabled):hover { background-color:rgba(0,0,0,.03) }}.mw-ui-icon-small { width: 1em; height: 1em; min-width: 1em; min-height: 1em; flex-basis: 1em; line-height: 1em}.mw-ui-icon-small:before { content: ''; display: block; width: 100%; height: 100%; min-width: 1em; min-height: 1em; background-repeat: no-repeat; background-size: 1em 1em; background-position: center}.mw-ui-icon-small.mw-ui-icon-element { padding: .5625em}.mw-ui-icon-small.mw-ui-icon-flush-left { margin-left: -.5625em}.mw-ui-icon-small.mw-ui-icon-flush-right { margin-right: -.5625em}.mw-ui-icon-small.mw-ui-icon-before:before { min-width: 1em; min-height: 1em; margin-right: .5625em}.mw-ui-icon-before { width: auto; max-width: 100%}.mw-ui-icon-before:before { display: inline-block; font-size: initial; width: auto; min-width: 1.25em; min-height: 1.25em; margin-right: 8px; vertical-align: middle}.mw-ui-icon-before span { vertical-align: middle}@media all and (min-width: 1000px) { .mw-ui-icon-with-label-desktop { color:#54595d; width: auto; line-height: inherit; flex-basis: auto } .mw-ui-icon-with-label-desktop:hover,.mw-ui-icon-with-label-desktop:focus,.mw-ui-icon-with-label-desktop:active,.mw-ui-icon-with-label-desktop:visited { color: #54595d; text-decoration: none } .mw-ui-icon-with-label-desktop:before { width: auto; display: inline-block; margin-right: 8px; vertical-align: text-bottom }}.minerva__tab-container { white-space: nowrap; overflow-x: auto}.minerva__tab-container .minerva__tab { font-size: .85em; margin: 0 10px 0 0; color: #54595d; font-weight: 700; padding-bottom: 6px; display: inline-block}.minerva__tab-container .minerva__tab:visited,.minerva__tab-container .minerva__tab:hover,.minerva__tab-container .minerva__tab:active,.minerva__tab-container .minerva__tab.new,.minerva__tab-container .minerva__tab.new:visited,.minerva__tab-container .minerva__tab.new:active,.minerva__tab-container .minerva__tab.new:hover { color: #54595d; text-decoration: none}.minerva__tab-container .minerva__tab:last-child { margin-right: 0}.minerva__tab-container .minerva__tab.selected { border-bottom: 2px solid #54595d}.toggle-list__list--drop-down { -webkit-transform: translateY(-8px); -ms-transform: translateY(-8px); transform: translateY(-8px); -webkit-tap-highlight-color: transparent}.minerva-animations-ready .toggle-list__list--drop-down { -webkit-transition: opacity 100ms ease-in-out,-webkit-tap-highlight-color 0s ease-in-out,transform 100ms ease-in-out,visibility 100ms ease-in-out; transition: opacity 100ms ease-in-out,-webkit-tap-highlight-color 0s ease-in-out,transform 100ms ease-in-out,visibility 100ms ease-in-out}.toggle-list__checkbox:checked~.toggle-list__list--drop-down { -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0)}.toggle-list-item { display: block; padding: .75em .875em}.toggle-list-item:hover { background: #eaecf0}.toggle-list-item__anchor { display: block; line-height: 1}.toggle-list-item__anchor:hover { text-decoration: none}.toggle-list-item__anchor:visited,.toggle-list-item__anchor:active { color: #54595d}.toggle-list-item__icon { vertical-align: middle}.toggle-list-item__label { text-align: left; color: #54595d; font-weight: 700; white-space: nowrap; vertical-align: middle; font-size: .875em}.minerva-user-menu-list { top: 100%; right: -.75em; min-width: 200px; border-radius: 2px}.minerva--history-page-action-enabled .page-actions-menu__list-item { flex-basis: auto}.minerva--history-page-action-enabled .page-actions-menu__list-item:first-child { flex-grow: 0}.page-actions-overflow-list { top: 100%; right: -.75em; border-radius: 2px}.mw-ui-icon-minerva-ellipsis:before { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg)}@media screen { @counter-style meetei { system: numeric; symbols: '\ABF0''\ABF1''\ABF2''\ABF3''\ABF4''\ABF5''\ABF6''\ABF7''\ABF8''\ABF9'; suffix: ') ' } @counter-style santali { system: numeric; symbols: '\1C50''\1C51''\1C52''\1C53''\1C54''\1C55''\1C56''\1C57''\1C58''\1C59' } ol:lang(azb) li,ol:lang(bcc) li,ol:lang(bgn) li,ol:lang(bqi) li,ol:lang(fa) li,ol:lang(glk) li,ol:lang(kk-arab) li,ol:lang(lrc) li,ol:lang(luz) li,ol:lang(mzn) li { list-style-type: persian } ol:lang(ckb) li,ol:lang(sdh) li { list-style-type: arabic-indic } ol:lang(hi) li,ol:lang(mai) li,ol:lang(mr) li,ol:lang(ne) li { list-style-type: devanagari } ol:lang(as) li,ol:lang(bn) li { list-style-type: bengali } ol:lang(mni) li { list-style-type: meetei } ol:lang(or) li { list-style-type: oriya } ol:lang(sat) li { list-style-type: santali }}div,span,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,ins,em,img,small,strike,strong,sub,sup,tt,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,input,button,select,audio,video { margin: 0; padding: 0; border: 0; font: inherit; font-size: 100%; vertical-align: baseline; background: 0 0}table,caption,tbody,tfoot,thead,tr,th,td { font-size: 100%}caption { font-weight: 700}button { border: 0; background-color: transparent; cursor: pointer}input { line-height: normal}ul { list-style: none}table { border-collapse: collapse}html,body { height: 100%}html { font-size: 100%; -webkit-text-size-adjust: none}body { background-color: transparent; color: #202122; margin: 0}main { display: block}.mw-body { border-top: 1px solid transparent; padding-bottom: 32px}.overlay-enabled,.mw-body { background-color: transparent}.header-container { border-bottom: 1px solid #c8ccd1; padding: 0 16px}.header-container.header-chrome { background-color: #eaecf0; border: 0; box-shadow: inset 0 -1px 3px rgba(0,0,0,.08)}.navigation-drawer--loading,#footer-info-lastmod { display: none}.header { display: table; width: 100%; border-spacing: 0; border-collapse: collapse; height: 3.375em; white-space: nowrap; border-top: 1px solid #c8ccd1; margin-top: -1px}.header>div,.header>.navigation-drawer { position: relative; vertical-align: middle; display: table-cell}.header>div a { display: block}.header .branding-box { width: auto; opacity: .66}.header .branding-box h1,.header .branding-box a { margin-left: 5px; font-size: 1em; text-decoration: none; color: #202122}.header .branding-box h1 span,.header .branding-box a span { line-height: 1; font-size: inherit}.header .branding-box h1 img,.header .branding-box a img { vertical-align: middle}.header .branding-box h1>*,.header .branding-box a>* { float: left}.header .branding-box h1 sup,.header .branding-box a sup { color: #54595d; display: none}.beta .header .branding-box h1 sup,.beta .header .branding-box a sup { display: initial}.header>.header-title { vertical-align: middle}#searchInput { cursor: text}.search-box,.header .search-box { display: none; width: auto}.search-box .search { background-color: #fff; background-position: left .5em center; background-repeat: no-repeat; background-size: 1.125em; -webkit-appearance: none; width: 100%; margin-top: 0; height: 2.25em; border: 1px solid #fff; border-radius: 2px; padding: 7px 0 7px 2.0625em; box-shadow: 0 1px 1px rgba(0,0,0,.05); outline: 0; -webkit-transition: border-color 250ms,box-shadow 250ms; transition: border-color 250ms,box-shadow 250ms}.client-nojs .search-box .search:focus,.search-overlay .search-box .search:focus { border-color: #36c; box-shadow: inset 0 0 0 1px #36c,0 1px 1px rgba(0,0,0,.05)}input.search::-webkit-search-decoration,input.search::-webkit-search-cancel-button,input.search::-webkit-search-results-button,input.search::-webkit-search-results-decoration { display: none}.content h2 { clear: left}.content .collapsible-heading .edit-page { visibility: hidden}.content .collapsible-heading.open-block .edit-page { visibility: visible}.content .mw-parser-output>h2,.content .section-heading { border-bottom: 1px solid #eaecf0; margin-bottom: .5em}.content .mw-parser-output>h1,.content .mw-parser-output>h2,.content .mw-parser-output>h3,.content .mw-parser-output>h4,.content .mw-parser-output>h5,.content .section-heading,.content .in-block { display: table}.content .mw-parser-output>h1 .mw-headline,.content .mw-parser-output>h2 .mw-headline,.content .mw-parser-output>h3 .mw-headline,.content .mw-parser-output>h4 .mw-headline,.content .mw-parser-output>h5 .mw-headline,.content .section-heading .mw-headline,.content .in-block .mw-headline { width: 100%}.content .mw-parser-output>h1>span,.content .mw-parser-output>h2>span,.content .mw-parser-output>h3>span,.content .mw-parser-output>h4>span,.content .mw-parser-output>h5>span,.content .section-heading>span,.content .in-block>span { display: table-cell; vertical-align: middle}.content .mw-parser-output>h1>.mw-editsection>.mw-ui-icon-element,.content .mw-parser-output>h2>.mw-editsection>.mw-ui-icon-element,.content .mw-parser-output>h3>.mw-editsection>.mw-ui-icon-element,.content .mw-parser-output>h4>.mw-editsection>.mw-ui-icon-element,.content .mw-parser-output>h5>.mw-editsection>.mw-ui-icon-element,.content .section-heading>.mw-editsection>.mw-ui-icon-element,.content .in-block>.mw-editsection>.mw-ui-icon-element { margin-top: -.75em; margin-bottom: -.75em}.client-nojs .section-heading .indicator { display: none}#page-secondary-actions { clear: both}#page-secondary-actions a { margin: 10px 2px 2px 0}#bodyContent .panel .content,.overlay .content-header,.overlay .panel,.page-list.side-list .list-thumb,.page-list li,.topic-title-list li,.site-link-list li,.drawer,.messagebox,.errorbox,.successbox,.warningbox,.list-header,.mw-revision { padding-left: 16px; padding-right: 16px}.talk-overlay .comment .comment-content,.image-list,.pre-content,#mw-content-text>form>.oo-ui-fieldLayout>.oo-ui-fieldLayout-body,#mw-content-text>form>.oo-ui-widget,.content,.post-content { margin: 0 16px}.minerva__subtitle { margin-top: 10px; margin-bottom: 10px}.minerva__subtitle:empty { margin: 0}@media all and (min-width: 720px) { .page-summary-list,.topic-title-list,.site-link-list,.overlay .panel,.list-header { padding-left:3.35em; padding-right: 3.35em }}.heading-holder { padding: 20px 0 0; position: relative}.heading-holder .tagline { color: #54595d; font-size: .85em}.page-heading { margin-bottom: 12px}.mw-ui-icon-element.disabled,.language-selector.disabled { cursor: default; opacity: .25}#page-actions { position: relative}.page-actions-menu { -moz-box-sizing: border-box; box-sizing: border-box; border-top: 1px solid #eaecf0; border-bottom: 1px solid #c8ccd1; margin-top: -1px}.page-actions-menu__list { display: flex; height: 3em; justify-content: space-between}.page-actions-menu__list-item { display: flex; justify-content: flex-end; align-items: center; min-width: 0; overflow: hidden}.page-actions-menu__list-item>a { font-weight: 500}.page-actions-menu__list-item li>*:hover { box-shadow: none}.page-actions-menu__list-item:first-child { flex-grow: 1; justify-content: flex-start; margin-left: -8px}.page-actions-menu__list-item:last-child { margin-right: -8px}.client-nojs .watch-this-article { visibility: hidden}.client-nojs .is-authenticated .watch-this-article { visibility: visible}@media all and (max-width: 320px - 1) { .client-nojs #page-actions { display:none } .client-nojs #section_0 { border: 0 }}.minerva-user-navigation { display: flex; min-width: 7em; min-height: 3.375em; height: 100%; width: 100%; align-items: center; justify-content: flex-end; position: relative}.minerva-user-navigation>*:last-child { margin-right: -.75em}.view-border-box *,.view-border-box { -moz-box-sizing: border-box; box-sizing: border-box}.client-js .mw-redirectedfrom,.printfooter,.jsonly { display: none}.client-js .jsonly { display: inherit}.hidden { display: none!important}#mw-mf-viewport { position: relative; height: 100%}#mw-mf-page-center { width: 100%; min-height: 100%; position: relative; background-color: #eaecf0}.content { position: relative; z-index: 0}.minerva-footer { border-top: solid 1px #c8ccd1; overflow: auto; padding-bottom: 6px}.client-nojs footer .indicator,.client-nojs .mw-footer .indicator { display: none}footer .hlist li:after,.mw-footer .hlist li:after { color: #36c}footer>.post-content,.mw-footer>.post-content { overflow: auto; margin-top: 42px}footer>.post-content>*,.mw-footer>.post-content>* { margin-bottom: 9px}footer>.post-content>h2,.mw-footer>.post-content>h2 { border-bottom: solid 1px #c8ccd1; padding-bottom: 10px; margin-top: 42px; font-size: 1em; font-weight: 700}footer>.post-content>h2:first-child,.mw-footer>.post-content>h2:first-child { margin-top: 0}footer>.post-content .hlist,.mw-footer>.post-content .hlist,footer>.post-content .license,.mw-footer>.post-content .license { font-size: .875em}.last-modified-bar { border-bottom: solid 1px #c8ccd1; background-color: #eaecf0; color: #72777d; padding-top: .75em; padding-bottom: .75em; font-size: .875em; -webkit-transition: background-color 250ms,color 250ms; transition: background-color 250ms,color 250ms}.last-modified-bar a,.last-modified-bar a:visited { color: #54595d}.last-modified-bar a:nth-child(1),.last-modified-bar a:visited:nth-child(1) { font-weight: 700}.last-modified-bar a.external { background-image: none; padding-right: 0}.last-modified-bar__content { align-items: center; display: -ms-flexbox; display: flex}.last-modified-bar__text { padding-right: 3.5em; padding-left: .75em; line-height: 1.65; vertical-align: middle; flex-grow: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap}@media(max-width: 720px) { .last-modified-bar__text { padding-right:1em }}@media print { .noprint,.banner-container,.header,.minerva__tab-container,.page-actions-menu,.post-content { display: none } h1,h2,h3,h4,h5,h6 { page-break-after: avoid } table,figure,img { page-break-inside: avoid } img { max-width: 100% } img.image-lazy-loaded { -webkit-animation: none!important; animation: none!important }}@media print and (max-device-width: 720px) { @page { margin:50px 0 } html { padding: 0 50px } .header-container,.header-container.header-chrome { background: #fff; box-shadow: none!important } .header { border-top: 0; display: block; height: auto; padding: 0 16px } .header .branding-box { padding-left: 0!important } .header .branding-box sup { display: none!important } .header>nav,.header>div { display: none!important } .header>.branding-box { height: auto; display: block!important; padding: 0 0 51px 50px } .header>.branding-box h1 { font-size: inherit } .header>.branding-box h1>* { float: none } .header>.branding-box h1 img { height: 41px; width: auto; vertical-align: inherit } .hatnote,.pre-content #page-actions { display: none } .pre-content { display: block; padding: 51px 0 35px } .pre-content h1 { font-size: 70px; font-weight: 400; font-style: italic; font-stretch: normal; line-height: normal; letter-spacing: normal; text-align: left; color: #000 } .pre-content .tagline { font-size: 36px } .mw-body>.content { padding-top: 55px; position: relative } .mw-body>.content:before { top: 0 } .thumbinner { width: auto!important } .thumbinner>a { width: 100% } .thumb { position: relative; padding: 58px 0!important; text-align: left; margin: 0!important } .thumb:after { bottom: 30px } .thumb:after,.mw-body>.content:before { position: absolute; left: 0; content: ''; display: block; width: 55px; height: 2px; background: #999 } .thumbcaption { margin-top: 23px!important; width: 100%; font-style: italic; font-size: 28px } [class|=mw-content] { font-size: 36px } [class|=mw-content] a { text-decoration: underline; color: #202122 } [class|=mw-content] blockquote { color: #54595d; padding: 5px 39px; font-style: italic } [class|=mw-content] .section-heading { border-bottom: 0; padding-bottom: 0; margin-bottom: 16px } [class|=mw-content] h2 { font-size: 48px } [class|=mw-content] h3 { font-size: 40px; margin-bottom: 13px } [class|=mw-content] h4,[class|=mw-content] h5,[class|=mw-content] h6 { font-size: 36px; margin-bottom: 12px } [class|=mw-content] .wikitable { font-size: 16px } [class|=mw-content] .infobox { font-size: 30px } .references .mw-cite-backlink { display: none } .references .reference-text { font-style: italic } .references a { text-decoration: none } .references .external.text { background-image: none } .printfooter { display: block; padding-top: 108px; font-size: 30px } #mw-mf-page-center>footer { border-top: solid 4px #000; padding-top: 23px; background: #fff!important } #mw-mf-page-center>footer .mw-ui-icon:before { display: none!important } #mw-mf-page-center>footer .last-modified-bar { background: 0 0!important; border: 0!important } #mw-mf-page-center>footer .last-modifier-tagline { font-size: 36px; padding-top: 0!important; padding-bottom: 16px!important } #mw-mf-page-center>footer .last-modified-bar,#mw-mf-page-center>footer .last-modified-bar a { font-weight: 700!important; color: #000!important } #mw-mf-page-center>footer .post-content { margin-top: 15px!important; display: block } #mw-mf-page-center>footer .post-content .hlist,#mw-mf-page-center>footer .post-content h2 { display: none } #mw-mf-page-center>footer .post-content .license a,#mw-mf-page-center>footer .post-content .license { font-size: 30px; color: #999; font-weight: 400 }}@font-face { font-family: raleway; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCFPrEHJA.woff2) format('woff2'); unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face { font-family: raleway; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCMPrEHJA.woff2) format('woff2'); unicode-range: U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face { font-family: raleway; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCHPrEHJA.woff2) format('woff2'); unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face { font-family: raleway; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCGPrEHJA.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: raleway; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/raleway/v22/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrE.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face { font-family: neuton; font-style: italic; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBRrPtMoH62xUZCyrg2Wi_FBw.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: neuton; font-style: italic; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBRrPtMoH62xUZCyrg4Wi8.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face { font-family: neuton; font-style: normal; font-weight: 200; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKAKkvcwr4Pro.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: neuton; font-style: normal; font-weight: 200; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKAKkvfQr4.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face { font-family: neuton; font-style: normal; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKZKovcwr4Pro.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: neuton; font-style: normal; font-weight: 300; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKZKovfQr4.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face { font-family: neuton; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBTrPtMoH62xUZCwYg6Qis.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: neuton; font-style: normal; font-weight: 400; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBTrPtMoH62xUZCz4g6.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face { font-family: neuton; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKdK0vcwr4Pro.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: neuton; font-style: normal; font-weight: 700; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKdK0vfQr4.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face { font-family: neuton; font-style: normal; font-weight: 800; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKaK4vcwr4Pro.woff2) format('woff2'); unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face { font-family: neuton; font-style: normal; font-weight: 800; font-display: swap; src: url(https://fonts.gstatic.com/s/neuton/v16/UMBQrPtMoH62xUZKaK4vfQr4.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@media screen and (min-width: 1000px) { .header { max-width:1250px!important }}.banner-container,.header,.page-header-bar,.overlay-header,.content,.overlay-content,.content-unstyled,.pre-content,.post-content,.last-modified-bar,#mw-content-text>form { max-width: 1250px!important}.page-Main_Page .page-heading,.page-Main_Page .pre-content { display: none!important}.page-Main_Page pre { display: none}.page-Main_Page .blocks-list { display: flex; flex-wrap: wrap; justify-content: space-evenly; list-style: none; column-gap: 20px; row-gap: 20px; padding: 0; margin: 0}.page-Main_Page .blocks-item { box-sizing: border-box; color: #ffc376; display: flex; flex: 1 0 180px; text-align: center; margin: 0!important; border: 1px solid #ecebeb; border-radius: 8px; box-shadow: 0 2px 15px rgba(175,175,175,.2); flex-flow: wrap; position: relative}.page-Main_Page .blocks-item:hover { box-shadow: 0 2px 15px rgba(231,135,27,.4)!important; cursor: pointer; top: -2px}.page-Main_Page .blocks-item>a { color: #ffc376; padding: 0 10px 15px; display: flex; flex-direction: column; flex: 1; justify-content: center; border-radius: inherit; text-decoration: none; background-color: transparent}.page-Main_Page .block-icon { background-position: top center; background-repeat: no-repeat; background-size: contain; height: 140px; margin: 0; transition: all .1s ease-in-out}.page-Main_Page .blocks-item-title { margin: 0; font-size: 22px; color: #ffc376}.page-Main_Page .blocks-item-description:not(:empty) { margin-top: 10px}.page-Main_Page .blocks-item-description { font-weight: 300; margin: 0; color: #1a1a1a}.page-Main_Page .block-icon:before { content: ""; display: block; position: relative}.page-Main_Page .blocks-item#block-accessories>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.png) 2x)}.page-Main_Page .blocks-item#block-accessories>a>.block-icon:before,.page-Main_Page .blocks-item#block-accessories:hover>a>.block-icon,.page-Main_Page .blocks-item#block-accessories>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/accessories.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/accessories.ro.png) 2x)}.page-Main_Page .blocks-item#block-armor>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.png) 2x)}.page-Main_Page .blocks-item#block-armor>a>.block-icon:before,.page-Main_Page .blocks-item#block-armor:hover>a>.block-icon,.page-Main_Page .blocks-item#block-armor>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/armor.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/armor.ro.png) 2x)}.page-Main_Page .blocks-item#block-collections>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.png) 2x)}.page-Main_Page .blocks-item#block-collections>a>.block-icon:before,.page-Main_Page .blocks-item#block-collections:hover>a>.block-icon,.page-Main_Page .blocks-item#block-collections>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/collections.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/collections.ro.png) 2x)}.page-Main_Page .blocks-item#block-hub>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.png) 2x)}.page-Main_Page .blocks-item#block-hub>a>.block-icon:before,.page-Main_Page .blocks-item#block-hub:hover>a>.block-icon,.page-Main_Page .blocks-item#block-hub>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/hub.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/hub.ro.png) 2x)}.page-Main_Page .blocks-item#block-fairysouls>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.png) 2x)}.page-Main_Page .blocks-item#block-fairysouls>a>.block-icon:before,.page-Main_Page .blocks-item#block-fairysouls:hover>a>.block-icon,.page-Main_Page .blocks-item#block-fairysouls>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/fairysouls.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/fairysouls.ro.png) 2x)}.page-Main_Page .blocks-item#block-island>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.png) 2x)}.page-Main_Page .blocks-item#block-island>a>.block-icon:before,.page-Main_Page .blocks-item#block-island:hover>a>.block-icon,.page-Main_Page .blocks-item#block-island>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/island.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/island.ro.png) 2x)}.page-Main_Page .blocks-item#block-locations>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.png) 2x)}.page-Main_Page .blocks-item#block-locations>a>.block-icon:before,.page-Main_Page .blocks-item#block-locations:hover>a>.block-icon,.page-Main_Page .blocks-item#block-locations>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/locations.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/locations.ro.png) 2x)}.page-Main_Page .blocks-item#block-minions>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.png) 2x)}.page-Main_Page .blocks-item#block-minions>a>.block-icon:before,.page-Main_Page .blocks-item#block-minions:hover>a>.block-icon,.page-Main_Page .blocks-item#block-minions>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/minions.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/minions.ro.png) 2x)}.page-Main_Page .blocks-item#block-pets>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.png) 2x)}.page-Main_Page .blocks-item#block-pets>a>.block-icon:before,.page-Main_Page .blocks-item#block-pets:hover>a>.block-icon,.page-Main_Page .blocks-item#block-pets>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/pets.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/pets.ro.png) 2x)}.page-Main_Page .blocks-item#block-reforging>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.png) 2x)}.page-Main_Page .blocks-item#block-reforging>a>.block-icon:before,.page-Main_Page .blocks-item#block-reforging:hover>a>.block-icon,.page-Main_Page .blocks-item#block-reforging>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/reforging.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/reforging.ro.png) 2x)}.page-Main_Page .blocks-item#block-skills>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.png) 2x)}.page-Main_Page .blocks-item#block-skills>a>.block-icon:before,.page-Main_Page .blocks-item#block-skills:hover>a>.block-icon,.page-Main_Page .blocks-item#block-skills>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/skills.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/skills.ro.png) 2x)}.page-Main_Page .blocks-item#block-stats>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.png) 2x)}.page-Main_Page .blocks-item#block-stats>a>.block-icon:before,.page-Main_Page .blocks-item#block-stats:hover>a>.block-icon,.page-Main_Page .blocks-item#block-stats>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/stats.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/stats.ro.png) 2x)}.page-Main_Page .blocks-item#block-weapons>a>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.png) 2x)}.page-Main_Page .blocks-item#block-weapons>a>.block-icon:before,.page-Main_Page .blocks-item#block-weapons:hover>a>.block-icon,.page-Main_Page .blocks-item#block-weapons>a:focus>.block-icon { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.ro.png); background-image: image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.ro.png) 2x); background-image: -webkit-image-set(url(https://wiki.hypixel.net/images/hypixel/icons/low-res/weapons.ro.png) 1x,url(https://wiki.hypixel.net/images/hypixel/icons/hi-res/weapons.ro.png) 2x)}.page-Main_Page #wrapper { display: flex; flex-direction: row; column-gap: 50px; row-gap: 50px; justify-content: space-between}.page-Main_Page #wrapper #content { display: flex; flex-direction: column; row-gap: 50px}.page-Main_Page #wrapper #content #introduction { display: flex; flex-direction: row; column-gap: 25px; row-gap: 25px; align-content: center}.page-Main_Page #wrapper #content #introduction #welcome { margin: .5em 0}.page-Main_Page #wrapper #content #introduction .blocks-item { margin: 0!important}.page-Main_Page #wrapper #content #statistics .stats-list { display: flex; flex-wrap: wrap; list-style: none; justify-content: space-evenly; padding: 0; row-gap: 25px}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item { margin: 0}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon { background-position: center; background-size: contain; background-repeat: no-repeat; height: 55px; width: 55px; display: inline-block; position: relative; vertical-align: middle}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon.stats-icon-edits { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/edits.png)}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon.stats-icon-pages { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/pages.png)}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-icon.stats-icon-files { background-image: url(https://wiki.hypixel.net/images/hypixel/icons/files.png)}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-item-text { vertical-align: middle; display: inline-flex; position: relative; flex-direction: column; flex-wrap: nowrap; justify-content: center; align-content: center; margin: 0 15px}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-item-text span:first-child { font-size: 20px}.page-Main_Page #wrapper #content #statistics .stats-list .stats-item .stats-item-text span:nth-child(2) { font-size: 16px}.page-Main_Page #wrapper #content #other-game-content ul { columns: 200px auto}.page-Main_Page #wrapper #content .content-heading { height: 50px; background-color: #1f1f1f; border: 1px solid #333; border-image: url(https://wiki.hypixel.net/images/hypixel/borders/classic_border.png) 1000 1000 repeat!important; border-image-width: 35px!important; border-image-outset: 2px!important; margin: 0 0 1em; font-size: 20px; display: flex; justify-content: center; align-items: center}.page-Main_Page #wrapper #sidebar { display: flex; flex-direction: column; row-gap: 50px}.page-Main_Page #wrapper #sidebar .sidebar-heading { text-align: center; font-size: 20px}.page-Main_Page #wrapper #sidebar .sidebar-content { display: flex; flex-direction: column; flex-wrap: nowrap; row-gap: 15px; background-color: #1f1f1f; padding: 20px; border-radius: 3px; border: 1px solid #333; border-image: url(https://wiki.hypixel.net/images/hypixel/borders/square_border.png) 500 500 repeat; border-image-width: 35px!important; border-image-outset: 2px!important}.page-Main_Page #wrapper #sidebar #clock { display: none}.page-Main_Page #wrapper #sidebar #clock p { text-align: center; margin: 0}.page-Main_Page #wrapper #sidebar #clock #clock-time { font-size: 2em}.page-Main_Page #wrapper #sidebar #clock #clock-date { font-size: 1em}@media(max-width: 1000px) { #wrapper { flex-wrap:wrap }}@media(max-width: 720px) { #introduction { flex-wrap:wrap; justify-content: center } .stats-list { flex-direction: column; align-content: center }}.mw-ui-button.mw-ui-progressive { background-color: #e7871b; color: #fff; border: 1px solid #e7871b}.oo-ui-panelLayout-framed { background-color: #eaecf0!important; border-radius: 4px; border: none!important}.oo-ui-dropdownInputWidget.oo-ui-widget-enabled { background-color: transparent}ul.mw-contributions-list li { min-height: 0!important}ul.special li { min-height: 0!important}body { color: transparent; background-color: transparent; font-family: Raleway,helvetica,serif!important}#content h1,#content h2,#content h3 { font-family: Neuton,Raleway,helvetica,serif!important}html,#mw-mf-page-center,#mw-script-doc,#content,.navbox,.navbox-subgroup,.overlay.search-overlay { background-color: #fff!important}.overlay.search-overlay { background-color: #fff!important}.overlay.search-overlay .search-box { display: block!important; position: relative!important}a.external { background-image: none!important; padding-right: 0!important}.mw-body h2.list-header { margin-top: 16px}.page-heading>h1 { font-size: 1.7em!important; font-weight: 400!important; line-height: 1.3; word-wrap: break-word; word-break: break-word}.list-header { background-color: transparent; color: inherit}#toc ul { list-style: decimal}#mw-toc-heading::before { background-image: url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJsaXN0IiBjbGFzcz0ic3ZnLWlubGluZS0tZmEgZmEtbGlzdCBmYS13LTE2IiByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Ik04MCAzNjhIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2NjRhMTYgMTYgMCAwIDAgMTYgMTZoNjRhMTYgMTYgMCAwIDAgMTYtMTZ2LTY0YTE2IDE2IDAgMCAwLTE2LTE2em0wLTMyMEgxNkExNiAxNiAwIDAgMCAwIDY0djY0YTE2IDE2IDAgMCAwIDE2IDE2aDY0YTE2IDE2IDAgMCAwIDE2LTE2VjY0YTE2IDE2IDAgMCAwLTE2LTE2em0wIDE2MEgxNmExNiAxNiAwIDAgMC0xNiAxNnY2NGExNiAxNiAwIDAgMCAxNiAxNmg2NGExNiAxNiAwIDAgMCAxNi0xNnYtNjRhMTYgMTYgMCAwIDAtMTYtMTZ6bTQxNiAxNzZIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAtMzIwSDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZWODBhMTYgMTYgMCAwIDAtMTYtMTZ6bTAgMTYwSDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2eiI+PC9wYXRoPjwvc3ZnPg==); content: ""; float: left; height: 14px; left: -14px; position: relative; top: 5px; width: 14px}#footer-company { padding: 0 50px 0 0}#footer-links { display: flex; flex: 1; flex-direction: column; flex-wrap: wrap; font-size: 15px; max-height: 120px}#footer-links>li { padding: 4px 10px}#footer-logo { max-height: 64px}#footer-socials { font-size: 16px; vertical-align: top; color: gray; display: block; padding: 0 4px}#footer-socials .fab { min-width: 18px; text-align: center; vertical-align: middle}#footer-socials a:hover { color: gray!important}#footer-socials a:hover>.fa-discord { color: #7289da}#footer-socials a:hover>.fa-facebook { color: #4267b2}#footer-socials a:hover>.fa-instagram { color: #405de6}#footer-socials a:hover>.fa-tiktok { color: #000}#footer-socials a:hover>.fa-twitter { color: #1da1f2}#footer-socials a:hover>.fa-youtube { color: red}#mw-content-text>form { width: 100%!important}.branding-box { background: url(https://wiki.hypixel.net/images/hypixel-full.png) no-repeat; background-origin: content-box; background-size: contain; background-position: center; opacity: 1!important; padding: 10px 0; cursor: pointer; height: 100%}.branding-box>a { height: 100%; width: 100%}.branding-box>a>span { color: transparent}.client-nojs .search-box .search:focus { border: none; box-shadow: none}.search-overlay .search-box .search:focus { border: none; box-shadow: none}.toggle-list__toggle,#mw-mf-main-menu-button { border: none; box-shadow: none; outline: none!important}.footer { background-image: linear-gradient(to bottom,rgba(26,26,26,0.92),#1a1a1a),url(https://wiki.hypixel.net/images/artwork.png); background-position: center; background-repeat: no-repeat; background-size: cover; border-top: 1px solid #ddd; color: #fff; margin-top: 60px; padding: 30px 0; user-select: none}.footer a { color: gray!important; text-decoration: none!important; transition: .12s ease-in-out}.footer a:hover { color: #fff!important}.footer-copyright { color: gray; display: block; padding: 0 4px}.footer-inner { display: flex; flex-wrap: wrap; justify-content: space-between; margin: 0 auto; max-width: 1160px; padding: 0!important; width: 65%!important}.header { height: 71px!important; user-select: none}.header-chrome:before { background-image: radial-gradient(farthest-side at top,rgba(255,255,255,0.5),#ffffff),url(https://wiki.hypixel.net/images/artwork.png)!important; background-position: center; background-repeat: no-repeat; background-size: cover; content: ""; height: 72px; left: 0; max-width: 100%!important; position: absolute; width: 100%!important}.last-modified-bar { margin: auto; width: 90%; background-color: #eaecf0!important; border-radius: 4px}.minerva__tab.selected { border-bottom: 2px solid #e7871b!important}.mw-editform .editOptions { margin-top: 20px}.mw-ui-icon-element.cancel { height: 44px; margin: 10px; padding: 0; vertical-align: middle; width: 44px}.mw-ui-icon-element:not(.disabled):hover { background-color: rgba(0,0,0,.1)}.overlay-footer-container { display: none}.overlay.search-overlay.visible { animation-duration: .1s!important}.minerva__tab-container { display: none}.page-actions-menu,#filetoc,.warningbox { border-radius: 4px; margin-bottom: 16px; padding: 0 20px; background-color: #eaecf0; border: 1px solid #c8ccd1}.warningbox { padding: 10px 25px!important}.warningbox,#mw-clearyourcache { margin-bottom: 16px!important}.search { -webkit-appearance: none!important; background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&format=original&skin=minerva&version=1qbws); background-position: left .8em center!important; background-size: 18px!important; border: 1px solid #fff!important; border-radius: 6px!important; box-shadow: 0 0 10px #bbb!important; box-sizing: border-box!important; color: #666!important; font-family: BlinkMacSystemFont,segoe ui,helvetica,Arial,sans-serif!important; font-size: 14px!important; height: 40px!important; line-height: 1.15!important; max-width: 380px; padding-left: 40px!important; padding-right: 20px!important; transition: border .12s ease-in-out!important; width: 100%!important}.search:focus { outline: 1px solid #ffc376!important}.search-box .search { border-radius: 4px}.content kbd { border-radius: 4px}.content samp { border-radius: 4px}.content code { border-radius: 4px}.content pre { border-radius: 4px}footer { border: none!important}fieldset { margin: 10px 0}#mw-mf-page-left { box-shadow: 0 5px 17px 0 rgba(0,0,0,.24),0 0 1px #a2a9b1!important; position: absolute!important; height: max-content; border-radius: 3px; -webkit-transition: opacity 100ms ease-in-out,-webkit-tap-highlight-color 0s ease-in-out,transform 100ms ease-in-out,visibility 100ms ease-in-out!important; transition: opacity 100ms ease-in-out,-webkit-tap-highlight-color 0s ease-in-out,transform 100ms ease-in-out,visibility 100ms ease-in-out!important; top: 45px!important; left: -12px!important; transform: translate(0,-10px)!important}#mw-mf-page-left li { border: none!important}#mw-mf-page-left li:hover { background-color: #eaecf0!important}#mw-mf-page-left ul { padding-bottom: 0!important}#mw-mf-page-left ul li a { color: #54595d!important}#mw-mf-page-left ul li a:hover { box-shadow: none!important}form.search-box { display: block; width: 100%}input { outline: none}#main-menu-input:checked~#mw-mf-page-left { transform: translate(0,0)!important}.hlist { display: none}.last-modified-bar.active { background-color: #218e47!important}.wikitable>tr>th,.wikitable>tr>td,.wikitable>*>tr>th,.wikitable>*>tr>td { padding: .25em .55em!important}.suggestions { border-radius: 6px!important}.suggestions-result,.suggestions-special { padding: .5em 1em!important}.suggestions-results,.suggestions-special { border-color: #ccc!important}kbd,samp,code,pre,.page-actions-menu,#filetoc,.warningbox,.last-modified-bar { border: 1px solid #333; border-image: url(https://wiki.hypixel.net/images/hypixel/borders/classic_border.png) 1000 1000 repeat!important; border-image-width: 35px!important; border-image-outset: 2px!important}@media only screen { .oo-ui-tabOptionWidget { color: #fff!important } .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected { background-color: #212121 } .suggestions-results,.suggestions-special { background-color: #1f1f1f!important; border-color: #333!important } .suggestions-results .special-label,.suggestions-special .special-label { color: #ccc!important } .suggestions-results .suggestions-result,.suggestions-special .suggestions-result,.suggestions-results .special-query,.suggestions-special .special-query { color: #fff!important } .search { color: #ccc!important } html,body,#mw-mf-page-center,#mw-script-doc,#content,.navbox,.navbox-subgroup,.overlay.search-overlay,.oo-ui-tabSelectWidget-framed,.oo-ui-tagMultiselectWidget-handle,.mw-prefs-buttons,.mw-scribunto-message,.mw-scribunto-console-fieldset,.mw-history-compareselectedversions { background-color: transparent!important; color: #fff } .mw-rcfilters-ui-watchlistTopSectionWidget-separator { border-color: #212121!important } .mw-rcfilters-ui-filterTagMultiselectWidget-wrapper-content-title,.mw-rcfilters-ui-filterTagMultiselectWidget-emptyFilters { color: #fff!important } .oo-ui-tabSelectWidget-framed { border-bottom-color: transparent } .oo-ui-tagMultiselectWidget-handle,.oo-ui-buttonGroupWidget,.oo-ui-dropdownWidget-handle,.oo-ui-optionWidget,.oo-ui-selectWidget,.oo-ui-optionWidget-selected { background-color: #1a1a1a!important; color: #fff!important; border-color: #212121!important } .oo-ui-optionWidget-highlighted { background-color: #212121!important } .oo-ui-optionWidget-selected { background-color: #1f1f1f!important } input,select,.oo-ui-buttonElement-button,#mw-scribunto-input,.diff-context { color: #fff!important; background-color: #1f1f1f!important; border: 1px solid #333!important } legend { color: #aaa } .content .mw-parser-output>h2 { border-bottom: 2px solid #333 } .content .mw-parser-output>h3 { border-bottom: 1px solid #333; margin-bottom: .5em } .content .section-heading { border-bottom: 1px solid #aaa } .content kbd,.content samp,.content code,.content pre,.content .toc,.content .infobox { background-color: #1f1f1f!important; border-color: #333!important } .content .infobox td { border-color: #333!important } .infobox tr { color: #fff!important } table.wikitable>tr>th,table.wikitable>tr>td { background-color: #212121; border-color: #333!important } table.wikitable>tr>th { background-color: #2b2b2b } table.wikitable>tr:nth-child(odd)>td { background: #2b2b2b } table.wikitable>*>tr>th,table.wikitable>*>tr>td { background-color: #212121; border-color: #333!important } table.wikitable>*>tr>th { background-color: #2b2b2b } table.wikitable>*>tr:nth-child(odd)>td { background: #2b2b2b } .mw-datatable>tr>th,.mw_metadata>tr>th,.mw-datatable>tr>td,.mw_metadata>tr>td { background-color: #212121!important; border-color: #333!important } .mw-datatable>tr>th,.mw_metadata>tr>th { background-color: #2b2b2b!important } .mw-datatable>*>tr>th,.mw_metadata>*>tr>th,.mw-datatable>*>tr>td,.mw_metadata>*>tr>td { background-color: #212121!important; border-color: #333!important } .mw-datatable>*>tr>th,.mw_metadata>*>tr>th { background-color: #2b2b2b!important } .footer { background-image: linear-gradient(to bottom,rgba(26,26,26,0.85),#1a1a1a),url(https://wiki.hypixel.net/images/artwork.png); border-top: 1px solid #1a1a1a } .header-chrome:before { background-image: radial-gradient(farthest-side at top,rgba(26,26,26,0.5),#1a1a1a),url(https://wiki.hypixel.net/images/artwork.png)!important } .oo-ui-iconElement-icon,.oo-ui-indicatorElement-indicator { filter: invert(1) hue-rotate(180deg) brightness(1.2) } .mw-ui-icon:not(.mw-ui-icon-wikimedia-history-invert):before { filter: invert(1) hue-rotate(180deg) brightness(1.2) } .mw-ui-icon:not(.mw-ui-icon-mf-expand-invert):before { filter: invert(1) hue-rotate(180deg) brightness(1.2) } .last-modified-bar { background-color: #1f1f1f!important } .last-modified-bar .last-modified-bar__text { color: #fff!important } .oo-ui-panelLayout-framed { background-color: #1f1f1f!important } .minerva__tab { color: #aaa!important } .mw-ui-icon-with-label-desktop:hover,.mw-ui-icon-with-label-desktop:focus,.mw-ui-icon-with-label-desktop:active,.mw-ui-icon-with-label-desktop:visited { color: #aaa!important } .page-heading>h1,.page-heading>.tagline { color: #fff!important } .toggle-list__list { color: #fff!important; background-color: #1f1f1f!important; box-shadow: 0 5px 17px 0 rgba(0,0,0,.24),0 0 1px #000!important; border: 1px solid #333 } .search { box-shadow: 0 0 10px #1f1f1f!important } .search,.page-actions-menu,#filetoc,.warningbox { background-color: #1f1f1f!important; border-color: #333!important } .toggle-list-item:hover { background: #000; color: #fff } .blocks-item-description,.mw-mf-user { color: #fff!important } .blocks-item { box-shadow: 0 2px 15px rgba(35,35,35,.5)!important; border: 1px solid #333!important; background-color: #212121 } .mw-ui-button { background-color: #1f1f1f!important; border: 1px solid #333!important; color: #fff!important } .mw-ui-button:hover { background-color: #212121!important } .mw-history-undo a,.mw-rollback-link a { background-color: #1f1f1f!important; border: 1px solid #333!important; color: #fff!important } .mw-history-undo a:hover,.mw-rollback-link a:hover { background-color: #212121!important } .toggle-list-item__label { color: #aaa!important } .page-list .info,.page-list .component { color: #aaa!important } .page-list li { border-color: #333!important } .topic-title-list .info,.topic-title-list .component { color: #aaa!important } .topic-title-list li { border-color: #333!important } .site-link-list .info,.site-link-list .component { color: #aaa!important } .site-link-list li { border-color: #333!important } .page-list.side-list .list-thumb { color: #aaa!important } .topic-title-list.side-list .list-thumb { color: #aaa!important } .site-link-list.side-list .list-thumb { color: #aaa!important } ul.mw-contributions-list li { border-color: #1f1f1f!important } ul.special li { border-color: #1f1f1f!important } .ns-special .content-header { border-color: #1f1f1f!important } .mw-prefs-buttons { border-color: #1f1f1f!important } #mw-mf-page-left { box-shadow: 0 5px 17px 0 rgba(0,0,0,.24),0 0 1px #000!important } #mw-mf-page-left ul li { background-color: #1f1f1f!important; color: #fff!important } #mw-mf-page-left ul li a { color: #aaa!important } #mw-mf-page-left li:hover { background-color: #000!important } .mw-ui-icon-element:not(.disabled):hover { background-color: rgba(0,0,0,.4) }}@media only screen and (min-width: 720px) { .header .branding-box { width:auto!important; min-width: 82px } .overlay.search-overlay .overlay-title { padding-left: 236px!important; width: 380px!important } #page-actions a { color: #fff!important } #page-actions label { color: #fff!important }}@media only screen and (max-width: 720px) { #footer-company { padding:0 0 30px; text-align: center; width: 100% } #footer-links { max-height: 100%; text-align: center } .header-chrome:before { background-image: linear-gradient(to bottom,rgba(255,255,255,0.5),#ffffff),url(https://wiki.hypixel.net/images/artwork.png)!important; height: 170px!important } .last-modified-bar { margin: 0 16px } .header-chrome:before { background-image: linear-gradient(to bottom,rgba(26,26,26,0.5),#1a1a1a),url(https://wiki.hypixel.net/images/artwork.png)!important }}@media only screen and (min-width: 1000px) { .footer-inner { padding:0; width: 90% }}@media only screen and (max-width: 1000px) { #footer-links { max-width:100% } .footer-inner { padding: 0 5%!important; width: calc(90%)!important }}.infobox { border: 15px solid #232445!important; border-image: url(https://wiki.hypixel.net/images/hypixel/borders/square_border.png) 1000 1000 repeat!important; border-image-width: 100px!important; border-image-outset: 2px!important; border-collapse: separate!important}.infobox { background-color: #f2f2f2; border-collapse: collapse; clear: both; display: table!important; float: right; margin: 0!important; margin-left: 20px!important; width: 320px; margin-bottom: 15px!important; table-layout: fixed}.infobox table { border-collapse: inherit!important}.infobox img { display: block; margin: 20px auto; max-width: 150px; height: auto}.infobox td { border-top: 1px solid #c7c7c7; padding: 2px 8px; text-align: right}.infobox td:first-of-type { font-weight: 700; text-align: left}.infobox td:last-child { float: right; width: 100%; text-align: right}.infobox tr:first-of-type>th { font-size: 16px; font-weight: 700; padding: 10px 0; text-align: center}.infobox.minor { border-image-width: 0 100px 100px 100px!important; border-width: 0 15px 15px!important; margin-top: -15px!important}.infobox tr:first-of-type>td { border-top: none}.mw-parser-output .infobox:last-of-type { margin-bottom: 15px}span.color-divine,span.color-light_blue,span.color-aqua { color: #5ff!important}span.color-black { color: #000!important}span.color-rare,span.color-blue { color: #55f!important}span.color-dark_aqua { color: #0aa!important}span.color-dark_blue { color: #00a!important}span.color-dark_gray { color: #555!important}span.color-dark_green { color: #0a0!important}span.color-epic,span.color-dark_purple { color: #a0a!important}span.color-dark_red { color: #a00!important}span.color-legendary,span.color-orange,span.color-gold { color: #fa0!important}span.color-gray { color: #aaa!important}span.color-uncommon,span.color-green { color: #5f5!important}span.color-pink,span.color-mythic,span.color-light_purple { color: #f5f!important}span.color-supreme,span.color-special,span.color-very-special,span.color-red { color: #f55!important}span.color-common,span.color-white { color: #fff!important}span.color-yellow { color: #ff5!important}.tabber__header__prev:after,.tabber__header__next:after { filter: invert(1)}:not(.infobox) .tabber__tab--active { background-color: rgba(51,102,204,.2)}:not(.infobox) .tabber__panel,:not(.infobox) .tabber__header { background-color: #1f1f1f; border: 1px solid #333}:not(.infobox) .tabber__panel { padding: 1em!important}:not(.infobox) .tabber__panel h1,:not(.infobox) .tabber__panel h2,:not(.infobox) .tabber__panel h3 { margin-top: 0}.diff-addedline .diffchange { background: #0083ff}.codeEditor-status { color: #000!important}#toctogglecheckbox:not(:checked)+.toctitle { border-bottom: 1px solid #333; margin-bottom: 10px}a.new { color: #d33!important}.contributionscores { width: 100%}.contributionscores td { text-align: center!important}.contributionscores .header { display: table-row}.contributionscores .content { width: auto}.wikiEditor-ui-toolbar { background-color: #1f1f1f!important}.wikiEditor-ui-toolbar .label:after { filter: invert(1) hue-rotate(180deg) brightness(1.2)}.wikiEditor-ui-toolbar .tabs .tab a::before { filter: invert(1) hue-rotate(180deg) brightness(1.2)}.wikiEditor-ui .wikiEditor-ui-view { border: 1px solid #54595d}.wikiEditor-ui-toolbar { box-shadow: 0 10px 9px 0 rgba(0,0,0,.1)}.wikiEditor-ui-toolbar .sections .section { border-top: none}.wikiEditor-ui-toolbar .group { border-right: none; border-left: none}.tabber__panel { overflow: visible}:not(.tabber__panel--active).tabber__panel { display: none}.tabber__section { height: auto!important; overflow: visible}.infobox td { font-size: 13px}.minecraft-inventory td { font-size: 15px!important}.content { padding: 0}.tabber__tab--active,.tabber__tab--active:visited { box-shadow: inset 0 -2px 0 0 #ffc376; border-width: 0 1px; background-color: rgba(255,195,118,.1)!important; font-weight: 700}.tabber__tab--active a:active,.tabber__tab a:visited { color: #ffc376!important}.tabber__tab:hover { box-shadow: inset 0 -2px 0 0 #ffc376; color: #ffc376; filter: brightness(1.5)}.tabber__tab a:active,.tabber__tab a:visited { color: #bdbcb9!important}.tabber__tabs { box-shadow: none!important}.tabber__tabs a:first-of-type { border-left: none}.tabber__tab { color: #36c; line-height: 30px; font-weight: 400}.tabber { margin-bottom: 5px}#mw-mf-page-left ul { list-style-type: none; padding-left: 0}#mw-mf-page-left li { margin-bottom: 0}#mw-mf-page-left ul li a { color: #aaa!important}#mw-mf-main-menu-button:hover+#mw-mf-page-left,#mw-mf-page-left:hover { visibility: visible}.mw-hypixel-right ul { padding-left: 0}.mw-hypixel-right li { margin-bottom: 0}.mw-hypixel-right a { text-decoration: none}table.mw-collapsible :first-child tr:first-child th:last-child::before { color: #ffc376!important}.infobox.minor img,.remove-img-span img { display: inline!important; margin: 0!important}.infobox.minor tr:first-of-type>th { padding: 7px; border-bottom: 1px solid #333!important}.infobox.minor tr:nth-of-type(2)>td { border-top: none}.occupants-minor,.resources-minor { text-align: left!important; font-weight: 400; padding: 5px 0 0!important}.occupants-minor:first-of-type,.resources-minor:first-of-type { border-right: 1px solid #333!important}.occupants-minor li,.resources-minor li,.materials-minor li { margin-bottom: 0!important}.occupants-minor ul,.resources-minor ul,.materials-minor ul { list-style: none!important; padding: 7px!important; font-weight: 400!important}.color-wheel-minor { border-radius: 50px; border-style: solid; border-width: 30px; height: 0; width: 0; transform: rotate(45deg)}.loot-drops-minor li { list-style-type: none; margin-bottom: 0}.gemstone-slot-minor { text-align: center!important; padding: 5px}.upgrades-low-minor { text-align: center!important; font-weight: 400!important; border-right: 1px solid #333!important}.upgrades-right-minor { padding: 2px!important; padding-top: 5px!important; text-align: center!important}.upgrades-text-minor { font-size: 15px!important; font-weight: 700!important}.attributes-minor { text-align: center!important; font-weight: 400!important; border-right: 1px #333 solid!important}.attributes-text-minor { font-size: 13px!important; font-weight: 700!important}.container-navbox { max-width: 100%; height: auto; padding: 6px; font-size: 15px; background-color: #1f1f1f; border: 1px solid #c8ccd1; border-color: #333!important; border-image: url(https://wiki.hypixel.net/images/hypixel/borders/classic_border.png) 1000 1000 repeat!important; border-image-width: 35px!important; border-image-outset: 2px!important; clear: both}.container-navbox-header { width: auto; height: 35px; padding: 10px; border-bottom: 2px solid #333; text-align: center; display: flex; flex-direction: row; align-items: center; justify-content: space-between; font-size: 18px; vertical-align: middle}.container-navbox-header p { margin: 0!important}.container-navbox-section { max-width: 100%; height: auto; border-bottom: 2px solid #333; display: flex; flex-direction: row; background-color: #1f1f1f; column-gap: 5px}.container-navbox-section:last-child { border-bottom: none}.container-navbox-group-header { width: 200px; max-height: 100%; padding: 1em; display: flex; align-items: center; background-color: #1f1f1f; font-weight: 700; white-space: pre-wrap; column-gap: 10px}.container-navbox-group { width: 100%; padding: 15px 1em}.container-navbox-group ul { columns: 220px auto}.container-navbox-group ul li { margin-bottom: 5px}.dropdown:hover .dropdown-content { visibility: visible; opacity: 1}blockquote { font-family: Raleway,helvetica,serif!important}.cata-image-loot-tabber * .tabber__tabs a::before { content: ""; width: 35px; height: 45px; background-position: center; background-repeat: no-repeat; background-size: cover}.cata-image-loot-tabber * .tabber__tabs a:nth-child(1)::before { background-image: url(https://wiki.hypixel.net/images/a/a8/SkyBlock_furniture_wood_chest_plus.png)}.cata-image-loot-tabber * .tabber__tabs a:nth-child(2)::before { background-image: url(https://wiki.hypixel.net/images/b/be/SkyBlock_furniture_gold_chest_plus.png)}.cata-image-loot-tabber * .tabber__tabs a:nth-child(3)::before { background-image: url(https://wiki.hypixel.net/images/e/e9/SkyBlock_furniture_diamond_chest_plus.png)}.cata-image-loot-tabber * .tabber__tabs a:nth-child(4)::before { background-image: url(https://wiki.hypixel.net/images/8/82/SkyBlock_furniture_emerald_chest_plus.png)}.cata-image-loot-tabber * .tabber__tabs a:nth-child(5)::before { background-image: url(https://wiki.hypixel.net/images/b/be/SkyBlock_furniture_ender_chest_plus.png)}.cata-image-loot-tabber * .tabber__tabs a:nth-child(6)::before { background-image: url(https://wiki.hypixel.net/images/b/be/SkyBlock_furniture_ender_chest_plus.png)}.boss-quote-table-quote { font-family: sans,serif; font-size: 40px; font-weight: 700; color: #f55; padding: 16px 10px; line-height: .5}.toc>ul { margin: 0 5em 0 32px!important}.toctogglecheckbox~ul { display: none}.toctogglecheckbox:not(:checked)~ul { display: block}.dialogue-headine { padding: .5em 0; line-height: 1.3; word-wrap: break-word; word-break: break-word; font-weight: 700}.content code { padding: .1em .4em}code { border-image: none!important}.mw-parser-output { display: inline-block; width: 100%; max-width: 100%}@media(min-width: 1000px) { .header-container.header-chrome { position:fixed; z-index: 2; width: 100%; top: 0; padding: 0!important } .header-container.header-chrome:before { box-shadow: 0 0 20px 10px #1a1a1a } #mw-mf-page-center,#mw-mf-page-center::before { top: 100px!important } .minerva-user-menu-list { top: 60px }}@media(max-width: 1000px) { .hypixel-site-navigation .toggle-list__toggle { padding-left:0!important; padding-right: 0!important } #hypixel-site-navigation-wrapper { padding: 0 .75em }}@media(max-width: 720px) { .header { flex-wrap:wrap!important; height: auto!important; justify-content: space-around!important } #hypixel-site-navigation-wrapper { order: 3; flex-wrap: wrap!important; row-gap: 15px; justify-content: space-around } #hypixel-site-navigation-wrapper .toggle-list__list { left: 0!important; width: 100%!important } .branding-box { width: 80px; height: 40px } .search-box { width: 100%!important; left: 0!important }}.main-menu-mask { display: none!important}#hypixel-site-navigation-wrapper { display: flex; flex-wrap: nowrap}.hypixel-site-navigation { color: #fff!important; text-shadow: 1px 1px rgba(0,0,0,.5)}.hypixel-site-navigation a { color: inherit!important}.hypixel-site-navigation .toggle-list__toggle { padding: .75em}.hypixel-site-navigation .toggle-list__toggle:hover { background-color: rgba(0,0,0,.4)}.hypixel-site-navigation .toggle-list__list { top: 100%; min-width: 200px}.hypixel-site-navigation .toggle-list__list .toggle-list-item .toggle-list-item__anchor { min-height: 20px}.toggle-list__list,.minerva-user-menu-list { border-radius: 3px}.minerva-user-navigation { width: auto!important; min-width: revert!important}.header { display: flex; justify-content: space-between; align-content: center; align-items: center; flex-direction: row; flex-wrap: nowrap}.hypixel-site-navigation>label::after { content: ""; background-image: linear-gradient(transparent,transparent),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+ZXhwYW5kPC90aXRsZT48ZyBmaWxsPSIjYTJhOWIxIj48cGF0aCBkPSJNMTcuNSA0Ljc1bC03LjUgNy41LTcuNS03LjVMMSA2LjI1bDkgOSA5LTl6Ii8+PC9nPjwvc3ZnPg==); display: inline-block; vertical-align: middle; min-width: 1em; min-height: 1em; padding: 0 0 0 20px; background-repeat: no-repeat; background-size: 1em 1em; background-position: center}#mw-mf-page-left ul li a span,.toggle-list-item__label { color: #fff!important}.mw-ui-icon-wikimedia-flag-ltr-base20:before { background-image: url(https://wiki.hypixel.net/resources/lib/ooui/themes/wikimediaui/images/icons/flag-ltr.svg)}.mw-ui-icon-wikimedia-articleRedirect-ltr-base20:before { background-image: url(https://wiki.hypixel.net/resources/lib/ooui/themes/wikimediaui/images/icons/articleRedirect-ltr.svg)}@media(max-width: 720px) { table.infobox { display:table!important } table.wikitable { display: block!important }}table.infobox { display: revert!important}.infobox ul { list-style: none}#userloginForm .mw-userlogin-rememberme { display: block!important}.mw-hp-tree { color: #5f5; margin-left: 20px}.mw-hp-tree li { margin-bottom: 0; list-style-type: disc}.mw-hp-tree li::marker { color: #fff}.mw-hp-tree ul:first-of-type { margin-top: 6px}.mw-hp-tree ul:last-of-type { margin-bottom: 6px}.mw-hp-tree-container { margin-left: 5px}.mw-hp-tree-text::after { content: "Expand"; color: #ba91ff; display: inline-block}.mw-hp-tree-text-down::after { content: "Collapse"; color: #7698ff; display: inline-block}.mw-hp-tree-anchor { cursor: pointer; user-select: none}.mw-hp-tree-nested { display: none}.mw-hp-tree-active { display: block}.mw-display-qrcode { border: 2px solid #fff}.mw-overlays-container .search-overlay { top: 71px}.mw-overlays-container .search-overlay .search-content,.mw-overlays-container .search-overlay .results { margin-left: 0!important}.mw-overlays-container .search-overlay .search-content { z-index: 4; position: relative; border: none!important}.mw-overlays-container .search-overlay .overlay-content { padding-top: 0!important; z-index: 3}.mw-overlays-container .search-overlay .overlay-header { flex-wrap: nowrap!important}.mw-overlays-container .search-overlay .overlay-title { padding-right: 15px}.mw-overlays-container .search-overlay .search { max-width: unset!important}.mw-overlays-container .search-overlay .clear { right: 5px!important}.mw-overlays-container .search-overlay .results { position: relative; box-shadow: none!important; background: 0 0!important}.mw-overlays-container .search-overlay .results ul>li { color: #fff; background: #1f1f1f; border: 1px solid #333!important; border-radius: 6px; margin: 5px 0; box-shadow: 0 0 10px #1f1f1f!important}.mw-overlays-container .search-overlay .results .list-thumb { background-color: #212121; border-radius: 6px}.mw-overlays-container .search-overlay .results .page-summary h2,.mw-overlays-container .search-overlay .results .page-summary h3 { color: #fff}@media(min-width: 720px) { .overlay-content { padding-left:236px!important } .overlay-header-container { z-index: 4!important } .search-content,.results { width: 380px!important }}@media(max-width: 720px) { div.overlay-header-container { position:relative!important; top: -71px!important } .overlay-content { padding: 0 15px } .search-content,.results { width: 100%!important }}table.sortable .headerSort { padding-right: 21px!important; position: relative}table.sortable .headerSort:after { background-image: inherit; content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-repeat: no-repeat; background-position: center right; filter: invert(100%); pointer-events: none}.warningbox>p { color: #fff; margin: .5em 0}.suggestions-special { border-radius: 6px}.mw-dismissable-notice { background-color: #1f1f1f; border-radius: 8px; border: 1px solid #333; border-image-width: 35px!important; border-image-outset: 2px!important}.mw-dismissable-notice { position: fixed; display: block; bottom: 25px; z-index: 6; width: 100%; max-width: 92%!important; box-shadow: 0 -5px 30px 20px rgba(0,0,0,.3); margin: 0!important; left: 50%; transform: translateX(-50%)}.mw-dismissable-notice-body { padding: 20px; margin: 0!important}.mw-dismissable-notice-close { padding: 20px}.banner-container { position: relative}.warningbox { color: #fff!important}#content { position: relative; z-index: 1; background-color: transparent!important}div#mw-mf-page-center::before { content: ""; position: fixed; top: 0; bottom: 0; right: 0; height: 100%; width: 100%; background-image: linear-gradient(#1a1a1a,transparent),url(https://wiki.hypixel.net/images/hypixel/background.png); background-image: linear-gradient(#1a1a1a,transparent),image-set(url(https://wiki.hypixel.net/images/hypixel/background.png) 1x,url(https://wiki.hypixel.net/images/hypixel/background-large.png) 2x); background-attachment: fixed; background-color: #1a1a1a; background-position: center; background-repeat: no-repeat; background-size: cover; opacity: .075; z-index: 0; pointer-events: none}.page-Main_Page #wrapper #content { background: 0 0!important}.last-modified-bar,.footer { position: relative}.last-modified-bar a,.last-modified-bar a:visited { color: #fff}.overlay { z-index: 2!important}.mwe-math-element { overflow: auto; display: block}#page-secondary-actions { display: none}.loot-drops-minor li { margin-bottom: 0!important}.warningbox { color: #fff}.warningbox>p { margin: .5em 0!important; font-size: 17px}.toctitle>.mw-ui-icon-minerva-listBullet { display: none}.infobox img { max-width: 100%!important}.hp-loottable td { border: 2px solid #1a1a1a!important}.hp-loottable td:last-child { color: #5f5}.is-affected-by-mf { outline: dotted 3px transparent; outline-offset: -1px; outline-color: #5ff}.is-affected-by-pl { outline: dotted 3px transparent; outline-offset: -1px; outline-color: #f5f}.is-affected-by-mf.is-affected-by-pl { outline-color: #b591b7!important}.cata-image-loot-tabber * .tabber__tabs a:nth-child(1)::before { background-image: url(https://wiki.hypixel.net/images/b/b9/SkyBlock_furniture_dungeon_wood_reward_chest.png); height: 65px}.cata-image-loot-tabber * .tabber__tabs a:nth-child(2)::before { background-image: url(https://wiki.hypixel.net/images/8/85/SkyBlock_furniture_dungeon_gold_reward_chest.png); height: 65px}.cata-image-loot-tabber * .tabber__tabs a:nth-child(3)::before { background-image: url(https://wiki.hypixel.net/images/9/98/SkyBlock_furniture_dungeon_diamond_reward_chest.png); height: 65px; width: 40px}.cata-image-loot-tabber * .tabber__tabs a:nth-child(4)::before { background-image: url(https://wiki.hypixel.net/images/e/e4/SkyBlock_furniture_dungeon_emerald_reward_chest.png); height: 65px; width: 40px}.cata-image-loot-tabber * .tabber__tabs a:nth-child(5)::before { background-image: url(https://wiki.hypixel.net/images/4/40/SkyBlock_furniture_dungeon_obsidian_reward_chest.png); height: 65px; width: 50px}.cata-image-loot-tabber * .tabber__tabs a:nth-child(6)::before { background-image: url(https://wiki.hypixel.net/images/8/87/SkyBlock_furniture_dungeon_bedrock_reward_chest.png); height: 65px; width: 55px}.diff-deletedline .diffchange { background: #988e78!important}.hide { display: none}.page-notif-box { border: 2px solid #333!important; border-left-width: 10px!important; border-radius: 6px; border-collapse: separate!important; width: 75%; background-color: #1f1f1f!important; box-shadow: 0 0 10px #1f1f1f!important; display: flex; margin: auto!important; color: #fff; font-weight: 700; margin-top: 25px!important; margin-bottom: 25px!important}.page-notif-box tr>td { border: none; padding: .25em .9em}.page-notif-box img { max-width: revert!important; flex-shrink: 0}.page-notif-box-updating,.page-notif-box-changed { border-color: #e7871b!important}.page-notif-box-no-obtain,.page-notif-box-cannot-obtain { border-color: #e30000!important}.page-notif-box-alpha { border-color: #0d6f67!important}.hp-input { height: 35px; width: 100%; border: none!important}.dungeon-calc-container td,.loot-calc-container td { border: 2px solid #1a1a1a}.dungeon-calc-button,.loot-calc-button { cursor: pointer; vertical-align: bottom; background-color: #3f7dfb!important; transition-duration: .35s; padding: 5px!important}.dungeon-calc-button:hover,.loot-calc-button:hover { background-color: #5e93fe!important}.hp-loottable td:last-child { color: #5f5}.dungeon-loottable td:last-child { color: #5f5}.listspacing li { margin-bottom: 0!important}.listspacing li:last-child { margin-bottom: 1em!important}.listdisplay li { display: inline!important}.categoryboxcontainer { max-width: 100%; height: 35px; background-color: #1f1f1f; border: 1px solid #333; padding: 3px; font-size: 15px; clear: both}.categoryboxcontainer li { display: inline-block; padding-left: 5px; padding-right: 5px; line-height: 35px}.categoryboxcontainer li:first-child { padding-left: 0; border-left: none}.categoryboxcontainer li:nth-child(2) { border-left: none}.categoryboxcontainer li:empty { display: none}.tooltiptemp { position: relative!important; display: inline-block!important; text-decoration: underline dotted; cursor: help}.tooltiptemp .tooltiptexttemp { visibility: hidden; width: 240px; background-color: #000; color: #fff; text-align: center; border: 1px #333 solid; border-radius: 6px; padding: 5px 0; position: absolute; z-index: 1; bottom: 100%!important; left: 50%!important; margin-left: -120px!important; opacity: 0; transition: opacity 1s}.tooltiptemp .tooltiptexttemp::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: #000 transparent transparent transparent}.tooltiptemp:hover .tooltiptexttemp { visibility: visible; opacity: 1}.tooltiptemp p { margin: 0}.raw-mctooltip { position: relative!important; display: inline-block!important; font-weight: 400}.raw-mctooltip:hover .raw-mctooltiptext { display: inline}.raw-mctooltiptext { display: none; font-family: minecraft,helvetica,serif; margin: 0}.content .mw-parser-output>h2 { padding: .25em 0; font-size: 1.8em; margin-top: 35px}.content .mw-parser-output>h2,.content .mw-parser-output>h3 { text-transform: uppercase; font-weight: 400}.heading-holder { padding: 0!important}.mw-body-content blockquote { background-color: #212121; border-radius: 6px; border: 1px solid #333!important; border-left-width: 5px!important; display: table}.tabber__tab { font-weight: 400!important; column-gap: 10px}.tabber__header .tabber__tab:not(.tabber__tab--active) { color: #fff}.mw-collapsible-toggle { padding-left: 5px}.tabber__header,.tabber__section,.tabber__panel { scroll-snap-type: none!important; overscroll-behavior: none!important; scroll-snap-align: none!important; overflow: hidden!important}.mw-userlogin-help { display: none}@media(min-width: 720px) { .header .branding-box { max-height:55px }}@font-face { font-family: minecraft; src: url(https://wiki.hypixel.net/fonts/minecraft.woff) format("woff")}.minecraft-inventory { -moz-user-select: none; -ms-user-select: none; -webkit-user-select: none; background-color: #c6c6c6; border: 4px solid; border-color: #fff #555 #555 #fff; border-radius: 4px; box-shadow: 0 0 0 1px #000; color: #404040; display: inline-block; font-family: minecraft,serif; font-size: 15px; font-weight: 400; padding: 2px 6px 6px; user-select: none; margin: 10px 0}.minecraft-inventory table { border-collapse: separate; margin: 0!important}.minecraft-inventory td { background: #8b8b8b no-repeat center center/32px 32px; border: 2px solid; border-color: #373737 #fff #fff #373737; box-sizing: border-box; padding: 0; position: relative; width: 36px}.minecraft-inventory td>.external { background: 0 0; padding: 0}.minecraft-inventory td>a:hover { text-decoration: none}.minecraft-inventory td:hover:after { background: #fff; content: ""; float: left; height: 100%; left: 0; opacity: .5; pointer-events: none; position: absolute; top: 0; width: 100%}.minecraft-inventory td:hover .mctooltip { display: block}.minecraft-inventory>span { padding: 2px}.minecraft-inventory tr { height: 36px}.minecraft-inventory .enchanted::before { content: ""; height: 32px; left: 0; position: absolute; top: 0; width: 32px; background-image: url(https://wiki.hypixel.net/images/minecraft/glint.webp); mix-blend-mode: color-dodge}.minecraft-inventory .enchanted::after { content: ""; height: 32px; left: 0; position: absolute; top: 0; width: 32px; background-image: url(https://wiki.hypixel.net/images/minecraft/item-spritesheet_cutout.png); background-position: inherit}.minecraft-inventory .amount { margin: 0; position: relative; z-index: 999}.minecraft-inventory .sbsprite { background-repeat: no-repeat; color: #fff; direction: rtl; display: block; text-shadow: 2px 2px #3f3f3f; background-image: url(https://wiki.hypixel.net/images/skyblock/item-spritesheet.png); height: 22px; line-height: 44px; margin: 0 5px; text-indent: -8px; width: 22px}.minecraft-inventory .mcsprite { background-repeat: no-repeat; color: #fff; direction: rtl; display: block; text-shadow: 2px 2px #3f3f3f; background-image: url(https://wiki.hypixel.net/images/minecraft/item-spritesheet.png); height: 32px; line-height: 54px; text-indent: -2px; width: 32px}.minecraft-inventory .sbpet { background-repeat: no-repeat; color: #fff; direction: rtl; display: block; text-shadow: 2px 2px #3f3f3f; background-image: url(https://wiki.hypixel.net/images/skyblock/pet-spritesheet.png); height: 22px; line-height: 44px; margin: 0 6px; text-indent: -8px; width: 20px}.mctooltip { background: rgba(16,0,16,.93); border: 2px solid; border-image: linear-gradient(to bottom,rgba(80,0,255,0.31),rgba(40,0,127,0.31)); border-image-slice: 1; border-radius: 4px; box-shadow: 0 0 0 2px rgba(16,0,16,.93); display: none; line-height: 18px; margin-left: 15px; margin-top: -30px; padding: 4px 4px 3px; position: fixed; text-indent: initial; text-shadow: 2px 2px #3f3f3f; z-index: 9999}.mctooltip>span { direction: ltr; display: block; white-space: nowrap; text-align: left}.mctooltip>span:nth-child(1):not(:last-child) { padding-bottom: 5px}.mctooltip>span:nth-child(n+2) { float: left}.mctooltip>span:nth-child(n+2):not(:last-child) { padding-right: 4px}.mctooltip>span.inline { display: inline-block!important}.mctooltip .rarity-divine { color: #5ff}.mctooltip .rarity-rare { color: #55f; text-shadow: 2px 2px #15153f}.mctooltip .rarity-epic { color: #a0a; text-shadow: 2px 2px #2a002a}.mctooltip .rarity-supreme { color: #a00; text-shadow: 2px 2px #2a0000}.mctooltip .rarity-legendary { color: #fa0; text-shadow: 2px 2px #2a2a00}.mctooltip .rarity-uncommon { color: #5f5; text-shadow: 2px 2px #153f15}.mctooltip .rarity-mythic { color: #f5f; text-shadow: 2px 2px #3f153f}.mctooltip .rarity-veryspecial { color: #f55; text-shadow: 2px 2px #3f1515}.mctooltip .rarity-special { color: #f55; text-shadow: 2px 2px #3f1515}.mctooltip .color-aqua { text-shadow: 2px 2px #153f3f}.mctooltip .color-black { text-shadow: 2px 2px #000}.mctooltip .color-blue { text-shadow: 2px 2px #15153f}.mctooltip .color-dark_aqua { text-shadow: 2px 2px #002a2a}.mctooltip .color-dark_blue { text-shadow: 2px 2px #00002a}.mctooltip .color-dark_gray { text-shadow: 2px 2px #151515}.mctooltip .color-dark_green { text-shadow: 2px 2px #002a00}.mctooltip .color-dark_purple { text-shadow: 2px 2px #2a002a}.mctooltip .color-dark_red { text-shadow: 2px 2px #2a0000}.mctooltip .color-gold { text-shadow: 2px 2px #2a2a00}.mctooltip .color-gray { text-shadow: 2px 2px #2a2a2a}.mctooltip .color-green { text-shadow: 2px 2px #153f15}.mctooltip .color-light_purple { text-shadow: 2px 2px #3f153f}.mctooltip .color-red { text-shadow: 2px 2px #3f1515}.mctooltip .color-white { text-shadow: 2px 2px #3f3f3f}.mctooltip .color-yellow { text-shadow: 2px 2px #3f3f15}.color-aqua { color: #5ff}.color-black { color: #000}.color-blue { color: #55f}.color-dark_aqua { color: #0aa}.color-dark_blue { color: #00a}.color-dark_gray { color: #555}.color-dark_green { color: #0a0}.color-dark_purple { color: #a0a}.color-dark_red { color: #a00}.color-gold { color: #fa0}.color-gray { color: #aaa}.color-green { color: #5f5}.color-light_purple { color: #f5f}.color-red { color: #f55}.color-white { color: #fff}.color-yellow { color: #ff5}.mcentity { background-image: url(https://wiki.hypixel.net/images/minecraft/entity-spritesheet.png); height: 16px; width: 16px}.mcblock { background-image: url(https://wiki.hypixel.net/images/minecraft/block-spritesheet.png); height: 16px; width: 16px}.sbspray { background-image: url(https://wiki.hypixel.net/images/skyblock/spray-spritesheet.png); height: 128px; width: 128px}.sbnpc { background-image: url(https://wiki.hypixel.net/images/skyblock/npc-spritesheet.png); height: 120px; width: 270px}.sbnpc-_56ms { background-position: 0 0}.sbnpc-adventurer { background-position: -120px 0}.sbnpc-agents { background-position: -240px 0}.sbnpc-anita { background-position: -360px 0}.sbnpc-archeologist { background-position: -480px 0}.sbnpc-armorsmith { background-position: -600px 0}.sbnpc-arthur { background-position: -720px 0}.sbnpc-artist { background-position: -840px 0}.sbnpc-artist_2 { background-position: -960px 0}.sbnpc-auction_agent_0 { background-position: -1080px 0}.sbnpc-auction_agent_1 { background-position: -1200px 0}.sbnpc-auction_agent_2 { background-position: -1320px 0}.sbnpc-auction_agent_3 { background-position: -1440px 0}.sbnpc-auction_master { background-position: -1560px 0}.sbnpc-baker { background-position: -1680px 0}.sbnpc-banker { background-position: -1800px 0}.sbnpc-bartender { background-position: -1920px 0}.sbnpc-bazaar { background-position: -2040px 0}.sbnpc-bazaar_assistant { background-position: -2160px 0}.sbnpc-beekeeper { background-position: -2280px 0}.sbnpc-bestiary { background-position: -2400px 0}.sbnpc-beth { background-position: -2520px 0}.sbnpc-blue_shark { background-position: -2640px 0}.sbnpc-bodyguard_1 { background-position: -2760px 0}.sbnpc-bodyguard_2 { background-position: 0 -270px}.sbnpc-bonzo { background-position: -120px -270px}.sbnpc-bonzo_summon_0 { background-position: -240px -270px}.sbnpc-bonzo_summon_1 { background-position: -360px -270px}.sbnpc-bonzo_summon_2 { background-position: -480px -270px}.sbnpc-bonzo_undead { background-position: -600px -270px}.sbnpc-builder { background-position: -720px -270px}.sbnpc-candidate { background-position: -840px -270px}.sbnpc-cannibal_undead { background-position: -960px -270px}.sbnpc-carpenter { background-position: -1080px -270px}.sbnpc-catacombs_blacksmith { background-position: -1200px -270px}.sbnpc-century_simon { background-position: -1320px -270px}.sbnpc-charlie { background-position: -1440px -270px}.sbnpc-clerk_election { background-position: -1560px -270px}.sbnpc-community_shop { background-position: -1680px -270px}.sbnpc-crypt_dreadlord { background-position: -1800px -270px}.sbnpc-crypt_souleater { background-position: -1920px -270px}.sbnpc-crystal_sentry { background-position: -2040px -270px}.sbnpc-dante_grey { background-position: -2160px -270px}.sbnpc-dante_statue { background-position: -2280px -270px}.sbnpc-default_lost_adventurer { background-position: -2400px -270px}.sbnpc-derp_candidate { background-position: -2520px -270px}.sbnpc-diamond_guy { background-position: -2640px -270px}.sbnpc-dictator { background-position: -2760px -270px}.sbnpc-dirt_guy { background-position: 0 -540px}.sbnpc-donpireso { background-position: -120px -540px}.sbnpc-duncan { background-position: -240px -540px}.sbnpc-dungeons_candidate { background-position: -360px -540px}.sbnpc-dungeons_hub_selector { background-position: -480px -540px}.sbnpc-dusk { background-position: -600px -540px}.sbnpc-dwarf_banker { background-position: -720px -540px}.sbnpc-dwarf_citizen_female_5 { background-position: -840px -540px}.sbnpc-dwarf_citizen_female_6 { background-position: -960px -540px}.sbnpc-dwarf_citizen_female_7 { background-position: -1080px -540px}.sbnpc-dwarf_citizen_male_1 { background-position: -1200px -540px}.sbnpc-dwarf_citizen_male_2 { background-position: -1320px -540px}.sbnpc-dwarf_citizen_male_3 { background-position: -1440px -540px}.sbnpc-dwarf_citizen_male_4 { background-position: -1560px -540px}.sbnpc-dwarf_council_female_5 { background-position: -1680px -540px}.sbnpc-dwarf_council_female_6 { background-position: -1800px -540px}.sbnpc-dwarf_council_female_7 { background-position: -1920px -540px}.sbnpc-dwarf_council_female_8 { background-position: -2040px -540px}.sbnpc-dwarf_council_male_1 { background-position: -2160px -540px}.sbnpc-dwarf_council_male_2 { background-position: -2280px -540px}.sbnpc-dwarf_council_male_3 { background-position: -2400px -540px}.sbnpc-dwarf_council_male_4 { background-position: -2520px -540px}.sbnpc-dwarf_militia_1 { background-position: -2640px -540px}.sbnpc-dwarf_militia_2 { background-position: -2760px -540px}.sbnpc-dwarf_militia_3 { background-position: 0 -810px}.sbnpc-dwarf_militia_4 { background-position: -120px -810px}.sbnpc-dwarf_militia_5 { background-position: -240px -810px}.sbnpc-dwarf_militia_6 { background-position: -360px -810px}.sbnpc-dwarf_royalguard_female_5 { background-position: -480px -810px}.sbnpc-dwarf_royalguard_female_6 { background-position: -600px -810px}.sbnpc-dwarf_royalguard_female_7 { background-position: -720px -810px}.sbnpc-dwarf_royalguard_female_8 { background-position: -840px -810px}.sbnpc-dwarf_royalguard_male_1 { background-position: -960px -810px}.sbnpc-dwarf_royalguard_male_2 { background-position: -1080px -810px}.sbnpc-dwarf_royalguard_male_3 { background-position: -1200px -810px}.sbnpc-dwarf_royalguard_male_4 { background-position: -1320px -810px}.sbnpc-economist_candidate { background-position: -1440px -810px}.sbnpc-elle { background-position: -1560px -810px}.sbnpc-emissary_female_1 { background-position: -1680px -810px}.sbnpc-emissary_female_2 { background-position: -1800px -810px}.sbnpc-emissary_female_3 { background-position: -1920px -810px}.sbnpc-emissary_male_1 { background-position: -2040px -810px}.sbnpc-emissary_male_2 { background-position: -2160px -810px}.sbnpc-emissary_male_3 { background-position: -2280px -810px}.sbnpc-end_dealer { background-position: -2400px -810px}.sbnpc-enderman_liquid_hot_magma { background-position: -2520px -810px}.sbnpc-enraged_revenant_horror { background-position: -2640px -810px}.sbnpc-entity_liquid_hot_magma { background-position: -2760px -810px}.sbnpc-event_master { background-position: 0 -1080px}.sbnpc-events_candidate { background-position: -120px -1080px}.sbnpc-fairy { background-position: -240px -1080px}.sbnpc-farm_merchant { background-position: -360px -1080px}.sbnpc-farmer { background-position: -480px -1080px}.sbnpc-farmer_jon { background-position: -600px -1080px}.sbnpc-fire_guy { background-position: -720px -1080px}.sbnpc-fish_merchant { background-position: -840px -1080px}.sbnpc-fisherman { background-position: -960px -1080px}.sbnpc-fishing_candidate { background-position: -1080px -1080px}.sbnpc-flamer_undead { background-position: -1200px -1080px}.sbnpc-forger { background-position: -1320px -1080px}.sbnpc-frank_undead { background-position: -1440px -1080px}.sbnpc-friendly_hiker { background-position: -1560px -1080px}.sbnpc-frost_undead { background-position: -1680px -1080px}.sbnpc-frosty { background-position: -1800px -1080px}.sbnpc-frozen_lost_adventurer { background-position: -1920px -1080px}.sbnpc-furry_e_boy { background-position: -2040px -1080px}.sbnpc-gatekeeper { background-position: -2160px -1080px}.sbnpc-giant_undead { background-position: -2280px -1080px}.sbnpc-goblin { background-position: -2400px -1080px}.sbnpc-goblin_armor_1 { background-position: -2520px -1080px}.sbnpc-goblin_armor_2 { background-position: -2640px -1080px}.sbnpc-goblin_armor_3 { background-position: -2760px -1080px}.sbnpc-goblin_armor_4 { background-position: 0 -1350px}.sbnpc-goblin_king_1 { background-position: -120px -1350px}.sbnpc-goblin_murderlover { background-position: -240px -1350px}.sbnpc-goblin_naked_1 { background-position: -360px -1350px}.sbnpc-goblin_naked_2 { background-position: -480px -1350px}.sbnpc-goblin_naked_3 { background-position: -600px -1350px}.sbnpc-goblin_naked_4 { background-position: -720px -1350px}.sbnpc-goblin_naked_5 { background-position: -840px -1350px}.sbnpc-gold_forger { background-position: -960px -1350px}.sbnpc-goon { background-position: -1080px -1350px}.sbnpc-grandma_wolf { background-position: -1200px -1350px}.sbnpc-great_white_shark { background-position: -1320px -1350px}.sbnpc-guber { background-position: -1440px -1350px}.sbnpc-guildford { background-position: -1560px -1350px}.sbnpc-gulliver { background-position: -1680px -1350px}.sbnpc-gustave { background-position: -1800px -1350px}.sbnpc-haymitch { background-position: -1920px -1350px}.sbnpc-hephaestus { background-position: -2040px -1350px}.sbnpc-holy_lost_adventurer { background-position: -2160px -1350px}.sbnpc-hub_selector { background-position: -2280px -1350px}.sbnpc-hungry_hiker { background-position: -2400px -1350px}.sbnpc-hunter_ava { background-position: -2520px -1350px}.sbnpc-ice_fisherman { background-position: -2640px -1350px}.sbnpc-iron_forger { background-position: -2760px -1350px}.sbnpc-jacob { background-position: 0 -1620px}.sbnpc-jake { background-position: -120px -1620px}.sbnpc-juliette { background-position: -240px -1620px}.sbnpc-kessie { background-position: -360px -1620px}.sbnpc-king_midas { background-position: -480px -1620px}.sbnpc-lapis_miner { background-position: -600px -1620px}.sbnpc-lazy_miner { background-position: -720px -1620px}.sbnpc-leech_undead { background-position: -840px -1620px}.sbnpc-lift_operator { background-position: -960px -1620px}.sbnpc-liquid_hot_magma { background-position: -1080px -1620px}.sbnpc-livid { background-position: -1200px -1620px}.sbnpc-livid_undead { background-position: -1320px -1620px}.sbnpc-lonely_philosopher { background-position: -1440px -1620px}.sbnpc-lumber_merchant { background-position: -1560px -1620px}.sbnpc-lumberjack { background-position: -1680px -1620px}.sbnpc-mason { background-position: -1800px -1620px}.sbnpc-master_tactician { background-position: -1920px -1620px}.sbnpc-mayhem_main { background-position: -2040px -1620px}.sbnpc-mayor { background-position: -2160px -1620px}.sbnpc-melancholic_viking { background-position: -2280px -1620px}.sbnpc-melody { background-position: -2400px -1620px}.sbnpc-mine_merchant { background-position: -2520px -1620px}.sbnpc-mining_candidate { background-position: -2640px -1620px}.sbnpc-minos_champion { background-position: -2760px -1620px}.sbnpc-minos_inquisitor { background-position: 0 -1890px}.sbnpc-minotaur { background-position: -120px -1890px}.sbnpc-mort { background-position: -240px -1890px}.sbnpc-mr_dead_undead { background-position: -360px -1890px}.sbnpc-mute_undead { background-position: -480px -1890px}.sbnpc-nitroholic { background-position: -600px -1890px}.sbnpc-nurse_shark { background-position: -720px -1890px}.sbnpc-old_man_garry { background-position: -840px -1890px}.sbnpc-ooze_undead { background-position: -960px -1890px}.sbnpc-ophelia { background-position: -1080px -1890px}.sbnpc-oringo { background-position: -1200px -1890px}.sbnpc-parasite_undead { background-position: -1320px -1890px}.sbnpc-pat { background-position: -1440px -1890px}.sbnpc-personal_bank_upgrader { background-position: -1560px -1890px}.sbnpc-pet_collector { background-position: -1680px -1890px}.sbnpc-pet_sitter { background-position: -1800px -1890px}.sbnpc-pets_candidate { background-position: -1920px -1890px}.sbnpc-placeholder_candidate { background-position: -2040px -1890px}.sbnpc-player_jerry { background-position: -2160px -1890px}.sbnpc-potato_king { background-position: -2280px -1890px}.sbnpc-professor { background-position: -2400px -1890px}.sbnpc-psycho_undead { background-position: -2520px -1890px}.sbnpc-putrid_undead { background-position: -2640px -1890px}.sbnpc-puzzler { background-position: -2760px -1890px}.sbnpc-rainmaker { background-position: 0 -2160px}.sbnpc-reaper_undead { background-position: -120px -2160px}.sbnpc-redstone_engineer { background-position: -240px -2160px}.sbnpc-refraction { background-position: -360px -2160px}.sbnpc-relenter { background-position: -480px -2160px}.sbnpc-revenant_horror { background-position: -600px -2160px}.sbnpc-revoker_undead { background-position: -720px -2160px}.sbnpc-rick { background-position: -840px -2160px}.sbnpc-romero_final { background-position: -960px -2160px}.sbnpc-romero_normal { background-position: -1080px -2160px}.sbnpc-sadan { background-position: -1200px -2160px}.sbnpc-salesman_christmas { background-position: -1320px -2160px}.sbnpc-salesman_easter { background-position: -1440px -2160px}.sbnpc-salesman_generic { background-position: -1560px -2160px}.sbnpc-salesman_halloween { background-position: -1680px -2160px}.sbnpc-salesman_summer { background-position: -1800px -2160px}.sbnpc-scarf_archer { background-position: -1920px -2160px}.sbnpc-scarf_mage { background-position: -2040px -2160px}.sbnpc-scarf_priest { background-position: -2160px -2160px}.sbnpc-scarf_undead { background-position: -2280px -2160px}.sbnpc-scarf_warrior { background-position: -2400px -2160px}.sbnpc-scoop { background-position: -2520px -2160px}.sbnpc-scorpius { background-position: -2640px -2160px}.sbnpc-shadow_assassin { background-position: -2760px -2160px}.sbnpc-shady_bartender { background-position: 0 -2430px}.sbnpc-shady_cousin { background-position: -120px -2430px}.sbnpc-shaggy { background-position: -240px -2430px}.sbnpc-shepherd { background-position: -360px -2430px}.sbnpc-simon_hat { background-position: -480px -2430px}.sbnpc-sirius { background-position: -600px -2430px}.sbnpc-skeletor_prime { background-position: -720px -2430px}.sbnpc-skull_undead { background-position: -840px -2430px}.sbnpc-slayer { background-position: -960px -2430px}.sbnpc-slayer_candidate { background-position: -1080px -2430px}.sbnpc-snowmaker { background-position: -1200px -2430px}.sbnpc-spirit_bear { background-position: -1320px -2430px}.sbnpc-spooky { background-position: -1440px -2430px}.sbnpc-st_jerry { background-position: -1560px -2430px}.sbnpc-sylent { background-position: -1680px -2430px}.sbnpc-tailor_assistant { background-position: -1800px -2430px}.sbnpc-tailor_owner { background-position: -1920px -2430px}.sbnpc-tammy { background-position: -2040px -2430px}.sbnpc-tear_undead { background-position: -2160px -2430px}.sbnpc-technoblade { background-position: -2280px -2430px}.sbnpc-terracotta { background-position: -2400px -2430px}.sbnpc-terry { background-position: -2520px -2430px}.sbnpc-thirty_virus { background-position: -2640px -2430px}.sbnpc-tiger_shark { background-position: -2760px -2430px}.sbnpc-timedeo { background-position: -2880px 0}.sbnpc-tomioka { background-position: -2880px -270px}.sbnpc-tony { background-position: -2880px -540px}.sbnpc-treasure_horder { background-position: -2880px -810px}.sbnpc-treasure_hunter { background-position: -2880px -1080px}.sbnpc-trevor { background-position: -2880px -1350px}.sbnpc-trinity { background-position: -2880px -1620px}.sbnpc-unstable_lost_adventurer { background-position: -2880px -1890px}.sbnpc-vader_undead { background-position: -2880px -2160px}.sbnpc-vinny { background-position: -2880px -2430px}.sbnpc-walker_undead { background-position: 0 -2700px}.sbnpc-walter { background-position: -120px -2700px}.sbnpc-weaponsmith { background-position: -240px -2700px}.sbnpc-weirdo_0 { background-position: -360px -2700px}.sbnpc-weirdo_1 { background-position: -480px -2700px}.sbnpc-weirdo_2 { background-position: -600px -2700px}.sbnpc-winona { background-position: -720px -2700px}.sbnpc-winter_banker { background-position: -840px -2700px}.sbnpc-wizard { background-position: -960px -2700px}.sbnpc-wizard_candidate { background-position: -1080px -2700px}.sbnpc-wizard_quest { background-position: -1200px -2700px}.sbnpc-wolf_shaman { background-position: -1320px -2700px}.sbnpc-wool_weaver { background-position: -1440px -2700px}.sbnpc-young_lost_adventurer { background-position: -1560px -2700px}.sbnpc-zog { background-position: -1680px -2700px}.sbnpc-zombie_commander { background-position: -1800px -2700px}.sbsprite-cobblestone_generator_10 { background-position: 0 0}.sbsprite-cobblestone_generator_11 { background-position: -22px 0}.sbsprite-danger_3_portal { background-position: -44px 0}.sbsprite-resource_regenerator_crystal { background-position: -66px 0}.sbsprite-sugar_cane_generator_12 { background-position: -88px 0}.sbsprite-cobblestone_generator_12 { background-position: -110px 0}.sbsprite-sugar_cane_generator_11 { background-position: -132px 0}.sbsprite-sugar_cane_generator_10 { background-position: -154px 0}.sbsprite-small_shelves { background-position: -176px 0}.sbsprite-bingo_talisman { background-position: -198px 0}.sbsprite-red_scarf { background-position: -220px 0}.sbsprite-wither_helmet { background-position: -242px 0}.sbsprite-glowstone_generator_11 { background-position: -264px 0}.sbsprite-glowstone_generator_10 { background-position: -286px 0}.sbsprite-fast_travel_crypt { background-position: -308px 0}.sbsprite-present_personality { background-position: -330px 0}.sbsprite-extra_large_gemstone_sack { background-position: -352px 0}.sbsprite-gold_bonzo_head { background-position: -374px 0}.sbsprite-shadow_assassin_mauve { background-position: -396px 0}.sbsprite-ender_artifact { background-position: -418px 0}.sbsprite-sheep_generator_1 { background-position: -440px 0}.sbsprite-beach_chair_plus { background-position: -462px 0}.sbsprite-sheep_generator_2 { background-position: -484px 0}.sbsprite-sheep_generator_3 { background-position: -506px 0}.sbsprite-sheep_generator_4 { background-position: -528px 0}.sbsprite-sheep_generator_5 { background-position: -550px 0}.sbsprite-sheep_generator_6 { background-position: -572px 0}.sbsprite-frozen_spider { background-position: -594px 0}.sbsprite-sheep_generator_7 { background-position: -616px 0}.sbsprite-sheep_generator_8 { background-position: -638px 0}.sbsprite-sheep_generator_9 { background-position: -660px 0}.sbsprite-nether_wart_island_crystal { background-position: -682px 0}.sbsprite-medium_fishing_sack { background-position: -704px 0}.sbsprite-gold_generator_9 { background-position: -726px 0}.sbsprite-gold_generator_7 { background-position: -748px 0}.sbsprite-gold_generator_8 { background-position: -770px 0}.sbsprite-gold_generator_5 { background-position: -792px 0}.sbsprite-penguin_10 { background-position: -814px 0}.sbsprite-diver_helmet { background-position: -836px 0}.sbsprite-gold_generator_6 { background-position: -858px 0}.sbsprite-penguin_11 { background-position: -880px 0}.sbsprite-gold_generator_3 { background-position: -902px 0}.sbsprite-gold_generator_4 { background-position: -924px 0}.sbsprite-pet_skin_sheep_purple { background-position: -946px 0}.sbsprite-gold_generator_1 { background-position: -968px 0}.sbsprite-gold_generator_2 { background-position: -990px 0}.sbsprite-jar_of_pickles { background-position: -1012px 0}.sbsprite-griffin_upgrade_stone_legendary { background-position: -1034px 0}.sbsprite-pet_skin_sheep_orange { background-position: 0 -22px}.sbsprite-talisman { background-position: -22px -22px}.sbsprite-jungle_generator_7 { background-position: -44px -22px}.sbsprite-jungle_generator_6 { background-position: -66px -22px}.sbsprite-tutti_frutti_poison { background-position: -88px -22px}.sbsprite-fishing_generator_11 { background-position: -110px -22px}.sbsprite-jungle_generator_9 { background-position: -132px -22px}.sbsprite-fishing_generator_10 { background-position: -154px -22px}.sbsprite-jungle_generator_8 { background-position: -176px -22px}.sbsprite-jungle_generator_3 { background-position: -198px -22px}.sbsprite-witch_mask { background-position: -220px -22px}.sbsprite-yellow { background-position: -242px -22px}.sbsprite-jungle_generator_2 { background-position: -264px -22px}.sbsprite-jungle_generator_5 { background-position: -286px -22px}.sbsprite-jungle_generator_4 { background-position: -308px -22px}.sbsprite-bat_person_artifact { background-position: -330px -22px}.sbsprite-cocoa_generator_11 { background-position: -352px -22px}.sbsprite-cocoa_generator_12 { background-position: -374px -22px}.sbsprite-jungle_generator_1 { background-position: -396px -22px}.sbsprite-cocoa_generator_10 { background-position: -418px -22px}.sbsprite-beheaded_horror { background-position: -440px -22px}.sbsprite-clay_generator_6 { background-position: -462px -22px}.sbsprite-clay_generator_7 { background-position: -484px -22px}.sbsprite-clay_generator_8 { background-position: -506px -22px}.sbsprite-clay_generator_9 { background-position: -528px -22px}.sbsprite-clay_generator_2 { background-position: -550px -22px}.sbsprite-clay_generator_3 { background-position: -572px -22px}.sbsprite-clay_generator_4 { background-position: -594px -22px}.sbsprite-clay_generator_5 { background-position: -616px -22px}.sbsprite-gold_livid_head { background-position: -638px -22px}.sbsprite-clay_generator_1 { background-position: -660px -22px}.sbsprite-medium_slayer_sack { background-position: -682px -22px}.sbsprite-pet_skin_wither { background-position: -704px -22px}.sbsprite-pink_frosted_donut_3 { background-position: -726px -22px}.sbsprite-pink_frosted_donut_2 { background-position: -748px -22px}.sbsprite-pink_frosted_donut_5 { background-position: -770px -22px}.sbsprite-garland { background-position: -792px -22px}.sbsprite-pink_frosted_donut_4 { background-position: -814px -22px}.sbsprite-pink_frosted_donut_7 { background-position: -836px -22px}.sbsprite-pink_frosted_donut_6 { background-position: -858px -22px}.sbsprite-pink_frosted_donut_9 { background-position: -880px -22px}.sbsprite-pink_frosted_donut_8 { background-position: -902px -22px}.sbsprite-rune_jerry { background-position: -924px -22px}.sbsprite-feather_ring { background-position: -946px -22px}.sbsprite-perfect_forge { background-position: -968px -22px}.sbsprite-bingo_relic { background-position: -990px -22px}.sbsprite-revenant_catalyst { background-position: -1012px -22px}.sbsprite-sun_2 { background-position: -1034px -22px}.sbsprite-sun_1 { background-position: 0 -44px}.sbsprite-pet_skin_tiger_twilight { background-position: -22px -44px}.sbsprite-blessing_of_life { background-position: -44px -44px}.sbsprite-plasma { background-position: -66px -44px}.sbsprite-carrot_patch { background-position: -88px -44px}.sbsprite-pink_frosted_donut_1 { background-position: -110px -44px}.sbsprite-bestiary_the_park { background-position: -132px -44px}.sbsprite-end_stone_10 { background-position: -154px -44px}.sbsprite-end_stone_11 { background-position: -176px -44px}.sbsprite-griffin_upgrade_stone_epic { background-position: -198px -44px}.sbsprite-iron_generator_10 { background-position: -220px -44px}.sbsprite-pet_skin_rock_embarrassed { background-position: -242px -44px}.sbsprite-fast_travel_barn { background-position: -264px -44px}.sbsprite-iron_generator_11 { background-position: -286px -44px}.sbsprite-iron_generator_12 { background-position: -308px -44px}.sbsprite-large_runes_sack { background-position: -330px -44px}.sbsprite-rune_redstone { background-position: -352px -44px}.sbsprite-horseman_candle { background-position: -374px -44px}.sbsprite-tepid_green_tea { background-position: -396px -44px}.sbsprite-large_agronomy_sack { background-position: -418px -44px}.sbsprite-wise_shimmer { background-position: -440px -44px}.sbsprite-maxor_the_fish { background-position: -462px -44px}.sbsprite-revenant_generator_4 { background-position: -484px -44px}.sbsprite-revenant_generator_5 { background-position: -506px -44px}.sbsprite-revenant_generator_6 { background-position: -528px -44px}.sbsprite-revenant_generator_7 { background-position: -550px -44px}.sbsprite-revenant_generator_1 { background-position: -572px -44px}.sbsprite-revenant_generator_2 { background-position: -594px -44px}.sbsprite-epoch_cake_orange { background-position: -616px -44px}.sbsprite-revenant_generator_3 { background-position: -638px -44px}.sbsprite-large_gemstone_sack { background-position: -660px -44px}.sbsprite-mender_crown { background-position: -682px -44px}.sbsprite-mummy_10 { background-position: -704px -44px}.sbsprite-revenant_generator_8 { background-position: -726px -44px}.sbsprite-revenant_generator_9 { background-position: -748px -44px}.sbsprite-mummy_11 { background-position: -770px -44px}.sbsprite-hard_stone_generator_9 { background-position: -792px -44px}.sbsprite-hard_stone_generator_8 { background-position: -814px -44px}.sbsprite-hard_stone_generator_7 { background-position: -836px -44px}.sbsprite-hard_stone_generator_6 { background-position: -858px -44px}.sbsprite-hard_stone_generator_5 { background-position: -880px -44px}.sbsprite-hard_stone_generator_4 { background-position: -902px -44px}.sbsprite-medium_talisman_bag { background-position: -924px -44px}.sbsprite-hard_stone_generator_3 { background-position: -946px -44px}.sbsprite-black_small_backpack { background-position: -968px -44px}.sbsprite-hard_stone_generator_2 { background-position: -990px -44px}.sbsprite-harp { background-position: -1012px -44px}.sbsprite-hard_stone_generator_1 { background-position: -1034px -44px}.sbsprite-pet_skin_sheep_green { background-position: 0 -66px}.sbsprite-magma_cube_generator_10 { background-position: -22px -66px}.sbsprite-fishing_crystal { background-position: -44px -66px}.sbsprite-magma_cube_generator_11 { background-position: -66px -66px}.sbsprite-rough_amber_gem { background-position: -88px -66px}.sbsprite-oak_generator_5 { background-position: -110px -66px}.sbsprite-oak_generator_4 { background-position: -132px -66px}.sbsprite-oak_generator_3 { background-position: -154px -66px}.sbsprite-oak_generator_2 { background-position: -176px -66px}.sbsprite-red_claw_ring { background-position: -198px -66px}.sbsprite-oak_generator_9 { background-position: -220px -66px}.sbsprite-oak_generator_8 { background-position: -242px -66px}.sbsprite-purple_small_backpack { background-position: -264px -66px}.sbsprite-oak_generator_7 { background-position: -286px -66px}.sbsprite-oak_generator_6 { background-position: -308px -66px}.sbsprite-picnic_set { background-position: -330px -66px}.sbsprite-oak_generator_1 { background-position: -352px -66px}.sbsprite-pet_skin_sheep_neon_red { background-position: -374px -66px}.sbsprite-hot_stuff { background-position: -396px -66px}.sbsprite-skeleton_generator_11 { background-position: -418px -66px}.sbsprite-skeleton_generator_10 { background-position: -440px -66px}.sbsprite-mayor_jerry { background-position: -462px -66px}.sbsprite-generals_armor_of_the_resistance_helmet { background-position: -484px -66px}.sbsprite-recall_potion { background-position: -506px -66px}.sbsprite-portable_builder { background-position: -528px -66px}.sbsprite-rune_ice { background-position: -550px -66px}.sbsprite-zombie_brain_mixin { background-position: -572px -66px}.sbsprite-pet_skin_rabbit_aquamarine { background-position: -594px -66px}.sbsprite-rune_music { background-position: -616px -66px}.sbsprite-magnetic_talisman { background-position: -638px -66px}.sbsprite-light_grey_jumbo_backpack { background-position: -660px -66px}.sbsprite-onyx { background-position: -682px -66px}.sbsprite-rune_fire { background-position: -704px -66px}.sbsprite-pet_skin_sheep_black { background-position: -726px -66px}.sbsprite-ice_fireplace { background-position: -748px -66px}.sbsprite-sun_personality { background-position: -770px -66px}.sbsprite-pet { background-position: -792px -66px}.sbsprite-melon_2 { background-position: -814px -66px}.sbsprite-melon_3 { background-position: -836px -66px}.sbsprite-epoch_cake_purple { background-position: -858px -66px}.sbsprite-melon_1 { background-position: -880px -66px}.sbsprite-krampus_helmet { background-position: -902px -66px}.sbsprite-coffee_table { background-position: -924px -66px}.sbsprite-necromancer_lord_helmet { background-position: -946px -66px}.sbsprite-melon_8 { background-position: -968px -66px}.sbsprite-blue_ice_hunk { background-position: -990px -66px}.sbsprite-divan_helmet { background-position: -1012px -66px}.sbsprite-melon_9 { background-position: -1034px -66px}.sbsprite-melon_6 { background-position: 0 -88px}.sbsprite-melon_7 { background-position: -22px -88px}.sbsprite-melon_4 { background-position: -44px -88px}.sbsprite-melon_5 { background-position: -66px -88px}.sbsprite-blue_candy { background-position: -88px -88px}.sbsprite-squid_hat { background-position: -110px -88px}.sbsprite-dungeon_green_support_orb { background-position: -132px -88px}.sbsprite-coin_diamond_3 { background-position: -154px -88px}.sbsprite-pink { background-position: -176px -88px}.sbsprite-coin_diamond_2 { background-position: -198px -88px}.sbsprite-repelling_candle { background-position: -220px -88px}.sbsprite-enderman_generator_11 { background-position: -242px -88px}.sbsprite-power_artifact { background-position: -264px -88px}.sbsprite-enderman_generator_10 { background-position: -286px -88px}.sbsprite-amethyst_crystal { background-position: -308px -88px}.sbsprite-crimson_essence { background-position: -330px -88px}.sbsprite-blue_small_backpack { background-position: -352px -88px}.sbsprite-grey_jumbo_backpack { background-position: -374px -88px}.sbsprite-wither_essence { background-position: -396px -88px}.sbsprite-brown_jumbo_backpack { background-position: -418px -88px}.sbsprite-archer_dungeon_ability_1 { background-position: -440px -88px}.sbsprite-crochet_tiger_plushie { background-position: -462px -88px}.sbsprite-final_destination_helmet { background-position: -484px -88px}.sbsprite-luxurious_spool { background-position: -506px -88px}.sbsprite-auto_recombobulator { background-position: -528px -88px}.sbsprite-killer_11 { background-position: -550px -88px}.sbsprite-spooky_bait { background-position: -572px -88px}.sbsprite-killer_10 { background-position: -594px -88px}.sbsprite-fast_travel_howl { background-position: -616px -88px}.sbsprite-etherwarp_conduit { background-position: -638px -88px}.sbsprite-forest_island_crystal { background-position: -660px -88px}.sbsprite-spirit_mask { background-position: -682px -88px}.sbsprite-sacks { background-position: -704px -88px}.sbsprite-obsidian_generator_10 { background-position: -726px -88px}.sbsprite-chicken_generator_10 { background-position: -748px -88px}.sbsprite-chicken_generator_12 { background-position: -770px -88px}.sbsprite-wood_singularity { background-position: -792px -88px}.sbsprite-chicken_generator_11 { background-position: -814px -88px}.sbsprite-sun_6 { background-position: -836px -88px}.sbsprite-builder_melon { background-position: -858px -88px}.sbsprite-santa_1 { background-position: -880px -88px}.sbsprite-sun_5 { background-position: -902px -88px}.sbsprite-dirt_bottle { background-position: -924px -88px}.sbsprite-sun_4 { background-position: -946px -88px}.sbsprite-handy_blood_chalice { background-position: -968px -88px}.sbsprite-sun_3 { background-position: -990px -88px}.sbsprite-sun_9 { background-position: -1012px -88px}.sbsprite-superior_fragment { background-position: -1034px -88px}.sbsprite-sun_8 { background-position: 0 -110px}.sbsprite-sun_7 { background-position: -22px -110px}.sbsprite-your_essence { background-position: -44px -110px}.sbsprite-pink_greater_backpack { background-position: -66px -110px}.sbsprite-unstable_fragment { background-position: -88px -110px}.sbsprite-obsidian_generator_11 { background-position: -110px -110px}.sbsprite-obsidian_generator_12 { background-position: -132px -110px}.sbsprite-perfect_sapphire_gem { background-position: -154px -110px}.sbsprite-gravel_generator_11 { background-position: -176px -110px}.sbsprite-gravel_generator_10 { background-position: -198px -110px}.sbsprite-candy_corn { background-position: -220px -110px}.sbsprite-mineral_talisman { background-position: -242px -110px}.sbsprite-divan_alloy { background-position: -264px -110px}.sbsprite-moil_log { background-position: -286px -110px}.sbsprite-super_magic_mushroom_soup { background-position: -308px -110px}.sbsprite-easter_basket { background-position: -330px -110px}.sbsprite-hunter_talisman { background-position: -352px -110px}.sbsprite-medium_potion_bag { background-position: -374px -110px}.sbsprite-pet_skin_megalodon_bullhead { background-position: -396px -110px}.sbsprite-broken_piggy_bank { background-position: -418px -110px}.sbsprite-mayor_technoblade { background-position: -440px -110px}.sbsprite-farming_talisman { background-position: -462px -110px}.sbsprite-flawed_sapphire_gem { background-position: -484px -110px}.sbsprite-light_blue_large_backpack { background-position: -506px -110px}.sbsprite-kindred { background-position: -528px -110px}.sbsprite-pocket_espresso_machine { background-position: -550px -110px}.sbsprite-overflux_power_orb { background-position: -572px -110px}.sbsprite-potato_spreading { background-position: -594px -110px}.sbsprite-acacia_generator_11 { background-position: -616px -110px}.sbsprite-birch_generator_6 { background-position: -638px -110px}.sbsprite-acacia_generator_10 { background-position: -660px -110px}.sbsprite-birch_generator_5 { background-position: -682px -110px}.sbsprite-birch_generator_4 { background-position: -704px -110px}.sbsprite-birch_generator_3 { background-position: -726px -110px}.sbsprite-holy_dragon_helmet { background-position: -748px -110px}.sbsprite-basketball_personality { background-position: -770px -110px}.sbsprite-birch_generator_9 { background-position: -792px -110px}.sbsprite-birch_generator_8 { background-position: -814px -110px}.sbsprite-birch_generator_7 { background-position: -836px -110px}.sbsprite-birch_generator_2 { background-position: -858px -110px}.sbsprite-birch_generator_1 { background-position: -880px -110px}.sbsprite-anubis { background-position: -902px -110px}.sbsprite-santa_8 { background-position: -924px -110px}.sbsprite-santa_9 { background-position: -946px -110px}.sbsprite-santa_6 { background-position: -968px -110px}.sbsprite-santa_7 { background-position: -990px -110px}.sbsprite-santa_4 { background-position: -1012px -110px}.sbsprite-candy_talisman { background-position: -1034px -110px}.sbsprite-santa_5 { background-position: 0 -132px}.sbsprite-santa_2 { background-position: -22px -132px}.sbsprite-santa_3 { background-position: -44px -132px}.sbsprite-small_combat_sack { background-position: -66px -132px}.sbsprite-speed_racer { background-position: -88px -132px}.sbsprite-pet_skin_parrot_blue_macaw { background-position: -110px -132px}.sbsprite-red_large_backpack { background-position: -132px -132px}.sbsprite-sea_archer_helmet { background-position: -154px -132px}.sbsprite-happy_mask { background-position: -176px -132px}.sbsprite-blue_large_backpack { background-position: -198px -132px}.sbsprite-enderman_generator_4 { background-position: -220px -132px}.sbsprite-enderman_generator_3 { background-position: -242px -132px}.sbsprite-enderman_generator_2 { background-position: -264px -132px}.sbsprite-enderman_generator_1 { background-position: -286px -132px}.sbsprite-enderman_generator_8 { background-position: -308px -132px}.sbsprite-enderman_generator_7 { background-position: -330px -132px}.sbsprite-enderman_generator_6 { background-position: -352px -132px}.sbsprite-enderman_generator_5 { background-position: -374px -132px}.sbsprite-green_candy { background-position: -396px -132px}.sbsprite-bestiary_milestone { background-position: -418px -132px}.sbsprite-colossal_exp_bottle_upgrade { background-position: -440px -132px}.sbsprite-sun_11 { background-position: -462px -132px}.sbsprite-sun_10 { background-position: -484px -132px}.sbsprite-vampire_witch_mask { background-position: -506px -132px}.sbsprite-pet_skin_sheep_yellow { background-position: -528px -132px}.sbsprite-bank_upgrade_palatial { background-position: -550px -132px}.sbsprite-flawed_ruby_gem { background-position: -572px -132px}.sbsprite-redstone_generator_9 { background-position: -594px -132px}.sbsprite-redstone_generator_7 { background-position: -616px -132px}.sbsprite-redstone_generator_8 { background-position: -638px -132px}.sbsprite-arachne_fragment { background-position: -660px -132px}.sbsprite-spider_generator_10 { background-position: -682px -132px}.sbsprite-spider_generator_11 { background-position: -704px -132px}.sbsprite-epoch_cake_red { background-position: -726px -132px}.sbsprite-orange_jumbo_backpack { background-position: -748px -132px}.sbsprite-giant_the_fish { background-position: -770px -132px}.sbsprite-minnow_bait { background-position: -792px -132px}.sbsprite-enderman_generator_9 { background-position: -814px -132px}.sbsprite-mastiff_puppy { background-position: -836px -132px}.sbsprite-talisman_enrichment_critical_damage { background-position: -858px -132px}.sbsprite-fast_travel_forge { background-position: -880px -132px}.sbsprite-goblin_omelette { background-position: -902px -132px}.sbsprite-builder_ancient_fruit { background-position: -924px -132px}.sbsprite-master_skull_tier_10 { background-position: -946px -132px}.sbsprite-hardened_wood { background-position: -968px -132px}.sbsprite-large_winter_sack { background-position: -990px -132px}.sbsprite-talisman_enrichment_intelligence { background-position: -1012px -132px}.sbsprite-snow_snowglobe { background-position: -1034px -132px}.sbsprite-summoning_eye { background-position: 0 -154px}.sbsprite-cavespider_generator_10 { background-position: -22px -154px}.sbsprite-clownfish_10 { background-position: -44px -154px}.sbsprite-cavespider_generator_11 { background-position: -66px -154px}.sbsprite-revenant_generator_12 { background-position: -88px -154px}.sbsprite-clownfish_11 { background-position: -110px -154px}.sbsprite-revenant_generator_11 { background-position: -132px -154px}.sbsprite-revenant_generator_10 { background-position: -154px -154px}.sbsprite-red_small_backpack { background-position: -176px -154px}.sbsprite-soulflow { background-position: -198px -154px}.sbsprite-farming_fortune { background-position: -220px -154px}.sbsprite-dungeon_stone_berserk { background-position: -242px -154px}.sbsprite-green_greater_backpack { background-position: -264px -154px}.sbsprite-mastiff_helmet { background-position: -286px -154px}.sbsprite-purple { background-position: -308px -154px}.sbsprite-skeleton_generator_7 { background-position: -330px -154px}.sbsprite-skeleton_generator_6 { background-position: -352px -154px}.sbsprite-skeleton_generator_9 { background-position: -374px -154px}.sbsprite-skeleton_generator_8 { background-position: -396px -154px}.sbsprite-speed_ring { background-position: -418px -154px}.sbsprite-skeleton_generator_3 { background-position: -440px -154px}.sbsprite-rabbit_hutch { background-position: -462px -154px}.sbsprite-skeleton_generator_2 { background-position: -484px -154px}.sbsprite-skeleton_generator_5 { background-position: -506px -154px}.sbsprite-minion_storage_expander { background-position: -528px -154px}.sbsprite-skeleton_generator_4 { background-position: -550px -154px}.sbsprite-werewolf_helmet { background-position: -572px -154px}.sbsprite-light_blue_small_backpack { background-position: -594px -154px}.sbsprite-skeleton_generator_1 { background-position: -616px -154px}.sbsprite-lapis_chest { background-position: -638px -154px}.sbsprite-healing_talisman { background-position: -660px -154px}.sbsprite-magma_cube_head { background-position: -682px -154px}.sbsprite-shadow_goggles { background-position: -704px -154px}.sbsprite-ice_generator_11 { background-position: -726px -154px}.sbsprite-fine_jasper_gem { background-position: -748px -154px}.sbsprite-candy_artifact { background-position: -770px -154px}.sbsprite-pet_skin_dragon_neon_blue { background-position: -792px -154px}.sbsprite-fast_travel_desert { background-position: -814px -154px}.sbsprite-rune_end { background-position: -836px -154px}.sbsprite-old_shimmer { background-position: -858px -154px}.sbsprite-skyblock_bench { background-position: -880px -154px}.sbsprite-hay_bale { background-position: -902px -154px}.sbsprite-crit_chance { background-position: -924px -154px}.sbsprite-dungeon_stone { background-position: -946px -154px}.sbsprite-artifact_potion_affinity { background-position: -968px -154px}.sbsprite-yoggie { background-position: -990px -154px}.sbsprite-starred_adaptive_helmet { background-position: -1012px -154px}.sbsprite-foraging_3_portal { background-position: -1034px -154px}.sbsprite-pet_skin_dragon_neon_red { background-position: 0 -176px}.sbsprite-ditto_skull { background-position: -22px -176px}.sbsprite-pig_generator_6 { background-position: -44px -176px}.sbsprite-redstone_generator_1 { background-position: -66px -176px}.sbsprite-pig_generator_5 { background-position: -88px -176px}.sbsprite-redstone_generator_2 { background-position: -110px -176px}.sbsprite-pig_generator_8 { background-position: -132px -176px}.sbsprite-pig_generator_7 { background-position: -154px -176px}.sbsprite-flawless_amethyst_gem { background-position: -176px -176px}.sbsprite-redstone_generator_5 { background-position: -198px -176px}.sbsprite-wither_catalyst { background-position: -220px -176px}.sbsprite-pig_generator_9 { background-position: -242px -176px}.sbsprite-redstone_generator_6 { background-position: -264px -176px}.sbsprite-cyan_jumbo_backpack { background-position: -286px -176px}.sbsprite-redstone_generator_3 { background-position: -308px -176px}.sbsprite-redstone_generator_4 { background-position: -330px -176px}.sbsprite-ice_generator_10 { background-position: -352px -176px}.sbsprite-pig_generator_2 { background-position: -374px -176px}.sbsprite-builder_lettuce { background-position: -396px -176px}.sbsprite-first_master_star { background-position: -418px -176px}.sbsprite-pig_generator_1 { background-position: -440px -176px}.sbsprite-pig_generator_4 { background-position: -462px -176px}.sbsprite-green_medium_backpack { background-position: -484px -176px}.sbsprite-pig_generator_3 { background-position: -506px -176px}.sbsprite-sugar_cane_generator_9 { background-position: -528px -176px}.sbsprite-greater_backpack { background-position: -550px -176px}.sbsprite-sugar_cane_generator_6 { background-position: -572px -176px}.sbsprite-sugar_cane_generator_5 { background-position: -594px -176px}.sbsprite-pet_skin_sheep_neon_blue { background-position: -616px -176px}.sbsprite-sugar_cane_generator_8 { background-position: -638px -176px}.sbsprite-sugar_cane_generator_7 { background-position: -660px -176px}.sbsprite-sugar_cane_generator_2 { background-position: -682px -176px}.sbsprite-sugar_cane_generator_1 { background-position: -704px -176px}.sbsprite-cauldron { background-position: -726px -176px}.sbsprite-sugar_cane_generator_4 { background-position: -748px -176px}.sbsprite-sugar_cane_generator_3 { background-position: -770px -176px}.sbsprite-wheat_island_crystal { background-position: -792px -176px}.sbsprite-boss_collection_scarf { background-position: -814px -176px}.sbsprite-deep_sea_orb { background-position: -836px -176px}.sbsprite-pet_skin_elephant_red { background-position: -858px -176px}.sbsprite-pink_large_backpack { background-position: -880px -176px}.sbsprite-gemstone_collection { background-position: -902px -176px}.sbsprite-carpentry_bench { background-position: -924px -176px}.sbsprite-pet_skin_wolf_henzo_doggo { background-position: -946px -176px}.sbsprite-sloth_11 { background-position: -968px -176px}.sbsprite-sloth_10 { background-position: -990px -176px}.sbsprite-vampire_mask { background-position: -1012px -176px}.sbsprite-reindeer_personality { background-position: -1034px -176px}.sbsprite-minos_hunter_helmet { background-position: 0 -198px}.sbsprite-catacombs_2 { background-position: -22px -198px}.sbsprite-catacombs_3 { background-position: -44px -198px}.sbsprite-catacombs_1 { background-position: -66px -198px}.sbsprite-catacombs_6 { background-position: -88px -198px}.sbsprite-small_runes_sack { background-position: -110px -198px}.sbsprite-catacombs_4 { background-position: -132px -198px}.sbsprite-catacombs_5 { background-position: -154px -198px}.sbsprite-clownfish_hat { background-position: -176px -198px}.sbsprite-fine_topaz_gem { background-position: -198px -198px}.sbsprite-beastmaster_crest_uncommon { background-position: -220px -198px}.sbsprite-superlite_motor { background-position: -242px -198px}.sbsprite-red_greater_backpack { background-position: -264px -198px}.sbsprite-hunter_ring { background-position: -286px -198px}.sbsprite-necromancer_brooch { background-position: -308px -198px}.sbsprite-spooky_shard { background-position: -330px -198px}.sbsprite-grey_medium_backpack { background-position: -352px -198px}.sbsprite-diamond_chest { background-position: -374px -198px}.sbsprite-slime_hat { background-position: -396px -198px}.sbsprite-hermit_crab_2 { background-position: -418px -198px}.sbsprite-enderman_cortex_rewriter { background-position: -440px -198px}.sbsprite-hermit_crab_1 { background-position: -462px -198px}.sbsprite-carrot_generator_11 { background-position: -484px -198px}.sbsprite-carrot_generator_12 { background-position: -506px -198px}.sbsprite-mushroom_generator_4 { background-position: -528px -198px}.sbsprite-carrot_generator_10 { background-position: -550px -198px}.sbsprite-mushroom_generator_3 { background-position: -572px -198px}.sbsprite-mushroom_generator_6 { background-position: -594px -198px}.sbsprite-mushroom_generator_5 { background-position: -616px -198px}.sbsprite-mushroom_generator_8 { background-position: -638px -198px}.sbsprite-mushroom_generator_7 { background-position: -660px -198px}.sbsprite-mushroom_generator_9 { background-position: -682px -198px}.sbsprite-diamond_professor_head { background-position: -704px -198px}.sbsprite-large_foraging_sack { background-position: -726px -198px}.sbsprite-robotron_reflector { background-position: -748px -198px}.sbsprite-wish_ultimate { background-position: -770px -198px}.sbsprite-tessellated_ender_pearl { background-position: -792px -198px}.sbsprite-pet_skin_sheep_red { background-position: -814px -198px}.sbsprite-spirit_decoy { background-position: -836px -198px}.sbsprite-stacked_pumpkins { background-position: -858px -198px}.sbsprite-medium_runes_sack { background-position: -880px -198px}.sbsprite-mushroom_generator_2 { background-position: -902px -198px}.sbsprite-young_dragon_helmet { background-position: -924px -198px}.sbsprite-mushroom_generator_1 { background-position: -946px -198px}.sbsprite-hermit_crab_6 { background-position: -968px -198px}.sbsprite-gravity_talisman { background-position: -990px -198px}.sbsprite-hermit_crab_5 { background-position: -1012px -198px}.sbsprite-hermit_crab_4 { background-position: -1034px -198px}.sbsprite-hermit_crab_3 { background-position: 0 -220px}.sbsprite-melon_10 { background-position: -22px -220px}.sbsprite-party_time_event { background-position: -44px -220px}.sbsprite-grinch_10 { background-position: -66px -220px}.sbsprite-melon_11 { background-position: -88px -220px}.sbsprite-hermit_crab_9 { background-position: -110px -220px}.sbsprite-hermit_crab_8 { background-position: -132px -220px}.sbsprite-grinch_11 { background-position: -154px -220px}.sbsprite-hermit_crab_7 { background-position: -176px -220px}.sbsprite-flower_generator_10 { background-position: -198px -220px}.sbsprite-race_giant_mushroom { background-position: -220px -220px}.sbsprite-flower_generator_11 { background-position: -242px -220px}.sbsprite-flower_generator_12 { background-position: -264px -220px}.sbsprite-redstone_chest { background-position: -286px -220px}.sbsprite-undead_catalyst { background-position: -308px -220px}.sbsprite-master_skull_tier_7 { background-position: -330px -220px}.sbsprite-reindeer_9 { background-position: -352px -220px}.sbsprite-master_skull_tier_6 { background-position: -374px -220px}.sbsprite-rune_slimy { background-position: -396px -220px}.sbsprite-master_skull_tier_9 { background-position: -418px -220px}.sbsprite-medium_shelves { background-position: -440px -220px}.sbsprite-master_skull_tier_8 { background-position: -462px -220px}.sbsprite-plasmaflux_power_orb { background-position: -484px -220px}.sbsprite-adaptive_helmet { background-position: -506px -220px}.sbsprite-pet_skin_endermite_radiant { background-position: -528px -220px}.sbsprite-master_skull_tier_1 { background-position: -550px -220px}.sbsprite-master_skull_tier_3 { background-position: -572px -220px}.sbsprite-oil_barrel { background-position: -594px -220px}.sbsprite-master_skull_tier_2 { background-position: -616px -220px}.sbsprite-master_skull_tier_5 { background-position: -638px -220px}.sbsprite-master_skull_tier_4 { background-position: -660px -220px}.sbsprite-pet_skin_guardian { background-position: -682px -220px}.sbsprite-flawless_jade_gem { background-position: -704px -220px}.sbsprite-survivor_cube { background-position: -726px -220px}.sbsprite-undead_2 { background-position: -748px -220px}.sbsprite-undead_3 { background-position: -770px -220px}.sbsprite-undead_4 { background-position: -792px -220px}.sbsprite-undead_5 { background-position: -814px -220px}.sbsprite-undead_6 { background-position: -836px -220px}.sbsprite-undead_7 { background-position: -858px -220px}.sbsprite-undead_8 { background-position: -880px -220px}.sbsprite-undead_9 { background-position: -902px -220px}.sbsprite-enchanted_book_bundle_vicious { background-position: -924px -220px}.sbsprite-endstone_chest { background-position: -946px -220px}.sbsprite-titanium_fuel_tank { background-position: -968px -220px}.sbsprite-golden_ball { background-position: -990px -220px}.sbsprite-undead_1 { background-position: -1012px -220px}.sbsprite-happy_emoji_5 { background-position: -1034px -220px}.sbsprite-reindeer_1 { background-position: 0 -242px}.sbsprite-warden_heart { background-position: -22px -242px}.sbsprite-happy_emoji_4 { background-position: -44px -242px}.sbsprite-reindeer_2 { background-position: -66px -242px}.sbsprite-happy_emoji_7 { background-position: -88px -242px}.sbsprite-reindeer_3 { background-position: -110px -242px}.sbsprite-happy_emoji_6 { background-position: -132px -242px}.sbsprite-kalhuiki_mask { background-position: -154px -242px}.sbsprite-reindeer_4 { background-position: -176px -242px}.sbsprite-happy_emoji_1 { background-position: -198px -242px}.sbsprite-reindeer_5 { background-position: -220px -242px}.sbsprite-reindeer_6 { background-position: -242px -242px}.sbsprite-happy_emoji_3 { background-position: -264px -242px}.sbsprite-reindeer_7 { background-position: -286px -242px}.sbsprite-happy_emoji_2 { background-position: -308px -242px}.sbsprite-reindeer_8 { background-position: -330px -242px}.sbsprite-happy_emoji_9 { background-position: -352px -242px}.sbsprite-festive_skeleton_personality { background-position: -374px -242px}.sbsprite-happy_emoji_8 { background-position: -396px -242px}.sbsprite-mimic_fragment { background-position: -418px -242px}.sbsprite-pet_skin_parrot_gold_macaw { background-position: -440px -242px}.sbsprite-mithril_drill_engine { background-position: -462px -242px}.sbsprite-titan_helmet { background-position: -484px -242px}.sbsprite-warden_helmet { background-position: -506px -242px}.sbsprite-nether_wart_pouch { background-position: -528px -242px}.sbsprite-red_nose { background-position: -550px -242px}.sbsprite-emerald_generator_12 { background-position: -572px -242px}.sbsprite-farming_1_portal { background-position: -594px -242px}.sbsprite-pet_skin_horse_zombie { background-position: -616px -242px}.sbsprite-devour_ring { background-position: -638px -242px}.sbsprite-mining_1_portal { background-position: -660px -242px}.sbsprite-builder_lilac_fruit { background-position: -682px -242px}.sbsprite-diamond_livid_head { background-position: -704px -242px}.sbsprite-fast_travel_dungeon_hub { background-position: -726px -242px}.sbsprite-emerald_generator_10 { background-position: -748px -242px}.sbsprite-emerald_generator_11 { background-position: -770px -242px}.sbsprite-bestiary_catacombs { background-position: -792px -242px}.sbsprite-fine_amber_gem { background-position: -814px -242px}.sbsprite-beach_ball_personality { background-position: -836px -242px}.sbsprite-cow_generator_11 { background-position: -858px -242px}.sbsprite-cow_generator_12 { background-position: -880px -242px}.sbsprite-mummy_personality { background-position: -902px -242px}.sbsprite-rune_wet { background-position: -924px -242px}.sbsprite-jumbo_backpack_upgrade { background-position: -946px -242px}.sbsprite-shadow_assassin_admiral { background-position: -968px -242px}.sbsprite-beating_heart { background-position: -990px -242px}.sbsprite-giant_tooth { background-position: -1012px -242px}.sbsprite-black_large_backpack { background-position: -1034px -242px}.sbsprite-corleonite { background-position: 0 -264px}.sbsprite-magma_cube_generator_1 { background-position: -22px -264px}.sbsprite-magma_cube_generator_5 { background-position: -44px -264px}.sbsprite-gold_candy { background-position: -66px -264px}.sbsprite-magma_cube_generator_4 { background-position: -88px -264px}.sbsprite-magma_cube_generator_3 { background-position: -110px -264px}.sbsprite-magma_cube_generator_2 { background-position: -132px -264px}.sbsprite-magma_cube_generator_9 { background-position: -154px -264px}.sbsprite-dining_table { background-position: -176px -264px}.sbsprite-magma_cube_generator_8 { background-position: -198px -264px}.sbsprite-magma_cube_generator_7 { background-position: -220px -264px}.sbsprite-magma_cube_generator_6 { background-position: -242px -264px}.sbsprite-sadan_brooch { background-position: -264px -264px}.sbsprite-birch_generator_11 { background-position: -286px -264px}.sbsprite-birch_generator_10 { background-position: -308px -264px}.sbsprite-strong_dragon_helmet { background-position: -330px -264px}.sbsprite-greater_enchanted_chest_upgrade { background-position: -352px -264px}.sbsprite-pink_frosted_donut_11 { background-position: -374px -264px}.sbsprite-molten_cube { background-position: -396px -264px}.sbsprite-pink_frosted_donut_10 { background-position: -418px -264px}.sbsprite-ultimate_carrot_candy_upgrade { background-position: -440px -264px}.sbsprite-old_baby { background-position: -462px -264px}.sbsprite-coin_lapis { background-position: -484px -264px}.sbsprite-superior_shimmer { background-position: -506px -264px}.sbsprite-diver_fragment { background-position: -528px -264px}.sbsprite-blue_greater_backpack { background-position: -550px -264px}.sbsprite-piggy_bank { background-position: -572px -264px}.sbsprite-flawed_jade_gem { background-position: -594px -264px}.sbsprite-dungeon_boss_key { background-position: -616px -264px}.sbsprite-spider_catalyst { background-position: -638px -264px}.sbsprite-shark_scale_helmet { background-position: -660px -264px}.sbsprite-ghost_book { background-position: -682px -264px}.sbsprite-titanium_alloy { background-position: -704px -264px}.sbsprite-pet_skin_enderman_slayer { background-position: -726px -264px}.sbsprite-hegemony_artifact { background-position: -748px -264px}.sbsprite-potion_affinity_talisman { background-position: -770px -264px}.sbsprite-trick_or_treat_bag { background-position: -792px -264px}.sbsprite-fake_gold_ring { background-position: -814px -264px}.sbsprite-dr_paper { background-position: -836px -264px}.sbsprite-fuel_tank { background-position: -858px -264px}.sbsprite-rough_amethyst_gem { background-position: -880px -264px}.sbsprite-flawless_sapphire_gem { background-position: -902px -264px}.sbsprite-pink_small_backpack { background-position: -924px -264px}.sbsprite-cow_generator_10 { background-position: -946px -264px}.sbsprite-mithril_infusion { background-position: -968px -264px}.sbsprite-beastmaster_crest_common { background-position: -990px -264px}.sbsprite-shiny_relic { background-position: -1012px -264px}.sbsprite-concentrated_stone { background-position: -1034px -264px}.sbsprite-sloth_personality { background-position: 0 -286px}.sbsprite-stocking { background-position: -22px -286px}.sbsprite-egg_pile { background-position: -44px -286px}.sbsprite-blessing_of_wisdom { background-position: -66px -286px}.sbsprite-happy_snowman { background-position: -88px -286px}.sbsprite-gingerbread_10 { background-position: -110px -286px}.sbsprite-gingerbread_11 { background-position: -132px -286px}.sbsprite-diamond_generator_11 { background-position: -154px -286px}.sbsprite-diamond_generator_10 { background-position: -176px -286px}.sbsprite-medium_backpack { background-position: -198px -286px}.sbsprite-rune_white_spiral { background-position: -220px -286px}.sbsprite-diamond_generator_12 { background-position: -242px -286px}.sbsprite-blacksmith_plus { background-position: -264px -286px}.sbsprite-light_blue_greater_backpack { background-position: -286px -286px}.sbsprite-watcher_eye { background-position: -308px -286px}.sbsprite-pet_skin_silverfish { background-position: -330px -286px}.sbsprite-rough_ruby_gem { background-position: -352px -286px}.sbsprite-fine_amethyst_gem { background-position: -374px -286px}.sbsprite-flawed_topaz_gem { background-position: -396px -286px}.sbsprite-spirit_bone { background-position: -418px -286px}.sbsprite-snow_blaster { background-position: -440px -286px}.sbsprite-unknown_item { background-position: -462px -286px}.sbsprite-spider_essence { background-position: -484px -286px}.sbsprite-light_bait { background-position: -506px -286px}.sbsprite-beastmaster_crest_legendary { background-position: -528px -286px}.sbsprite-mayor_diana { background-position: -550px -286px}.sbsprite-enchanted_jack_o_lantern { background-position: -572px -286px}.sbsprite-medium_foraging_sack { background-position: -594px -286px}.sbsprite-emerald_chest { background-position: -616px -286px}.sbsprite-carrot_generator_6 { background-position: -638px -286px}.sbsprite-reindeer_11 { background-position: -660px -286px}.sbsprite-carrot_generator_7 { background-position: -682px -286px}.sbsprite-reindeer_10 { background-position: -704px -286px}.sbsprite-carrot_generator_4 { background-position: -726px -286px}.sbsprite-carrot_generator_5 { background-position: -748px -286px}.sbsprite-carrot_generator_2 { background-position: -770px -286px}.sbsprite-carrot_generator_3 { background-position: -792px -286px}.sbsprite-carrot_generator_1 { background-position: -814px -286px}.sbsprite-carrot_generator_8 { background-position: -836px -286px}.sbsprite-dragon_scale { background-position: -858px -286px}.sbsprite-carrot_generator_9 { background-position: -880px -286px}.sbsprite-protector_dragon_helmet { background-position: -902px -286px}.sbsprite-rune_hearts { background-position: -924px -286px}.sbsprite-pet_skin_sheep_magenta { background-position: -946px -286px}.sbsprite-shadow_assassin_helmet { background-position: -968px -286px}.sbsprite-gemstone_gauntlet_gold { background-position: -990px -286px}.sbsprite-lucky_dice { background-position: -1012px -286px}.sbsprite-wolf_ring { background-position: -1034px -286px}.sbsprite-haunt_ability { background-position: 0 -308px}.sbsprite-undead_essence { background-position: -22px -308px}.sbsprite-bitter_ice_tea { background-position: -44px -308px}.sbsprite-beastmaster_crest_rare { background-position: -66px -308px}.sbsprite-enchanted_titanium { background-position: -88px -308px}.sbsprite-red_claw_talisman { background-position: -110px -308px}.sbsprite-intimidation_talisman { background-position: -132px -308px}.sbsprite-ice_bait { background-position: -154px -308px}.sbsprite-empty_soda_can { background-position: -176px -308px}.sbsprite-jerry_candy { background-position: -198px -308px}.sbsprite-ghast_generator_3 { background-position: -220px -308px}.sbsprite-fancy_flower_pot { background-position: -242px -308px}.sbsprite-ghast_generator_2 { background-position: -264px -308px}.sbsprite-cyan_greater_backpack { background-position: -286px -308px}.sbsprite-ghast_generator_5 { background-position: -308px -308px}.sbsprite-ghast_generator_4 { background-position: -330px -308px}.sbsprite-ghast_generator_7 { background-position: -352px -308px}.sbsprite-cold_ones { background-position: -374px -308px}.sbsprite-ghast_generator_6 { background-position: -396px -308px}.sbsprite-mega_jerry_lure { background-position: -418px -308px}.sbsprite-ghast_generator_9 { background-position: -440px -308px}.sbsprite-rune_smokey { background-position: -462px -308px}.sbsprite-ghast_generator_8 { background-position: -484px -308px}.sbsprite-healer_dungeon_ability_2 { background-position: -506px -308px}.sbsprite-healer_dungeon_ability_3 { background-position: -528px -308px}.sbsprite-ghast_generator_1 { background-position: -550px -308px}.sbsprite-brown_medium_backpack { background-position: -572px -308px}.sbsprite-healer_dungeon_ability_1 { background-position: -594px -308px}.sbsprite-ice_cream_2 { background-position: -616px -308px}.sbsprite-ice_cream_1 { background-position: -638px -308px}.sbsprite-ice_cream_4 { background-position: -660px -308px}.sbsprite-ice_cream_3 { background-position: -682px -308px}.sbsprite-ice_cream_6 { background-position: -704px -308px}.sbsprite-ice_cream_5 { background-position: -726px -308px}.sbsprite-ice_cream_8 { background-position: -748px -308px}.sbsprite-ice_cream_7 { background-position: -770px -308px}.sbsprite-ice_cream_9 { background-position: -792px -308px}.sbsprite-ice_cream_10 { background-position: -814px -308px}.sbsprite-ice_cream_11 { background-position: -836px -308px}.sbsprite-coin_iron { background-position: -858px -308px}.sbsprite-chewed_gum { background-position: -880px -308px}.sbsprite-training_weights { background-position: -902px -308px}.sbsprite-orange_large_backpack { background-position: -924px -308px}.sbsprite-campfire_talisman_24 { background-position: -946px -308px}.sbsprite-campfire_talisman_25 { background-position: -968px -308px}.sbsprite-campfire_talisman_26 { background-position: -990px -308px}.sbsprite-campfire_talisman_27 { background-position: -1012px -308px}.sbsprite-campfire_talisman_28 { background-position: -1034px -308px}.sbsprite-campfire_talisman_29 { background-position: 0 -330px}.sbsprite-candle_table { background-position: -22px -330px}.sbsprite-jingle_bells { background-position: -44px -330px}.sbsprite-lynx_talisman { background-position: -66px -330px}.sbsprite-campfire_talisman_20 { background-position: -88px -330px}.sbsprite-campfire_talisman_21 { background-position: -110px -330px}.sbsprite-campfire_talisman_22 { background-position: -132px -330px}.sbsprite-campfire_talisman_23 { background-position: -154px -330px}.sbsprite-perfect_ruby_gem { background-position: -176px -330px}.sbsprite-pet_skin_megalodon_baby { background-position: -198px -330px}.sbsprite-jungle_amulet { background-position: -220px -330px}.sbsprite-reaper_mask { background-position: -242px -330px}.sbsprite-enchanting_plus { background-position: -264px -330px}.sbsprite-catacombs_expert_ring { background-position: -286px -330px}.sbsprite-ice_knight_statue { background-position: -308px -330px}.sbsprite-bits_talisman { background-position: -330px -330px}.sbsprite-dark_orb { background-position: -352px -330px}.sbsprite-blessing_of_power { background-position: -374px -330px}.sbsprite-beastmaster_crest_epic { background-position: -396px -330px}.sbsprite-bulky_stone { background-position: -418px -330px}.sbsprite-yellow_small_backpack { background-position: -440px -330px}.sbsprite-small_potion_bag { background-position: -462px -330px}.sbsprite-green_jumbo_backpack { background-position: -484px -330px}.sbsprite-zombie_heart { background-position: -506px -330px}.sbsprite-pet_skin_black_cat_ivory { background-position: -528px -330px}.sbsprite-titanium_relic { background-position: -550px -330px}.sbsprite-fast_travel_jungle { background-position: -572px -330px}.sbsprite-pet_skin_rabbit { background-position: -594px -330px}.sbsprite-enderman_mask { background-position: -616px -330px}.sbsprite-perfect_amethyst_gem { background-position: -638px -330px}.sbsprite-boss_collection_sadan { background-position: -660px -330px}.sbsprite-blessing_of_stone { background-position: -682px -330px}.sbsprite-master_catacombs_pass_0 { background-position: -704px -330px}.sbsprite-snowman { background-position: -726px -330px}.sbsprite-candy_the_fish { background-position: -748px -330px}.sbsprite-gold_chest { background-position: -770px -330px}.sbsprite-master_catacombs_pass_6 { background-position: -792px -330px}.sbsprite-master_catacombs_pass_5 { background-position: -814px -330px}.sbsprite-master_catacombs_pass_8 { background-position: -836px -330px}.sbsprite-master_catacombs_pass_7 { background-position: -858px -330px}.sbsprite-master_catacombs_pass_2 { background-position: -880px -330px}.sbsprite-master_catacombs_pass_1 { background-position: -902px -330px}.sbsprite-master_catacombs_pass_4 { background-position: -924px -330px}.sbsprite-master_catacombs_pass_3 { background-position: -946px -330px}.sbsprite-candy_bowl { background-position: -968px -330px}.sbsprite-large_talisman_bag { background-position: -990px -330px}.sbsprite-secret_dungeon_redstone_key { background-position: -1012px -330px}.sbsprite-knockoff_cola { background-position: -1034px -330px}.sbsprite-grinch_2 { background-position: 0 -352px}.sbsprite-grinch_3 { background-position: -22px -352px}.sbsprite-grinch_4 { background-position: -44px -352px}.sbsprite-personal_bank_item { background-position: -66px -352px}.sbsprite-grinch_5 { background-position: -88px -352px}.sbsprite-grinch_6 { background-position: -110px -352px}.sbsprite-blessing_of_time { background-position: -132px -352px}.sbsprite-grinch_7 { background-position: -154px -352px}.sbsprite-grinch_8 { background-position: -176px -352px}.sbsprite-grinch_9 { background-position: -198px -352px}.sbsprite-crit_damage { background-position: -220px -352px}.sbsprite-grinch_1 { background-position: -242px -352px}.sbsprite-bunny_4 { background-position: -264px -352px}.sbsprite-bunny_3 { background-position: -286px -352px}.sbsprite-the_watchers_head { background-position: -308px -352px}.sbsprite-bunny_2 { background-position: -330px -352px}.sbsprite-bunny_1 { background-position: -352px -352px}.sbsprite-bunny_8 { background-position: -374px -352px}.sbsprite-bunny_7 { background-position: -396px -352px}.sbsprite-master_catacombs_pass_9 { background-position: -418px -352px}.sbsprite-bat_person_helmet { background-position: -440px -352px}.sbsprite-bunny_6 { background-position: -462px -352px}.sbsprite-bunny_5 { background-position: -484px -352px}.sbsprite-refined_amber { background-position: -506px -352px}.sbsprite-pet_skin_rock_derp { background-position: -528px -352px}.sbsprite-pet_skin_sheep_gray { background-position: -550px -352px}.sbsprite-flawed_amber_gem { background-position: -572px -352px}.sbsprite-pumpkin_11 { background-position: -594px -352px}.sbsprite-pumpkin_10 { background-position: -616px -352px}.sbsprite-white_small_backpack { background-position: -638px -352px}.sbsprite-blaze_hat { background-position: -660px -352px}.sbsprite-woodcutting_crystal { background-position: -682px -352px}.sbsprite-bunny_9 { background-position: -704px -352px}.sbsprite-roofed_forest_island { background-position: -726px -352px}.sbsprite-campfire_talisman_13 { background-position: -748px -352px}.sbsprite-campfire_talisman_14 { background-position: -770px -352px}.sbsprite-rune_lava { background-position: -792px -352px}.sbsprite-campfire_talisman_15 { background-position: -814px -352px}.sbsprite-campfire_talisman_16 { background-position: -836px -352px}.sbsprite-campfire_talisman_17 { background-position: -858px -352px}.sbsprite-campfire_talisman_18 { background-position: -880px -352px}.sbsprite-golden_dante_statue { background-position: -902px -352px}.sbsprite-campfire_talisman_19 { background-position: -924px -352px}.sbsprite-foraging_4_portal { background-position: -946px -352px}.sbsprite-new_year_cake_bag { background-position: -968px -352px}.sbsprite-santa_personality { background-position: -990px -352px}.sbsprite-campfire_talisman_10 { background-position: -1012px -352px}.sbsprite-campfire_talisman_11 { background-position: -1034px -352px}.sbsprite-campfire_talisman_12 { background-position: 0 -374px}.sbsprite-jerry_stone { background-position: -22px -374px}.sbsprite-cyclops_personality { background-position: -44px -374px}.sbsprite-desert_island_crystal { background-position: -66px -374px}.sbsprite-happy_emoji_personality { background-position: -88px -374px}.sbsprite-rough_sapphire_gem { background-position: -110px -374px}.sbsprite-fallen_star_hat { background-position: -132px -374px}.sbsprite-blaze_generator_10 { background-position: -154px -374px}.sbsprite-blaze_generator_11 { background-position: -176px -374px}.sbsprite-goblin_omelette_blue_cheese { background-position: -198px -374px}.sbsprite-treasure_artifact { background-position: -220px -374px}.sbsprite-hermit_crab_personality { background-position: -242px -374px}.sbsprite-orange { background-position: -264px -374px}.sbsprite-pond_island { background-position: -286px -374px}.sbsprite-fast_travel_void { background-position: -308px -374px}.sbsprite-transmission_tuner { background-position: -330px -374px}.sbsprite-bestiary_the_end { background-position: -352px -374px}.sbsprite-danger_1_portal { background-position: -374px -374px}.sbsprite-pink_jumbo_backpack { background-position: -396px -374px}.sbsprite-sea_walker_helmet { background-position: -418px -374px}.sbsprite-wise_fragment { background-position: -440px -374px}.sbsprite-jerry_talisman_golden { background-position: -462px -374px}.sbsprite-superior_baby { background-position: -484px -374px}.sbsprite-flower_bed { background-position: -506px -374px}.sbsprite-cactus_generator_1 { background-position: -528px -374px}.sbsprite-endstone_geode { background-position: -550px -374px}.sbsprite-holy_baby { background-position: -572px -374px}.sbsprite-cactus_generator_3 { background-position: -594px -374px}.sbsprite-cactus_generator_2 { background-position: -616px -374px}.sbsprite-cactus_generator_5 { background-position: -638px -374px}.sbsprite-cactus_generator_4 { background-position: -660px -374px}.sbsprite-cactus_generator_7 { background-position: -682px -374px}.sbsprite-cactus_generator_6 { background-position: -704px -374px}.sbsprite-cactus_generator_9 { background-position: -726px -374px}.sbsprite-protector_shimmer { background-position: -748px -374px}.sbsprite-cactus_generator_8 { background-position: -770px -374px}.sbsprite-rune_sparkling { background-position: -792px -374px}.sbsprite-bingo_ring { background-position: -814px -374px}.sbsprite-griffin_upgrade_stone_rare { background-position: -836px -374px}.sbsprite-chick_nest { background-position: -858px -374px}.sbsprite-solved_prism { background-position: -880px -374px}.sbsprite-king_talisman { background-position: -902px -374px}.sbsprite-treasure_ring { background-position: -924px -374px}.sbsprite-black_medium_backpack { background-position: -946px -374px}.sbsprite-surfboard { background-position: -968px -374px}.sbsprite-mithril_fuel_tank { background-position: -990px -374px}.sbsprite-fast_travel_home { background-position: -1012px -374px}.sbsprite-water_trough { background-position: -1034px -374px}.sbsprite-mayor_dante { background-position: 0 -396px}.sbsprite-cheese_fuel { background-position: -22px -396px}.sbsprite-pet_skin_lion_lioness { background-position: -44px -396px}.sbsprite-pink_bunny_personality { background-position: -66px -396px}.sbsprite-goldor_the_fish { background-position: -88px -396px}.sbsprite-speed_wither_helmet { background-position: -110px -396px}.sbsprite-pink_medium_backpack { background-position: -132px -396px}.sbsprite-mayor_derpy { background-position: -154px -396px}.sbsprite-talisman_enrichment_health { background-position: -176px -396px}.sbsprite-enderpack { background-position: -198px -396px}.sbsprite-pet_skin_rock_thinking { background-position: -220px -396px}.sbsprite-soul_fragment { background-position: -242px -396px}.sbsprite-skyblock_chair { background-position: -264px -396px}.sbsprite-mayor_paul { background-position: -286px -396px}.sbsprite-autopet_rules_2 { background-position: -308px -396px}.sbsprite-bat_talisman { background-position: -330px -396px}.sbsprite-killer_4 { background-position: -352px -396px}.sbsprite-killer_5 { background-position: -374px -396px}.sbsprite-killer_6 { background-position: -396px -396px}.sbsprite-killer_7 { background-position: -418px -396px}.sbsprite-killer_8 { background-position: -440px -396px}.sbsprite-killer_9 { background-position: -462px -396px}.sbsprite-builder_appalled_pumpkin { background-position: -484px -396px}.sbsprite-holy_shimmer { background-position: -506px -396px}.sbsprite-royal_pigeon { background-position: -528px -396px}.sbsprite-life_preserver { background-position: -550px -396px}.sbsprite-killer_1 { background-position: -572px -396px}.sbsprite-killer_2 { background-position: -594px -396px}.sbsprite-killer_3 { background-position: -616px -396px}.sbsprite-pet_skin_rock_cool { background-position: -638px -396px}.sbsprite-dingy { background-position: -660px -396px}.sbsprite-intimidation_ring { background-position: -682px -396px}.sbsprite-easter_egg_6 { background-position: -704px -396px}.sbsprite-builder_kiwi { background-position: -726px -396px}.sbsprite-easter_egg_5 { background-position: -748px -396px}.sbsprite-easter_egg_4 { background-position: -770px -396px}.sbsprite-rough_jade_gem { background-position: -792px -396px}.sbsprite-easter_egg_3 { background-position: -814px -396px}.sbsprite-easter_egg_2 { background-position: -836px -396px}.sbsprite-easter_egg_1 { background-position: -858px -396px}.sbsprite-snow_generator_11 { background-position: -880px -396px}.sbsprite-snow_generator_10 { background-position: -902px -396px}.sbsprite-easter_egg_9 { background-position: -924px -396px}.sbsprite-easter_egg_8 { background-position: -946px -396px}.sbsprite-easter_egg_7 { background-position: -968px -396px}.sbsprite-medium_gemstone_sack { background-position: -990px -396px}.sbsprite-large_enchanted_agronomy_sack { background-position: -1012px -396px}.sbsprite-blessed_fruit { background-position: -1034px -396px}.sbsprite-dungeon_stone_archer { background-position: 0 -418px}.sbsprite-arrow_swapper { background-position: -22px -418px}.sbsprite-snow_cannon { background-position: -44px -418px}.sbsprite-jerry_box_mega { background-position: -66px -418px}.sbsprite-pet_skin_sheep_brown { background-position: -88px -418px}.sbsprite-brewing_plus { background-position: -110px -418px}.sbsprite-mayor_barry { background-position: -132px -418px}.sbsprite-bat_ring { background-position: -154px -418px}.sbsprite-candle_arch { background-position: -176px -418px}.sbsprite-mithril_plate { background-position: -198px -418px}.sbsprite-carrot_bait { background-position: -220px -418px}.sbsprite-speed_artifact { background-position: -242px -418px}.sbsprite-salmon_hat { background-position: -264px -418px}.sbsprite-mini_sandcastle { background-position: -286px -418px}.sbsprite-scavenger_talisman { background-position: -308px -418px}.sbsprite-fast_travel_kuudra { background-position: -330px -418px}.sbsprite-foraging_fortune { background-position: -352px -418px}.sbsprite-bunny_personality { background-position: -374px -418px}.sbsprite-sandcastle_personality { background-position: -396px -418px}.sbsprite-undead_11 { background-position: -418px -418px}.sbsprite-magenta_jumbo_backpack { background-position: -440px -418px}.sbsprite-undead_10 { background-position: -462px -418px}.sbsprite-diamond_necron_head { background-position: -484px -418px}.sbsprite-wet_pumpkin { background-position: -506px -418px}.sbsprite-gemstone_gauntlet { background-position: -528px -418px}.sbsprite-cobblestone_generator_9 { background-position: -550px -418px}.sbsprite-cobblestone_generator_8 { background-position: -572px -418px}.sbsprite-iron_generator_1 { background-position: -594px -418px}.sbsprite-cobblestone_generator_7 { background-position: -616px -418px}.sbsprite-control_switch { background-position: -638px -418px}.sbsprite-iron_generator_2 { background-position: -660px -418px}.sbsprite-cobblestone_generator_6 { background-position: -682px -418px}.sbsprite-pumpkin_bomb { background-position: -704px -418px}.sbsprite-cobblestone_generator_5 { background-position: -726px -418px}.sbsprite-cobblestone_generator_4 { background-position: -748px -418px}.sbsprite-dwarven_tankard { background-position: -770px -418px}.sbsprite-jerry_talisman_purple { background-position: -792px -418px}.sbsprite-cobblestone_generator_3 { background-position: -814px -418px}.sbsprite-cobblestone_generator_2 { background-position: -836px -418px}.sbsprite-reindeer_plush { background-position: -858px -418px}.sbsprite-cobblestone_generator_1 { background-position: -880px -418px}.sbsprite-big_xtree { background-position: -902px -418px}.sbsprite-farming_island { background-position: -924px -418px}.sbsprite-rune_endersnake { background-position: -946px -418px}.sbsprite-rune { background-position: -968px -418px}.sbsprite-sweet_flesh { background-position: -990px -418px}.sbsprite-shark_10 { background-position: -1012px -418px}.sbsprite-shark_12 { background-position: -1034px -418px}.sbsprite-viking_tear { background-position: 0 -440px}.sbsprite-shark_11 { background-position: -22px -440px}.sbsprite-iron_generator_7 { background-position: -44px -440px}.sbsprite-iron_generator_8 { background-position: -66px -440px}.sbsprite-iron_generator_9 { background-position: -88px -440px}.sbsprite-beacon_skull { background-position: -110px -440px}.sbsprite-coin_gold_2 { background-position: -132px -440px}.sbsprite-iron_generator_3 { background-position: -154px -440px}.sbsprite-iron_generator_4 { background-position: -176px -440px}.sbsprite-sea_creature_ring { background-position: -198px -440px}.sbsprite-iron_generator_5 { background-position: -220px -440px}.sbsprite-iron_generator_6 { background-position: -242px -440px}.sbsprite-nether_warts_generator_7 { background-position: -264px -440px}.sbsprite-nether_warts_generator_8 { background-position: -286px -440px}.sbsprite-nether_warts_generator_9 { background-position: -308px -440px}.sbsprite-nether_warts_generator_3 { background-position: -330px -440px}.sbsprite-wolf_fur_mixin { background-position: -352px -440px}.sbsprite-mayor_marina { background-position: -374px -440px}.sbsprite-candy_ring { background-position: -396px -440px}.sbsprite-nether_warts_generator_4 { background-position: -418px -440px}.sbsprite-nether_warts_generator_5 { background-position: -440px -440px}.sbsprite-nether_warts_generator_6 { background-position: -462px -440px}.sbsprite-large_backpack { background-position: -484px -440px}.sbsprite-fine_sapphire_gem { background-position: -506px -440px}.sbsprite-nether_warts_generator_1 { background-position: -528px -440px}.sbsprite-nether_warts_generator_2 { background-position: -550px -440px}.sbsprite-griffin_upgrade_stone_uncommon { background-position: -572px -440px}.sbsprite-grey_greater_backpack { background-position: -594px -440px}.sbsprite-shiny_orb { background-position: -616px -440px}.sbsprite-large_enchanted_husbandry_sack { background-position: -638px -440px}.sbsprite-milk_cookies { background-position: -660px -440px}.sbsprite-spider_artifact { background-position: -682px -440px}.sbsprite-green_gift { background-position: -704px -440px}.sbsprite-fast_travel_park { background-position: -726px -440px}.sbsprite-jungle_heart { background-position: -748px -440px}.sbsprite-toil_log { background-position: -770px -440px}.sbsprite-absolute_ender_pearl { background-position: -792px -440px}.sbsprite-catacombs_pass_10 { background-position: -814px -440px}.sbsprite-protector_fragment { background-position: -836px -440px}.sbsprite-ice_generator_1 { background-position: -858px -440px}.sbsprite-ice_generator_2 { background-position: -880px -440px}.sbsprite-old_fragment { background-position: -902px -440px}.sbsprite-ice_generator_3 { background-position: -924px -440px}.sbsprite-traveling_zoo { background-position: -946px -440px}.sbsprite-ice_generator_4 { background-position: -968px -440px}.sbsprite-ice_generator_5 { background-position: -990px -440px}.sbsprite-ice_generator_6 { background-position: -1012px -440px}.sbsprite-ice_generator_7 { background-position: -1034px -440px}.sbsprite-ice_generator_8 { background-position: 0 -462px}.sbsprite-ice_generator_9 { background-position: -22px -462px}.sbsprite-lady_bug_personality { background-position: -44px -462px}.sbsprite-pet_skin_rock_laugh { background-position: -66px -462px}.sbsprite-experimentation_table { background-position: -88px -462px}.sbsprite-titanium_ore { background-position: -110px -462px}.sbsprite-blue_medium_backpack { background-position: -132px -462px}.sbsprite-ice_sofa { background-position: -154px -462px}.sbsprite-rune_lightning { background-position: -176px -462px}.sbsprite-tarantula_talisman { background-position: -198px -462px}.sbsprite-mayor_aatrox { background-position: -220px -462px}.sbsprite-race_crystal_core { background-position: -242px -462px}.sbsprite-black_cat_plush { background-position: -264px -462px}.sbsprite-small_agronomy_sack { background-position: -286px -462px}.sbsprite-magenta_greater_backpack { background-position: -308px -462px}.sbsprite-pet_skin_sheep_light_gray { background-position: -330px -462px}.sbsprite-diamond_scarf_head { background-position: -352px -462px}.sbsprite-hay_bed { background-position: -374px -462px}.sbsprite-talisman_enrichment_sea_creature_chance { background-position: -396px -462px}.sbsprite-strong_shimmer { background-position: -418px -462px}.sbsprite-shady_ring { background-position: -440px -462px}.sbsprite-dante_talisman { background-position: -462px -462px}.sbsprite-pink_bunny_1 { background-position: -484px -462px}.sbsprite-black_greater_backpack { background-position: -506px -462px}.sbsprite-builder_cactus { background-position: -528px -462px}.sbsprite-magenta_small_backpack { background-position: -550px -462px}.sbsprite-talisman_enrichment_defense { background-position: -572px -462px}.sbsprite-pink_bunny_3 { background-position: -594px -462px}.sbsprite-talisman_enrichment_magic_find { background-position: -616px -462px}.sbsprite-pink_bunny_2 { background-position: -638px -462px}.sbsprite-pink_bunny_5 { background-position: -660px -462px}.sbsprite-pink_bunny_4 { background-position: -682px -462px}.sbsprite-salmon_opal { background-position: -704px -462px}.sbsprite-pink_bunny_7 { background-position: -726px -462px}.sbsprite-pink_bunny_6 { background-position: -748px -462px}.sbsprite-pink_bunny_9 { background-position: -770px -462px}.sbsprite-pink_bunny_8 { background-position: -792px -462px}.sbsprite-refined_mithril { background-position: -814px -462px}.sbsprite-happy_emoji_10 { background-position: -836px -462px}.sbsprite-happy_emoji_11 { background-position: -858px -462px}.sbsprite-mine_talisman { background-position: -880px -462px}.sbsprite-old_dragon_helmet { background-position: -902px -462px}.sbsprite-boss_collection_livid { background-position: -924px -462px}.sbsprite-green_small_backpack { background-position: -946px -462px}.sbsprite-rune_bite { background-position: -968px -462px}.sbsprite-jungle_generator_11 { background-position: -990px -462px}.sbsprite-mega_luck { background-position: -1012px -462px}.sbsprite-jungle_generator_10 { background-position: -1034px -462px}.sbsprite-pet_skin_chicken_baby_chick { background-position: 0 -484px}.sbsprite-pile_of_cash { background-position: -22px -484px}.sbsprite-dungeoneering { background-position: -44px -484px}.sbsprite-base_griffin_upgrade_stone { background-position: -66px -484px}.sbsprite-red_tent { background-position: -88px -484px}.sbsprite-dungeon_red_support_orb { background-position: -110px -484px}.sbsprite-fast_travel_nether { background-position: -132px -484px}.sbsprite-night_vision_charm { background-position: -154px -484px}.sbsprite-zombie_grave { background-position: -176px -484px}.sbsprite-fish_bait { background-position: -198px -484px}.sbsprite-ice_lolly_personality { background-position: -220px -484px}.sbsprite-grizzly_paw { background-position: -242px -484px}.sbsprite-large_potion_bag { background-position: -264px -484px}.sbsprite-poorly_wrapped_rock { background-position: -286px -484px}.sbsprite-drill_engine { background-position: -308px -484px}.sbsprite-dark_oak_generator_10 { background-position: -330px -484px}.sbsprite-dungeon_normal_key { background-position: -352px -484px}.sbsprite-dark_oak_generator_11 { background-position: -374px -484px}.sbsprite-unstable_shimmer { background-position: -396px -484px}.sbsprite-green_egg { background-position: -418px -484px}.sbsprite-rough_topaz_gem { background-position: -440px -484px}.sbsprite-mana_flux_power_orb { background-position: -462px -484px}.sbsprite-amber_material { background-position: -484px -484px}.sbsprite-grinch_personality { background-position: -506px -484px}.sbsprite-fast_travel_crystals { background-position: -528px -484px}.sbsprite-lapis_generator_2 { background-position: -550px -484px}.sbsprite-lapis_generator_3 { background-position: -572px -484px}.sbsprite-rune_sack { background-position: -594px -484px}.sbsprite-lapis_generator_4 { background-position: -616px -484px}.sbsprite-tightly_tied_hay_bale { background-position: -638px -484px}.sbsprite-beach_ball { background-position: -660px -484px}.sbsprite-lapis_generator_5 { background-position: -682px -484px}.sbsprite-lapis_generator_10 { background-position: -704px -484px}.sbsprite-lapis_generator_12 { background-position: -726px -484px}.sbsprite-light_grey_large_backpack { background-position: -748px -484px}.sbsprite-lapis_generator_1 { background-position: -770px -484px}.sbsprite-lapis_generator_11 { background-position: -792px -484px}.sbsprite-pet_item_quick_claw { background-position: -814px -484px}.sbsprite-basketball_9 { background-position: -836px -484px}.sbsprite-deck_chair { background-position: -858px -484px}.sbsprite-lady_bug_9 { background-position: -880px -484px}.sbsprite-basketball_8 { background-position: -902px -484px}.sbsprite-lady_bug_8 { background-position: -924px -484px}.sbsprite-basketball_7 { background-position: -946px -484px}.sbsprite-basketball_6 { background-position: -968px -484px}.sbsprite-rune_pestilence { background-position: -990px -484px}.sbsprite-basketball_5 { background-position: -1012px -484px}.sbsprite-mithril_generator_12 { background-position: -1034px -484px}.sbsprite-sea_creature_talisman { background-position: 0 -506px}.sbsprite-basketball_4 { background-position: -22px -506px}.sbsprite-mithril_generator_11 { background-position: -44px -506px}.sbsprite-basketball_3 { background-position: -66px -506px}.sbsprite-mithril_generator_10 { background-position: -88px -506px}.sbsprite-basketball_2 { background-position: -110px -506px}.sbsprite-blue_egg { background-position: -132px -506px}.sbsprite-basketball_1 { background-position: -154px -506px}.sbsprite-lady_bug_1 { background-position: -176px -506px}.sbsprite-emerald_ring { background-position: -198px -506px}.sbsprite-lady_bug_3 { background-position: -220px -506px}.sbsprite-lady_bug_2 { background-position: -242px -506px}.sbsprite-lady_bug_5 { background-position: -264px -506px}.sbsprite-lapis_generator_6 { background-position: -286px -506px}.sbsprite-epoch_cake_green { background-position: -308px -506px}.sbsprite-lady_bug_4 { background-position: -330px -506px}.sbsprite-lapis_generator_7 { background-position: -352px -506px}.sbsprite-medium_husbandry_sack { background-position: -374px -506px}.sbsprite-bunny_11 { background-position: -396px -506px}.sbsprite-lady_bug_7 { background-position: -418px -506px}.sbsprite-lapis_generator_8 { background-position: -440px -506px}.sbsprite-bunny_10 { background-position: -462px -506px}.sbsprite-candy_relic { background-position: -484px -506px}.sbsprite-lady_bug_6 { background-position: -506px -506px}.sbsprite-lapis_generator_9 { background-position: -528px -506px}.sbsprite-red_jumbo_backpack { background-position: -550px -506px}.sbsprite-holy_fragment { background-position: -572px -506px}.sbsprite-ice_cream_personality { background-position: -594px -506px}.sbsprite-dungeon_blue_support_orb { background-position: -616px -506px}.sbsprite-blaze_generator_4 { background-position: -638px -506px}.sbsprite-blaze_generator_3 { background-position: -660px -506px}.sbsprite-blaze_generator_2 { background-position: -682px -506px}.sbsprite-blaze_generator_1 { background-position: -704px -506px}.sbsprite-blaze_generator_8 { background-position: -726px -506px}.sbsprite-blaze_generator_7 { background-position: -748px -506px}.sbsprite-pet_skin_whale_orca { background-position: -770px -506px}.sbsprite-blaze_generator_6 { background-position: -792px -506px}.sbsprite-blaze_generator_5 { background-position: -814px -506px}.sbsprite-deadgehog_helmet { background-position: -836px -506px}.sbsprite-volta { background-position: -858px -506px}.sbsprite-blaze_generator_9 { background-position: -880px -506px}.sbsprite-frozen_chicken { background-position: -902px -506px}.sbsprite-pet_skin_dragon_neon_purple { background-position: -924px -506px}.sbsprite-cavespider_generator_6 { background-position: -946px -506px}.sbsprite-cavespider_generator_5 { background-position: -968px -506px}.sbsprite-rune_gem { background-position: -990px -506px}.sbsprite-cavespider_generator_8 { background-position: -1012px -506px}.sbsprite-cavespider_generator_7 { background-position: -1034px -506px}.sbsprite-cavespider_generator_2 { background-position: 0 -528px}.sbsprite-cavespider_generator_1 { background-position: -22px -528px}.sbsprite-cavespider_generator_4 { background-position: -44px -528px}.sbsprite-jerry_talisman_blue { background-position: -66px -528px}.sbsprite-cavespider_generator_3 { background-position: -88px -528px}.sbsprite-speed_talisman { background-position: -110px -528px}.sbsprite-mummy_1 { background-position: -132px -528px}.sbsprite-rabbit_hat { background-position: -154px -528px}.sbsprite-bat_person_ring { background-position: -176px -528px}.sbsprite-mummy_3 { background-position: -198px -528px}.sbsprite-cavespider_generator_9 { background-position: -220px -528px}.sbsprite-mummy_2 { background-position: -242px -528px}.sbsprite-mummy_5 { background-position: -264px -528px}.sbsprite-strong_baby { background-position: -286px -528px}.sbsprite-mummy_4 { background-position: -308px -528px}.sbsprite-mummy_7 { background-position: -330px -528px}.sbsprite-mummy_6 { background-position: -352px -528px}.sbsprite-spooky_helmet { background-position: -374px -528px}.sbsprite-dining_chair { background-position: -396px -528px}.sbsprite-mummy_9 { background-position: -418px -528px}.sbsprite-mummy_8 { background-position: -440px -528px}.sbsprite-ender_relic { background-position: -462px -528px}.sbsprite-flawed_jasper_gem { background-position: -484px -528px}.sbsprite-cactus_generator_10 { background-position: -506px -528px}.sbsprite-pet_skin_silverfish_fossilized { background-position: -528px -528px}.sbsprite-cactus_generator_11 { background-position: -550px -528px}.sbsprite-cactus_generator_12 { background-position: -572px -528px}.sbsprite-dark_goggles { background-position: -594px -528px}.sbsprite-starred_bonzo_mask { background-position: -616px -528px}.sbsprite-pigs_foot { background-position: -638px -528px}.sbsprite-gemstone_mixture { background-position: -660px -528px}.sbsprite-tarantula_black_widow { background-position: -682px -528px}.sbsprite-builder_berry_bush { background-position: -704px -528px}.sbsprite-chicken_head { background-position: -726px -528px}.sbsprite-pet_skin_elephant_purple { background-position: -748px -528px}.sbsprite-cow_head { background-position: -770px -528px}.sbsprite-witch_broomstick { background-position: -792px -528px}.sbsprite-pet_skin_monkey_gorilla { background-position: -814px -528px}.sbsprite-grey_large_backpack { background-position: -836px -528px}.sbsprite-pet_skin_sheep_neon_green { background-position: -858px -528px}.sbsprite-magic_mushroom_soup { background-position: -880px -528px}.sbsprite-petrified_starfall { background-position: -902px -528px}.sbsprite-spruce_generator_9 { background-position: -924px -528px}.sbsprite-second_master_star { background-position: -946px -528px}.sbsprite-sled { background-position: -968px -528px}.sbsprite-spruce_generator_1 { background-position: -990px -528px}.sbsprite-voidling_generator_2 { background-position: -1012px -528px}.sbsprite-red { background-position: -1034px -528px}.sbsprite-spirit_wing { background-position: 0 -550px}.sbsprite-spruce_generator_2 { background-position: -22px -550px}.sbsprite-voidling_generator_1 { background-position: -44px -550px}.sbsprite-spruce_generator_3 { background-position: -66px -550px}.sbsprite-voidling_generator_4 { background-position: -88px -550px}.sbsprite-spruce_generator_4 { background-position: -110px -550px}.sbsprite-voidling_generator_3 { background-position: -132px -550px}.sbsprite-spruce_generator_5 { background-position: -154px -550px}.sbsprite-voidling_generator_6 { background-position: -176px -550px}.sbsprite-spruce_generator_6 { background-position: -198px -550px}.sbsprite-voidling_generator_5 { background-position: -220px -550px}.sbsprite-spruce_generator_7 { background-position: -242px -550px}.sbsprite-voidling_generator_8 { background-position: -264px -550px}.sbsprite-spruce_generator_8 { background-position: -286px -550px}.sbsprite-voidling_generator_7 { background-position: -308px -550px}.sbsprite-voidling_generator_9 { background-position: -330px -550px}.sbsprite-magenta_large_backpack { background-position: -352px -550px}.sbsprite-fast_travel_end { background-position: -374px -550px}.sbsprite-cow_generator_8 { background-position: -396px -550px}.sbsprite-cow_generator_9 { background-position: -418px -550px}.sbsprite-present_1 { background-position: -440px -550px}.sbsprite-topaz_crystal { background-position: -462px -550px}.sbsprite-bestiary_private_island { background-position: -484px -550px}.sbsprite-present_2 { background-position: -506px -550px}.sbsprite-present_3 { background-position: -528px -550px}.sbsprite-cow_generator_1 { background-position: -550px -550px}.sbsprite-cow_generator_2 { background-position: -572px -550px}.sbsprite-dragon_horn { background-position: -594px -550px}.sbsprite-bat_artifact { background-position: -616px -550px}.sbsprite-cow_generator_3 { background-position: -638px -550px}.sbsprite-cow_generator_4 { background-position: -660px -550px}.sbsprite-cow_generator_5 { background-position: -682px -550px}.sbsprite-cow_generator_6 { background-position: -704px -550px}.sbsprite-cow_generator_7 { background-position: -726px -550px}.sbsprite-goblin_omelette_pesto { background-position: -748px -550px}.sbsprite-farming_2_portal { background-position: -770px -550px}.sbsprite-village_talisman { background-position: -792px -550px}.sbsprite-cheetah_talisman { background-position: -814px -550px}.sbsprite-mining_2_portal { background-position: -836px -550px}.sbsprite-present_8 { background-position: -858px -550px}.sbsprite-wood_talisman { background-position: -880px -550px}.sbsprite-present_9 { background-position: -902px -550px}.sbsprite-present_4 { background-position: -924px -550px}.sbsprite-present_5 { background-position: -946px -550px}.sbsprite-present_6 { background-position: -968px -550px}.sbsprite-present_7 { background-position: -990px -550px}.sbsprite-healing_ring { background-position: -1012px -550px}.sbsprite-titanium_artifact { background-position: -1034px -550px}.sbsprite-penguin_1 { background-position: 0 -572px}.sbsprite-penguin_2 { background-position: -22px -572px}.sbsprite-ruby_crystal { background-position: -44px -572px}.sbsprite-tiki_torch { background-position: -66px -572px}.sbsprite-wheat_generator_10 { background-position: -88px -572px}.sbsprite-emerald_generator_8 { background-position: -110px -572px}.sbsprite-wheat_generator_12 { background-position: -132px -572px}.sbsprite-emerald_generator_7 { background-position: -154px -572px}.sbsprite-wheat_generator_11 { background-position: -176px -572px}.sbsprite-scarecrow { background-position: -198px -572px}.sbsprite-emerald_generator_9 { background-position: -220px -572px}.sbsprite-emerald_generator_4 { background-position: -242px -572px}.sbsprite-emerald_generator_3 { background-position: -264px -572px}.sbsprite-emerald_generator_6 { background-position: -286px -572px}.sbsprite-emerald_generator_5 { background-position: -308px -572px}.sbsprite-pet_skin_elephant_monochrome { background-position: -330px -572px}.sbsprite-emerald_generator_2 { background-position: -352px -572px}.sbsprite-emerald_generator_1 { background-position: -374px -572px}.sbsprite-flawless_topaz_gem { background-position: -396px -572px}.sbsprite-raw_soulflow { background-position: -418px -572px}.sbsprite-large_enchanted_mining_sack { background-position: -440px -572px}.sbsprite-gold_scarf_head { background-position: -462px -572px}.sbsprite-orange_medium_backpack { background-position: -484px -572px}.sbsprite-fine_jade_gem { background-position: -506px -572px}.sbsprite-white_gift { background-position: -528px -572px}.sbsprite-goblin_omelette_sunny_side { background-position: -550px -572px}.sbsprite-builder_brown_mushroom { background-position: -572px -572px}.sbsprite-giant_flesh { background-position: -594px -572px}.sbsprite-jumbo_backpack { background-position: -616px -572px}.sbsprite-eternal_flame_ring { background-position: -638px -572px}.sbsprite-wrapped_gift_for_juliette { background-position: -660px -572px}.sbsprite-enchanted_book_bundle_counter_strike { background-position: -682px -572px}.sbsprite-pet_item_toy_jerry { background-position: -704px -572px}.sbsprite-golden_plate { background-position: -726px -572px}.sbsprite-penguin_5 { background-position: -748px -572px}.sbsprite-grandfather_clock { background-position: -770px -572px}.sbsprite-penguin_6 { background-position: -792px -572px}.sbsprite-penguin_3 { background-position: -814px -572px}.sbsprite-pet_skin_elephant_orange { background-position: -836px -572px}.sbsprite-fast_travel_museum { background-position: -858px -572px}.sbsprite-penguin_4 { background-position: -880px -572px}.sbsprite-penguin_9 { background-position: -902px -572px}.sbsprite-penguin_7 { background-position: -924px -572px}.sbsprite-penguin_8 { background-position: -946px -572px}.sbsprite-light_grey_medium_backpack { background-position: -968px -572px}.sbsprite-blue_jumbo_backpack { background-position: -990px -572px}.sbsprite-cyan_small_backpack { background-position: -1012px -572px}.sbsprite-jade_crystal { background-position: -1034px -572px}.sbsprite-large_dungeon_sack { background-position: 0 -594px}.sbsprite-summoning_ring { background-position: -22px -594px}.sbsprite-dragon_essence { background-position: -44px -594px}.sbsprite-basket_of_seeds { background-position: -66px -594px}.sbsprite-bunny_jerry { background-position: -88px -594px}.sbsprite-perfect_jade_gem { background-position: -110px -594px}.sbsprite-spray_can { background-position: -132px -594px}.sbsprite-campfire_talisman_4 { background-position: -154px -594px}.sbsprite-campfire_talisman_5 { background-position: -176px -594px}.sbsprite-campfire_talisman_2 { background-position: -198px -594px}.sbsprite-campfire_talisman_3 { background-position: -220px -594px}.sbsprite-remnant_of_the_eye { background-position: -242px -594px}.sbsprite-campfire_talisman_1 { background-position: -264px -594px}.sbsprite-talisman_enrichment_critical_chance { background-position: -286px -594px}.sbsprite-ghast_head { background-position: -308px -594px}.sbsprite-white_greater_backpack { background-position: -330px -594px}.sbsprite-mayor_diaz { background-position: -352px -594px}.sbsprite-campfire_talisman_8 { background-position: -374px -594px}.sbsprite-campfire_talisman_9 { background-position: -396px -594px}.sbsprite-jaderald { background-position: -418px -594px}.sbsprite-campfire_talisman_6 { background-position: -440px -594px}.sbsprite-gold_thorn_head { background-position: -462px -594px}.sbsprite-campfire_talisman_7 { background-position: -484px -594px}.sbsprite-dark_bait { background-position: -506px -594px}.sbsprite-game_annihilator { background-position: -528px -594px}.sbsprite-purple_greater_backpack { background-position: -550px -594px}.sbsprite-bestiary_deep_caverns { background-position: -572px -594px}.sbsprite-foraging_5_portal { background-position: -594px -594px}.sbsprite-wolf_talisman { background-position: -616px -594px}.sbsprite-gold_professor_head { background-position: -638px -594px}.sbsprite-pet_skin_sheep_light_blue { background-position: -660px -594px}.sbsprite-ice_lolly_4 { background-position: -682px -594px}.sbsprite-basketball_10 { background-position: -704px -594px}.sbsprite-ice_lolly_3 { background-position: -726px -594px}.sbsprite-mineral_helmet { background-position: -748px -594px}.sbsprite-basketball_11 { background-position: -770px -594px}.sbsprite-ice_lolly_2 { background-position: -792px -594px}.sbsprite-basketball_12 { background-position: -814px -594px}.sbsprite-ice_lolly_1 { background-position: -836px -594px}.sbsprite-rock_candy { background-position: -858px -594px}.sbsprite-ice_lolly_8 { background-position: -880px -594px}.sbsprite-tarantula_generator_2 { background-position: -902px -594px}.sbsprite-ice_lolly_7 { background-position: -924px -594px}.sbsprite-tarantula_generator_1 { background-position: -946px -594px}.sbsprite-ice_lolly_6 { background-position: -968px -594px}.sbsprite-ice_lolly_5 { background-position: -990px -594px}.sbsprite-purple_egg { background-position: -1012px -594px}.sbsprite-ice_lolly_9 { background-position: -1034px -594px}.sbsprite-tarantula_generator_9 { background-position: 0 -616px}.sbsprite-tarantula_generator_8 { background-position: -22px -616px}.sbsprite-tarantula_generator_7 { background-position: -44px -616px}.sbsprite-tarantula_generator_6 { background-position: -66px -616px}.sbsprite-tarantula_generator_5 { background-position: -88px -616px}.sbsprite-tarantula_generator_4 { background-position: -110px -616px}.sbsprite-tarantula_generator_3 { background-position: -132px -616px}.sbsprite-hypixel_castle { background-position: -154px -616px}.sbsprite-rune_golden { background-position: -176px -616px}.sbsprite-wheat_generator_9 { background-position: -198px -616px}.sbsprite-ftx_3070 { background-position: -220px -616px}.sbsprite-wheat_generator_8 { background-position: -242px -616px}.sbsprite-wheat_generator_5 { background-position: -264px -616px}.sbsprite-wheat_generator_4 { background-position: -286px -616px}.sbsprite-builder_corn { background-position: -308px -616px}.sbsprite-cheap_coffee { background-position: -330px -616px}.sbsprite-wheat_generator_7 { background-position: -352px -616px}.sbsprite-wheat_generator_6 { background-position: -374px -616px}.sbsprite-mushroom_generator_11 { background-position: -396px -616px}.sbsprite-wheat_generator_1 { background-position: -418px -616px}.sbsprite-mushroom_generator_10 { background-position: -440px -616px}.sbsprite-ender_plus { background-position: -462px -616px}.sbsprite-wheat_generator_3 { background-position: -484px -616px}.sbsprite-wheat_generator_2 { background-position: -506px -616px}.sbsprite-voidling_generator_10 { background-position: -528px -616px}.sbsprite-voidling_generator_11 { background-position: -550px -616px}.sbsprite-mushroom_generator_12 { background-position: -572px -616px}.sbsprite-personal_bonus { background-position: -594px -616px}.sbsprite-flawless_amber_gem { background-position: -616px -616px}.sbsprite-rune_darkness_within { background-position: -638px -616px}.sbsprite-bag_of_cash { background-position: -660px -616px}.sbsprite-pet_skin_hound_beagle { background-position: -682px -616px}.sbsprite-pufferfish_hat { background-position: -704px -616px}.sbsprite-lime_greater_backpack { background-position: -726px -616px}.sbsprite-food_trough { background-position: -748px -616px}.sbsprite-pet_skin_yeti_grown_up { background-position: -770px -616px}.sbsprite-slime_generator_10 { background-position: -792px -616px}.sbsprite-undead_personality { background-position: -814px -616px}.sbsprite-slime_generator_11 { background-position: -836px -616px}.sbsprite-nether_wart_island { background-position: -858px -616px}.sbsprite-gravel_generator_5 { background-position: -880px -616px}.sbsprite-gravel_generator_4 { background-position: -902px -616px}.sbsprite-gravel_generator_7 { background-position: -924px -616px}.sbsprite-gravel_generator_6 { background-position: -946px -616px}.sbsprite-gravel_generator_9 { background-position: -968px -616px}.sbsprite-gravel_generator_8 { background-position: -990px -616px}.sbsprite-shiny_shard { background-position: -1012px -616px}.sbsprite-pet_skin_rabbit_rose { background-position: -1034px -616px}.sbsprite-quiver { background-position: 0 -638px}.sbsprite-rune_snake { background-position: -22px -638px}.sbsprite-bonzo_mask { background-position: -44px -638px}.sbsprite-fast_travel { background-position: -66px -638px}.sbsprite-treasurite { background-position: -88px -638px}.sbsprite-chicken_coop { background-position: -110px -638px}.sbsprite-end_portal_fumes_mixin { background-position: -132px -638px}.sbsprite-crafting_plus { background-position: -154px -638px}.sbsprite-gravel_generator_1 { background-position: -176px -638px}.sbsprite-gravel_generator_3 { background-position: -198px -638px}.sbsprite-gravel_generator_2 { background-position: -220px -638px}.sbsprite-easter_egg_11 { background-position: -242px -638px}.sbsprite-easter_egg_10 { background-position: -264px -638px}.sbsprite-protein_bar { background-position: -286px -638px}.sbsprite-hard_stone_generator_10 { background-position: -308px -638px}.sbsprite-coin_gold { background-position: -330px -638px}.sbsprite-light_blue_jumbo_backpack { background-position: -352px -638px}.sbsprite-hard_stone_generator_12 { background-position: -374px -638px}.sbsprite-hard_stone_generator_11 { background-position: -396px -638px}.sbsprite-rune_blood { background-position: -418px -638px}.sbsprite-raggedy_shark_tooth_necklace { background-position: -440px -638px}.sbsprite-pure_mithril { background-position: -462px -638px}.sbsprite-coin_emerald { background-position: -484px -638px}.sbsprite-pet_skin_black_cat_onyx { background-position: -506px -638px}.sbsprite-easter_egg_12 { background-position: -528px -638px}.sbsprite-emperor_head { background-position: -550px -638px}.sbsprite-power_wither_helmet { background-position: -572px -638px}.sbsprite-bee_11 { background-position: -594px -638px}.sbsprite-bee_10 { background-position: -616px -638px}.sbsprite-pet_skin_wolf { background-position: -638px -638px}.sbsprite-pumpkin_4 { background-position: -660px -638px}.sbsprite-pumpkin_3 { background-position: -682px -638px}.sbsprite-pumpkin_6 { background-position: -704px -638px}.sbsprite-fine_ruby_gem { background-position: -726px -638px}.sbsprite-pumpkin_5 { background-position: -748px -638px}.sbsprite-pumpkin_2 { background-position: -770px -638px}.sbsprite-electron_transmitter { background-position: -792px -638px}.sbsprite-pumpkin_1 { background-position: -814px -638px}.sbsprite-gingerbread_house { background-position: -836px -638px}.sbsprite-bee_1 { background-position: -858px -638px}.sbsprite-large_mining_sack { background-position: -880px -638px}.sbsprite-bee_2 { background-position: -902px -638px}.sbsprite-bee_3 { background-position: -924px -638px}.sbsprite-bee_4 { background-position: -946px -638px}.sbsprite-midas_jewel { background-position: -968px -638px}.sbsprite-unstable_dragon_helmet { background-position: -990px -638px}.sbsprite-vaccine_talisman { background-position: -1012px -638px}.sbsprite-whale_bait { background-position: -1034px -638px}.sbsprite-bee_9 { background-position: 0 -660px}.sbsprite-bee_5 { background-position: -22px -660px}.sbsprite-booster_cookie_box { background-position: -44px -660px}.sbsprite-perfect_topaz_gem { background-position: -66px -660px}.sbsprite-bee_6 { background-position: -88px -660px}.sbsprite-bee_7 { background-position: -110px -660px}.sbsprite-bee_8 { background-position: -132px -660px}.sbsprite-elvish_helmet { background-position: -154px -660px}.sbsprite-pumpkin_8 { background-position: -176px -660px}.sbsprite-light_grey_greater_backpack { background-position: -198px -660px}.sbsprite-pumpkin_7 { background-position: -220px -660px}.sbsprite-pumpkin_9 { background-position: -242px -660px}.sbsprite-best_weapon_rack { background-position: -264px -660px}.sbsprite-washed_up_souvenir { background-position: -286px -660px}.sbsprite-coin_diamond { background-position: -308px -660px}.sbsprite-builder_pink_berry { background-position: -330px -660px}.sbsprite-clownfish_personality { background-position: -352px -660px}.sbsprite-easter_egg_personality { background-position: -374px -660px}.sbsprite-jerry_talisman_green { background-position: -396px -660px}.sbsprite-spiked_atrocity { background-position: -418px -660px}.sbsprite-flower_generator_8 { background-position: -440px -660px}.sbsprite-flower_generator_9 { background-position: -462px -660px}.sbsprite-farmer_orb { background-position: -484px -660px}.sbsprite-flower_generator_4 { background-position: -506px -660px}.sbsprite-crypt_skull_key { background-position: -528px -660px}.sbsprite-flower_generator_5 { background-position: -550px -660px}.sbsprite-flower_generator_6 { background-position: -572px -660px}.sbsprite-flower_generator_7 { background-position: -594px -660px}.sbsprite-flower_generator_1 { background-position: -616px -660px}.sbsprite-flower_generator_2 { background-position: -638px -660px}.sbsprite-nutcracker { background-position: -660px -660px}.sbsprite-flower_generator_3 { background-position: -682px -660px}.sbsprite-scarf_studies { background-position: -704px -660px}.sbsprite-builder_apple { background-position: -726px -660px}.sbsprite-skyblock_table { background-position: -748px -660px}.sbsprite-sleeping_eye { background-position: -770px -660px}.sbsprite-spider_generator_1 { background-position: -792px -660px}.sbsprite-pet_skin_elephant_blue { background-position: -814px -660px}.sbsprite-spider_generator_2 { background-position: -836px -660px}.sbsprite-spider_generator_3 { background-position: -858px -660px}.sbsprite-shark_bait { background-position: -880px -660px}.sbsprite-spider_generator_4 { background-position: -902px -660px}.sbsprite-spider_generator_5 { background-position: -924px -660px}.sbsprite-black { background-position: -946px -660px}.sbsprite-sapphire_polished_drill_engine { background-position: -968px -660px}.sbsprite-cocoa_generator_1 { background-position: -990px -660px}.sbsprite-cocoa_generator_7 { background-position: -1012px -660px}.sbsprite-cocoa_generator_6 { background-position: -1034px -660px}.sbsprite-rune_snow { background-position: 0 -682px}.sbsprite-cocoa_generator_9 { background-position: -22px -682px}.sbsprite-cocoa_generator_8 { background-position: -44px -682px}.sbsprite-cocoa_generator_3 { background-position: -66px -682px}.sbsprite-cocoa_generator_2 { background-position: -88px -682px}.sbsprite-cocoa_generator_5 { background-position: -110px -682px}.sbsprite-cocoa_generator_4 { background-position: -132px -682px}.sbsprite-spider_generator_6 { background-position: -154px -682px}.sbsprite-spider_generator_7 { background-position: -176px -682px}.sbsprite-spider_generator_8 { background-position: -198px -682px}.sbsprite-spider_generator_9 { background-position: -220px -682px}.sbsprite-brown_large_backpack { background-position: -242px -682px}.sbsprite-flower_maelstrom { background-position: -264px -682px}.sbsprite-pumpkin_generator_12 { background-position: -286px -682px}.sbsprite-coal_generator_9 { background-position: -308px -682px}.sbsprite-diamond_thorn_head { background-position: -330px -682px}.sbsprite-ender_stone_generator_11 { background-position: -352px -682px}.sbsprite-coal_generator_8 { background-position: -374px -682px}.sbsprite-ender_stone_generator_10 { background-position: -396px -682px}.sbsprite-coal_generator_7 { background-position: -418px -682px}.sbsprite-jerry_box_blue { background-position: -440px -682px}.sbsprite-coal_generator_6 { background-position: -462px -682px}.sbsprite-coal_generator_5 { background-position: -484px -682px}.sbsprite-pumpkin_generator_11 { background-position: -506px -682px}.sbsprite-coal_generator_4 { background-position: -528px -682px}.sbsprite-pumpkin_generator_10 { background-position: -550px -682px}.sbsprite-talisman_of_space { background-position: -572px -682px}.sbsprite-talisman_enrichment_strength { background-position: -594px -682px}.sbsprite-white_jumbo_backpack { background-position: -616px -682px}.sbsprite-full_fairy_control { background-position: -638px -682px}.sbsprite-quartz_generator_9 { background-position: -660px -682px}.sbsprite-rune_wake { background-position: -682px -682px}.sbsprite-quartz_generator_8 { background-position: -704px -682px}.sbsprite-festive_jerry_personality { background-position: -726px -682px}.sbsprite-quartz_generator_5 { background-position: -748px -682px}.sbsprite-builder_berry { background-position: -770px -682px}.sbsprite-quartz_generator_4 { background-position: -792px -682px}.sbsprite-quartz_generator_7 { background-position: -814px -682px}.sbsprite-quartz_generator_6 { background-position: -836px -682px}.sbsprite-quartz_generator_1 { background-position: -858px -682px}.sbsprite-quartz_generator_3 { background-position: -880px -682px}.sbsprite-quartz_generator_2 { background-position: -902px -682px}.sbsprite-bingo_heirloom { background-position: -924px -682px}.sbsprite-dwarf_turtle_shelmet { background-position: -946px -682px}.sbsprite-wolf_paw { background-position: -968px -682px}.sbsprite-jasper_crystal { background-position: -990px -682px}.sbsprite-party_hat_crab { background-position: -1012px -682px}.sbsprite-feather_artifact { background-position: -1034px -682px}.sbsprite-coal_generator_3 { background-position: 0 -704px}.sbsprite-coal_generator_2 { background-position: -22px -704px}.sbsprite-coal_generator_1 { background-position: -44px -704px}.sbsprite-fast_travel_gold { background-position: -66px -704px}.sbsprite-crystal_hollows_crystals { background-position: -88px -704px}.sbsprite-mining_island { background-position: -110px -704px}.sbsprite-flawless_jasper_gem { background-position: -132px -704px}.sbsprite-halloween_candles { background-position: -154px -704px}.sbsprite-ascension_rope { background-position: -176px -704px}.sbsprite-brown_small_backpack { background-position: -198px -704px}.sbsprite-diver_puffer { background-position: -220px -704px}.sbsprite-melon_generator_10 { background-position: -242px -704px}.sbsprite-melon_generator_12 { background-position: -264px -704px}.sbsprite-melon_generator_11 { background-position: -286px -704px}.sbsprite-desert_island { background-position: -308px -704px}.sbsprite-green { background-position: -330px -704px}.sbsprite-crystallized_heart { background-position: -352px -704px}.sbsprite-sinful_dice { background-position: -374px -704px}.sbsprite-soulflow_supercell { background-position: -396px -704px}.sbsprite-sea_creature_artifact { background-position: -418px -704px}.sbsprite-grey_small_backpack { background-position: -440px -704px}.sbsprite-aatrox_batphone { background-position: -462px -704px}.sbsprite-clay_generator_10 { background-position: -484px -704px}.sbsprite-clay_generator_11 { background-position: -506px -704px}.sbsprite-end_stone_personality { background-position: -528px -704px}.sbsprite-builder_banana_bunch { background-position: -550px -704px}.sbsprite-danger_2_portal { background-position: -572px -704px}.sbsprite-mayor_scorpius { background-position: -594px -704px}.sbsprite-voodoo { background-position: -616px -704px}.sbsprite-jerry_box_purple { background-position: -638px -704px}.sbsprite-wither_artifact { background-position: -660px -704px}.sbsprite-skull_chest { background-position: -682px -704px}.sbsprite-pet_skin_elephant_pink { background-position: -704px -704px}.sbsprite-oak_generator_10 { background-position: -726px -704px}.sbsprite-slime_generator_1 { background-position: -748px -704px}.sbsprite-slime_generator_2 { background-position: -770px -704px}.sbsprite-frozen_blaze_icicle { background-position: -792px -704px}.sbsprite-oak_generator_11 { background-position: -814px -704px}.sbsprite-slime_generator_5 { background-position: -836px -704px}.sbsprite-slime_generator_6 { background-position: -858px -704px}.sbsprite-slime_generator_3 { background-position: -880px -704px}.sbsprite-slime_generator_4 { background-position: -902px -704px}.sbsprite-slime_generator_9 { background-position: -924px -704px}.sbsprite-slime_generator_7 { background-position: -946px -704px}.sbsprite-slime_generator_8 { background-position: -968px -704px}.sbsprite-dungeon_golden_key { background-position: -990px -704px}.sbsprite-mender_fedora { background-position: -1012px -704px}.sbsprite-pet_skin_rock_smile { background-position: -1034px -704px}.sbsprite-builder_orange { background-position: 0 -726px}.sbsprite-ghast_generator_10 { background-position: -22px -726px}.sbsprite-beach_chair { background-position: -44px -726px}.sbsprite-ghast_generator_11 { background-position: -66px -726px}.sbsprite-boss { background-position: -88px -726px}.sbsprite-race_precursor_ruins { background-position: -110px -726px}.sbsprite-perfectly_cut_fuel_tank { background-position: -132px -726px}.sbsprite-ice_essence { background-position: -154px -726px}.sbsprite-jerry_box_green { background-position: -176px -726px}.sbsprite-fireplace { background-position: -198px -726px}.sbsprite-moldy_bread { background-position: -220px -726px}.sbsprite-pet_skin_tiger_saber_tooth { background-position: -242px -726px}.sbsprite-obsidian_generator_5 { background-position: -264px -726px}.sbsprite-obsidian_generator_4 { background-position: -286px -726px}.sbsprite-obsidian_generator_7 { background-position: -308px -726px}.sbsprite-obsidian_generator_6 { background-position: -330px -726px}.sbsprite-obsidian_generator_1 { background-position: -352px -726px}.sbsprite-obsidian_generator_3 { background-position: -374px -726px}.sbsprite-foraging_1_portal { background-position: -396px -726px}.sbsprite-obsidian_generator_2 { background-position: -418px -726px}.sbsprite-dungeon_stone_tank { background-position: -440px -726px}.sbsprite-obsidian_generator_9 { background-position: -462px -726px}.sbsprite-obsidian_generator_8 { background-position: -484px -726px}.sbsprite-pet_skin_sheep_light_green { background-position: -506px -726px}.sbsprite-decayed_bat { background-position: -528px -726px}.sbsprite-pet_skin_squid_glow { background-position: -550px -726px}.sbsprite-potato_generator_4 { background-position: -572px -726px}.sbsprite-potato_generator_5 { background-position: -594px -726px}.sbsprite-potato_generator_12 { background-position: -616px -726px}.sbsprite-potato_generator_6 { background-position: -638px -726px}.sbsprite-potato_generator_11 { background-position: -660px -726px}.sbsprite-potato_generator_7 { background-position: -682px -726px}.sbsprite-potato_generator_10 { background-position: -704px -726px}.sbsprite-potato_generator_8 { background-position: -726px -726px}.sbsprite-potato_generator_9 { background-position: -748px -726px}.sbsprite-slayer_energy_drink { background-position: -770px -726px}.sbsprite-arachne_keeper_fragment { background-position: -792px -726px}.sbsprite-cat_talisman { background-position: -814px -726px}.sbsprite-large_slayer_sack { background-position: -836px -726px}.sbsprite-rune_rainbow { background-position: -858px -726px}.sbsprite-potato_generator_1 { background-position: -880px -726px}.sbsprite-potato_generator_2 { background-position: -902px -726px}.sbsprite-potato_generator_3 { background-position: -924px -726px}.sbsprite-lime_large_backpack { background-position: -946px -726px}.sbsprite-bestiary_spiders_den { background-position: -968px -726px}.sbsprite-ruby_polished_drill_engine { background-position: -990px -726px}.sbsprite-yellow_jumbo_backpack { background-position: -1012px -726px}.sbsprite-pet_skin_dolphin_snubnose { background-position: -1034px -726px}.sbsprite-spider_egg_mixin { background-position: 0 -748px}.sbsprite-pet_skin_dragon_pastel { background-position: -22px -748px}.sbsprite-honed_shark_tooth_necklace { background-position: -44px -748px}.sbsprite-bob_omb { background-position: -66px -748px}.sbsprite-dungeon_wizard_crystal { background-position: -88px -748px}.sbsprite-barn_island { background-position: -110px -748px}.sbsprite-weapon_rack { background-position: -132px -748px}.sbsprite-shadow_assassin_crimson { background-position: -154px -748px}.sbsprite-small_talisman_bag { background-position: -176px -748px}.sbsprite-medium_combat_sack { background-position: -198px -748px}.sbsprite-bonzo_statue { background-position: -220px -748px}.sbsprite-zombie_artifact { background-position: -242px -748px}.sbsprite-cheese_hunter { background-position: -264px -748px}.sbsprite-hologram { background-position: -286px -748px}.sbsprite-ultrasequencer { background-position: -308px -748px}.sbsprite-wise_dragon_helmet { background-position: -330px -748px}.sbsprite-cyan_medium_backpack { background-position: -352px -748px}.sbsprite-light_grey_small_backpack { background-position: -374px -748px}.sbsprite-catacombs_pass_5 { background-position: -396px -748px}.sbsprite-catacombs_pass_4 { background-position: -418px -748px}.sbsprite-catacombs_pass_3 { background-position: -440px -748px}.sbsprite-magma_bucket_upgrade { background-position: -462px -748px}.sbsprite-catacombs_pass_2 { background-position: -484px -748px}.sbsprite-coin_redstone { background-position: -506px -748px}.sbsprite-catacombs_pass_1 { background-position: -528px -748px}.sbsprite-hermit_crab_10 { background-position: -550px -748px}.sbsprite-catacombs_pass_0 { background-position: -572px -748px}.sbsprite-hermit_crab_11 { background-position: -594px -748px}.sbsprite-dungeon_stone_mage { background-position: -616px -748px}.sbsprite-gingerbread_personality { background-position: -638px -748px}.sbsprite-titanium_drill_engine { background-position: -660px -748px}.sbsprite-catacombs_pass_9 { background-position: -682px -748px}.sbsprite-fast_travel_dragontail { background-position: -704px -748px}.sbsprite-catacombs_pass_8 { background-position: -726px -748px}.sbsprite-catacombs_pass_7 { background-position: -748px -748px}.sbsprite-reaper_spirit { background-position: -770px -748px}.sbsprite-catacombs_pass_6 { background-position: -792px -748px}.sbsprite-armor_of_the_resistance_helmet { background-position: -814px -748px}.sbsprite-orange_small_backpack { background-position: -836px -748px}.sbsprite-bait_ring { background-position: -858px -748px}.sbsprite-luck_talisman { background-position: -880px -748px}.sbsprite-beach_ball_11 { background-position: -902px -748px}.sbsprite-beach_ball_10 { background-position: -924px -748px}.sbsprite-shark_personality { background-position: -946px -748px}.sbsprite-coal_generator_11 { background-position: -968px -748px}.sbsprite-coal_generator_12 { background-position: -990px -748px}.sbsprite-fourth_master_star { background-position: -1012px -748px}.sbsprite-water_hydra_head { background-position: -1034px -748px}.sbsprite-coal_generator_10 { background-position: 0 -770px}.sbsprite-ice_dinner_table { background-position: -22px -770px}.sbsprite-talisman_enrichment_attack_speed { background-position: -44px -770px}.sbsprite-gemstone_fuel_tank { background-position: -66px -770px}.sbsprite-green_large_backpack { background-position: -88px -770px}.sbsprite-fairy_wings_charm { background-position: -110px -770px}.sbsprite-rare_diamond { background-position: -132px -770px}.sbsprite-bunny { background-position: -154px -770px}.sbsprite-storm_the_fish { background-position: -176px -770px}.sbsprite-penguin_personality { background-position: -198px -770px}.sbsprite-shark_1 { background-position: -220px -770px}.sbsprite-shard_of_the_shredded { background-position: -242px -770px}.sbsprite-shark_2 { background-position: -264px -770px}.sbsprite-sheep_generator_11 { background-position: -286px -770px}.sbsprite-diamonite { background-position: -308px -770px}.sbsprite-prehistoric_egg { background-position: -330px -770px}.sbsprite-shark_3 { background-position: -352px -770px}.sbsprite-sheep_generator_12 { background-position: -374px -770px}.sbsprite-shark_4 { background-position: -396px -770px}.sbsprite-shark_5 { background-position: -418px -770px}.sbsprite-shark_6 { background-position: -440px -770px}.sbsprite-shark_7 { background-position: -462px -770px}.sbsprite-shark_8 { background-position: -484px -770px}.sbsprite-shark_9 { background-position: -506px -770px}.sbsprite-bbq { background-position: -528px -770px}.sbsprite-pet_skin_sheep_white { background-position: -550px -770px}.sbsprite-sheep_generator_10 { background-position: -572px -770px}.sbsprite-rune_spirit { background-position: -594px -770px}.sbsprite-aote_stone { background-position: -616px -770px}.sbsprite-french_bread { background-position: -638px -770px}.sbsprite-ember_helmet { background-position: -660px -770px}.sbsprite-large_bed { background-position: -682px -770px}.sbsprite-builder_bush { background-position: -704px -770px}.sbsprite-talisman_enrichment_ferocity { background-position: -726px -770px}.sbsprite-fire_talisman { background-position: -748px -770px}.sbsprite-purple_candy { background-position: -770px -770px}.sbsprite-spider_talisman { background-position: -792px -770px}.sbsprite-intimidation_artifact { background-position: -814px -770px}.sbsprite-large_candy_sack { background-position: -836px -770px}.sbsprite-present_10 { background-position: -858px -770px}.sbsprite-present_11 { background-position: -880px -770px}.sbsprite-beach_ball_9 { background-position: -902px -770px}.sbsprite-tarantula_generator_10 { background-position: -924px -770px}.sbsprite-beach_ball_8 { background-position: -946px -770px}.sbsprite-gold_sadan_head { background-position: -968px -770px}.sbsprite-tarantula_generator_11 { background-position: -990px -770px}.sbsprite-large_enchanted_foraging_sack { background-position: -1012px -770px}.sbsprite-warrior_dungeon_ability_1 { background-position: -1034px -770px}.sbsprite-beach_ball_5 { background-position: 0 -792px}.sbsprite-beach_ball_4 { background-position: -22px -792px}.sbsprite-beach_ball_7 { background-position: -44px -792px}.sbsprite-cracked_piggy_bank { background-position: -66px -792px}.sbsprite-beach_ball_6 { background-position: -88px -792px}.sbsprite-ice_lolly_11 { background-position: -110px -792px}.sbsprite-ice_lolly_10 { background-position: -132px -792px}.sbsprite-razor_sharp_shark_tooth_necklace { background-position: -154px -792px}.sbsprite-farm_crystal { background-position: -176px -792px}.sbsprite-bank_upgrade_luxurious { background-position: -198px -792px}.sbsprite-large_fishing_sack { background-position: -220px -792px}.sbsprite-lime_small_backpack { background-position: -242px -792px}.sbsprite-portable_wool_weaver { background-position: -264px -792px}.sbsprite-beach_ball_1 { background-position: -286px -792px}.sbsprite-beach_ball_3 { background-position: -308px -792px}.sbsprite-beach_ball_2 { background-position: -330px -792px}.sbsprite-revive_stone_orb { background-position: -352px -792px}.sbsprite-fish_hat { background-position: -374px -792px}.sbsprite-skull_personality { background-position: -396px -792px}.sbsprite-builder_onion { background-position: -418px -792px}.sbsprite-melon_generator_3 { background-position: -440px -792px}.sbsprite-zombie_generator_9 { background-position: -462px -792px}.sbsprite-melon_generator_2 { background-position: -484px -792px}.sbsprite-melon_generator_1 { background-position: -506px -792px}.sbsprite-melon_generator_7 { background-position: -528px -792px}.sbsprite-zombie_generator_5 { background-position: -550px -792px}.sbsprite-melon_generator_6 { background-position: -572px -792px}.sbsprite-zombie_generator_6 { background-position: -594px -792px}.sbsprite-melon_generator_5 { background-position: -616px -792px}.sbsprite-zombie_generator_7 { background-position: -638px -792px}.sbsprite-melon_generator_4 { background-position: -660px -792px}.sbsprite-zombie_generator_8 { background-position: -682px -792px}.sbsprite-zombie_generator_1 { background-position: -704px -792px}.sbsprite-zombie_generator_2 { background-position: -726px -792px}.sbsprite-optical_lens { background-position: -748px -792px}.sbsprite-zombie_generator_3 { background-position: -770px -792px}.sbsprite-zombie_generator_4 { background-position: -792px -792px}.sbsprite-beach_umbrella { background-position: -814px -792px}.sbsprite-diamond_atom { background-position: -836px -792px}.sbsprite-coin_talisman { background-position: -858px -792px}.sbsprite-nether_island { background-position: -880px -792px}.sbsprite-rune_couture { background-position: -902px -792px}.sbsprite-fish_affinity_talisman { background-position: -924px -792px}.sbsprite-wedding_ring_4 { background-position: -946px -792px}.sbsprite-wedding_ring_5 { background-position: -968px -792px}.sbsprite-wedding_ring_6 { background-position: -990px -792px}.sbsprite-wedding_ring_7 { background-position: -1012px -792px}.sbsprite-wedding_ring_8 { background-position: -1034px -792px}.sbsprite-large_enchanted_combat_sack { background-position: 0 -814px}.sbsprite-wedding_ring_9 { background-position: -22px -814px}.sbsprite-rune_clouds { background-position: -44px -814px}.sbsprite-perfect_amber_gem { background-position: -66px -814px}.sbsprite-precursor_gear { background-position: -88px -814px}.sbsprite-wedding_ring_2 { background-position: -110px -814px}.sbsprite-wedding_ring_3 { background-position: -132px -814px}.sbsprite-rune_enchant { background-position: -154px -814px}.sbsprite-god_potion { background-position: -176px -814px}.sbsprite-rune_magical { background-position: -198px -814px}.sbsprite-pet_skin_monkey_golden { background-position: -220px -814px}.sbsprite-spiked_bait { background-position: -242px -814px}.sbsprite-ghost_11 { background-position: -264px -814px}.sbsprite-perfect_jasper_gem { background-position: -286px -814px}.sbsprite-quartz_generator_11 { background-position: -308px -814px}.sbsprite-sandcastle_1 { background-position: -330px -814px}.sbsprite-sandcastle_2 { background-position: -352px -814px}.sbsprite-pet_skin_sheep_pink { background-position: -374px -814px}.sbsprite-premium_flesh { background-position: -396px -814px}.sbsprite-sandcastle_5 { background-position: -418px -814px}.sbsprite-blessed_bait { background-position: -440px -814px}.sbsprite-sandcastle_6 { background-position: -462px -814px}.sbsprite-sandcastle_3 { background-position: -484px -814px}.sbsprite-sandcastle_4 { background-position: -506px -814px}.sbsprite-wise_wither_helmet { background-position: -528px -814px}.sbsprite-sandcastle_9 { background-position: -550px -814px}.sbsprite-quartz_generator_10 { background-position: -572px -814px}.sbsprite-sandcastle_7 { background-position: -594px -814px}.sbsprite-sandcastle_8 { background-position: -616px -814px}.sbsprite-mayor_cole { background-position: -638px -814px}.sbsprite-fifth_master_star { background-position: -660px -814px}.sbsprite-ghost_10 { background-position: -682px -814px}.sbsprite-young_shimmer { background-position: -704px -814px}.sbsprite-minion_chair { background-position: -726px -814px}.sbsprite-pig_mask { background-position: -748px -814px}.sbsprite-hyper_catalyst_upgrade { background-position: -770px -814px}.sbsprite-potion { background-position: -792px -814px}.sbsprite-exceedingly_rare_ender_artifact_upgrader { background-position: -814px -814px}.sbsprite-refined_titanium { background-position: -836px -814px}.sbsprite-sharp_shark_tooth_necklace { background-position: -858px -814px}.sbsprite-wreath { background-position: -880px -814px}.sbsprite-melon_generator_9 { background-position: -902px -814px}.sbsprite-melon_generator_8 { background-position: -924px -814px}.sbsprite-epoch_cake_pink { background-position: -946px -814px}.sbsprite-dungeon_stone_healer { background-position: -968px -814px}.sbsprite-young_baby { background-position: -990px -814px}.sbsprite-presents { background-position: -1012px -814px}.sbsprite-dark_oak_generator_5 { background-position: -1034px -814px}.sbsprite-dark_oak_generator_6 { background-position: 0 -836px}.sbsprite-large_enchanted_fishing_sack { background-position: -22px -836px}.sbsprite-radiant_power_orb { background-position: -44px -836px}.sbsprite-dark_oak_generator_3 { background-position: -66px -836px}.sbsprite-large_husbandry_sack { background-position: -88px -836px}.sbsprite-dark_oak_generator_4 { background-position: -110px -836px}.sbsprite-dark_oak_generator_9 { background-position: -132px -836px}.sbsprite-dark_oak_generator_7 { background-position: -154px -836px}.sbsprite-dark_oak_generator_8 { background-position: -176px -836px}.sbsprite-dark_oak_generator_1 { background-position: -198px -836px}.sbsprite-dark_oak_generator_2 { background-position: -220px -836px}.sbsprite-illusion_glass { background-position: -242px -836px}.sbsprite-iron_chest { background-position: -264px -836px}.sbsprite-festive_zombie_personality { background-position: -286px -836px}.sbsprite-frozen_blaze_helmet { background-position: -308px -836px}.sbsprite-fast_travel_nest { background-position: -330px -836px}.sbsprite-brown_greater_backpack { background-position: -352px -836px}.sbsprite-red_gift { background-position: -374px -836px}.sbsprite-builder_lemon { background-position: -396px -836px}.sbsprite-rune_hot { background-position: -418px -836px}.sbsprite-small_mining_sack { background-position: -440px -836px}.sbsprite-pet_skin_jerry_green_elf { background-position: -462px -836px}.sbsprite-amber_polished_drill_engine { background-position: -484px -836px}.sbsprite-pedestal { background-position: -506px -836px}.sbsprite-red_claw_artifact { background-position: -528px -836px}.sbsprite-zombie_generator_11 { background-position: -550px -836px}.sbsprite-zombie_generator_10 { background-position: -572px -836px}.sbsprite-wither_relic { background-position: -594px -836px}.sbsprite-spider_hat { background-position: -616px -836px}.sbsprite-sludge_juice { background-position: -638px -836px}.sbsprite-precursor_eye { background-position: -660px -836px}.sbsprite-fast_travel_scarleton { background-position: -682px -836px}.sbsprite-connect_four { background-position: -704px -836px}.sbsprite-sloth_3 { background-position: -726px -836px}.sbsprite-sloth_4 { background-position: -748px -836px}.sbsprite-pet_skin_enderman { background-position: -770px -836px}.sbsprite-sloth_1 { background-position: -792px -836px}.sbsprite-sloth_2 { background-position: -814px -836px}.sbsprite-rabbit_generator_9 { background-position: -836px -836px}.sbsprite-builder_chesto_berry { background-position: -858px -836px}.sbsprite-rabbit_generator_4 { background-position: -880px -836px}.sbsprite-sloth_7 { background-position: -902px -836px}.sbsprite-rabbit_generator_3 { background-position: -924px -836px}.sbsprite-sloth_8 { background-position: -946px -836px}.sbsprite-rabbit_generator_2 { background-position: -968px -836px}.sbsprite-sloth_5 { background-position: -990px -836px}.sbsprite-rabbit_generator_1 { background-position: -1012px -836px}.sbsprite-sloth_6 { background-position: -1034px -836px}.sbsprite-rabbit_generator_8 { background-position: 0 -858px}.sbsprite-lantern { background-position: -22px -858px}.sbsprite-rabbit_generator_7 { background-position: -44px -858px}.sbsprite-rabbit_generator_6 { background-position: -66px -858px}.sbsprite-sloth_9 { background-position: -88px -858px}.sbsprite-rabbit_generator_5 { background-position: -110px -858px}.sbsprite-clownfish_8 { background-position: -132px -858px}.sbsprite-clownfish_9 { background-position: -154px -858px}.sbsprite-clownfish_6 { background-position: -176px -858px}.sbsprite-clownfish_7 { background-position: -198px -858px}.sbsprite-clownfish_4 { background-position: -220px -858px}.sbsprite-clownfish_5 { background-position: -242px -858px}.sbsprite-mender_helmet { background-position: -264px -858px}.sbsprite-clownfish_2 { background-position: -286px -858px}.sbsprite-clownfish_3 { background-position: -308px -858px}.sbsprite-enderman_hat { background-position: -330px -858px}.sbsprite-superior_dragon_helmet { background-position: -352px -858px}.sbsprite-clownfish_1 { background-position: -374px -858px}.sbsprite-reset_heart_of_the_mountain { background-position: -396px -858px}.sbsprite-lapis_crystal { background-position: -418px -858px}.sbsprite-purple_jumbo_backpack { background-position: -440px -858px}.sbsprite-purple_large_backpack { background-position: -462px -858px}.sbsprite-dragon_claw { background-position: -484px -858px}.sbsprite-potato_talisman { background-position: -506px -858px}.sbsprite-nether_warts_generator_12 { background-position: -528px -858px}.sbsprite-nether_warts_generator_11 { background-position: -550px -858px}.sbsprite-nether_warts_generator_10 { background-position: -572px -858px}.sbsprite-yellow_medium_backpack { background-position: -594px -858px}.sbsprite-acacia_generator_9 { background-position: -616px -858px}.sbsprite-arachne_crystal { background-position: -638px -858px}.sbsprite-acacia_generator_8 { background-position: -660px -858px}.sbsprite-acacia_generator_7 { background-position: -682px -858px}.sbsprite-helix { background-position: -704px -858px}.sbsprite-acacia_generator_6 { background-position: -726px -858px}.sbsprite-mutant_nether_stalk { background-position: -748px -858px}.sbsprite-acacia_generator_5 { background-position: -770px -858px}.sbsprite-acacia_generator_4 { background-position: -792px -858px}.sbsprite-acacia_generator_3 { background-position: -814px -858px}.sbsprite-acacia_generator_2 { background-position: -836px -858px}.sbsprite-acacia_generator_1 { background-position: -858px -858px}.sbsprite-orange_greater_backpack { background-position: -880px -858px}.sbsprite-boss_collection_professor { background-position: -902px -858px}.sbsprite-soulflow_engine { background-position: -924px -858px}.sbsprite-armor_showcase { background-position: -946px -858px}.sbsprite-gingerbread_2 { background-position: -968px -858px}.sbsprite-gingerbread_1 { background-position: -990px -858px}.sbsprite-gingerbread_6 { background-position: -1012px -858px}.sbsprite-gingerbread_5 { background-position: -1034px -858px}.sbsprite-gingerbread_4 { background-position: 0 -880px}.sbsprite-small_backpack { background-position: -22px -880px}.sbsprite-gingerbread_3 { background-position: -44px -880px}.sbsprite-gingerbread_9 { background-position: -66px -880px}.sbsprite-gingerbread_8 { background-position: -88px -880px}.sbsprite-gingerbread_7 { background-position: -110px -880px}.sbsprite-small_fishing_sack { background-position: -132px -880px}.sbsprite-fast_travel_castle { background-position: -154px -880px}.sbsprite-glacite_jewel { background-position: -176px -880px}.sbsprite-medium_agronomy_sack { background-position: -198px -880px}.sbsprite-mining_fortune { background-position: -220px -880px}.sbsprite-pet_item_spooky_cupcake { background-position: -242px -880px}.sbsprite-red_medium_backpack { background-position: -264px -880px}.sbsprite-third_master_star { background-position: -286px -880px}.sbsprite-pet_skin_phoenix_ice { background-position: -308px -880px}.sbsprite-golem_hat { background-position: -330px -880px}.sbsprite-ghost_personality { background-position: -352px -880px}.sbsprite-epoch_cake_yellow { background-position: -374px -880px}.sbsprite-creeper_generator_11 { background-position: -396px -880px}.sbsprite-creeper_generator_10 { background-position: -418px -880px}.sbsprite-magenta_medium_backpack { background-position: -440px -880px}.sbsprite-pet_skin_elephant_green { background-position: -462px -880px}.sbsprite-soulflow_pile { background-position: -484px -880px}.sbsprite-pumpkin_personality { background-position: -506px -880px}.sbsprite-small_slayer_sack { background-position: -528px -880px}.sbsprite-poisoned_candle { background-position: -550px -880px}.sbsprite-bestiary_crimson_isle { background-position: -572px -880px}.sbsprite-ring_potion_affinity { background-position: -594px -880px}.sbsprite-rock_gemstone { background-position: -616px -880px}.sbsprite-blood_god_crest { background-position: -638px -880px}.sbsprite-judgement_core { background-position: -660px -880px}.sbsprite-rune_tidal { background-position: -682px -880px}.sbsprite-lava_talisman { background-position: -704px -880px}.sbsprite-revived_heart { background-position: -726px -880px}.sbsprite-killer_personality { background-position: -748px -880px}.sbsprite-snow_suit_helmet { background-position: -770px -880px}.sbsprite-blobfish_hat { background-position: -792px -880px}.sbsprite-stool { background-position: -814px -880px}.sbsprite-builder_blue_corn { background-position: -836px -880px}.sbsprite-pulpous_orange_juice { background-position: -858px -880px}.sbsprite-fast_travel_drag { background-position: -880px -880px}.sbsprite-tank_dungeon_ability_2 { background-position: -902px -880px}.sbsprite-tank_dungeon_ability_1 { background-position: -924px -880px}.sbsprite-treasure_talisman { background-position: -946px -880px}.sbsprite-bookcase { background-position: -968px -880px}.sbsprite-skeletor_helmet { background-position: -990px -880px}.sbsprite-unstable_baby { background-position: -1012px -880px}.sbsprite-large_combat_sack { background-position: -1034px -880px}.sbsprite-minos_relic { background-position: 0 -902px}.sbsprite-pet_item_bubblegum { background-position: -22px -902px}.sbsprite-small_xtree { background-position: -44px -902px}.sbsprite-epoch_cake_aqua { background-position: -66px -902px}.sbsprite-wither_blood { background-position: -88px -902px}.sbsprite-egg_hunt { background-position: -110px -902px}.sbsprite-rune_fire_spiral { background-position: -132px -902px}.sbsprite-wither_goggles { background-position: -154px -902px}.sbsprite-egg_stack { background-position: -176px -902px}.sbsprite-mummy_candle { background-position: -198px -902px}.sbsprite-enchanted_book_bundle_big_brain { background-position: -220px -902px}.sbsprite-builder_beetroot { background-position: -242px -902px}.sbsprite-rabbit_generator_11 { background-position: -264px -902px}.sbsprite-rabbit_generator_10 { background-position: -286px -902px}.sbsprite-rabbit_generator_12 { background-position: -308px -902px}.sbsprite-rotten_apple { background-position: -330px -902px}.sbsprite-etherwarp_merger { background-position: -352px -902px}.sbsprite-redstone_generator_11 { background-position: -374px -902px}.sbsprite-redstone_generator_10 { background-position: -396px -902px}.sbsprite-protector_baby { background-position: -418px -902px}.sbsprite-fast_travel_deep { background-position: -440px -902px}.sbsprite-polished_pumpkin { background-position: -462px -902px}.sbsprite-redstone_generator_12 { background-position: -484px -902px}.sbsprite-tic_tac_toe { background-position: -506px -902px}.sbsprite-foraging_2_portal { background-position: -528px -902px}.sbsprite-recombobulator_3000 { background-position: -550px -902px}.sbsprite-sand_generator_7 { background-position: -572px -902px}.sbsprite-sand_generator_8 { background-position: -594px -902px}.sbsprite-sand_generator_9 { background-position: -616px -902px}.sbsprite-scarecrow_personality { background-position: -638px -902px}.sbsprite-pet_skin_sheep_aqua { background-position: -660px -902px}.sbsprite-skull_10 { background-position: -682px -902px}.sbsprite-melon_personality { background-position: -704px -902px}.sbsprite-skull_11 { background-position: -726px -902px}.sbsprite-flawed_amethyst_gem { background-position: -748px -902px}.sbsprite-revive_stone { background-position: -770px -902px}.sbsprite-creeper_generator_9 { background-position: -792px -902px}.sbsprite-creeper_generator_8 { background-position: -814px -902px}.sbsprite-potato_basket { background-position: -836px -902px}.sbsprite-diamond_essence { background-position: -858px -902px}.sbsprite-creeper_generator_7 { background-position: -880px -902px}.sbsprite-creeper_generator_6 { background-position: -902px -902px}.sbsprite-creeper_generator_5 { background-position: -924px -902px}.sbsprite-creeper_generator_4 { background-position: -946px -902px}.sbsprite-creeper_generator_3 { background-position: -968px -902px}.sbsprite-creeper_generator_2 { background-position: -990px -902px}.sbsprite-sand_generator_1 { background-position: -1012px -902px}.sbsprite-creeper_generator_1 { background-position: -1034px -902px}.sbsprite-sand_generator_2 { background-position: 0 -924px}.sbsprite-sand_generator_3 { background-position: -22px -924px}.sbsprite-sand_generator_4 { background-position: -44px -924px}.sbsprite-sand_generator_5 { background-position: -66px -924px}.sbsprite-jerry_box_golden { background-position: -88px -924px}.sbsprite-sand_generator_6 { background-position: -110px -924px}.sbsprite-seal_of_the_family { background-position: -132px -924px}.sbsprite-gemstone_chamber { background-position: -154px -924px}.sbsprite-aqua { background-position: -176px -924px}.sbsprite-ice_hunk { background-position: -198px -924px}.sbsprite-crystal_ball { background-position: -220px -924px}.sbsprite-ice_chair { background-position: -242px -924px}.sbsprite-sandcastle_11 { background-position: -264px -924px}.sbsprite-sandcastle_10 { background-position: -286px -924px}.sbsprite-furnace_plus { background-position: -308px -924px}.sbsprite-pig_generator_12 { background-position: -330px -924px}.sbsprite-pig_generator_11 { background-position: -352px -924px}.sbsprite-pig_generator_10 { background-position: -374px -924px}.sbsprite-nether_artifact { background-position: -396px -924px}.sbsprite-chicken_generator_1 { background-position: -418px -924px}.sbsprite-sniper_helmet { background-position: -440px -924px}.sbsprite-chicken_generator_4 { background-position: -462px -924px}.sbsprite-chicken_generator_5 { background-position: -484px -924px}.sbsprite-heat_core { background-position: -506px -924px}.sbsprite-chicken_generator_2 { background-position: -528px -924px}.sbsprite-wishing_compass { background-position: -550px -924px}.sbsprite-chicken_generator_3 { background-position: -572px -924px}.sbsprite-desk { background-position: -594px -924px}.sbsprite-white_large_backpack { background-position: -616px -924px}.sbsprite-hub_portal { background-position: -638px -924px}.sbsprite-spruce_generator_10 { background-position: -660px -924px}.sbsprite-spruce_generator_11 { background-position: -682px -924px}.sbsprite-chicken_generator_8 { background-position: -704px -924px}.sbsprite-mithril_generator_9 { background-position: -726px -924px}.sbsprite-scarf_thesis { background-position: -748px -924px}.sbsprite-chicken_generator_9 { background-position: -770px -924px}.sbsprite-mithril_generator_8 { background-position: -792px -924px}.sbsprite-fast_travel_da { background-position: -814px -924px}.sbsprite-chicken_generator_6 { background-position: -836px -924px}.sbsprite-mithril_generator_7 { background-position: -858px -924px}.sbsprite-zombie_ring { background-position: -880px -924px}.sbsprite-chicken_generator_7 { background-position: -902px -924px}.sbsprite-mithril_generator_6 { background-position: -924px -924px}.sbsprite-wood_chest { background-position: -946px -924px}.sbsprite-glowstone_generator_8 { background-position: -968px -924px}.sbsprite-mithril_generator_1 { background-position: -990px -924px}.sbsprite-pink_bunny_12 { background-position: -1012px -924px}.sbsprite-purple_medium_backpack { background-position: -1034px -924px}.sbsprite-glowstone_generator_7 { background-position: 0 -946px}.sbsprite-pink_bunny_11 { background-position: -22px -946px}.sbsprite-pink_bunny_10 { background-position: -44px -946px}.sbsprite-glowstone_generator_9 { background-position: -66px -946px}.sbsprite-glowstone_generator_4 { background-position: -88px -946px}.sbsprite-mithril_generator_5 { background-position: -110px -946px}.sbsprite-glowstone_generator_3 { background-position: -132px -946px}.sbsprite-mithril_generator_4 { background-position: -154px -946px}.sbsprite-glowstone_generator_6 { background-position: -176px -946px}.sbsprite-mithril_generator_3 { background-position: -198px -946px}.sbsprite-glowstone_generator_5 { background-position: -220px -946px}.sbsprite-mithril_generator_2 { background-position: -242px -946px}.sbsprite-very_official_yellow_rock { background-position: -264px -946px}.sbsprite-bat_person_talisman { background-position: -286px -946px}.sbsprite-cyan_large_backpack { background-position: -308px -946px}.sbsprite-fairy_soul { background-position: -330px -946px}.sbsprite-ghost_8 { background-position: -352px -946px}.sbsprite-ghost_9 { background-position: -374px -946px}.sbsprite-power_talisman { background-position: -396px -946px}.sbsprite-ghost_4 { background-position: -418px -946px}.sbsprite-decent_coffee { background-position: -440px -946px}.sbsprite-ghost_5 { background-position: -462px -946px}.sbsprite-ember_fragment { background-position: -484px -946px}.sbsprite-ghost_6 { background-position: -506px -946px}.sbsprite-ghost_7 { background-position: -528px -946px}.sbsprite-dull_shark_tooth_necklace { background-position: -550px -946px}.sbsprite-ghost_1 { background-position: -572px -946px}.sbsprite-ghost_2 { background-position: -594px -946px}.sbsprite-ghost_3 { background-position: -616px -946px}.sbsprite-gold_gift { background-position: -638px -946px}.sbsprite-tank_wither_helmet { background-position: -660px -946px}.sbsprite-spider_ring { background-position: -682px -946px}.sbsprite-santa_10 { background-position: -704px -946px}.sbsprite-santa_11 { background-position: -726px -946px}.sbsprite-yellow_greater_backpack { background-position: -748px -946px}.sbsprite-sapphire_crystal { background-position: -770px -946px}.sbsprite-mayor_foxy { background-position: -792px -946px}.sbsprite-starred_shadow_assassin_helmet { background-position: -814px -946px}.sbsprite-god_potion_2 { background-position: -836px -946px}.sbsprite-goblin_helmet { background-position: -858px -946px}.sbsprite-diamond_generator_5 { background-position: -880px -946px}.sbsprite-lesser_orb_of_healing { background-position: -902px -946px}.sbsprite-diamond_generator_6 { background-position: -924px -946px}.sbsprite-diamond_generator_3 { background-position: -946px -946px}.sbsprite-pet_skin_jerry_red_elf { background-position: -968px -946px}.sbsprite-diamond_generator_4 { background-position: -990px -946px}.sbsprite-lady_bug_10 { background-position: -1012px -946px}.sbsprite-diamond_generator_1 { background-position: -1034px -946px}.sbsprite-star_decorations { background-position: 0 -968px}.sbsprite-diamond_generator_2 { background-position: -22px -968px}.sbsprite-bingo_artifact { background-position: -44px -968px}.sbsprite-diamond_generator_9 { background-position: -66px -968px}.sbsprite-lady_bug_11 { background-position: -88px -968px}.sbsprite-diamond_generator_7 { background-position: -110px -968px}.sbsprite-diamond_generator_8 { background-position: -132px -968px}.sbsprite-heart_of_the_mountain { background-position: -154px -968px}.sbsprite-glowstone_generator_2 { background-position: -176px -968px}.sbsprite-glowstone_generator_1 { background-position: -198px -968px}.sbsprite-pink_donut_personality { background-position: -220px -968px}.sbsprite-artifact_of_space { background-position: -242px -968px}.sbsprite-lesser_soulflow_engine { background-position: -264px -968px}.sbsprite-mithril_crystal { background-position: -286px -968px}.sbsprite-young_fragment { background-position: -308px -968px}.sbsprite-master_catacombs_pass_10 { background-position: -330px -968px}.sbsprite-flying_bats { background-position: -352px -968px}.sbsprite-light_blue_medium_backpack { background-position: -374px -968px}.sbsprite-fast_travel_hub { background-position: -396px -968px}.sbsprite-pumpkin_generator_2 { background-position: -418px -968px}.sbsprite-pumpkin_generator_1 { background-position: -440px -968px}.sbsprite-pumpkin_generator_4 { background-position: -462px -968px}.sbsprite-end_helmet { background-position: -484px -968px}.sbsprite-pumpkin_generator_3 { background-position: -506px -968px}.sbsprite-pumpkin_generator_6 { background-position: -528px -968px}.sbsprite-titanium_talisman { background-position: -550px -968px}.sbsprite-pumpkin_generator_5 { background-position: -572px -968px}.sbsprite-reaper_gem { background-position: -594px -968px}.sbsprite-rune_zap { background-position: -616px -968px}.sbsprite-pumpkin_generator_8 { background-position: -638px -968px}.sbsprite-pumpkin_generator_7 { background-position: -660px -968px}.sbsprite-pumpkin_generator_9 { background-position: -682px -968px}.sbsprite-crooked_artifact { background-position: -704px -968px}.sbsprite-haste_ring { background-position: -726px -968px}.sbsprite-soulflow_battery { background-position: -748px -968px}.sbsprite-medium_mining_sack { background-position: -770px -968px}.sbsprite-skull_1 { background-position: -792px -968px}.sbsprite-coffin { background-position: -814px -968px}.sbsprite-chest_shelves { background-position: -836px -968px}.sbsprite-power_ring { background-position: -858px -968px}.sbsprite-white_medium_backpack { background-position: -880px -968px}.sbsprite-divan_fragment { background-position: -902px -968px}.sbsprite-skull_8 { background-position: -924px -968px}.sbsprite-gold_essence { background-position: -946px -968px}.sbsprite-skull_9 { background-position: -968px -968px}.sbsprite-skull_6 { background-position: -990px -968px}.sbsprite-skull_7 { background-position: -1012px -968px}.sbsprite-skull_4 { background-position: -1034px -968px}.sbsprite-skull_5 { background-position: 0 -990px}.sbsprite-skull_2 { background-position: -22px -990px}.sbsprite-skull_3 { background-position: -44px -990px}.sbsprite-black_jumbo_backpack { background-position: -66px -990px}.sbsprite-fast_travel_mines { background-position: -88px -990px}.sbsprite-skull_vase { background-position: -110px -990px}.sbsprite-fishing_generator_8 { background-position: -132px -990px}.sbsprite-fishing_generator_7 { background-position: -154px -990px}.sbsprite-fishing_generator_6 { background-position: -176px -990px}.sbsprite-fishing_generator_5 { background-position: -198px -990px}.sbsprite-fishing_generator_4 { background-position: -220px -990px}.sbsprite-lime_jumbo_backpack { background-position: -242px -990px}.sbsprite-fishing_generator_3 { background-position: -264px -990px}.sbsprite-fishing_generator_2 { background-position: -286px -990px}.sbsprite-fishing_generator_1 { background-position: -308px -990px}.sbsprite-fishing_generator_9 { background-position: -330px -990px}.sbsprite-yellow_large_backpack { background-position: -352px -990px}.sbsprite-amber_crystal { background-position: -374px -990px}.sbsprite-suspicious_vial { background-position: -396px -990px}.sbsprite-campfire { background-position: -418px -990px}.sbsprite-snow_generator_4 { background-position: -440px -990px}.sbsprite-snow_generator_5 { background-position: -462px -990px}.sbsprite-ring_of_space { background-position: -484px -990px}.sbsprite-snow_generator_6 { background-position: -506px -990px}.sbsprite-talisman_enrichment_walk_speed { background-position: -528px -990px}.sbsprite-snow_generator_7 { background-position: -550px -990px}.sbsprite-snow_generator_1 { background-position: -572px -990px}.sbsprite-snow_generator_2 { background-position: -594px -990px}.sbsprite-snow_generator_3 { background-position: -616px -990px}.sbsprite-lime_medium_backpack { background-position: -638px -990px}.sbsprite-end_stone_1 { background-position: -660px -990px}.sbsprite-strong_fragment { background-position: -682px -990px}.sbsprite-small_foraging_sack { background-position: -704px -990px}.sbsprite-synthetic_heart { background-position: -726px -990px}.sbsprite-end_stone_4 { background-position: -748px -990px}.sbsprite-diamond_sadan_head { background-position: -770px -990px}.sbsprite-end_stone_5 { background-position: -792px -990px}.sbsprite-end_stone_2 { background-position: -814px -990px}.sbsprite-end_stone_3 { background-position: -836px -990px}.sbsprite-diamond_bonzo_head { background-position: -858px -990px}.sbsprite-end_stone_8 { background-position: -880px -990px}.sbsprite-end_stone_9 { background-position: -902px -990px}.sbsprite-end_stone_6 { background-position: -924px -990px}.sbsprite-end_stone_7 { background-position: -946px -990px}.sbsprite-snow_generator_8 { background-position: -968px -990px}.sbsprite-snow_generator_9 { background-position: -990px -990px}.sbsprite-ender_stone_generator_4 { background-position: -1012px -990px}.sbsprite-epoch_cake_blue { background-position: -1034px -990px}.sbsprite-sand_generator_10 { background-position: 0 -1012px}.sbsprite-ender_stone_generator_3 { background-position: -22px -1012px}.sbsprite-sand_generator_11 { background-position: -44px -1012px}.sbsprite-ender_stone_generator_2 { background-position: -66px -1012px}.sbsprite-ender_stone_generator_1 { background-position: -88px -1012px}.sbsprite-pet_skin_sheep_neon_yellow { background-position: -110px -1012px}.sbsprite-fast_travel_spider { background-position: -132px -1012px}.sbsprite-pet_skin_sheep_blue { background-position: -154px -1012px}.sbsprite-epoch_cake_black { background-position: -176px -1012px}.sbsprite-wise_baby { background-position: -198px -1012px}.sbsprite-chronomatron { background-position: -220px -1012px}.sbsprite-scarf_grimoire { background-position: -242px -1012px}.sbsprite-bestiary_hub { background-position: -264px -1012px}.sbsprite-ender_stone_generator_9 { background-position: -286px -1012px}.sbsprite-ender_stone_generator_8 { background-position: -308px -1012px}.sbsprite-ender_stone_generator_7 { background-position: -330px -1012px}.sbsprite-ender_stone_generator_6 { background-position: -352px -1012px}.sbsprite-ender_stone_generator_5 { background-position: -374px -1012px}.sbsprite-small_gemstone_sack { background-position: -396px -1012px}.sbsprite-flawless_ruby_gem { background-position: -418px -1012px}.sbsprite-gold_necron_head { background-position: -440px -1012px}.sbsprite-small_husbandry_sack { background-position: -462px -1012px}.sbsprite-reaper_orb { background-position: -484px -1012px}.sbsprite-blaze_helmet { background-position: -506px -1012px}.sbsprite-bee_personality { background-position: -528px -1012px}.sbsprite-fishing { background-position: -550px -1012px}.sbsprite-titanium_ring { background-position: -572px -1012px}.sbsprite-lime { background-position: -594px -1012px}.sbsprite-feather_talisman { background-position: -616px -1012px}.sbsprite-rough_jasper_gem { background-position: -638px -1012px}.sbsprite-goblin_omelette_spicy { background-position: -660px -1012px}.sbsprite-gold_generator_11 { background-position: -682px -1012px}.sbsprite-gold_generator_10 { background-position: -704px -1012px}.sbsprite-gold_generator_12 { background-position: -726px -1012px}.sbpet-sheep_green { background-position: 0 0}.sbpet-sheep_yellow { background-position: -20px 0}.sbpet-bal { background-position: -40px 0}.sbpet-grandma_wolf { background-position: -60px 0}.sbpet-sheep_orange { background-position: -80px 0}.sbpet-sheep_red { background-position: -100px 0}.sbpet-bat { background-position: -120px 0}.sbpet-elephant_red { background-position: -140px 0}.sbpet-rabbit { background-position: -160px 0}.sbpet-megalodon_baby { background-position: -180px 0}.sbpet-silverfish { background-position: -200px 0}.sbpet-ghoul { background-position: -220px 0}.sbpet-pigman { background-position: 0 -22px}.sbpet-elephant_orange { background-position: -20px -22px}.sbpet-jerry { background-position: -40px -22px}.sbpet-sheep_neon_yellow { background-position: -60px -22px}.sbpet-rat { background-position: -80px -22px}.sbpet-tiger { background-position: -100px -22px}.sbpet-lion { background-position: -120px -22px}.sbpet-horse { background-position: -140px -22px}.sbpet-sheep_neon_green { background-position: -160px -22px}.sbpet-giraffe { background-position: -180px -22px}.sbpet-black_cat_ivory { background-position: -200px -22px}.sbpet-golden_dragon { background-position: -220px -22px}.sbpet-rock_derp { background-position: 0 -44px}.sbpet-parrot { background-position: -20px -44px}.sbpet-sheep_blue { background-position: -40px -44px}.sbpet-monkey_golden { background-position: -60px -44px}.sbpet-jellyfish { background-position: -80px -44px}.sbpet-horse_zombie { background-position: -100px -44px}.sbpet-sheep_purple { background-position: -120px -44px}.sbpet-elephant_purple { background-position: -140px -44px}.sbpet-endermite_radiant { background-position: -160px -44px}.sbpet-rock { background-position: -180px -44px}.sbpet-default { background-position: -200px -44px}.sbpet-blaze { background-position: -220px -44px}.sbpet-endermite { background-position: 0 -66px}.sbpet-megalodon_bullhead { background-position: -20px -66px}.sbpet-hound_beagle { background-position: -40px -66px}.sbpet-zombie { background-position: -60px -66px}.sbpet-guardian { background-position: -80px -66px}.sbpet-scatha { background-position: -100px -66px}.sbpet-wolf { background-position: -120px -66px}.sbpet-rabbit_aquamarine { background-position: -140px -66px}.sbpet-spirit { background-position: -160px -66px}.sbpet-hound { background-position: -180px -66px}.sbpet-dragon_neon_purple { background-position: -200px -66px}.sbpet-tiger_twilight { background-position: -220px -66px}.sbpet-sheep_light_green { background-position: 0 -88px}.sbpet-monkey_gorilla { background-position: -20px -88px}.sbpet-spider { background-position: -40px -88px}.sbpet-mithril_golem { background-position: -60px -88px}.sbpet-dolphin_snubnose { background-position: -80px -88px}.sbpet-snowman { background-position: -100px -88px}.sbpet-bee { background-position: -120px -88px}.sbpet-monkey { background-position: -140px -88px}.sbpet-jerry_red_elf { background-position: -160px -88px}.sbpet-elephant_pink { background-position: -180px -88px}.sbpet-sheep_brown { background-position: -200px -88px}.sbpet-magma_cube { background-position: -220px -88px}.sbpet-pig { background-position: 0 -110px}.sbpet-blue_whale { background-position: -20px -110px}.sbpet-skeleton { background-position: -40px -110px}.sbpet-phoenix_ice { background-position: -60px -110px}.sbpet-ammonite { background-position: -80px -110px}.sbpet-elephant_green { background-position: -100px -110px}.sbpet-armadillo { background-position: -120px -110px}.sbpet-dolphin { background-position: -140px -110px}.sbpet-turtle { background-position: -160px -110px}.sbpet-dragon_neon_red { background-position: -180px -110px}.sbpet-tiger_saber_tooth { background-position: -200px -110px}.sbpet-wither_skeleton { background-position: -220px -110px}.sbpet-parrot_blue_macaw { background-position: 0 -132px}.sbpet-ocelot { background-position: -20px -132px}.sbpet-sheep_light_gray { background-position: -40px -132px}.sbpet-elephant_blue { background-position: -60px -132px}.sbpet-chicken_baby_chick { background-position: -80px -132px}.sbpet-rock_thinking { background-position: -100px -132px}.sbpet-enderman_slayer { background-position: -120px -132px}.sbpet-ender_dragon { background-position: -140px -132px}.sbpet-rabbit_rose { background-position: -160px -132px}.sbpet-sheep_white { background-position: -180px -132px}.sbpet-silverfish_fossilized { background-position: -200px -132px}.sbpet-squid { background-position: -220px -132px}.sbpet-sheep_light_blue { background-position: 0 -154px}.sbpet-elephant { background-position: -20px -154px}.sbpet-golden_dragon_egg { background-position: -40px -154px}.sbpet-enderman { background-position: -60px -154px}.sbpet-chicken { background-position: -80px -154px}.sbpet-parrot_gold_macaw { background-position: -100px -154px}.sbpet-sheep_gray { background-position: -120px -154px}.sbpet-rock_cool { background-position: -140px -154px}.sbpet-rock_laugh { background-position: -160px -154px}.sbpet-sheep_black { background-position: -180px -154px}.sbpet-sheep_neon_blue { background-position: -200px -154px}.sbpet-rock_embarrassed { background-position: -220px -154px}.sbpet-dragon_neon_blue { background-position: 0 -176px}.sbpet-sheep { background-position: -20px -176px}.sbpet-baby_yeti { background-position: -40px -176px}.sbpet-sheep_aqua { background-position: -60px -176px}.sbpet-sheep_pink { background-position: -80px -176px}.sbpet-elephant_monochrome { background-position: -100px -176px}.sbpet-wolf_henzo_doggo { background-position: -120px -176px}.sbpet-squid_glow { background-position: -140px -176px}.sbpet-flying_fish { background-position: -160px -176px}.sbpet-griffin { background-position: -180px -176px}.sbpet-jerry_green_elf { background-position: -200px -176px}.sbpet-dragon_pastel { background-position: -220px -176px}.sbpet-sheep_neon_red { background-position: 0 -198px}.sbpet-sheep_magenta { background-position: -20px -198px}.sbpet-skeleton_horse { background-position: -40px -198px}.sbpet-megalodon { background-position: -60px -198px}.sbpet-lion_lioness { background-position: -80px -198px}.sbpet-tarantula { background-position: -100px -198px}.sbpet-yeti_grown_up { background-position: -120px -198px}.sbpet-phoenix { background-position: -140px -198px}.sbpet-golem { background-position: -160px -198px}.sbpet-black_cat { background-position: -180px -198px}.sbpet-whale_orca { background-position: -200px -198px}.sbpet-rock_smile { background-position: -220px -198px}.sbpet-wither { background-position: 0 -220px}.sbpet-black_cat_onyx { background-position: -20px -220px}.sbspray-AngryTurkey { background-position: 0 0}.sbspray-AnotherDimension { background-position: -128px 0}.sbspray-BlueArrowE { background-position: -256px 0}.sbspray-BlueArrowN { background-position: -384px 0}.sbspray-BlueArrowNE { background-position: -512px 0}.sbspray-BlueArrowNW { background-position: -640px 0}.sbspray-BlueArrowS { background-position: -768px 0}.sbspray-BlueArrowSE { background-position: -896px 0}.sbspray-BlueArrowSW { background-position: -1024px 0}.sbspray-BlueArrowW { background-position: -1152px 0}.sbspray-Bonzo { background-position: 0 -128px}.sbspray-Boom { background-position: -128px -128px}.sbspray-BunnyGG { background-position: -256px -128px}.sbspray-ChestGlow { background-position: -384px -128px}.sbspray-Chill { background-position: -512px -128px}.sbspray-Chimney { background-position: -640px -128px}.sbspray-ChocolateFeast { background-position: -768px -128px}.sbspray-ChristmasTree { background-position: -896px -128px}.sbspray-Coconut { background-position: -1024px -128px}.sbspray-Creeper { background-position: -1152px -128px}.sbspray-EasterBasket { background-position: 0 -256px}.sbspray-EasterCreeper { background-position: -128px -256px}.sbspray-EasterEggs { background-position: -256px -256px}.sbspray-Eek { background-position: -384px -256px}.sbspray-EggHunt { background-position: -512px -256px}.sbspray-EggSurprise { background-position: -640px -256px}.sbspray-Faboolous { background-position: -768px -256px}.sbspray-FarmingArrowE { background-position: -896px -256px}.sbspray-FarmingArrowN { background-position: -1024px -256px}.sbspray-FarmingArrowS { background-position: -1152px -256px}.sbspray-FarmingArrowW { background-position: 0 -384px}.sbspray-FoundU { background-position: -128px -384px}.sbspray-Garlic { background-position: -256px -384px}.sbspray-GenericArmor { background-position: -384px -384px}.sbspray-GenericBooks { background-position: -512px -384px}.sbspray-GenericFishing { background-position: -640px -384px}.sbspray-GenericMob { background-position: -768px -384px}.sbspray-GenericOres { background-position: -896px -384px}.sbspray-GenericPotions { background-position: -1024px -384px}.sbspray-GenericWeapons { background-position: -1152px -384px}.sbspray-GoldenEgg { background-position: 0 -512px}.sbspray-Heart { background-position: -128px -512px}.sbspray-Hypixel { background-position: -256px -512px}.sbspray-HypixelDark { background-position: -384px -512px}.sbspray-IceCream { background-position: -512px -512px}.sbspray-Kite { background-position: -640px -512px}.sbspray-LetUsIn { background-position: -768px -512px}.sbspray-Lifebelt { background-position: -896px -512px}.sbspray-MinionAnimals { background-position: -1024px -512px}.sbspray-MinionFarming { background-position: -1152px -512px}.sbspray-MinionForaging { background-position: 0 -640px}.sbspray-MinionMining { background-position: -128px -640px}.sbspray-MinionMisc { background-position: -256px -640px}.sbspray-MinionMonsters { background-position: -384px -640px}.sbspray-OnFire { background-position: -512px -640px}.sbspray-Porkchop { background-position: -640px -640px}.sbspray-PortalArrowE { background-position: -768px -640px}.sbspray-PortalArrowN { background-position: -896px -640px}.sbspray-PortalArrowS { background-position: -1024px -640px}.sbspray-PortalArrowW { background-position: -1152px -640px}.sbspray-Presents { background-position: 0 -768px}.sbspray-Puffer { background-position: -128px -768px}.sbspray-PuppySurprise { background-position: -256px -768px}.sbspray-RabbitCostume { background-position: -384px -768px}.sbspray-RedArrowE { background-position: -512px -768px}.sbspray-RedArrowN { background-position: -640px -768px}.sbspray-RedArrowNE { background-position: -768px -768px}.sbspray-RedArrowNW { background-position: -896px -768px}.sbspray-RedArrowS { background-position: -1024px -768px}.sbspray-RedArrowSE { background-position: -1152px -768px}.sbspray-RedArrowSW { background-position: 0 -896px}.sbspray-RedArrowW { background-position: -128px -896px}.sbspray-SandCastleH { background-position: -256px -896px}.sbspray-Sandcastle { background-position: -384px -896px}.sbspray-SantaJerry { background-position: -512px -896px}.sbspray-SantaSlips { background-position: -640px -896px}.sbspray-Sign { background-position: -768px -896px}.sbspray-SkyBlockChristmas { background-position: -896px -896px}.sbspray-SniperSnowball { background-position: -1024px -896px}.sbspray-Snowball { background-position: -1152px -896px}.sbspray-StorageArrowE { background-position: 0 -1024px}.sbspray-StorageArrowN { background-position: -128px -1024px}.sbspray-StorageArrowS { background-position: -256px -1024px}.sbspray-StorageArrowW { background-position: -384px -1024px}.sbspray-Surfing { background-position: -512px -1024px}.sbspray-TheWrongEggs { background-position: -640px -1024px}.sbspray-Trap { background-position: -768px -1024px}.sbspray-TrickOrTreat { background-position: -896px -1024px}.sbspray-UndeadJerry { background-position: -1024px -1024px}.sbspray-Volleyball { background-position: -1152px -1024px}.sbspray-Watcher { background-position: 0 -1152px}.sbspray-Whoosh { background-position: -128px -1152px}.sbspray-WitchPlease { background-position: -256px -1152px}.sbspray-Wreath { background-position: -384px -1152px}.sbspray-YellowArrowE { background-position: -512px -1152px}.sbspray-YellowArrowN { background-position: -640px -1152px}.sbspray-YellowArrowNE { background-position: -768px -1152px}.sbspray-YellowArrowNW { background-position: -896px -1152px}.sbspray-YellowArrowS { background-position: -1024px -1152px}.sbspray-YellowArrowSE { background-position: -1152px -1152px}.sbspray-YellowArrowSW { background-position: -1280px 0}.sbspray-YellowArrowW { background-position: -1280px -128px}.mcsprite-acacia_boat { background-position: 0 0}.mcsprite-acacia_button { background-position: -32px 0}.mcsprite-acacia_door { background-position: -64px 0}.mcsprite-acacia_fence { background-position: -96px 0}.mcsprite-acacia_fence_gate { background-position: -128px 0}.mcsprite-acacia_leaves { background-position: -160px 0}.mcsprite-acacia_log { background-position: -192px 0}.mcsprite-acacia_planks { background-position: -224px 0}.mcsprite-acacia_pressure_plate { background-position: -256px 0}.mcsprite-acacia_sapling { background-position: -288px 0}.mcsprite-acacia_sign { background-position: -320px 0}.mcsprite-acacia_slab { background-position: -352px 0}.mcsprite-acacia_stairs { background-position: -384px 0}.mcsprite-acacia_trapdoor { background-position: -416px 0}.mcsprite-acacia_wood { background-position: -448px 0}.mcsprite-acacia_wood_button { background-position: -480px 0}.mcsprite-acacia_wood_door { background-position: -512px 0}.mcsprite-acacia_wood_fence { background-position: -544px 0}.mcsprite-acacia_wood_fence_gate { background-position: -576px 0}.mcsprite-acacia_wood_planks { background-position: -608px 0}.mcsprite-acacia_wood_pressure_plate { background-position: -640px 0}.mcsprite-acacia_wood_sign { background-position: -672px 0}.mcsprite-acacia_wood_slab { background-position: -704px 0}.mcsprite-acacia_wood_stairs { background-position: -736px 0}.mcsprite-acacia_wood_trapdoor { background-position: -768px 0}.mcsprite-activator_rail { background-position: -800px 0}.mcsprite-adult_carrots { background-position: -832px 0}.mcsprite-adult_nether_warts { background-position: -864px 0}.mcsprite-adult_potatoes { background-position: -896px 0}.mcsprite-adult_wheat_crops { background-position: -928px 0}.mcsprite-air { background-position: -960px 0}.mcsprite-allium { background-position: -992px 0}.mcsprite-amethyst_cluster { background-position: -1024px 0}.mcsprite-amethyst_shard { background-position: -1056px 0}.mcsprite-ancient_debris { background-position: -1088px 0}.mcsprite-andesite { background-position: -1120px 0}.mcsprite-andesite_slab { background-position: -1152px 0}.mcsprite-andesite_stairs { background-position: -1184px 0}.mcsprite-andesite_wall { background-position: -1216px 0}.mcsprite-anvil { background-position: -1248px 0}.mcsprite-apple { background-position: 0 -32px}.mcsprite-armor_stand { background-position: -32px -32px}.mcsprite-arrow { background-position: -64px -32px}.mcsprite-arrow_loaded_crossbow { background-position: -96px -32px}.mcsprite-arrow_of_decay { background-position: -128px -32px}.mcsprite-arrow_of_fire_resistance { background-position: -160px -32px}.mcsprite-arrow_of_harming { background-position: -192px -32px}.mcsprite-arrow_of_healing { background-position: -224px -32px}.mcsprite-arrow_of_invisibility { background-position: -256px -32px}.mcsprite-arrow_of_leaping { background-position: -288px -32px}.mcsprite-arrow_of_luck { background-position: -320px -32px}.mcsprite-arrow_of_night_vision { background-position: -352px -32px}.mcsprite-arrow_of_poison { background-position: -384px -32px}.mcsprite-arrow_of_regeneration { background-position: -416px -32px}.mcsprite-arrow_of_slow_falling { background-position: -448px -32px}.mcsprite-arrow_of_slowness { background-position: -480px -32px}.mcsprite-arrow_of_splashing { background-position: -512px -32px}.mcsprite-arrow_of_strength { background-position: -544px -32px}.mcsprite-arrow_of_swiftness { background-position: -576px -32px}.mcsprite-arrow_of_the_turtle_master { background-position: -608px -32px}.mcsprite-arrow_of_water_breathing { background-position: -640px -32px}.mcsprite-arrow_of_weakness { background-position: -672px -32px}.mcsprite-awkward_lingering_potion { background-position: -704px -32px}.mcsprite-awkward_potion { background-position: -736px -32px}.mcsprite-awkward_splash_potion { background-position: -768px -32px}.mcsprite-axolotl_spawn_egg { background-position: -800px -32px}.mcsprite-azalea { background-position: -832px -32px}.mcsprite-azalea_leaves { background-position: -864px -32px}.mcsprite-azure_bluet { background-position: -896px -32px}.mcsprite-baked_potato { background-position: -928px -32px}.mcsprite-bamboo { background-position: -960px -32px}.mcsprite-banner { background-position: -992px -32px}.mcsprite-barrel { background-position: -1024px -32px}.mcsprite-barrier { background-position: -1056px -32px}.mcsprite-basalt { background-position: -1088px -32px}.mcsprite-bat_spawn_egg { background-position: -1120px -32px}.mcsprite-beacon { background-position: -1152px -32px}.mcsprite-bedrock { background-position: -1184px -32px}.mcsprite-bee_nest { background-position: -1216px -32px}.mcsprite-bee_spawn_egg { background-position: -1248px -32px}.mcsprite-beehive { background-position: 0 -64px}.mcsprite-beetroot { background-position: -32px -64px}.mcsprite-beetroot_seeds { background-position: -64px -64px}.mcsprite-beetroot_soup { background-position: -96px -64px}.mcsprite-beetroots { background-position: -128px -64px}.mcsprite-bell { background-position: -160px -64px}.mcsprite-big_dripleaf { background-position: -192px -64px}.mcsprite-birch_boat { background-position: -224px -64px}.mcsprite-birch_button { background-position: -256px -64px}.mcsprite-birch_door { background-position: -288px -64px}.mcsprite-birch_fence { background-position: -320px -64px}.mcsprite-birch_fence_gate { background-position: -352px -64px}.mcsprite-birch_leaves { background-position: -384px -64px}.mcsprite-birch_log { background-position: -416px -64px}.mcsprite-birch_planks { background-position: -448px -64px}.mcsprite-birch_pressure_plate { background-position: -480px -64px}.mcsprite-birch_sapling { background-position: -512px -64px}.mcsprite-birch_sign { background-position: -544px -64px}.mcsprite-birch_slab { background-position: -576px -64px}.mcsprite-birch_stairs { background-position: -608px -64px}.mcsprite-birch_trapdoor { background-position: -640px -64px}.mcsprite-birch_wood { background-position: -672px -64px}.mcsprite-birch_wood_button { background-position: -704px -64px}.mcsprite-birch_wood_door { background-position: -736px -64px}.mcsprite-birch_wood_fence { background-position: -768px -64px}.mcsprite-birch_wood_fence_gate { background-position: -800px -64px}.mcsprite-birch_wood_planks { background-position: -832px -64px}.mcsprite-birch_wood_pressure_plate { background-position: -864px -64px}.mcsprite-birch_wood_sign { background-position: -896px -64px}.mcsprite-birch_wood_slab { background-position: -928px -64px}.mcsprite-birch_wood_stairs { background-position: -960px -64px}.mcsprite-birch_wood_trapdoor { background-position: -992px -64px}.mcsprite-black_banner { background-position: -1024px -64px}.mcsprite-black_bed { background-position: -1056px -64px}.mcsprite-black_bed_lce { background-position: -1088px -64px}.mcsprite-black_candle { background-position: -1120px -64px}.mcsprite-black_carpet { background-position: -1152px -64px}.mcsprite-black_concrete { background-position: -1184px -64px}.mcsprite-black_concrete_powder { background-position: -1216px -64px}.mcsprite-black_dye { background-position: -1248px -64px}.mcsprite-black_firework_star { background-position: 0 -96px}.mcsprite-black_glazed_terracotta { background-position: -32px -96px}.mcsprite-black_shield { background-position: -64px -96px}.mcsprite-black_shulker_box { background-position: -96px -96px}.mcsprite-black_stained_glass { background-position: -128px -96px}.mcsprite-black_stained_glass_pane { background-position: -160px -96px}.mcsprite-black_terracotta { background-position: -192px -96px}.mcsprite-black_wool { background-position: -224px -96px}.mcsprite-blackstone { background-position: -256px -96px}.mcsprite-blackstone_slab { background-position: -288px -96px}.mcsprite-blackstone_stairs { background-position: -320px -96px}.mcsprite-blackstone_wall { background-position: -352px -96px}.mcsprite-blast_furnace { background-position: -384px -96px}.mcsprite-blaze_powder { background-position: -416px -96px}.mcsprite-blaze_rod { background-position: -448px -96px}.mcsprite-blaze_spawn_egg { background-position: -480px -96px}.mcsprite-block_of_amethyst { background-position: -512px -96px}.mcsprite-block_of_coal { background-position: -544px -96px}.mcsprite-block_of_copper { background-position: -576px -96px}.mcsprite-block_of_diamond { background-position: -608px -96px}.mcsprite-block_of_emerald { background-position: -640px -96px}.mcsprite-block_of_gold { background-position: -672px -96px}.mcsprite-block_of_iron { background-position: -704px -96px}.mcsprite-block_of_lapis_lazuli { background-position: -736px -96px}.mcsprite-block_of_netherite { background-position: -768px -96px}.mcsprite-block_of_quartz { background-position: -800px -96px}.mcsprite-block_of_raw_copper { background-position: -832px -96px}.mcsprite-block_of_raw_gold { background-position: -864px -96px}.mcsprite-block_of_raw_iron { background-position: -896px -96px}.mcsprite-block_of_redstone { background-position: -928px -96px}.mcsprite-blue_banner { background-position: -960px -96px}.mcsprite-blue_bed { background-position: -992px -96px}.mcsprite-blue_bed_lce { background-position: -1024px -96px}.mcsprite-blue_candle { background-position: -1056px -96px}.mcsprite-blue_carpet { background-position: -1088px -96px}.mcsprite-blue_concrete { background-position: -1120px -96px}.mcsprite-blue_concrete_powder { background-position: -1152px -96px}.mcsprite-blue_dye { background-position: -1184px -96px}.mcsprite-blue_firework_star { background-position: -1216px -96px}.mcsprite-blue_glazed_terracotta { background-position: -1248px -96px}.mcsprite-blue_ice { background-position: 0 -128px}.mcsprite-blue_orchid { background-position: -32px -128px}.mcsprite-blue_shield { background-position: -64px -128px}.mcsprite-blue_shulker_box { background-position: -96px -128px}.mcsprite-blue_stained_glass { background-position: -128px -128px}.mcsprite-blue_stained_glass_pane { background-position: -160px -128px}.mcsprite-blue_terracotta { background-position: -192px -128px}.mcsprite-blue_wool { background-position: -224px -128px}.mcsprite-bone { background-position: -256px -128px}.mcsprite-bone_block { background-position: -288px -128px}.mcsprite-bone_meal { background-position: -320px -128px}.mcsprite-book { background-position: -352px -128px}.mcsprite-book_and_quill { background-position: -384px -128px}.mcsprite-bookshelf { background-position: -416px -128px}.mcsprite-bottle_o_enchanting { background-position: -448px -128px}.mcsprite-bow { background-position: -480px -128px}.mcsprite-bowl { background-position: -512px -128px}.mcsprite-brain_coral { background-position: -544px -128px}.mcsprite-brain_coral_block { background-position: -576px -128px}.mcsprite-brain_coral_fan { background-position: -608px -128px}.mcsprite-bread { background-position: -640px -128px}.mcsprite-brewing_stand { background-position: -672px -128px}.mcsprite-brick { background-position: -704px -128px}.mcsprite-brick_slab { background-position: -736px -128px}.mcsprite-brick_slab_old { background-position: -768px -128px}.mcsprite-brick_stairs { background-position: -800px -128px}.mcsprite-brick_wall { background-position: -832px -128px}.mcsprite-bricks { background-position: -864px -128px}.mcsprite-bricks_old { background-position: -896px -128px}.mcsprite-broken_anvil { background-position: -928px -128px}.mcsprite-broken_elytra { background-position: -960px -128px}.mcsprite-brown_banner { background-position: -992px -128px}.mcsprite-brown_bed { background-position: -1024px -128px}.mcsprite-brown_bed_lce { background-position: -1056px -128px}.mcsprite-brown_candle { background-position: -1088px -128px}.mcsprite-brown_carpet { background-position: -1120px -128px}.mcsprite-brown_concrete { background-position: -1152px -128px}.mcsprite-brown_concrete_powder { background-position: -1184px -128px}.mcsprite-brown_dye { background-position: -1216px -128px}.mcsprite-brown_firework_star { background-position: -1248px -128px}.mcsprite-brown_glazed_terracotta { background-position: 0 -160px}.mcsprite-brown_mushroom { background-position: -32px -160px}.mcsprite-brown_mushroom_block { background-position: -64px -160px}.mcsprite-brown_shield { background-position: -96px -160px}.mcsprite-brown_shulker_box { background-position: -128px -160px}.mcsprite-brown_stained_glass { background-position: -160px -160px}.mcsprite-brown_stained_glass_pane { background-position: -192px -160px}.mcsprite-brown_terracotta { background-position: -224px -160px}.mcsprite-brown_wool { background-position: -256px -160px}.mcsprite-bubble_column { background-position: -288px -160px}.mcsprite-bubble_coral { background-position: -320px -160px}.mcsprite-bubble_coral_block { background-position: -352px -160px}.mcsprite-bubble_coral_fan { background-position: -384px -160px}.mcsprite-bucket { background-position: -416px -160px}.mcsprite-bucket_of_axolotl { background-position: -448px -160px}.mcsprite-bucket_of_cod { background-position: -480px -160px}.mcsprite-bucket_of_pufferfish { background-position: -512px -160px}.mcsprite-bucket_of_salmon { background-position: -544px -160px}.mcsprite-bucket_of_tropical_fish { background-position: -576px -160px}.mcsprite-budding_amethyst { background-position: -608px -160px}.mcsprite-bundle { background-position: -640px -160px}.mcsprite-buried_treasure_map { background-position: -672px -160px}.mcsprite-cactus { background-position: -704px -160px}.mcsprite-cactus_green { background-position: -736px -160px}.mcsprite-cake { background-position: -768px -160px}.mcsprite-calcite { background-position: -800px -160px}.mcsprite-campfire { background-position: -832px -160px}.mcsprite-candle { background-position: -864px -160px}.mcsprite-carrot { background-position: -896px -160px}.mcsprite-carrot_on_a_stick { background-position: -928px -160px}.mcsprite-cartography_table { background-position: -960px -160px}.mcsprite-carved_pumpkin { background-position: -992px -160px}.mcsprite-cast_fishing_rod { background-position: -1024px -160px}.mcsprite-cat_spawn_egg { background-position: -1056px -160px}.mcsprite-cauldron { background-position: -1088px -160px}.mcsprite-cave_air { background-position: -1120px -160px}.mcsprite-cave_spider_spawn_egg { background-position: -1152px -160px}.mcsprite-chain { background-position: -1184px -160px}.mcsprite-chainmail_boots { background-position: -1216px -160px}.mcsprite-chainmail_chestplate { background-position: -1248px -160px}.mcsprite-chainmail_helmet { background-position: 0 -192px}.mcsprite-chainmail_leggings { background-position: -32px -192px}.mcsprite-charcoal { background-position: -64px -192px}.mcsprite-chest { background-position: -96px -192px}.mcsprite-chicken_spawn_egg { background-position: -128px -192px}.mcsprite-chipped_anvil { background-position: -160px -192px}.mcsprite-chiseled_deepslate { background-position: -192px -192px}.mcsprite-chiseled_nether_bricks { background-position: -224px -192px}.mcsprite-chiseled_polished_blackstone { background-position: -256px -192px}.mcsprite-chiseled_quartz_block { background-position: -288px -192px}.mcsprite-chiseled_red_sandstone { background-position: -320px -192px}.mcsprite-chiseled_sandstone { background-position: -352px -192px}.mcsprite-chiseled_stone_bricks { background-position: -384px -192px}.mcsprite-chiseled_stone_bricks_monster_egg { background-position: -416px -192px}.mcsprite-chorus_flower { background-position: -448px -192px}.mcsprite-chorus_fruit { background-position: -480px -192px}.mcsprite-chorus_plant { background-position: -512px -192px}.mcsprite-clay { background-position: -544px -192px}.mcsprite-clay_ball { background-position: -576px -192px}.mcsprite-clock { background-position: -608px -192px}.mcsprite-clownfish { background-position: -640px -192px}.mcsprite-coal { background-position: -672px -192px}.mcsprite-coal_ore { background-position: -704px -192px}.mcsprite-coarse_dirt { background-position: -736px -192px}.mcsprite-cobbled_deepslate { background-position: -768px -192px}.mcsprite-cobbled_deepslate_slab { background-position: -800px -192px}.mcsprite-cobbled_deepslate_stairs { background-position: -832px -192px}.mcsprite-cobbled_deepslate_wall { background-position: -864px -192px}.mcsprite-cobblestone { background-position: -896px -192px}.mcsprite-cobblestone_monster_egg { background-position: -928px -192px}.mcsprite-cobblestone_slab { background-position: -960px -192px}.mcsprite-cobblestone_stairs { background-position: -992px -192px}.mcsprite-cobblestone_wall { background-position: -1024px -192px}.mcsprite-cobweb { background-position: -1056px -192px}.mcsprite-cocoa_beans { background-position: -1088px -192px}.mcsprite-cod_spawn_egg { background-position: -1120px -192px}.mcsprite-command_block { background-position: -1152px -192px}.mcsprite-compass { background-position: -1184px -192px}.mcsprite-composter { background-position: -1216px -192px}.mcsprite-conduit { background-position: -1248px -192px}.mcsprite-cooked_beef { background-position: 0 -224px}.mcsprite-cooked_chicken { background-position: -32px -224px}.mcsprite-cooked_cod { background-position: -64px -224px}.mcsprite-cooked_fish { background-position: -96px -224px}.mcsprite-cooked_mutton { background-position: -128px -224px}.mcsprite-cooked_porkchop { background-position: -160px -224px}.mcsprite-cooked_rabbit { background-position: -192px -224px}.mcsprite-cooked_salmon { background-position: -224px -224px}.mcsprite-cookie { background-position: -256px -224px}.mcsprite-copper_block { background-position: -288px -224px}.mcsprite-copper_ingot { background-position: -320px -224px}.mcsprite-copper_ore { background-position: -352px -224px}.mcsprite-cornflower { background-position: -384px -224px}.mcsprite-cow_spawn_egg { background-position: -416px -224px}.mcsprite-cracked_deepslate_bricks { background-position: -448px -224px}.mcsprite-cracked_deepslate_tiles { background-position: -480px -224px}.mcsprite-cracked_nether_bricks { background-position: -512px -224px}.mcsprite-cracked_polished_blackstone_bricks { background-position: -544px -224px}.mcsprite-cracked_stone_bricks { background-position: -576px -224px}.mcsprite-cracked_stone_bricks_monster_egg { background-position: -608px -224px}.mcsprite-crafting_table { background-position: -640px -224px}.mcsprite-creeper_head { background-position: -672px -224px}.mcsprite-creeper_spawn_egg { background-position: -704px -224px}.mcsprite-crimson_button { background-position: -736px -224px}.mcsprite-crimson_door { background-position: -768px -224px}.mcsprite-crimson_fence { background-position: -800px -224px}.mcsprite-crimson_fence_gate { background-position: -832px -224px}.mcsprite-crimson_fungus { background-position: -864px -224px}.mcsprite-crimson_hyphae { background-position: -896px -224px}.mcsprite-crimson_nylium { background-position: -928px -224px}.mcsprite-crimson_planks { background-position: -960px -224px}.mcsprite-crimson_pressure_plate { background-position: -992px -224px}.mcsprite-crimson_roots { background-position: -1024px -224px}.mcsprite-crimson_sign { background-position: -1056px -224px}.mcsprite-crimson_slab { background-position: -1088px -224px}.mcsprite-crimson_stairs { background-position: -1120px -224px}.mcsprite-crimson_stem { background-position: -1152px -224px}.mcsprite-crimson_trapdoor { background-position: -1184px -224px}.mcsprite-crossbow { background-position: -1216px -224px}.mcsprite-crying_obsidian { background-position: -1248px -224px}.mcsprite-cut_copper { background-position: 0 -256px}.mcsprite-cut_copper_block { background-position: -32px -256px}.mcsprite-cut_copper_slab { background-position: -64px -256px}.mcsprite-cut_copper_stairs { background-position: -96px -256px}.mcsprite-cut_red_sandstone { background-position: -128px -256px}.mcsprite-cut_red_sandstone_slab { background-position: -160px -256px}.mcsprite-cut_sandstone { background-position: -192px -256px}.mcsprite-cut_sandstone_slab { background-position: -224px -256px}.mcsprite-cyan_banner { background-position: -256px -256px}.mcsprite-cyan_bed { background-position: -288px -256px}.mcsprite-cyan_bed_lce { background-position: -320px -256px}.mcsprite-cyan_candle { background-position: -352px -256px}.mcsprite-cyan_carpet { background-position: -384px -256px}.mcsprite-cyan_concrete { background-position: -416px -256px}.mcsprite-cyan_concrete_powder { background-position: -448px -256px}.mcsprite-cyan_dye { background-position: -480px -256px}.mcsprite-cyan_firework_star { background-position: -512px -256px}.mcsprite-cyan_glazed_terracotta { background-position: -544px -256px}.mcsprite-cyan_shield { background-position: -576px -256px}.mcsprite-cyan_shulker_box { background-position: -608px -256px}.mcsprite-cyan_stained_glass { background-position: -640px -256px}.mcsprite-cyan_stained_glass_pane { background-position: -672px -256px}.mcsprite-cyan_terracotta { background-position: -704px -256px}.mcsprite-cyan_wool { background-position: -736px -256px}.mcsprite-dandelion { background-position: -768px -256px}.mcsprite-dandelion_yellow { background-position: -800px -256px}.mcsprite-dark_oak_boat { background-position: -832px -256px}.mcsprite-dark_oak_button { background-position: -864px -256px}.mcsprite-dark_oak_door { background-position: -896px -256px}.mcsprite-dark_oak_fence { background-position: -928px -256px}.mcsprite-dark_oak_fence_gate { background-position: -960px -256px}.mcsprite-dark_oak_leaves { background-position: -992px -256px}.mcsprite-dark_oak_log { background-position: -1024px -256px}.mcsprite-dark_oak_planks { background-position: -1056px -256px}.mcsprite-dark_oak_pressure_plate { background-position: -1088px -256px}.mcsprite-dark_oak_sapling { background-position: -1120px -256px}.mcsprite-dark_oak_sign { background-position: -1152px -256px}.mcsprite-dark_oak_slab { background-position: -1184px -256px}.mcsprite-dark_oak_stairs { background-position: -1216px -256px}.mcsprite-dark_oak_trapdoor { background-position: -1248px -256px}.mcsprite-dark_oak_wood { background-position: 0 -288px}.mcsprite-dark_oak_wood_button { background-position: -32px -288px}.mcsprite-dark_oak_wood_door { background-position: -64px -288px}.mcsprite-dark_oak_wood_fence { background-position: -96px -288px}.mcsprite-dark_oak_wood_fence_gate { background-position: -128px -288px}.mcsprite-dark_oak_wood_planks { background-position: -160px -288px}.mcsprite-dark_oak_wood_pressure_plate { background-position: -192px -288px}.mcsprite-dark_oak_wood_sign { background-position: -224px -288px}.mcsprite-dark_oak_wood_slab { background-position: -256px -288px}.mcsprite-dark_oak_wood_stairs { background-position: -288px -288px}.mcsprite-dark_oak_wood_trapdoor { background-position: -320px -288px}.mcsprite-dark_prismarine { background-position: -352px -288px}.mcsprite-dark_prismarine_slab { background-position: -384px -288px}.mcsprite-dark_prismarine_stairs { background-position: -416px -288px}.mcsprite-daylight_detector { background-position: -448px -288px}.mcsprite-daylight_sensor { background-position: -480px -288px}.mcsprite-dead_brain_coral { background-position: -512px -288px}.mcsprite-dead_brain_coral_block { background-position: -544px -288px}.mcsprite-dead_brain_coral_fan { background-position: -576px -288px}.mcsprite-dead_bubble_coral { background-position: -608px -288px}.mcsprite-dead_bubble_coral_block { background-position: -640px -288px}.mcsprite-dead_bubble_coral_fan { background-position: -672px -288px}.mcsprite-dead_bush { background-position: -704px -288px}.mcsprite-dead_fire_coral { background-position: -736px -288px}.mcsprite-dead_fire_coral_block { background-position: -768px -288px}.mcsprite-dead_fire_coral_fan { background-position: -800px -288px}.mcsprite-dead_horn_coral { background-position: -832px -288px}.mcsprite-dead_horn_coral_block { background-position: -864px -288px}.mcsprite-dead_horn_coral_fan { background-position: -896px -288px}.mcsprite-dead_tube_coral { background-position: -928px -288px}.mcsprite-dead_tube_coral_block { background-position: -960px -288px}.mcsprite-dead_tube_coral_fan { background-position: -992px -288px}.mcsprite-debug_stick { background-position: -1024px -288px}.mcsprite-deepslate { background-position: -1056px -288px}.mcsprite-deepslate_brick_slab { background-position: -1088px -288px}.mcsprite-deepslate_brick_stairs { background-position: -1120px -288px}.mcsprite-deepslate_brick_wall { background-position: -1152px -288px}.mcsprite-deepslate_bricks { background-position: -1184px -288px}.mcsprite-deepslate_coal_ore { background-position: -1216px -288px}.mcsprite-deepslate_copper_ore { background-position: -1248px -288px}.mcsprite-deepslate_diamond_ore { background-position: 0 -320px}.mcsprite-deepslate_emerald_ore { background-position: -32px -320px}.mcsprite-deepslate_gold_ore { background-position: -64px -320px}.mcsprite-deepslate_iron_ore { background-position: -96px -320px}.mcsprite-deepslate_lapis_lazuli_ore { background-position: -128px -320px}.mcsprite-deepslate_redstone_ore { background-position: -160px -320px}.mcsprite-deepslate_tile_slab { background-position: -192px -320px}.mcsprite-deepslate_tile_stairs { background-position: -224px -320px}.mcsprite-deepslate_tile_wall { background-position: -256px -320px}.mcsprite-deepslate_tiles { background-position: -288px -320px}.mcsprite-detector_rail { background-position: -320px -320px}.mcsprite-diamond { background-position: -352px -320px}.mcsprite-diamond_axe { background-position: -384px -320px}.mcsprite-diamond_boots { background-position: -416px -320px}.mcsprite-diamond_chestplate { background-position: -448px -320px}.mcsprite-diamond_helmet { background-position: -480px -320px}.mcsprite-diamond_hoe { background-position: -512px -320px}.mcsprite-diamond_horse_armor { background-position: -544px -320px}.mcsprite-diamond_leggings { background-position: -576px -320px}.mcsprite-diamond_ore { background-position: -608px -320px}.mcsprite-diamond_pickaxe { background-position: -640px -320px}.mcsprite-diamond_shovel { background-position: -672px -320px}.mcsprite-diamond_sword { background-position: -704px -320px}.mcsprite-diorite { background-position: -736px -320px}.mcsprite-diorite_slab { background-position: -768px -320px}.mcsprite-diorite_stairs { background-position: -800px -320px}.mcsprite-diorite_wall { background-position: -832px -320px}.mcsprite-dirt { background-position: -864px -320px}.mcsprite-dirt_path { background-position: -896px -320px}.mcsprite-dispenser { background-position: -928px -320px}.mcsprite-dolphin_spawn_egg { background-position: -960px -320px}.mcsprite-donkey_spawn_egg { background-position: -992px -320px}.mcsprite-double_smooth_stone_slab { background-position: -1024px -320px}.mcsprite-dragon_egg { background-position: -1056px -320px}.mcsprite-dragon_head { background-position: -1088px -320px}.mcsprite-dragons_breath { background-position: -1120px -320px}.mcsprite-dried_kelp { background-position: -1152px -320px}.mcsprite-dried_kelp_block { background-position: -1184px -320px}.mcsprite-dripstone_block { background-position: -1216px -320px}.mcsprite-dropper { background-position: -1248px -320px}.mcsprite-drowned_spawn_egg { background-position: 0 -352px}.mcsprite-egg { background-position: -32px -352px}.mcsprite-elder_guardian_spawn_egg { background-position: -64px -352px}.mcsprite-elytra { background-position: -96px -352px}.mcsprite-emerald { background-position: -128px -352px}.mcsprite-emerald_ore { background-position: -160px -352px}.mcsprite-empty_locator_map { background-position: -192px -352px}.mcsprite-empty_map { background-position: -224px -352px}.mcsprite-enchanted_apple { background-position: -256px -352px}.mcsprite-enchanted_book { background-position: -288px -352px}.mcsprite-enchanted_golden_apple { background-position: -320px -352px}.mcsprite-enchanting_table { background-position: -352px -352px}.mcsprite-enchantment_table { background-position: -384px -352px}.mcsprite-end_crystal { background-position: -416px -352px}.mcsprite-end_gateway { background-position: -448px -352px}.mcsprite-end_portal { background-position: -480px -352px}.mcsprite-end_portal_frame { background-position: -512px -352px}.mcsprite-end_rod { background-position: -544px -352px}.mcsprite-end_stone { background-position: -576px -352px}.mcsprite-end_stone_brick_slab { background-position: -608px -352px}.mcsprite-end_stone_brick_stairs { background-position: -640px -352px}.mcsprite-end_stone_brick_wall { background-position: -672px -352px}.mcsprite-end_stone_bricks { background-position: -704px -352px}.mcsprite-ender_chest { background-position: -736px -352px}.mcsprite-ender_pearl { background-position: -768px -352px}.mcsprite-enderman_spawn_egg { background-position: -800px -352px}.mcsprite-endermite_spawn_egg { background-position: -832px -352px}.mcsprite-evoker_spawn_egg { background-position: -864px -352px}.mcsprite-exposed_copper { background-position: -896px -352px}.mcsprite-exposed_copper_block { background-position: -928px -352px}.mcsprite-exposed_cut_copper { background-position: -960px -352px}.mcsprite-exposed_cut_copper_block { background-position: -992px -352px}.mcsprite-exposed_cut_copper_slab { background-position: -1024px -352px}.mcsprite-exposed_cut_copper_stairs { background-position: -1056px -352px}.mcsprite-eye_of_ender { background-position: -1088px -352px}.mcsprite-farmland { background-position: -1120px -352px}.mcsprite-feather { background-position: -1152px -352px}.mcsprite-fermented_spider_eye { background-position: -1184px -352px}.mcsprite-fern { background-position: -1216px -352px}.mcsprite-filled_bundle { background-position: -1248px -352px}.mcsprite-fire_charge { background-position: 0 -384px}.mcsprite-fire_coral { background-position: -32px -384px}.mcsprite-fire_coral_block { background-position: -64px -384px}.mcsprite-fire_coral_fan { background-position: -96px -384px}.mcsprite-firework_loaded_crossbow { background-position: -128px -384px}.mcsprite-firework_rocket { background-position: -160px -384px}.mcsprite-firework_star { background-position: -192px -384px}.mcsprite-fishing_rod { background-position: -224px -384px}.mcsprite-fletching_table { background-position: -256px -384px}.mcsprite-flint { background-position: -288px -384px}.mcsprite-flint_and_steel { background-position: -320px -384px}.mcsprite-flower_pot { background-position: -352px -384px}.mcsprite-flowering_azalea { background-position: -384px -384px}.mcsprite-flowering_azalea_leaves { background-position: -416px -384px}.mcsprite-flowing_lava { background-position: -448px -384px}.mcsprite-flowing_water { background-position: -480px -384px}.mcsprite-fox_spawn_egg { background-position: -512px -384px}.mcsprite-frosted_ice { background-position: -544px -384px}.mcsprite-furnace { background-position: -576px -384px}.mcsprite-ghast_spawn_egg { background-position: -608px -384px}.mcsprite-ghast_tear { background-position: -640px -384px}.mcsprite-gilded_blackstone { background-position: -672px -384px}.mcsprite-glass { background-position: -704px -384px}.mcsprite-glass_bottle { background-position: -736px -384px}.mcsprite-glass_pane { background-position: -768px -384px}.mcsprite-glistering_melon { background-position: -800px -384px}.mcsprite-glistering_melon_slice { background-position: -832px -384px}.mcsprite-glow_berries { background-position: -864px -384px}.mcsprite-glow_ink_sac { background-position: -896px -384px}.mcsprite-glow_item_frame { background-position: -928px -384px}.mcsprite-glow_lichen { background-position: -960px -384px}.mcsprite-glow_squid_spawn_egg { background-position: -992px -384px}.mcsprite-glowstone { background-position: -1024px -384px}.mcsprite-glowstone_dust { background-position: -1056px -384px}.mcsprite-goat_horn { background-position: -1088px -384px}.mcsprite-goat_spawn_egg { background-position: -1120px -384px}.mcsprite-gold_ingot { background-position: -1152px -384px}.mcsprite-gold_nugget { background-position: -1184px -384px}.mcsprite-gold_ore { background-position: -1216px -384px}.mcsprite-golden_apple { background-position: -1248px -384px}.mcsprite-golden_axe { background-position: 0 -416px}.mcsprite-golden_boots { background-position: -32px -416px}.mcsprite-golden_carrot { background-position: -64px -416px}.mcsprite-golden_chestplate { background-position: -96px -416px}.mcsprite-golden_helmet { background-position: -128px -416px}.mcsprite-golden_hoe { background-position: -160px -416px}.mcsprite-golden_horse_armor { background-position: -192px -416px}.mcsprite-golden_leggings { background-position: -224px -416px}.mcsprite-golden_pickaxe { background-position: -256px -416px}.mcsprite-golden_shovel { background-position: -288px -416px}.mcsprite-golden_sword { background-position: -320px -416px}.mcsprite-granite { background-position: -352px -416px}.mcsprite-granite_slab { background-position: -384px -416px}.mcsprite-granite_stairs { background-position: -416px -416px}.mcsprite-granite_wall { background-position: -448px -416px}.mcsprite-grass { background-position: -480px -416px}.mcsprite-grass_block { background-position: -512px -416px}.mcsprite-grass_path { background-position: -544px -416px}.mcsprite-gravel { background-position: -576px -416px}.mcsprite-gray_banner { background-position: -608px -416px}.mcsprite-gray_bed { background-position: -640px -416px}.mcsprite-gray_bed_lce { background-position: -672px -416px}.mcsprite-gray_candle { background-position: -704px -416px}.mcsprite-gray_carpet { background-position: -736px -416px}.mcsprite-gray_concrete { background-position: -768px -416px}.mcsprite-gray_concrete_powder { background-position: -800px -416px}.mcsprite-gray_dye { background-position: -832px -416px}.mcsprite-gray_firework_star { background-position: -864px -416px}.mcsprite-gray_glazed_terracotta { background-position: -896px -416px}.mcsprite-gray_shield { background-position: -928px -416px}.mcsprite-gray_shulker_box { background-position: -960px -416px}.mcsprite-gray_stained_glass { background-position: -992px -416px}.mcsprite-gray_stained_glass_pane { background-position: -1024px -416px}.mcsprite-gray_terracotta { background-position: -1056px -416px}.mcsprite-gray_wool { background-position: -1088px -416px}.mcsprite-green_banner { background-position: -1120px -416px}.mcsprite-green_bed { background-position: -1152px -416px}.mcsprite-green_bed_lce { background-position: -1184px -416px}.mcsprite-green_candle { background-position: -1216px -416px}.mcsprite-green_carpet { background-position: -1248px -416px}.mcsprite-green_concrete { background-position: 0 -448px}.mcsprite-green_concrete_powder { background-position: -32px -448px}.mcsprite-green_dye { background-position: -64px -448px}.mcsprite-green_firework_star { background-position: -96px -448px}.mcsprite-green_glazed_terracotta { background-position: -128px -448px}.mcsprite-green_shield { background-position: -160px -448px}.mcsprite-green_shulker_box { background-position: -192px -448px}.mcsprite-green_stained_glass { background-position: -224px -448px}.mcsprite-green_stained_glass_pane { background-position: -256px -448px}.mcsprite-green_terracotta { background-position: -288px -448px}.mcsprite-green_wool { background-position: -320px -448px}.mcsprite-grindstone { background-position: -352px -448px}.mcsprite-guardian_spawn_egg { background-position: -384px -448px}.mcsprite-gunpowder { background-position: -416px -448px}.mcsprite-half_filled_bundle { background-position: -448px -448px}.mcsprite-hanging_roots { background-position: -480px -448px}.mcsprite-hay_bale { background-position: -512px -448px}.mcsprite-head { background-position: -544px -448px}.mcsprite-heart_of_the_sea { background-position: -576px -448px}.mcsprite-heavy_weighted_pressure_plate { background-position: -608px -448px}.mcsprite-hoglin_spawn_egg { background-position: -640px -448px}.mcsprite-honey_block { background-position: -672px -448px}.mcsprite-honey_bottle { background-position: -704px -448px}.mcsprite-honeycomb { background-position: -736px -448px}.mcsprite-honeycomb_block { background-position: -768px -448px}.mcsprite-hopper { background-position: -800px -448px}.mcsprite-horn_coral { background-position: -832px -448px}.mcsprite-horn_coral_block { background-position: -864px -448px}.mcsprite-horn_coral_fan { background-position: -896px -448px}.mcsprite-horse_spawn_egg { background-position: -928px -448px}.mcsprite-husk_spawn_egg { background-position: -960px -448px}.mcsprite-ice { background-position: -992px -448px}.mcsprite-infested_chiseled_stone_bricks { background-position: -1024px -448px}.mcsprite-infested_cobblestone { background-position: -1056px -448px}.mcsprite-infested_cracked_stone_bricks { background-position: -1088px -448px}.mcsprite-infested_deepslate { background-position: -1120px -448px}.mcsprite-infested_mossy_stone_bricks { background-position: -1152px -448px}.mcsprite-infested_stone { background-position: -1184px -448px}.mcsprite-infested_stone_bricks { background-position: -1216px -448px}.mcsprite-ink_sac { background-position: -1248px -448px}.mcsprite-inverted_daylight_detector { background-position: 0 -480px}.mcsprite-inverted_daylight_sensor { background-position: -32px -480px}.mcsprite-invisible_bedrock { background-position: -64px -480px}.mcsprite-iron_axe { background-position: -96px -480px}.mcsprite-iron_bars { background-position: -128px -480px}.mcsprite-iron_boots { background-position: -160px -480px}.mcsprite-iron_chestplate { background-position: -192px -480px}.mcsprite-iron_door { background-position: -224px -480px}.mcsprite-iron_helmet { background-position: -256px -480px}.mcsprite-iron_hoe { background-position: -288px -480px}.mcsprite-iron_horse_armor { background-position: -320px -480px}.mcsprite-iron_ingot { background-position: -352px -480px}.mcsprite-iron_leggings { background-position: -384px -480px}.mcsprite-iron_nugget { background-position: -416px -480px}.mcsprite-iron_ore { background-position: -448px -480px}.mcsprite-iron_pickaxe { background-position: -480px -480px}.mcsprite-iron_shovel { background-position: -512px -480px}.mcsprite-iron_sword { background-position: -544px -480px}.mcsprite-iron_trapdoor { background-position: -576px -480px}.mcsprite-item_frame { background-position: -608px -480px}.mcsprite-jack_olantern { background-position: -640px -480px}.mcsprite-jigsaw { background-position: -672px -480px}.mcsprite-jigsaw_block { background-position: -704px -480px}.mcsprite-jukebox { background-position: -736px -480px}.mcsprite-jungle_boat { background-position: -768px -480px}.mcsprite-jungle_button { background-position: -800px -480px}.mcsprite-jungle_door { background-position: -832px -480px}.mcsprite-jungle_fence { background-position: -864px -480px}.mcsprite-jungle_fence_gate { background-position: -896px -480px}.mcsprite-jungle_leaves { background-position: -928px -480px}.mcsprite-jungle_log { background-position: -960px -480px}.mcsprite-jungle_planks { background-position: -992px -480px}.mcsprite-jungle_pressure_plate { background-position: -1024px -480px}.mcsprite-jungle_sapling { background-position: -1056px -480px}.mcsprite-jungle_sign { background-position: -1088px -480px}.mcsprite-jungle_slab { background-position: -1120px -480px}.mcsprite-jungle_stairs { background-position: -1152px -480px}.mcsprite-jungle_trapdoor { background-position: -1184px -480px}.mcsprite-jungle_wood { background-position: -1216px -480px}.mcsprite-jungle_wood_button { background-position: -1248px -480px}.mcsprite-jungle_wood_door { background-position: 0 -512px}.mcsprite-jungle_wood_fence { background-position: -32px -512px}.mcsprite-jungle_wood_fence_gate { background-position: -64px -512px}.mcsprite-jungle_wood_planks { background-position: -96px -512px}.mcsprite-jungle_wood_pressure_plate { background-position: -128px -512px}.mcsprite-jungle_wood_sign { background-position: -160px -512px}.mcsprite-jungle_wood_slab { background-position: -192px -512px}.mcsprite-jungle_wood_stairs { background-position: -224px -512px}.mcsprite-jungle_wood_trapdoor { background-position: -256px -512px}.mcsprite-kelp { background-position: -288px -512px}.mcsprite-knowledge_book { background-position: -320px -512px}.mcsprite-ladder { background-position: -352px -512px}.mcsprite-lantern { background-position: -384px -512px}.mcsprite-lapis_lazuli { background-position: -416px -512px}.mcsprite-lapis_lazuli_block { background-position: -448px -512px}.mcsprite-lapis_lazuli_ore { background-position: -480px -512px}.mcsprite-large_amethyst_bud { background-position: -512px -512px}.mcsprite-large_fern { background-position: -544px -512px}.mcsprite-lava { background-position: -576px -512px}.mcsprite-lava_bucket { background-position: -608px -512px}.mcsprite-lead { background-position: -640px -512px}.mcsprite-leather { background-position: -672px -512px}.mcsprite-leather_boots { background-position: -704px -512px}.mcsprite-leather_boots_black { background-position: -736px -512px}.mcsprite-leather_boots_blue { background-position: -768px -512px}.mcsprite-leather_boots_cyan { background-position: -800px -512px}.mcsprite-leather_boots_gray { background-position: -832px -512px}.mcsprite-leather_boots_green { background-position: -864px -512px}.mcsprite-leather_boots_light_blue { background-position: -896px -512px}.mcsprite-leather_boots_light_gray { background-position: -928px -512px}.mcsprite-leather_boots_lime { background-position: -960px -512px}.mcsprite-leather_boots_magenta { background-position: -992px -512px}.mcsprite-leather_boots_orange { background-position: -1024px -512px}.mcsprite-leather_boots_pink { background-position: -1056px -512px}.mcsprite-leather_boots_purple { background-position: -1088px -512px}.mcsprite-leather_boots_red { background-position: -1120px -512px}.mcsprite-leather_boots_white { background-position: -1152px -512px}.mcsprite-leather_boots_yellow { background-position: -1184px -512px}.mcsprite-leather_cap { background-position: -1216px -512px}.mcsprite-leather_cap_black { background-position: -1248px -512px}.mcsprite-leather_cap_blue { background-position: 0 -544px}.mcsprite-leather_cap_cyan { background-position: -32px -544px}.mcsprite-leather_cap_gray { background-position: -64px -544px}.mcsprite-leather_cap_green { background-position: -96px -544px}.mcsprite-leather_cap_light_blue { background-position: -128px -544px}.mcsprite-leather_cap_light_gray { background-position: -160px -544px}.mcsprite-leather_cap_lime { background-position: -192px -544px}.mcsprite-leather_cap_magenta { background-position: -224px -544px}.mcsprite-leather_cap_orange { background-position: -256px -544px}.mcsprite-leather_cap_pink { background-position: -288px -544px}.mcsprite-leather_cap_purple { background-position: -320px -544px}.mcsprite-leather_cap_red { background-position: -352px -544px}.mcsprite-leather_cap_white { background-position: -384px -544px}.mcsprite-leather_cap_yellow { background-position: -416px -544px}.mcsprite-leather_horse_armor { background-position: -448px -544px}.mcsprite-leather_pants { background-position: -480px -544px}.mcsprite-leather_pants_black { background-position: -512px -544px}.mcsprite-leather_pants_blue { background-position: -544px -544px}.mcsprite-leather_pants_cyan { background-position: -576px -544px}.mcsprite-leather_pants_gray { background-position: -608px -544px}.mcsprite-leather_pants_green { background-position: -640px -544px}.mcsprite-leather_pants_light_blue { background-position: -672px -544px}.mcsprite-leather_pants_light_gray { background-position: -704px -544px}.mcsprite-leather_pants_lime { background-position: -736px -544px}.mcsprite-leather_pants_magenta { background-position: -768px -544px}.mcsprite-leather_pants_orange { background-position: -800px -544px}.mcsprite-leather_pants_pink { background-position: -832px -544px}.mcsprite-leather_pants_purple { background-position: -864px -544px}.mcsprite-leather_pants_red { background-position: -896px -544px}.mcsprite-leather_pants_white { background-position: -928px -544px}.mcsprite-leather_pants_yellow { background-position: -960px -544px}.mcsprite-leather_tunic { background-position: -992px -544px}.mcsprite-leather_tunic_black { background-position: -1024px -544px}.mcsprite-leather_tunic_blue { background-position: -1056px -544px}.mcsprite-leather_tunic_cyan { background-position: -1088px -544px}.mcsprite-leather_tunic_gray { background-position: -1120px -544px}.mcsprite-leather_tunic_green { background-position: -1152px -544px}.mcsprite-leather_tunic_light_blue { background-position: -1184px -544px}.mcsprite-leather_tunic_light_gray { background-position: -1216px -544px}.mcsprite-leather_tunic_lime { background-position: -1248px -544px}.mcsprite-leather_tunic_magenta { background-position: 0 -576px}.mcsprite-leather_tunic_orange { background-position: -32px -576px}.mcsprite-leather_tunic_pink { background-position: -64px -576px}.mcsprite-leather_tunic_purple { background-position: -96px -576px}.mcsprite-leather_tunic_red { background-position: -128px -576px}.mcsprite-leather_tunic_white { background-position: -160px -576px}.mcsprite-leather_tunic_yellow { background-position: -192px -576px}.mcsprite-lectern { background-position: -224px -576px}.mcsprite-lever { background-position: -256px -576px}.mcsprite-light_blue_banner { background-position: -288px -576px}.mcsprite-light_blue_bed { background-position: -320px -576px}.mcsprite-light_blue_bed_lce { background-position: -352px -576px}.mcsprite-light_blue_candle { background-position: -384px -576px}.mcsprite-light_blue_carpet { background-position: -416px -576px}.mcsprite-light_blue_concrete { background-position: -448px -576px}.mcsprite-light_blue_concrete_powder { background-position: -480px -576px}.mcsprite-light_blue_dye { background-position: -512px -576px}.mcsprite-light_blue_firework_star { background-position: -544px -576px}.mcsprite-light_blue_glazed_terracotta { background-position: -576px -576px}.mcsprite-light_blue_shield { background-position: -608px -576px}.mcsprite-light_blue_shulker_box { background-position: -640px -576px}.mcsprite-light_blue_stained_glass { background-position: -672px -576px}.mcsprite-light_blue_stained_glass_pane { background-position: -704px -576px}.mcsprite-light_blue_terracotta { background-position: -736px -576px}.mcsprite-light_blue_wool { background-position: -768px -576px}.mcsprite-light_gray_banner { background-position: -800px -576px}.mcsprite-light_gray_bed { background-position: -832px -576px}.mcsprite-light_gray_bed_lce { background-position: -864px -576px}.mcsprite-light_gray_candle { background-position: -896px -576px}.mcsprite-light_gray_carpet { background-position: -928px -576px}.mcsprite-light_gray_concrete { background-position: -960px -576px}.mcsprite-light_gray_concrete_powder { background-position: -992px -576px}.mcsprite-light_gray_dye { background-position: -1024px -576px}.mcsprite-light_gray_firework_star { background-position: -1056px -576px}.mcsprite-light_gray_glazed_terracotta { background-position: -1088px -576px}.mcsprite-light_gray_shield { background-position: -1120px -576px}.mcsprite-light_gray_shulker_box { background-position: -1152px -576px}.mcsprite-light_gray_stained_glass { background-position: -1184px -576px}.mcsprite-light_gray_stained_glass_pane { background-position: -1216px -576px}.mcsprite-light_gray_terracotta { background-position: -1248px -576px}.mcsprite-light_gray_wool { background-position: 0 -608px}.mcsprite-light_negative { background-position: -32px -608px}.mcsprite-light_weighted_pressure_plate { background-position: -64px -608px}.mcsprite-lightning_rod { background-position: -96px -608px}.mcsprite-lilac { background-position: -128px -608px}.mcsprite-lily_of_the_valley { background-position: -160px -608px}.mcsprite-lily_pad { background-position: -192px -608px}.mcsprite-lime_banner { background-position: -224px -608px}.mcsprite-lime_bed { background-position: -256px -608px}.mcsprite-lime_bed_lce { background-position: -288px -608px}.mcsprite-lime_candle { background-position: -320px -608px}.mcsprite-lime_carpet { background-position: -352px -608px}.mcsprite-lime_concrete { background-position: -384px -608px}.mcsprite-lime_concrete_powder { background-position: -416px -608px}.mcsprite-lime_dye { background-position: -448px -608px}.mcsprite-lime_firework_star { background-position: -480px -608px}.mcsprite-lime_glazed_terracotta { background-position: -512px -608px}.mcsprite-lime_shield { background-position: -544px -608px}.mcsprite-lime_shulker_box { background-position: -576px -608px}.mcsprite-lime_stained_glass { background-position: -608px -608px}.mcsprite-lime_stained_glass_pane { background-position: -640px -608px}.mcsprite-lime_terracotta { background-position: -672px -608px}.mcsprite-lime_wool { background-position: -704px -608px}.mcsprite-lingering_potion_of_decay { background-position: -736px -608px}.mcsprite-lingering_potion_of_fire_resistance { background-position: -768px -608px}.mcsprite-lingering_potion_of_harming { background-position: -800px -608px}.mcsprite-lingering_potion_of_healing { background-position: -832px -608px}.mcsprite-lingering_potion_of_invisibility { background-position: -864px -608px}.mcsprite-lingering_potion_of_leaping { background-position: -896px -608px}.mcsprite-lingering_potion_of_levitation { background-position: -928px -608px}.mcsprite-lingering_potion_of_luck { background-position: -960px -608px}.mcsprite-lingering_potion_of_night_vision { background-position: -992px -608px}.mcsprite-lingering_potion_of_poison { background-position: -1024px -608px}.mcsprite-lingering_potion_of_regeneration { background-position: -1056px -608px}.mcsprite-lingering_potion_of_slow_falling { background-position: -1088px -608px}.mcsprite-lingering_potion_of_slowness { background-position: -1120px -608px}.mcsprite-lingering_potion_of_strength { background-position: -1152px -608px}.mcsprite-lingering_potion_of_swiftness { background-position: -1184px -608px}.mcsprite-lingering_potion_of_the_turtle_master { background-position: -1216px -608px}.mcsprite-lingering_potion_of_water_breathing { background-position: -1248px -608px}.mcsprite-lingering_potion_of_weakness { background-position: 0 -640px}.mcsprite-lingering_water_bottle { background-position: -32px -640px}.mcsprite-llama_spawn_egg { background-position: -64px -640px}.mcsprite-locked_map { background-position: -96px -640px}.mcsprite-lodestone { background-position: -128px -640px}.mcsprite-loom { background-position: -160px -640px}.mcsprite-magenta_banner { background-position: -192px -640px}.mcsprite-magenta_bed { background-position: -224px -640px}.mcsprite-magenta_bed_lce { background-position: -256px -640px}.mcsprite-magenta_candle { background-position: -288px -640px}.mcsprite-magenta_carpet { background-position: -320px -640px}.mcsprite-magenta_concrete { background-position: -352px -640px}.mcsprite-magenta_concrete_powder { background-position: -384px -640px}.mcsprite-magenta_dye { background-position: -416px -640px}.mcsprite-magenta_firework_star { background-position: -448px -640px}.mcsprite-magenta_glazed_terracotta { background-position: -480px -640px}.mcsprite-magenta_shield { background-position: -512px -640px}.mcsprite-magenta_shulker_box { background-position: -544px -640px}.mcsprite-magenta_stained_glass { background-position: -576px -640px}.mcsprite-magenta_stained_glass_pane { background-position: -608px -640px}.mcsprite-magenta_terracotta { background-position: -640px -640px}.mcsprite-magenta_wool { background-position: -672px -640px}.mcsprite-magma_cream { background-position: -704px -640px}.mcsprite-magma_cube_spawn_egg { background-position: -736px -640px}.mcsprite-map { background-position: -768px -640px}.mcsprite-medium_amethyst_bud { background-position: -800px -640px}.mcsprite-melon { background-position: -832px -640px}.mcsprite-melon_seeds { background-position: -864px -640px}.mcsprite-melon_slice { background-position: -896px -640px}.mcsprite-mhf_alex { background-position: -928px -640px}.mcsprite-mhf_arrowdown { background-position: -960px -640px}.mcsprite-mhf_arrowleft { background-position: -992px -640px}.mcsprite-mhf_arrowright { background-position: -1024px -640px}.mcsprite-mhf_arrowup { background-position: -1056px -640px}.mcsprite-mhf_blaze { background-position: -1088px -640px}.mcsprite-mhf_cactus { background-position: -1120px -640px}.mcsprite-mhf_cake { background-position: -1152px -640px}.mcsprite-mhf_cavespider { background-position: -1184px -640px}.mcsprite-mhf_chest { background-position: -1216px -640px}.mcsprite-mhf_chicken { background-position: -1248px -640px}.mcsprite-mhf_coconutb { background-position: 0 -672px}.mcsprite-mhf_coconutg { background-position: -32px -672px}.mcsprite-mhf_cow { background-position: -64px -672px}.mcsprite-mhf_creeper { background-position: -96px -672px}.mcsprite-mhf_enderman { background-position: -128px -672px}.mcsprite-mhf_exclamation { background-position: -160px -672px}.mcsprite-mhf_ghast { background-position: -192px -672px}.mcsprite-mhf_golem { background-position: -224px -672px}.mcsprite-mhf_herobrine { background-position: -256px -672px}.mcsprite-mhf_lavaslime { background-position: -288px -672px}.mcsprite-mhf_melon { background-position: -320px -672px}.mcsprite-mhf_mushroomcow { background-position: -352px -672px}.mcsprite-mhf_oaklog { background-position: -384px -672px}.mcsprite-mhf_ocelot { background-position: -416px -672px}.mcsprite-mhf_pig { background-position: -448px -672px}.mcsprite-mhf_pigzombie { background-position: -480px -672px}.mcsprite-mhf_present1 { background-position: -512px -672px}.mcsprite-mhf_present2 { background-position: -544px -672px}.mcsprite-mhf_pumpkin { background-position: -576px -672px}.mcsprite-mhf_question { background-position: -608px -672px}.mcsprite-mhf_sheep { background-position: -640px -672px}.mcsprite-mhf_skeleton { background-position: -672px -672px}.mcsprite-mhf_slime { background-position: -704px -672px}.mcsprite-mhf_spider { background-position: -736px -672px}.mcsprite-mhf_squid { background-position: -768px -672px}.mcsprite-mhf_steve { background-position: -800px -672px}.mcsprite-mhf_tnt { background-position: -832px -672px}.mcsprite-mhf_tnt2 { background-position: -864px -672px}.mcsprite-mhf_villager { background-position: -896px -672px}.mcsprite-mhf_wskeleton { background-position: -928px -672px}.mcsprite-mhf_zombie { background-position: -960px -672px}.mcsprite-milk_bucket { background-position: -992px -672px}.mcsprite-minecart { background-position: -1024px -672px}.mcsprite-minecart_with_chest { background-position: -1056px -672px}.mcsprite-minecart_with_command_block { background-position: -1088px -672px}.mcsprite-minecart_with_furnace { background-position: -1120px -672px}.mcsprite-minecart_with_hopper { background-position: -1152px -672px}.mcsprite-minecart_with_tnt { background-position: -1184px -672px}.mcsprite-monster_spawner { background-position: -1216px -672px}.mcsprite-mooshroom_spawn_egg { background-position: -1248px -672px}.mcsprite-moss_block { background-position: 0 -704px}.mcsprite-moss_carpet { background-position: -32px -704px}.mcsprite-moss_stone { background-position: -64px -704px}.mcsprite-mossy_cobblestone { background-position: -96px -704px}.mcsprite-mossy_cobblestone_slab { background-position: -128px -704px}.mcsprite-mossy_cobblestone_stairs { background-position: -160px -704px}.mcsprite-mossy_cobblestone_wall { background-position: -192px -704px}.mcsprite-mossy_stone_brick_slab { background-position: -224px -704px}.mcsprite-mossy_stone_brick_stairs { background-position: -256px -704px}.mcsprite-mossy_stone_brick_wall { background-position: -288px -704px}.mcsprite-mossy_stone_bricks { background-position: -320px -704px}.mcsprite-mossy_stone_bricks_monster_egg { background-position: -352px -704px}.mcsprite-mule_spawn_egg { background-position: -384px -704px}.mcsprite-mundane_lingering_potion { background-position: -416px -704px}.mcsprite-mundane_potion { background-position: -448px -704px}.mcsprite-mundane_splash_potion { background-position: -480px -704px}.mcsprite-mushroom_stem { background-position: -512px -704px}.mcsprite-mushroom_stew { background-position: -544px -704px}.mcsprite-music_disc_11 { background-position: -576px -704px}.mcsprite-music_disc_13 { background-position: -608px -704px}.mcsprite-music_disc_blocks { background-position: -640px -704px}.mcsprite-music_disc_cat { background-position: -672px -704px}.mcsprite-music_disc_chirp { background-position: -704px -704px}.mcsprite-music_disc_far { background-position: -736px -704px}.mcsprite-music_disc_mall { background-position: -768px -704px}.mcsprite-music_disc_mellohi { background-position: -800px -704px}.mcsprite-music_disc_pigstep { background-position: -832px -704px}.mcsprite-music_disc_stal { background-position: -864px -704px}.mcsprite-music_disc_strad { background-position: -896px -704px}.mcsprite-music_disc_wait { background-position: -928px -704px}.mcsprite-music_disc_ward { background-position: -960px -704px}.mcsprite-mycelium { background-position: -992px -704px}.mcsprite-name_tag { background-position: -1024px -704px}.mcsprite-nautilus_shell { background-position: -1056px -704px}.mcsprite-nether_brick { background-position: -1088px -704px}.mcsprite-nether_brick_block { background-position: -1120px -704px}.mcsprite-nether_brick_fence { background-position: -1152px -704px}.mcsprite-nether_brick_slab { background-position: -1184px -704px}.mcsprite-nether_brick_stairs { background-position: -1216px -704px}.mcsprite-nether_brick_wall { background-position: -1248px -704px}.mcsprite-nether_bricks { background-position: 0 -736px}.mcsprite-nether_gold_ore { background-position: -32px -736px}.mcsprite-nether_quartz { background-position: -64px -736px}.mcsprite-nether_quartz_ore { background-position: -96px -736px}.mcsprite-nether_sprouts { background-position: -128px -736px}.mcsprite-nether_sprouts_old { background-position: -160px -736px}.mcsprite-nether_star { background-position: -192px -736px}.mcsprite-nether_wart { background-position: -224px -736px}.mcsprite-nether_wart_block { background-position: -256px -736px}.mcsprite-netherite_axe { background-position: -288px -736px}.mcsprite-netherite_boots { background-position: -320px -736px}.mcsprite-netherite_chestplate { background-position: -352px -736px}.mcsprite-netherite_helmet { background-position: -384px -736px}.mcsprite-netherite_hoe { background-position: -416px -736px}.mcsprite-netherite_ingot { background-position: -448px -736px}.mcsprite-netherite_leggings { background-position: -480px -736px}.mcsprite-netherite_pickaxe { background-position: -512px -736px}.mcsprite-netherite_scrap { background-position: -544px -736px}.mcsprite-netherite_shovel { background-position: -576px -736px}.mcsprite-netherite_sword { background-position: -608px -736px}.mcsprite-netherrack { background-position: -640px -736px}.mcsprite-note_block { background-position: -672px -736px}.mcsprite-oak_boat { background-position: -704px -736px}.mcsprite-oak_button { background-position: -736px -736px}.mcsprite-oak_door { background-position: -768px -736px}.mcsprite-oak_fence { background-position: -800px -736px}.mcsprite-oak_fence_gate { background-position: -832px -736px}.mcsprite-oak_leaves { background-position: -864px -736px}.mcsprite-oak_log { background-position: -896px -736px}.mcsprite-oak_planks { background-position: -928px -736px}.mcsprite-oak_pressure_plate { background-position: -960px -736px}.mcsprite-oak_sapling { background-position: -992px -736px}.mcsprite-oak_sign { background-position: -1024px -736px}.mcsprite-oak_slab { background-position: -1056px -736px}.mcsprite-oak_stairs { background-position: -1088px -736px}.mcsprite-oak_trapdoor { background-position: -1120px -736px}.mcsprite-oak_wood { background-position: -1152px -736px}.mcsprite-oak_wood_button { background-position: -1184px -736px}.mcsprite-oak_wood_door { background-position: -1216px -736px}.mcsprite-oak_wood_fence { background-position: -1248px -736px}.mcsprite-oak_wood_fence_gate { background-position: 0 -768px}.mcsprite-oak_wood_planks { background-position: -32px -768px}.mcsprite-oak_wood_pressure_plate { background-position: -64px -768px}.mcsprite-oak_wood_sign { background-position: -96px -768px}.mcsprite-oak_wood_slab { background-position: -128px -768px}.mcsprite-oak_wood_stairs { background-position: -160px -768px}.mcsprite-oak_wood_trapdoor { background-position: -192px -768px}.mcsprite-observer { background-position: -224px -768px}.mcsprite-obsidian { background-position: -256px -768px}.mcsprite-ocean_explorer_map { background-position: -288px -768px}.mcsprite-ocelot_spawn_egg { background-position: -320px -768px}.mcsprite-ominous_shield { background-position: -352px -768px}.mcsprite-orange_banner { background-position: -384px -768px}.mcsprite-orange_bed { background-position: -416px -768px}.mcsprite-orange_bed_lce { background-position: -448px -768px}.mcsprite-orange_candle { background-position: -480px -768px}.mcsprite-orange_carpet { background-position: -512px -768px}.mcsprite-orange_concrete { background-position: -544px -768px}.mcsprite-orange_concrete_powder { background-position: -576px -768px}.mcsprite-orange_dye { background-position: -608px -768px}.mcsprite-orange_firework_star { background-position: -640px -768px}.mcsprite-orange_glazed_terracotta { background-position: -672px -768px}.mcsprite-orange_shield { background-position: -704px -768px}.mcsprite-orange_shulker_box { background-position: -736px -768px}.mcsprite-orange_stained_glass { background-position: -768px -768px}.mcsprite-orange_stained_glass_pane { background-position: -800px -768px}.mcsprite-orange_terracotta { background-position: -832px -768px}.mcsprite-orange_tulip { background-position: -864px -768px}.mcsprite-orange_wool { background-position: -896px -768px}.mcsprite-oxeye_daisy { background-position: -928px -768px}.mcsprite-oxidized_copper { background-position: -960px -768px}.mcsprite-oxidized_copper_block { background-position: -992px -768px}.mcsprite-oxidized_cut_copper { background-position: -1024px -768px}.mcsprite-oxidized_cut_copper_block { background-position: -1056px -768px}.mcsprite-oxidized_cut_copper_slab { background-position: -1088px -768px}.mcsprite-oxidized_cut_copper_stairs { background-position: -1120px -768px}.mcsprite-packed_ice { background-position: -1152px -768px}.mcsprite-painting { background-position: -1184px -768px}.mcsprite-panda_spawn_egg { background-position: -1216px -768px}.mcsprite-paper { background-position: -1248px -768px}.mcsprite-parrot_spawn_egg { background-position: 0 -800px}.mcsprite-peony { background-position: -32px -800px}.mcsprite-petrified_oak_slab { background-position: -64px -800px}.mcsprite-phantom_membrane { background-position: -96px -800px}.mcsprite-phantom_spawn_egg { background-position: -128px -800px}.mcsprite-pig_spawn_egg { background-position: -160px -800px}.mcsprite-piglin_brute_spawn_egg { background-position: -192px -800px}.mcsprite-piglin_spawn_egg { background-position: -224px -800px}.mcsprite-pillager_spawn_egg { background-position: -256px -800px}.mcsprite-pink_banner { background-position: -288px -800px}.mcsprite-pink_bed { background-position: -320px -800px}.mcsprite-pink_bed_lce { background-position: -352px -800px}.mcsprite-pink_candle { background-position: -384px -800px}.mcsprite-pink_carpet { background-position: -416px -800px}.mcsprite-pink_concrete { background-position: -448px -800px}.mcsprite-pink_concrete_powder { background-position: -480px -800px}.mcsprite-pink_dye { background-position: -512px -800px}.mcsprite-pink_firework_star { background-position: -544px -800px}.mcsprite-pink_glazed_terracotta { background-position: -576px -800px}.mcsprite-pink_shield { background-position: -608px -800px}.mcsprite-pink_shulker_box { background-position: -640px -800px}.mcsprite-pink_stained_glass { background-position: -672px -800px}.mcsprite-pink_stained_glass_pane { background-position: -704px -800px}.mcsprite-pink_terracotta { background-position: -736px -800px}.mcsprite-pink_tulip { background-position: -768px -800px}.mcsprite-pink_wool { background-position: -800px -800px}.mcsprite-piston { background-position: -832px -800px}.mcsprite-player_head { background-position: -864px -800px}.mcsprite-podzol { background-position: -896px -800px}.mcsprite-pointed_dripstone { background-position: -928px -800px}.mcsprite-poisonous_potato { background-position: -960px -800px}.mcsprite-polar_bear_spawn_egg { background-position: -992px -800px}.mcsprite-polished_andesite { background-position: -1024px -800px}.mcsprite-polished_andesite_slab { background-position: -1056px -800px}.mcsprite-polished_andesite_stairs { background-position: -1088px -800px}.mcsprite-polished_basalt { background-position: -1120px -800px}.mcsprite-polished_blackstone { background-position: -1152px -800px}.mcsprite-polished_blackstone_brick_slab { background-position: -1184px -800px}.mcsprite-polished_blackstone_brick_stairs { background-position: -1216px -800px}.mcsprite-polished_blackstone_brick_wall { background-position: -1248px -800px}.mcsprite-polished_blackstone_bricks { background-position: 0 -832px}.mcsprite-polished_blackstone_button { background-position: -32px -832px}.mcsprite-polished_blackstone_pressure_plate { background-position: -64px -832px}.mcsprite-polished_blackstone_slab { background-position: -96px -832px}.mcsprite-polished_blackstone_stairs { background-position: -128px -832px}.mcsprite-polished_blackstone_wall { background-position: -160px -832px}.mcsprite-polished_deepslate { background-position: -192px -832px}.mcsprite-polished_deepslate_slab { background-position: -224px -832px}.mcsprite-polished_deepslate_stairs { background-position: -256px -832px}.mcsprite-polished_deepslate_wall { background-position: -288px -832px}.mcsprite-polished_diorite { background-position: -320px -832px}.mcsprite-polished_diorite_slab { background-position: -352px -832px}.mcsprite-polished_diorite_stairs { background-position: -384px -832px}.mcsprite-polished_granite { background-position: -416px -832px}.mcsprite-polished_granite_slab { background-position: -448px -832px}.mcsprite-polished_granite_stairs { background-position: -480px -832px}.mcsprite-popped_chorus_fruit { background-position: -512px -832px}.mcsprite-poppy { background-position: -544px -832px}.mcsprite-portal { background-position: -576px -832px}.mcsprite-potato { background-position: -608px -832px}.mcsprite-potion_of_decay { background-position: -640px -832px}.mcsprite-potion_of_fire_resistance { background-position: -672px -832px}.mcsprite-potion_of_harming { background-position: -704px -832px}.mcsprite-potion_of_healing { background-position: -736px -832px}.mcsprite-potion_of_invisibility { background-position: -768px -832px}.mcsprite-potion_of_leaping { background-position: -800px -832px}.mcsprite-potion_of_levitation { background-position: -832px -832px}.mcsprite-potion_of_luck { background-position: -864px -832px}.mcsprite-potion_of_night_vision { background-position: -896px -832px}.mcsprite-potion_of_poison { background-position: -928px -832px}.mcsprite-potion_of_regeneration { background-position: -960px -832px}.mcsprite-potion_of_slow_falling { background-position: -992px -832px}.mcsprite-potion_of_slowness { background-position: -1024px -832px}.mcsprite-potion_of_strength { background-position: -1056px -832px}.mcsprite-potion_of_swiftness { background-position: -1088px -832px}.mcsprite-potion_of_the_turtle_master { background-position: -1120px -832px}.mcsprite-potion_of_water_breathing { background-position: -1152px -832px}.mcsprite-potion_of_weakness { background-position: -1184px -832px}.mcsprite-powder_snow { background-position: -1216px -832px}.mcsprite-powder_snow_bucket { background-position: -1248px -832px}.mcsprite-powered_rail { background-position: 0 -864px}.mcsprite-prismarine { background-position: -32px -864px}.mcsprite-prismarine_brick_slab { background-position: -64px -864px}.mcsprite-prismarine_brick_stairs { background-position: -96px -864px}.mcsprite-prismarine_brick_stairs_old { background-position: -128px -864px}.mcsprite-prismarine_bricks { background-position: -160px -864px}.mcsprite-prismarine_bricks_slab { background-position: -192px -864px}.mcsprite-prismarine_crystals { background-position: -224px -864px}.mcsprite-prismarine_shard { background-position: -256px -864px}.mcsprite-prismarine_wall { background-position: -288px -864px}.mcsprite-pufferfish { background-position: -320px -864px}.mcsprite-pufferfish_spawn_egg { background-position: -352px -864px}.mcsprite-pumpkin { background-position: -384px -864px}.mcsprite-pumpkin_pie { background-position: -416px -864px}.mcsprite-pumpkin_seeds { background-position: -448px -864px}.mcsprite-purple_banner { background-position: -480px -864px}.mcsprite-purple_bed { background-position: -512px -864px}.mcsprite-purple_bed_lce { background-position: -544px -864px}.mcsprite-purple_candle { background-position: -576px -864px}.mcsprite-purple_carpet { background-position: -608px -864px}.mcsprite-purple_concrete { background-position: -640px -864px}.mcsprite-purple_concrete_powder { background-position: -672px -864px}.mcsprite-purple_dye { background-position: -704px -864px}.mcsprite-purple_firework_star { background-position: -736px -864px}.mcsprite-purple_glazed_terracotta { background-position: -768px -864px}.mcsprite-purple_shield { background-position: -800px -864px}.mcsprite-purple_shulker_box { background-position: -832px -864px}.mcsprite-purple_stained_glass { background-position: -864px -864px}.mcsprite-purple_stained_glass_pane { background-position: -896px -864px}.mcsprite-purple_terracotta { background-position: -928px -864px}.mcsprite-purple_wool { background-position: -960px -864px}.mcsprite-purpur_block { background-position: -992px -864px}.mcsprite-purpur_pillar { background-position: -1024px -864px}.mcsprite-purpur_slab { background-position: -1056px -864px}.mcsprite-purpur_stairs { background-position: -1088px -864px}.mcsprite-quartz_bricks { background-position: -1120px -864px}.mcsprite-quartz_pillar { background-position: -1152px -864px}.mcsprite-quartz_slab { background-position: -1184px -864px}.mcsprite-quartz_stairs { background-position: -1216px -864px}.mcsprite-rabbit_hide { background-position: -1248px -864px}.mcsprite-rabbit_spawn_egg { background-position: 0 -896px}.mcsprite-rabbit_stew { background-position: -32px -896px}.mcsprite-rabbits_foot { background-position: -64px -896px}.mcsprite-rail { background-position: -96px -896px}.mcsprite-ravager_spawn_egg { background-position: -128px -896px}.mcsprite-raw_beef { background-position: -160px -896px}.mcsprite-raw_chicken { background-position: -192px -896px}.mcsprite-raw_cod { background-position: -224px -896px}.mcsprite-raw_copper { background-position: -256px -896px}.mcsprite-raw_fish { background-position: -288px -896px}.mcsprite-raw_gold { background-position: -320px -896px}.mcsprite-raw_iron { background-position: -352px -896px}.mcsprite-raw_mutton { background-position: -384px -896px}.mcsprite-raw_porkchop { background-position: -416px -896px}.mcsprite-raw_rabbit { background-position: -448px -896px}.mcsprite-raw_salmon { background-position: -480px -896px}.mcsprite-red_banner { background-position: -512px -896px}.mcsprite-red_bed { background-position: -544px -896px}.mcsprite-red_bed_lce { background-position: -576px -896px}.mcsprite-red_candle { background-position: -608px -896px}.mcsprite-red_carpet { background-position: -640px -896px}.mcsprite-red_concrete { background-position: -672px -896px}.mcsprite-red_concrete_powder { background-position: -704px -896px}.mcsprite-red_dye { background-position: -736px -896px}.mcsprite-red_firework_star { background-position: -768px -896px}.mcsprite-red_glazed_terracotta { background-position: -800px -896px}.mcsprite-red_mushroom { background-position: -832px -896px}.mcsprite-red_mushroom_block { background-position: -864px -896px}.mcsprite-red_nether_brick_slab { background-position: -896px -896px}.mcsprite-red_nether_brick_stairs { background-position: -928px -896px}.mcsprite-red_nether_brick_wall { background-position: -960px -896px}.mcsprite-red_nether_bricks { background-position: -992px -896px}.mcsprite-red_sand { background-position: -1024px -896px}.mcsprite-red_sandstone { background-position: -1056px -896px}.mcsprite-red_sandstone_slab { background-position: -1088px -896px}.mcsprite-red_sandstone_stairs { background-position: -1120px -896px}.mcsprite-red_sandstone_wall { background-position: -1152px -896px}.mcsprite-red_shield { background-position: -1184px -896px}.mcsprite-red_shulker_box { background-position: -1216px -896px}.mcsprite-red_stained_glass { background-position: -1248px -896px}.mcsprite-red_stained_glass_pane { background-position: 0 -928px}.mcsprite-red_terracotta { background-position: -32px -928px}.mcsprite-red_tulip { background-position: -64px -928px}.mcsprite-red_wool { background-position: -96px -928px}.mcsprite-redstone { background-position: -128px -928px}.mcsprite-redstone_comparator { background-position: -160px -928px}.mcsprite-redstone_dust { background-position: -192px -928px}.mcsprite-redstone_lamp { background-position: -224px -928px}.mcsprite-redstone_ore { background-position: -256px -928px}.mcsprite-redstone_repeater { background-position: -288px -928px}.mcsprite-redstone_torch { background-position: -320px -928px}.mcsprite-respawn_anchor { background-position: -352px -928px}.mcsprite-rooted_dirt { background-position: -384px -928px}.mcsprite-rose_bush { background-position: -416px -928px}.mcsprite-rose_red { background-position: -448px -928px}.mcsprite-rotten_flesh { background-position: -480px -928px}.mcsprite-saddle { background-position: -512px -928px}.mcsprite-salmon_spawn_egg { background-position: -544px -928px}.mcsprite-sand { background-position: -576px -928px}.mcsprite-sandstone { background-position: -608px -928px}.mcsprite-sandstone_slab { background-position: -640px -928px}.mcsprite-sandstone_stairs { background-position: -672px -928px}.mcsprite-sandstone_wall { background-position: -704px -928px}.mcsprite-scaffolding { background-position: -736px -928px}.mcsprite-sculk_sensor { background-position: -768px -928px}.mcsprite-scute { background-position: -800px -928px}.mcsprite-sea_lantern { background-position: -832px -928px}.mcsprite-sea_pickle { background-position: -864px -928px}.mcsprite-seagrass { background-position: -896px -928px}.mcsprite-seeds { background-position: -928px -928px}.mcsprite-shears { background-position: -960px -928px}.mcsprite-sheep_spawn_egg { background-position: -992px -928px}.mcsprite-shield { background-position: -1024px -928px}.mcsprite-shroomlight { background-position: -1056px -928px}.mcsprite-shrub_lce { background-position: -1088px -928px}.mcsprite-shulker_box { background-position: -1120px -928px}.mcsprite-shulker_shell { background-position: -1152px -928px}.mcsprite-shulker_spawn_egg { background-position: -1184px -928px}.mcsprite-silverfish_spawn_egg { background-position: -1216px -928px}.mcsprite-skeleton_horse_spawn_egg { background-position: -1248px -928px}.mcsprite-skeleton_skull { background-position: 0 -960px}.mcsprite-skeleton_spawn_egg { background-position: -32px -960px}.mcsprite-slime_block { background-position: -64px -960px}.mcsprite-slime_spawn_egg { background-position: -96px -960px}.mcsprite-slimeball { background-position: -128px -960px}.mcsprite-small_amethyst_bud { background-position: -160px -960px}.mcsprite-small_dripleaf { background-position: -192px -960px}.mcsprite-smithing_table { background-position: -224px -960px}.mcsprite-smoker { background-position: -256px -960px}.mcsprite-smooth_basalt { background-position: -288px -960px}.mcsprite-smooth_quartz { background-position: -320px -960px}.mcsprite-smooth_quartz_block { background-position: -352px -960px}.mcsprite-smooth_quartz_slab { background-position: -384px -960px}.mcsprite-smooth_quartz_stairs { background-position: -416px -960px}.mcsprite-smooth_red_sandstone { background-position: -448px -960px}.mcsprite-smooth_red_sandstone_slab { background-position: -480px -960px}.mcsprite-smooth_red_sandstone_stairs { background-position: -512px -960px}.mcsprite-smooth_sandstone { background-position: -544px -960px}.mcsprite-smooth_sandstone_slab { background-position: -576px -960px}.mcsprite-smooth_sandstone_stairs { background-position: -608px -960px}.mcsprite-smooth_stone { background-position: -640px -960px}.mcsprite-smooth_stone_bricks { background-position: -672px -960px}.mcsprite-smooth_stone_slab { background-position: -704px -960px}.mcsprite-snow { background-position: -736px -960px}.mcsprite-snow_block { background-position: -768px -960px}.mcsprite-snowball { background-position: -800px -960px}.mcsprite-soul_campfire { background-position: -832px -960px}.mcsprite-soul_lantern { background-position: -864px -960px}.mcsprite-soul_sand { background-position: -896px -960px}.mcsprite-soul_soil { background-position: -928px -960px}.mcsprite-soul_torch { background-position: -960px -960px}.mcsprite-spawn_agent { background-position: -992px -960px}.mcsprite-spawn_bat { background-position: -1024px -960px}.mcsprite-spawn_bee { background-position: -1056px -960px}.mcsprite-spawn_blaze { background-position: -1088px -960px}.mcsprite-spawn_cat { background-position: -1120px -960px}.mcsprite-spawn_cave_spider { background-position: -1152px -960px}.mcsprite-spawn_chicken { background-position: -1184px -960px}.mcsprite-spawn_cod { background-position: -1216px -960px}.mcsprite-spawn_cow { background-position: -1248px -960px}.mcsprite-spawn_creeper { background-position: 0 -992px}.mcsprite-spawn_dolphin { background-position: -32px -992px}.mcsprite-spawn_donkey { background-position: -64px -992px}.mcsprite-spawn_drowned { background-position: -96px -992px}.mcsprite-spawn_elder_guardian { background-position: -128px -992px}.mcsprite-spawn_enderman { background-position: -160px -992px}.mcsprite-spawn_endermite { background-position: -192px -992px}.mcsprite-spawn_evoker { background-position: -224px -992px}.mcsprite-spawn_fox { background-position: -256px -992px}.mcsprite-spawn_ghast { background-position: -288px -992px}.mcsprite-spawn_goat { background-position: -320px -992px}.mcsprite-spawn_guardian { background-position: -352px -992px}.mcsprite-spawn_horse { background-position: -384px -992px}.mcsprite-spawn_husk { background-position: -416px -992px}.mcsprite-spawn_llama { background-position: -448px -992px}.mcsprite-spawn_magma_cube { background-position: -480px -992px}.mcsprite-spawn_mask { background-position: -512px -992px}.mcsprite-spawn_mooshroom { background-position: -544px -992px}.mcsprite-spawn_mule { background-position: -576px -992px}.mcsprite-spawn_npc { background-position: -608px -992px}.mcsprite-spawn_ocelot { background-position: -640px -992px}.mcsprite-spawn_panda { background-position: -672px -992px}.mcsprite-spawn_parrot { background-position: -704px -992px}.mcsprite-spawn_phantom { background-position: -736px -992px}.mcsprite-spawn_pig { background-position: -768px -992px}.mcsprite-spawn_pillager { background-position: -800px -992px}.mcsprite-spawn_polar_bear { background-position: -832px -992px}.mcsprite-spawn_pufferfish { background-position: -864px -992px}.mcsprite-spawn_rabbit { background-position: -896px -992px}.mcsprite-spawn_ravager { background-position: -928px -992px}.mcsprite-spawn_salmon { background-position: -960px -992px}.mcsprite-spawn_sheep { background-position: -992px -992px}.mcsprite-spawn_shulker { background-position: -1024px -992px}.mcsprite-spawn_silverfish { background-position: -1056px -992px}.mcsprite-spawn_skeleton { background-position: -1088px -992px}.mcsprite-spawn_skeleton_horse { background-position: -1120px -992px}.mcsprite-spawn_slime { background-position: -1152px -992px}.mcsprite-spawn_spider { background-position: -1184px -992px}.mcsprite-spawn_squid { background-position: -1216px -992px}.mcsprite-spawn_stray { background-position: -1248px -992px}.mcsprite-spawn_strider { background-position: 0 -1024px}.mcsprite-spawn_trader_llama { background-position: -32px -1024px}.mcsprite-spawn_tropical_fish { background-position: -64px -1024px}.mcsprite-spawn_turtle { background-position: -96px -1024px}.mcsprite-spawn_vex { background-position: -128px -1024px}.mcsprite-spawn_villager { background-position: -160px -1024px}.mcsprite-spawn_vindicator { background-position: -192px -1024px}.mcsprite-spawn_wandering_trader { background-position: -224px -1024px}.mcsprite-spawn_witch { background-position: -256px -1024px}.mcsprite-spawn_wither_skeleton { background-position: -288px -1024px}.mcsprite-spawn_wolf { background-position: -320px -1024px}.mcsprite-spawn_zoglin { background-position: -352px -1024px}.mcsprite-spawn_zombie { background-position: -384px -1024px}.mcsprite-spawn_zombie_horse { background-position: -416px -1024px}.mcsprite-spawn_zombie_pigman { background-position: -448px -1024px}.mcsprite-spawn_zombie_villager { background-position: -480px -1024px}.mcsprite-spawner { background-position: -512px -1024px}.mcsprite-spectral_arrow { background-position: -544px -1024px}.mcsprite-spider_eye { background-position: -576px -1024px}.mcsprite-spider_spawn_egg { background-position: -608px -1024px}.mcsprite-splash_mundane_potion { background-position: -640px -1024px}.mcsprite-splash_potion_of_decay { background-position: -672px -1024px}.mcsprite-splash_potion_of_fire_resistance { background-position: -704px -1024px}.mcsprite-splash_potion_of_harming { background-position: -736px -1024px}.mcsprite-splash_potion_of_healing { background-position: -768px -1024px}.mcsprite-splash_potion_of_invisibility { background-position: -800px -1024px}.mcsprite-splash_potion_of_leaping { background-position: -832px -1024px}.mcsprite-splash_potion_of_levitation { background-position: -864px -1024px}.mcsprite-splash_potion_of_luck { background-position: -896px -1024px}.mcsprite-splash_potion_of_night_vision { background-position: -928px -1024px}.mcsprite-splash_potion_of_poison { background-position: -960px -1024px}.mcsprite-splash_potion_of_regeneration { background-position: -992px -1024px}.mcsprite-splash_potion_of_slow_falling { background-position: -1024px -1024px}.mcsprite-splash_potion_of_slowness { background-position: -1056px -1024px}.mcsprite-splash_potion_of_strength { background-position: -1088px -1024px}.mcsprite-splash_potion_of_swiftness { background-position: -1120px -1024px}.mcsprite-splash_potion_of_the_turtle_master { background-position: -1152px -1024px}.mcsprite-splash_potion_of_water_breathing { background-position: -1184px -1024px}.mcsprite-splash_potion_of_weakness { background-position: -1216px -1024px}.mcsprite-splash_water_bottle { background-position: -1248px -1024px}.mcsprite-sponge { background-position: 0 -1056px}.mcsprite-spore_blossom { background-position: -32px -1056px}.mcsprite-spruce_boat { background-position: -64px -1056px}.mcsprite-spruce_button { background-position: -96px -1056px}.mcsprite-spruce_door { background-position: -128px -1056px}.mcsprite-spruce_fence { background-position: -160px -1056px}.mcsprite-spruce_fence_gate { background-position: -192px -1056px}.mcsprite-spruce_leaves { background-position: -224px -1056px}.mcsprite-spruce_log { background-position: -256px -1056px}.mcsprite-spruce_planks { background-position: -288px -1056px}.mcsprite-spruce_pressure_plate { background-position: -320px -1056px}.mcsprite-spruce_sapling { background-position: -352px -1056px}.mcsprite-spruce_sign { background-position: -384px -1056px}.mcsprite-spruce_slab { background-position: -416px -1056px}.mcsprite-spruce_stairs { background-position: -448px -1056px}.mcsprite-spruce_trapdoor { background-position: -480px -1056px}.mcsprite-spruce_wood { background-position: -512px -1056px}.mcsprite-spruce_wood_button { background-position: -544px -1056px}.mcsprite-spruce_wood_door { background-position: -576px -1056px}.mcsprite-spruce_wood_fence { background-position: -608px -1056px}.mcsprite-spruce_wood_fence_gate { background-position: -640px -1056px}.mcsprite-spruce_wood_planks { background-position: -672px -1056px}.mcsprite-spruce_wood_pressure_plate { background-position: -704px -1056px}.mcsprite-spruce_wood_sign { background-position: -736px -1056px}.mcsprite-spruce_wood_slab { background-position: -768px -1056px}.mcsprite-spruce_wood_stairs { background-position: -800px -1056px}.mcsprite-spruce_wood_trapdoor { background-position: -832px -1056px}.mcsprite-spyglass { background-position: -864px -1056px}.mcsprite-squid_spawn_egg { background-position: -896px -1056px}.mcsprite-steak { background-position: -928px -1056px}.mcsprite-stick { background-position: -960px -1056px}.mcsprite-sticky_piston { background-position: -992px -1056px}.mcsprite-stone { background-position: -1024px -1056px}.mcsprite-stone_axe { background-position: -1056px -1056px}.mcsprite-stone_brick_slab { background-position: -1088px -1056px}.mcsprite-stone_brick_stairs { background-position: -1120px -1056px}.mcsprite-stone_brick_wall { background-position: -1152px -1056px}.mcsprite-stone_bricks { background-position: -1184px -1056px}.mcsprite-stone_bricks_monster_egg { background-position: -1216px -1056px}.mcsprite-stone_button { background-position: -1248px -1056px}.mcsprite-stone_hoe { background-position: 0 -1088px}.mcsprite-stone_monster_egg { background-position: -32px -1088px}.mcsprite-stone_pickaxe { background-position: -64px -1088px}.mcsprite-stone_pressure_plate { background-position: -96px -1088px}.mcsprite-stone_shovel { background-position: -128px -1088px}.mcsprite-stone_slab { background-position: -160px -1088px}.mcsprite-stone_stairs { background-position: -192px -1088px}.mcsprite-stone_sword { background-position: -224px -1088px}.mcsprite-stray_spawn_egg { background-position: -256px -1088px}.mcsprite-strider_spawn_egg { background-position: -288px -1088px}.mcsprite-string { background-position: -320px -1088px}.mcsprite-stripped_acacia_log { background-position: -352px -1088px}.mcsprite-stripped_acacia_wood { background-position: -384px -1088px}.mcsprite-stripped_birch_log { background-position: -416px -1088px}.mcsprite-stripped_birch_wood { background-position: -448px -1088px}.mcsprite-stripped_crimson_hyphae { background-position: -480px -1088px}.mcsprite-stripped_crimson_stem { background-position: -512px -1088px}.mcsprite-stripped_dark_oak_log { background-position: -544px -1088px}.mcsprite-stripped_dark_oak_wood { background-position: -576px -1088px}.mcsprite-stripped_jungle_log { background-position: -608px -1088px}.mcsprite-stripped_jungle_wood { background-position: -640px -1088px}.mcsprite-stripped_oak_log { background-position: -672px -1088px}.mcsprite-stripped_oak_wood { background-position: -704px -1088px}.mcsprite-stripped_spruce_log { background-position: -736px -1088px}.mcsprite-stripped_spruce_wood { background-position: -768px -1088px}.mcsprite-stripped_warped_hyphae { background-position: -800px -1088px}.mcsprite-stripped_warped_stem { background-position: -832px -1088px}.mcsprite-structure_block { background-position: -864px -1088px}.mcsprite-structure_void { background-position: -896px -1088px}.mcsprite-sugar { background-position: -928px -1088px}.mcsprite-sugar_cane { background-position: -960px -1088px}.mcsprite-sunflower { background-position: -992px -1088px}.mcsprite-suspicious_stew { background-position: -1024px -1088px}.mcsprite-sweet_berries { background-position: -1056px -1088px}.mcsprite-tall_grass { background-position: -1088px -1088px}.mcsprite-target { background-position: -1120px -1088px}.mcsprite-terracotta { background-position: -1152px -1088px}.mcsprite-thick_lingering_potion { background-position: -1184px -1088px}.mcsprite-thick_potion { background-position: -1216px -1088px}.mcsprite-thick_splash_potion { background-position: -1248px -1088px}.mcsprite-tinted_glass { background-position: 0 -1120px}.mcsprite-tipped_arrow { background-position: -32px -1120px}.mcsprite-tnt { background-position: -64px -1120px}.mcsprite-top_snow { background-position: -96px -1120px}.mcsprite-torch { background-position: -128px -1120px}.mcsprite-totem_of_undying { background-position: -160px -1120px}.mcsprite-trader_llama_spawn_egg { background-position: -192px -1120px}.mcsprite-trapped_chest { background-position: -224px -1120px}.mcsprite-treasure_map { background-position: -256px -1120px}.mcsprite-trident { background-position: -288px -1120px}.mcsprite-tripwire_hook { background-position: -320px -1120px}.mcsprite-tropical_fish { background-position: -352px -1120px}.mcsprite-tropical_fish_spawn_egg { background-position: -384px -1120px}.mcsprite-tube_coral { background-position: -416px -1120px}.mcsprite-tube_coral_block { background-position: -448px -1120px}.mcsprite-tube_coral_fan { background-position: -480px -1120px}.mcsprite-tuff { background-position: -512px -1120px}.mcsprite-turtle_egg { background-position: -544px -1120px}.mcsprite-turtle_helmet { background-position: -576px -1120px}.mcsprite-turtle_shell { background-position: -608px -1120px}.mcsprite-turtle_spawn_egg { background-position: -640px -1120px}.mcsprite-twisting_vines { background-position: -672px -1120px}.mcsprite-uncraftable_lingering_potion { background-position: -704px -1120px}.mcsprite-uncraftable_potion { background-position: -736px -1120px}.mcsprite-uncraftable_splash_potion { background-position: -768px -1120px}.mcsprite-uncraftable_tipped_arrow { background-position: -800px -1120px}.mcsprite-vex_spawn_egg { background-position: -832px -1120px}.mcsprite-villager_spawn_egg { background-position: -864px -1120px}.mcsprite-vindicator_spawn_egg { background-position: -896px -1120px}.mcsprite-vines { background-position: -928px -1120px}.mcsprite-void_air { background-position: -960px -1120px}.mcsprite-wandering_trader_spawn_egg { background-position: -992px -1120px}.mcsprite-warped_button { background-position: -1024px -1120px}.mcsprite-warped_door { background-position: -1056px -1120px}.mcsprite-warped_fence { background-position: -1088px -1120px}.mcsprite-warped_fence_gate { background-position: -1120px -1120px}.mcsprite-warped_fungus { background-position: -1152px -1120px}.mcsprite-warped_fungus_on_a_stick { background-position: -1184px -1120px}.mcsprite-warped_hyphae { background-position: -1216px -1120px}.mcsprite-warped_nylium { background-position: -1248px -1120px}.mcsprite-warped_planks { background-position: 0 -1152px}.mcsprite-warped_pressure_plate { background-position: -32px -1152px}.mcsprite-warped_roots { background-position: -64px -1152px}.mcsprite-warped_sign { background-position: -96px -1152px}.mcsprite-warped_slab { background-position: -128px -1152px}.mcsprite-warped_stairs { background-position: -160px -1152px}.mcsprite-warped_stem { background-position: -192px -1152px}.mcsprite-warped_trapdoor { background-position: -224px -1152px}.mcsprite-warped_wart_block { background-position: -256px -1152px}.mcsprite-water { background-position: -288px -1152px}.mcsprite-water_bottle { background-position: -320px -1152px}.mcsprite-water_bucket { background-position: -352px -1152px}.mcsprite-waxed_block_of_copper { background-position: -384px -1152px}.mcsprite-waxed_copper { background-position: -416px -1152px}.mcsprite-waxed_copper_block { background-position: -448px -1152px}.mcsprite-waxed_cut_copper { background-position: -480px -1152px}.mcsprite-waxed_cut_copper_block { background-position: -512px -1152px}.mcsprite-waxed_cut_copper_slab { background-position: -544px -1152px}.mcsprite-waxed_cut_copper_stairs { background-position: -576px -1152px}.mcsprite-waxed_exposed_copper { background-position: -608px -1152px}.mcsprite-waxed_exposed_copper_block { background-position: -640px -1152px}.mcsprite-waxed_exposed_cut_copper { background-position: -672px -1152px}.mcsprite-waxed_exposed_cut_copper_block { background-position: -704px -1152px}.mcsprite-waxed_exposed_cut_copper_slab { background-position: -736px -1152px}.mcsprite-waxed_exposed_cut_copper_stairs { background-position: -768px -1152px}.mcsprite-waxed_oxidized_copper { background-position: -800px -1152px}.mcsprite-waxed_oxidized_copper_block { background-position: -832px -1152px}.mcsprite-waxed_oxidized_cut_copper { background-position: -864px -1152px}.mcsprite-waxed_oxidized_cut_copper_block { background-position: -896px -1152px}.mcsprite-waxed_oxidized_cut_copper_slab { background-position: -928px -1152px}.mcsprite-waxed_oxidized_cut_copper_stairs { background-position: -960px -1152px}.mcsprite-waxed_weathered_copper { background-position: -992px -1152px}.mcsprite-waxed_weathered_copper_block { background-position: -1024px -1152px}.mcsprite-waxed_weathered_cut_copper { background-position: -1056px -1152px}.mcsprite-waxed_weathered_cut_copper_block { background-position: -1088px -1152px}.mcsprite-waxed_weathered_cut_copper_slab { background-position: -1120px -1152px}.mcsprite-waxed_weathered_cut_copper_stairs { background-position: -1152px -1152px}.mcsprite-weathered_copper { background-position: -1184px -1152px}.mcsprite-weathered_copper_block { background-position: -1216px -1152px}.mcsprite-weathered_cut_copper { background-position: -1248px -1152px}.mcsprite-weathered_cut_copper_block { background-position: 0 -1184px}.mcsprite-weathered_cut_copper_slab { background-position: -32px -1184px}.mcsprite-weathered_cut_copper_stairs { background-position: -64px -1184px}.mcsprite-weeping_vines { background-position: -96px -1184px}.mcsprite-wet_sponge { background-position: -128px -1184px}.mcsprite-wheat { background-position: -160px -1184px}.mcsprite-wheat_seeds { background-position: -192px -1184px}.mcsprite-white_banner { background-position: -224px -1184px}.mcsprite-white_bed { background-position: -256px -1184px}.mcsprite-white_bed_lce { background-position: -288px -1184px}.mcsprite-white_candle { background-position: -320px -1184px}.mcsprite-white_carpet { background-position: -352px -1184px}.mcsprite-white_concrete { background-position: -384px -1184px}.mcsprite-white_concrete_powder { background-position: -416px -1184px}.mcsprite-white_dye { background-position: -448px -1184px}.mcsprite-white_firework_star { background-position: -480px -1184px}.mcsprite-white_glazed_terracotta { background-position: -512px -1184px}.mcsprite-white_shield { background-position: -544px -1184px}.mcsprite-white_shulker_box { background-position: -576px -1184px}.mcsprite-white_stained_glass { background-position: -608px -1184px}.mcsprite-white_stained_glass_pane { background-position: -640px -1184px}.mcsprite-white_terracotta { background-position: -672px -1184px}.mcsprite-white_tulip { background-position: -704px -1184px}.mcsprite-white_wool { background-position: -736px -1184px}.mcsprite-witch_spawn_egg { background-position: -768px -1184px}.mcsprite-wither_rose { background-position: -800px -1184px}.mcsprite-wither_skeleton_skull { background-position: -832px -1184px}.mcsprite-wither_skeleton_spawn_egg { background-position: -864px -1184px}.mcsprite-wolf_spawn_egg { background-position: -896px -1184px}.mcsprite-wooden_axe { background-position: -928px -1184px}.mcsprite-wooden_hoe { background-position: -960px -1184px}.mcsprite-wooden_pickaxe { background-position: -992px -1184px}.mcsprite-wooden_shovel { background-position: -1024px -1184px}.mcsprite-wooden_slab { background-position: -1056px -1184px}.mcsprite-wooden_sword { background-position: -1088px -1184px}.mcsprite-woodland_explorer_map { background-position: -1120px -1184px}.mcsprite-written_book { background-position: -1152px -1184px}.mcsprite-yellow_banner { background-position: -1184px -1184px}.mcsprite-yellow_bed { background-position: -1216px -1184px}.mcsprite-yellow_bed_lce { background-position: -1248px -1184px}.mcsprite-yellow_candle { background-position: 0 -1216px}.mcsprite-yellow_carpet { background-position: -32px -1216px}.mcsprite-yellow_concrete { background-position: -64px -1216px}.mcsprite-yellow_concrete_powder { background-position: -96px -1216px}.mcsprite-yellow_dye { background-position: -128px -1216px}.mcsprite-yellow_firework_star { background-position: -160px -1216px}.mcsprite-yellow_glazed_terracotta { background-position: -192px -1216px}.mcsprite-yellow_shield { background-position: -224px -1216px}.mcsprite-yellow_shulker_box { background-position: -256px -1216px}.mcsprite-yellow_stained_glass { background-position: -288px -1216px}.mcsprite-yellow_stained_glass_pane { background-position: -320px -1216px}.mcsprite-yellow_terracotta { background-position: -352px -1216px}.mcsprite-yellow_wool { background-position: -384px -1216px}.mcsprite-zoglin_spawn_egg { background-position: -416px -1216px}.mcsprite-zombie_head { background-position: -448px -1216px}.mcsprite-zombie_horse_spawn_egg { background-position: -480px -1216px}.mcsprite-zombie_pigman_spawn_egg { background-position: -512px -1216px}.mcsprite-zombie_spawn_egg { background-position: -544px -1216px}.mcsprite-zombie_villager_spawn_egg { background-position: -576px -1216px}.mcsprite-zombified_piglin_spawn_egg { background-position: -608px -1216px}.toc { display: none; position: relative; margin: 1em 0; padding: .2em .5em; background-color: #f8f9fa; border: solid 1px #eaecf0; box-sizing: border-box}.toctogglecheckbox~ul { visibility: hidden; height: 0}.toctogglecheckbox:not(:checked)~ul { visibility: visible; padding-bottom: 20px; height: auto}.toctitle { padding: 0 25px 0 32px}.toctitle .mw-ui-icon { position: absolute; left: 0}.toctitle .toctogglespan+.mw-ui-icon { top: 8px; right: 0; left: auto}.toctogglelabel { cursor: pointer; position: absolute; left: 0; top: 0; right: 0; height: 50px; z-index: 1}.client-js .toc .toctitle { visibility: hidden; background-position: right center; font-weight: 700; border-bottom: 0}.client-js .toc .toctitle h2 { display: inline-block; font-family: -apple-system,blinkmacsystemfont,segoe ui,roboto,lato,helvetica,arial,sans-serif; font-size: 1.125em; vertical-align: middle}.client-js .toc .tocnumber { display: none}.client-js .toc>ul { margin: 0 22.85714286em 0 32px; padding-left: 0; font-size: .875em}.client-js .toc ul { list-style: none}@media screen and (min-width: 720px) { .client-js .toc { display:table } .client-js .toc .toctitle { visibility: visible }}body { font-family: -apple-system,blinkmacsystemfont,segoe ui,roboto,lato,helvetica,arial,sans-serif; line-height: 1.4; -webkit-tap-highlight-color: rgba(0,0,0,.2); overflow-y: scroll}.content { line-height: 1.65; word-wrap: break-word}.content .center { width: 100%; text-align: center}.content .center>*,.content .center .thumb { margin-left: auto; margin-right: auto}@media all and (max-width: 320px - 1) { html { font-size:80% } .content { margin: 0 12px }}.nomobile { display: none!important}@supports(font: -apple-system-body) { html { font:-apple-system-body } body { font-size: 94.11764706% } @media all and (max-width: 320px - 1) { body { font-size:75.29411765% } }}.content figure,.content .thumb { margin: .6em 0}.content figure .thumbinner,.content .thumb .thumbinner { margin: 0 auto; max-width: 100%!important}.content figcaption,.content .thumbcaption { margin: .5em 0 0; font-size: .8125em; line-height: 1.5; padding: 0!important; color: #54595d}.content .thumbcaption { width: auto!important}.content .mw-image-border,.content .thumbborder { border: 1px solid #c8ccd1}.content .magnify { display: none}.content img { vertical-align: middle}.content .floatright { clear: right; float: right; margin: 0 0 .6em .6em}.content .floatleft { clear: left; float: left; margin: 0 .6em .6em 0}.content a>img,.content noscript>img { max-width: 100%!important; height: auto!important}.content .noresize { max-width: 100%; overflow-x: auto}.content .noresize a>img { max-width: none!important}h1 { font-size: 1.7em}h2 { font-size: 1.5em}h3 { font-size: 1.2em; font-weight: 700}h4 { font-weight: 700}.pre-content h1,.content h1,.content h2 { font-family: linux libertine,helvetica,georgia,times,serif}.pre-content h1,.content h1,.content h2,h3,h4,h5,h6 { line-height: 1.3; word-wrap: break-word; word-break: break-word}.content h2,.content h3,.content h4,.content h5,.content h6 { padding: .5em 0}.content p+h3 { margin-top: 1.5em}.content {}.content ol { padding-left: 2.25em}.content ul { list-style-type: disc; padding-left: 1em}.content ul>li>ul { list-style-type: circle}.content ul>li>ul>li>ul { list-style-type: square}.content ol ol,.content ul ol,.content ol ul,.content ul ul { margin-left: 1em}.content li { margin-bottom: 10px}.content li:last-child { margin-bottom: inherit}dl { margin-left: 1em}dl dt { font-weight: 700}dl dd { display: block; overflow: auto}body.mw-hide-empty-elt .mw-empty-elt { display: none}a:not([href]) { color: #3f7dfb; cursor: pointer}a { color: #3f7dfb; text-decoration: none}a:visited { color: #ba91ff}a:active { color: #986be5}a:hover { text-decoration: underline}a.new,a.new:visited,a.new:hover { color: #d33}a.new>*,a.new:visited>*,a.new:hover>* { color: #d33}a.external { background-size: 10px; background-repeat: no-repeat; background-position: center right; padding-right: 13px}.return-link { display: block; font-size: .875em; margin-top: 1.5em}.plainlinks a { background: 0 0!important; padding: 0!important}.content p { margin: .5em 0 1em}.content hr { background-color: #a2a9b1; height: 1px; border: 0}.content kbd,.content samp,.content code,.content pre { font-family: menlo,consolas,liberation mono,courier new,monospace; border: solid 1px #c8ccd1; white-space: pre-wrap}.content code { padding: .2em .5em}.content pre { padding: 1em}b,strong { font-weight: 700}blockquote { border-left: 3px solid #c8ccd1; padding: 8px 24px 8px 32px; font-family: linux libertine,helvetica,georgia,times,serif; font-size: 1.1em}blockquote>:first-child { margin-top: 0}blockquote>:last-child { margin-bottom: 0}blockquote>:only-child { margin-top: 0; margin-bottom: 0}em,i { font-style: italic}sup { vertical-align: super}sub { vertical-align: sub}sub,sup,.content .mw-ref { font-size: .75em; line-height: 1}@media all and (max-width: 720px) { .content table { display:block; width: 100%!important; box-sizing: border-box } .content table.wikitable { border: 0 } .content caption { display: block }}.content table { margin: 1em 0; overflow: auto; overflow-y: hidden; overflow-x: auto}.content table caption { text-align: left}.wikitable { border: 1px solid #54595d; border-color: rgba(84,89,93,.3)}.wikitable>tr>th,.wikitable>tr>td,.wikitable>*>tr>th,.wikitable>*>tr>td { border: 1px solid #54595d; border-color: rgba(84,89,93,.3); padding: .2em}.wikitable>tr>th,.wikitable>*>tr>th { background-color: #eaecf0}@media screen and (min-width: 720px) { .client-js #searchIcon { display:none } .header .branding-box { width: 10.0625em } .header .search-box { display: table-cell; width: auto } .header .search-box .search { width: 23.4375em } .pre-content,#mw-content-text>form,.content,.post-content { max-width: 993.3px; margin: 0 3.35em } .content figure,.content .thumb { max-width: 704px } .content figure.mw-halign-left,.content .thumb.mw-halign-left,.content figure.tleft,.content .thumb.tleft { float: left; clear: left; margin-right: 1.4em } .content figure.mw-default-size,.content .thumb.mw-default-size,.content figure.mw-halign-right,.content .thumb.mw-halign-right,.content figure.tright,.content .thumb.tright { float: right; clear: right; margin-left: 1.4em } .content table caption { background: inherit } .content table tbody { display: table-row-group } .last-modified-bar { background-color: transparent; padding-left: 0; padding-right: 0; font-size: 1em }}@media screen and (min-width: 1000px) { .banner-container,.header,.page-header-bar,.overlay-header,.content,.overlay-content,.content-unstyled,.pre-content,.post-content,#mw-content-text>form { margin-left:auto; margin-right: auto; width: 90%; max-width: 993.3px } .header { max-width: 995.3px }}toast.mw-notification-type-error,.mw-notification.mw-notification-type-error { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&format=rasterized&skin=minerva&version=qhhuv); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&format=original&skin=minerva&version=qhhuv)}toast.mw-notification-type-error,.mw-notification.mw-notification-type-error--reference { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&variant=reference&format=rasterized&skin=minerva&version=qhhuv); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=toast.mw-notification-type-error%2C.mw-notification.mw-notification-type-error&variant=reference&format=original&skin=minerva&version=qhhuv)}a.external { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&format=rasterized&lang=en&skin=minerva&version=qhhuv); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&format=original&lang=en&skin=minerva&version=qhhuv)}a.external--reference { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&variant=reference&format=rasterized&lang=en&skin=minerva&version=qhhuv); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.content.styles.images&image=a.external&variant=reference&format=original&lang=en&skin=minerva&version=qhhuv)}.mw-ui-icon-wikimedia-history-base20:before,.mw-ui-background-icon-history { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-history-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-history-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=history&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-language-base20:before,.mw-ui-background-icon-language { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-language-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-language-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=language&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-edit-base20:before,.mw-ui-background-icon-edit { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-edit-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-edit-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=edit&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-editLock-base20:before,.mw-ui-background-icon-editLock { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-editLock-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-editLock-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=editLock&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-search-base20:before,.mw-ui-background-icon-search { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-search-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-search-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=search&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-menu-base20:before,.mw-ui-background-icon-menu { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-menu-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-menu-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=menu&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-star-base20:before,.mw-ui-background-icon-star { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-star-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-star-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=star&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-halfStar-base20:before,.mw-ui-background-icon-halfStar { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&format=rasterized&lang=en&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&format=original&lang=en&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-halfStar-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=invert&format=rasterized&lang=en&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=invert&format=original&lang=en&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-halfStar-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=progressive&format=rasterized&lang=en&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=halfStar&variant=progressive&format=original&lang=en&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-unStar-base20:before,.mw-ui-background-icon-unStar { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-unStar-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-unStar-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=unStar&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-userAvatar-base20:before,.mw-ui-background-icon-userAvatar { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-userAvatar-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=invert&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=invert&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-wikimedia-userAvatar-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=progressive&format=rasterized&skin=minerva&version=4y50j); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.icons.wikimedia&image=userAvatar&variant=progressive&format=original&skin=minerva&version=4y50j)}.mw-ui-icon-minerva-speechBubbles:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.advanced.icons&image=speechBubbles&format=rasterized&lang=en&skin=minerva&version=jhnt0); background-image: linear-gradient(transparent,transparent),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+c3BlZWNoIGJ1YmJsZXM8L3RpdGxlPjxnIGZpbGw9IiM1NDU5NWQiPjxwYXRoIGQ9Ik0xNyA0djdhMiAyIDAgMDEtMiAySDR2MWEyIDIgMCAwMDIgMmgxMGw0IDRWNmEyIDIgMCAwMC0yLTJ6TTYgMTBIMHY2eiIvPjxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxMiIgcng9IjIiLz48L2c+PC9zdmc+)}.mw-ui-icon-minerva-specialPages:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.advanced.icons&image=specialPages&format=rasterized&lang=en&skin=minerva&version=jhnt0); background-image: linear-gradient(transparent,transparent),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+c3BlY2lhbCBwYWdlczwvdGl0bGU+PGcgZmlsbD0iIzU0NTk1ZCI+PHBhdGggZD0iTTcgMGEyIDIgMCAwMC0yIDJoOWEyIDIgMCAwMTIgMnYxMmEyIDIgMCAwMDItMlYyYTIgMiAwIDAwLTItMnoiLz48cGF0aCBkPSJNMTMgMjBINGEyIDIgMCAwMS0yLTJWNWEyIDIgMCAwMTItMmg5YTIgMiAwIDAxMiAydjEzYTIgMiAwIDAxLTIgMnptLTYuNS0zLjVsLjQxLTEuMDlMOCAxNWwtMS4wOS0uNDEtLjQxLTEuMDktLjQxIDEuMDlMNSAxNWwxLjA5LjQxLjQxIDEuMDl6bTIuOTgyLS45NDlsLjk1Mi0yLjU2MSAyLjUzLS45NjQtMi41My0uOTY0TDkuNDgyIDguNWwtLjk1MiAyLjU2Mi0yLjUzLjk2NCAyLjUzLjk2NC45NTIgMi41NjF6TTYgMTAuNWwuNTQ3LTEuNDUzTDggOC41bC0xLjQ1My0uNTQ3TDYgNi41bC0uNTQ3IDEuNDUzTDQgOC41bDEuNDUzLjU0N0w2IDEwLjV6Ii8+PC9nPjwvc3ZnPg==)}.mw-ui-icon-minerva-recentChanges:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.advanced.icons&image=recentChanges&format=rasterized&lang=en&skin=minerva&version=jhnt0); background-image: linear-gradient(transparent,transparent),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+cmVjZW50IGNoYW5nZXM8L3RpdGxlPjxnIGZpbGw9IiM1NDU5NWQiPjxjaXJjbGUgY3g9IjIiIGN5PSI0IiByPSIyIi8+PGNpcmNsZSBjeD0iMiIgY3k9IjEwIiByPSIyIi8+PGNpcmNsZSBjeD0iMiIgY3k9IjE2IiByPSIyIi8+PHBhdGggZD0iTTYgM2gxMXYySDZ6bTAgNmg2djJINnptMCA2aDJ2Mkg2em0xMi43Ni0zLjExbDEuMDc4LTEuMTEyYS41NTYuNTU2IDAgMDAwLS43ODNsLTEuODU1LTEuODMzYS41NTYuNTU2IDAgMDAtLjc4MyAwbC0xLjA5IDEuMDc3IDIuNjUgMi42NXptLTMuMjI3LTIuMDYyTDEwIDE1LjM2MVYxOGgyLjYzOWw1LjUzMy01LjUzM3oiLz48L2c+PC9zdmc+)}.mw-ui-icon-minerva-die:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=die&format=rasterized&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=die&format=original&skin=minerva&version=17p52)}.mw-ui-icon-minerva-heart:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=heart&format=rasterized&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=heart&format=original&skin=minerva&version=17p52)}.mw-ui-icon-minerva-home:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=home&format=rasterized&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=home&format=original&skin=minerva&version=17p52)}.mw-ui-icon-minerva-logIn:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logIn&format=rasterized&lang=en&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logIn&format=original&lang=en&skin=minerva&version=17p52)}.mw-ui-icon-minerva-logOut:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logOut&format=rasterized&lang=en&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=logOut&format=original&lang=en&skin=minerva&version=17p52)}.mw-ui-icon-minerva-settings:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=settings&format=rasterized&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=settings&format=original&skin=minerva&version=17p52)}.mw-ui-icon-minerva-mapPin:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=mapPin&format=rasterized&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=mapPin&format=original&skin=minerva&version=17p52)}.mw-ui-icon-minerva-unStar:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=unStar&format=rasterized&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=unStar&format=original&skin=minerva&version=17p52)}.mw-ui-icon-minerva-userContributions:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=userContributions&format=rasterized&lang=en&skin=minerva&version=17p52); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.mainMenu.icons&image=userContributions&format=original&lang=en&skin=minerva&version=17p52)}#mw-mf-page-left { position: fixed; top: 0; left: 0; bottom: 0; min-width: 275px; visibility: hidden; max-width: 80%; z-index: 2; overflow-y: auto; background-color: #eaecf0; -webkit-transform: translate(-100%,0); -ms-transform: translate(-100%,0); transform: translate(-100%,0)}@media screen and (min-width: 720px) { #mw-mf-page-left { min-width:320px }}#mw-mf-page-left ul { padding-bottom: 22px}.main-menu-mask { position: fixed; top: 0; left: 0; right: 0; opacity: 0; bottom: 0; background: rgba(0,0,0,.8); z-index: 1; visibility: hidden}#main-menu-input:checked~.main-menu-mask { visibility: visible; opacity: .5}#main-menu-input:checked~#mw-mf-page-left { visibility: visible; box-shadow: 1px 0 8px 0 rgba(0,0,0,.35); -webkit-transform: translate(0,0); -ms-transform: translate(0,0); transform: translate(0,0)}.minerva-animations-ready #mw-mf-page-left { -webkit-transition: opacity 250ms ease-in-out,visibility 250ms ease-in-out,transform 250ms ease-in-out; transition: opacity 250ms ease-in-out,visibility 250ms ease-in-out,transform 250ms ease-in-out}.minerva-animations-ready .main-menu-mask { -webkit-transition: opacity 100ms ease-in-out,visibility 0ms linear 100ms; transition: opacity 100ms ease-in-out,visibility 0ms linear 100ms}.minerva-animations-ready #main-menu-input:checked~.main-menu-mask { -webkit-transition: opacity 100ms ease-in-out; transition: opacity 100ms ease-in-out}.navigation-full-screen #mw-mf-page-left { max-width: none; -webkit-transform: none; -ms-transform: none; transform: none}.hotfix-T264376 .main-menu-mask { display: none}.hotfix-T264376 #main-menu-input:checked~.main-menu-mask { display: block}#mw-mf-page-left .secondary-action { border: 0; font-size: 16px; position: absolute; right: 0; top: 0; bottom: 0; border-left: 1px solid #a2a9b1; color: transparent}#mw-mf-page-left .primary-action { margin-right: 3.5em}#mw-mf-page-left ul:first-child li:first-child { border-top: 0}#mw-mf-page-left ul li { background-color: #fff; position: relative; border-top: 1px solid #eaecf0; margin-top: -1px}#mw-mf-page-left ul li:first-child { border-top: 0}#mw-mf-page-left ul li a { color: #54595d; display: block; max-width: 100%; padding: 12px 10px 12px 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap}#mw-mf-page-left ul li a.secondary-action { padding-left: 10px}#mw-mf-page-left ul li a:hover { box-shadow: inset 4px 0 0 0 #36c; text-decoration: none}#mw-mf-page-left ul li a span { font-size: .875em; font-weight: 700; vertical-align: middle}#mw-mf-page-left ul.hlist li { background-color: transparent; border: 0; margin: 0; font-size: .75em}#mw-mf-page-left ul.hlist li:after { content: none}#mw-mf-page-left ul.hlist li a { color: #36c; padding: .7em 12px}#mw-mf-page-left ul.hlist li a:hover { background-color: transparent; box-shadow: none}.notifications-overlay { visibility: visible}.notifications-overlay.navigation-drawer { display: block; width: auto; right: 0; box-shadow: -5px 0 0 0 rgba(0,0,0,.35); -webkit-transform: translate(100%,0); -ms-transform: translate(100%,0); transform: translate(100%,0); -webkit-transition: transform 250ms ease-in-out; transition: transform 250ms ease-in-out}.notifications-overlay.navigation-drawer.visible { -webkit-transform: translate(0,0); -ms-transform: translate(0,0); transform: translate(0,0)}@media all and (min-width: 720px) { .notifications-overlay.navigation-drawer { left:40% } .notifications-overlay.navigation-drawer .overlay-header { margin: 0; width: 100%; max-width: none } .notifications-overlay.navigation-drawer .overlay-header .cancel { left: 0 }}.toggle-list__checkbox { position: absolute; z-index: -1; opacity: 0}.toggle-list__toggle { display: inline-block; cursor: pointer}.toggle-list__checkbox:focus+.toggle-list__toggle { outline: dotted 1px; outline: auto #447ff5}.toggle-list__checkbox:checked+.toggle-list__toggle { outline: 0; background: rgba(1,1,1,.1)}.touch-events .toggle-list__checkbox:focus+.toggle-list__toggle { outline: 0}.toggle-list__list { background: #fff; position: absolute; overflow-y: auto; z-index: 2; box-shadow: 0 5px 17px 0 rgba(0,0,0,.24),0 0 1px #a2a9b1; visibility: hidden; opacity: 0}.toggle-list__checkbox:checked~.toggle-list__list { visibility: visible; opacity: 1}.mw-ui-icon-minerva-articleRedirect:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-articleRedirect,.mw-ui-icon-articleRedirect-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-articleRedirect,.mw-ui-icon-articleRedirect-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=articleRedirect&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-infoFilled:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-infoFilled,.mw-ui-icon-infoFilled-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-infoFilled,.mw-ui-icon-infoFilled-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=infoFilled&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-quotes:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-quotes,.mw-ui-icon-quotes-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-quotes,.mw-ui-icon-quotes-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=quotes&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-link:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-link,.mw-ui-icon-link-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=invert&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=invert&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-link,.mw-ui-icon-link-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=link&variant=progressive&format=original&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-listBullet:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-listBullet,.mw-ui-icon-listBullet-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-listBullet,.mw-ui-icon-listBullet-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=listBullet&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-ellipsis:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-ellipsis,.mw-ui-icon-ellipsis-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=invert&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=invert&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-ellipsis,.mw-ui-icon-ellipsis-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=ellipsis&variant=progressive&format=original&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-userAvatar:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-userAvatar,.mw-ui-icon-userAvatar-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=invert&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=invert&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-userAvatar,.mw-ui-icon-userAvatar-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatar&variant=progressive&format=original&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-userAvatarOutline:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-userAvatarOutline,.mw-ui-icon-userAvatarOutline-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=invert&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=invert&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-userAvatarOutline,.mw-ui-icon-userAvatarOutline-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userAvatarOutline&variant=progressive&format=original&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-userGroup:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-userGroup,.mw-ui-icon-userGroup-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-userGroup,.mw-ui-icon-userGroup-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userGroup&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-userTalk:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-userTalk,.mw-ui-icon-userTalk-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=invert&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=invert&format=original&lang=en&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-userTalk,.mw-ui-icon-userTalk-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=progressive&format=rasterized&lang=en&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=userTalk&variant=progressive&format=original&lang=en&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-logoWikidata:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-invert.oo-ui-icon-logoWikidata,.mw-ui-icon-logoWikidata-invert:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=invert&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=invert&format=original&skin=minerva&version=bdzvr)}.oo-ui-image-progressive.oo-ui-icon-logoWikidata,.mw-ui-icon-logoWikidata-progressive:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=progressive&format=rasterized&skin=minerva&version=bdzvr); background-image: linear-gradient(transparent,transparent),url(https://wiki.hypixel.net/load.php?modules=skins.minerva.overflow.icons&image=logoWikidata&variant=progressive&format=original&skin=minerva&version=bdzvr)}.mw-ui-icon-minerva-markup:before { background-image: url(https://wiki.hypixel.net/load.php?modules=skins.minerva.personalMenu.icons&image=markup&format=rasterized&skin=minerva&version=1j2d9); background-image: linear-gradient(transparent,transparent),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+bWFya3VwPC90aXRsZT48ZyBmaWxsPSIjNTQ1OTVkIj48cGF0aCBkPSJNNi41IDMuNUwwIDEwbDEuNSAxLjUgNSA1TDggMTVsLTUtNSA1LTV6bTcgMEwxMiA1bDUgNS01IDUgMS41IDEuNUwyMCAxMHoiLz48L2c+PC9zdmc+)}div#mw-content-text { position: absolute;}body { text-rendering: optimizeLegibility; text-rendering: geometricPrecision} -- cgit From cc1464047598806f73dd4633ce19e8d22dbfc52b Mon Sep 17 00:00:00 2001 From: Raid34 <77941535+Raid34@users.noreply.github.com> Date: Sun, 12 Jun 2022 06:58:34 +1200 Subject: Updating the DG cape (#164) * Delete dg.png * Delete dg_preview.png * Add files via upload --- .../resources/assets/notenoughupdates/capes/dg.png | Bin 81534 -> 46776 bytes .../assets/notenoughupdates/capes/dg_preview.png | Bin 42377 -> 18852 bytes 2 files changed, 0 insertions(+), 0 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/notenoughupdates/capes/dg.png b/src/main/resources/assets/notenoughupdates/capes/dg.png index 8625fbfc..47d3d1e0 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/dg.png and b/src/main/resources/assets/notenoughupdates/capes/dg.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/dg_preview.png b/src/main/resources/assets/notenoughupdates/capes/dg_preview.png index 0ef73797..2e68d99d 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/dg_preview.png and b/src/main/resources/assets/notenoughupdates/capes/dg_preview.png differ -- cgit From ce23654aff4c315fde75d57c0cfde5b9e2d4bfe0 Mon Sep 17 00:00:00 2001 From: efefury <69400149+efefury@users.noreply.github.com> Date: Sat, 11 Jun 2022 21:18:41 +0200 Subject: Trophy Fishing Tab (#163) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * trophy fishing cool stuff Co-Authored-By: jani270 <69345714+jani270@users.noreply.github.com> * noob * yep bugs: - not uploading when swapping profiles - while hovering over lowest slot, left skulls have light issue Co-Authored-By: jani270 <69345714+jani270@users.noreply.github.com> * change when switching profiles * things lighting bugs add trophy page to pageLayout on startup disable dungeon map on startup * map message * 🤡 but ok Co-authored-by: IRONM00N <64110067+IRONM00N@users.noreply.github.com> * i hate you iron Co-authored-by: jani270 <69345714+jani270@users.noreply.github.com> Co-authored-by: Lulonaut Co-authored-by: IRONM00N <64110067+IRONM00N@users.noreply.github.com> --- Update Notes/2.1.md | 1 + .../notenoughupdates/NotEnoughUpdates.java | 11 + .../commands/dungeon/MapCommand.java | 6 + .../options/seperateSections/DungeonMapConfig.java | 2 +- .../options/seperateSections/ProfileViewer.java | 9 +- .../profileviewer/GuiProfileViewer.java | 22 +- .../profileviewer/trophy/TrophyFish.java | 74 ++++ .../profileviewer/trophy/TrophyFishingPage.java | 429 +++++++++++++++++++++ .../assets/notenoughupdates/pv_trophy_fish_tab.png | Bin 0 -> 4057 bytes 9 files changed, 541 insertions(+), 13 deletions(-) create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/profileviewer/trophy/TrophyFish.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/profileviewer/trophy/TrophyFishingPage.java create mode 100644 src/main/resources/assets/notenoughupdates/pv_trophy_fish_tab.png (limited to 'src/main/resources') diff --git a/Update Notes/2.1.md b/Update Notes/2.1.md index e3c16382..1a5e1aef 100644 --- a/Update Notes/2.1.md +++ b/Update Notes/2.1.md @@ -6,6 +6,7 @@ - Added fishing skill overlay - Added combat skill overlay - Added slayer overlay +- Added trophy fishing pv tab - efefury - [Added mining tab in /pv](https://cdn.discordapp.com/attachments/832652653292027904/903619242384056370/unknown.png) - Big thanks to kwev1n for some math and jani for the texture - Added blocking clicks back to the enchanting minigames (because apparently, it's not bannable?) diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java index 9f7a98b1..bd54dfba 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java @@ -232,6 +232,17 @@ public class NotEnoughUpdates { config.apiData.apiKey = config.apiKey.apiKey; config.apiKey = null; } + + if (config.dungeonMap.dmEnable && + !NotEnoughUpdates.INSTANCE.config.hidden.dev) { + config.dungeonMap.dmEnable = false; + } + + //add the trophy fishing tab to the config + if (config.profileViewer.pageLayout.size() == 8) { + config.profileViewer.pageLayout.add(8); + } + saveConfig(); } MinecraftForge.EVENT_BUS.register(this); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java index 3789a09d..529f8e57 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java @@ -50,6 +50,12 @@ public class MapCommand extends ClientCommandBase { @Override public void processCommand(ICommandSender sender, String[] args) throws CommandException { + if (!NotEnoughUpdates.INSTANCE.config.hidden.dev) { + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText( + EnumChatFormatting.RED + "[NEU] The map does not work right now. You can use the map from other mods, for example: SkyblockAddons, DungeonsGuide, or Skytils ")); + return; + } + if (NotEnoughUpdates.INSTANCE.colourMap == null) { try ( BufferedReader reader = new BufferedReader(new InputStreamReader(Minecraft diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java index 8e211bd6..4397c02e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java @@ -73,7 +73,7 @@ public class DungeonMapConfig { name = "Show Dungeon Map", desc = "Show/hide the NEU dungeon map" ) - public boolean dmEnable = true; + public boolean dmEnable = false; @Expose @ConfigOption( diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ProfileViewer.java index 5d3b6532..49385d02 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ProfileViewer.java @@ -20,11 +20,7 @@ package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; -import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; -import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorButton; -import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDraggableList; -import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorFSR; -import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; +import io.github.moulberry.notenoughupdates.core.config.annotations.*; import java.util.ArrayList; import java.util.Arrays; @@ -71,10 +67,11 @@ public class ProfileViewer { "\u00a7ePets", "\u00a7eMining", "\u00a7eBingo", + "\u00a7eTrophy Fish", }, allowDeleting = false ) - public List pageLayout = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7)); + public List pageLayout = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8)); @Expose @ConfigOption( diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java index ba3b97f8..e4014ca3 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java @@ -29,6 +29,7 @@ import com.mojang.authlib.GameProfile; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.cosmetics.ShaderManager; import io.github.moulberry.notenoughupdates.itemeditor.GuiElementTextField; +import io.github.moulberry.notenoughupdates.profileviewer.trophy.TrophyFishingPage; import io.github.moulberry.notenoughupdates.util.Constants; import io.github.moulberry.notenoughupdates.util.SBInfo; import io.github.moulberry.notenoughupdates.util.Utils; @@ -199,7 +200,7 @@ public class GuiProfileViewer extends GuiScreen { "personal_vault_contents", Utils.editItemStackInfo(NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager .getItemInformation() - .get("IRON_CHEST")), EnumChatFormatting.GRAY + "Personal vault", true) + .get("IRON_CHEST")), EnumChatFormatting.GRAY + "Personal Vault", true) ); put("talisman_bag", Utils.createItemStack(Items.golden_apple, EnumChatFormatting.GRAY + "Accessory Bag")); put("wardrobe_contents", Utils.createItemStack(Items.leather_chestplate, EnumChatFormatting.GRAY + "Wardrobe")); @@ -223,7 +224,7 @@ public class GuiProfileViewer extends GuiScreen { private static int floorTime = 7; private static int guiLeft; private static int guiTop; - private static ProfileViewer.Profile profile = null; + private static ProfileViewer.Profile profile; private final GuiElementTextField playerNameTextField; private final HashMap levelObjCatas = new HashMap<>(); private final HashMap levelObjhotms = new HashMap<>(); @@ -251,7 +252,7 @@ public class GuiProfileViewer extends GuiScreen { private long lastTime = 0; private long startTime = 0; private List tooltipToDisplay = null; - private String profileId = null; + private static String profileId = null; private boolean profileDropdownSelected = false; private ItemStack selectedCollectionCategory = null; private int floorLevelTo = -1; @@ -282,9 +283,10 @@ public class GuiProfileViewer extends GuiScreen { private boolean showBingoPage; public GuiProfileViewer(ProfileViewer.Profile profile) { - this.profile = profile; + GuiProfileViewer.profile = profile; + GuiProfileViewer.profileId = profile.getLatestProfile(); String name = ""; - if (profile != null && profile.getHypixelProfile() != null) { + if (profile.getHypixelProfile() != null) { name = profile.getHypixelProfile().get("displayname").getAsString(); } playerNameTextField = new GuiElementTextField( @@ -466,6 +468,10 @@ public class GuiProfileViewer extends GuiScreen { return profile; } + public static String getProfileId() { + return profileId; + } + @Override public void drawScreen(int mouseX, int mouseY, float partialTicks) { currentTime = System.currentTimeMillis(); @@ -708,6 +714,9 @@ public class GuiProfileViewer extends GuiScreen { case BINGO: BingoPage.renderPage(mouseX, mouseY); break; + case TROPHY_FISH: + TrophyFishingPage.renderPage(mouseX, mouseY); + break; case LOADING: String str = EnumChatFormatting.YELLOW + "Loading player profiles."; long currentTimeMod = System.currentTimeMillis() % 1000; @@ -5354,7 +5363,8 @@ public class GuiProfileViewer extends GuiScreen { COLLECTIONS(4, Items.painting, "Collections"), PETS(5, Items.bone, "Pets"), MINING(6, Items.iron_pickaxe, "Heart of the Mountain"), - BINGO(7, Items.filled_map, "Bingo"); + BINGO(7, Items.filled_map, "Bingo"), + TROPHY_FISH(8, Items.fishing_rod, "Trophy Fish"); public final ItemStack stack; public final int id; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/trophy/TrophyFish.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/trophy/TrophyFish.java new file mode 100644 index 00000000..9951511d --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/trophy/TrophyFish.java @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.profileviewer.trophy; + +import java.util.Map; + +public class TrophyFish { + + private final String name; + + private int total = 0; + + public final Map trophyFishRarityIntegerMap; + + public TrophyFish(String name, Map trophyFishRarityIntegerMap) { + this.name = name; + this.trophyFishRarityIntegerMap = trophyFishRarityIntegerMap; + } + + public void addTotal(int n) { + total +=n; + } + + public int getTotal() { + return total; + } + + public void removeTotal(int n) { + total -=n; + } + + public String getName() { + return name; + } + + public Map getTrophyFishRarityIntegerMap() { + return trophyFishRarityIntegerMap; + } + + public void add(TrophyFishRarity rarity, int value) { + if(!trophyFishRarityIntegerMap.containsKey(rarity)) { + trophyFishRarityIntegerMap.put(rarity, value); + } + } + + public enum TrophyFishRarity { + BRONZE, + SILVER, + GOLD, + DIAMOND; + } + + public String getInternalName() { + return name.toLowerCase().replace(" ", "_"); + } +} + diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/trophy/TrophyFishingPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/trophy/TrophyFishingPage.java new file mode 100644 index 00000000..6063dee0 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/trophy/TrophyFishingPage.java @@ -0,0 +1,429 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.profileviewer.trophy; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.profileviewer.GuiProfileViewer; +import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; +import org.apache.commons.lang3.text.WordUtils; +import org.apache.commons.lang3.tuple.Pair; +import org.lwjgl.opengl.GL11; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +public class TrophyFishingPage { + + public static Map internalTrophyFish = new HashMap() { + { + put("gusher", EnumChatFormatting.WHITE); + put("flyfish", EnumChatFormatting.GREEN); + put("moldfin", EnumChatFormatting.DARK_PURPLE); + put("vanille", EnumChatFormatting.BLUE); + put("blobfish", EnumChatFormatting.WHITE); + put("mana_ray", EnumChatFormatting.BLUE); + put("slugfish", EnumChatFormatting.GREEN); + put("soul_fish", EnumChatFormatting.DARK_PURPLE); + put("lava_horse", EnumChatFormatting.BLUE); + put("golden_fish", EnumChatFormatting.GOLD); + put("karate_fish", EnumChatFormatting.DARK_PURPLE); + put("skeleton_fish", EnumChatFormatting.DARK_PURPLE); + put("sulphur_skitter", EnumChatFormatting.WHITE); + put("obfuscated_fish_1", EnumChatFormatting.WHITE); + put("obfuscated_fish_2", EnumChatFormatting.GREEN); + put("obfuscated_fish_3", EnumChatFormatting.BLUE); + put("volcanic_stonefish", EnumChatFormatting.BLUE); + put("steaming_hot_flounder", EnumChatFormatting.WHITE); + } + }; + + private static LinkedHashMap> armorHelmets = + new LinkedHashMap>() { + { + put(NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager + .getItemInformation() + .get("BRONZE_HUNTER_HELMET")), Pair.of(EnumChatFormatting.GREEN + "Novice Fisher", 1)); + put(NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager + .getItemInformation() + .get("SILVER_HUNTER_HELMET")), Pair.of(EnumChatFormatting.BLUE + "Adept Fisher", 2)); + put(NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager + .getItemInformation() + .get("GOLD_HUNTER_HELMET")), Pair.of(EnumChatFormatting.DARK_PURPLE + "Expert Fisher", 3)); + put(NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager + .getItemInformation() + .get("DIAMOND_HUNTER_HELMET")), Pair.of(EnumChatFormatting.GOLD + "Master Fisher", 4)); + } + }; + + private static Map> slotLocations = new HashMap>() { + { + put(0, Pair.of(277, 46)); + put(1, Pair.of(253, 58)); + put(2, Pair.of(301, 58)); + put(3, Pair.of(229, 70)); + put(4, Pair.of(325, 70)); + put(5, Pair.of(277, 70)); + put(6, Pair.of(253, 82)); + put(7, Pair.of(301, 82)); + put(8, Pair.of(229, 94)); + put(9, Pair.of(325, 94)); + put(10, Pair.of(253, 106)); + put(11, Pair.of(301, 106)); + put(12, Pair.of(277, 118)); + put(13, Pair.of(229, 118)); + put(14, Pair.of(325, 118)); + put(15, Pair.of(253, 130)); + put(16, Pair.of(301, 130)); + put(17, Pair.of(277, 142)); + } + }; + private static long totalCount = 0; + private static int guiLeft; + private static int guiTop; + + private static final ResourceLocation TROPHY_FISH_TEXTURE = new ResourceLocation( + "notenoughupdates:pv_trophy_fish_tab.png"); + private static final Map trophyFishList = new HashMap<>(); + + private static final Map total = new HashMap<>(); + + public static void renderPage(int mouseX, int mouseY) { + guiLeft = GuiProfileViewer.getGuiLeft(); + guiTop = GuiProfileViewer.getGuiTop(); + JsonObject trophyInformation = getTrophyInformation(); + if (trophyInformation == null) { + Utils.drawStringCentered(EnumChatFormatting.RED + "No data found", + Minecraft.getMinecraft().fontRendererObj, + guiLeft + 431 / 2f, + guiTop + 101, + true, + 0 + ); + return; + } + + ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft()); + int width = scaledResolution.getScaledWidth(); + int height = scaledResolution.getScaledHeight(); + + Minecraft.getMinecraft().getTextureManager().bindTexture(TROPHY_FISH_TEXTURE); + Utils.drawTexturedRect(guiLeft, guiTop, 431, 202, GL11.GL_NEAREST); + + GlStateManager.color(1, 1, 1, 1); + GlStateManager.disableLighting(); + RenderHelper.enableGUIStandardItemLighting(); + + JsonObject stats = trophyInformation.get("stats").getAsJsonObject(); + + int thunderKills = 0; + if (stats.has("kills_thunder")) { + thunderKills = stats.getAsJsonObject().get("kills_thunder").getAsInt(); + } + ItemStack thunder_sc = NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager + .getItemInformation() + .get("THUNDER_SC")); + Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(thunder_sc, guiLeft + 16, guiTop + 108); + + Utils.drawStringF( + EnumChatFormatting.AQUA + "Thunder Kills: §f" + thunderKills, + Minecraft.getMinecraft().fontRendererObj, + guiLeft + 36, + guiTop + 112, + true, + 0 + ); + + ItemStack lord_jawbus_sc = NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager + .getItemInformation() + .get("LORD_JAWBUS_SC")); + Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(lord_jawbus_sc, guiLeft + 16, guiTop + 120); + int jawbusKills = 0; + if (stats.has("kills_lord_jawbus")) { + jawbusKills = stats.getAsJsonObject().get("kills_lord_jawbus").getAsInt(); + } + + Utils.drawStringF( + EnumChatFormatting.AQUA + "Lord Jawbus Kills: §f" + jawbusKills, + Minecraft.getMinecraft().fontRendererObj, + guiLeft + 36, + guiTop + 124, + true, + 0 + ); + + ItemStack fishing_rod = NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager + .getItemInformation() + .get("FISHING_ROD")); + Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(fishing_rod, guiLeft + 20, guiTop + 21); + + Utils.drawStringF( + EnumChatFormatting.AQUA + "Total Caught: §f" + totalCount, + Minecraft.getMinecraft().fontRendererObj, + guiLeft + 38, + guiTop + 25, + true, + 0 + ); + + ArrayList arrayList = new ArrayList<>(trophyFishList.values()); + arrayList.sort((c1, c2) -> { + if (c1.getTotal() > c2.getTotal()) return -1; + if (c1.getTotal() < c2.getTotal()) return 1; + return 0; + }); + + int x; + int y; + for (TrophyFish value : arrayList) { + RenderHelper.enableGUIStandardItemLighting(); + x = guiLeft + slotLocations.get(arrayList.indexOf(value)).getLeft(); + y = guiTop + slotLocations.get(arrayList.indexOf(value)).getRight(); + Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI( + getItem(value.getName()), + x, + y + ); + + if (mouseX >= x && mouseX < x + 24) { + if (mouseY >= y && mouseY <= y + 24) { + Utils.drawHoveringText( + getTooltip(value), + mouseX, + mouseY, + width, + height, + -1, + Minecraft.getMinecraft().fontRendererObj + ); + } + } + } + + if (arrayList.size() != internalTrophyFish.size()) { + List clonedList = new ArrayList<>(internalTrophyFish.size()); + clonedList.addAll(internalTrophyFish.keySet()); + clonedList.removeAll(fixStringName(new ArrayList<>(trophyFishList.keySet()))); + for (String difference : clonedList) { + RenderHelper.enableGUIStandardItemLighting(); + x = guiLeft + slotLocations.get(clonedList.indexOf(difference) + (trophyFishList.keySet().size())).getLeft(); + y = guiTop + slotLocations.get(clonedList.indexOf(difference) + (trophyFishList.keySet().size())).getRight(); + ItemStack itemStack = new ItemStack(Items.dye, 1, 8); + Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI( + itemStack, + x, + y + ); + if (mouseX >= x && mouseX < x + 24) { + if (mouseY >= y && mouseY <= y + 24) { + Utils.drawHoveringText( + getTooltipIfNotFound(difference), + mouseX, + mouseY, + width, + height, + -1, + Minecraft.getMinecraft().fontRendererObj + ); + } + + } + } + } + + int i = 0; + if (!trophyInformation.has("trophy_fish") && + !trophyInformation.get("trophy_fish").getAsJsonObject().has("rewards")) { + return; + } + + JsonArray rewards = trophyInformation.get("trophy_fish").getAsJsonObject().get("rewards").getAsJsonArray(); + for (ItemStack itemStack : armorHelmets.keySet()) { + RenderHelper.enableGUIStandardItemLighting(); + int integer = armorHelmets.get(itemStack).getRight(); + x = guiLeft + 18; + y = guiTop + 50 + i; + + Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(itemStack, x, y); + Utils.drawStringF(armorHelmets.get(itemStack).getLeft(), Minecraft.getMinecraft().fontRendererObj, + x + 20, y + 4, true, 0 + ); + try { + JsonElement jsonElement = rewards.get(integer - 1); + if (!jsonElement.isJsonNull()) { + Utils.drawStringF(check, Minecraft.getMinecraft().fontRendererObj, + x + 100, y + 2, true, 0 + ); + } else { + Utils.drawStringF(checkX, Minecraft.getMinecraft().fontRendererObj, + x + 100, y + 4, true, 0 + ); + } + } catch (IndexOutOfBoundsException exception) { + Utils.drawStringF(checkX, Minecraft.getMinecraft().fontRendererObj, + x + 100, y + 4, true, 0 + ); + } + i += 10; + } + + GlStateManager.enableLighting(); + } + + private static List getTooltip(TrophyFish fish) { + List tooltip = new ArrayList<>(); + tooltip.add( + internalTrophyFish.get(fish.getInternalName()) + WordUtils.capitalize(fish.getName().replace("_", " "))); + Map trophyFishRarityIntegerMap = fish.getTrophyFishRarityIntegerMap(); + tooltip.add(" "); + tooltip.add(display(trophyFishRarityIntegerMap, TrophyFish.TrophyFishRarity.DIAMOND, EnumChatFormatting.AQUA)); + tooltip.add(display(trophyFishRarityIntegerMap, TrophyFish.TrophyFishRarity.GOLD, EnumChatFormatting.GOLD)); + tooltip.add(display(trophyFishRarityIntegerMap, TrophyFish.TrophyFishRarity.SILVER, EnumChatFormatting.GRAY)); + tooltip.add(display(trophyFishRarityIntegerMap, TrophyFish.TrophyFishRarity.BRONZE, EnumChatFormatting.DARK_GRAY + )); + return tooltip; + } + + private static List getTooltipIfNotFound(String name) { + List tooltip = new ArrayList<>(); + tooltip.add( + internalTrophyFish.get(name.toLowerCase().replace(" ", "_")) + WordUtils.capitalize(name.replace("_", " "))); + tooltip.add(" "); + tooltip.add(EnumChatFormatting.RED + checkX + " Not Discovered"); + tooltip.add(" "); + tooltip.add(display(null, TrophyFish.TrophyFishRarity.DIAMOND, EnumChatFormatting.AQUA)); + tooltip.add(display(null, TrophyFish.TrophyFishRarity.GOLD, EnumChatFormatting.GOLD)); + tooltip.add(display(null, TrophyFish.TrophyFishRarity.SILVER, EnumChatFormatting.GRAY)); + tooltip.add(display(null, TrophyFish.TrophyFishRarity.BRONZE, EnumChatFormatting.DARK_GRAY)); + return tooltip; + } + + private static final String checkX = "§c✖"; + private static final String check = "§a✔"; + + private static String display( + Map trophyFishRarityIntegerMap, + TrophyFish.TrophyFishRarity rarity, EnumChatFormatting color + ) { + String name = WordUtils.capitalize(rarity.name().toLowerCase()); + if (trophyFishRarityIntegerMap == null) { + return color + name + ": " + checkX; + } + + if (trophyFishRarityIntegerMap.containsKey(rarity)) { + return color + name + ": " + EnumChatFormatting.GOLD + + trophyFishRarityIntegerMap.get(rarity); + } else { + return color + name + ": " + checkX; + } + } + + private static ItemStack getItem(String name) { + String repoName = name.toUpperCase().replace(" ", "_") + "_BRONZE"; + JsonObject jsonItem = NotEnoughUpdates.INSTANCE.manager.getItemInformation().get(repoName); + return NotEnoughUpdates.INSTANCE.manager.jsonToStack(jsonItem); + } + + private static JsonObject getTrophyInformation() { + trophyFishList.clear(); + + JsonObject trophyFishInformation = GuiProfileViewer.getProfile().getProfileInformation(GuiProfileViewer.getProfileId()); + if (trophyFishInformation == null || !trophyFishInformation.has("trophy_fish")) { + return null; + } + JsonObject trophyObject = trophyFishInformation.get("trophy_fish").getAsJsonObject(); + Map>> trophyFishRarityIntegerMap = new HashMap<>(); + for (Map.Entry stringJsonElementEntry : trophyObject.entrySet()) { + String key = stringJsonElementEntry.getKey(); + if (key.equalsIgnoreCase("rewards") || key.equalsIgnoreCase("total_caught")) { + if (key.equalsIgnoreCase("total_caught")) { + totalCount = stringJsonElementEntry.getValue().getAsInt(); + } + continue; + } + + String[] s = key.split("_"); + String type = s[s.length - 1]; + TrophyFish.TrophyFishRarity trophyFishRarity; + int value = stringJsonElementEntry.getValue().getAsInt(); + + if (key.startsWith("golden_fish_")) { + type = s[2]; + } + try { + trophyFishRarity = TrophyFish.TrophyFishRarity.valueOf(type.toUpperCase()); + } catch (IllegalArgumentException ignored) { + total.put(WordUtils.capitalize(key), value); + continue; + } + + String replace = key.replace("_" + type, ""); + String name = WordUtils.capitalize(replace); + List> pairs; + + if (trophyFishRarityIntegerMap.containsKey(name)) { + pairs = trophyFishRarityIntegerMap.get(name); + } else { + pairs = new ArrayList<>(); + } + pairs.add(Pair.of(trophyFishRarity, value)); + trophyFishRarityIntegerMap.put(name, pairs); + } + + trophyFishRarityIntegerMap.forEach((name, pair) -> { + if (!TrophyFishingPage.trophyFishList.containsKey(name)) { + TrophyFish trophyFish = new TrophyFish(name, new HashMap<>()); + trophyFish.addTotal(TrophyFishingPage.total.get(name)); + for (Pair pair1 : pair) { + + trophyFish.add(pair1.getKey(), pair1.getValue()); + } + trophyFishList.put(name, trophyFish); + } else { + TrophyFish trophyFish = trophyFishList.get(name); + for (Pair pair1 : pair) { + trophyFish.add(pair1.getKey(), pair1.getValue()); + } + } + }); + return trophyFishInformation; + } + + private static List fixStringName(List list) { + List fixedList = new ArrayList<>(); + for (String s : list) { + fixedList.add(s.toLowerCase().replace(" ", "_")); + } + return fixedList; + } +} diff --git a/src/main/resources/assets/notenoughupdates/pv_trophy_fish_tab.png b/src/main/resources/assets/notenoughupdates/pv_trophy_fish_tab.png new file mode 100644 index 00000000..669bc489 Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/pv_trophy_fish_tab.png differ -- cgit From b3a62c57c3bb5f2e2bb033bb08e085a30be8e570 Mon Sep 17 00:00:00 2001 From: NopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com> Date: Sun, 12 Jun 2022 05:21:52 +1000 Subject: added social and equipment to pv (#158) * Added equippment to pv * not working :thumn up :trollface: * working i think * i forgot * 2.1md gaming * Fixing offset i think? * Rename social_xp -> social * thank you hy pixel for making equipemnt in a different order to armoru Co-authored-by: jani270 Co-authored-by: jani270 <69345714+jani270@users.noreply.github.com> Co-authored-by: kr45732 <52721908+kr45732@users.noreply.github.com> --- Update Notes/2.1.md | 30 ++++++++++++--------- .../notenoughupdates/listener/ChatListener.java | 1 + .../profileviewer/GuiProfileViewer.java | 28 +++++++++++++++++++ .../profileviewer/ProfileViewer.java | 22 ++++++++++++--- .../resources/assets/notenoughupdates/pv_invs.png | Bin 4446 -> 2426 bytes 5 files changed, 65 insertions(+), 16 deletions(-) (limited to 'src/main/resources') diff --git a/Update Notes/2.1.md b/Update Notes/2.1.md index 1a5e1aef..fe32ed69 100644 --- a/Update Notes/2.1.md +++ b/Update Notes/2.1.md @@ -6,30 +6,40 @@ - Added fishing skill overlay - Added combat skill overlay - Added slayer overlay -- Added trophy fishing pv tab - efefury -- [Added mining tab in /pv](https://cdn.discordapp.com/attachments/832652653292027904/903619242384056370/unknown.png) -- Big thanks to kwev1n for some math and jani for the texture - Added blocking clicks back to the enchanting minigames (because apparently, it's not bannable?) - [Donpireso replied to a sba dev's email about some of sba features, and it seems to imply that blocking clicks in guis aren't bannable](https://cdn.discordapp.com/attachments/823769568933576764/906101631861526559/unknown.png) - Fixed pet overlay not updating when going into /pets - [Added an armor overlay for the new armor slots](https://cdn.discordapp.com/attachments/832652653292027904/922399046528794634/unknown.png) - Added a pet overlay that shows your active pet in your inventory - [Price graph for items on /ah and /bz](https://cdn.discordapp.com/attachments/896407218151366687/926968296929107999/unknown.png) - DeDiamondPro -- [Added bingo tab in /pv](https://cdn.discordapp.com/attachments/702456294874808330/951909539383500820/unknown.png) - Lulonaut - Added wishing compass solver that shows target coordinates, structure, and integrates with Skytils waypoints - CraftyOldMiner - Improved metal detector logic to solve using a single position in most cases using known locations based on Keeper coordinates - CraftyOldMiner - Added support for official Hypixel wiki, can be toggled in /neu misc - DeDiamondPro +- Added and fixed various things in the profile viewer: + - [Added mining tab](https://cdn.discordapp.com/attachments/832652653292027904/903619242384056370/unknown.png) + - Big thanks to kwev1n for some math and jani for the texture + - [Added bingo tab](https://cdn.discordapp.com/attachments/702456294874808330/951909539383500820/unknown.png) - Lulonaut + - [Added bingo and Stranded profile icons to /pv](https://cdn.discordapp.com/attachments/832652653292027904/915844465372065842/unknown.png) + - Added trophy fishing tab - efefury + - Added equipment + - Added blaze slayer level and kills + - Added social level + - Added various new collections and minions + - Added mastermode catacombs xp to level calculator + - Added profile viewer settings to /neu + - Added an unknown icon if neu doesn't recognize your profile type + - Added total xp to catacombs level - efefury + - Fixed minion tiers crafted by coop members not showing up in /pv - Lulonaut + - Fixed crash in /pv when the player had a pet that is not saved in the repo - Lulonaut ### **Minor Changes:** - Add built-in recipes for forge crafts - nea89 - Add mob drop viewer in the recipe viewer - nea89 - Add Stranded Villager Trades to the item list - nea89 -- Make cata xp in /pv be calculated on how many runs you have and shows master mode xp rates - Added a config option to hide Dwarven Mines waypoints when already at the location - Lulonaut - Added some info panels to some settings in /neu - Added Kat Level After Upgrade Estimator - nea89 -- Added /pv button in /neu - Added pitch and coins/m as options in farming skill overlay - Make it so tab completion in ah search GUI goes down the items - Lulonaut - Added a toggle for enchant glint in storage gui (ty ery for texture) @@ -54,14 +64,11 @@ - Turns off inv search mode after 2 minutes - Made /neustats modlist show normal /neustats if under 15 mods - Added max enchant book and max attribute shard to /neuec - Dokm -- [Added bingo and Stranded profile icons to /pv](https://cdn.discordapp.com/attachments/832652653292027904/915844465372065842/unknown.png) -- Added an icon if neu doesn't know about a gamemode in /pv - Fixed pet overlay not resetting pet when making new profile - Added a warning in the tooltip when price info couldn't be found/is outdated - Lulonaut - Added "Has Advanced Tab" to /neustats - Added custom runes and crab hat system - jani - Removed unused textures -- Added total xp if player is above cata 50 in /pv - efefury - Added daily powder to todo overlay - efefury - Added a way to include kismet feather to profit calculator - efefury - Added custom sounds for crystal hollow gemstones - nea89 @@ -69,7 +76,6 @@ - Added a config option to hide the reforge stats for Legendary items from Hypixel on reforge stones - Lulonaut - Added an option to alert you if you put something for too much onto ah (default 50%) - Lowest bin alert triggers if lowest bin isnt found -- Made the order of the tabs in /pv changeable - Lulonaut - Crystal Hollows crystal states are now updated when the Heart of the Mountain menu is opened - CraftyOldMiner - Added /neudiag command to enable/disable debug logging and dump diagnostic data - CraftyOldMiner - Added NBT data to Profile Viewer HOTM tree icons - whalker @@ -116,8 +122,6 @@ - Fixed what hypxiel broke in dungeons - Fixed the dungeon map on f1 - Minikloon - Added checks for chat messages for dungeon win overlay -- Fixed minion tiers crafted by coop members not showing up in /pv - Lulonaut -- Fixed crash in /pv when the player had a pet that is not saved in the repo - Lulonaut - Fixed some vanilla Minecraft keybinds not working in NEU GUIs - Fixed crash with spamming remove enchant in /neuec @@ -134,4 +138,4 @@ ### **Previous change log** -https://github.com/NotEnoughUpdates/NotEnoughUpdates/blob/master/Update%20Notes/2.0-Pre31-Release.md +https://github.com/NotEnoughUpdates/NotEnoughUpdates/blob/master/Update%20Notes/2.0-Pre31-Release.md \ No newline at end of file diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java index 408c8a6d..0aade4b0 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java @@ -174,6 +174,7 @@ public class ChatListener { ); Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText( EnumChatFormatting.YELLOW + "[NEU] API Key automatically configured")); + NotEnoughUpdates.INSTANCE.saveConfig(); } else if (unformatted.startsWith("Player List Info is now disabled!")) { SBInfo.getInstance().hasNewTab = false; } else if (unformatted.startsWith("Player List Info is now enabled!")) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java index e4014ca3..3f131465 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java @@ -265,6 +265,7 @@ public class GuiProfileViewer extends GuiScreen { private ItemStack[] bestWeapons = null; private ItemStack[] bestRods = null; private ItemStack[] armorItems = null; + private ItemStack[] equipmentItems = null; private HashMap inventoryItems = new HashMap<>(); private String selectedInventory = "inv_contents"; private int currentInventoryIndex = 0; @@ -2936,6 +2937,32 @@ public class GuiProfileViewer extends GuiScreen { } } + if (equipmentItems == null) { + equipmentItems = new ItemStack[4]; + JsonArray equippment = Utils.getElement(inventoryInfo, "equippment_contents").getAsJsonArray(); + for (int i = 0; i < equippment.size(); i++) { + if (equippment.get(i) == null || !equippment.get(i).isJsonObject()) continue; + equipmentItems[i] = NotEnoughUpdates.INSTANCE.manager.jsonToStack(equippment.get(i).getAsJsonObject(), false); + } + } + + for (int i = 0; i < equipmentItems.length; i++) { + ItemStack stack = equipmentItems[i]; + if (stack != null) { + Utils.drawItemStack(stack, guiLeft + 192, guiTop + 13 + 18 * i); + if (stack != fillerStack) { + if (mouseX >= guiLeft + 192 - 1 && mouseX <= guiLeft + 192 + 16 + 1) { + if (mouseY >= guiTop + 13 + 18 * i - 1 && mouseY <= guiTop + 13 + 18 * i + 16 + 1) { + tooltipToDisplay = stack.getTooltip( + Minecraft.getMinecraft().thePlayer, + Minecraft.getMinecraft().gameSettings.advancedItemTooltips + ); + } + } + } + } + } + ItemStack[][][] inventories = getItemsForInventory(inventoryInfo, selectedInventory); if (currentInventoryIndex >= inventories.length) currentInventoryIndex = inventories.length - 1; if (currentInventoryIndex < 0) currentInventoryIndex = 0; @@ -5236,6 +5263,7 @@ public class GuiProfileViewer extends GuiScreen { bestWeapons = null; bestRods = null; armorItems = null; + equipmentItems = null; inventoryItems = new HashMap<>(); currentInventoryIndex = 0; arrowCount = -1; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java index 5ed84b03..9da55d64 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java @@ -84,6 +84,7 @@ public class ProfileViewer { "skill_runecrafting", Utils.createItemStack(Items.magma_cream, EnumChatFormatting.DARK_PURPLE + "Runecrafting") ); + put("skill_social2", Utils.createItemStack(Items.emerald, EnumChatFormatting.DARK_GREEN + "Social")); // put("skill_catacombs", Utils.createItemStack(Item.getItemFromBlock(Blocks.deadbush), EnumChatFormatting.GOLD+"Catacombs")); put("slayer_zombie", Utils.createItemStack(Items.rotten_flesh, EnumChatFormatting.GOLD + "Rev Slayer")); put("slayer_spider", Utils.createItemStack(Items.spider_eye, EnumChatFormatting.GOLD + "Tara Slayer")); @@ -883,6 +884,8 @@ public class ProfileViewer { Utils.getElementAsFloat(Utils.getElement(profileInfo, "experience_skill_alchemy"), 0); float experience_skill_runecrafting = Utils.getElementAsFloat(Utils.getElement(profileInfo, "experience_skill_runecrafting"), 0); + float experience_skill_social = + Utils.getElementAsFloat(Utils.getElement(profileInfo, "experience_skill_social2"), 0); float experience_skill_hotm = Utils.getElementAsFloat(Utils.getElement(profileInfo, "mining_core.experience"), 0); float experience_skill_catacombs = @@ -901,7 +904,7 @@ public class ProfileViewer { float totalSkillXP = experience_skill_taming + experience_skill_mining + experience_skill_foraging + experience_skill_enchanting + experience_skill_carpentry + experience_skill_farming + experience_skill_combat + experience_skill_fishing + experience_skill_alchemy - + experience_skill_runecrafting; + + experience_skill_runecrafting + experience_skill_social; if (totalSkillXP <= 0) { return null; @@ -919,6 +922,7 @@ public class ProfileViewer { skillInfo.addProperty("experience_skill_fishing", experience_skill_fishing); skillInfo.addProperty("experience_skill_alchemy", experience_skill_alchemy); skillInfo.addProperty("experience_skill_runecrafting", experience_skill_runecrafting); + skillInfo.addProperty("experience_skill_social2", experience_skill_social); skillInfo.addProperty("experience_skill_hotm", experience_skill_hotm); skillInfo.addProperty("experience_skill_catacombs", experience_skill_catacombs); @@ -948,6 +952,9 @@ public class ProfileViewer { Level level_skill_runecrafting = getLevel(Utils.getElement(leveling, "runecrafting_xp").getAsJsonArray(), experience_skill_runecrafting, getCap(leveling, "runecrafting"), false ); + Level level_skill_social = getLevel(Utils.getElement(leveling, "social").getAsJsonArray(), + experience_skill_social, getCap(leveling, "social"), false + ); Level level_skill_catacombs = getLevel(Utils.getElement(leveling, "catacombs").getAsJsonArray(), experience_skill_catacombs, getCap(leveling, "catacombs"), false ); @@ -978,6 +985,7 @@ public class ProfileViewer { skillInfo.addProperty("level_skill_fishing", level_skill_fishing.level); skillInfo.addProperty("level_skill_alchemy", level_skill_alchemy.level); skillInfo.addProperty("level_skill_runecrafting", level_skill_runecrafting.level); + skillInfo.addProperty("level_skill_social2", level_skill_social.level); skillInfo.addProperty("level_skill_catacombs", level_skill_catacombs.level); @@ -997,6 +1005,7 @@ public class ProfileViewer { skillInfo.addProperty("maxed_skill_fishing", level_skill_fishing.maxed); skillInfo.addProperty("maxed_skill_alchemy", level_skill_alchemy.maxed); skillInfo.addProperty("maxed_skill_runecrafting", level_skill_runecrafting.maxed); + skillInfo.addProperty("maxed_skill_social2", level_skill_social.maxed); skillInfo.addProperty("maxed_skill_catacombs", level_skill_catacombs.maxed); @@ -1016,6 +1025,7 @@ public class ProfileViewer { skillInfo.addProperty("maxxp_skill_fishing", level_skill_fishing.maxXpForLevel); skillInfo.addProperty("maxxp_skill_alchemy", level_skill_alchemy.maxXpForLevel); skillInfo.addProperty("maxxp_skill_runecrafting", level_skill_runecrafting.maxXpForLevel); + skillInfo.addProperty("maxxp_skill_social2", level_skill_social.maxXpForLevel); skillInfo.addProperty("maxxp_skill_catacombs", level_skill_catacombs.maxXpForLevel); @@ -1079,6 +1089,10 @@ public class ProfileViewer { Utils.getElement(profileInfo, "candy_inventory_contents.data"), "Hz8IAAAAAAAAAD9iYD9kYD9kAAMAPwI/Gw0AAAA=" ); + String equipment_contents_bytes = Utils.getElementAsString( + Utils.getElement(profileInfo, "equippment_contents.data"), + "Hz8IAAAAAAAAAD9iYD9kYD9kAAMAPwI/Gw0AAAA=" + ); JsonObject inventoryInfo = new JsonObject(); @@ -1093,7 +1107,8 @@ public class ProfileViewer { "potion_bag", "inv_contents", "talisman_bag", - "candy_inventory_contents" + "candy_inventory_contents", + "equippment_contents" }; String[] inv_bytes = new String[]{ inv_armor_bytes, @@ -1106,7 +1121,8 @@ public class ProfileViewer { potion_bag_bytes, inv_contents_bytes, talisman_bag_bytes, - candy_inventory_contents_bytes + candy_inventory_contents_bytes, + equipment_contents_bytes }; for (int i = 0; i < inv_bytes.length; i++) { try { diff --git a/src/main/resources/assets/notenoughupdates/pv_invs.png b/src/main/resources/assets/notenoughupdates/pv_invs.png index 881078d2..46c7b0e9 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_invs.png and b/src/main/resources/assets/notenoughupdates/pv_invs.png differ -- cgit From 439fc22ff04b0f5b0201c2d982bceb18d82fd553 Mon Sep 17 00:00:00 2001 From: NopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com> Date: Thu, 16 Jun 2022 11:41:19 +0000 Subject: added colours to fishing tab (#166) * Added color background to the back of the fishing tab * Fixed missing enchants not working with shiny items * added my name to everything i had done in 2.1.md cos idk why i didnt before --- Update Notes/2.1.md | 115 +++++++++++---------- .../listener/ItemTooltipListener.java | 2 +- .../profileviewer/trophy/TrophyFishingPage.java | 29 ++++-- .../assets/notenoughupdates/pv_trophy_fish_tab.png | Bin 4057 -> 2839 bytes 4 files changed, 81 insertions(+), 65 deletions(-) (limited to 'src/main/resources') diff --git a/Update Notes/2.1.md b/Update Notes/2.1.md index 933b907a..6b95d546 100644 --- a/Update Notes/2.1.md +++ b/Update Notes/2.1.md @@ -2,32 +2,32 @@ ### **Major Changes:** -- Added mining skill overlay -- Added fishing skill overlay -- Added combat skill overlay -- Added slayer overlay +- Added mining skill overlay - nopo +- Added fishing skill overlay - nopo +- Added combat skill overlay - nopo +- Added slayer overlay - nopo - Added blocking clicks back to the enchanting minigames (because apparently, it's not bannable?) - [Donpireso replied to a sba dev's email about some of sba features, and it seems to imply that blocking clicks in guis aren't bannable](https://cdn.discordapp.com/attachments/823769568933576764/906101631861526559/unknown.png) -- Fixed pet overlay not updating when going into /pets +- Fixed pet overlay not updating when going into /pets - nopo - [Added an armor overlay for the new armor slots](https://cdn.discordapp.com/attachments/832652653292027904/922399046528794634/unknown.png) -- Added a pet overlay that shows your active pet in your inventory +- Added a pet overlay that shows your active pet in your inventory - nopo - [Price graph for items on /ah and /bz](https://cdn.discordapp.com/attachments/896407218151366687/926968296929107999/unknown.png) - DeDiamondPro - Added wishing compass solver that shows target coordinates, structure, and integrates with Skytils waypoints - CraftyOldMiner - Improved metal detector logic to solve using a single position in most cases using known locations based on Keeper coordinates - CraftyOldMiner - Added support for official Hypixel wiki, can be toggled in /neu misc - DeDiamondPro - Added and fixed various things in the profile viewer: - - [Added mining tab](https://cdn.discordapp.com/attachments/832652653292027904/903619242384056370/unknown.png) + - [Added mining tab](https://cdn.discordapp.com/attachments/832652653292027904/903619242384056370/unknown.png) - nopo - Big thanks to kwev1n for some math and jani for the texture - [Added bingo tab](https://cdn.discordapp.com/attachments/702456294874808330/951909539383500820/unknown.png) - Lulonaut - - [Added bingo and Stranded profile icons to /pv](https://cdn.discordapp.com/attachments/832652653292027904/915844465372065842/unknown.png) + - [Added bingo and Stranded profile icons to /pv](https://cdn.discordapp.com/attachments/832652653292027904/915844465372065842/unknown.png) - nopo - Added trophy fishing tab - efefury - - Added equipment - - Added blaze slayer level and kills - - Added social level - - Added various new collections and minions - - Added mastermode catacombs xp to level calculator - - Added profile viewer settings to /neu - - Added an unknown icon if neu doesn't recognize your profile type + - Added equipment - nopo + - Added blaze slayer level and kills - nopo + - Added social level - nopo + - Added various new collections and minions - nopo + - Added mastermode catacombs xp to level calculator - nopo + - Added profile viewer settings to /neu - nopo + - Added an unknown icon if neu doesn't recognize your profile type - nopo - Added total xp to catacombs level - efefury - Fixed minion tiers crafted by coop members not showing up in /pv - Lulonaut - Fixed crash in /pv when the player had a pet that is not saved in the repo - Lulonaut @@ -38,44 +38,44 @@ - Add mob drop viewer in the recipe viewer - nea89 - Add Stranded Villager Trades to the item list - nea89 - Added a config option to hide Dwarven Mines waypoints when already at the location - Lulonaut -- Added some info panels to some settings in /neu +- Added some info panels to some settings in /neu - nopo - Added Kat Level After Upgrade Estimator - nea89 -- Added pitch and coins/m as options in farming skill overlay +- Added pitch and coins/m as options in farming skill overlay - nopo - Make it so tab completion in ah search GUI goes down the items - Lulonaut -- Added a toggle for enchant glint in storage gui (ty ery for texture) +- Added a toggle for enchant glint in storage gui (ty ery for texture) - nopo - Fairy soul beacons now change color based on their distance - Separated settings for fairy soul tracking from showing beacons. Tracking is turned on by default. -- Added fairy souls option to /neu misc +- Added fairy souls option to /neu misc - nopo - Make it so fairy souls are tracked independently for each profile - Lulonaut -- Added a button in the storage gui to open the settings -- Added an option to change the click names for /pv to /ah +- Added a button in the storage gui to open the settings - nopo +- Added an option to change the click names for /pv to /ah - nopo - Added a help menu to /neuec -- Made it so treecap shows foraging xp instead of farming xp on the farming overlay -- Made it so a jungle axe with cult will show the "farming" overlay +- Made it so treecap shows foraging xp instead of farming xp on the farming overlay - nopo +- Made it so a jungle axe with cult will show the "farming" overlay - nopo - Added /neurepomode to toggle item editing and dev mode, changing the item repo url and toggling autoupdating of the repo -- Changed "NEUAH is DISABLED! Enable in /neusettings." to /neu -- Changed misc overlays tab to todo overlays -- Added a config option for npc retexturing -- Added a config option for dirt wand overlay -- Added a config option for hoe of tilling -- Added an option to use short numbers (1.5mil) for price tooltips +- Changed "NEUAH is DISABLED! Enable in /neusettings." to /neu - nopo +- Changed misc overlays tab to todo overlays - nopo +- Added a config option for npc retexturing - nopo +- Added a config option for dirt wand overlay - nopo +- Added a config option for hoe of tilling - nopo +- Added an option to use short numbers (1.5mil) for price tooltips - nopo - Added Drills and Gauntlet to the itemlist tools category - jani -- Added an option to turn off showing next click in chronomatron -- Turns off inv search mode after 2 minutes -- Made /neustats modlist show normal /neustats if under 15 mods +- Added an option to turn off showing next click in chronomatron - nopo +- Turns off inv search mode after 2 minutes - nopo +- Made /neustats modlist show normal /neustats if under 15 mods - nopo - Added max enchant book and max attribute shard to /neuec - Dokm -- Fixed pet overlay not resetting pet when making new profile +- Fixed pet overlay not resetting pet when making new profile - nopo - Added a warning in the tooltip when price info couldn't be found/is outdated - Lulonaut -- Added "Has Advanced Tab" to /neustats +- Added "Has Advanced Tab" to /neustats - nopo - Added custom runes and crab hat system - jani -- Removed unused textures +- Removed unused textures - nopo - Added daily powder to todo overlay - efefury - Added a way to include kismet feather to profit calculator - efefury - Added custom sounds for crystal hollow gemstones - nea89 - Added custom biomes for crystal hollow areas - nopo - Added a config option to hide the reforge stats for Legendary items from Hypixel on reforge stones - Lulonaut -- Added an option to alert you if you put something for too much onto ah (default 50%) -- Lowest bin alert triggers if lowest bin isnt found +- Added an option to alert you if you put something for too much onto ah (default 50%) - nopo +- Lowest bin alert triggers if lowest bin isnt found - nopo - Crystal Hollows crystal states are now updated when the Heart of the Mountain menu is opened - CraftyOldMiner - Added /neudiag command to enable/disable debug logging and dump diagnostic data - CraftyOldMiner - Added NBT data to Profile Viewer HOTM tree icons - whalker @@ -90,9 +90,9 @@ - Added optional radius argument for neupackdev subcommands. - whalker - Added tab completion to /neupackdev subcommands. - whalker - Made it if you hold shift in the enchant solvers it overrides prevent missclicks -- Added 6-10 stars to the auction search overlay -- Added 6-10 stars to /neucustomize -- Added support for attributes in neuec +- Added 6-10 stars to the auction search overlay - nopo +- Added 6-10 stars to /neucustomize - nopo +- Added support for attributes in neuec - nopo - Added Heavy Pearls to todo overlay - cobble8 - Added Booster Cookie Warning - 2stinkysocks - Added an option to only search for Level 100 pets in the auction house search overlay - Lulonaut @@ -100,31 +100,32 @@ ### **Bug Fixes:** - Fix wiki pages freezing the entire game - nea89 -- Made titanium overlay and waypoints work with dwarven overlay off -- "fixed" divan rarity in NEUAH (scuffed) -- Made etherwarp block overlay config option +- Made titanium overlay and waypoints work with dwarven overlay off - nopo +- "fixed" divan rarity in NEUAH (scuffed) - nopo +- Made etherwarp block overlay config option - nopo - Fixed ram usage in crystal hollows - Dokm -- Made skills not show int limit when at max level in skill overlays +- Made skills not show int limit when at max level in skill overlays - nopo - Fixed space cape texture - Microcontrollers -- Make it so you can hold down keys in sign GUIs -- Added entrance to "floor one" + made blur limit at 100 -- Fixed screenshot key in /et overlay -- Fixed api key autofill with dg copy chat feature -- Made missing enchants not show on an item if its not missing any enchants +- Make it so you can hold down keys in sign GUIs - nopo +- Added entrance to "floor one" + made blur limit at 100 - nopo +- Fixed screenshot key in /et overlay - nopo +- Fixed api key autofill with dg copy chat feature - nopo +- Made missing enchants not show on an item if its not missing any enchants - nopo - Fixed Mining overlay crash - Dokm - Fixed pet crash - Dokm -- Fixed fetchur for the 75th time -- [Made an error if you have new tab list off](https://cdn.discordapp.com/attachments/896407218151366687/913681097605398528/unknown.png) -- Fixed lava fishing with the fishing alert +- Fixed fetchur for the 75th time - nopo +- [Made an error if you have new tab list off](https://cdn.discordapp.com/attachments/896407218151366687/913681097605398528/unknown.png) - nopo +- Fixed lava fishing with the fishing alert - nopo - Fixed /locraw detection, [previously allowed chat messages to trigger it](https://github.com/NotEnoughUpdates/NotEnoughUpdates/issues/35) - IRONM00N - Fixed experiment timer in todo overlay - efefury -- Fixed replace click events with /pv working in other modes +- Fixed replace click events with /pv working in other modes - nopo - Fixed /neuec presets not applying the strikethrough attribute - Lulonaut -- Fixed what hypxiel broke in dungeons +- Fixed what hypxiel broke in dungeons - nopo - Fixed the dungeon map on f1 - Minikloon -- Added checks for chat messages for dungeon win overlay -- Fixed some vanilla Minecraft keybinds not working in NEU GUIs +- Added checks for chat messages for dungeon win overlay - nopo +- Fixed some vanilla Minecraft keybinds not working in NEU GUIs - nopo - Fixed crash with spamming remove enchant in /neuec +- Fixed missing enchants not working with shiny items - nopo ### **Other:** @@ -139,4 +140,4 @@ ### **Previous change log** -https://github.com/NotEnoughUpdates/NotEnoughUpdates/blob/master/Update%20Notes/2.0-Pre31-Release.md \ No newline at end of file +https://github.com/NotEnoughUpdates/NotEnoughUpdates/blob/master/Update%20Notes/2.0-Pre31-Release.md diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java index fab02bf9..e7da8628 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java @@ -155,7 +155,7 @@ public class ItemTooltipListener { for (int j = 0; j < Utils.rarityArrC.length; j++) { for (Map.Entry entry : enchantsObj.entrySet()) { if (line.contains(Utils.rarityArrC[j] + " " + entry.getKey()) || line.contains( - Utils.rarityArrC[j] + " DUNGEON " + entry.getKey())) { + Utils.rarityArrC[j] + " DUNGEON " + entry.getKey()) || line.contains("SHINY " + Utils.rarityArrC[j].replaceAll("§.§.","") + " DUNGEON " + entry.getKey())) { allItemEnchs = entry.getValue().getAsJsonArray(); break out; } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/trophy/TrophyFishingPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/trophy/TrophyFishingPage.java index 6063dee0..ece6f275 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/trophy/TrophyFishingPage.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/trophy/TrophyFishingPage.java @@ -114,6 +114,7 @@ public class TrophyFishingPage { private static final ResourceLocation TROPHY_FISH_TEXTURE = new ResourceLocation( "notenoughupdates:pv_trophy_fish_tab.png"); + public static final ResourceLocation pv_elements = new ResourceLocation("notenoughupdates:pv_elements.png"); private static final Map trophyFishList = new HashMap<>(); private static final Map total = new HashMap<>(); @@ -197,18 +198,30 @@ public class TrophyFishingPage { ); ArrayList arrayList = new ArrayList<>(trophyFishList.values()); - arrayList.sort((c1, c2) -> { - if (c1.getTotal() > c2.getTotal()) return -1; - if (c1.getTotal() < c2.getTotal()) return 1; - return 0; - }); + arrayList.sort((c1, c2) -> Integer.compare(c2.getTotal(), c1.getTotal())); int x; int y; for (TrophyFish value : arrayList) { - RenderHelper.enableGUIStandardItemLighting(); x = guiLeft + slotLocations.get(arrayList.indexOf(value)).getLeft(); y = guiTop + slotLocations.get(arrayList.indexOf(value)).getRight(); + RenderHelper.enableGUIStandardItemLighting(); + Minecraft.getMinecraft().getTextureManager().bindTexture(pv_elements); + Map trophyFishRarityIntegerMap = value.getTrophyFishRarityIntegerMap(); + if (trophyFishRarityIntegerMap.containsKey(TrophyFish.TrophyFishRarity.BRONZE)) { + GlStateManager.color(255/255f, 130/255f, 0/255f, 1); + } + if (trophyFishRarityIntegerMap.containsKey(TrophyFish.TrophyFishRarity.SILVER)) { + GlStateManager.color(192/255f, 192/255f, 192/255f, 1); + } + if (trophyFishRarityIntegerMap.containsKey(TrophyFish.TrophyFishRarity.GOLD)) { + GlStateManager.color(1, 0.82F, 0, 1); + } + if (trophyFishRarityIntegerMap.containsKey(TrophyFish.TrophyFishRarity.DIAMOND)) { + GlStateManager.color(31/255f, 216/255f, 241/255f, 1); + } + Utils.drawTexturedRect(x - 2 , y - 2, 20, 20, 0, 20 / 256f, 0, 20 / 256f, GL11.GL_NEAREST); + GlStateManager.color(1, 1, 1, 1); Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI( getItem(value.getName()), x, @@ -255,9 +268,11 @@ public class TrophyFishingPage { -1, Minecraft.getMinecraft().fontRendererObj ); + GlStateManager.color(1, 1, 1, 1); } - } + Minecraft.getMinecraft().getTextureManager().bindTexture(pv_elements); + Utils.drawTexturedRect(x - 2 , y - 2, 20, 20, 0, 20 / 256f, 0, 20 / 256f, GL11.GL_NEAREST); } } diff --git a/src/main/resources/assets/notenoughupdates/pv_trophy_fish_tab.png b/src/main/resources/assets/notenoughupdates/pv_trophy_fish_tab.png index 669bc489..d42446c1 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_trophy_fish_tab.png and b/src/main/resources/assets/notenoughupdates/pv_trophy_fish_tab.png differ -- cgit From a2ad09ee13cee2ef70268336b9df41368574f45a Mon Sep 17 00:00:00 2001 From: Roman / Nea Date: Thu, 7 Jul 2022 18:07:08 +0200 Subject: Added a calculator (#180) * Added a calculator * Remove stuff * also add t * Update Misc.java * On by default * add x for multiplication, fixed - not working and quick math solver Co-authored-by: nopo --- Update Notes/2.1.md | 1 + .../notenoughupdates/NotEnoughUpdates.java | 3 +- .../notenoughupdates/commands/Commands.java | 2 + .../commands/help/HelpCommand.java | 1 + .../commands/misc/CalculatorCommand.java | 72 +++++ .../notenoughupdates/events/SignSubmitEvent.java | 40 +++ .../notenoughupdates/listener/ChatListener.java | 8 + .../notenoughupdates/miscgui/SignCalculator.java | 107 ++++++++ .../notenoughupdates/mixins/MixinGuiEditSign.java | 50 ++++ .../options/seperateSections/Misc.java | 8 + .../notenoughupdates/util/Calculator.java | 300 +++++++++++++++++++++ src/main/resources/mixins.notenoughupdates.json | 7 +- .../notenoughupdates/util/CalculatorTest.java | 41 +++ 13 files changed, 638 insertions(+), 2 deletions(-) create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CalculatorCommand.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/events/SignSubmitEvent.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscgui/SignCalculator.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiEditSign.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/util/Calculator.java create mode 100644 src/test/java/io/github/moulberry/notenoughupdates/util/CalculatorTest.java (limited to 'src/main/resources') diff --git a/Update Notes/2.1.md b/Update Notes/2.1.md index 7a3a069f..81ead5ec 100644 --- a/Update Notes/2.1.md +++ b/Update Notes/2.1.md @@ -16,6 +16,7 @@ - Added wishing compass solver that shows target coordinates, structure, and integrates with Skytils waypoints - CraftyOldMiner - Improved metal detector logic to solve using a single position in most cases using known locations based on Keeper coordinates - CraftyOldMiner - Added support for official Hypixel wiki, can be toggled in /neu misc - DeDiamondPro +- Added a calculator (/neucalc help), that also works in the auction house / bazaar - nea89o - Added and fixed various things in the profile viewer: - [Added hotm tab](https://media.discordapp.net/attachments/659613194066722833/991115131507441724/unknown.png) - nopo - Big thanks to kwev1n for some math and jani for the texture diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java index bd54dfba..d372602e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java @@ -57,6 +57,7 @@ import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.Custom import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.DwarvenMinesTextures; import io.github.moulberry.notenoughupdates.miscgui.CalendarOverlay; import io.github.moulberry.notenoughupdates.miscgui.InventoryStorageSelector; +import io.github.moulberry.notenoughupdates.miscgui.SignCalculator; import io.github.moulberry.notenoughupdates.mixins.AccessorMinecraft; import io.github.moulberry.notenoughupdates.options.NEUConfig; import io.github.moulberry.notenoughupdates.overlays.FuelBar; @@ -277,7 +278,7 @@ public class NotEnoughUpdates { MinecraftForge.EVENT_BUS.register(new ItemTooltipListener(this)); MinecraftForge.EVENT_BUS.register(new RenderListener(this)); MinecraftForge.EVENT_BUS.register(new OldAnimationChecker()); - MinecraftForge.EVENT_BUS.register(new CookieWarning()); + MinecraftForge.EVENT_BUS.register(new SignCalculator()); MinecraftForge.EVENT_BUS.register(navigation); if (Minecraft.getMinecraft().getResourceManager() instanceof IReloadableResourceManager) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java index 86411f4f..b152bc09 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java @@ -37,6 +37,7 @@ import io.github.moulberry.notenoughupdates.commands.help.LinksCommand; import io.github.moulberry.notenoughupdates.commands.help.SettingsCommand; import io.github.moulberry.notenoughupdates.commands.help.StorageViewerWhyCommand; import io.github.moulberry.notenoughupdates.commands.misc.AhCommand; +import io.github.moulberry.notenoughupdates.commands.misc.CalculatorCommand; import io.github.moulberry.notenoughupdates.commands.misc.CalendarCommand; import io.github.moulberry.notenoughupdates.commands.misc.CosmeticsCommand; import io.github.moulberry.notenoughupdates.commands.misc.CustomizeCommand; @@ -91,6 +92,7 @@ public class Commands { ClientCommandHandler.instance.registerCommand(new ScreenCommand("neuoverlay", NEUOverlayPlacements::new)); //ClientCommandHandler.instance.registerCommand(new ScreenCommand("neututorial", NeuTutorial::new)); ClientCommandHandler.instance.registerCommand(new AhCommand()); + ClientCommandHandler.instance.registerCommand(new CalculatorCommand()); ClientCommandHandler.instance.registerCommand(new CalendarCommand()); // Fairy Soul Commands diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.java index ba49221e..a52fcd1d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.java @@ -52,6 +52,7 @@ public class HelpCommand extends ClientCommandBase { "\u00a76/neuah \u00a7r\u00a77- Opens neu's custom ah GUI.", "\u00a76/neumap \u00a7r\u00a77- Opens the dungeon map GUI.", "\u00a76/neucalendar \u00a7r\u00a77- Opens neu's custom calendar GUI.", + "\u00a76/neucalc \u00a7r\u00a77- Run calculations.", "", "\u00a76\u00a7lOld commands:", "\u00a76/peek \u00a7b?{user} \u00a72\u2D35 \u00a7r\u00a77- Shows quickly stats for a user.", diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CalculatorCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CalculatorCommand.java new file mode 100644 index 00000000..e73e3b32 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CalculatorCommand.java @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.commands.misc; + +import io.github.moulberry.notenoughupdates.commands.ClientCommandBase; +import io.github.moulberry.notenoughupdates.util.Calculator; +import net.minecraft.command.CommandException; +import net.minecraft.command.ICommandSender; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; + +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; + +public class CalculatorCommand extends ClientCommandBase { + public CalculatorCommand() { + super("neucalc"); + } + + @Override + public List getCommandAliases() { + return Arrays.asList("neucalculator"); + } + + @Override + public void processCommand(ICommandSender sender, String[] args) throws CommandException { + if ((args.length == 1 && Objects.equals(args[0], "help")) || args.length == 0) { + sender.addChatMessage(new ChatComponentText( + "\n§e[NEU] §5Its a calculator.\n" + + "§eFor Example §b/neucalc 3m*7k§e.\n" + + "§eYou can also use suffixes (k, m, b, t, s)§e.\n" + + "§eThe \"s\" suffix acts as 64.\n" + + "§eTurn on Sign Calculator in /neu misc to also support this in sign popups.\n")); + return; + } + String source = String.join(" ", args); + try { + BigDecimal calculate = Calculator.calculate(source); + sender.addChatMessage(new ChatComponentText( + EnumChatFormatting.YELLOW + "[NEU] " + EnumChatFormatting.WHITE + source + " = " + EnumChatFormatting.GREEN + + calculate.toPlainString() + )); + } catch (Calculator.CalculatorException e) { + sender.addChatMessage(new ChatComponentText( + EnumChatFormatting.YELLOW + "[NEU] " + EnumChatFormatting.RED + "Error during calculation: " + + e.getMessage() + "\n" + + EnumChatFormatting.WHITE + source.substring(0, e.getOffset()) + EnumChatFormatting.DARK_RED + + source.substring(e.getOffset(), e.getLength() + e.getOffset()) + EnumChatFormatting.GRAY + + source.substring(e.getLength() + e.getOffset()) + )); + } + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/events/SignSubmitEvent.java b/src/main/java/io/github/moulberry/notenoughupdates/events/SignSubmitEvent.java new file mode 100644 index 00000000..9bc7b8b0 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/events/SignSubmitEvent.java @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.events; + +import net.minecraft.client.gui.inventory.GuiEditSign; + +public class SignSubmitEvent extends NEUEvent { + public final GuiEditSign sign; + public final String[] lines; + + public SignSubmitEvent(GuiEditSign sign, String[] hehe) { + this.sign = sign; + this.lines = hehe; + } + + public GuiEditSign getSign() { + return sign; + } + + public String[] getLines() { + return lines; + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java index 0aade4b0..457042ee 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java @@ -35,6 +35,7 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; +import net.minecraftforge.client.ClientCommandHandler; import net.minecraftforge.client.event.ClientChatReceivedEvent; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -213,6 +214,13 @@ public class ChatListener { SlayerOverlay.unloadOverlayTimer = System.currentTimeMillis(); } else if (unformatted.startsWith("You consumed a Booster Cookie!")) { CookieWarning.resetNotification(); + } else if (unformatted.startsWith("QUICK MATHS! Solve:")) { + if (Math.random() < 0.2) { + ClientCommandHandler.instance.executeCommand( + Minecraft.getMinecraft().thePlayer, + "/neucalc " + unformatted.substring("QUICK MATHS! Solve: ".length()) + ); + } } if (e.message.getFormattedText().contains( EnumChatFormatting.YELLOW + "Visit the Auction House to collect your item!")) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/SignCalculator.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/SignCalculator.java new file mode 100644 index 00000000..115458c9 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/SignCalculator.java @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.miscgui; + +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.events.SignSubmitEvent; +import io.github.moulberry.notenoughupdates.mixins.AccessorGuiEditSign; +import io.github.moulberry.notenoughupdates.util.Calculator; +import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiEditSign; +import net.minecraft.tileentity.TileEntitySign; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.client.event.GuiScreenEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +import java.math.BigDecimal; +import java.util.Objects; + +public class SignCalculator { + + String lastSource = null; + BigDecimal lastResult = null; + Calculator.CalculatorException lastException = null; + + private boolean isEnabled() { + return NotEnoughUpdates.INSTANCE.config.misc.calculationMode != 0; + } + + @SubscribeEvent + public void onSignDrawn(GuiScreenEvent.DrawScreenEvent.Post event) { + if (!(event.gui instanceof GuiEditSign)) + return; + if (!isEnabled()) return; + GuiEditSign guiEditSign = (GuiEditSign) event.gui; + TileEntitySign tileSign = ((AccessorGuiEditSign) guiEditSign).getTileSign(); + if (!tileSign.signText[1].getUnformattedText().equals("^^^^^^^^^^^^^^^")) return; + refresh(tileSign.signText[0].getUnformattedText()); + Utils.drawStringCentered( + getRenderedString(), + Minecraft.getMinecraft().fontRendererObj, + guiEditSign.width / 2F, + guiEditSign.height / 4F - 120, + false, + 0x808080FF + ); + } + + @SubscribeEvent + public void onSignSubmitted(SignSubmitEvent event) { + if (!isEnabled()) return; + if (Objects.equals(event.lines[1], "^^^^^^^^^^^^^^^")) { + refresh(event.lines[0]); + if (lastResult != null) { + event.lines[0] = lastResult.toPlainString(); + } + } + } + + public String getRenderedString() { + if (lastResult != null) { + String lr = lastResult.toPlainString(); + if (Minecraft.getMinecraft().fontRendererObj.getStringWidth(lr) > 90) { + return EnumChatFormatting.WHITE + lastSource + " = " + EnumChatFormatting.RED + "Result too long"; + } + return EnumChatFormatting.WHITE + lastSource + " = " + EnumChatFormatting.GREEN + lr; + } else if (lastException != null) { + return EnumChatFormatting.RED + lastException.getMessage(); + } + return EnumChatFormatting.RED + "No calculation has been done."; + } + + private void refresh(String source) { + if (Objects.equals(source, lastSource)) return; + lastSource = source; + int calculationMode = NotEnoughUpdates.INSTANCE.config.misc.calculationMode; + if (source.isEmpty() || calculationMode == 0 || (calculationMode == 1 && !source.startsWith("!"))) { + lastResult = null; + lastException = null; + return; + } + try { + lastResult = Calculator.calculate(calculationMode == 1 ? source.substring(1) : source); + lastException = null; + } catch (Calculator.CalculatorException ex) { + lastException = ex; + lastResult = null; + } + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiEditSign.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiEditSign.java new file mode 100644 index 00000000..bfdf05ab --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiEditSign.java @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.mixins; + +import io.github.moulberry.notenoughupdates.events.SignSubmitEvent; +import net.minecraft.client.gui.inventory.GuiEditSign; +import net.minecraft.tileentity.TileEntitySign; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.IChatComponent; +import org.objectweb.asm.Opcodes; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(GuiEditSign.class) +public class MixinGuiEditSign { + + @Redirect(method = "onGuiClosed", at = @At(value = "FIELD", opcode = Opcodes.GETFIELD, target = "Lnet/minecraft/tileentity/TileEntitySign;signText:[Lnet/minecraft/util/IChatComponent;")) + public IChatComponent[] onOnGuiClosed(TileEntitySign instance) { + String[] x = new String[4]; + for (int i = 0; i < 4; i++) { + x[i] = instance.signText[i].getUnformattedText(); + } + SignSubmitEvent signSubmitEvent = new SignSubmitEvent((GuiEditSign) (Object) this, x); + signSubmitEvent.post(); + IChatComponent[] arr = new IChatComponent[4]; + for (int i = 0; i < 4; i++) { + arr[i] = new ChatComponentText(signSubmitEvent.lines[i]); + } + return arr; + } + +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java index c0f4e8c9..08ae5745 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java @@ -215,4 +215,12 @@ public class Misc { @ConfigEditorBoolean public boolean warpTwice = true; + @Expose + @ConfigOption( + name = "Sign Calculator", + desc = "§7Replace calculations like §9\"1+2\"§7 with the calculation result in sign popups (AH/BZ)" + ) + @ConfigEditorDropdown(values = {"Off", "Enabled with ! Prefix", "Always enabled"}) + public int calculationMode = 2; + } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/Calculator.java b/src/main/java/io/github/moulberry/notenoughupdates/util/Calculator.java new file mode 100644 index 00000000..45d7c051 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Calculator.java @@ -0,0 +1,300 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.util; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Deque; +import java.util.List; +import java.util.NoSuchElementException; + +public class Calculator { + public static BigDecimal calculate(String source) throws CalculatorException { + return evaluate(shuntingYard(lex(source))); + } + + /// + public enum TokenType { + NUMBER, BINOP, LPAREN, RPAREN, POSTOP + } + + public static class Token { + public TokenType type; + String operatorValue; + long numericValue; + int exponent; + int tokenStart; + int tokenLength; + } + + static String binops = "+-*/x"; + static String postops = "mkbts"; + static String digits = "0123456789"; + + static void readDigitsInto(Token token, String source, boolean decimals) { + int startIndex = token.tokenStart + token.tokenLength; + for (int j = 0; j + startIndex < source.length(); j++) { + char d = source.charAt(j + startIndex); + int d0 = digits.indexOf(d); + if (d0 != -1) { + if (decimals) + token.exponent--; + token.numericValue *= 10; + token.numericValue += d0; + token.tokenLength += 1; + } else { + return; + } + } + } + + public static class CalculatorException extends Exception { + int offset, length; + + public CalculatorException(String message, int offset, int length) { + super(message); + this.offset = offset; + this.length = length; + } + + public int getLength() { + return length; + } + + public int getOffset() { + return offset; + } + } + + public static List lex(String source) throws CalculatorException { + List tokens = new ArrayList<>(); + for (int i = 0; i < source.length(); ) { + char c = source.charAt(i); + if (Character.isWhitespace(c)) { + i++; + continue; + } + Token token = new Token(); + token.tokenStart = i; + if (binops.indexOf(c) != -1) { + token.tokenLength = 1; + token.type = TokenType.BINOP; + token.operatorValue = c + ""; + } else if (postops.indexOf(c) != -1) { + token.tokenLength = 1; + token.type = TokenType.POSTOP; + token.operatorValue = c + ""; + } else if (c == ')') { + token.tokenLength = 1; + token.type = TokenType.RPAREN; + token.operatorValue = ")"; + } else if (c == '(') { + token.tokenLength = 1; + token.type = TokenType.LPAREN; + token.operatorValue = "("; + } else if ('.' == c) { + token.tokenLength = 1; + token.type = TokenType.NUMBER; + readDigitsInto(token, source, true); + if (token.tokenLength == 1) { + throw new CalculatorException("Invalid number literal", i, 1); + } + } else if (digits.indexOf(c) != -1) { + token.type = TokenType.NUMBER; + readDigitsInto(token, source, false); + if (i + token.tokenLength < source.length()) { + char p = source.charAt(i + token.tokenLength); + if ('.' == p) { + token.tokenLength++; + readDigitsInto(token, source, true); + } + } + } else { + throw new CalculatorException("Unknown thing " + c, i, 1); + } + tokens.add(token); + i += token.tokenLength; + } + return tokens; + } + /// + + /// + static int getPrecedence(Token token) throws CalculatorException { + switch (token.operatorValue.intern()) { + case "+": + case "-": + return 0; + case "*": + case "/": + case "x": + return 1; + } + throw new CalculatorException("Unknown operator " + token.operatorValue, token.tokenStart, token.tokenLength); + } + + public static List shuntingYard(List toShunt) throws CalculatorException { + // IT'S SHUNTING TIME + // This is an implementation of the shunting yard algorithm + + Deque op = new ArrayDeque<>(); + List out = new ArrayList<>(); + + for (Token currentlyShunting : toShunt) { + switch (currentlyShunting.type) { + case NUMBER: + out.add(currentlyShunting); + break; + case BINOP: + int p = getPrecedence(currentlyShunting); + while (!op.isEmpty()) { + Token l = op.peek(); + if (l.type == TokenType.LPAREN) + break; + assert (l.type == TokenType.BINOP); + int pl = getPrecedence(l); + if (pl > p) { + out.add(op.pop()); + } else { + break; + } + } + op.push(currentlyShunting); + break; + case LPAREN: + op.push(currentlyShunting); + break; + case RPAREN: + while (1 > 0) { + if (op.isEmpty()) + throw new CalculatorException( + "Unbalanced right parenthesis", + currentlyShunting.tokenStart, + currentlyShunting.tokenLength + ); + Token l = op.pop(); + if (l.type == TokenType.LPAREN) { + break; + } + out.add(l); + } + break; + case POSTOP: + out.add(currentlyShunting); + break; + } + } + while (!op.isEmpty()) { + Token l = op.pop(); + if (l.type == TokenType.LPAREN) + throw new CalculatorException("Unbalanced left parenthesis", l.tokenStart, l.tokenLength); + out.add(l); + } + return out; + } + + /// + + /// + + public static BigDecimal evaluate(List rpnTokens) throws CalculatorException { + Deque values = new ArrayDeque<>(); + try { + for (Token command : rpnTokens) { + switch (command.type) { + case NUMBER: + values.push(new BigDecimal(command.numericValue).scaleByPowerOfTen(command.exponent)); + break; + case BINOP: + BigDecimal right = values.pop().setScale(2, RoundingMode.HALF_UP); + BigDecimal left = values.pop().setScale(2, RoundingMode.HALF_UP); + switch (command.operatorValue.intern()) { + case "x": + case "*": + values.push(left.multiply(right).setScale(2, RoundingMode.HALF_UP)); + break; + case "/": + try { + values.push(left.divide(right, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP)); + } catch (ArithmeticException e) { + throw new CalculatorException("Encountered division by 0", command.tokenStart, command.tokenLength); + } + break; + case "+": + values.push(left.add(right).setScale(2, RoundingMode.HALF_UP)); + break; + case "-": + values.push(left.subtract(right).setScale(2, RoundingMode.HALF_UP)); + break; + default: + throw new CalculatorException( + "Unknown operation " + command.operatorValue, + command.tokenStart, + command.tokenLength + ); + } + break; + case LPAREN: + case RPAREN: + throw new CalculatorException( + "Did not expect unshunted token in RPN", + command.tokenStart, + command.tokenLength + ); + case POSTOP: + BigDecimal p = values.pop(); + switch (command.operatorValue.intern()) { + case "s": + values.push(p.multiply(new BigDecimal(64)).setScale(2, RoundingMode.HALF_UP)); + break; + case "k": + values.push(p.multiply(new BigDecimal(1_000)).setScale(2, RoundingMode.HALF_UP)); + break; + case "m": + values.push(p.multiply(new BigDecimal(1_000_000)).setScale(2, RoundingMode.HALF_UP)); + break; + case "b": + values.push(p.multiply(new BigDecimal(1_000_000_000)).setScale(2, RoundingMode.HALF_UP)); + break; + case "t": + values.push(p.multiply(new BigDecimal("1000000000000")).setScale(2, RoundingMode.HALF_UP)); + break; + default: + throw new CalculatorException( + "Unknown operation " + command.operatorValue, + command.tokenStart, + command.tokenLength + ); + } + break; + } + } + BigDecimal peek = values.pop(); + return peek.stripTrailingZeros(); + } catch (NoSuchElementException e) { + throw new CalculatorException("Unfinished expression", 0, 0); + } + } + + /// + +} diff --git a/src/main/resources/mixins.notenoughupdates.json b/src/main/resources/mixins.notenoughupdates.json index 63b8211b..8b1d4559 100644 --- a/src/main/resources/mixins.notenoughupdates.json +++ b/src/main/resources/mixins.notenoughupdates.json @@ -46,5 +46,10 @@ "MixinWorld", "MixinWorldClient" ], - "client": ["AccessorGuiContainer", "AccessorGuiEditSign", "AccessorMinecraft"] + "client": [ + "AccessorGuiContainer", + "AccessorGuiEditSign", + "AccessorMinecraft", + "MixinGuiEditSign" + ] } diff --git a/src/test/java/io/github/moulberry/notenoughupdates/util/CalculatorTest.java b/src/test/java/io/github/moulberry/notenoughupdates/util/CalculatorTest.java new file mode 100644 index 00000000..66ba5442 --- /dev/null +++ b/src/test/java/io/github/moulberry/notenoughupdates/util/CalculatorTest.java @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.util; + +import java.math.BigDecimal; +import java.util.List; + +public class CalculatorTest { + public static void main(String[] args) throws Calculator.CalculatorException { + List lex = Calculator.lex("10k + 3 * 4m"); + List shunted = Calculator.shuntingYard(lex); + for (Calculator.Token rawToken : shunted) { + System.out.printf( + "%s(%s)", + rawToken.type, + rawToken.operatorValue == null ? rawToken.numericValue + " * 10 ^ " + rawToken.exponent : rawToken.operatorValue + ); + } + System.out.println(); + BigDecimal evaluate = Calculator.evaluate(shunted); + System.out.println("Eval: " + evaluate); + } + +} -- cgit From 6e40cd5d2426eee681b091acc6e0822d4d7c45b5 Mon Sep 17 00:00:00 2001 From: NopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com> Date: Fri, 8 Jul 2022 02:07:38 +1000 Subject: Added bestiary tab to pv (#177) * some progress - missing be mobs from crimson and dungeons * fix id's * works :tm: * working mobs levels (for hub and island because lazy * idk seems right * Added bestiary texture, fixed name bug, added changelog i hope i didnt mess up anything. * i did smth * use 2.1.md from master because yes * L europe * Finished be tab * hi im just putting it here because too lazy to open a pr for this k, thanks bye * unbelievable * fix crash * fix crash with old repo * stfu infer * europe wins * l o n g Co-authored-by: jani270 --- Update Notes/2.1.md | 3 +- .../notenoughupdates/ItemPriceInformation.java | 8 +- .../moulberry/notenoughupdates/NEUManager.java | 21 + .../notenoughupdates/NotEnoughUpdates.java | 3 + .../listener/ItemTooltipListener.java | 8 +- .../options/seperateSections/ProfileViewer.java | 3 +- .../profileviewer/CollectionPage.java | 338 ++++++ .../profileviewer/GuiProfileViewer.java | 292 +----- .../profileviewer/bestiary/BestiaryData.java | 1089 ++++++++++++++++++++ .../profileviewer/bestiary/BestiaryPage.java | 279 +++++ .../assets/notenoughupdates/pv_bestiary_tab.png | Bin 0 -> 628 bytes .../notenoughupdates/textures/gui/navigation.png | Bin 1028 -> 984 bytes 12 files changed, 1760 insertions(+), 284 deletions(-) create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/profileviewer/CollectionPage.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/profileviewer/bestiary/BestiaryData.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/profileviewer/bestiary/BestiaryPage.java create mode 100644 src/main/resources/assets/notenoughupdates/pv_bestiary_tab.png (limited to 'src/main/resources') diff --git a/Update Notes/2.1.md b/Update Notes/2.1.md index 81ead5ec..5ab5ec19 100644 --- a/Update Notes/2.1.md +++ b/Update Notes/2.1.md @@ -21,8 +21,9 @@ - [Added hotm tab](https://media.discordapp.net/attachments/659613194066722833/991115131507441724/unknown.png) - nopo - Big thanks to kwev1n for some math and jani for the texture - [Added bingo tab](https://media.discordapp.net/attachments/659613194066722833/991115625772625980/unknown.png) - Lulonaut - - [Added bingo and Stranded profile icons to /pv](https://cdn.discordapp.com/attachments/832652653292027904/915844465372065842/unknown.png) - nopo + - [Added bingo and stranded profile icons](https://cdn.discordapp.com/attachments/832652653292027904/915844465372065842/unknown.png) - nopo - [Added trophy fishing tab](https://media.discordapp.net/attachments/659613194066722833/991114639150698567/unknown.png) - efefury + - [Added bestiary tab](https://cdn.discordapp.com/attachments/832652653292027904/991927854776459324/unknown.png) - nopo - Added equipment - nopo - Added blaze slayer level and kills - nopo - Added social level - nopo diff --git a/src/main/java/io/github/moulberry/notenoughupdates/ItemPriceInformation.java b/src/main/java/io/github/moulberry/notenoughupdates/ItemPriceInformation.java index e1a3b3ee..4b5630bc 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/ItemPriceInformation.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/ItemPriceInformation.java @@ -145,7 +145,7 @@ public class ItemPriceInformation { tooltip.add(EnumChatFormatting.DARK_GRAY + "[SHIFT show x" + shiftStackMultiplier + "]"); added = true; } - int bazaarBuyPrice = (int) bazaarInfo.get("avg_buy").getAsFloat() * stackMultiplier; + long bazaarBuyPrice = (long) bazaarInfo.get("avg_buy").getAsFloat() * stackMultiplier; tooltip.add(EnumChatFormatting.YELLOW.toString() + EnumChatFormatting.BOLD + "Bazaar Buy: " + EnumChatFormatting.GOLD + EnumChatFormatting.BOLD + (shortNumber && bazaarBuyPrice > 1000 ? Utils.shortNumberFormat(bazaarBuyPrice, 0) @@ -160,7 +160,7 @@ public class ItemPriceInformation { tooltip.add(EnumChatFormatting.DARK_GRAY + "[SHIFT show x" + shiftStackMultiplier + "]"); added = true; } - int bazaarSellPrice = (int) bazaarInfo.get("avg_sell").getAsFloat() * stackMultiplier; + long bazaarSellPrice = (long) bazaarInfo.get("avg_sell").getAsFloat() * stackMultiplier; tooltip.add(EnumChatFormatting.YELLOW.toString() + EnumChatFormatting.BOLD + "Bazaar Sell: " + EnumChatFormatting.GOLD + EnumChatFormatting.BOLD + (shortNumber && bazaarSellPrice > 1000 ? Utils.shortNumberFormat(bazaarSellPrice, 0) @@ -175,7 +175,7 @@ public class ItemPriceInformation { tooltip.add(EnumChatFormatting.DARK_GRAY + "[SHIFT show x" + shiftStackMultiplier + "]"); added = true; } - int bazaarInstantBuyPrice = (int) bazaarInfo.get("curr_buy").getAsFloat() * stackMultiplier; + long bazaarInstantBuyPrice = (long) bazaarInfo.get("curr_buy").getAsFloat() * stackMultiplier; tooltip.add(EnumChatFormatting.YELLOW.toString() + EnumChatFormatting.BOLD + "Bazaar Insta-Buy: " + EnumChatFormatting.GOLD + EnumChatFormatting.BOLD + (shortNumber && bazaarInstantBuyPrice > 1000 ? Utils.shortNumberFormat(bazaarInstantBuyPrice, 0) @@ -191,7 +191,7 @@ public class ItemPriceInformation { tooltip.add(EnumChatFormatting.DARK_GRAY + "[SHIFT show x" + shiftStackMultiplier + "]"); added = true; } - int bazaarInstantSellPrice = (int) bazaarInfo.get("curr_sell").getAsFloat() * stackMultiplier; + long bazaarInstantSellPrice = (long) bazaarInfo.get("curr_sell").getAsFloat() * stackMultiplier; tooltip.add(EnumChatFormatting.YELLOW.toString() + EnumChatFormatting.BOLD + "Bazaar Insta-Sell: " + EnumChatFormatting.GOLD + EnumChatFormatting.BOLD + (shortNumber && bazaarInstantSellPrice > 1000 ? Utils.shortNumberFormat( diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java index 18d756d8..cd0d08b5 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java @@ -662,6 +662,22 @@ public class NEUManager { return uuid; } + public String getSkullValueFromNBT(NBTTagCompound tag) { + if (tag != null && tag.hasKey("SkullOwner", 10)) { + NBTTagCompound ea = tag.getCompoundTag("SkullOwner"); + NBTTagCompound ea3 = tag.getCompoundTag("display"); + + if (ea.hasKey("Properties", 10)) { + NBTTagCompound ea2 = ea; + ea = ea.getCompoundTag("Properties"); + ea = ea.getTagList("textures", 10).getCompoundTagAt(0); + String name = ea3.getString("Name").replaceAll(" M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$", ""); + return "put(\"ID\", Utils.createSkull(EnumChatFormatting.AQUA + \"" + name + "\" ,\"" + ea2.getString("Id") + "\", \"" + ea.getString("Value") +"\"));"; + } + } + return null; + } + public String getInternalnameFromNBT(NBTTagCompound tag) { String internalname = null; if (tag != null && tag.hasKey("ExtraAttributes", 10)) { @@ -891,6 +907,11 @@ public class NEUManager { return json; } + public String getSkullValueForItem(ItemStack stack) { + if (stack == null) return null; + NBTTagCompound tag = stack.getTagCompound(); + return getSkullValueFromNBT(tag); + } public String getInternalNameForItem(ItemStack stack) { if (stack == null) return null; NBTTagCompound tag = stack.getTagCompound(); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java index d372602e..59e7c392 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java @@ -243,6 +243,9 @@ public class NotEnoughUpdates { if (config.profileViewer.pageLayout.size() == 8) { config.profileViewer.pageLayout.add(8); } + if (config.profileViewer.pageLayout.size() == 9) { + config.profileViewer.pageLayout.add(9); + } saveConfig(); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java index e7da8628..1dc45cf8 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java @@ -26,6 +26,7 @@ import com.google.gson.JsonPrimitive; import com.mojang.authlib.GameProfile; import com.mojang.authlib.minecraft.MinecraftProfileTexture; import io.github.moulberry.notenoughupdates.ItemPriceInformation; +import io.github.moulberry.notenoughupdates.NEUManager; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.core.util.MiscUtils; import io.github.moulberry.notenoughupdates.miscfeatures.PetInfoOverlay; @@ -900,6 +901,11 @@ public class ItemTooltipListener { boolean k = Keyboard.isKeyDown(Keyboard.KEY_K); boolean m = Keyboard.isKeyDown(Keyboard.KEY_M); boolean n = Keyboard.isKeyDown(Keyboard.KEY_N); + boolean f = Keyboard.isKeyDown(Keyboard.KEY_F); + + if (!copied && f && NotEnoughUpdates.INSTANCE.config.hidden.dev) { + MiscUtils.copyToClipboard(NotEnoughUpdates.INSTANCE.manager.getSkullValueForItem(event.itemStack)); + } event.toolTip.add( EnumChatFormatting.AQUA + "Internal Name: " + EnumChatFormatting.GRAY + internal + EnumChatFormatting.GOLD + @@ -938,7 +944,7 @@ public class ItemTooltipListener { } } - copied = k || m || n; + copied = k || m || n || f; } } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ProfileViewer.java index 49385d02..ee1abf46 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ProfileViewer.java @@ -68,10 +68,11 @@ public class ProfileViewer { "\u00a7eMining", "\u00a7eBingo", "\u00a7eTrophy Fish", + "\u00a7eBestiary", }, allowDeleting = false ) - public List pageLayout = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8)); + public List pageLayout = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)); @Expose @ConfigOption( diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/CollectionPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/CollectionPage.java new file mode 100644 index 00000000..c15190a1 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/CollectionPage.java @@ -0,0 +1,338 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.profileviewer; + +import com.google.gson.JsonObject; +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.util.Constants; +import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import java.awt.*; +import java.io.IOException; +import java.text.NumberFormat; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; + +public class CollectionPage { + + private static int guiLeft; + private static int guiTop; + private static int sizeX = 413; + private static int sizeY = 202; + public static final ResourceLocation pv_cols = new ResourceLocation("notenoughupdates:pv_cols.png"); + public static final ResourceLocation pv_elements = new ResourceLocation("notenoughupdates:pv_elements.png"); + private static final int COLLS_XCOUNT = 5; + private static final int COLLS_YCOUNT = 4; + private static final float COLLS_XPADDING = (190 - COLLS_XCOUNT * 20) / (float) (COLLS_XCOUNT + 1); + private static final float COLLS_YPADDING = (202 - COLLS_YCOUNT * 20) / (float) (COLLS_YCOUNT + 1); + private static final String[] romans = new String[]{ + "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", + "XII", "XIII", "XIV", "XV", "XVI", "XVII", "XIX", "XX" + }; + private static List tooltipToDisplay = null; + private static final NumberFormat numberFormat = NumberFormat.getInstance(Locale.US); + private static ItemStack selectedCollectionCategory = null; + public static void drawColsPage(int mouseX, int mouseY, int width, int height) { + guiLeft = GuiProfileViewer.getGuiLeft(); + guiTop = GuiProfileViewer.getGuiTop(); + Minecraft.getMinecraft().getTextureManager().bindTexture(pv_cols); + Utils.drawTexturedRect(guiLeft, guiTop, sizeX, sizeY, GL11.GL_NEAREST); + + JsonObject collectionInfo = GuiProfileViewer.getProfile().getCollectionInfo(GuiProfileViewer.getProfileId()); + if (collectionInfo == null) { + Utils.drawStringCentered( + EnumChatFormatting.RED + "Collection API not enabled!", + Minecraft.getMinecraft().fontRendererObj, + guiLeft + 134, + guiTop + 101, + true, + 0 + ); + return; + } + JsonObject resourceCollectionInfo = ProfileViewer.getResourceCollectionInformation(); + if (resourceCollectionInfo == null) return; + + int collectionCatSize = ProfileViewer.getCollectionCatToCollectionMap().size(); + int collectionCatYSize = (int) (162f / (collectionCatSize - 1 + 0.0000001f)); + { + int yIndex = 0; + for (ItemStack stack : ProfileViewer.getCollectionCatToCollectionMap().keySet()) { + if (selectedCollectionCategory == null) selectedCollectionCategory = stack; + Minecraft.getMinecraft().getTextureManager().bindTexture(pv_elements); + if (stack == selectedCollectionCategory) { + Utils.drawTexturedRect(guiLeft + 7, guiTop + 10 + collectionCatYSize * yIndex, 20, 20, + 20 / 256f, 0, 20 / 256f, 0, GL11.GL_NEAREST + ); + Utils.drawItemStackWithText( + stack, + guiLeft + 10, + guiTop + 13 + collectionCatYSize * yIndex, + "" + (yIndex + 1) + ); + } else { + Utils.drawTexturedRect(guiLeft + 7, guiTop + 10 + collectionCatYSize * yIndex, 20, 20, + 0, 20 / 256f, 0, 20 / 256f, GL11.GL_NEAREST + ); + Utils.drawItemStackWithText(stack, guiLeft + 9, guiTop + 12 + collectionCatYSize * yIndex, "" + (yIndex + 1)); + } + yIndex++; + } + } + + Utils.drawStringCentered( + selectedCollectionCategory.getDisplayName() + " Collections", + Minecraft.getMinecraft().fontRendererObj, + guiLeft + 134, + guiTop + 14, + true, + 4210752 + ); + + JsonObject minionTiers = collectionInfo.get("minion_tiers").getAsJsonObject(); + JsonObject collectionTiers = collectionInfo.get("collection_tiers").getAsJsonObject(); + JsonObject maxAmounts = collectionInfo.get("max_amounts").getAsJsonObject(); + JsonObject totalAmounts = collectionInfo.get("total_amounts").getAsJsonObject(); + JsonObject personalAmounts = collectionInfo.get("personal_amounts").getAsJsonObject(); + + List collections = ProfileViewer.getCollectionCatToCollectionMap().get(selectedCollectionCategory); + if (collections != null) { + for (int i = 0; i < collections.size(); i++) { + String collection = collections.get(i); + if (collection != null) { + ItemStack collectionItem = ProfileViewer.getCollectionToCollectionDisplayMap().get(collection); + if (collectionItem != null) { + int xIndex = i % COLLS_XCOUNT; + int yIndex = i / COLLS_XCOUNT; + + float x = 39 + COLLS_XPADDING + (COLLS_XPADDING + 20) * xIndex; + float y = 7 + COLLS_YPADDING + (COLLS_YPADDING + 20) * yIndex; + + String tierString; + int tier = (int) Utils.getElementAsFloat(collectionTiers.get(collection), 0); + if (tier > 20 || tier < 0) { + tierString = String.valueOf(tier); + } else { + tierString = romans[tier]; + } + float amount = Utils.getElementAsFloat(totalAmounts.get(collection), 0); + float maxAmount = Utils.getElementAsFloat(maxAmounts.get(collection), 0); + Color color = new Color(128, 128, 128, 255); + int tierStringColour = color.getRGB(); + float completedness = 0; + if (maxAmount > 0) { + completedness = amount / maxAmount; + } + completedness = Math.min(1, completedness); + if (maxAmounts.has(collection) && completedness >= 1) { + tierStringColour = new Color(255, 215, 0).getRGB(); + } + + GlStateManager.color(1, 1, 1, 1); + Minecraft.getMinecraft().getTextureManager().bindTexture(pv_elements); + Utils.drawTexturedRect(guiLeft + x, guiTop + y, 20, 20 * (1 - completedness), + 0, 20 / 256f, 0, 20 * (1 - completedness) / 256f, GL11.GL_NEAREST + ); + GlStateManager.color(1, 185 / 255f, 0, 1); + Minecraft.getMinecraft().getTextureManager().bindTexture(pv_elements); + Utils.drawTexturedRect(guiLeft + x, guiTop + y + 20 * (1 - completedness), 20, 20 * (completedness), + 0, 20 / 256f, 20 * (1 - completedness) / 256f, 20 / 256f, GL11.GL_NEAREST + ); + Utils.drawItemStack(collectionItem, guiLeft + (int) x + 2, guiTop + (int) y + 2); + + if (mouseX > guiLeft + (int) x + 2 && mouseX < guiLeft + (int) x + 18) { + if (mouseY > guiTop + (int) y + 2 && mouseY < guiTop + (int) y + 18) { + tooltipToDisplay = new ArrayList<>(); + tooltipToDisplay.add(collectionItem.getDisplayName() + " " + + (completedness >= 1 ? EnumChatFormatting.GOLD : EnumChatFormatting.GRAY) + tierString); + tooltipToDisplay.add( + "Collected: " + numberFormat.format(Utils.getElementAsFloat(personalAmounts.get(collection), 0))); + tooltipToDisplay.add("Total Collected: " + numberFormat.format(amount)); + } + } + + GlStateManager.color(1, 1, 1, 1); + if (tier >= 0) { + Utils.drawStringCentered(tierString, Minecraft.getMinecraft().fontRendererObj, + guiLeft + x + 10, guiTop + y - 4, true, + tierStringColour + ); + } + + Utils.drawStringCentered(GuiProfileViewer.shortNumberFormat(amount, 0) + "", Minecraft.getMinecraft().fontRendererObj, + guiLeft + x + 10, guiTop + y + 26, true, + color.getRGB() + ); + } + } + } + } + + Utils.drawStringCentered( + selectedCollectionCategory.getDisplayName() + " Minions", + Minecraft.getMinecraft().fontRendererObj, + guiLeft + 326, + guiTop + 14, + true, + 4210752 + ); + + List minions = ProfileViewer.getCollectionCatToMinionMap().get(selectedCollectionCategory); + if (minions != null) { + for (int i = 0; i < minions.size(); i++) { + String minion = minions.get(i); + if (minion != null) { + JsonObject misc = Constants.MISC; + float MAX_MINION_TIER = + Utils.getElementAsFloat(Utils.getElement(misc, "minions." + minion + "_GENERATOR"), 11); + + int tier = (int) Utils.getElementAsFloat(minionTiers.get(minion), 0); + JsonObject minionJson; + if (tier == 0) { + minionJson = NotEnoughUpdates.INSTANCE.manager.getItemInformation().get(minion + "_GENERATOR_1"); + } else { + minionJson = NotEnoughUpdates.INSTANCE.manager.getItemInformation().get(minion + "_GENERATOR_" + tier); + } + + if (minionJson != null) { + int xIndex = i % COLLS_XCOUNT; + int yIndex = i / COLLS_XCOUNT; + + float x = 231 + COLLS_XPADDING + (COLLS_XPADDING + 20) * xIndex; + float y = 7 + COLLS_YPADDING + (COLLS_YPADDING + 20) * yIndex; + + String tierString; + + if (tier - 1 >= romans.length || tier - 1 < 0) { + tierString = String.valueOf(tier); + } else { + tierString = romans[tier - 1]; + } + + Color color = new Color(128, 128, 128, 255); + int tierStringColour = color.getRGB(); + float completedness = tier / MAX_MINION_TIER; + + completedness = Math.min(1, completedness); + if (completedness >= 1) { + tierStringColour = new Color(255, 215, 0).getRGB(); + } + + GlStateManager.color(1, 1, 1, 1); + Minecraft.getMinecraft().getTextureManager().bindTexture(pv_elements); + Utils.drawTexturedRect(guiLeft + x, guiTop + y, 20, 20 * (1 - completedness), + 0, 20 / 256f, 0, 20 * (1 - completedness) / 256f, GL11.GL_NEAREST + ); + GlStateManager.color(1, 185 / 255f, 0, 1); + Minecraft.getMinecraft().getTextureManager().bindTexture(pv_elements); + Utils.drawTexturedRect(guiLeft + x, guiTop + y + 20 * (1 - completedness), 20, 20 * (completedness), + 0, 20 / 256f, 20 * (1 - completedness) / 256f, 20 / 256f, GL11.GL_NEAREST + ); + + Utils.drawItemStack( + NotEnoughUpdates.INSTANCE.manager.jsonToStack(minionJson), + guiLeft + (int) x + 2, + guiTop + (int) y + 2 + ); + + if (mouseX > guiLeft + (int) x + 2 && mouseX < guiLeft + (int) x + 18) { + if (mouseY > guiTop + (int) y + 2 && mouseY < guiTop + (int) y + 18) { + tooltipToDisplay = NotEnoughUpdates.INSTANCE.manager.jsonToStack(minionJson) + .getTooltip( + Minecraft.getMinecraft().thePlayer, + false + ); + } + } + + GlStateManager.color(1, 1, 1, 1); + if (tier >= 0) { + Utils.drawStringCentered(tierString, Minecraft.getMinecraft().fontRendererObj, + guiLeft + x + 10, guiTop + y - 4, true, + tierStringColour + ); + } + } + } + } + } + + if (tooltipToDisplay != null) { + List grayTooltip = new ArrayList<>(tooltipToDisplay.size()); + for (String line : tooltipToDisplay) { + grayTooltip.add(EnumChatFormatting.GRAY + line); + } + Utils.drawHoveringText(grayTooltip, mouseX, mouseY, width, height, -1, Minecraft.getMinecraft().fontRendererObj); + tooltipToDisplay = null; + } + } + + protected static void keyTypedCols(char typedChar, int keyCode) throws IOException { + ItemStack stack = null; + Iterator items = ProfileViewer.getCollectionCatToCollectionMap().keySet().iterator(); + switch (keyCode) { + case Keyboard.KEY_5: + case Keyboard.KEY_NUMPAD5: + stack = items.next(); + case Keyboard.KEY_4: + case Keyboard.KEY_NUMPAD4: + stack = items.next(); + case Keyboard.KEY_3: + case Keyboard.KEY_NUMPAD3: + stack = items.next(); + case Keyboard.KEY_2: + case Keyboard.KEY_NUMPAD2: + stack = items.next(); + case Keyboard.KEY_1: + case Keyboard.KEY_NUMPAD1: + stack = items.next(); + } + if (stack != null) { + selectedCollectionCategory = stack; + } + Utils.playPressSound(); + } + + public static void mouseReleasedCols(int mouseX, int mouseY, int mouseButton) { + int collectionCatSize = ProfileViewer.getCollectionCatToCollectionMap().size(); + int collectionCatYSize = (int) (162f / (collectionCatSize - 1 + 0.0000001f)); + int yIndex = 0; + for (ItemStack stack : ProfileViewer.getCollectionCatToCollectionMap().keySet()) { + if (mouseX > guiLeft + 7 && mouseX < guiLeft + 7 + 20) { + if (mouseY > guiTop + 10 + collectionCatYSize * yIndex && + mouseY < guiTop + 10 + collectionCatYSize * yIndex + 20) { + selectedCollectionCategory = stack; + Utils.playPressSound(); + return; + } + } + yIndex++; + } + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java index 90ad36c0..457f7c34 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java @@ -29,6 +29,7 @@ import com.mojang.authlib.GameProfile; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.cosmetics.ShaderManager; import io.github.moulberry.notenoughupdates.itemeditor.GuiElementTextField; +import io.github.moulberry.notenoughupdates.profileviewer.bestiary.BestiaryPage; import io.github.moulberry.notenoughupdates.profileviewer.trophy.TrophyFishingPage; import io.github.moulberry.notenoughupdates.util.Constants; import io.github.moulberry.notenoughupdates.util.SBInfo; @@ -81,7 +82,6 @@ import java.util.Arrays; import java.util.Base64; import java.util.HashMap; import java.util.HashSet; -import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; @@ -105,7 +105,7 @@ public class GuiProfileViewer extends GuiScreen { public static final ResourceLocation pv_extra = new ResourceLocation("notenoughupdates:pv_extra.png"); public static final ResourceLocation pv_mining = new ResourceLocation("notenoughupdates:pv_mining.png"); public static final ResourceLocation pv_invs = new ResourceLocation("notenoughupdates:pv_invs.png"); - public static final ResourceLocation pv_cols = new ResourceLocation("notenoughupdates:pv_cols.png"); + public static final ResourceLocation pv_pets = new ResourceLocation("notenoughupdates:pv_pets.png"); public static final ResourceLocation pv_dropdown = new ResourceLocation("notenoughupdates:pv_dropdown.png"); public static final ResourceLocation pv_bg = new ResourceLocation("notenoughupdates:pv_bg.png"); @@ -230,10 +230,7 @@ public class GuiProfileViewer extends GuiScreen { private final HashMap levelObjhotms = new HashMap<>(); private final HashMap> levelObjClasseses = new HashMap<>(); private final GuiElementTextField dungeonLevelTextField = new GuiElementTextField("", GuiElementTextField.SCALE_TEXT); - private final String[] romans = new String[]{ - "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", - "XII", "XIII", "XIV", "XV", "XVI", "XVII", "XIX", "XX" - }; + private final int COLLS_XCOUNT = 5; private final int COLLS_YCOUNT = 4; private final float COLLS_XPADDING = (190 - COLLS_XCOUNT * 20) / (float) (COLLS_XCOUNT + 1); @@ -254,7 +251,6 @@ public class GuiProfileViewer extends GuiScreen { private List tooltipToDisplay = null; private static String profileId = null; private boolean profileDropdownSelected = false; - private ItemStack selectedCollectionCategory = null; private int floorLevelTo = -1; private long floorLevelToXP = -1; private boolean onMasterMode = false; @@ -704,7 +700,7 @@ public class GuiProfileViewer extends GuiScreen { drawInvsPage(mouseX, mouseY); break; case COLLECTIONS: - drawColsPage(mouseX, mouseY, partialTicks); + CollectionPage.drawColsPage(mouseX, mouseY, width, height); break; case PETS: drawPetsPage(mouseX, mouseY, partialTicks); @@ -718,6 +714,9 @@ public class GuiProfileViewer extends GuiScreen { case TROPHY_FISH: TrophyFishingPage.renderPage(mouseX, mouseY); break; + case BESTIARY: + BestiaryPage.renderPage(mouseX, mouseY); + break; case LOADING: String str = EnumChatFormatting.YELLOW + "Loading player profiles."; long currentTimeMod = System.currentTimeMillis() % 1000; @@ -1093,7 +1092,7 @@ public class GuiProfileViewer extends GuiScreen { inventoryTextField.keyTyped(typedChar, keyCode); break; case COLLECTIONS: - keyTypedCols(typedChar, keyCode); + CollectionPage.keyTypedCols(typedChar, keyCode); break; case DUNGEON: keyTypedDung(typedChar, keyCode); @@ -1120,10 +1119,13 @@ public class GuiProfileViewer extends GuiScreen { mouseReleasedInvs(mouseX, mouseY, mouseButton); break; case COLLECTIONS: - mouseReleasedCols(mouseX, mouseY, mouseButton); + CollectionPage.mouseReleasedCols(mouseX, mouseY, mouseButton); break; case PETS: mouseReleasedPets(mouseX, mouseY, mouseButton); + break; + case BESTIARY: + BestiaryPage.mouseReleased(mouseX, mouseY, mouseButton); } } @@ -1209,31 +1211,7 @@ public class GuiProfileViewer extends GuiScreen { Utils.playPressSound(); } - protected void keyTypedCols(char typedChar, int keyCode) throws IOException { - ItemStack stack = null; - Iterator items = ProfileViewer.getCollectionCatToCollectionMap().keySet().iterator(); - switch (keyCode) { - case Keyboard.KEY_5: - case Keyboard.KEY_NUMPAD5: - stack = items.next(); - case Keyboard.KEY_4: - case Keyboard.KEY_NUMPAD4: - stack = items.next(); - case Keyboard.KEY_3: - case Keyboard.KEY_NUMPAD3: - stack = items.next(); - case Keyboard.KEY_2: - case Keyboard.KEY_NUMPAD2: - stack = items.next(); - case Keyboard.KEY_1: - case Keyboard.KEY_NUMPAD1: - stack = items.next(); - } - if (stack != null) { - selectedCollectionCategory = stack; - } - Utils.playPressSound(); - } + private void mouseReleasedPets(int mouseX, int mouseY, int mouseButton) { if (mouseY > guiTop + 6 && mouseY < guiTop + 22) { @@ -1300,22 +1278,6 @@ public class GuiProfileViewer extends GuiScreen { } } - private void mouseReleasedCols(int mouseX, int mouseY, int mouseButton) { - int collectionCatSize = ProfileViewer.getCollectionCatToCollectionMap().size(); - int collectionCatYSize = (int) (162f / (collectionCatSize - 1 + 0.0000001f)); - int yIndex = 0; - for (ItemStack stack : ProfileViewer.getCollectionCatToCollectionMap().keySet()) { - if (mouseX > guiLeft + 7 && mouseX < guiLeft + 7 + 20) { - if (mouseY > guiTop + 10 + collectionCatYSize * yIndex && - mouseY < guiTop + 10 + collectionCatYSize * yIndex + 20) { - selectedCollectionCategory = stack; - Utils.playPressSound(); - return; - } - } - yIndex++; - } - } private void calculateFloorLevelXP() { JsonObject leveling = Constants.LEVELING; @@ -2433,232 +2395,7 @@ public class GuiProfileViewer extends GuiScreen { } } - private void drawColsPage(int mouseX, int mouseY, float partialTicks) { - Minecraft.getMinecraft().getTextureManager().bindTexture(pv_cols); - Utils.drawTexturedRect(guiLeft, guiTop, sizeX, sizeY, GL11.GL_NEAREST); - JsonObject collectionInfo = profile.getCollectionInfo(profileId); - if (collectionInfo == null) { - Utils.drawStringCentered( - EnumChatFormatting.RED + "Collection API not enabled!", - Minecraft.getMinecraft().fontRendererObj, - guiLeft + 134, - guiTop + 101, - true, - 0 - ); - return; - } - JsonObject resourceCollectionInfo = ProfileViewer.getResourceCollectionInformation(); - if (resourceCollectionInfo == null) return; - - int collectionCatSize = ProfileViewer.getCollectionCatToCollectionMap().size(); - int collectionCatYSize = (int) (162f / (collectionCatSize - 1 + 0.0000001f)); - { - int yIndex = 0; - for (ItemStack stack : ProfileViewer.getCollectionCatToCollectionMap().keySet()) { - if (selectedCollectionCategory == null) selectedCollectionCategory = stack; - Minecraft.getMinecraft().getTextureManager().bindTexture(pv_elements); - if (stack == selectedCollectionCategory) { - Utils.drawTexturedRect(guiLeft + 7, guiTop + 10 + collectionCatYSize * yIndex, 20, 20, - 20 / 256f, 0, 20 / 256f, 0, GL11.GL_NEAREST - ); - Utils.drawItemStackWithText( - stack, - guiLeft + 10, - guiTop + 13 + collectionCatYSize * yIndex, - "" + (yIndex + 1) - ); - } else { - Utils.drawTexturedRect(guiLeft + 7, guiTop + 10 + collectionCatYSize * yIndex, 20, 20, - 0, 20 / 256f, 0, 20 / 256f, GL11.GL_NEAREST - ); - Utils.drawItemStackWithText(stack, guiLeft + 9, guiTop + 12 + collectionCatYSize * yIndex, "" + (yIndex + 1)); - } - yIndex++; - } - } - - Utils.drawStringCentered( - selectedCollectionCategory.getDisplayName() + " Collections", - Minecraft.getMinecraft().fontRendererObj, - guiLeft + 134, - guiTop + 14, - true, - 4210752 - ); - - JsonObject minionTiers = collectionInfo.get("minion_tiers").getAsJsonObject(); - JsonObject collectionTiers = collectionInfo.get("collection_tiers").getAsJsonObject(); - JsonObject maxAmounts = collectionInfo.get("max_amounts").getAsJsonObject(); - JsonObject totalAmounts = collectionInfo.get("total_amounts").getAsJsonObject(); - JsonObject personalAmounts = collectionInfo.get("personal_amounts").getAsJsonObject(); - - List collections = ProfileViewer.getCollectionCatToCollectionMap().get(selectedCollectionCategory); - if (collections != null) { - for (int i = 0; i < collections.size(); i++) { - String collection = collections.get(i); - if (collection != null) { - ItemStack collectionItem = ProfileViewer.getCollectionToCollectionDisplayMap().get(collection); - if (collectionItem != null) { - int xIndex = i % COLLS_XCOUNT; - int yIndex = i / COLLS_XCOUNT; - - float x = 39 + COLLS_XPADDING + (COLLS_XPADDING + 20) * xIndex; - float y = 7 + COLLS_YPADDING + (COLLS_YPADDING + 20) * yIndex; - - String tierString; - int tier = (int) Utils.getElementAsFloat(collectionTiers.get(collection), 0); - if (tier > 20 || tier < 0) { - tierString = String.valueOf(tier); - } else { - tierString = romans[tier]; - } - float amount = Utils.getElementAsFloat(totalAmounts.get(collection), 0); - float maxAmount = Utils.getElementAsFloat(maxAmounts.get(collection), 0); - Color color = new Color(128, 128, 128, 255); - int tierStringColour = color.getRGB(); - float completedness = 0; - if (maxAmount > 0) { - completedness = amount / maxAmount; - } - completedness = Math.min(1, completedness); - if (maxAmounts.has(collection) && completedness >= 1) { - tierStringColour = new Color(255, 215, 0).getRGB(); - } - - GlStateManager.color(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pv_elements); - Utils.drawTexturedRect(guiLeft + x, guiTop + y, 20, 20 * (1 - completedness), - 0, 20 / 256f, 0, 20 * (1 - completedness) / 256f, GL11.GL_NEAREST - ); - GlStateManager.color(1, 185 / 255f, 0, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pv_elements); - Utils.drawTexturedRect(guiLeft + x, guiTop + y + 20 * (1 - completedness), 20, 20 * (completedness), - 0, 20 / 256f, 20 * (1 - completedness) / 256f, 20 / 256f, GL11.GL_NEAREST - ); - Utils.drawItemStack(collectionItem, guiLeft + (int) x + 2, guiTop + (int) y + 2); - - if (mouseX > guiLeft + (int) x + 2 && mouseX < guiLeft + (int) x + 18) { - if (mouseY > guiTop + (int) y + 2 && mouseY < guiTop + (int) y + 18) { - tooltipToDisplay = new ArrayList<>(); - tooltipToDisplay.add(collectionItem.getDisplayName() + " " + - (completedness >= 1 ? EnumChatFormatting.GOLD : EnumChatFormatting.GRAY) + tierString); - tooltipToDisplay.add( - "Collected: " + numberFormat.format(Utils.getElementAsFloat(personalAmounts.get(collection), 0))); - tooltipToDisplay.add("Total Collected: " + numberFormat.format(amount)); - } - } - - GlStateManager.color(1, 1, 1, 1); - if (tier >= 0) { - Utils.drawStringCentered(tierString, fontRendererObj, - guiLeft + x + 10, guiTop + y - 4, true, - tierStringColour - ); - } - - Utils.drawStringCentered( - shortNumberFormat(amount, 0) + "", fontRendererObj, - guiLeft + x + 10, guiTop + y + 26, true, - color.getRGB() - ); - } - } - } - } - - Utils.drawStringCentered( - selectedCollectionCategory.getDisplayName() + " Minions", - Minecraft.getMinecraft().fontRendererObj, - guiLeft + 326, - guiTop + 14, - true, - 4210752 - ); - - List minions = ProfileViewer.getCollectionCatToMinionMap().get(selectedCollectionCategory); - if (minions != null) { - for (int i = 0; i < minions.size(); i++) { - String minion = minions.get(i); - if (minion != null) { - JsonObject misc = Constants.MISC; - float MAX_MINION_TIER = - Utils.getElementAsFloat(Utils.getElement(misc, "minions." + minion + "_GENERATOR"), 11); - - int tier = (int) Utils.getElementAsFloat(minionTiers.get(minion), 0); - JsonObject minionJson; - if (tier == 0) { - minionJson = NotEnoughUpdates.INSTANCE.manager.getItemInformation().get(minion + "_GENERATOR_1"); - } else { - minionJson = NotEnoughUpdates.INSTANCE.manager.getItemInformation().get(minion + "_GENERATOR_" + tier); - } - - if (minionJson != null) { - int xIndex = i % COLLS_XCOUNT; - int yIndex = i / COLLS_XCOUNT; - - float x = 231 + COLLS_XPADDING + (COLLS_XPADDING + 20) * xIndex; - float y = 7 + COLLS_YPADDING + (COLLS_YPADDING + 20) * yIndex; - - String tierString; - - if (tier - 1 >= romans.length || tier - 1 < 0) { - tierString = String.valueOf(tier); - } else { - tierString = romans[tier - 1]; - } - - Color color = new Color(128, 128, 128, 255); - int tierStringColour = color.getRGB(); - float completedness = tier / MAX_MINION_TIER; - - completedness = Math.min(1, completedness); - if (completedness >= 1) { - tierStringColour = new Color(255, 215, 0).getRGB(); - } - - GlStateManager.color(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pv_elements); - Utils.drawTexturedRect(guiLeft + x, guiTop + y, 20, 20 * (1 - completedness), - 0, 20 / 256f, 0, 20 * (1 - completedness) / 256f, GL11.GL_NEAREST - ); - GlStateManager.color(1, 185 / 255f, 0, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pv_elements); - Utils.drawTexturedRect(guiLeft + x, guiTop + y + 20 * (1 - completedness), 20, 20 * (completedness), - 0, 20 / 256f, 20 * (1 - completedness) / 256f, 20 / 256f, GL11.GL_NEAREST - ); - - Utils.drawItemStack( - NotEnoughUpdates.INSTANCE.manager.jsonToStack(minionJson), - guiLeft + (int) x + 2, - guiTop + (int) y + 2 - ); - - if (mouseX > guiLeft + (int) x + 2 && mouseX < guiLeft + (int) x + 18) { - if (mouseY > guiTop + (int) y + 2 && mouseY < guiTop + (int) y + 18) { - tooltipToDisplay = NotEnoughUpdates.INSTANCE.manager.jsonToStack(minionJson) - .getTooltip( - Minecraft.getMinecraft().thePlayer, - false - ); - } - } - - GlStateManager.color(1, 1, 1, 1); - if (tier >= 0) { - Utils.drawStringCentered(tierString, fontRendererObj, - guiLeft + x + 10, guiTop + y - 4, true, - tierStringColour - ); - } - } - } - } - } - - //190 - } public int countItemsInInventory( String internalname, @@ -5399,7 +5136,8 @@ public class GuiProfileViewer extends GuiScreen { PETS(5, Items.bone, "Pets"), MINING(6, Items.iron_pickaxe, "Heart of the Mountain"), BINGO(7, Items.filled_map, "Bingo"), - TROPHY_FISH(8, Items.fishing_rod, "Trophy Fish"); + TROPHY_FISH(8, Items.fishing_rod, "Trophy Fish"), + BESTIARY(9, Items.iron_sword, "Bestiary"); public final ItemStack stack; public final int id; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/bestiary/BestiaryData.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/bestiary/BestiaryData.java new file mode 100644 index 00000000..1e18f825 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/bestiary/BestiaryData.java @@ -0,0 +1,1089 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.profileviewer.bestiary; + +import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +import java.util.LinkedHashMap; +import java.util.List; + +public class BestiaryData { + private static final LinkedHashMap> bestiaryLocations = + new LinkedHashMap>() {{ + put( + Utils.createSkull( + EnumChatFormatting.AQUA + "Private Island", + "bdee7687-9c85-4e7a-b789-b55e90d21d68", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzljODg4MWU0MjkxNWE5ZDI5YmI2MWExNmZiMjZkMDU5OTEzMjA0ZDI2NWRmNWI0MzliM2Q3OTJhY2Q1NiJ9fX0=" + ), + Utils.createList( + "family_cave_spider", + "family_enderman_private", + "family_skeleton", + "family_slime", + "family_spider", + "family_witch", + "family_zombie" + ) + ); + put( + Utils.createSkull( + EnumChatFormatting.AQUA + "Hub", + "88208736-41cd-4ed8-8ed7-53179140a7fa", + "eyJ0aW1lc3RhbXAiOjE1NTkyMTU0MTY5MDksInByb2ZpbGVJZCI6IjQxZDNhYmMyZDc0OTQwMGM5MDkwZDU0MzRkMDM4MzFiIiwicHJvZmlsZU5hbWUiOiJNZWdha2xvb24iLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2Q3Y2M2Njg3NDIzZDA1NzBkNTU2YWM1M2UwNjc2Y2I1NjNiYmRkOTcxN2NkODI2OWJkZWJlZDZmNmQ0ZTdiZjgifX19" + ), + Utils.createList( + "family_unburried_zombie", + "family_old_wolf", + "family_ruin_wolf", + "family_zombie_villager" + ) + ); + put(Utils.createSkull( + EnumChatFormatting.AQUA + "Spiders Den", + "acbeaf98-2081-40c5-b5a3-221a2957d532", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzc1NDMxOGEzMzc2ZjQ3MGU0ODFkZmNkNmM4M2E1OWFhNjkwYWQ0YjRkZDc1NzdmZGFkMWMyZWYwOGQ4YWVlNiJ9fX0" + ), Utils.createList( + "family_arachne", + "family_arachne_brood", + "family_arachne_keeper", + "family_brood_mother_spider", + "family_dasher_spider", + "family_respawning_skeleton", + "family_random_slime", + "family_spider_jockey", + "family_splitter_spider", + "family_voracious_spider", + "family_weaver_spider" + )); + put(Utils.createSkull( + EnumChatFormatting.AQUA + "The End", + "e39ea8b1-a267-48a9-907a-1b97b85342bc", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg0MGI4N2Q1MjI3MWQyYTc1NWRlZGM4Mjg3N2UwZWQzZGY2N2RjYzQyZWE0NzllYzE0NjE3NmIwMjc3OWE1In19fQ" + ), Utils.createList( + "family_dragon", + "family_enderman", + "family_endermite", + "family_corrupted_protector", + "family_obsidian_wither", + "family_voidling_extremist", + "family_voidling_fanatic", + "family_watcher", + "family_zealot_enderman" + )); + put(Utils.createSkull( + EnumChatFormatting.AQUA + "Crimson Isles", + "d8489bfe-dcd7-41f0-bfbd-fb482bf61ecb", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzM2ODdlMjVjNjMyYmNlOGFhNjFlMGQ2NGMyNGU2OTRjM2VlYTYyOWVhOTQ0ZjRjZjMwZGNmYjRmYmNlMDcxIn19fQ" + ), Utils.createList( + "family_ashfang", + "family_barbarian_duke_x", + "family_bladesoul", + "family_blaze", + "family_flaming_spider", + "family_ghast", + "family_mage_outlaw", + "family_magma_cube", + "family_magma_cube_boss", + "family_matcho", + "family_charging_mushroom_cow", + "family_pigman", + "family_wither_skeleton", + "family_wither_spectre" + )); + put(Utils.createSkull( + EnumChatFormatting.AQUA + "Deep Caverns", + "896b5137-a2dd-4de2-8c63-d5a5649bfc70", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTY5YTFmMTE0MTUxYjQ1MjEzNzNmMzRiYzE0YzI5NjNhNTAxMWNkYzI1YTY1NTRjNDhjNzA4Y2Q5NmViZmMifX19" + ), Utils.createList( + "family_automaton", + "family_butterfly", + "family_emerald_slime", + "family_caverns_ghost", + "family_goblin", + "family_team_treasurite", + "family_ice_walker", + "family_lapis_zombie", + "family_diamond_skeleton", + "family_diamond_zombie", + "family_redstone_pigman", + "family_sludge", + "family_invisible_creeper", + "family_thyst", + "family_treasure_hoarder", + "family_worms", + "family_yog" + )); + put(Utils.createSkull( + EnumChatFormatting.AQUA + "The Park", + "6473b2ff-0575-4aec-811f-5f0dca2131b6", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTIyMWY4MTNkYWNlZTBmZWY4YzU5Zjc2ODk0ZGJiMjY0MTU0NzhkOWRkZmM0NGMyZTcwOGE2ZDNiNzU0OWIifX19" + ), Utils.createList("family_howling_spirit", "family_pack_spirit", "family_soul_of_the_alpha" + )); + put(Utils.createItemStack(Item.getItemFromBlock(Blocks.lit_pumpkin), EnumChatFormatting.AQUA + "Spooky" + ), Utils.createList( + "family_batty_witch", + "family_headless_horseman", + "family_phantom_spirit", + "family_scary_jerry", + "family_trick_or_treater", + "family_wither_gourd", + "family_wraith" + )); + put(Utils.createSkull( + EnumChatFormatting.AQUA + "Catacombs", + "00b3837d-9275-304c-8bf9-656659087e6b", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTY0ZTFjM2UzMTVjOGQ4ZmZmYzM3OTg1YjY2ODFjNWJkMTZhNmY5N2ZmZDA3MTk5ZThhMDVlZmJlZjEwMzc5MyJ9fX0" + ), Utils.createList( + "family_diamond_guy", + "family_cellar_spider", + "family_crypt_dreadlord", + "family_crypt_lurker", + "family_crypt_souleater", + "family_king_midas", + "family_lonely_spider", + "family_lost_adventurer", + "family_scared_skeleton", + "family_shadow_assassin", + "family_skeleton_grunt", + "family_skeleton_master", + "family_skeleton_soldier", + "family_skeletor", + "family_sniper_skeleton", + "family_super_archer", + "family_super_tank_zombie", + "family_crypt_tank_zombie", + "family_watcher_summon_undead", + "family_dungeon_respawning_skeleton", + "family_crypt_witherskeleton", + "family_zombie_commander", + "family_zombie_grunt", + "family_zombie_knight", + "family_zombie_soldier" + )); + }}; + + public static LinkedHashMap> getBestiaryLocations() { + return bestiaryLocations; + } + + private static final LinkedHashMap bestiaryMobs = + new LinkedHashMap() {{ + // Private Island + put( + "family_cave_spider", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aCave Spider", + "a8aee72d-0d1d-3db7-8cf8-be1ce6ec2dc4", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDE2NDVkZmQ3N2QwOTkyMzEwN2IzNDk2ZTk0ZWViNWMzMDMyOWY5N2VmYzk2ZWQ3NmUyMjZlOTgyMjQifX19" + ) + ); + put( + "family_enderman_private", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aEnderman", + "2005daad-730b-363c-abae-e6f3830816fb", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTZjMGIzNmQ1M2ZmZjY5YTQ5YzdkNmYzOTMyZjJiMGZlOTQ4ZTAzMjIyNmQ1ZTgwNDVlYzU4NDA4YTM2ZTk1MSJ9fX0=" + ) + ); + put( + "family_skeleton", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aSkeleton", + "53924f1a-87e6-4709-8e53-f1c7d13dc239", + "ewogICJ0aW1lc3RhbXAiIDogMTY1NTYzMTgzNjcwNCwKICAicHJvZmlsZUlkIiA6ICI1MzkyNGYxYTg3ZTY0NzA5OGU1M2YxYzdkMTNkYzIzOSIsCiAgInByb2ZpbGVOYW1lIiA6ICJUaHJvd3BvIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzg4ZWI2OGE0ZDM4ZTlmNDQ2YjhlOTkyNzVmMTYwMzAyZjM2NmVmMTAyMTZhYmY5NDg0ODdlNTgyNTEyYmQwZjMiCiAgICB9CiAgfQp9=" + ) + ); + put( + "family_slime", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aSlime", + "3b70a2f3-319c-38d5-b7d1-5b2425770184", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODk1YWVlYzZiODQyYWRhODY2OWY4NDZkNjViYzQ5NzYyNTk3ODI0YWI5NDRmMjJmNDViZjNiYmI5NDFhYmU2YyJ9fX0=" + ) + ); + put( + "family_spider", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aSpider", + "7c63f3cf-a963-311a-aeca-3a075b417806", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2Q1NDE1NDFkYWFmZjUwODk2Y2QyNThiZGJkZDRjZjgwYzNiYTgxNjczNTcyNjA3OGJmZTM5MzkyN2U1N2YxIn19fQ==" + ) + ); + put( + "family_witch", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aWitch", + "cf4f97d7-2e1f-3678-9ca3-4a7b9666cc28", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZmNlNjYwNDE1N2ZjNGFiNTU5MWU0YmNmNTA3YTc0OTkxOGVlOWM0MWUzNTdkNDczNzZlMGVlNzM0MjA3NGM5MCJ9fX0=" + ) + ); + put( + "family_zombie", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aZombie", + "9673d491-d589-44cb-b63e-5f8b3148b3df", + "ewogICJ0aW1lc3RhbXAiIDogMTY0Njc1NjU2MzM1MiwKICAicHJvZmlsZUlkIiA6ICJkYmQ4MDQ2M2EwMzY0Y2FjYjI3OGNhODBhMDBkZGIxMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ4bG9nMjEiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjM2NjZkMWJkZjQ1NThiMGQxNjk5MGIyNDFlODE4NWNiZjU4YzNlMDNjMjRkOTA0NTQ0ZThjYzY1YjFjMzhkMSIKICAgIH0KICB9Cn0=\", \"n8vct7fj3NdiODy/h6PJhjxSR2U7d8gQxHjdVq553HqG60SSczt1Tl9XhvQbZP14ZrJGWxCziauuYb/HjZza0ugNAhfwh9z8hqR1PjBJGdvp+wpxoWpP2wd5RT9i5/GYEqpiAIAt9vHY1YeyejFqKZhXaGgp7gZZNjOQWQqB0SZzTUTAPzRW9FiY8x2re7H7Y1POThRXOvvkeQ6qWdPV6Hk5hTumV0rfEGm971jQRIbfdzBZDJRcro+8y+dlje/NpF5qf0JLy78Xr4hc2cwbT9+wqOeoUTcM/r9mwL15OKgFLjB44jszauKRHNfoqb6B3+1fNQEJrJK/7hIyvswpde7C5uOxkE7oMFib6X68VVEhb6PGC1+HWNaMaGjI0wWEkCahp48ihN9+sBEBFXOxIAhXG/pvJcbEi742/cBS1CTtOI8qui6JSL9MKX5jmyhtjjibOYRZbacosqayCnwsJAdMmwS7zIxc8jGhpfKECiSni/baS4zRla0bns4hfEM0l7ASv0Dh99WQD0We2ZMqltmix8lMEaAILXJVBln3CFrjYvncfku2hrSaqu1lNAtfMYYSITEUCBJ7McVAVmUHOrER0XGoVs9L237H0BQNSLqlGGEQ7OM8HV6G0YfXGlbNgNBx6O9k8ZijuK60JeEoJapcmbNj/LVHEU+dsgcFAbo=" + ) + ); + + // Hub + put( + "family_unburried_zombie", + Utils.createItemStack(Items.golden_sword, EnumChatFormatting.AQUA + "§aCrypt Ghoul") + ); + put( + "family_old_wolf", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aOld Wolf", + "26e6f2d9-8a27-3a77-965c-5bd2b5d2dc93", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDM1OTUzN2MxNTUzNGY2MWMxY2Q4ODZiYzExODc3NGVkMjIyODBlN2NkYWI2NjEzODcwMTYwYWFkNGNhMzkifX19" + ) + ); + put( + "family_ruin_wolf", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aWolf", + "7e9af289-f295-3f8c-bd54-58b7667d5759", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjlkMWQzMTEzZWM0M2FjMjk2MWRkNTlmMjgxNzVmYjQ3MTg4NzNjNmM0NDhkZmNhODcyMjMxN2Q2NyJ9fX0=" + ) + ); + put( + "family_zombie_villager", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aZombie Villager", + "3acb9940-fc42-328e-91e8-c9a9a57e8698", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTVlMDhhODc3NmMxNzY0YzNmZTZhNmRkZDQxMmRmY2I4N2Y0MTMzMWRhZDQ3OWFjOTZjMjFkZjRiZjNhYzg5YyJ9fX0=" + ) + ); + + // Spiders Den + put( + "family_arachne", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aArachne", + "7c63f3cf-a963-311a-aeca-3a075b417806", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2Q1NDE1NDFkYWFmZjUwODk2Y2QyNThiZGJkZDRjZjgwYzNiYTgxNjczNTcyNjA3OGJmZTM5MzkyN2U1N2YxIn19fQ==" + ) + ); + put( + "family_arachne_brood", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aArachne's Brood", + "7c63f3cf-a963-311a-aeca-3a075b417806", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2Q1NDE1NDFkYWFmZjUwODk2Y2QyNThiZGJkZDRjZjgwYzNiYTgxNjczNTcyNjA3OGJmZTM5MzkyN2U1N2YxIn19fQ==" + ) + ); + put( + "family_arachne_keeper", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aArachne's Keeper", + "7c63f3cf-a963-311a-aeca-3a075b417806", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2Q1NDE1NDFkYWFmZjUwODk2Y2QyNThiZGJkZDRjZjgwYzNiYTgxNjczNTcyNjA3OGJmZTM5MzkyN2U1N2YxIn19fQ==" + ) + ); + put( + "family_brood_mother_spider", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aBrood Mother", + "d7390e70-1e99-3c24-9b1c-bb098e0bbef1", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2YwNjIyYjM5OThkNDJiMzRkNWJjNzYwYmIyYzgzZmRiYzZlNjhmYWIwNWI3ZWExN2IzNTA5N2VkODExOTBkNiJ9fX0=" + ) + ); + put( + "family_dasher_spider", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aDasher Spider", + "7c63f3cf-a963-311a-aeca-3a075b417806", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2Q1NDE1NDFkYWFmZjUwODk2Y2QyNThiZGJkZDRjZjgwYzNiYTgxNjczNTcyNjA3OGJmZTM5MzkyN2U1N2YxIn19fQ==" + ) + ); + put( + "family_respawning_skeleton", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aGravel Skeleton", + "53924f1a-87e6-4709-8e53-f1c7d13dc239", + "ewogICJ0aW1lc3RhbXAiIDogMTY1NTYzMTgzNjcwNCwKICAicHJvZmlsZUlkIiA6ICI1MzkyNGYxYTg3ZTY0NzA5OGU1M2YxYzdkMTNkYzIzOSIsCiAgInByb2ZpbGVOYW1lIiA6ICJUaHJvd3BvIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzg4ZWI2OGE0ZDM4ZTlmNDQ2YjhlOTkyNzVmMTYwMzAyZjM2NmVmMTAyMTZhYmY5NDg0ODdlNTgyNTEyYmQwZjMiCiAgICB9CiAgfQp9=" + ) + ); + put( + "family_random_slime", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aRain Slime", + "3b70a2f3-319c-38d5-b7d1-5b2425770184", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODk1YWVlYzZiODQyYWRhODY2OWY4NDZkNjViYzQ5NzYyNTk3ODI0YWI5NDRmMjJmNDViZjNiYmI5NDFhYmU2YyJ9fX0=" + ) + ); + put( + "family_spider_jockey", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aSpider Jockey", + "4eb8745c-80d2-356b-b4fa-f3ffa74082e7", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzA5MzkzNzNjYWZlNGIxZjUzOTdhYWZkMDlmM2JiMTY2M2U3YjYyOWE0MWE3NWZiZGMxODYwYjZiZjhiNDc1ZiJ9fX0=" + ) + ); + put( + "family_splitter_spider", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aSplitter Spider", + "50010472-fa22-3519-b941-2d6d22f47bf1", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmFjZjY5ZmM3YWY1NDk3YTE3NDE4OTFkMWU1YmYzMmI5NmFlMGQ2YzBiYmQzYzE0NzU4ZWE0NGEwM2M1NzI4MyJ9fX0=" + ) + ); + put( + "family_voracious_spider", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aVoracious Spider", + "3e5474d4-4365-3ea7-b4bc-b4edc54da341", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODMwMDk4NmVkMGEwNGVhNzk5MDRmNmFlNTNmNDllZDNhMGZmNWIxZGY2MmJiYTYyMmVjYmQzNzc3ZjE1NmRmOCJ9fX0=" + ) + ); + put( + "family_weaver_spider", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aWeaver Spider", + "97414c0c-623b-3df3-b1f6-bbcaddafc7fc", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTIxNDM4ZjY0NmRjMDQ1MTU5NjdlODE5NWNjYzNkMzFlMjNiMDJmOWFhMGFjOTE0ZWRjMjgyMmY5ODM5NGI4NiJ9fX0=" + ) + ); + + // The End + put( + "family_dragon", + Utils.createItemStack(Item.getItemFromBlock(Blocks.dragon_egg), EnumChatFormatting.AQUA + "§aDragon") + ); + put( + "family_enderman", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aEnderman", + "2005daad-730b-363c-abae-e6f3830816fb", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTZjMGIzNmQ1M2ZmZjY5YTQ5YzdkNmYzOTMyZjJiMGZlOTQ4ZTAzMjIyNmQ1ZTgwNDVlYzU4NDA4YTM2ZTk1MSJ9fX0=" + ) + ); + put( + "family_endermite", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aEndermite", + "b3224e56-73d2-32f9-9081-a23b7512035b", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNWJjN2I5ZDM2ZmI5MmI2YmYyOTJiZTczZDMyYzZjNWIwZWNjMjViNDQzMjNhNTQxZmFlMWYxZTY3ZTM5M2EzZSJ9fX0=" + ) + ); + put( + "family_corrupted_protector", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aEndstone Protector", + "a46a9adf-60a3-38f2-a3dd-335d85f1cc10", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjJiY2FjZWViNDE2MmY0MDBkNDQ3NDMzMTU5MzJhYzgyMGQzMTE5YWM4OTg2YTAxNjFhNzI2MTYxY2NjOTNmYyJ9fX0=" + ) + ); + put( + "family_obsidian_wither", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aObsidian Defender", + "d0e05de7-6067-454d-beae-c6d19d886191", + "ewogICJ0aW1lc3RhbXAiIDogMTY1NTYzMjg1MTE1NCwKICAicHJvZmlsZUlkIiA6ICJkMGUwNWRlNzYwNjc0NTRkYmVhZWM2ZDE5ZDg4NjE5MSIsCiAgInByb2ZpbGVOYW1lIiA6ICJNb3VsYmVycnkiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmNlMTU1MjI0ZWE0YmM0OWE4ZTkxOTA3MzdjYjA0MTdkOGE3YzM4YTAzN2Q4ZDAzODJkZGU0ODI5YzEwMzU5MCIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9" + ) + ); + put( + "family_voidling_extremist", + Utils.createSkull( + EnumChatFormatting.AQUA + "§a§dVoidling Extremist", + "159dcb01-74e3-382c-87d6-3afa022fb379", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWIwNzU5NGUyZGYyNzM5MjFhNzdjMTAxZDBiZmRmYTExMTVhYmVkNWI5YjIwMjllYjQ5NmNlYmE5YmRiYjRiMyJ9fX0=" + ) + ); + put( + "family_voidling_fanatic", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aVoidling Fanatic", + "e86aab24-6245-3967-bf3d-07e31999b602", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTUzYjdiY2Q1NmYwYjk1Zjg3ZGQ3OWVkMTc2MzZiZWI5ZDgzNDY3NDQwMTQyMjhlYTJmNmIxMTBiMTQ4YzEifX19" + ) + ); + put( + "family_watcher", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aWatcher", + "00a702b9-7bad-3205-a04b-52478d8c0e7f", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGFhOGZjOGRlNjQxN2I0OGQ0OGM4MGI0NDNjZjUzMjZlM2Q5ZGE0ZGJlOWIyNWZjZDQ5NTQ5ZDk2MTY4ZmMwIn19fQ==" + ) + ); + put( + "family_zealot_enderman", + Utils.createItemStack(Item.getItemFromBlock(Blocks.ender_chest), EnumChatFormatting.AQUA + "§aZealot") + ); + + // Crimson Isle + put( + "family_ashfang", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aAshfang", + "1bc8810e-2b57-3a89-8e00-a47a057d6ecc", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2QyYTViNGIxMDliZDc4OGVkYmEwMTcxZDBhYWI4YTU1MzA1YWMyZjU2MTg0ZGY3MGEzMTljZDQ4OGEzNmMzZSJ9fX0=" + ) + ); + put( + "family_barbarian_duke_x", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aBarbarian Duke X", + "6ddece1d-8227-35f3-b9ca-476a9f6cd8c5", + "ewogICJ0aW1lc3RhbXAiIDogMTY0MTI0OTYyNTU3NSwKICAicHJvZmlsZUlkIiA6ICIyNzZlMDQ2YjI0MDM0M2VkOTk2NmU0OTRlN2U2Y2IzNCIsCiAgInByb2ZpbGVOYW1lIiA6ICJBRFJBTlM3MTAiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZmVlOWZjN2MxODFlMmY2MzBmNmIxYWY4NWQ0OTUxMzU5Y2FmY2ZhODJmZjVlYTNiYzI4M2UwZTYwODhjNmU1NCIKICAgIH0KICB9Cn0" + ) + ); + put( + "family_bladesoul", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aBladesoul", + "9a1699a4-9b61-37a5-be7a-ca23a1f092a1", + "ewogICJ0aW1lc3RhbXAiIDogMTY0NDA4Mjg1NzcxMCwKICAicHJvZmlsZUlkIiA6ICIwNTVhOTk2NTk2M2E0YjRmOGMwMjRmMTJmNDFkMmNmMiIsCiAgInByb2ZpbGVOYW1lIiA6ICJUaGVWb3hlbGxlIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzdmNWYzMzg0Mzg0ZDdmMDNiZjk3YTczMDk5YjBiYWZiNzJjNTM4ZmMwNDE1YWM4NjEzYjY2NGY4NzU3OWEzNzkiCiAgICB9CiAgfQp9" + ) + ); + put( + "family_blaze", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aBlaze", + "118fe834-28aa-3b0d-afe6-f0c52d01afe8", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjc4ZWYyZTRjZjJjNDFhMmQxNGJmZGU5Y2FmZjEwMjE5ZjViMWJmNWIzNWE0OWViNTFjNjQ2Nzg4MmNiNWYwIn19fQ==" + ) + ); + put( + "family_flaming_spider", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aFlaming Spider", + "d27e14a2-f35e-3c7b-8062-089fa201a533", + "ewogICJ0aW1lc3RhbXAiIDogMTY0NDQ5OTUzOTQ2NywKICAicHJvZmlsZUlkIiA6ICJhYTZhNzUwNWVkYmU0NjNiYjk1NWYyMWY0MjNiYTM1NCIsCiAgInByb2ZpbGVOYW1lIiA6ICJub3RhbmR5d2FyaG9sIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzVhNjVlZjIzZWEzNTA0NzE1MGQzMzg4MDQ3M2E0N2ZlNjM1ZjBjMGUzYzgyM2JkNzZkYzg0OWNiMDI0NDE2NTUiLAogICAgICAibWV0YWRhdGEiIDogewogICAgICAgICJtb2RlbCIgOiAic2xpbSIKICAgICAgfQogICAgfQogIH0KfQ==" + ) + ); + put( + "family_ghast", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aGhast", + "69725d7d-1933-3dea-87bd-a3052482ab2c", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGU4YTM4ZTlhZmJkM2RhMTBkMTliNTc3YzU1YzdiZmQ2YjRmMmU0MDdlNDRkNDAxN2IyM2JlOTE2N2FiZmYwMiJ9fX0=" + ) + ); + put( + "family_mage_outlaw", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aMage Outlaw", + "1d16c26c-d937-336f-821a-371968d050c2", + "ewogICJ0aW1lc3RhbXAiIDogMTY0NDA4Mjg3Mzk2NywKICAicHJvZmlsZUlkIiA6ICJiNzQ3OWJhZTI5YzQ0YjIzYmE1NjI4MzM3OGYwZTNjNiIsCiAgInByb2ZpbGVOYW1lIiA6ICJTeWxlZXgiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWJlYzk5YjNhMDUwZmQyNzc1Mjg0MDc2NzYzNjZlMjBiOTIwMDZhZDg4ZDE0NzI3YTRkOTllYjhjYjI3M2I2MiIKICAgIH0KICB9Cn0" + ) + ); + put( + "family_magma_cube", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aMagma Cube", + "35f02923-7bec-3869-9ef5-b42a4794cac8", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzg5NTdkNTAyM2M5MzdjNGM0MWFhMjQxMmQ0MzQxMGJkYTIzY2Y3OWE5ZjZhYjM2Yjc2ZmVmMmQ3YzQyOSJ9fX0=" + ) + ); + put( + "family_magma_cube_boss", + Utils.createSkull( + EnumChatFormatting.AQUA + "§a§6§lMagma Cube Boss", + "35f02923-7bec-3869-9ef5-b42a4794cac8", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzg5NTdkNTAyM2M5MzdjNGM0MWFhMjQxMmQ0MzQxMGJkYTIzY2Y3OWE5ZjZhYjM2Yjc2ZmVmMmQ3YzQyOSJ9fX0=" + ) + ); + put( + "family_matcho", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aMatcho", + "61db73be-677f-554a-9450-e306a7ff0449", + "e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWYyZGFhYmI3OGExZjdhYTEyZDE0NWQ4OGMwY2E0NmI5ZTg1NmY1NTM0ZTkyODZlNTU1ZmFmMGMyOTFmNGZkNSJ9fX0=" + ) + ); + put( + "family_charging_mushroom_cow", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aMushroom Bull", + "2b9eb675-2097-4b51-8fec-c1a51562f19c", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTE2M2JjNDE2YjhlNjA1OGY5MmIyMzFlOWE1MjRiN2ZlMTE4ZWI2ZTdlZWFiNGFkMTZkMWI1MmEzZWMwNGZjZCJ9fX0=" + ) + ); + put( + "family_pigman", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aPigman", + "3fc29372-e78e-3ad6-b0b0-05ca0a84babd", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzRlOWM2ZTk4NTgyZmZkOGZmOGZlYjMzMjJjZDE4NDljNDNmYjE2YjE1OGFiYjExY2E3YjQyZWRhNzc0M2ViIn19fQ==" + ) + ); + put( + "family_wither_skeleton", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aWither Skeleton", + "2141b934-c877-3db1-bc6c-7c9a347ffa95", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzk1M2I2YzY4NDQ4ZTdlNmI2YmY4ZmIyNzNkNzIwM2FjZDhlMWJlMTllODE0ODFlYWQ1MWY0NWRlNTlhOCJ9fX0=" + ) + ); + put( + "family_wither_spectre", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aWither Spectre", + "9a1699a4-9b61-37a5-be7a-ca23a1f092a1", + "ewogICJ0aW1lc3RhbXAiIDogMTY0NDA4Mjg1NzcxMCwKICAicHJvZmlsZUlkIiA6ICIwNTVhOTk2NTk2M2E0YjRmOGMwMjRmMTJmNDFkMmNmMiIsCiAgInByb2ZpbGVOYW1lIiA6ICJUaGVWb3hlbGxlIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzdmNWYzMzg0Mzg0ZDdmMDNiZjk3YTczMDk5YjBiYWZiNzJjNTM4ZmMwNDE1YWM4NjEzYjY2NGY4NzU3OWEzNzkiCiAgICB9CiAgfQp9" + ) + ); + + // Deep Caverns + put( + "family_automaton", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aAutomaton", + "a46a9adf-60a3-38f2-a3dd-335d85f1cc10", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjJiY2FjZWViNDE2MmY0MDBkNDQ3NDMzMTU5MzJhYzgyMGQzMTE5YWM4OTg2YTAxNjFhNzI2MTYxY2NjOTNmYyJ9fX0=" + ) + ); + put( + "family_butterfly", + Utils.createSkull( + EnumChatFormatting.AQUA + "§a§eButterfly", + "9dd11ec6-cfea-34df-9336-416c946567bc", + "ewogICJ0aW1lc3RhbXAiIDogMTYyNTUxMjE4ODY3NCwKICAicHJvZmlsZUlkIiA6ICI3MzgyZGRmYmU0ODU0NTVjODI1ZjkwMGY4OGZkMzJmOCIsCiAgInByb2ZpbGVOYW1lIiA6ICJJb3lhbCIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS85ZmQ4MDZkZWZkZmRmNTliMWYyNjA5YzhlZTM2NDY2NmRlNjYxMjdhNjIzNDE1YjU0MzBjOTM1OGM2MDFlZjdjIgogICAgfQogIH0KfQ==" + ) + ); + put( + "family_emerald_slime", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aEmerald Slime", + "cb762e0d-a1e6-3888-8c05-eddabbbe49a2", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTc3NGU4NmFhNGNmZjc5MjM5NWI3N2FkZDU3YjAwYmIxYTEwMmY4ZjBmMDk4MGY0ZDU1YjNkN2FmZjFlNmRhOSJ9fX0=" + ) + ); + put( + "family_caverns_ghost", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aGhost", + "c5752211-7503-3e77-9890-d1cf6ba1d0e7", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTgxOTc3OTE4YTExODBlMGRlYzg3OWU2YmNkMWFhMzk0OTQ5NzdiYjkxM2JlMmFiMDFhZmYxZGIxZmE0In19fQ==" + ) + ); + put( + "family_goblin", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aGoblin", + "7c7d07db-4911-31f1-9a19-1589899cfe25", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjZiOTcyZTMyZDc2MWIxOTI2MjZlNWQ2ZDAxZWRjMDk0OTQwOTEwMTAzY2VhNWUyZTJkMWYyMzFhZGI3NTVkNSJ9fX0=" + ) + ); + put( + "family_team_treasurite", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aGrunt", + "a64ccd19-2a64-39a4-b2f5-cb6799c12a99", + "ewogICJ0aW1lc3RhbXAiIDogMTYxODE5NTA2MDUwMCwKICAicHJvZmlsZUlkIiA6ICI0ZTMwZjUwZTdiYWU0M2YzYWZkMmE3NDUyY2ViZTI5YyIsCiAgInByb2ZpbGVOYW1lIiA6ICJfdG9tYXRvel8iLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWY1ZTAzYjhkZTExOWY4NTg5YTgwODIyNGNiZWE3MzdmNWRjZjI0MjM1Nzk5YjczNzhhYzViZjA2YWJmNmRkNCIKICAgIH0KICB9Cn0=" + ) + ); + put( + "family_ice_walker", + Utils.createItemStack(Item.getItemFromBlock(Blocks.packed_ice), EnumChatFormatting.AQUA + "§aIce Walker") + ); + put("family_lapis_zombie", Utils.createItemStack(Items.dye, EnumChatFormatting.AQUA + "§aLapis Zombie", 4)); + put( + "family_diamond_skeleton", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aMiner Skeleton", + "39c843e6-237b-36b2-8a7b-c5ff5d3ebf99", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODM2YmJjNDIxNWNlYTFiNmE0ODRlODkzYjExNmU3MzQ1OWVmMzZiZmZjNjIyNzQxZTU3N2U5NDkzYTQxZTZlIn19fQ==" + ) + ); + put( + "family_diamond_zombie", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aMiner Zombie", + "468210c9-f4bd-34c7-aa8d-2c3d0d5e05c1", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDI4ZDlmZjU0MTg4YTFhZmVlNjViOTRmM2JmY2NlMzIxYzY0M2EzNDU5MGMxNGIxOTJiMmUzZWMyZjUyNWQzIn19fQ==" + ) + ); + put( + "family_redstone_pigman", + Utils.createItemStack(Items.redstone, EnumChatFormatting.AQUA + "§aRedstone Pigman") + ); + put( + "family_sludge", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aSludge", + "3b70a2f3-319c-38d5-b7d1-5b2425770184", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODk1YWVlYzZiODQyYWRhODY2OWY4NDZkNjViYzQ5NzYyNTk3ODI0YWI5NDRmMjJmNDViZjNiYmI5NDFhYmU2YyJ9fX0=" + ) + ); + put( + "family_invisible_creeper", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aSneaky Creeper", + "81fb1385-b2fc-4d4f-b5bb-0fe9b1d37d60", + "ewogICJ0aW1lc3RhbXAiIDogMTYxOTE5MjI5MzI5OCwKICAicHJvZmlsZUlkIiA6ICI0ZjU2ZTg2ODk2OGU0ZWEwYmNjM2M2NzRlNzQ3ODdjOCIsCiAgInByb2ZpbGVOYW1lIiA6ICJDVUNGTDE1IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2E2ODIyNGNmOGVkNGMwM2I0NTdiZjQ5YmViNmY1NDQxOTM2NzkyNjhiODQyMWIwMWZmY2U2ZDI3YjI1YWMzMmQiCiAgICB9CiAgfQp9" + ) + ); + put( + "family_thyst", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aThyst", + "b3224e56-73d2-32f9-9081-a23b7512035b", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNWJjN2I5ZDM2ZmI5MmI2YmYyOTJiZTczZDMyYzZjNWIwZWNjMjViNDQzMjNhNTQxZmFlMWYxZTY3ZTM5M2EzZSJ9fX0=" + ) + ); + put( + "family_treasure_hoarder", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aTreasure Hoarder", + "b0f13fc2-07a5-3964-8303-784f802e5f0f", + "ewogICJ0aW1lc3RhbXAiIDogMTU5MDE1NjYzNDYzOCwKICAicHJvZmlsZUlkIiA6ICI5MWZlMTk2ODdjOTA0NjU2YWExZmMwNTk4NmRkM2ZlNyIsCiAgInByb2ZpbGVOYW1lIiA6ICJoaGphYnJpcyIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9iMmIxMmE4MTRjZWQ4YWYwMmNkZGYyOWEzN2U3ZjMwMTFlNDMwZThhMThiMzhiNzA2ZjI3YzZiZDMxNjUwYjY1IgogICAgfQogIH0KfQ==" + ) + ); + put( + "family_worms", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aWorm", + "29f95759-1a6f-3e85-9941-91a7a2275274", + "ewogICJ0aW1lc3RhbXAiIDogMTYyMDQ0NTc2NDQ1MSwKICAicHJvZmlsZUlkIiA6ICJmNDY0NTcxNDNkMTU0ZmEwOTkxNjBlNGJmNzI3ZGNiOSIsCiAgInByb2ZpbGVOYW1lIiA6ICJSZWxhcGFnbzA1IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2RmMDNhZDk2MDkyZjNmNzg5OTAyNDM2NzA5Y2RmNjlkZTZiNzI3YzEyMWIzYzJkYWVmOWZmYTFjY2FlZDE4NmMiLAogICAgICAibWV0YWRhdGEiIDogewogICAgICAgICJtb2RlbCIgOiAic2xpbSIKICAgICAgfQogICAgfQogIH0KfQ==" + ) + ); + put( + "family_yog", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aYog", + "35f02923-7bec-3869-9ef5-b42a4794cac8", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzg5NTdkNTAyM2M5MzdjNGM0MWFhMjQxMmQ0MzQxMGJkYTIzY2Y3OWE5ZjZhYjM2Yjc2ZmVmMmQ3YzQyOSJ9fX0=" + ) + ); + + // The Park + put( + "family_howling_spirit", + Utils.createSkull( + EnumChatFormatting.AQUA + "§a§bHowling Spirit", + "802a167c-cbcd-3a1f-becd-5b1a25a4cf15", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjdjOGJlZjZiZWI3N2UyOWFmODYyN2VjZGMzOGQ4NmFhMmZlYTdjY2QxNjNkYzczYzAwZjlmMjU4ZjlhMTQ1NyJ9fX0=" + ) + ); + put( + "family_pack_spirit", + Utils.createSkull( + EnumChatFormatting.AQUA + "§a§bPack Spirit", + "802a167c-cbcd-3a1f-becd-5b1a25a4cf15", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjdjOGJlZjZiZWI3N2UyOWFmODYyN2VjZGMzOGQ4NmFhMmZlYTdjY2QxNjNkYzczYzAwZjlmMjU4ZjlhMTQ1NyJ9fX0=" + ) + ); + put( + "family_soul_of_the_alpha", + Utils.createSkull( + EnumChatFormatting.AQUA + "§a§3Soul of the Alpha", + "802a167c-cbcd-3a1f-becd-5b1a25a4cf15", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjdjOGJlZjZiZWI3N2UyOWFmODYyN2VjZGMzOGQ4NmFhMmZlYTdjY2QxNjNkYzczYzAwZjlmMjU4ZjlhMTQ1NyJ9fX0=" + ) + ); + + // Spooky + put( + "family_batty_witch", + Utils.createSkull( + EnumChatFormatting.AQUA + "§a§8Crazy Witch", + "cf4f97d7-2e1f-3678-9ca3-4a7b9666cc28", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZmNlNjYwNDE1N2ZjNGFiNTU5MWU0YmNmNTA3YTc0OTkxOGVlOWM0MWUzNTdkNDczNzZlMGVlNzM0MjA3NGM5MCJ9fX0=" + ) + ); + put( + "family_headless_horseman", + Utils.createSkull( + EnumChatFormatting.AQUA + "§a§6Headless Horseman", + "2594a979-1302-3d6e-a1da-c9dbf0959539", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGM2NTcwZjEyNDI5OTJmNmViYTIzZWU1ODI1OThjMzllM2U3NDUzODMyNzNkZWVmOGIzOTc3NTgzZmUzY2Y1In19fQ==" + ) + ); + put( + "family_phantom_spirit", + Utils.createSkull( + EnumChatFormatting.AQUA + "§a§cPhantom Spirit", + "805d7035-5f25-37ea-8530-7c0d09156c8e", + "ewogICJ0aW1lc3RhbXAiIDogMTYwMzcyMjc5NzYzNywKICAicHJvZmlsZUlkIiA6ICJhMmY4MzQ1OTVjODk0YTI3YWRkMzA0OTcxNmNhOTEwYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJiUHVuY2giLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjUzYjJmN2M1ZTE3N2JkNjdjZWFkMzBkMGVlNTM0MjVjNzY4NGM5NzVjOGMyYTUyNzNhMDljYTQ5YTFmNmNkZCIKICAgIH0KICB9Cn0=" + ) + ); + put( + "family_scary_jerry", + Utils.createSkull( + EnumChatFormatting.AQUA + "§a§6Scary Jerry", + "127e3dec-4ab7-3798-9410-5fce3f227632", + "ewogICJ0aW1lc3RhbXAiIDogMTYwMzczMzU4OTcxOSwKICAicHJvZmlsZUlkIiA6ICJhMmY4MzQ1OTVjODk0YTI3YWRkMzA0OTcxNmNhOTEwYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJiUHVuY2giLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGYyMDJkYzI0ZDE1ZjdjZTM2ZTAyZmI0YjNlODE1M2IxNDZhYjljMTcyNGFhYTVkNDg0Yzc0MWRhMGVlYjZmZCIKICAgIH0KICB9Cn0=" + ) + ); + put( + "family_trick_or_treater", + Utils.createSkull( + EnumChatFormatting.AQUA + "§a§eTrick or Treater", + "79dd9434-1fde-3aac-87a7-bb09d91eba77", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDdjYmUwNjFiNDQ1Yjg4Y2IyZGY1OWFjY2M4ZDJjMWMxMjExOGZlMGIyMTI3ZTZlNzU4MTM1NTBhZGFjNjdjZiJ9fX0=" + ) + ); + put( + "family_wither_gourd", + Utils.createSkull( + EnumChatFormatting.AQUA + "§a§6Wither Gourd", + "3263c14e-c555-365e-a244-0ee97a8b2056", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjhmMmZmYzZmYjRlOTk1OWI5YTdhMzE3ZjUxYTY3NzVhMTU5ZGRjMjI0MWRiZDZjNzc0ZDNhYzA4YjYifX19" + ) + ); + put( + "family_wraith", + Utils.createSkull( + EnumChatFormatting.AQUA + "§a§8Wraith", + "bca22b11-8e4c-386a-8824-7b2bd6364cde", + "ewogICJ0aW1lc3RhbXAiIDogMTYwMzczMzcxNjI0MiwKICAicHJvZmlsZUlkIiA6ICJhMmY4MzQ1OTVjODk0YTI3YWRkMzA0OTcxNmNhOTEwYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJiUHVuY2giLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYWVhYmMzMDc1Y2Y0MWYzOGU2ZGYxMjM2Yjk1Y2FhZmNiYTFiZWUyMmM0OWQ4MDRiOTQyNzQ4OGMyZjZlMGVmYyIKICAgIH0KICB9Cn0=" + ) + ); + + // Dungeons + put( + "family_diamond_guy", + Utils.createSkull( + EnumChatFormatting.AQUA + "§a§d§lAngry Archeologist", + "db784d7a-fae1-3d60-9a5a-42a1814037f8", + "eyJ0aW1lc3RhbXAiOjE1NzU0NzAzOTQwMzEsInByb2ZpbGVJZCI6IjdkYTJhYjNhOTNjYTQ4ZWU4MzA0OGFmYzNiODBlNjhlIiwicHJvZmlsZU5hbWUiOiJHb2xkYXBmZWwiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2M0OGM3ODM0NThlNGNmODUxOGU4YWI1ODYzZmJjNGNiOTQ4ZjkwNTY4ZWViOWE2MGQxNmM0ZmRlMmI5NmMwMzMifX19" + ) + ); + put( + "family_cellar_spider", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aCellar Spider", + "a8aee72d-0d1d-3db7-8cf8-be1ce6ec2dc4", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDE2NDVkZmQ3N2QwOTkyMzEwN2IzNDk2ZTk0ZWViNWMzMDMyOWY5N2VmYzk2ZWQ3NmUyMjZlOTgyMjQifX19" + ) + ); + put( + "family_crypt_dreadlord", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aCrypt Dreadlord", + "68b4c885-7447-3382-b86b-b661b464d76e", + "eyJ0aW1lc3RhbXAiOjE1NjI0Mjc0MTA5MTQsInByb2ZpbGVJZCI6ImIwZDczMmZlMDBmNzQwN2U5ZTdmNzQ2MzAxY2Q5OGNhIiwicHJvZmlsZU5hbWUiOiJPUHBscyIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjZmMzQ5MjcwYTNiODUxODk2Y2RhZDg0MmY1ZWVjNmUxNDBiZDkxMTliNzVjMDc0OTU1YzNiZTc4NjVlMjdjNyJ9fX0=" + ) + ); + put( + "family_crypt_lurker", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aCrypt Lurker", + "9673d491-d589-44cb-b63e-5f8b3148b3df", + "ewogICJ0aW1lc3RhbXAiIDogMTY0Njc1NjU2MzM1MiwKICAicHJvZmlsZUlkIiA6ICJkYmQ4MDQ2M2EwMzY0Y2FjYjI3OGNhODBhMDBkZGIxMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ4bG9nMjEiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjM2NjZkMWJkZjQ1NThiMGQxNjk5MGIyNDFlODE4NWNiZjU4YzNlMDNjMjRkOTA0NTQ0ZThjYzY1YjFjMzhkMSIKICAgIH0KICB9Cn0=\", \"n8vct7fj3NdiODy/h6PJhjxSR2U7d8gQxHjdVq553HqG60SSczt1Tl9XhvQbZP14ZrJGWxCziauuYb/HjZza0ugNAhfwh9z8hqR1PjBJGdvp+wpxoWpP2wd5RT9i5/GYEqpiAIAt9vHY1YeyejFqKZhXaGgp7gZZNjOQWQqB0SZzTUTAPzRW9FiY8x2re7H7Y1POThRXOvvkeQ6qWdPV6Hk5hTumV0rfEGm971jQRIbfdzBZDJRcro+8y+dlje/NpF5qf0JLy78Xr4hc2cwbT9+wqOeoUTcM/r9mwL15OKgFLjB44jszauKRHNfoqb6B3+1fNQEJrJK/7hIyvswpde7C5uOxkE7oMFib6X68VVEhb6PGC1+HWNaMaGjI0wWEkCahp48ihN9+sBEBFXOxIAhXG/pvJcbEi742/cBS1CTtOI8qui6JSL9MKX5jmyhtjjibOYRZbacosqayCnwsJAdMmwS7zIxc8jGhpfKECiSni/baS4zRla0bns4hfEM0l7ASv0Dh99WQD0We2ZMqltmix8lMEaAILXJVBln3CFrjYvncfku2hrSaqu1lNAtfMYYSITEUCBJ7McVAVmUHOrER0XGoVs9L237H0BQNSLqlGGEQ7OM8HV6G0YfXGlbNgNBx6O9k8ZijuK60JeEoJapcmbNj/LVHEU+dsgcFAbo=" + ) + ); + put( + "family_crypt_souleater", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aCrypt Souleater", + "68b4c885-7447-3382-b86b-b661b464d76e", + "eyJ0aW1lc3RhbXAiOjE1NjI0Mjc0MTA5MTQsInByb2ZpbGVJZCI6ImIwZDczMmZlMDBmNzQwN2U5ZTdmNzQ2MzAxY2Q5OGNhIiwicHJvZmlsZU5hbWUiOiJPUHBscyIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjZmMzQ5MjcwYTNiODUxODk2Y2RhZDg0MmY1ZWVjNmUxNDBiZDkxMTliNzVjMDc0OTU1YzNiZTc4NjVlMjdjNyJ9fX0=" + ) + ); + put( + "family_king_midas", + Utils.createSkull( + EnumChatFormatting.AQUA + "§a§d§lKing Midas", + "1a85d923-f8dd-35b8-899a-8f13b9469b0c", + "ewogICJ0aW1lc3RhbXAiIDogMTU5MTU3NjA3MDMwMCwKICAicHJvZmlsZUlkIiA6ICJkYTQ5OGFjNGU5Mzc0ZTVjYjYxMjdiMzgwODU1Nzk4MyIsCiAgInByb2ZpbGVOYW1lIiA6ICJOaXRyb2hvbGljXzIiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjJiY2EwODU3NTAwNDM1MDNmNWRmOWY3ZGVmODI0YTJlM2FjZmMyNzg0MmJjZDA5ZDJiNjY5NTg4MWU4MzJmNSIKICAgIH0KICB9Cn0=" + ) + ); + put( + "family_lonely_spider", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aLonely Spider", + "7c63f3cf-a963-311a-aeca-3a075b417806", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2Q1NDE1NDFkYWFmZjUwODk2Y2QyNThiZGJkZDRjZjgwYzNiYTgxNjczNTcyNjA3OGJmZTM5MzkyN2U1N2YxIn19fQ==" + ) + ); + put( + "family_lost_adventurer", + Utils.createSkull( + EnumChatFormatting.AQUA + "§a§d§lLost Adventurer", + "f69ba621-a8b6-31a7-8de1-dc7ade140e1d", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHBzOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzFlMDMyOWY0MjE5MmVlN2MxYTBjNzA0ZjgyZGJiYmU3YzAwZmJmYTNmMDIwYzEwNjdhMjA4NjMwYjk5MWI5ODgifX19" + ) + ); + put( + "family_scared_skeleton", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aScared Skeleton", + "53924f1a-87e6-4709-8e53-f1c7d13dc239", + "ewogICJ0aW1lc3RhbXAiIDogMTY1NTYzMTgzNjcwNCwKICAicHJvZmlsZUlkIiA6ICI1MzkyNGYxYTg3ZTY0NzA5OGU1M2YxYzdkMTNkYzIzOSIsCiAgInByb2ZpbGVOYW1lIiA6ICJUaHJvd3BvIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzg4ZWI2OGE0ZDM4ZTlmNDQ2YjhlOTkyNzVmMTYwMzAyZjM2NmVmMTAyMTZhYmY5NDg0ODdlNTgyNTEyYmQwZjMiCiAgICB9CiAgfQp9=" + ) + ); + put( + "family_shadow_assassin", + Utils.createSkull( + EnumChatFormatting.AQUA + "§a§d§lShadow Assassin", + "ef18719c-db6a-3ffb-97ca-4ed764ce9464", + "ewogICJ0aW1lc3RhbXAiIDogMTU5MjI2ODE3MDkxMSwKICAicHJvZmlsZUlkIiA6ICJkYTQ5OGFjNGU5Mzc0ZTVjYjYxMjdiMzgwODU1Nzk4MyIsCiAgInByb2ZpbGVOYW1lIiA6ICJOaXRyb2hvbGljXzIiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzM5OWUwMGY0MDQ0MTFlNDY1ZDc0Mzg4ZGYxMzJkNTFmZTg2OGVjZjg2ZjFjMDczZmFmZmExZDkxNzJlYzBmMyIKICAgIH0KICB9Cn0=" + ) + ); + put( + "family_skeleton_grunt", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aSkeleton Grunt", + "dfed3415-919e-3358-b563-0abd0513f74c", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzA0NzE2NzdiMzdhZTg0MmMyYmQyMzJlMTZlZWI4NGQ1YTQ5MzIzMWVlY2VjMDcyZGEzOGJlMzEyN2RkNWM4In19fQ==" + ) + ); + put( + "family_skeleton_master", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aSkeleton Master", + "ce22e0d7-c78e-3c8d-907a-2368c927808c", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzRlOTVlMWI3ZGM4MmJhNzg0NWE2OGZjNmEzMTJmNGNkOTBlZTJmNmNjZTI2YTY4Yzg4YjA0YjEwNzJkODc5In19fQ==" + ) + ); + put( + "family_skeleton_soldier", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aSkeleton Soldier", + "cab75065-c896-338e-a399-c4a6da16d678", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjE5Njg4ZTBjMmYwNWFlYjk3OWQ2YTFiOGM5MTE5NTdiN2QzNjU3ZTE0YjU3YWY5M2M1ZWY2ZjZhNTk1NjlkZCJ9fX0=" + ) + ); + put( + "family_skeletor", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aSkeletor", + "49fcfb3e-da7e-3fda-b4f9-37df5ac8fbd3", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODlkMDc0YWQ5Yjk5NzE4NzllYjMyNWJkZGZmMzY3NWY3MjI0ODU2YmQ2ZDU2OWZjOGQ0ODNjMTMzZDczMDA1ZCJ9fX0K" + ) + ); + put( + "family_sniper_skeleton", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aSniper", + "848130dc-9c46-3818-a099-b429cb2f1d75", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjE4YzA3MWYwODBkYmE1MGE2MmE2MjYzZmY3MjRlZGMxNTdjZTRmYjQ4ODNjY2VmZjI0OTFkNWJiZGU4MzBjMSJ9fX0K" + ) + ); + put( + "family_super_archer", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aSuper Archer", + "8ebf155b-7b8f-386f-91f1-2e425db4230f", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGNhZTZkYjBiNTlhNjQzMDUwNzZkOTY2ZDhlN2I5YTk3YmU0NmRhZTNhODA3NzE0ZmE4NmQzNzg0OGY2In19fQ==" + ) + ); + put( + "family_super_tank_zombie", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aSuper Tank Zombie", + "9673d491-d589-44cb-b63e-5f8b3148b3df", + "ewogICJ0aW1lc3RhbXAiIDogMTY0Njc1NjU2MzM1MiwKICAicHJvZmlsZUlkIiA6ICJkYmQ4MDQ2M2EwMzY0Y2FjYjI3OGNhODBhMDBkZGIxMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ4bG9nMjEiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjM2NjZkMWJkZjQ1NThiMGQxNjk5MGIyNDFlODE4NWNiZjU4YzNlMDNjMjRkOTA0NTQ0ZThjYzY1YjFjMzhkMSIKICAgIH0KICB9Cn0=\", \"n8vct7fj3NdiODy/h6PJhjxSR2U7d8gQxHjdVq553HqG60SSczt1Tl9XhvQbZP14ZrJGWxCziauuYb/HjZza0ugNAhfwh9z8hqR1PjBJGdvp+wpxoWpP2wd5RT9i5/GYEqpiAIAt9vHY1YeyejFqKZhXaGgp7gZZNjOQWQqB0SZzTUTAPzRW9FiY8x2re7H7Y1POThRXOvvkeQ6qWdPV6Hk5hTumV0rfEGm971jQRIbfdzBZDJRcro+8y+dlje/NpF5qf0JLy78Xr4hc2cwbT9+wqOeoUTcM/r9mwL15OKgFLjB44jszauKRHNfoqb6B3+1fNQEJrJK/7hIyvswpde7C5uOxkE7oMFib6X68VVEhb6PGC1+HWNaMaGjI0wWEkCahp48ihN9+sBEBFXOxIAhXG/pvJcbEi742/cBS1CTtOI8qui6JSL9MKX5jmyhtjjibOYRZbacosqayCnwsJAdMmwS7zIxc8jGhpfKECiSni/baS4zRla0bns4hfEM0l7ASv0Dh99WQD0We2ZMqltmix8lMEaAILXJVBln3CFrjYvncfku2hrSaqu1lNAtfMYYSITEUCBJ7McVAVmUHOrER0XGoVs9L237H0BQNSLqlGGEQ7OM8HV6G0YfXGlbNgNBx6O9k8ZijuK60JeEoJapcmbNj/LVHEU+dsgcFAbo=" + ) + ); + put( + "family_crypt_tank_zombie", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aTank Zombie", + "9673d491-d589-44cb-b63e-5f8b3148b3df", + "ewogICJ0aW1lc3RhbXAiIDogMTY0Njc1NjU2MzM1MiwKICAicHJvZmlsZUlkIiA6ICJkYmQ4MDQ2M2EwMzY0Y2FjYjI3OGNhODBhMDBkZGIxMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ4bG9nMjEiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjM2NjZkMWJkZjQ1NThiMGQxNjk5MGIyNDFlODE4NWNiZjU4YzNlMDNjMjRkOTA0NTQ0ZThjYzY1YjFjMzhkMSIKICAgIH0KICB9Cn0=\", \"n8vct7fj3NdiODy/h6PJhjxSR2U7d8gQxHjdVq553HqG60SSczt1Tl9XhvQbZP14ZrJGWxCziauuYb/HjZza0ugNAhfwh9z8hqR1PjBJGdvp+wpxoWpP2wd5RT9i5/GYEqpiAIAt9vHY1YeyejFqKZhXaGgp7gZZNjOQWQqB0SZzTUTAPzRW9FiY8x2re7H7Y1POThRXOvvkeQ6qWdPV6Hk5hTumV0rfEGm971jQRIbfdzBZDJRcro+8y+dlje/NpF5qf0JLy78Xr4hc2cwbT9+wqOeoUTcM/r9mwL15OKgFLjB44jszauKRHNfoqb6B3+1fNQEJrJK/7hIyvswpde7C5uOxkE7oMFib6X68VVEhb6PGC1+HWNaMaGjI0wWEkCahp48ihN9+sBEBFXOxIAhXG/pvJcbEi742/cBS1CTtOI8qui6JSL9MKX5jmyhtjjibOYRZbacosqayCnwsJAdMmwS7zIxc8jGhpfKECiSni/baS4zRla0bns4hfEM0l7ASv0Dh99WQD0We2ZMqltmix8lMEaAILXJVBln3CFrjYvncfku2hrSaqu1lNAtfMYYSITEUCBJ7McVAVmUHOrER0XGoVs9L237H0BQNSLqlGGEQ7OM8HV6G0YfXGlbNgNBx6O9k8ZijuK60JeEoJapcmbNj/LVHEU+dsgcFAbo=" + ) + ); + put( + "family_watcher_summon_undead", + Utils.createSkull( + EnumChatFormatting.AQUA + "§a§4§lUndead", + "0ac53e90-4e60-388c-a754-092dd4578592", + "eyJ0aW1lc3RhbXAiOjE1ODYwNDAyMDM1NzMsInByb2ZpbGVJZCI6ImRhNDk4YWM0ZTkzNzRlNWNiNjEyN2IzODA4NTU3OTgzIiwicHJvZmlsZU5hbWUiOiJOaXRyb2hvbGljXzIiLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2Y0NjI0YTlhOGM2OWNhMjA0NTA0YWJiMDQzZDQ3NDU2Y2Q5YjA5NzQ5YTM2MzU3NDYyMzAzZjI3NmEyMjlkNCJ9fX0=" + ) + ); + put( + "family_dungeon_respawning_skeleton", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aUndead Skeleton", + "53924f1a-87e6-4709-8e53-f1c7d13dc239", + "ewogICJ0aW1lc3RhbXAiIDogMTY1NTYzMTgzNjcwNCwKICAicHJvZmlsZUlkIiA6ICI1MzkyNGYxYTg3ZTY0NzA5OGU1M2YxYzdkMTNkYzIzOSIsCiAgInByb2ZpbGVOYW1lIiA6ICJUaHJvd3BvIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzg4ZWI2OGE0ZDM4ZTlmNDQ2YjhlOTkyNzVmMTYwMzAyZjM2NmVmMTAyMTZhYmY5NDg0ODdlNTgyNTEyYmQwZjMiCiAgICB9CiAgfQp9=" + ) + ); + put( + "family_crypt_witherskeleton", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aWithermancer", + "d0e05de7-6067-454d-beae-c6d19d886191", + "ewogICJ0aW1lc3RhbXAiIDogMTY1NTYzMjg1MTE1NCwKICAicHJvZmlsZUlkIiA6ICJkMGUwNWRlNzYwNjc0NTRkYmVhZWM2ZDE5ZDg4NjE5MSIsCiAgInByb2ZpbGVOYW1lIiA6ICJNb3VsYmVycnkiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmNlMTU1MjI0ZWE0YmM0OWE4ZTkxOTA3MzdjYjA0MTdkOGE3YzM4YTAzN2Q4ZDAzODJkZGU0ODI5YzEwMzU5MCIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9" + ) + ); + put( + "family_zombie_commander", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aZombie Commander", + "9673d491-d589-44cb-b63e-5f8b3148b3df", + "ewogICJ0aW1lc3RhbXAiIDogMTY0Njc1NjU2MzM1MiwKICAicHJvZmlsZUlkIiA6ICJkYmQ4MDQ2M2EwMzY0Y2FjYjI3OGNhODBhMDBkZGIxMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ4bG9nMjEiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjM2NjZkMWJkZjQ1NThiMGQxNjk5MGIyNDFlODE4NWNiZjU4YzNlMDNjMjRkOTA0NTQ0ZThjYzY1YjFjMzhkMSIKICAgIH0KICB9Cn0=\", \"n8vct7fj3NdiODy/h6PJhjxSR2U7d8gQxHjdVq553HqG60SSczt1Tl9XhvQbZP14ZrJGWxCziauuYb/HjZza0ugNAhfwh9z8hqR1PjBJGdvp+wpxoWpP2wd5RT9i5/GYEqpiAIAt9vHY1YeyejFqKZhXaGgp7gZZNjOQWQqB0SZzTUTAPzRW9FiY8x2re7H7Y1POThRXOvvkeQ6qWdPV6Hk5hTumV0rfEGm971jQRIbfdzBZDJRcro+8y+dlje/NpF5qf0JLy78Xr4hc2cwbT9+wqOeoUTcM/r9mwL15OKgFLjB44jszauKRHNfoqb6B3+1fNQEJrJK/7hIyvswpde7C5uOxkE7oMFib6X68VVEhb6PGC1+HWNaMaGjI0wWEkCahp48ihN9+sBEBFXOxIAhXG/pvJcbEi742/cBS1CTtOI8qui6JSL9MKX5jmyhtjjibOYRZbacosqayCnwsJAdMmwS7zIxc8jGhpfKECiSni/baS4zRla0bns4hfEM0l7ASv0Dh99WQD0We2ZMqltmix8lMEaAILXJVBln3CFrjYvncfku2hrSaqu1lNAtfMYYSITEUCBJ7McVAVmUHOrER0XGoVs9L237H0BQNSLqlGGEQ7OM8HV6G0YfXGlbNgNBx6O9k8ZijuK60JeEoJapcmbNj/LVHEU+dsgcFAbo=" + ) + ); + put( + "family_zombie_grunt", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aZombie Grunt", + "9673d491-d589-44cb-b63e-5f8b3148b3df", + "ewogICJ0aW1lc3RhbXAiIDogMTY0Njc1NjU2MzM1MiwKICAicHJvZmlsZUlkIiA6ICJkYmQ4MDQ2M2EwMzY0Y2FjYjI3OGNhODBhMDBkZGIxMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ4bG9nMjEiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjM2NjZkMWJkZjQ1NThiMGQxNjk5MGIyNDFlODE4NWNiZjU4YzNlMDNjMjRkOTA0NTQ0ZThjYzY1YjFjMzhkMSIKICAgIH0KICB9Cn0=\", \"n8vct7fj3NdiODy/h6PJhjxSR2U7d8gQxHjdVq553HqG60SSczt1Tl9XhvQbZP14ZrJGWxCziauuYb/HjZza0ugNAhfwh9z8hqR1PjBJGdvp+wpxoWpP2wd5RT9i5/GYEqpiAIAt9vHY1YeyejFqKZhXaGgp7gZZNjOQWQqB0SZzTUTAPzRW9FiY8x2re7H7Y1POThRXOvvkeQ6qWdPV6Hk5hTumV0rfEGm971jQRIbfdzBZDJRcro+8y+dlje/NpF5qf0JLy78Xr4hc2cwbT9+wqOeoUTcM/r9mwL15OKgFLjB44jszauKRHNfoqb6B3+1fNQEJrJK/7hIyvswpde7C5uOxkE7oMFib6X68VVEhb6PGC1+HWNaMaGjI0wWEkCahp48ihN9+sBEBFXOxIAhXG/pvJcbEi742/cBS1CTtOI8qui6JSL9MKX5jmyhtjjibOYRZbacosqayCnwsJAdMmwS7zIxc8jGhpfKECiSni/baS4zRla0bns4hfEM0l7ASv0Dh99WQD0We2ZMqltmix8lMEaAILXJVBln3CFrjYvncfku2hrSaqu1lNAtfMYYSITEUCBJ7McVAVmUHOrER0XGoVs9L237H0BQNSLqlGGEQ7OM8HV6G0YfXGlbNgNBx6O9k8ZijuK60JeEoJapcmbNj/LVHEU+dsgcFAbo=" + ) + ); + put( + "family_zombie_knight", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aZombie Knight", + "34af9e21-dff4-3b94-9fb5-07816e41af75", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjVkMmYzMWJhMTYyZmU2MjcyZTgzMWFlZDE3ZjUzMjEzZGI2ZmExYzRjYmU0ZmM4MjdmMzk2M2NjOThiOSJ9fX0=" + ) + ); + put( + "family_zombie_soldier", + Utils.createSkull( + EnumChatFormatting.AQUA + "§aZombie Soldier", + "9673d491-d589-44cb-b63e-5f8b3148b3df", + "ewogICJ0aW1lc3RhbXAiIDogMTY0Njc1NjU2MzM1MiwKICAicHJvZmlsZUlkIiA6ICJkYmQ4MDQ2M2EwMzY0Y2FjYjI3OGNhODBhMDBkZGIxMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ4bG9nMjEiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjM2NjZkMWJkZjQ1NThiMGQxNjk5MGIyNDFlODE4NWNiZjU4YzNlMDNjMjRkOTA0NTQ0ZThjYzY1YjFjMzhkMSIKICAgIH0KICB9Cn0=\", \"n8vct7fj3NdiODy/h6PJhjxSR2U7d8gQxHjdVq553HqG60SSczt1Tl9XhvQbZP14ZrJGWxCziauuYb/HjZza0ugNAhfwh9z8hqR1PjBJGdvp+wpxoWpP2wd5RT9i5/GYEqpiAIAt9vHY1YeyejFqKZhXaGgp7gZZNjOQWQqB0SZzTUTAPzRW9FiY8x2re7H7Y1POThRXOvvkeQ6qWdPV6Hk5hTumV0rfEGm971jQRIbfdzBZDJRcro+8y+dlje/NpF5qf0JLy78Xr4hc2cwbT9+wqOeoUTcM/r9mwL15OKgFLjB44jszauKRHNfoqb6B3+1fNQEJrJK/7hIyvswpde7C5uOxkE7oMFib6X68VVEhb6PGC1+HWNaMaGjI0wWEkCahp48ihN9+sBEBFXOxIAhXG/pvJcbEi742/cBS1CTtOI8qui6JSL9MKX5jmyhtjjibOYRZbacosqayCnwsJAdMmwS7zIxc8jGhpfKECiSni/baS4zRla0bns4hfEM0l7ASv0Dh99WQD0We2ZMqltmix8lMEaAILXJVBln3CFrjYvncfku2hrSaqu1lNAtfMYYSITEUCBJ7McVAVmUHOrER0XGoVs9L237H0BQNSLqlGGEQ7OM8HV6G0YfXGlbNgNBx6O9k8ZijuK60JeEoJapcmbNj/LVHEU+dsgcFAbo=" + ) + ); + }}; + + public static LinkedHashMap getBestiaryMobs() { + return bestiaryMobs; + } + + private static final LinkedHashMap mobTypeMap = + new LinkedHashMap() {{ + // Island + put("family_cave_spider", "ISLAND"); + put("family_enderman_private", "ISLAND"); + put("family_skeleton", "ISLAND"); + put("family_slime", "ISLAND"); + put("family_spider", "ISLAND"); + put("family_witch", "ISLAND"); + put("family_zombie", "ISLAND"); + + // Hub + put("family_unburried_zombie", "MOB"); + put("family_old_wolf", "MOB"); + put("family_ruin_wolf", "MOB"); + put("family_zombie_villager", "MOB"); + + // Spiders Den + put("family_arachne", "BOSS"); + put("family_arachne_brood", "MOB"); + put("family_arachne_keeper", "MOB"); + put("family_brood_mother_spider", "BOSS"); + put("family_dasher_spider", "MOB"); + put("family_respawning_skeleton", "MOB"); + put("family_random_slime", "MOB"); + put("family_spider_jockey", "MOB"); + put("family_splitter_spider", "MOB"); + put("family_voracious_spider", "MOB"); + put("family_weaver_spider", "MOB"); + + // The End + put("family_dragon", "BOSS"); + put("family_enderman", "MOB"); + put("family_endermite", "MOB"); + put("family_corrupted_protector", "BOSS"); + put("family_obsidian_wither", "MOB"); + put("family_voidling_extremist", "MOB"); + put("family_voidling_fanatic", "MOB"); + put("family_watcher", "MOB"); + put("family_zealot_enderman", "MOB"); + + // Crimson Isles + put("family_ashfang", "BOSS"); + put("family_barbarian_duke_x", "BOSS"); + put("family_bladesoul", "BOSS"); + put("family_blaze", "MOB"); + put("family_flaming_spider", "MOB"); + put("family_ghast", "MOB"); + put("family_mage_outlaw", "BOSS"); + put("family_magma_cube", "MOB"); + put("family_magma_cube_boss", "BOSS"); + put("family_matcho", "MOB"); + put("family_charging_mushroom_cow", "MOB"); + put("family_pigman", "MOB"); + put("family_wither_skeleton", "MOB"); + put("family_wither_spectre", "MOB"); + + // Deep Caverns + put("family_automaton", "MOB"); + put("family_butterfly", "MOB"); + put("family_emerald_slime", "MOB"); + put("family_caverns_ghost", "MOB"); + put("family_goblin", "MOB"); + put("family_team_treasurite", "MOB"); + put("family_ice_walker", "MOB"); + put("family_lapis_zombie", "MOB"); + put("family_diamond_skeleton", "MOB"); + put("family_diamond_zombie", "MOB"); + put("family_redstone_pigman", "MOB"); + put("family_sludge", "MOB"); + put("family_invisible_creeper", "MOB"); + put("family_thyst", "MOB"); + put("family_treasure_hoarder", "MOB"); + put("family_worms", "MOB"); + put("family_yog", "MOB"); + + // The Park + put("family_howling_spirit", "MOB"); + put("family_pack_spirit", "MOB"); + put("family_soul_of_the_alpha", "MOB"); + + // Spooky + put("family_batty_witch", "MOB"); + put("family_headless_horseman", "BOSS"); + put("family_phantom_spirit", "MOB"); + put("family_scary_jerry", "MOB"); + put("family_trick_or_treater", "MOB"); + put("family_wither_gourd", "MOB"); + put("family_wraith", "MOB"); + + // Catacombs + put("family_diamond_guy", "MOB"); + put("family_cellar_spider", "MOB"); + put("family_crypt_dreadlord", "MOB"); + put("family_crypt_lurker", "MOB"); + put("family_crypt_souleater", "MOB"); + put("family_king_midas", "MOB"); + put("family_lonely_spider", "MOB"); + put("family_lost_adventurer", "MOB"); + put("family_scared_skeleton", "MOB"); + put("family_shadow_assassin", "MOB"); + put("family_skeleton_grunt", "MOB"); + put("family_skeleton_master", "MOB"); + put("family_skeleton_soldier", "MOB"); + put("family_skeletor", "MOB"); + put("family_sniper_skeleton", "MOB"); + put("family_super_archer", "MOB"); + put("family_super_tank_zombie", "MOB"); + put("family_crypt_tank_zombie", "MOB"); + put("family_watcher_summon_undead", "MOB"); + put("family_dungeon_respawning_skeleton", "MOB"); + put("family_crypt_witherskeleton", "MOB"); + put("family_zombie_commander", "MOB"); + put("family_zombie_grunt", "MOB"); + put("family_zombie_knight", "MOB"); + put("family_zombie_soldier", "MOB"); + + }}; + + public static LinkedHashMap getMobType() { + return mobTypeMap; + } + +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/bestiary/BestiaryPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/bestiary/BestiaryPage.java new file mode 100644 index 00000000..1bd3770a --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/bestiary/BestiaryPage.java @@ -0,0 +1,279 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.profileviewer.bestiary; + +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import io.github.moulberry.notenoughupdates.profileviewer.GuiProfileViewer; +import io.github.moulberry.notenoughupdates.profileviewer.ProfileViewer; +import io.github.moulberry.notenoughupdates.util.Constants; +import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; + +import java.awt.*; +import java.text.NumberFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +public class BestiaryPage { + + private static int guiLeft; + private static int guiTop; + private static final ResourceLocation BESTIARY_TEXTURE = new ResourceLocation( + "notenoughupdates:pv_bestiary_tab.png"); + public static final ResourceLocation pv_elements = new ResourceLocation("notenoughupdates:pv_elements.png"); + private static ItemStack selectedBestiaryLocation = null; + private static List tooltipToDisplay = null; + private static final NumberFormat numberFormat = NumberFormat.getInstance(Locale.US); + private static final int XCOUNT = 7; + private static final int YCOUNT = 5; + private static final float XPADDING = (190 - XCOUNT * 20) / (float) (XCOUNT + 1); + private static final float YPADDING = (202 - YCOUNT * 20) / (float) (YCOUNT + 1); + + public static void renderPage(int mouseX, int mouseY) { + guiLeft = GuiProfileViewer.getGuiLeft(); + guiTop = GuiProfileViewer.getGuiTop(); + JsonObject profileInfo = GuiProfileViewer.getProfile().getProfileInformation(GuiProfileViewer.getProfileId()); + + int bestiarySize = BestiaryData.getBestiaryLocations().size(); + int bestiaryXSize = (int) (350f / (bestiarySize - 1 + 0.0000001f)); + + { + int yIndex = 0; + for (ItemStack stack : BestiaryData.getBestiaryLocations().keySet()) { + Minecraft.getMinecraft().getTextureManager().bindTexture(pv_elements); + if (stack == selectedBestiaryLocation) { + Utils.drawTexturedRect(guiLeft + 30 + bestiaryXSize * yIndex, guiTop + 10, 20, 20, + 20 / 256f, 0, 20 / 256f, 0, GL11.GL_NEAREST + ); + Utils.drawItemStack( + stack, + guiLeft + 32 + bestiaryXSize * yIndex, + guiTop + 12 + ); + } else { + Utils.drawTexturedRect(guiLeft + 30 + bestiaryXSize * yIndex, guiTop + 10, 20, 20, + 0, 20 / 256f, 0, 20 / 256f, GL11.GL_NEAREST + ); + Utils.drawItemStack(stack, guiLeft + 32 + bestiaryXSize * yIndex, guiTop + 12); + } + yIndex++; + } + } + ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft()); + int width = scaledResolution.getScaledWidth(); + int height = scaledResolution.getScaledHeight(); + + Minecraft.getMinecraft().getTextureManager().bindTexture(BESTIARY_TEXTURE); + Utils.drawTexturedRect(guiLeft, guiTop, 431, 202, GL11.GL_NEAREST); + + GlStateManager.color(1, 1, 1, 1); + GlStateManager.disableLighting(); + RenderHelper.enableGUIStandardItemLighting(); + + List mobs = BestiaryData.getBestiaryLocations().get(selectedBestiaryLocation); + Color color = new Color(128, 128, 128, 255); + if (mobs != null) { + for (int i = 0; i < mobs.size(); i++) { + + String mob = mobs.get(i); + if (mob != null) { + ItemStack mobItem = BestiaryData.getBestiaryMobs().get(mob); + if (mobItem != null) { + int xIndex = i % XCOUNT; + int yIndex = i / XCOUNT; + + float x = 23 + XPADDING + (XPADDING + 20) * xIndex; + float y = 30 + YPADDING + (YPADDING + 20) * yIndex; + + float completedness = 0; + + GlStateManager.color(1, 1, 1, 1); + Minecraft.getMinecraft().getTextureManager().bindTexture(pv_elements); + Utils.drawTexturedRect(guiLeft + x, guiTop + y, 20, 20 * (1 - completedness), + 0, 20 / 256f, 0, 20 * (1 - completedness) / 256f, GL11.GL_NEAREST + ); + GlStateManager.color(1, 185 / 255f, 0, 1); + Minecraft.getMinecraft().getTextureManager().bindTexture(pv_elements); + Utils.drawTexturedRect(guiLeft + x, guiTop + y + 20 * (1 - completedness), 20, 20 * (completedness), + 0, 20 / 256f, 20 * (1 - completedness) / 256f, 20 / 256f, GL11.GL_NEAREST + ); + Utils.drawItemStack(mobItem, guiLeft + (int) x + 2, guiTop + (int) y + 2); + float kills = Utils.getElementAsFloat(Utils.getElement(profileInfo, "bestiary.kills_" + mob), 0); + float deaths = Utils.getElementAsFloat(Utils.getElement(profileInfo, "bestiary.deaths_" + mob), 0); + + String type; + if (BestiaryData.getMobType().get(mob) != null) { + type = BestiaryData.getMobType().get(mob); + } else { + type = "MOB"; + } + JsonObject leveling = Constants.LEVELING; + ProfileViewer.Level level = null; + if (leveling != null && Utils.getElement(leveling, "bestiary." + type) != null) { + JsonArray levelingArray = Utils.getElement(leveling, "bestiary." + type).getAsJsonArray(); + int levelCap = Utils.getElementAsInt(Utils.getElement(leveling, "bestiary.caps." + type), 0); + level = ProfileViewer.getLevel(levelingArray, kills, levelCap, false); + } else { + Utils.showOutdatedRepoNotification(); + } + + float levelNum = -1; + if (level != null) { + levelNum = level.level; + } + if (mouseX > guiLeft + (int) x + 2 && mouseX < guiLeft + (int) x + 18) { + if (mouseY > guiTop + (int) y + 2 && mouseY < guiTop + (int) y + 18) { + tooltipToDisplay = new ArrayList<>(); + tooltipToDisplay.add(mobItem.getDisplayName() + " " + ((levelNum == -1) ? "?" : (int) Math.floor(levelNum))); + tooltipToDisplay.add(EnumChatFormatting.GRAY + "Kills: " + EnumChatFormatting.GREEN + numberFormat.format(kills)); + tooltipToDisplay.add(EnumChatFormatting.GRAY + "Deaths: " + EnumChatFormatting.GREEN + numberFormat.format(deaths)); + if (level != null) { + tooltipToDisplay.add(EnumChatFormatting.GRAY + "Progress: " + EnumChatFormatting.AQUA + + GuiProfileViewer.shortNumberFormat(Math.round((levelNum % 1) * level.maxXpForLevel), 0) + "/" + + GuiProfileViewer.shortNumberFormat(level.maxXpForLevel, 0)); + } + } + } + + GlStateManager.color(1, 1, 1, 1); +// if (tier >= 0) { +// Utils.drawStringCentered(tierString, Minecraft.getMinecraft().fontRendererObj, +// guiLeft + x + 10, guiTop + y - 4, true, +// tierStringColour +// ); +// } + Utils.drawStringCentered((int) Math.floor(levelNum) + "", Minecraft.getMinecraft().fontRendererObj, + guiLeft + x + 10, guiTop + y + 26, true, + color.getRGB() + ); + } + } + Utils.renderAlignedString(EnumChatFormatting.RED + "Bestiary Level: ", + EnumChatFormatting.GRAY + "" + (float) getBeTiers(profileInfo) / 10, + guiLeft + 220, guiTop + 50, 110 + ); + } + } + if (tooltipToDisplay != null) { + List grayTooltip = new ArrayList<>(tooltipToDisplay.size()); + for (String line : tooltipToDisplay) { + grayTooltip.add(EnumChatFormatting.GRAY + line); + } + Utils.drawHoveringText(grayTooltip, mouseX, mouseY, width, height, -1, Minecraft.getMinecraft().fontRendererObj); + tooltipToDisplay = null; + } + } + + public static void mouseReleased(int mouseX, int mouseY, int mouseButton) { + int bestiarySize = BestiaryData.getBestiaryLocations().size(); + int bestiaryYSize = (int) (350f / (bestiarySize - 1 + 0.0000001f)); + int yIndex = 0; + for (ItemStack stack : BestiaryData.getBestiaryLocations().keySet()) { + if (mouseX > guiLeft + 30 + bestiaryYSize * yIndex && + mouseX < guiLeft + 30 + bestiaryYSize * yIndex + 20) { + if (mouseY > guiTop + 10 && mouseY < guiTop + 10 + 20) { + selectedBestiaryLocation = stack; + Utils.playPressSound(); + return; + } + } + yIndex++; + } + } + + public static int getBeTiers(JsonObject profileInfo) { + int beLevel = 0; + for (ItemStack items : BestiaryData.getBestiaryLocations().keySet()) { + List mobs = BestiaryData.getBestiaryLocations().get(items); + if (mobs != null) { + for (int i = 0; i < mobs.size(); i++) { + + String mob = mobs.get(i); + if (mob != null) { + float kills = Utils.getElementAsFloat(Utils.getElement(profileInfo, "bestiary.kills_" + mob), 0); + String type; + if (BestiaryData.getMobType().get(mob) != null) { + type = BestiaryData.getMobType().get(mob); + } else { + type = "MOB"; + } + JsonObject leveling = Constants.LEVELING; + ProfileViewer.Level level = null; + if (leveling != null && Utils.getElement(leveling, "bestiary." + type) != null) { + JsonArray levelingArray = Utils.getElement(leveling, "bestiary." + type).getAsJsonArray(); + int levelCap = Utils.getElementAsInt(Utils.getElement(leveling, "bestiary.caps." + type), 0); + level = ProfileViewer.getLevel(levelingArray, kills, levelCap, false); + } + + float levelNum = 0; + if (level != null) { + levelNum = level.level; + } + beLevel += (int) Math.floor(levelNum); + } + } + } + } + return beLevel; + } + + public static int getBeTiersFromPage(JsonObject profileInfo) { + int beLevel = 0; + List mobs = BestiaryData.getBestiaryLocations().get(selectedBestiaryLocation); + if (mobs != null) { + for (int i = 0; i < mobs.size(); i++) { + + String mob = mobs.get(i); + if (mob != null) { + float kills = Utils.getElementAsFloat(Utils.getElement(profileInfo, "bestiary.kills_" + mob), 0); + String type; + if (BestiaryData.getMobType().get(mob) != null) { + type = BestiaryData.getMobType().get(mob); + } else { + type = "MOB"; + } + JsonObject leveling = Constants.LEVELING; + ProfileViewer.Level level = null; + if (leveling != null) { + JsonArray levelingArray = Utils.getElement(leveling, "bestiary." + type).getAsJsonArray(); + int levelCap = Utils.getElementAsInt(Utils.getElement(leveling, "bestiary.caps." + type), 0); + level = ProfileViewer.getLevel(levelingArray, kills, levelCap, false); + } + + float levelNum = 0; + if (level != null) { + levelNum = level.level; + } + beLevel += (int) Math.floor(levelNum); + } + } + } + return beLevel; + } +} diff --git a/src/main/resources/assets/notenoughupdates/pv_bestiary_tab.png b/src/main/resources/assets/notenoughupdates/pv_bestiary_tab.png new file mode 100644 index 00000000..620c156b Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/pv_bestiary_tab.png differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/navigation.png b/src/main/resources/assets/notenoughupdates/textures/gui/navigation.png index b8eb26e4..628f3a47 100644 Binary files a/src/main/resources/assets/notenoughupdates/textures/gui/navigation.png and b/src/main/resources/assets/notenoughupdates/textures/gui/navigation.png differ -- cgit From 04d6f54c067a5cdab61186eb37f67fef11affa57 Mon Sep 17 00:00:00 2001 From: efefury <69400149+efefury@users.noreply.github.com> Date: Sun, 10 Jul 2022 16:04:00 +0200 Subject: ah profit cool gui display (#178) Co-authored-by: Lulonaut Co-authored-by: nopo --- Update Notes/2.1.md | 3 +- .../notenoughupdates/NotEnoughUpdates.java | 2 + .../commands/dungeon/MapCommand.java | 2 +- .../commands/help/HelpCommand.java | 1 - .../commands/profile/PeekCommand.java | 1 + .../notenoughupdates/listener/RenderListener.java | 16 ++ .../miscfeatures/AuctionProfit.java | 177 +++++++++++++++++++++ .../notenoughupdates/miscfeatures/SunTzu.java | 3 +- .../options/seperateSections/AHTweaks.java | 9 ++ .../options/seperateSections/ApiData.java | 2 +- .../options/seperateSections/Dungeons.java | 3 + .../notenoughupdates/overlays/TimersOverlay.java | 1 - .../profileviewer/GuiProfileViewer.java | 18 +++ .../profileviewer/PlayerStats.java | 3 +- .../profileviewer/ProfileViewer.java | 1 + .../moulberry/notenoughupdates/util/Utils.java | 6 +- .../notenoughupdates/util/XPInformation.java | 12 ++ .../assets/notenoughupdates/auction_profit.png | Bin 0 -> 595 bytes 18 files changed, 249 insertions(+), 11 deletions(-) create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionProfit.java create mode 100644 src/main/resources/assets/notenoughupdates/auction_profit.png (limited to 'src/main/resources') diff --git a/Update Notes/2.1.md b/Update Notes/2.1.md index 5ab5ec19..4d43844a 100644 --- a/Update Notes/2.1.md +++ b/Update Notes/2.1.md @@ -98,7 +98,8 @@ - Added an option to only search for Level 100 pets in the auction house search overlay - Lulonaut - [Added an error if you have new tab list off](https://cdn.discordapp.com/attachments/896407218151366687/913681097605398528/unknown.png) - nopo - Added Fishing Timer over bobber - nea89 - +- [Auction Profit Viewer Overlay](https://cdn.discordapp.com/attachments/848901833119629332/993191851400101918/176946124-28ddf336-1ec7-460b-b22a-5fe2733b46a3.png) +- ### **Bug Fixes:** - Fixed wiki pages freezing the entire game - nea89 diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java index 59e7c392..3ef305f2 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java @@ -33,6 +33,7 @@ import io.github.moulberry.notenoughupdates.listener.ItemTooltipListener; import io.github.moulberry.notenoughupdates.listener.NEUEventListener; import io.github.moulberry.notenoughupdates.listener.OldAnimationChecker; import io.github.moulberry.notenoughupdates.listener.RenderListener; +import io.github.moulberry.notenoughupdates.miscfeatures.AuctionProfit; import io.github.moulberry.notenoughupdates.miscfeatures.CookieWarning; import io.github.moulberry.notenoughupdates.miscfeatures.CrystalOverlay; import io.github.moulberry.notenoughupdates.miscfeatures.CrystalWishingCompassSolver; @@ -267,6 +268,7 @@ public class NotEnoughUpdates { MinecraftForge.EVENT_BUS.register(new ItemCooldowns()); MinecraftForge.EVENT_BUS.register(new DwarvenMinesWaypoints()); MinecraftForge.EVENT_BUS.register(new FuelBar()); + MinecraftForge.EVENT_BUS.register(new AuctionProfit()); MinecraftForge.EVENT_BUS.register(XPInformation.getInstance()); MinecraftForge.EVENT_BUS.register(OverlayManager.petInfoOverlay); MinecraftForge.EVENT_BUS.register(OverlayManager.timersOverlay); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java index 529f8e57..83db26bb 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java @@ -52,7 +52,7 @@ public class MapCommand extends ClientCommandBase { public void processCommand(ICommandSender sender, String[] args) throws CommandException { if (!NotEnoughUpdates.INSTANCE.config.hidden.dev) { Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText( - EnumChatFormatting.RED + "[NEU] The map does not work right now. You can use the map from other mods, for example: SkyblockAddons, DungeonsGuide, or Skytils ")); + EnumChatFormatting.RED + "[NEU] The map does not work right now. You can use the map from other mods, for example: SkyblockAddons, DungeonsGuide or Skytils.")); return; } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.java index a52fcd1d..7655f561 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/help/HelpCommand.java @@ -50,7 +50,6 @@ public class HelpCommand extends ClientCommandBase { "\u00a76/neulinks \u00a7r\u00a77- Shows links to neu/moulberry.", "\u00a76/neuoverlay \u00a7r\u00a77- Opens GUI Editor for quickcommands and searchbar.", "\u00a76/neuah \u00a7r\u00a77- Opens neu's custom ah GUI.", - "\u00a76/neumap \u00a7r\u00a77- Opens the dungeon map GUI.", "\u00a76/neucalendar \u00a7r\u00a77- Opens neu's custom calendar GUI.", "\u00a76/neucalc \u00a7r\u00a77- Run calculations.", "", diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/PeekCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/PeekCommand.java index 3133edf5..21afff87 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/PeekCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/profile/PeekCommand.java @@ -102,6 +102,7 @@ public class PeekCommand extends ClientCommandBase { boolean isMe = name.equalsIgnoreCase("moulberry"); PlayerStats.Stats stats = profile.getStats(null); + if (stats == null) return; JsonObject skill = profile.getSkillInfo(null); Minecraft.getMinecraft().ingameGUI diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java index aedca6e3..459a7231 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java @@ -35,6 +35,7 @@ import io.github.moulberry.notenoughupdates.core.GuiScreenElementWrapper; import io.github.moulberry.notenoughupdates.dungeons.DungeonWin; import io.github.moulberry.notenoughupdates.itemeditor.NEUItemEditor; import io.github.moulberry.notenoughupdates.miscfeatures.AuctionBINWarning; +import io.github.moulberry.notenoughupdates.miscfeatures.AuctionProfit; import io.github.moulberry.notenoughupdates.miscfeatures.BetterContainers; import io.github.moulberry.notenoughupdates.miscfeatures.CrystalMetalDetectorSolver; import io.github.moulberry.notenoughupdates.miscfeatures.StorageManager; @@ -501,6 +502,11 @@ public class RenderListener { x += 80 + 28; } } + if (AuctionProfit.inAuctionPage()) { + if (x + 18 > guiLeft + xSize && x + 18 < guiLeft + xSize + 4 + 28 + 20 && y > guiTop - 180 && y < guiTop + 56) { + x -= 68 - 200; + } + } if (NEUOverlay.isRenderingArmorHud()) { if (x < guiLeft + xSize - 150 && x > guiLeft + xSize - 200 && y > guiTop && y < guiTop + 84) { x -= 25; @@ -608,6 +614,11 @@ public class RenderListener { x += 80 + 28; } } + if (AuctionProfit.inAuctionPage()) { + if (x + 18 > guiLeft + xSize && x + 18 < guiLeft + xSize + 4 + 28 + 20 && y > guiTop - 180 && y < guiTop + 56) { + x -= 68 - 200; + } + } if (NEUOverlay.isRenderingArmorHud()) { if (x < guiLeft + xSize - 150 && x > guiLeft + xSize - 200 && y > guiTop && y < guiTop + 84) { x -= 25; @@ -1005,6 +1016,11 @@ public class RenderListener { x += 80 + 28; } } + if (AuctionProfit.inAuctionPage()) { + if (x + 18 > guiLeft + xSize && x + 18 < guiLeft + xSize + 4 + 28 + 20 && y > guiTop - 180 && y < guiTop + 56) { + x -= 68 - 200; + } + } if (NEUOverlay.isRenderingArmorHud()) { if (x < guiLeft + xSize - 150 && x > guiLeft + xSize - 200 && y > guiTop && y < guiTop + 84) { x -= 25; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionProfit.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionProfit.java new file mode 100644 index 00000000..03f19bd8 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionProfit.java @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.miscfeatures; + +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.miscfeatures.entityviewer.InvisibleModifier; +import io.github.moulberry.notenoughupdates.mixins.AccessorGuiContainer; +import io.github.moulberry.notenoughupdates.profileviewer.GuiProfileViewer; +import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.ContainerChest; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.GuiScreenEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.lwjgl.opengl.GL11; + +public class AuctionProfit { + + public static final ResourceLocation auctionProfitImage = + new ResourceLocation("notenoughupdates:auction_profit.png"); + + @SubscribeEvent + public void onDrawBackground(GuiScreenEvent.BackgroundDrawnEvent event) { + if(!inAuctionPage()) return; + + Minecraft minecraft = Minecraft.getMinecraft(); + Container inventoryContainer = minecraft.thePlayer.openContainer; + + Gui gui = event.gui; + int xSize = ((AccessorGuiContainer) gui).getXSize(); + int guiLeft = ((AccessorGuiContainer) gui).getGuiLeft(); + int guiTop = ((AccessorGuiContainer) gui).getGuiTop(); + minecraft.getTextureManager().bindTexture(auctionProfitImage); + GL11.glColor4f(1, 1, 1, 1); + GlStateManager.disableLighting(); + Utils.drawTexturedRect(guiLeft + xSize + 4, guiTop, 180, 101, 0, 180 / 256f, 0, 101 / 256f, GL11.GL_NEAREST); + + double coinsToCollect = 0; + double coinsIfAllSold = 0; + int expiredAuctions = 0; + int unclaimedAuctions = 0; + for (ItemStack itemStack : inventoryContainer.getInventory()) { + boolean isBin = false; + if (itemStack == null || !itemStack.hasTagCompound()) continue; + + NBTTagCompound tag = itemStack.getTagCompound(); + if (tag == null) continue; + NBTTagCompound display = tag.getCompoundTag("display"); + if (!display.hasKey("Lore", 9)) continue; + NBTTagList lore = itemStack.getTagCompound().getCompoundTag("display").getTagList("Lore", 8); + + int coinsToCheck = 0; + for (int i = 0; i < lore.tagCount(); i++) { + String line = lore.getStringTagAt(i); + if (line.contains("§7Buy it now")) { + isBin = true; + String s = line.split("§7Buy it now: ")[1]; + String coinsString = s.split("coins")[0]; + int coins = tryParse(EnumChatFormatting.getTextWithoutFormattingCodes(coinsString.trim())); + if (coins != 0) { + coinsToCheck += coins; + } + } + + if (line.contains("§7Top bid: ")) { + String s = line.split("§7Top bid: ")[1]; + String coinsString = s.split("coins")[0]; + String textWithoutFormattingCodes = EnumChatFormatting.getTextWithoutFormattingCodes(coinsString.trim()); + int coins = tryParse(textWithoutFormattingCodes); + if (coins != 0) { + coinsToCheck += coins; + } + } + + if (line.contains("§7Sold for: ")) { + String s = line.split("§7Sold for: ")[1]; + String coinsString = s.split("coins")[0]; + int coins = tryParse(EnumChatFormatting.getTextWithoutFormattingCodes(coinsString.trim())); + if (coins != 0) { + if (coins > 1000000) { + coins /= 1.1; + } + coinsToCollect += coins; + } + } + + if (line.contains("§7Status: §aSold!") || line.contains("§7Status: §aEnded!")) { + if (coinsToCheck != 0) { + if (coinsToCheck > 1000000) { + coinsToCheck /= 1.1; + } + coinsToCollect += coinsToCheck; + coinsToCheck = 0; + } + unclaimedAuctions++; + } else if (line.contains("§7Status: §cExpired!")) { + expiredAuctions++; + } + + if (isBin && line.contains("§7Ends in") && coinsToCheck != 0) { + coinsIfAllSold += coinsToCheck; + coinsToCheck = 0; + } + + } + + } + int a = guiLeft + xSize + 4; + String unclaimedAuctionsStr = EnumChatFormatting.DARK_GREEN.toString() + + unclaimedAuctions + EnumChatFormatting.BOLD + EnumChatFormatting.DARK_GRAY + " Unclaimed auctions"; + String expiredAuctionsStr = + EnumChatFormatting.RED.toString() + expiredAuctions + EnumChatFormatting.BOLD + EnumChatFormatting.DARK_GRAY + + " Expired auctions"; + + FontRenderer fontRendererObj = minecraft.fontRendererObj; + fontRendererObj.drawString(unclaimedAuctionsStr, a + 6, guiTop + 6, -1, false); + fontRendererObj.drawString(expiredAuctionsStr, a + 6, guiTop + 16, -1, false); + + String coinsToCollectStr = + EnumChatFormatting.BOLD + EnumChatFormatting.DARK_GRAY.toString() + "Coins to collect: " + + EnumChatFormatting.RESET + EnumChatFormatting.DARK_GREEN + "" + + GuiProfileViewer.shortNumberFormat(coinsToCollect, 0); + String valueIfSoldStr = EnumChatFormatting.BOLD + EnumChatFormatting.DARK_GRAY.toString() + "Value if all sold: " + + EnumChatFormatting.RESET + EnumChatFormatting.DARK_GREEN + "" + + GuiProfileViewer.shortNumberFormat(coinsIfAllSold, 0); + + fontRendererObj.drawString(coinsToCollectStr, a + 6, guiTop + 32, -1, false); + fontRendererObj.drawString(valueIfSoldStr, a + 6, guiTop + 42, -1, false); + } + + public static Integer tryParse(String s) { + try { + return Integer.parseInt(s.replace(",", "")); + } catch (NumberFormatException exception) { + return 0; + } + } + + public static boolean inAuctionPage() { + if (!NotEnoughUpdates.INSTANCE.config.ahTweaks.enableAhSellValue + || !NotEnoughUpdates.INSTANCE.isOnSkyblock()) return false; + + Minecraft minecraft = Minecraft.getMinecraft(); + if (minecraft == null || minecraft.thePlayer == null) return false; + + Container inventoryContainer = minecraft.thePlayer.openContainer; + if (!(inventoryContainer instanceof ContainerChest)) return false; + ContainerChest containerChest = (ContainerChest) inventoryContainer; + return containerChest.getLowerChestInventory().getDisplayName() + .getUnformattedText().equalsIgnoreCase("Manage Auctions"); + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/SunTzu.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/SunTzu.java index 9c2549b8..7fc8beba 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/SunTzu.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/SunTzu.java @@ -56,7 +56,8 @@ public class SunTzu { "The wise warrior avoids the battle.", "Great results, can be achieved with small forces.", "Attack is the secret of defense; defense is the planning of an attack.", - "Subscribe to Moulberry on YouTube." + "Subscribe to Moulberry on YouTube.", + "Technoblade never dies!" }; public static void setEnabled(boolean enabled) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AHTweaks.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AHTweaks.java index 7c8446b0..298ddeda 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AHTweaks.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/AHTweaks.java @@ -137,4 +137,13 @@ public class AHTweaks { @ConfigEditorBoolean @ConfigAccordionId(id = 2) public boolean enableSortWarning = true; + + @Expose + @ConfigOption( + name = "Enable AH Sell Value", + desc = "Display profit information (coins to collect, value if all sold, expired and unclaimed auctions)" + ) + @ConfigEditorBoolean + public boolean enableAhSellValue = true; + } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ApiData.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ApiData.java index 3fc72db5..9ed09ac3 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ApiData.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ApiData.java @@ -62,7 +62,7 @@ public class ApiData { public int setRepositoryToDefaultButton = 0; @ConfigAccordionId(id = 1) - @ConfigOption(name = "Use dangerous Repository", desc = "The latest, most up to date item list for the NEU prereleases.\n§4Use §lonly§r§4 with the prereleases.") + @ConfigOption(name = "Use pre-release repository", desc = "The latest, most up to date item list for the NEU pre-releases.\n§4Use §lonly§r§4 with the pre-releases.") @ConfigEditorButton(runnableId = 24, buttonText = "Use") public int setRepositoryToDangerousButton = 0; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Dungeons.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Dungeons.java index 1c825cdf..8f7bc15c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Dungeons.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Dungeons.java @@ -31,6 +31,7 @@ import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditor import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; public class Dungeons { + /* @ConfigOption( name = "Dungeon Map", desc = "" @@ -38,6 +39,8 @@ public class Dungeons { @ConfigEditorAccordion(id = 0) public boolean dungeonMapAccordion = false; + */ + @Expose @ConfigOption( name = "\u00A7cWarning", diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/TimersOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/TimersOverlay.java index 5510023c..411a56d8 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/TimersOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/TimersOverlay.java @@ -879,4 +879,3 @@ public class TimersOverlay extends TextOverlay { ALWAYS, } } - diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java index 457f7c34..87bab220 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java @@ -46,6 +46,7 @@ import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.resources.DefaultPlayerSkin; import net.minecraft.client.shader.Framebuffer; import net.minecraft.client.shader.Shader; +import net.minecraft.enchantment.Enchantment; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EnumPlayerModelParts; import net.minecraft.init.Blocks; @@ -300,6 +301,11 @@ public class GuiProfileViewer extends GuiScreen { private static JsonObject getPetInfo(String pet_name, String rarity) { JsonObject petInfo = new JsonObject(); + if (Constants.PETS == null) { + Utils.showOutdatedRepoNotification(); + return null; + } + if (Constants.PETS.has("custom_pet_leveling") && Constants.PETS.getAsJsonObject("custom_pet_leveling").has(pet_name)) { JsonObject pet = Constants.PETS.getAsJsonObject("custom_pet_leveling").getAsJsonObject(pet_name); @@ -346,6 +352,9 @@ public class GuiProfileViewer extends GuiScreen { public static PetLevel getPetLevel(String pet_name, String rarity, float exp) { JsonObject petInfo = getPetInfo(pet_name, rarity); + if (petInfo == null) { + return null; + } int offset = petInfo.get("offset").getAsInt(); int maxPetLevel = petInfo.get("max_level").getAsInt(); JsonArray levels = petInfo.getAsJsonArray("pet_levels"); @@ -4647,6 +4656,15 @@ public class GuiProfileViewer extends GuiScreen { String locationStr = null; if (profile.getUuid().equals("20934ef9488c465180a78f861586b4cf")) { locationStr = "Ignoring DMs"; + } else if(profile.getUuid().equals("b876ec32e396476ba1158438d83c67d4")) { + statusStr = EnumChatFormatting.LIGHT_PURPLE + "Long live Potato King"; + ItemStack potato_crown = NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager + .getItemInformation() + .get("POTATO_CROWN")); + potato_crown.addEnchantment(Enchantment.unbreaking, 1656638942); // this number may be useful + Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(new ItemStack(Items.potato), guiLeft + 35, guiTop + 160); + Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(potato_crown, guiLeft + 50, guiTop + 162); + Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(new ItemStack(Items.potato), guiLeft + 63, guiTop + 160); } else { locationStr = NotEnoughUpdates.INSTANCE.navigation.getNameForAreaModeOrUnknown(location); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java index 8d24a082..19668019 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java @@ -559,7 +559,7 @@ public class PlayerStats { } GuiProfileViewer.PetLevel levelObj = GuiProfileViewer.getPetLevel(petname, tier, exp); - + if (levelObj == null) return null; float level = levelObj.level; float currentLevelRequirement = levelObj.currentLevelRequirement; float maxXP = levelObj.maxXP; @@ -702,6 +702,7 @@ public class PlayerStats { } Stats petBonus = getPetStatBonuses(petsInfo); + if (petBonus == null) return null; stats = stats.add(passiveBonuses).add(armorBonuses).add(talismanBonuses).add(petBonus).add(hotmBonuses); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java index d8e47fa3..7ed3a799 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java @@ -1418,6 +1418,7 @@ public class ProfileViewer { PlayerStats.getStats(getSkillInfo(profileId), getInventoryInfo(profileId), getCollectionInfo(profileId), getPetsInfo(profileId), profileInfo ); + if (stats == null) return null; this.stats.put(profileId, stats); return stats; } 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 3745d72e..f45b840c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java @@ -1937,10 +1937,8 @@ public class Utils { NotificationHandler.displayNotification(Lists.newArrayList( EnumChatFormatting.RED + EnumChatFormatting.BOLD.toString() + "Missing repo data", EnumChatFormatting.RED + "Data used for many NEU features is not up to date, this should normally not be the case.", - EnumChatFormatting.RED + "You can try " + EnumChatFormatting.BOLD + "/neuresetrepo" + EnumChatFormatting.RESET + - EnumChatFormatting.RED + " to see if that fixes the issue.", - EnumChatFormatting.RED + "If the problem persists please join " + EnumChatFormatting.BOLD + - "discord.gg/moulberry" + + EnumChatFormatting.RED + "You can try " + EnumChatFormatting.BOLD + "/neuresetrepo" + EnumChatFormatting.RESET + EnumChatFormatting.RED +" and restart your game" + + " to see if that fixes the issue.", EnumChatFormatting.RED + "If the problem persists please join " + EnumChatFormatting.BOLD + "discord.gg/moulberry" + EnumChatFormatting.RESET + EnumChatFormatting.RED + " and message in " + EnumChatFormatting.BOLD + "#neu-support" + EnumChatFormatting.RESET + EnumChatFormatting.RED + " to get support" ), diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/XPInformation.java b/src/main/java/io/github/moulberry/notenoughupdates/util/XPInformation.java index 158f9917..80027aff 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/XPInformation.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/XPInformation.java @@ -249,9 +249,21 @@ public class XPInformation { } public double getPetLevel(String petId, double exp, String rarity) { + if (Constants.PETS == null || !Constants.PETS.has("pet_levels")) { + Utils.showOutdatedRepoNotification(); + return 0; + } Stream pet_levels = StreamSupport.stream(Constants.PETS.get("pet_levels").getAsJsonArray().spliterator(), false); + if (!Constants.PETS.has("pet_rarity_offset")) { + Utils.showOutdatedRepoNotification(); + return 0; + } int pet_rarity_offset = Constants.PETS.getAsJsonObject("pet_rarity_offset").get(rarity).getAsInt(); + if (!Constants.PETS.has("custom_pet_leveling")) { + Utils.showOutdatedRepoNotification(); + return 0; + } JsonObject custom_pet_leveling = Constants.PETS.getAsJsonObject("custom_pet_leveling").getAsJsonObject(petId); List xpLevelsRequired = pet_levels.skip(pet_rarity_offset).limit(100).map(JsonElement::getAsInt).collect(Collectors.toList()); diff --git a/src/main/resources/assets/notenoughupdates/auction_profit.png b/src/main/resources/assets/notenoughupdates/auction_profit.png new file mode 100644 index 00000000..80e06c10 Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/auction_profit.png differ -- cgit From e91d0907148e08352f3679324dc3e6460de1be38 Mon Sep 17 00:00:00 2001 From: NopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com> Date: Sat, 16 Jul 2022 20:57:12 +1000 Subject: fixed magic power (#187) * fixed magic power * I feel like this is an important change * fix location * added support for trade money signs --- .../github/moulberry/notenoughupdates/NEUOverlay.java | 11 +++++++++++ .../commands/misc/CalculatorCommand.java | 2 +- .../notenoughupdates/miscgui/SignCalculator.java | 4 ++-- .../profileviewer/GuiProfileViewer.java | 2 +- .../notenoughupdates/profileviewer/PlayerStats.java | 11 +++++++++++ .../assets/notenoughupdates/supersecretassets/lunar.png | Bin 0 -> 54979 bytes 6 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/assets/notenoughupdates/supersecretassets/lunar.png (limited to 'src/main/resources') diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java index a3755984..c048ce1b 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java @@ -112,6 +112,9 @@ import java.util.concurrent.atomic.AtomicReference; public class NEUOverlay extends Gui { private static final ResourceLocation SUPERGEHEIMNISVERMOGEN = new ResourceLocation( "notenoughupdates:supersecretassets/bald.png"); + + private static final ResourceLocation ATMOULBERRYWHYISMYLUNARCLIENTBUGGING = new ResourceLocation( + "notenoughupdates:supersecretassets/lunar.png"); private static final ResourceLocation SEARCH_BAR = new ResourceLocation("notenoughupdates:search_bar.png"); private static final ResourceLocation SEARCH_BAR_GOLD = new ResourceLocation("notenoughupdates:search_bar_gold.png"); @@ -1941,6 +1944,14 @@ public class NEUOverlay extends Gui { GlStateManager.bindTexture(0); } + if (textField.getText().toLowerCase().contains("lunar")) { + Minecraft.getMinecraft().getTextureManager().bindTexture(ATMOULBERRYWHYISMYLUNARCLIENTBUGGING); + GlStateManager.color(1, 1, 1, 1); + GlStateManager.translate(0,0,100); + Utils.drawTexturedRect((width + 410) / 2f, (height + 450) / 2f - 114, 113, 64, GL11.GL_LINEAR); + GlStateManager.bindTexture(0); + } + SunTzu.setEnabled(textField.getText().toLowerCase().startsWith("potato")); updateGuiGroupSize(); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CalculatorCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CalculatorCommand.java index 05e2087d..e6472d04 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CalculatorCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/CalculatorCommand.java @@ -46,7 +46,7 @@ public class CalculatorCommand extends ClientCommandBase { public void processCommand(ICommandSender sender, String[] args) throws CommandException { if ((args.length == 1 && Objects.equals(args[0], "help")) || args.length == 0) { sender.addChatMessage(new ChatComponentText( - "\n§e[NEU] §5Its a calculator.\n" + + "\n§e[NEU] §5It's a calculator.\n" + "§eFor Example §b/neucalc 3m*7k§e.\n" + "§eYou can also use suffixes (k, m, b, t, s)§e.\n" + "§eThe \"s\" suffix acts as 64.\n" + diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/SignCalculator.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/SignCalculator.java index bee0a36f..51e1d15a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/SignCalculator.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/SignCalculator.java @@ -52,7 +52,7 @@ public class SignCalculator { if (!isEnabled()) return; GuiEditSign guiEditSign = (GuiEditSign) event.gui; TileEntitySign tileSign = ((AccessorGuiEditSign) guiEditSign).getTileSign(); - if (!tileSign.signText[1].getUnformattedText().equals("^^^^^^^^^^^^^^^")) return; + if (!tileSign.signText[1].getUnformattedText().equals("^^^^^^^^^^^^^^^") && !tileSign.signText[1].getUnformattedText().equals("^^^^^^")) return; refresh(tileSign.signText[0].getUnformattedText()); Utils.drawStringCentered( getRenderedString(), @@ -67,7 +67,7 @@ public class SignCalculator { @SubscribeEvent public void onSignSubmitted(SignSubmitEvent event) { if (!isEnabled()) return; - if (Objects.equals(event.lines[1], "^^^^^^^^^^^^^^^")) { + if (Objects.equals(event.lines[1], "^^^^^^^^^^^^^^^") || Objects.equals(event.lines[1], "^^^^^^")) { refresh(event.lines[0]); if (lastResult != null) { event.lines[0] = lastResult.toPlainString(); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java index 87bab220..e3a2091f 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java @@ -2658,7 +2658,7 @@ public class GuiProfileViewer extends GuiScreen { int magicalPower = PlayerStats.getMagicalPower(inventoryInfo); tooltipToDisplay.add(magicalPower == -1 ? magicalPowerString.append(EnumChatFormatting.RED).append("Error while calculating!").toString() - : magicalPowerString.append(EnumChatFormatting.GOLD).append(Utils.formatNumberWithDots(magicalPower)).toString()); + : magicalPowerString.append(EnumChatFormatting.GOLD).append(numberFormat.format(magicalPower)).toString()); StringBuilder selectedPowerString = new StringBuilder(EnumChatFormatting.DARK_GRAY + "Selected Power: "); String selectedPower = PlayerStats.getSelectedMagicalPower(profile.getProfileInformation(profileId)); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java index 19668019..4ee1f208 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PlayerStats.java @@ -742,6 +742,7 @@ public class PlayerStats { } NBTTagList loreTagList = tag.getCompoundTag("display").getTagList("Lore", 8); + String id = tag.getCompoundTag("ExtraAttributes").getString("id"); String lastElement = loreTagList.getStringTagAt(loreTagList.tagCount() - 1); //strip information that suggests the rarity has been upgraded (obfuscated char) @@ -751,6 +752,16 @@ public class PlayerStats { JsonArray lastElementJsonArray = new JsonArray(); lastElementJsonArray.add(new JsonPrimitive(lastElement)); + if (id.equals("HEGEMONY_ARTIFACT")) { + switch (Utils.getRarityFromLore(lastElementJsonArray)) { + case 4: + powderAmount += 16; + break; + case 5: + powderAmount += 22; + break; + } + } switch (Utils.getRarityFromLore(lastElementJsonArray)) { case 0: case 6: diff --git a/src/main/resources/assets/notenoughupdates/supersecretassets/lunar.png b/src/main/resources/assets/notenoughupdates/supersecretassets/lunar.png new file mode 100644 index 00000000..7de98284 Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/supersecretassets/lunar.png differ -- cgit From 8209ae8cc7dc6476a96547534efe991049e8b49b Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Wed, 20 Jul 2022 13:24:57 +0200 Subject: Added trophy reward overlay (#192) * added trophy reward overlay * (hopefully) fixed infer "no crash" ~ jani * fix efe code Co-authored-by: Lorenz Co-authored-by: nopo --- Update Notes/2.1.md | 5 +- .../notenoughupdates/NotEnoughUpdates.java | 2 + .../notenoughupdates/listener/RenderListener.java | 19 ++ .../miscfeatures/AuctionProfit.java | 7 +- .../miscgui/TrophyRewardOverlay.java | 276 +++++++++++++++++++++ .../options/seperateSections/Fishing.java | 25 ++ .../moulberry/notenoughupdates/util/Constants.java | 2 + .../assets/notenoughupdates/trophy_profit.png | Bin 0 -> 375 bytes 8 files changed, 331 insertions(+), 5 deletions(-) create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/miscgui/TrophyRewardOverlay.java create mode 100644 src/main/resources/assets/notenoughupdates/trophy_profit.png (limited to 'src/main/resources') diff --git a/Update Notes/2.1.md b/Update Notes/2.1.md index 4d43844a..71350dc7 100644 --- a/Update Notes/2.1.md +++ b/Update Notes/2.1.md @@ -98,8 +98,9 @@ - Added an option to only search for Level 100 pets in the auction house search overlay - Lulonaut - [Added an error if you have new tab list off](https://cdn.discordapp.com/attachments/896407218151366687/913681097605398528/unknown.png) - nopo - Added Fishing Timer over bobber - nea89 -- [Auction Profit Viewer Overlay](https://cdn.discordapp.com/attachments/848901833119629332/993191851400101918/176946124-28ddf336-1ec7-460b-b22a-5fe2733b46a3.png) -- +- Added [Auction Profit Viewer Overlay](https://cdn.discordapp.com/attachments/848901833119629332/993191851400101918/176946124-28ddf336-1ec7-460b-b22a-5fe2733b46a3.png) - efefury +- Added Trophy Reward Overlay - hannibal2 + ### **Bug Fixes:** - Fixed wiki pages freezing the entire game - nea89 diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java index 76387844..8c23aa60 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java @@ -58,6 +58,7 @@ import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.Dwarve import io.github.moulberry.notenoughupdates.miscgui.CalendarOverlay; import io.github.moulberry.notenoughupdates.miscgui.InventoryStorageSelector; import io.github.moulberry.notenoughupdates.miscgui.SignCalculator; +import io.github.moulberry.notenoughupdates.miscgui.TrophyRewardOverlay; import io.github.moulberry.notenoughupdates.mixins.AccessorMinecraft; import io.github.moulberry.notenoughupdates.options.NEUConfig; import io.github.moulberry.notenoughupdates.overlays.FuelBar; @@ -285,6 +286,7 @@ public class NotEnoughUpdates { MinecraftForge.EVENT_BUS.register(new RenderListener(this)); MinecraftForge.EVENT_BUS.register(new OldAnimationChecker()); MinecraftForge.EVENT_BUS.register(new SignCalculator()); + MinecraftForge.EVENT_BUS.register(TrophyRewardOverlay.getInstance()); MinecraftForge.EVENT_BUS.register(navigation); if (Minecraft.getMinecraft().getResourceManager() instanceof IReloadableResourceManager) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java index 459a7231..794282f1 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java @@ -46,6 +46,7 @@ import io.github.moulberry.notenoughupdates.miscgui.GuiInvButtonEditor; import io.github.moulberry.notenoughupdates.miscgui.GuiItemRecipe; import io.github.moulberry.notenoughupdates.miscgui.StorageOverlay; import io.github.moulberry.notenoughupdates.miscgui.TradeWindow; +import io.github.moulberry.notenoughupdates.miscgui.TrophyRewardOverlay; import io.github.moulberry.notenoughupdates.mixins.AccessorGuiContainer; import io.github.moulberry.notenoughupdates.options.NEUConfig; import io.github.moulberry.notenoughupdates.overlays.AuctionSearchOverlay; @@ -502,6 +503,12 @@ public class RenderListener { x += 80 + 28; } } + if (TrophyRewardOverlay.inTrophyFishingInventory()) { + int diffX = 162; + if (x > guiLeft + xSize && x < guiLeft + xSize + diffX + 5 && y > guiTop - 18 && y < guiTop + 120) { + x += diffX; + } + } if (AuctionProfit.inAuctionPage()) { if (x + 18 > guiLeft + xSize && x + 18 < guiLeft + xSize + 4 + 28 + 20 && y > guiTop - 180 && y < guiTop + 56) { x -= 68 - 200; @@ -614,6 +621,12 @@ public class RenderListener { x += 80 + 28; } } + if (TrophyRewardOverlay.inTrophyFishingInventory()) { + int diffX = 162; + if (x > guiLeft + xSize && x < guiLeft + xSize + diffX + 5 && y > guiTop - 18 && y < guiTop + 120) { + x += diffX; + } + } if (AuctionProfit.inAuctionPage()) { if (x + 18 > guiLeft + xSize && x + 18 < guiLeft + xSize + 4 + 28 + 20 && y > guiTop - 180 && y < guiTop + 56) { x -= 68 - 200; @@ -1016,6 +1029,12 @@ public class RenderListener { x += 80 + 28; } } + if (TrophyRewardOverlay.inTrophyFishingInventory()) { + int diffX = 162; + if (x > guiLeft + xSize && x < guiLeft + xSize + diffX + 5 && y > guiTop - 18 && y < guiTop + 120) { + x += diffX; + } + } if (AuctionProfit.inAuctionPage()) { if (x + 18 > guiLeft + xSize && x + 18 < guiLeft + xSize + 4 + 28 + 20 && y > guiTop - 180 && y < guiTop + 56) { x -= 68 - 200; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionProfit.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionProfit.java index 03f19bd8..e1024eab 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionProfit.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionProfit.java @@ -20,13 +20,13 @@ package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; -import io.github.moulberry.notenoughupdates.miscfeatures.entityviewer.InvisibleModifier; import io.github.moulberry.notenoughupdates.mixins.AccessorGuiContainer; import io.github.moulberry.notenoughupdates.profileviewer.GuiProfileViewer; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.inventory.GuiChest; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.inventory.Container; import net.minecraft.inventory.ContainerChest; @@ -46,11 +46,12 @@ public class AuctionProfit { @SubscribeEvent public void onDrawBackground(GuiScreenEvent.BackgroundDrawnEvent event) { - if(!inAuctionPage()) return; + if (!inAuctionPage()) return; Minecraft minecraft = Minecraft.getMinecraft(); Container inventoryContainer = minecraft.thePlayer.openContainer; + if (!(Minecraft.getMinecraft().currentScreen instanceof GuiChest)) return; Gui gui = event.gui; int xSize = ((AccessorGuiContainer) gui).getXSize(); int guiLeft = ((AccessorGuiContainer) gui).getGuiLeft(); @@ -172,6 +173,6 @@ public class AuctionProfit { if (!(inventoryContainer instanceof ContainerChest)) return false; ContainerChest containerChest = (ContainerChest) inventoryContainer; return containerChest.getLowerChestInventory().getDisplayName() - .getUnformattedText().equalsIgnoreCase("Manage Auctions"); + .getUnformattedText().equalsIgnoreCase("Manage Auctions"); } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/TrophyRewardOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/TrophyRewardOverlay.java new file mode 100644 index 00000000..df635d5c --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/TrophyRewardOverlay.java @@ -0,0 +1,276 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.miscgui; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.events.RepositoryReloadEvent; +import io.github.moulberry.notenoughupdates.mixins.AccessorGuiContainer; +import io.github.moulberry.notenoughupdates.util.Constants; +import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.inventory.GuiChest; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.ContainerChest; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.GuiScreenEvent; +import net.minecraftforge.event.entity.player.ItemTooltipEvent; +import net.minecraftforge.fml.common.eventhandler.EventPriority; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.lwjgl.opengl.GL11; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +public class TrophyRewardOverlay { + private static TrophyRewardOverlay instance = null; + + private final Map data = new HashMap<>(); + private boolean reloadNeeded = true; + + public static final ResourceLocation trophyProfitImage = + new ResourceLocation("notenoughupdates:trophy_profit.png"); + + public static TrophyRewardOverlay getInstance() { + if (instance == null) { + instance = new TrophyRewardOverlay(); + } + return instance; + } + + /** + * This adds support for the /neureloadrepo command + */ + @SubscribeEvent(priority = EventPriority.LOWEST) + public void reload(RepositoryReloadEvent event) { + reloadNeeded = true; + } + + @SubscribeEvent(priority = EventPriority.LOW) + public void onItemTooltipLow(ItemTooltipEvent event) { + if (!inTrophyFishingInventory()) return; + if (!NotEnoughUpdates.INSTANCE.config.fishing.trophyRewardTooltips) return; + + ItemStack itemStack = event.itemStack; + if (itemStack == null) return; + if (!"§aFillet Trophy Fish".equals(itemStack.getDisplayName())) return; + + event.toolTip.add(4, getToolTip()); + event.toolTip.add(4, ""); + } + + private String getToolTip() { + List line = createText(); + if (line.size() == 1) { + return line.get(0); + } + + return line.get(1); + } + + @SubscribeEvent(priority = EventPriority.LOWEST) + public void onDrawBackground(GuiScreenEvent.BackgroundDrawnEvent event) { + if (!inTrophyFishingInventory()) return; + if (!NotEnoughUpdates.INSTANCE.config.fishing.trophyRewardOverlay) return; + + GuiScreen screen = Minecraft.getMinecraft().currentScreen; + if (!(screen instanceof GuiChest)) return; + Gui gui = event.gui; + int xSize = ((AccessorGuiContainer) gui).getXSize(); + int guiLeft = ((AccessorGuiContainer) gui).getGuiLeft(); + int guiTop = ((AccessorGuiContainer) gui).getGuiTop(); + + List list = createText(); + int removed = 0; + if (list.size() > 11) { + while (list.size() > 10) { + removed++; + list.remove(9); + } + list.add("§8And " + removed + " more.."); + } + renderBasicOverlay(event, guiLeft + xSize + 3, guiTop, list); + } + + private void load() { + data.clear(); + + JsonObject jsonObject = Constants.TROPHYFISH; + if (jsonObject == null) { + return; + } + + String[] tiers = new String[]{"_BRONZE", "_SILVER", "_GOLD", "_DIAMOND"}; + + for (Map.Entry entry : jsonObject.entrySet()) { + String name = entry.getKey(); + + int i = 0; + for (JsonElement element : entry.getValue().getAsJsonArray()) { + int price = element.getAsInt(); + data.put(name + tiers[i], price); + i++; + } + } + } + + private List createText() { + if (reloadNeeded) { + load(); + reloadNeeded = false; + } + + List texts = new ArrayList<>(); + if (data.isEmpty()) { + texts.add("§cNo data in Repo found!"); + return texts; + } + + Map totalAmount = new HashMap<>(); + Map totalExchange = new HashMap<>(); + readInventory(totalAmount, totalExchange); + + int total = totalExchange.values().stream().mapToInt(value -> value).sum(); + texts.add("Trophy Fish Exchange"); + texts.add("Magma Fish: §e" + total); + + for (Map.Entry entry : sortByValue(totalExchange).entrySet()) { + String name = entry.getKey(); + int amount = totalAmount.get(name); + String[] split = name.split(" "); + String rarity = split[split.length - 1]; + name = name.substring(0, name.length() - rarity.length() - 1); + + if (name.length() > 20) { + name = name.substring(0, 18) + ".."; + } + + String rarityColor = rarity.replace("§l", "").substring(0, 2); + texts.add(String.format("%s%dx §r%s§f: §e%d", rarityColor, amount, name, entry.getValue())); + } + + return texts; + } + + private void readInventory(Map totalAmount, Map totalExchange) { + if (Minecraft.getMinecraft().thePlayer.openContainer instanceof ContainerChest) { + + for (Slot slot : Minecraft.getMinecraft().thePlayer.openContainer.inventorySlots) { + if (!slot.getHasStack()) continue; + ItemStack stack = slot.getStack(); + if (stack != null) { + String internalId = NotEnoughUpdates.INSTANCE.manager.getInternalNameForItem(stack); + if (data.containsKey(internalId)) { + String displayName = stack.getDisplayName(); + int stackSize = stack.stackSize; + + int amount = totalAmount.getOrDefault(displayName, 0) + stackSize; + totalAmount.put(displayName, amount); + + int exchangeRate = data.get(internalId); + int exchangeValue = totalExchange.getOrDefault(displayName, 0) + exchangeRate * stackSize; + totalExchange.put(displayName, exchangeValue); + } + } + } + } + } + + //TODO move into utils class maybe? + public static > Map sortByValue(Map map) { + List> list = new ArrayList<>(map.entrySet()); + list.sort(Map.Entry.comparingByValue()); + Collections.reverse(list); + + Map result = new LinkedHashMap<>(); + for (Map.Entry entry : list) { + result.put(entry.getKey(), entry.getValue()); + } + + return result; + } + + private void renderBasicOverlay( + GuiScreenEvent.BackgroundDrawnEvent event, + int x, + int y, + List texts + ) { + + Gui gui = event.gui; + int xSize = ((AccessorGuiContainer) gui).getXSize(); + int guiLeft = ((AccessorGuiContainer) gui).getGuiLeft(); + int guiTop = ((AccessorGuiContainer) gui).getGuiTop(); + Minecraft minecraft = Minecraft.getMinecraft(); + minecraft.getTextureManager().bindTexture(trophyProfitImage); + GL11.glColor4f(1, 1, 1, 1); + GlStateManager.disableLighting(); + + Utils.drawTexturedRect(guiLeft + xSize + 4, guiTop, 158, 128, 0, 1, 0, 1, GL11.GL_NEAREST); + + int a = guiLeft + xSize + 4; + FontRenderer fontRendererObj = minecraft.fontRendererObj; + + //Render first two header lines + int i = 0; + for (String text : texts) { + fontRendererObj.drawString("§8" + text, a + 10, guiTop + 6 + i, -1, false); + i += 10; + if (i == 20) break; + } + + //Render all other lines + i = 25; + int index = 0; + for (String text : texts) { + if (index > 1) { + fontRendererObj.drawString(text, a + 10, guiTop + 6 + i, -1, false); + i += 10; + } else { + index++; + } + } + } + + public static boolean inTrophyFishingInventory() { + if (!NotEnoughUpdates.INSTANCE.isOnSkyblock()) return false; + + Minecraft minecraft = Minecraft.getMinecraft(); + if (minecraft == null || minecraft.thePlayer == null) return false; + + Container inventoryContainer = minecraft.thePlayer.openContainer; + if (!(inventoryContainer instanceof ContainerChest)) return false; + ContainerChest containerChest = (ContainerChest) inventoryContainer; + return containerChest.getLowerChestInventory().getDisplayName() + .getUnformattedText().equalsIgnoreCase("Trophy Fishing"); + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Fishing.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Fishing.java index 513474ca..b6075794 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Fishing.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Fishing.java @@ -273,4 +273,29 @@ public class Fishing { @ConfigAccordionId(id = 6) public boolean fishingSound30Sec = true; + @ConfigOption( + name = "Trophy Reward", + desc = "" + ) + @ConfigEditorAccordion(id = 7) + public boolean trophyReward = false; + + @Expose + @ConfigOption( + name = "Trophy Reward Overlay", + desc = "Displays an overlay at Odger that shows information about your trophies" + ) + @ConfigEditorBoolean + @ConfigAccordionId(id = 7) + public boolean trophyRewardOverlay = true; + + @Expose + @ConfigOption( + name = "Trophy Reward Tooltips", + desc = "Displays the exchange of your trophies as a tooltip in the Odger Inventory" + ) + @ConfigEditorBoolean + @ConfigAccordionId(id = 7) + public boolean trophyRewardTooltips = true; + } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java b/src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java index 3230714a..5279ed73 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Constants.java @@ -69,6 +69,7 @@ public class Constants { public static JsonObject ESSENCECOSTS; public static JsonObject FAIRYSOULS; public static JsonObject REFORGESTONES; + public static JsonObject TROPHYFISH; private static final ReentrantLock lock = new ReentrantLock(); @@ -88,6 +89,7 @@ public class Constants { ESSENCECOSTS = Utils.getConstant("essencecosts", gson); FAIRYSOULS = Utils.getConstant("fairy_souls", gson); REFORGESTONES = Utils.getConstant("reforgestones", gson); + TROPHYFISH = Utils.getConstant("trophyfish", gson); } catch (Exception ex) { ex.printStackTrace(); } finally { diff --git a/src/main/resources/assets/notenoughupdates/trophy_profit.png b/src/main/resources/assets/notenoughupdates/trophy_profit.png new file mode 100644 index 00000000..2965f1dc Binary files /dev/null and b/src/main/resources/assets/notenoughupdates/trophy_profit.png differ -- cgit From dfd2f6b05bce74d7feb5d28e7a388dbb871ecf6a Mon Sep 17 00:00:00 2001 From: Roman / Linnea Gräf Date: Fri, 26 Aug 2022 13:24:35 +0200 Subject: Of course you have pronouns in pv (#234) --- build.gradle.kts | 17 ++ gradle.properties | 4 + .../moulberry/notenoughupdates/BuildFlags.java | 72 +++++ .../notenoughupdates/commands/Commands.java | 2 + .../commands/dev/DevTestCommand.java | 15 ++ .../commands/misc/PronounsCommand.java | 94 +++++++ .../notenoughupdates/core/util/StringUtils.java | 11 + .../options/seperateSections/ProfileViewer.java | 15 +- .../notenoughupdates/profileviewer/BasicPage.java | 294 +++++++++++++-------- .../notenoughupdates/profileviewer/ExtraPage.java | 17 +- .../profileviewer/GuiProfileViewer.java | 169 +++++++----- .../util/AsyncDependencyLoader.java | 55 ++++ .../util/AsyncDependencyLoaderImpl.java | 59 +++++ .../notenoughupdates/util/MinecraftExecutor.java | 37 +++ .../moulberry/notenoughupdates/util/PronounDB.java | 221 ++++++++++++++++ .../moulberry/notenoughupdates/util/Utils.java | 19 +- src/main/resources/pronoundb.jks | Bin 0 -> 1457 bytes 17 files changed, 925 insertions(+), 176 deletions(-) create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/BuildFlags.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/commands/misc/PronounsCommand.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/util/AsyncDependencyLoader.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/util/AsyncDependencyLoaderImpl.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/util/MinecraftExecutor.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/util/PronounDB.java create mode 100644 src/main/resources/pronoundb.jks (limited to 'src/main/resources') diff --git a/build.gradle.kts b/build.gradle.kts index 581816e2..1e0f4873 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -18,6 +18,8 @@ */ import java.io.ByteArrayOutputStream +import java.nio.charset.StandardCharsets +import java.util.* plugins { idea @@ -178,7 +180,22 @@ tasks.remapJar{ } } +val generateBuildFlags by tasks.creating { + outputs.upToDateWhen { false } + val t = layout.buildDirectory.file("buildflags.properties") + outputs.file(t) + val props = project.properties.filter { (name, value) -> name.startsWith("neu.buildflags.") } + doLast { + val p = Properties() + p.putAll(props) + t.get().asFile.writer(StandardCharsets.UTF_8).use { + p.store(it, "Store build time configuration for NEU") + } + } +} + tasks.processResources { + from(generateBuildFlags) filesMatching("mcmod.info") { expand( "version" to project.version, "mcversion" to "1.8.9" diff --git a/gradle.properties b/gradle.properties index 87c0a7c6..f596b2d7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,6 @@ org.gradle.jvmargs=-Xmx2G loom.platform=forge +# NEU Buildflags. Please keep these flags in a commented out form while checked into version control. +# See BuildFlags.java for usages of these values. +# Build with Pronouns in PV by default +# neu.buildflags.pronouns=true diff --git a/src/main/java/io/github/moulberry/notenoughupdates/BuildFlags.java b/src/main/java/io/github/moulberry/notenoughupdates/BuildFlags.java new file mode 100644 index 00000000..d997d980 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/BuildFlags.java @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates; + +import java.io.IOException; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +/** + * For storage of compile-time configuration flags + */ +public class BuildFlags { + + private static final Properties properties = new Properties(); + + static { + try { + properties.load(BuildFlags.class.getResourceAsStream("/buildflags.properties")); + } catch (IOException | NullPointerException e) { + System.out.println("Failed to load build properties: " + e); + } + } + + private static boolean getBuildFlag(String flag) { + return Boolean.parseBoolean(properties.getProperty("neu.buildflags." + flag)); + } + + public static Map getAllFlags() { + return Holder.ALL_FLAGS; + } + + public static final boolean ENABLE_PRONOUNS_IN_PV_BY_DEFAULT = getBuildFlag("pronouns"); + + private static class Holder { + static Map ALL_FLAGS = new HashMap<>(); + + static { + for (Field declaredField : BuildFlags.class.getDeclaredFields()) { + if (Boolean.TYPE.equals(declaredField.getType()) + && (declaredField.getModifiers() & Modifier.STATIC) != 0) { + try { + declaredField.setAccessible(true); + ALL_FLAGS.put(declaredField.getName(), (Boolean) declaredField.get(null)); + } catch (IllegalAccessException | ClassCastException | SecurityException e) { + System.err.println("Failed to access BuildFlag: " + e); + } + } + } + } + } + +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java index 917185ab..fcb2aaf9 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java @@ -42,6 +42,7 @@ import io.github.moulberry.notenoughupdates.commands.misc.CalculatorCommand; import io.github.moulberry.notenoughupdates.commands.misc.CalendarCommand; import io.github.moulberry.notenoughupdates.commands.misc.CosmeticsCommand; import io.github.moulberry.notenoughupdates.commands.misc.CustomizeCommand; +import io.github.moulberry.notenoughupdates.commands.misc.PronounsCommand; import io.github.moulberry.notenoughupdates.commands.misc.UpdateCommand; import io.github.moulberry.notenoughupdates.commands.profile.CataCommand; import io.github.moulberry.notenoughupdates.commands.profile.PeekCommand; @@ -97,6 +98,7 @@ public class Commands { ClientCommandHandler.instance.registerCommand(new CalculatorCommand()); ClientCommandHandler.instance.registerCommand(new CalendarCommand()); ClientCommandHandler.instance.registerCommand(new UpdateCommand(NotEnoughUpdates.INSTANCE)); + ClientCommandHandler.instance.registerCommand(new PronounsCommand()); // Fairy Soul Commands ClientCommandHandler.instance.registerCommand(new FairySouls.FairySoulsCommand()); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java index 7cca9d3b..fdf59bb0 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/DevTestCommand.java @@ -19,6 +19,7 @@ package io.github.moulberry.notenoughupdates.commands.dev; +import io.github.moulberry.notenoughupdates.BuildFlags; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.commands.ClientCommandBase; import io.github.moulberry.notenoughupdates.core.config.GuiPositionEditor; @@ -27,6 +28,7 @@ import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.Custom import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.LocationChangeEvent; import io.github.moulberry.notenoughupdates.miscfeatures.customblockzones.SpecialBlockZone; import io.github.moulberry.notenoughupdates.miscgui.GuiPriceGraph; +import io.github.moulberry.notenoughupdates.util.PronounDB; import io.github.moulberry.notenoughupdates.util.SBInfo; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; @@ -40,6 +42,7 @@ import net.minecraftforge.common.MinecraftForge; import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; public class DevTestCommand extends ClientCommandBase { @@ -118,6 +121,14 @@ public class DevTestCommand extends ClientCommandBase { " with the mode " + gamemode)); } + if (args.length >= 1 && args[0].equalsIgnoreCase("buildflags")) { + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText( + "BuildFlags: \n" + + BuildFlags.getAllFlags().entrySet().stream() + .map(it -> " + " + it.getKey() + " - " + it.getValue()) + .collect(Collectors.joining("\n")))); + return; + } if (args.length >= 1 && args[0].equalsIgnoreCase("pricetest")) { if (args.length == 1) { NotEnoughUpdates.INSTANCE.manager.auctionManager.updateBazaar(); @@ -163,6 +174,10 @@ public class DevTestCommand extends ClientCommandBase { "I would never search")); return; } + if (args.length == 1 && args[0].equalsIgnoreCase("bluehair")) { + PronounDB.test(); + return; + } if (args.length == 2 && args[0].equalsIgnoreCase("openGui")) { try { NotEnoughUpdates.INSTANCE.openGui = (GuiScreen) Class.forName(args[1]).newInstance(); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/PronounsCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/PronounsCommand.java new file mode 100644 index 00000000..6d0ee88d --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/PronounsCommand.java @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.commands.misc; + +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.commands.ClientCommandBase; +import io.github.moulberry.notenoughupdates.util.MinecraftExecutor; +import io.github.moulberry.notenoughupdates.util.PronounDB; +import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.gui.GuiNewChat; +import net.minecraft.command.CommandException; +import net.minecraft.command.ICommandSender; +import net.minecraft.util.ChatComponentText; + +import java.util.Optional; +import java.util.Random; +import java.util.UUID; +import java.util.concurrent.CompletableFuture; + +public class PronounsCommand extends ClientCommandBase { + public PronounsCommand() { + super("neupronouns"); + } + + @Override + public String getCommandUsage(ICommandSender sender) { + return "/neupronouns [platform]"; + } + + @Override + public void processCommand(ICommandSender sender, String[] args) throws CommandException { + switch (args.length) { + case 1: + fetchPronouns("minecraft", args[0]); + break; + case 2: + fetchPronouns(args[1], args[0]); + break; + default: + sender.addChatMessage(new ChatComponentText("§4" + getCommandUsage(sender))); + } + } + + private void fetchPronouns(String platform, String user) { + GuiNewChat nc = Minecraft.getMinecraft().ingameGUI.getChatGUI(); + int id = new Random().nextInt(); + nc.printChatMessageWithOptionalDeletion(new ChatComponentText("§e[NEU] Fetching Pronouns..."), id); + + CompletableFuture> pronouns; + if ("minecraft".equals(platform)) { + CompletableFuture c = new CompletableFuture<>(); + NotEnoughUpdates.profileViewer.getPlayerUUID(user, uuidString -> { + if (uuidString == null) { + c.completeExceptionally(new NullPointerException()); + } else { + c.complete(Utils.parseDashlessUUID(uuidString)); + } + }); + pronouns = c.thenApplyAsync(PronounDB::getPronounsFor); + } else { + pronouns = CompletableFuture.supplyAsync(() -> PronounDB.getPronounsFor(platform, user)); + } + pronouns.handleAsync((pronounChoice, throwable) -> { + if (throwable != null || !pronounChoice.isPresent()) { + nc.printChatMessageWithOptionalDeletion(new ChatComponentText("§e[NEU] §4Failed to fetch pronouns."), id); + return null; + } + PronounDB.PronounChoice betterPronounChoice = pronounChoice.get(); + nc.printChatMessageWithOptionalDeletion(new ChatComponentText("§e[NEU] Pronouns for §b" + user + " §eon §b" + platform + "§e:"), id); + betterPronounChoice.render().forEach(it -> nc.printChatMessage(new ChatComponentText("§e[NEU] §a" + it))); + return null; + }, MinecraftExecutor.INSTANCE); + + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/util/StringUtils.java b/src/main/java/io/github/moulberry/notenoughupdates/core/util/StringUtils.java index d52f9ba1..ecb4cd8b 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/util/StringUtils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/util/StringUtils.java @@ -23,6 +23,9 @@ import com.google.common.collect.Sets; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.Set; public class StringUtils { @@ -63,4 +66,12 @@ public class StringUtils { str = str.replace(",", ""); return Integer.parseInt(str); } + + public static String urlEncode(String something) { + try { + return URLEncoder.encode(something, StandardCharsets.UTF_8.name()); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); // UTF 8 should always be present + } + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ProfileViewer.java index ee1abf46..673e1015 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/ProfileViewer.java @@ -20,7 +20,12 @@ package io.github.moulberry.notenoughupdates.options.seperateSections; import com.google.gson.annotations.Expose; -import io.github.moulberry.notenoughupdates.core.config.annotations.*; +import io.github.moulberry.notenoughupdates.BuildFlags; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorButton; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorDraggableList; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorFSR; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; import java.util.ArrayList; import java.util.Arrays; @@ -81,4 +86,12 @@ public class ProfileViewer { ) @ConfigEditorBoolean public boolean alwaysShowBingoTab = false; + + @Expose + @ConfigOption( + name = "Show Pronouns in /pv", + desc = "Shows the pronouns of a player in /pv. Data sourced from pronoundb.org" + ) + @ConfigEditorBoolean + public boolean showPronounsInPv = BuildFlags.ENABLE_PRONOUNS_IN_PV_BY_DEFAULT; } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BasicPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BasicPage.java index 30ffcdd9..dcbcb9e4 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BasicPage.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BasicPage.java @@ -19,8 +19,6 @@ package io.github.moulberry.notenoughupdates.profileviewer; -import static io.github.moulberry.notenoughupdates.util.Utils.roundToNearestInt; - import com.google.common.base.Splitter; import com.google.gson.JsonArray; import com.google.gson.JsonElement; @@ -30,17 +28,9 @@ import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.profileviewer.weight.lily.LilyWeight; import io.github.moulberry.notenoughupdates.profileviewer.weight.senither.SenitherWeight; import io.github.moulberry.notenoughupdates.util.Constants; +import io.github.moulberry.notenoughupdates.util.PronounDB; import io.github.moulberry.notenoughupdates.util.SBInfo; import io.github.moulberry.notenoughupdates.util.Utils; -import java.awt.*; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.ThreadPoolExecutor; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityOtherPlayerMP; import net.minecraft.client.gui.FontRenderer; @@ -63,6 +53,19 @@ import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL14; +import java.awt.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.UUID; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ThreadPoolExecutor; + +import static io.github.moulberry.notenoughupdates.util.Utils.roundToNearestInt; + public class BasicPage extends GuiProfileViewerPage { private static final ResourceLocation pv_basic = new ResourceLocation("notenoughupdates:pv_basic.png"); @@ -117,7 +120,8 @@ public class BasicPage extends GuiProfileViewerPage { String panoramaIdentifier = "day"; if (SBInfo.getInstance().currentTimeDate != null) { - if (SBInfo.getInstance().currentTimeDate.getHours() <= 6 || SBInfo.getInstance().currentTimeDate.getHours() >= 20) { + if (SBInfo.getInstance().currentTimeDate.getHours() <= 6 || + SBInfo.getInstance().currentTimeDate.getHours() >= 20) { panoramaIdentifier = "night"; } } @@ -133,19 +137,36 @@ public class BasicPage extends GuiProfileViewerPage { Panorama.getPanoramasForLocation(location == null ? "unknown" : location, panoramaIdentifier) ); + if (Utils.isWithinRect(mouseX, mouseY, guiLeft + 23, guiTop + 44, 81, 108)) { + Optional pronounChoice = + GuiProfileViewer.pronouns + .peekValue() + .flatMap(it -> it); // Flatten: First optional is whether it loaded, second optional is whether it was successful + if (pronounChoice.isPresent()) { + PronounDB.PronounChoice pronouns = pronounChoice.get(); + if (pronouns.isConsciousChoice()) { + getInstance().tooltipToDisplay = pronouns.render(); + } + } + } + Minecraft.getMinecraft().getTextureManager().bindTexture(pv_basic); Utils.drawTexturedRect(guiLeft, guiTop, getInstance().sizeX, getInstance().sizeY, GL11.GL_NEAREST); if (entityPlayer != null && profile.getHypixelProfile() != null) { String playerName = null; if (profile.getHypixelProfile().has("prefix")) { - playerName = Utils.getElementAsString(profile.getHypixelProfile().get("prefix"), "") + " " + entityPlayer.getName(); + playerName = Utils.getElementAsString(profile.getHypixelProfile().get("prefix"), "") + " " + + entityPlayer.getName(); } else { String rank = Utils.getElementAsString( profile.getHypixelProfile().get("rank"), Utils.getElementAsString(profile.getHypixelProfile().get("newPackageRank"), "NONE") ); - String monthlyPackageRank = Utils.getElementAsString(profile.getHypixelProfile().get("monthlyPackageRank"), "NONE"); + String monthlyPackageRank = Utils.getElementAsString( + profile.getHypixelProfile().get("monthlyPackageRank"), + "NONE" + ); if (!rank.equals("YOUTUBER") && !monthlyPackageRank.equals("NONE")) { rank = monthlyPackageRank; } @@ -191,7 +212,13 @@ public class BasicPage extends GuiProfileViewerPage { int x = guiLeft + 63; int y = guiTop + 54; - GuiScreen.drawRect(x - halfRankPrefixLen - 1, y - 1, x + halfRankPrefixLen + 1, y + 8, new Color(0, 0, 0, 64).getRGB()); + GuiScreen.drawRect( + x - halfRankPrefixLen - 1, + y - 1, + x + halfRankPrefixLen + 1, + y + 8, + new Color(0, 0, 0, 64).getRGB() + ); fr.drawString(playerName, x - halfRankPrefixLen, y, 0, true); } @@ -200,7 +227,8 @@ public class BasicPage extends GuiProfileViewerPage { long networth = profile.getNetWorth(profileId); if (networth > 0) { Utils.drawStringCentered( - EnumChatFormatting.GREEN + "Net Worth: " + EnumChatFormatting.GOLD + GuiProfileViewer.numberFormat.format(networth), + EnumChatFormatting.GREEN + "Net Worth: " + EnumChatFormatting.GOLD + + GuiProfileViewer.numberFormat.format(networth), fr, guiLeft + 63, guiTop + 38, @@ -211,31 +239,38 @@ public class BasicPage extends GuiProfileViewerPage { double networthInCookies = ( networth / - NotEnoughUpdates.INSTANCE.manager.auctionManager.getBazaarInfo("BOOSTER_COOKIE").get("avg_buy").getAsDouble() + NotEnoughUpdates.INSTANCE.manager.auctionManager + .getBazaarInfo("BOOSTER_COOKIE") + .get("avg_buy") + .getAsDouble() ); String networthIRLMoney = Long.toString(Math.round(((networthInCookies * 325) / 675) * 4.99)); if ( mouseX > guiLeft + 8 && - mouseX < guiLeft + 8 + fr.getStringWidth("Net Worth: " + GuiProfileViewer.numberFormat.format(networth)) + mouseX < guiLeft + 8 + fr.getStringWidth("Net Worth: " + GuiProfileViewer.numberFormat.format(networth)) ) { if (mouseY > guiTop + 32 && mouseY < guiTop + 32 + fr.FONT_HEIGHT) { getInstance().tooltipToDisplay = new ArrayList<>(); getInstance() .tooltipToDisplay.add( EnumChatFormatting.GREEN + - "Net worth in IRL money: " + - EnumChatFormatting.DARK_GREEN + - "$" + - EnumChatFormatting.GOLD + - networthIRLMoney + "Net worth in IRL money: " + + EnumChatFormatting.DARK_GREEN + + "$" + + EnumChatFormatting.GOLD + + networthIRLMoney ); getInstance().tooltipToDisplay.add(""); if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { getInstance().tooltipToDisplay.add(EnumChatFormatting.RED + "This is calculated using the current"); - getInstance().tooltipToDisplay.add(EnumChatFormatting.RED + "price of booster cookies on bazaar and the price"); - getInstance().tooltipToDisplay.add(EnumChatFormatting.RED + "for cookies using gems, then the price of gems"); - getInstance().tooltipToDisplay.add(EnumChatFormatting.RED + "is where we get the amount of IRL money you"); - getInstance().tooltipToDisplay.add(EnumChatFormatting.RED + "theoretically have on skyblock in net worth."); + getInstance().tooltipToDisplay.add( + EnumChatFormatting.RED + "price of booster cookies on bazaar and the price"); + getInstance().tooltipToDisplay.add( + EnumChatFormatting.RED + "for cookies using gems, then the price of gems"); + getInstance().tooltipToDisplay.add( + EnumChatFormatting.RED + "is where we get the amount of IRL money you"); + getInstance().tooltipToDisplay.add( + EnumChatFormatting.RED + "theoretically have on skyblock in net worth."); } else { getInstance().tooltipToDisplay.add(EnumChatFormatting.GRAY + "[SHIFT for Info]"); } @@ -245,7 +280,8 @@ public class BasicPage extends GuiProfileViewerPage { } } } - } catch (Exception ignored) {} + } catch (Exception ignored) { + } } if (status != null) { @@ -261,9 +297,17 @@ public class BasicPage extends GuiProfileViewerPage { NotEnoughUpdates.INSTANCE.manager.getItemInformation().get("POTATO_CROWN") ); potato_crown.addEnchantment(Enchantment.unbreaking, 1656638942); // this number may be useful - Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(new ItemStack(Items.potato), guiLeft + 35, guiTop + 160); + Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI( + new ItemStack(Items.potato), + guiLeft + 35, + guiTop + 160 + ); Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(potato_crown, guiLeft + 50, guiTop + 162); - Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI(new ItemStack(Items.potato), guiLeft + 63, guiTop + 160); + Minecraft.getMinecraft().getRenderItem().renderItemIntoGUI( + new ItemStack(Items.potato), + guiLeft + 63, + guiTop + 160 + ); } else if (online) { locationStr = NotEnoughUpdates.INSTANCE.navigation.getNameForAreaModeOrUnknown(location); } @@ -370,7 +414,8 @@ public class BasicPage extends GuiProfileViewerPage { }, false ); - } catch (Exception ignored) {} + } catch (Exception ignored) { + } } GlStateManager.color(1, 1, 1, 1); @@ -388,9 +433,9 @@ public class BasicPage extends GuiProfileViewerPage { int x = guiLeft + 20; float y = guiTop + - 82 + - 15 * - (float) Math.sin(((getInstance().currentTime - getInstance().startTime) / 800f) % (2 * Math.PI)); + 82 + + 15 * + (float) Math.sin(((getInstance().currentTime - getInstance().startTime) / 800f) % (2 * Math.PI)); GlStateManager.translate(x, y, 0); ItemStack stack = NotEnoughUpdates.INSTANCE.manager.jsonToStack(item, false); @@ -410,7 +455,14 @@ public class BasicPage extends GuiProfileViewerPage { } } if (entityPlayer != null) { - drawEntityOnScreen(guiLeft + 63, guiTop + 128 + 7, 36, guiLeft + 63 - mouseX, guiTop + 129 - mouseY, entityPlayer); + drawEntityOnScreen( + guiLeft + 63, + guiTop + 128 + 7, + 36, + guiLeft + 63 - mouseX, + guiTop + 129 - mouseY, + entityPlayer + ); } PlayerStats.Stats stats = profile.getStats(profileId); @@ -426,7 +478,12 @@ public class BasicPage extends GuiProfileViewerPage { GlStateManager.color(1, 1, 1, 1); GlStateManager.enableBlend(); - GL14.glBlendFuncSeparate(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 + ); Utils.renderAlignedString( statNamePretty, EnumChatFormatting.WHITE.toString() + val, @@ -445,49 +502,49 @@ public class BasicPage extends GuiProfileViewerPage { getInstance() .tooltipToDisplay.add( EnumChatFormatting.GRAY + - "Base " + - split.get(1) + - ": " + - EnumChatFormatting.GREEN + - base + - " " + - split.get(0) + "Base " + + split.get(1) + + ": " + + EnumChatFormatting.GREEN + + base + + " " + + split.get(0) ); int passive = Math.round(profile.getPassiveStats(profileId).get(statName) - baseStats.get(statName)); getInstance() .tooltipToDisplay.add( EnumChatFormatting.GRAY + - "Passive " + - split.get(1) + - " Bonus: +" + - EnumChatFormatting.YELLOW + - passive + - " " + - split.get(0) + "Passive " + + split.get(1) + + " Bonus: +" + + EnumChatFormatting.YELLOW + + passive + + " " + + split.get(0) ); int itemBonus = Math.round(stats.get(statName) - profile.getPassiveStats(profileId).get(statName)); getInstance() .tooltipToDisplay.add( EnumChatFormatting.GRAY + - "Item " + - split.get(1) + - " Bonus: +" + - EnumChatFormatting.DARK_PURPLE + - itemBonus + - " " + - split.get(0) + "Item " + + split.get(1) + + " Bonus: +" + + EnumChatFormatting.DARK_PURPLE + + itemBonus + + " " + + split.get(0) ); int finalStat = Math.round(stats.get(statName)); getInstance() .tooltipToDisplay.add( EnumChatFormatting.GRAY + - "Final " + - split.get(1) + - ": +" + - EnumChatFormatting.RED + - finalStat + - " " + - split.get(0) + "Final " + + split.get(1) + + ": +" + + EnumChatFormatting.RED + + finalStat + + " " + + split.get(0) ); } } @@ -551,17 +608,18 @@ public class BasicPage extends GuiProfileViewerPage { getInstance().tooltipToDisplay = new ArrayList<>(); getInstance().tooltipToDisplay.add(skillName); if (skyblockInfo.get(entry.getKey()).maxed) { - getInstance().tooltipToDisplay.add(EnumChatFormatting.GRAY + "Progress: " + EnumChatFormatting.GOLD + "MAXED!"); + getInstance().tooltipToDisplay.add( + EnumChatFormatting.GRAY + "Progress: " + EnumChatFormatting.GOLD + "MAXED!"); } else { int maxXp = (int) skyblockInfo.get(entry.getKey()).maxXpForLevel; getInstance() .tooltipToDisplay.add( EnumChatFormatting.GRAY + - "Progress: " + - EnumChatFormatting.DARK_PURPLE + - GuiProfileViewer.shortNumberFormat(Math.round((level % 1) * maxXp), 0) + - "/" + - GuiProfileViewer.shortNumberFormat(maxXp, 0) + "Progress: " + + EnumChatFormatting.DARK_PURPLE + + GuiProfileViewer.shortNumberFormat(Math.round((level % 1) * maxXp), 0) + + "/" + + GuiProfileViewer.shortNumberFormat(maxXp, 0) ); } String totalXpS = GuiProfileViewer.numberFormat.format((int) skyblockInfo.get(entry.getKey()).totalXp); @@ -605,23 +663,29 @@ public class BasicPage extends GuiProfileViewerPage { return ( uuidStr.substring(0, 8) + - "-" + - uuidStr.substring(8, 12) + - "-" + - uuidStr.substring(12, 16) + - "-" + - uuidStr.substring(16, 20) + - "-" + - uuidStr.substring(20, 32) + "-" + + uuidStr.substring(8, 12) + + "-" + + uuidStr.substring(12, 16) + + "-" + + uuidStr.substring(16, 20) + + "-" + + uuidStr.substring(20, 32) ); } - private void renderWeight(int mouseX, int mouseY, Map skyblockInfo, JsonObject profileInfo) { + private void renderWeight( + int mouseX, + int mouseY, + Map skyblockInfo, + JsonObject profileInfo + ) { if (skyblockInfo == null) { return; } - if (Constants.WEIGHT == null || Utils.getElement(Constants.WEIGHT, "lily.skills.overall") == null || !Utils.getElement(Constants.WEIGHT, "lily.skills.overall").isJsonPrimitive()) { + if (Constants.WEIGHT == null || Utils.getElement(Constants.WEIGHT, "lily.skills.overall") == null || + !Utils.getElement(Constants.WEIGHT, "lily.skills.overall").isJsonPrimitive()) { Utils.showOutdatedRepoNotification(); return; } @@ -635,9 +699,9 @@ public class BasicPage extends GuiProfileViewerPage { Utils.drawStringCentered( EnumChatFormatting.GREEN + - "Senither Weight: " + - EnumChatFormatting.GOLD + - GuiProfileViewer.numberFormat.format(roundToNearestInt(senitherWeight.getTotalWeight().getRaw())), + "Senither Weight: " + + EnumChatFormatting.GOLD + + GuiProfileViewer.numberFormat.format(roundToNearestInt(senitherWeight.getTotalWeight().getRaw())), fr, guiLeft + 63, guiTop + 18, @@ -646,7 +710,8 @@ public class BasicPage extends GuiProfileViewerPage { ); int textWidth = fr.getStringWidth( - "Senither Weight: " + GuiProfileViewer.numberFormat.format(roundToNearestInt(senitherWeight.getTotalWeight().getRaw())) + "Senither Weight: " + + GuiProfileViewer.numberFormat.format(roundToNearestInt(senitherWeight.getTotalWeight().getRaw())) ); if (mouseX > guiLeft + 63 - textWidth / 2 && mouseX < guiLeft + 63 + textWidth / 2) { if (mouseY > guiTop + 12 && mouseY < guiTop + 12 + fr.FONT_HEIGHT) { @@ -654,34 +719,40 @@ public class BasicPage extends GuiProfileViewerPage { getInstance() .tooltipToDisplay.add( EnumChatFormatting.GREEN + - "Skills: " + - EnumChatFormatting.GOLD + - GuiProfileViewer.numberFormat.format(roundToNearestInt(senitherWeight.getSkillsWeight().getWeightStruct().getRaw())) + "Skills: " + + EnumChatFormatting.GOLD + + GuiProfileViewer.numberFormat.format(roundToNearestInt(senitherWeight + .getSkillsWeight() + .getWeightStruct() + .getRaw())) ); getInstance() .tooltipToDisplay.add( EnumChatFormatting.GREEN + - "Slayer: " + - EnumChatFormatting.GOLD + - GuiProfileViewer.numberFormat.format(roundToNearestInt(senitherWeight.getSlayerWeight().getWeightStruct().getRaw())) + "Slayer: " + + EnumChatFormatting.GOLD + + GuiProfileViewer.numberFormat.format(roundToNearestInt(senitherWeight + .getSlayerWeight() + .getWeightStruct() + .getRaw())) ); getInstance() .tooltipToDisplay.add( EnumChatFormatting.GREEN + - "Dungeons: " + - EnumChatFormatting.GOLD + - GuiProfileViewer.numberFormat.format( - roundToNearestInt(senitherWeight.getDungeonsWeight().getWeightStruct().getRaw()) - ) + "Dungeons: " + + EnumChatFormatting.GOLD + + GuiProfileViewer.numberFormat.format( + roundToNearestInt(senitherWeight.getDungeonsWeight().getWeightStruct().getRaw()) + ) ); } } Utils.drawStringCentered( EnumChatFormatting.GREEN + - "Lily Weight: " + - EnumChatFormatting.GOLD + - GuiProfileViewer.numberFormat.format(roundToNearestInt(lilyWeight.getTotalWeight().getRaw())), + "Lily Weight: " + + EnumChatFormatting.GOLD + + GuiProfileViewer.numberFormat.format(roundToNearestInt(lilyWeight.getTotalWeight().getRaw())), fr, guiLeft + 63, guiTop + 28, @@ -698,23 +769,32 @@ public class BasicPage extends GuiProfileViewerPage { getInstance() .tooltipToDisplay.add( EnumChatFormatting.GREEN + - "Skills: " + - EnumChatFormatting.GOLD + - GuiProfileViewer.numberFormat.format(roundToNearestInt(lilyWeight.getSkillsWeight().getWeightStruct().getRaw())) + "Skills: " + + EnumChatFormatting.GOLD + + GuiProfileViewer.numberFormat.format(roundToNearestInt(lilyWeight + .getSkillsWeight() + .getWeightStruct() + .getRaw())) ); getInstance() .tooltipToDisplay.add( EnumChatFormatting.GREEN + - "Slayer: " + - EnumChatFormatting.GOLD + - GuiProfileViewer.numberFormat.format(roundToNearestInt(lilyWeight.getSlayerWeight().getWeightStruct().getRaw())) + "Slayer: " + + EnumChatFormatting.GOLD + + GuiProfileViewer.numberFormat.format(roundToNearestInt(lilyWeight + .getSlayerWeight() + .getWeightStruct() + .getRaw())) ); getInstance() .tooltipToDisplay.add( EnumChatFormatting.GREEN + - "Dungeons: " + - EnumChatFormatting.GOLD + - GuiProfileViewer.numberFormat.format(roundToNearestInt(lilyWeight.getDungeonsWeight().getWeightStruct().getRaw())) + "Dungeons: " + + EnumChatFormatting.GOLD + + GuiProfileViewer.numberFormat.format(roundToNearestInt(lilyWeight + .getDungeonsWeight() + .getWeightStruct() + .getRaw())) ); } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ExtraPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ExtraPage.java index 758ea6e8..3cbd944d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ExtraPage.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ExtraPage.java @@ -22,7 +22,9 @@ package io.github.moulberry.notenoughupdates.profileviewer; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.util.Constants; +import io.github.moulberry.notenoughupdates.util.PronounDB; import io.github.moulberry.notenoughupdates.util.Utils; import java.time.Instant; import java.time.LocalDateTime; @@ -32,6 +34,7 @@ import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Set; import java.util.TimeZone; import java.util.TreeMap; @@ -113,9 +116,10 @@ public class ExtraPage extends GuiProfileViewerPage { ); } } + JsonObject guildInfo = profile.getGuildInformation(null); + boolean shouldRenderGuild = guildInfo != null && guildInfo.has("name"); { - JsonObject guildInfo = profile.getGuildInformation(null); - if (guildInfo != null && guildInfo.has("name")) { + if (shouldRenderGuild) { Utils.renderAlignedString( EnumChatFormatting.AQUA + "Guild", EnumChatFormatting.WHITE + guildInfo.get("name").getAsString(), @@ -125,6 +129,15 @@ public class ExtraPage extends GuiProfileViewerPage { ); } } + { + GuiProfileViewer.pronouns.peekValue().flatMap(it -> it).ifPresent(choice -> Utils.renderAlignedString( + EnumChatFormatting.GREEN + "Pronouns", + EnumChatFormatting.WHITE + String.join(" / ", choice.render()), + guiLeft + xStart, + guiTop + yStartTop + yOffset * (shouldRenderGuild ? 5 : 4), + 76 + )); + } float fairySouls = Utils.getElementAsFloat(Utils.getElement(profileInfo, "fairy_souls_collected"), 0); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java index 09eed1cf..59373952 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java @@ -19,7 +19,6 @@ package io.github.moulberry.notenoughupdates.profileviewer; -import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @@ -29,7 +28,9 @@ import io.github.moulberry.notenoughupdates.itemeditor.GuiElementTextField; import io.github.moulberry.notenoughupdates.miscfeatures.PetInfoOverlay; import io.github.moulberry.notenoughupdates.profileviewer.bestiary.BestiaryPage; import io.github.moulberry.notenoughupdates.profileviewer.trophy.TrophyFishPage; +import io.github.moulberry.notenoughupdates.util.AsyncDependencyLoader; import io.github.moulberry.notenoughupdates.util.Constants; +import io.github.moulberry.notenoughupdates.util.PronounDB; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityOtherPlayerMP; @@ -53,6 +54,7 @@ import org.lwjgl.opengl.GL14; import org.lwjgl.opengl.GL20; import java.awt.*; +import java.io.File; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; @@ -63,6 +65,8 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Optional; +import java.util.UUID; +import java.util.concurrent.CompletableFuture; public class GuiProfileViewer extends GuiScreen { @@ -73,69 +77,72 @@ public class GuiProfileViewer extends GuiScreen { public static final ResourceLocation pv_bingo = new ResourceLocation("notenoughupdates:pv_bingo.png"); public static final ResourceLocation pv_stranded = new ResourceLocation("notenoughupdates:pv_stranded.png"); public static final ResourceLocation pv_unknown = new ResourceLocation("notenoughupdates:pv_unknown.png"); - public static final ResourceLocation resource_packs = new ResourceLocation("minecraft:textures/gui/resource_packs.png"); + public static final ResourceLocation resource_packs = + new ResourceLocation("minecraft:textures/gui/resource_packs.png"); public static final ResourceLocation icons = new ResourceLocation("textures/gui/icons.png"); - public static final HashMap> PET_STAT_BOOSTS = new HashMap>() { - { - put( - "PET_ITEM_BIG_TEETH_COMMON", - new HashMap() { - { - put("CRIT_CHANCE", 5f); + public static final HashMap> PET_STAT_BOOSTS = + new HashMap>() { + { + put( + "PET_ITEM_BIG_TEETH_COMMON", + new HashMap() { + { + put("CRIT_CHANCE", 5f); + } } - } - ); - put( - "PET_ITEM_HARDENED_SCALES_UNCOMMON", - new HashMap() { - { - put("DEFENCE", 25f); + ); + put( + "PET_ITEM_HARDENED_SCALES_UNCOMMON", + new HashMap() { + { + put("DEFENCE", 25f); + } } - } - ); - put( - "PET_ITEM_LUCKY_CLOVER", - new HashMap() { - { - put("MAGIC_FIND", 7f); + ); + put( + "PET_ITEM_LUCKY_CLOVER", + new HashMap() { + { + put("MAGIC_FIND", 7f); + } } - } - ); - put( - "PET_ITEM_SHARPENED_CLAWS_UNCOMMON", - new HashMap() { - { - put("CRIT_DAMAGE", 15f); + ); + put( + "PET_ITEM_SHARPENED_CLAWS_UNCOMMON", + new HashMap() { + { + put("CRIT_DAMAGE", 15f); + } } - } - ); - } - }; - public static final HashMap> PET_STAT_BOOSTS_MULT = new HashMap>() { - { - put( - "PET_ITEM_IRON_CLAWS_COMMON", - new HashMap() { - { - put("CRIT_DAMAGE", 1.4f); - put("CRIT_CHANCE", 1.4f); + ); + } + }; + public static final HashMap> PET_STAT_BOOSTS_MULT = + new HashMap>() { + { + put( + "PET_ITEM_IRON_CLAWS_COMMON", + new HashMap() { + { + put("CRIT_DAMAGE", 1.4f); + put("CRIT_CHANCE", 1.4f); + } } - } - ); - put( - "PET_ITEM_TEXTBOOK", - new HashMap() { - { - put("INTELLIGENCE", 2f); + ); + put( + "PET_ITEM_TEXTBOOK", + new HashMap() { + { + put("INTELLIGENCE", 2f); + } } - } - ); - } - }; + ); + } + }; public static final NumberFormat numberFormat = NumberFormat.getInstance(Locale.US); - private static final char[] c = new char[] { 'k', 'm', 'b', 't' }; + private static final char[] c = new char[]{'k', 'm', 'b', 't'}; public static ProfileViewerPage currentPage = ProfileViewerPage.BASIC; public static HashMap MINION_RARITY_TO_NUM = new HashMap() { { @@ -151,6 +158,14 @@ public class GuiProfileViewer extends GuiScreen { private static int guiTop; private static ProfileViewer.Profile profile; private static String profileId = null; + public static AsyncDependencyLoader> pronouns = + AsyncDependencyLoader.withEqualsInvocation( + () -> + NotEnoughUpdates.INSTANCE.config.profileViewer.showPronounsInPv + ? Optional.ofNullable(profile).map(it -> Utils.parseDashlessUUID(it.getUuid())) + : Optional.empty(), + uuid -> CompletableFuture.supplyAsync(() -> uuid.flatMap(PronounDB::getPronounsFor)) + ); public final GuiElementTextField playerNameTextField; public final GuiElementTextField inventoryTextField = new GuiElementTextField("", GuiElementTextField.SCALE_TEXT); private final Map pages = new HashMap<>(); @@ -268,7 +283,6 @@ public class GuiProfileViewer extends GuiScreen { return levelObj; } - public static String shortNumberFormat(double n, int iteration) { if (n < 1000) { if (n % 1 == 0) { @@ -280,7 +294,10 @@ public class GuiProfileViewer extends GuiScreen { double d = ((long) n / 100) / 10.0; boolean isRound = (d * 10) % 10 == 0; - return d < 1000 ? (isRound || d > 9.99 ? (int) d * 10 / 10 : d + "") + "" + c[iteration] : shortNumberFormat(d, iteration + 1); + return d < 1000 ? (isRound || d > 9.99 ? (int) d * 10 / 10 : d + "") + "" + c[iteration] : shortNumberFormat( + d, + iteration + 1 + ); } public static int getGuiLeft() { @@ -429,7 +446,17 @@ public class GuiProfileViewer extends GuiScreen { //Render Open In Skycrypt button renderBlurredBackground(width, height, guiLeft + 100 + 6 + 2, guiTop + sizeY + 3 + 2, 100 - 4, 20 - 4); Minecraft.getMinecraft().getTextureManager().bindTexture(pv_dropdown); - Utils.drawTexturedRect(guiLeft + 100 + 6, guiTop + sizeY + 3, 100, 20, 0, 100 / 200f, 0, 20 / 185f, GL11.GL_NEAREST); + Utils.drawTexturedRect( + guiLeft + 100 + 6, + guiTop + sizeY + 3, + 100, + 20, + 0, + 100 / 200f, + 0, + 20 / 185f, + GL11.GL_NEAREST + ); Utils.drawStringCenteredScaledMaxWidth( "Open in Skycrypt", Minecraft.getMinecraft().fontRendererObj, @@ -567,7 +594,14 @@ public class GuiProfileViewer extends GuiScreen { } } - Utils.drawStringCentered(str, Minecraft.getMinecraft().fontRendererObj, guiLeft + sizeX / 2f, guiTop + 101, true, 0); + Utils.drawStringCentered( + str, + Minecraft.getMinecraft().fontRendererObj, + guiLeft + sizeX / 2f, + guiTop + 101, + true, + 0 + ); //This is just here to inform the player what to do //like typing /api new or telling them to go find a psychotherapist @@ -846,7 +880,8 @@ public class GuiProfileViewer extends GuiScreen { Desktop desk = Desktop.getDesktop(); desk.browse( new URI( - "https://sky.shiiyu.moe/stats/" + profile.getHypixelProfile().get("displayname").getAsString() + "/" + profileId + "https://sky.shiiyu.moe/stats/" + profile.getHypixelProfile().get("displayname").getAsString() + "/" + + profileId ) ); Utils.playPressSound(); @@ -970,7 +1005,8 @@ public class GuiProfileViewer extends GuiScreen { String levelStr; String totalXpStr = null; if (skillName.contains("Catacombs")) totalXpStr = - EnumChatFormatting.GRAY + "Total XP: " + EnumChatFormatting.DARK_PURPLE + numberFormat.format(levelObj.totalXp); + EnumChatFormatting.GRAY + "Total XP: " + EnumChatFormatting.DARK_PURPLE + + numberFormat.format(levelObj.totalXp); if (levelObj.maxed) { levelStr = EnumChatFormatting.GOLD + "MAXED!"; } else { @@ -1150,14 +1186,21 @@ public class GuiProfileViewer extends GuiScreen { ); blurShaderHorz.getShaderManager().getShaderUniform("BlurDir").set(1, 0); blurShaderHorz.setProjectionMatrix(createProjectionMatrix(width, height)); - } catch (Exception ignored) {} + } catch (Exception ignored) { + } } if (blurShaderVert == null) { try { - blurShaderVert = new Shader(Minecraft.getMinecraft().getResourceManager(), "blur", blurOutputHorz, blurOutputVert); + blurShaderVert = new Shader( + Minecraft.getMinecraft().getResourceManager(), + "blur", + blurOutputHorz, + blurOutputVert + ); blurShaderVert.getShaderManager().getShaderUniform("BlurDir").set(0, 1); blurShaderVert.setProjectionMatrix(createProjectionMatrix(width, height)); - } catch (Exception ignored) {} + } catch (Exception ignored) { + } } if (blurShaderHorz != null && blurShaderVert != null) { if (15 != lastBgBlurFactor) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/AsyncDependencyLoader.java b/src/main/java/io/github/moulberry/notenoughupdates/util/AsyncDependencyLoader.java new file mode 100644 index 00000000..37b0a187 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/AsyncDependencyLoader.java @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.util; + +import com.google.common.base.Objects; + +import java.util.Optional; +import java.util.concurrent.CompletableFuture; +import java.util.function.BiFunction; +import java.util.function.Function; +import java.util.function.Supplier; + +public interface AsyncDependencyLoader { + + Optional peekValue(); + + public static AsyncDependencyLoader withObjectIdentity( + Supplier supplier, + Function> generator + ) { + return new AsyncDependencyLoaderImpl<>(supplier, generator, (a, b) -> a != b); + } + + public static AsyncDependencyLoader withEqualsInvocation( + Supplier supplier, + Function> generator + ) { + return new AsyncDependencyLoaderImpl<>(supplier, generator, (a, b) -> !Objects.equal(a, b)); + } + + public static AsyncDependencyLoader withEqualityFunction( + Supplier supplier, + Function> generator, + BiFunction isEqual + ) { + return new AsyncDependencyLoaderImpl<>(supplier, generator, (a, b) -> !isEqual.apply(a, b)); + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/AsyncDependencyLoaderImpl.java b/src/main/java/io/github/moulberry/notenoughupdates/util/AsyncDependencyLoaderImpl.java new file mode 100644 index 00000000..4b7f2fb8 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/AsyncDependencyLoaderImpl.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.util; + +import java.util.Optional; +import java.util.concurrent.CompletableFuture; +import java.util.function.BiFunction; +import java.util.function.Function; +import java.util.function.Supplier; + +class AsyncDependencyLoaderImpl implements AsyncDependencyLoader { + + private final Supplier supplyDependency; + private final Function> generator; + private final BiFunction isDifferent; + private volatile CompletableFuture lastValue; + private volatile R lastDependency; + private volatile boolean isFirstFire = true; + + @Override + public synchronized Optional peekValue() { + R nextDependency = supplyDependency.get(); + if (isFirstFire || isDifferent.apply(nextDependency, lastDependency)) { + isFirstFire = false; + if (lastValue != null) + lastValue.cancel(true); + lastValue = generator.apply(nextDependency); + } + lastDependency = nextDependency; + return Optional.ofNullable(lastValue.getNow(null)); + } + + AsyncDependencyLoaderImpl( + Supplier supplyDependency, + Function> generator, + BiFunction isDifferent + ) { + this.supplyDependency = supplyDependency; + this.generator = generator; + this.isDifferent = isDifferent; + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/MinecraftExecutor.java b/src/main/java/io/github/moulberry/notenoughupdates/util/MinecraftExecutor.java new file mode 100644 index 00000000..bf973b76 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/MinecraftExecutor.java @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.util; + +import net.minecraft.client.Minecraft; +import org.jetbrains.annotations.NotNull; + +import java.util.concurrent.Executor; + +public class MinecraftExecutor implements Executor { + + public static MinecraftExecutor INSTANCE = new MinecraftExecutor(); + + private MinecraftExecutor() {} + + @Override + public void execute(@NotNull Runnable runnable) { + Minecraft.getMinecraft().addScheduledTask(runnable); + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/PronounDB.java b/src/main/java/io/github/moulberry/notenoughupdates/util/PronounDB.java new file mode 100644 index 00000000..e7286721 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/PronounDB.java @@ -0,0 +1,221 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.util; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.core.util.StringUtils; + +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.KeyManagerFactory; +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManagerFactory; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.URL; +import java.security.KeyManagementException; +import java.security.KeyStore; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.security.UnrecoverableKeyException; +import java.security.cert.CertificateException; +import java.util.Arrays; +import java.util.List; +import java.util.Optional; +import java.util.UUID; +import java.util.stream.Collectors; + +public class PronounDB { + + static SSLContext ctx; + + static { + try { + KeyStore ks = KeyStore.getInstance("JKS"); + ks.load(PronounDB.class.getResourceAsStream("/pronoundb.jks"), "pronoundb".toCharArray()); + ctx = SSLContext.getInstance("TLS"); + KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); + TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); + kmf.init(ks, null); + tmf.init(ks); + ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); + } catch (KeyStoreException | NoSuchAlgorithmException | KeyManagementException | UnrecoverableKeyException | + IOException | CertificateException e) { + System.out.println("Failed to load keystore. PronounDB requests will probably not work"); + e.printStackTrace(); + } + } + + private static boolean isDisabled() { + JsonObject disabled = Constants.DISABLE; + return disabled != null && disabled.has("pronoundb"); + } + + /** + * Returns an Optional, since JVMs can be *very* funky with KeyStore loading + */ + public static Optional performPronouning(String platform, String id) { + if (isDisabled()) return Optional.empty(); + try { + URL url = new URL("https://pronoundb.org/api/v1/lookup" + + "?platform=" + StringUtils.urlEncode(platform) + + "&id=" + StringUtils.urlEncode(id)); + HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection(); + urlConnection.setSSLSocketFactory(ctx.getSocketFactory()); + return Optional.of(NotEnoughUpdates.INSTANCE.manager.gson.fromJson( + new InputStreamReader(urlConnection.getInputStream()), + JsonObject.class + )); + } catch (ClassCastException | IOException | JsonParseException e) { + System.out.println("Failed to contact PronounDB: " + e); + return Optional.empty(); + } + } + + public enum Pronoun { + HE("he", "him", "his"), + IT("it", "it", "its"), + SHE("she", "her", "hers"), + THEY("they", "they", "theirs"); + + private final String subject; + private final String object; + private final String possessive; + + Pronoun(String subject, String object, String possessive) { + this.subject = subject; + this.object = object; + this.possessive = possessive; + } + + public String getSubject() { + return subject; + } + + public String getObject() { + return object; + } + + public String getPossessive() { + return possessive; + } + } + + public enum PronounChoice { + UNSPECIFIED("unspecified", "Unspecified"), + HE("hh", Pronoun.HE), + HEIT("hi", Pronoun.HE, Pronoun.IT), + HESHE("hs", Pronoun.HE, Pronoun.SHE), + HETHEY("ht", Pronoun.HE, Pronoun.THEY), + ITHE("ih", Pronoun.IT, Pronoun.HE), + IT("ii", Pronoun.IT), + ITSHE("is", Pronoun.IT, Pronoun.SHE), + ITTHEY("it", Pronoun.IT, Pronoun.THEY), + SHEHE("shh", Pronoun.SHE, Pronoun.HE), + SHE("sh", Pronoun.SHE), + SHEIT("si", Pronoun.SHE, Pronoun.IT), + SHETHEY("st", Pronoun.SHE, Pronoun.THEY), + THEYHE("th", Pronoun.THEY, Pronoun.HE), + THEYIT("ti", Pronoun.THEY, Pronoun.IT), + THEYSHE("ts", Pronoun.THEY, Pronoun.SHE), + THEY("tt", Pronoun.THEY), + ANY("any", "Any pronouns"), + OTHER("other", "Other pronouns"), + ASK("ask", "Ask me my pronouns"), + AVOID("avoid", "Avoid pronouns, use my name"); + private final String id; + private List pronouns = null; + private String override = null; + + PronounChoice(String id, String override) { + this.override = override; + this.id = id; + } + + PronounChoice(String id, Pronoun... pronouns) { + this.id = id; + this.pronouns = Arrays.asList(pronouns); + } + + public static Optional findPronounsForId(String id) { + for (PronounChoice value : values()) { + if (value.id.equals(id)) return Optional.of(value); + } + return Optional.empty(); + } + + public String getOverride() { + return override; + } + + public List getPronounsInPreferredOrder() { + return pronouns; + } + + public String getId() { + return id; + } + + public List render() { + if (override != null) + return Arrays.asList(override); + return pronouns + .stream() + .map(pronoun -> pronoun.getSubject() + "/" + pronoun.getObject()) + .collect(Collectors.toList()); + } + + public boolean isConsciousChoice() { + return this != UNSPECIFIED; + } + + } + + public static Optional parsePronouns(JsonObject pronounObject) { + if (pronounObject.has("pronouns")) { + JsonElement pronouns = pronounObject.get("pronouns"); + if (pronouns.isJsonPrimitive() && pronouns.getAsJsonPrimitive().isString()) + return PronounChoice.findPronounsForId(pronouns.getAsString()); + } + return Optional.empty(); + } + + public static Optional getPronounsFor(String platform, String name) { + return performPronouning(platform, name).flatMap(PronounDB::parsePronouns); + } + + public static Optional getPronounsFor(UUID minecraftPlayer) { + return performPronouning("minecraft", minecraftPlayer.toString() /* dashed UUID */) + .flatMap(PronounDB::parsePronouns); + } + + public static void test() { + try { + System.out.println("Pronouning..."); + PronounChoice pronounsFor = getPronounsFor(UUID.fromString("842204e6-6880-487b-ae5a-0595394f9948")).get(); + pronounsFor.render().forEach(System.out::println); + } catch (Exception e) { + e.printStackTrace(); + } + } + +} 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 5b3ea853..2267cbea 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Utils.java @@ -73,6 +73,7 @@ import java.io.FileInputStream; import java.io.InputStreamReader; import java.lang.reflect.Field; import java.lang.reflect.Method; +import java.math.BigInteger; import java.nio.FloatBuffer; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -81,6 +82,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.LinkedList; import java.util.List; +import java.util.UUID; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -1943,9 +1945,13 @@ public class Utils { if (NotEnoughUpdates.INSTANCE.config.notifications.outdatedRepo) { NotificationHandler.displayNotification(Lists.newArrayList( EnumChatFormatting.RED + EnumChatFormatting.BOLD.toString() + "Missing repo data", - EnumChatFormatting.RED + "Data used for many NEU features is not up to date, this should normally not be the case.", - EnumChatFormatting.RED + "You can try " + EnumChatFormatting.BOLD + "/neuresetrepo" + EnumChatFormatting.RESET + EnumChatFormatting.RED +" and restart your game" + - " to see if that fixes the issue.", EnumChatFormatting.RED + "If the problem persists please join " + EnumChatFormatting.BOLD + "discord.gg/moulberry" + + EnumChatFormatting.RED + + "Data used for many NEU features is not up to date, this should normally not be the case.", + EnumChatFormatting.RED + "You can try " + EnumChatFormatting.BOLD + "/neuresetrepo" + EnumChatFormatting.RESET + + EnumChatFormatting.RED + " and restart your game" + + " to see if that fixes the issue.", + EnumChatFormatting.RED + "If the problem persists please join " + EnumChatFormatting.BOLD + + "discord.gg/moulberry" + EnumChatFormatting.RESET + EnumChatFormatting.RED + " and message in " + EnumChatFormatting.BOLD + "#neu-support" + EnumChatFormatting.RESET + EnumChatFormatting.RED + " to get support" ), @@ -1979,6 +1985,13 @@ public class Utils { return -1; } + public static UUID parseDashlessUUID(String dashlessUuid) { + // From: https://stackoverflow.com/a/30760478/ + BigInteger most = new BigInteger(dashlessUuid.substring(0, 16), 16); + BigInteger least = new BigInteger(dashlessUuid.substring(16, 32), 16); + return new UUID(most.longValue(), least.longValue()); + } + public static String getOpenChestName() { return SBInfo.getInstance().currentlyOpenChestName; } diff --git a/src/main/resources/pronoundb.jks b/src/main/resources/pronoundb.jks new file mode 100644 index 00000000..1c279333 Binary files /dev/null and b/src/main/resources/pronoundb.jks differ -- cgit From 43aa4ae5059012171372cb182c46bf95905e811e Mon Sep 17 00:00:00 2001 From: Roman / Linnea Gräf Date: Thu, 1 Sep 2022 17:15:51 +0200 Subject: Warn on invalid forge configs (and crash on 1.19 cause java is a bitch and i dont want to write a custom tweaker to load jar in jars, even tho i totally could, it would just not be very practical) (#236) * warning * Also warn on fabric * also work on forge * Fix grammar issue --- build.gradle.kts | 49 ++++++------- .../notenoughupdates/envcheck/EnvironmentScan.java | 85 ++++++++++++++++++++++ .../envcheck/FabricEntrypoint.java | 26 +++++++ .../envcheck/NEUMixinConfigPlugin.java | 46 ++++++++++++ src/main/resources/META-INF/mods.toml | 14 ++++ src/main/resources/fabric.mod.json | 10 +++ src/main/resources/mixins.notenoughupdates.json | 1 + 7 files changed, 204 insertions(+), 27 deletions(-) create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/envcheck/EnvironmentScan.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/envcheck/FabricEntrypoint.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/envcheck/NEUMixinConfigPlugin.java create mode 100644 src/main/resources/META-INF/mods.toml create mode 100644 src/main/resources/fabric.mod.json (limited to 'src/main/resources') diff --git a/build.gradle.kts b/build.gradle.kts index 1e0f4873..409a8d51 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,7 +17,11 @@ * along with NotEnoughUpdates. If not, see . */ + +import net.fabricmc.loom.task.RemapJarTask import java.io.ByteArrayOutputStream +import java.nio.file.FileSystems +import java.nio.file.Files import java.nio.charset.StandardCharsets import java.util.* @@ -98,15 +102,20 @@ repositories { maven("https://jitpack.io") } +val shadowImplementation by configurations.creating { + configurations.implementation.get().extendsFrom(this) +} + dependencies { minecraft("com.mojang:minecraft:1.8.9") mappings("de.oceanlabs.mcp:mcp_stable:22-1.8.9") forge("net.minecraftforge:forge:1.8.9-11.15.1.2318-1.8.9") - implementation("org.spongepowered:mixin:0.7.11-SNAPSHOT") + shadowImplementation("org.spongepowered:mixin:0.7.11-SNAPSHOT") { + isTransitive = false // Dependencies of mixin are already bundled by minecraft + } annotationProcessor("org.spongepowered:mixin:0.8.4-SNAPSHOT") - implementation("com.fasterxml.jackson.core:jackson-core:2.13.1") - implementation("info.bliki.wiki:bliki-core:3.1.0") + shadowImplementation("info.bliki.wiki:bliki-core:3.1.0") testImplementation("org.junit.jupiter:junit-jupiter:5.8.2") testAnnotationProcessor("org.spongepowered:mixin:0.8.4-SNAPSHOT") // modImplementation("io.github.notenoughupdates:MoulConfig:0.0.1") @@ -138,6 +147,7 @@ tasks.withType(Jar::class) { this["MixinConfigs"] = "mixins.notenoughupdates.json" this["FMLCorePluginContainsFMLMod"] = "true" this["ForceLoadAsMod"] = "true" + this["Manifest-Version"] = "1.0" } } @@ -145,41 +155,26 @@ val remapJar by tasks.named("remapJar") { archiveClassifier.set("dep") from(tasks.shadowJar) input.set(tasks.shadowJar.get().archiveFile) + doLast { + println("Jar name: ${archiveFile.get().asFile}") + } } tasks.shadowJar { archiveClassifier.set("dep-dev") - exclude( - "module-info.class", "LICENSE.txt" - ) + configurations = listOf(shadowImplementation) + exclude("**/module-info.class", "LICENSE.txt") dependencies { - include(dependency("org.spongepowered:mixin")) - - include(dependency("commons-io:commons-io")) - include(dependency("org.apache.commons:commons-lang3")) - include(dependency("com.fasterxml.jackson.core:jackson-databind:2.10.2")) - include(dependency("com.fasterxml.jackson.core:jackson-annotations:2.10.2")) - include(dependency("com.fasterxml.jackson.core:jackson-core:2.10.2")) - - include(dependency("info.bliki.wiki:bliki-core:3.1.0")) - include(dependency("org.slf4j:slf4j-api:1.7.18")) - include(dependency("org.luaj:luaj-jse:3.0.1")) + exclude { + it.moduleGroup.startsWith("org.apache.") || it.moduleName in + listOf("logback-classic", "commons-logging", "commons-codec", "logback-core") + } } fun relocate(name: String) = relocate(name, "io.github.moulberry.notenoughupdates.deps.$name") - relocate("com.fasterxml.jackson") - relocate("org.eclipse") - relocate("org.slf4j") } tasks.assemble.get().dependsOn(remapJar) -tasks.remapJar{ - - doLast{ - println("Jar name :" + archiveFileName.get()) - } -} - val generateBuildFlags by tasks.creating { outputs.upToDateWhen { false } val t = layout.buildDirectory.file("buildflags.properties") diff --git a/src/main/java/io/github/moulberry/notenoughupdates/envcheck/EnvironmentScan.java b/src/main/java/io/github/moulberry/notenoughupdates/envcheck/EnvironmentScan.java new file mode 100644 index 00000000..8e0f24b9 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/envcheck/EnvironmentScan.java @@ -0,0 +1,85 @@ +package io.github.moulberry.notenoughupdates.envcheck; + +import javax.swing.*; +import java.lang.reflect.Field; +import java.util.Objects; + +public class EnvironmentScan { + + static Class tryGetClass(String name) { + try { + return Class.forName(name); + } catch (ClassNotFoundException e) { + return null; + } + } + + static Object tryGetField(Class clazz, Object inst, String name) { + if (clazz == null) return null; + try { + Field declaredField = clazz.getDeclaredField(name); + return declaredField.get(inst); + } catch (NoSuchFieldException | IllegalAccessException ignored) { + } + return null; + } + + + static boolean isAtLeast(Object left, int right) { + if (left instanceof Integer) { + return (Integer) left >= right; + } + return false; + } + + static boolean shouldCheckOnce = true; + + static void checkEnvironmentOnce() { + if (shouldCheckOnce) checkEnvironment(); + } + + + static void checkEnvironment() { + shouldCheckOnce = false; + checkForgeEnvironment(); + } + + static void checkForgeEnvironment() { + Class forgeVersion = tryGetClass("net.minecraftforge.common.ForgeVersion"); + if (forgeVersion == null + || !Objects.equals(tryGetField(forgeVersion, null, "majorVersion"), 11) + || !Objects.equals(tryGetField(forgeVersion, null, "minorVersion"), 15) + || !isAtLeast(tryGetField(forgeVersion, null, "revisionVersion"), 1) + || !Objects.equals(tryGetField(forgeVersion, null, "mcVersion"), "1.8.9") + ) { + + System.out.printf("Forge Version : %s%nMajor : %s%nMinor : %s%nRevision : %s%nMinecraft : %s%n", + forgeVersion, + tryGetField(forgeVersion, null, "majorVersion"), + tryGetField(forgeVersion, null, "minorVersion"), + tryGetField(forgeVersion, null, "revisionVersion"), + tryGetField(forgeVersion, null, "mcVersion") + ); + missingOrOutdatedForgeError(); + } + } + + static void missingOrOutdatedForgeError() { + showErrorMessage( + "You just launched NotEnoughUpdates with the wrong (or no) modloader installed.", + "", + "NotEnoughUpdates only works in Minecraft 1.8.9, with Forge 11.15.1+", + "Please relaunch NotEnoughUpdates in the correct environment.", + "If you are using Minecraft 1.8.9 with Forge 11.15.1+ installed, please contact support.", + "Click OK to launch anyways." + ); + } + + + public static void showErrorMessage(String... messages) { + String message = String.join("\n", messages); + JOptionPane.showMessageDialog( + null, message, "NotEnoughUpdates - Problematic System Configuration", JOptionPane.ERROR_MESSAGE + ); + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/envcheck/FabricEntrypoint.java b/src/main/java/io/github/moulberry/notenoughupdates/envcheck/FabricEntrypoint.java new file mode 100644 index 00000000..4a70fca3 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/envcheck/FabricEntrypoint.java @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.envcheck; + +public class FabricEntrypoint { + static { + EnvironmentScan.checkForgeEnvironment(); + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/envcheck/NEUMixinConfigPlugin.java b/src/main/java/io/github/moulberry/notenoughupdates/envcheck/NEUMixinConfigPlugin.java new file mode 100644 index 00000000..44e24ff4 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/envcheck/NEUMixinConfigPlugin.java @@ -0,0 +1,46 @@ +package io.github.moulberry.notenoughupdates.envcheck; + +import org.spongepowered.asm.lib.tree.ClassNode; +import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; +import org.spongepowered.asm.mixin.extensibility.IMixinInfo; + +import java.util.List; +import java.util.Set; + +public class NEUMixinConfigPlugin implements IMixinConfigPlugin { + + static { + EnvironmentScan.checkEnvironmentOnce(); + } + + @Override + public void onLoad(String mixinPackage) { + } + + @Override + public String getRefMapperConfig() { + return null; + } + + @Override + public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { + return true; + } + + @Override + public void acceptTargets(Set myTargets, Set otherTargets) { + } + + @Override + public List getMixins() { + return null; + } + + @Override + public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { + } + + @Override + public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { + } +} diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml new file mode 100644 index 00000000..281faf65 --- /dev/null +++ b/src/main/resources/META-INF/mods.toml @@ -0,0 +1,14 @@ +# This mods.toml is loaded by forge 1.13-1.19 and is only here to make forge display an error message +modLoader = "javafml" +loaderVersion = "[12,)" +license = "LGPL" + +[[mods]] +modId="notenoughupdateserrordisplay" +version="99.99" +displayName="NotEnoughUpdates (1.8.9)" +description=''' +This mod description is only here to warn you about using the wrong version of Minecraft and Forge. +''' + + diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json new file mode 100644 index 00000000..8dd63bf3 --- /dev/null +++ b/src/main/resources/fabric.mod.json @@ -0,0 +1,10 @@ +{ + "id": "notenoughupdates", + "version": "9999.0", + "schemaVersion": 1, + "entrypoints": { + "main": [ + "io.github.moulberry.notenoughupdates.envcheck.FabricEntrypoint" + ] + } +} diff --git a/src/main/resources/mixins.notenoughupdates.json b/src/main/resources/mixins.notenoughupdates.json index 8b1d4559..ed1ba55a 100644 --- a/src/main/resources/mixins.notenoughupdates.json +++ b/src/main/resources/mixins.notenoughupdates.json @@ -2,6 +2,7 @@ "package": "io.github.moulberry.notenoughupdates.mixins", "refmap": "mixins.notenoughupdates.refmap.json", "minVersion": "0.7", + "plugin": "io.github.moulberry.notenoughupdates.envcheck.NEUMixinConfigPlugin", "compatibilityLevel": "JAVA_8", "mixins": [ "AccessorEntityAgeable", -- cgit From d3805f080af87eb2bc7d2a2eac6c3f8db539324f Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Thu, 8 Sep 2022 17:00:49 +0200 Subject: 0.14 - Finished :) (#233) Co-authored-by: nopo Co-authored-by: jani270 <69345714+jani270@users.noreply.github.com> Co-authored-by: Ascynx <78341107+Ascynx@users.noreply.github.com> Co-authored-by: NopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com> Co-authored-by: Lulonaut --- Update Notes/2.1.md | 13 +- .../moulberry/notenoughupdates/NEUOverlay.java | 4 +- .../notenoughupdates/NotEnoughUpdates.java | 4 + .../notenoughupdates/auction/APIManager.java | 13 +- .../notenoughupdates/core/util/StringUtils.java | 20 + .../events/RepositoryReloadEvent.java | 2 +- .../notenoughupdates/listener/ChatListener.java | 4 +- .../listener/ItemTooltipEssenceShopListener.java | 84 +++ .../listener/ItemTooltipListener.java | 3 +- .../listener/ItemTooltipRngListener.java | 330 ++++++++++++ .../notenoughupdates/listener/RenderListener.java | 36 +- .../miscfeatures/AuctionProfit.java | 6 +- .../miscfeatures/BazaarSacksProfit.java | 9 +- .../miscfeatures/DamageCommas.java | 29 +- .../miscgui/AccessoryBagOverlay.java | 4 +- .../miscgui/TrophyRewardOverlay.java | 2 +- .../notenoughupdates/mixins/MixinGuiContainer.java | 2 +- .../notenoughupdates/mixins/MixinRenderItem.java | 6 +- .../mixins/MixinSkyclientCosmetics.java | 39 ++ .../notenoughupdates/options/NEUConfig.java | 10 + .../options/seperateSections/BazaarTweaks.java | 81 +++ .../options/seperateSections/Dungeons.java | 9 + .../options/seperateSections/Misc.java | 8 +- .../options/seperateSections/SkillOverlays.java | 9 +- .../options/seperateSections/TooltipTweaks.java | 40 +- .../overlays/AuctionSearchOverlay.java | 2 +- .../overlays/BazaarSearchOverlay.java | 572 +++++++++++++++++++++ .../overlays/CombatSkillOverlay.java | 82 ++- .../notenoughupdates/profileviewer/BasicPage.java | 5 +- .../profileviewer/CollectionsPage.java | 18 +- .../profileviewer/DungeonPage.java | 32 +- .../notenoughupdates/profileviewer/ExtraPage.java | 84 ++- .../profileviewer/GuiProfileViewer.java | 20 +- .../profileviewer/InventoriesPage.java | 108 ++-- .../notenoughupdates/profileviewer/MiningPage.java | 20 +- .../notenoughupdates/profileviewer/PetsPage.java | 24 +- .../profileviewer/bestiary/BestiaryPage.java | 18 +- .../notenoughupdates/util/Calculator.java | 2 + src/main/resources/mixins.notenoughupdates.json | 1 + 39 files changed, 1576 insertions(+), 179 deletions(-) create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipEssenceShopListener.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipRngListener.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinSkyclientCosmetics.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/BazaarTweaks.java create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/overlays/BazaarSearchOverlay.java (limited to 'src/main/resources') diff --git a/Update Notes/2.1.md b/Update Notes/2.1.md index b5853248..050eaa93 100644 --- a/Update Notes/2.1.md +++ b/Update Notes/2.1.md @@ -37,6 +37,9 @@ - Added senither and lily weight - CrypticPlasma - Added the Quiver Info when hovering in inventory tab over Arrows display - Lulonaut - Added the Magical Power Info when hovering in inventory tab over Accessory Bag display - Lulonaut + - Added carpentry skill to skill average - hannibal2 + - Fixed sort order of fishing rods in profile viewer page - hannibal2 + - Changing sort logic from strength plus damage to bin price for best weapons in pv inventory page - hannibal2 ### **Minor Changes:** @@ -106,9 +109,13 @@ - Add Auto-Updater (linux only) - nea89 - Added power stone feature - hannibal2 - Added abiphone warning - hannibal2 -- Added blur limit to map at 100 - nopo +- Added blur limit at 100 - nopo - Added bazaar sacks profit feature - hannibal2 - Added an option to disable etherwarp overlay when TP is denied - hannibal2 +- Added bazaar search overlay - hannibal2 +- Added fraction display instead of percentage in slayer and dungeon RNG meter inventory - hannibal2 +- Added profit per score/XP to RNG meter - hannibal2 +- Added showing the amount of dungeon runs or slayer bosses needed for the rng meter to fill up - hannibal2 - Added bazaar prices to enchants in the enchantment table - hannibal2 / nea89 @@ -137,6 +144,9 @@ - Fixed crash with spamming remove enchant in /neuec - nopo - Fixed missing enchants not working with shiny items - nopo - Fixed golden dragon not working in pet overlay - CrypticPlasma +- Fixed shortened damage - nopo +- Fixed bazaar prices sorting order in neu item list - hannibal2 +- Fixed priceless items showing first in the missing tab of the accessory bag overlay - nopo ### **Other:** @@ -155,6 +165,7 @@ - NeucrystalHollowsJungle - NeucrystalHollowsMagmaFields - NeucrystalHollowsCrystalNucleus +- Disabled Skyclient cosmetics disabling neu map - nopo ### **Previous change log** diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java index 19f5a780..18be69e6 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java @@ -1265,8 +1265,8 @@ public class NEUOverlay extends Gui { String internal1 = o1.get("internalname").getAsString(); String internal2 = o2.get("internalname").getAsString(); - double cost1 = manager.auctionManager.getLowestBin(internal1); - double cost2 = manager.auctionManager.getLowestBin(internal2); + double cost1 = manager.auctionManager.getBazaarOrBin(internal1); + double cost2 = manager.auctionManager.getBazaarOrBin(internal2); if (cost1 < cost2) return mult; if (cost1 > cost2) return -mult; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java index dd4c01af..6732336c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java @@ -29,7 +29,9 @@ import io.github.moulberry.notenoughupdates.cosmetics.CapeManager; import io.github.moulberry.notenoughupdates.cosmetics.ShaderManager; import io.github.moulberry.notenoughupdates.dungeons.DungeonMap; import io.github.moulberry.notenoughupdates.listener.ChatListener; +import io.github.moulberry.notenoughupdates.listener.ItemTooltipEssenceShopListener; import io.github.moulberry.notenoughupdates.listener.ItemTooltipListener; +import io.github.moulberry.notenoughupdates.listener.ItemTooltipRngListener; import io.github.moulberry.notenoughupdates.listener.NEUEventListener; import io.github.moulberry.notenoughupdates.listener.OldAnimationChecker; import io.github.moulberry.notenoughupdates.listener.RenderListener; @@ -283,6 +285,8 @@ public class NotEnoughUpdates { MinecraftForge.EVENT_BUS.register(CustomBiomes.INSTANCE); MinecraftForge.EVENT_BUS.register(new ChatListener(this)); MinecraftForge.EVENT_BUS.register(new ItemTooltipListener(this)); + MinecraftForge.EVENT_BUS.register(new ItemTooltipRngListener(this)); + MinecraftForge.EVENT_BUS.register(new ItemTooltipEssenceShopListener(this)); MinecraftForge.EVENT_BUS.register(new RenderListener(this)); MinecraftForge.EVENT_BUS.register(new OldAnimationChecker()); MinecraftForge.EVENT_BUS.register(new SignCalculator()); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java b/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java index 74ef2483..2dc02b7e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java @@ -807,9 +807,18 @@ public class APIManager { return keys; } - public JsonObject getBazaarInfo(String internalname) { + public double getBazaarOrBin(String internalName) { + JsonObject bazaarInfo = manager.auctionManager.getBazaarInfo(internalName); + if (bazaarInfo != null && bazaarInfo.get("curr_buy") != null) { + return bazaarInfo.get("curr_buy").getAsFloat(); + } else { + return manager.auctionManager.getLowestBin(internalName); + } + } + + public JsonObject getBazaarInfo(String internalName) { if (bazaarJson == null) return null; - JsonElement e = bazaarJson.get(internalname); + JsonElement e = bazaarJson.get(internalName); if (e == null) { return null; } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/util/StringUtils.java b/src/main/java/io/github/moulberry/notenoughupdates/core/util/StringUtils.java index 6143085c..a4f814d1 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/core/util/StringUtils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/util/StringUtils.java @@ -67,6 +67,26 @@ public class StringUtils { return Integer.parseInt(str); } + public static String shortNumberFormat(double n) { + return shortNumberFormat(n, 0); + } + + private static final char[] c = new char[] { 'k', 'm', 'b', 't' }; + + public static String shortNumberFormat(double n, int iteration) { + if (n < 1000) { + if (n % 1 == 0) { + return Integer.toString((int) n); + } else { + return String.format("%.2f", n); + } + } + + double d = ((long) n / 100) / 10.0; + boolean isRound = (d * 10) % 10 == 0; + return d < 1000 ? (isRound || d > 9.99 ? (int) d * 10 / 10 : d + "") + "" + c[iteration] : shortNumberFormat(d, iteration + 1); + } + public static String urlEncode(String something) { try { return URLEncoder.encode(something, StandardCharsets.UTF_8.name()); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/events/RepositoryReloadEvent.java b/src/main/java/io/github/moulberry/notenoughupdates/events/RepositoryReloadEvent.java index bf6448a2..ab650c54 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/events/RepositoryReloadEvent.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/events/RepositoryReloadEvent.java @@ -23,7 +23,7 @@ import java.io.File; public class RepositoryReloadEvent extends NEUEvent { private final File baseFile; - private boolean isFirstLoad; + private final boolean isFirstLoad; public RepositoryReloadEvent(File baseFile, boolean isFirstLoad) { this.baseFile = baseFile; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java index 5bd47f3a..b59eaf17 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/ChatListener.java @@ -198,8 +198,8 @@ public class ChatListener { timeSinceLastBoss2 = timeSinceLastBoss; timeSinceLastBoss = System.currentTimeMillis(); } - } else if (unformatted.startsWith(" RNGesus Meter:")) { - RNGMeter = unformatted.substring(" RNGesus Meter: -------------------- ".length()); + } else if (unformatted.startsWith(" RNG Meter")) { + RNGMeter = unformatted.substring(" RNG Meter - ".length()); } else if (matcher.matches()) { //matcher.group(1); SlayerOverlay.slayerLVL = matcher.group(2); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipEssenceShopListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipEssenceShopListener.java new file mode 100644 index 00000000..4b380c2f --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipEssenceShopListener.java @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.listener; + +import com.google.gson.JsonObject; +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.core.util.StringUtils; +import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraftforge.event.entity.player.ItemTooltipEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class ItemTooltipEssenceShopListener { + private final NotEnoughUpdates neu; + + private final Pattern ESSENCE_PATTERN = Pattern.compile("§5§o§d([\\d,]+) (.+) Essence"); + + public ItemTooltipEssenceShopListener(NotEnoughUpdates neu) { + this.neu = neu; + } + + @SubscribeEvent + public void onItemTooltip(ItemTooltipEvent event) { + if (!neu.isOnSkyblock()) return; + if (event.toolTip == null) return; + if (!Utils.getOpenChestName().endsWith(" Essence Shop")) return; + if (!NotEnoughUpdates.INSTANCE.config.tooltipTweaks.essencePriceInEssenceShop) return; + + List newToolTip = new ArrayList<>(); + boolean next = false; + for (String line : event.toolTip) { + + if (next) { + next = false; + Matcher matcher = ESSENCE_PATTERN.matcher(line); + if (matcher.matches()) { + String rawNumber = matcher.group(1).replace(",", ""); + int amount = Integer.parseInt(rawNumber); + String type = matcher.group(2); + + String essenceName = "ESSENCE_" + type.toUpperCase(); + JsonObject bazaarInfo = neu.manager.auctionManager.getBazaarInfo(essenceName); + + if (bazaarInfo != null && bazaarInfo.has("curr_sell")) { + float bazaarPrice = bazaarInfo.get("curr_sell").getAsFloat(); + double price = bazaarPrice * amount; + String format = StringUtils.shortNumberFormat(price); + newToolTip.add(line + " §7(§6" + format + " coins§7)"); + continue; + } + } + } + + if (line.contains("Cost")) { + next = true; + } + newToolTip.add(line); + } + + event.toolTip.clear(); + event.toolTip.addAll(newToolTip); + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java index e5c3324f..3936ad74 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipListener.java @@ -266,8 +266,7 @@ public class ItemTooltipListener { newTooltip.add(""); } - newTooltip.add(EnumChatFormatting.BLUE + "Stats for " + rarityFormatted + - "\u00a79: [\u00a7l\u00a7m< \u00a79Switch\u00a7l\u27a1\u00a79]"); + newTooltip.add(EnumChatFormatting.BLUE + "Stats for " + rarityFormatted + "§9: [§l§m< §9Switch§l➡§9]"); if (statsE != null && statsE.isJsonObject()) { JsonObject stats = statsE.getAsJsonObject(); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipRngListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipRngListener.java new file mode 100644 index 00000000..bbbb9049 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/ItemTooltipRngListener.java @@ -0,0 +1,330 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.listener; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.core.util.StringUtils; +import io.github.moulberry.notenoughupdates.events.RepositoryReloadEvent; +import io.github.moulberry.notenoughupdates.profileviewer.GuiProfileViewer; +import io.github.moulberry.notenoughupdates.util.Calculator; +import io.github.moulberry.notenoughupdates.util.Constants; +import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraft.item.ItemStack; +import net.minecraftforge.event.entity.player.ItemTooltipEvent; +import net.minecraftforge.fml.common.eventhandler.EventPriority; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.lwjgl.input.Keyboard; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class ItemTooltipRngListener { + private final NotEnoughUpdates neu; + private boolean showSlayerRngFractions = false; + private boolean pressedShiftLast = false; + private int currentSelected = 0; + private boolean pressedArrowLast = false; + private boolean repoReloadNeeded = true; + + private final Pattern ODDS_PATTERN = Pattern.compile("§5§o§7Odds: (.+) §7\\(§7(.*)%\\)"); + private final Pattern ODDS_SELECTED_PATTERN = Pattern.compile("§5§o§7Odds: (.+) §7\\(§8§m(.*)%§r §7(.+)%\\)"); + + private final Pattern RUNS_PATTERN = Pattern.compile("§5§o§7(Dungeon Score|Slayer XP): §d(.*)§5/§d(.+)"); + private final Pattern RUNS_SELECTED_PATTERN = Pattern.compile("§5§o§d-(.+)- §d(.*)§5/§d(.+)"); + + private final Pattern SLAYER_INVENTORY_TITLE_PATTERN = Pattern.compile("(.+) RNG Meter"); + + private final Map dungeonData = new LinkedHashMap<>(); + private final Map> slayerData = new LinkedHashMap<>(); + + public ItemTooltipRngListener(NotEnoughUpdates neu) { + this.neu = neu; + } + + @SubscribeEvent + public void onItemTooltip(ItemTooltipEvent event) { + if (!neu.isOnSkyblock()) return; + if (event.toolTip == null) return; + if (!Utils.getOpenChestName().endsWith(" RNG Meter") && !slayerData.containsKey(Utils.getOpenChestName())) return; + + List newToolTip = new ArrayList<>(); + + boolean nextLineProgress = false; + for (String line : event.toolTip) { + + if (line.contains("Odds:")) { + if (NotEnoughUpdates.INSTANCE.config.tooltipTweaks.rngMeterFractionDisplay) { + fractionDisplay(newToolTip, line); + continue; + } + } + + if (nextLineProgress || line.contains("Dungeon Score:") || line.contains("Slayer XP:")) { + Matcher matcher = RUNS_PATTERN.matcher(line); + Matcher matcherSelected = RUNS_SELECTED_PATTERN.matcher(line); + Matcher m = null; + if (matcher.matches()) { + m = matcher; + } else if (matcherSelected.matches()) { + m = matcherSelected; + } + + if (m != null) { + int having; + try { + having = Calculator.calculate(m.group(2).replace(",", "")).intValue(); + } catch (Calculator.CalculatorException e) { + having = -1; + } + + int needed; + try { + needed = Calculator.calculate(m.group(3).replace(",", "")).intValue(); + } catch (Calculator.CalculatorException e) { + needed = -1; + } + if (NotEnoughUpdates.INSTANCE.config.tooltipTweaks.rngMeterRunsNeeded) { + runsRequired(newToolTip, having, needed, nextLineProgress, event.itemStack); + } + + if (NotEnoughUpdates.INSTANCE.config.tooltipTweaks.rngMeterProfitPerUnit) { + if (!NotEnoughUpdates.INSTANCE.config.tooltipTweaks.rngMeterRunsNeeded) { + String name = Utils.getOpenChestName().contains("Catacombs") ? "Score" : "XP"; + String formatCoinsPer = getFormatCoinsPer(event.itemStack, needed, 1, name); + if (formatCoinsPer != null) { + newToolTip.add(line); + newToolTip.add(formatCoinsPer); + continue; + } + } + } + } + nextLineProgress = false; + } + + if (line.contains("Progress:")) { + nextLineProgress = true; + } + newToolTip.add(line); + } + + event.toolTip.clear(); + event.toolTip.addAll(newToolTip); + } + + private String getFormatCoinsPer(ItemStack stack, int needed, int multiplier, String name) { + String internalName = neu.manager.getInternalNameForItem(stack); + double bin = neu.manager.auctionManager.getBazaarOrBin(internalName); + if (bin <= 0) return null; + + double coinsPer = (bin / needed) * multiplier; + String format = StringUtils.shortNumberFormat(coinsPer); + return "§7Coins per " + name + ": §6" + format + " coins"; + } + + private void fractionDisplay(List newToolTip, String line) { + boolean shift = Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT); + if (!pressedShiftLast && shift) { + showSlayerRngFractions = !showSlayerRngFractions; + } + pressedShiftLast = shift; + + String result; + Matcher matcher = ODDS_PATTERN.matcher(line); + Matcher matcherSelected = ODDS_SELECTED_PATTERN.matcher(line); + if (matcher.matches()) { + String odds = matcher.group(1); + int baseChance = calculateChance(matcher.group(2)); + String baseFormat = GuiProfileViewer.numberFormat.format(baseChance); + + String fractionFormat = "§7(1/" + baseFormat + ")"; + result = odds + " " + fractionFormat; + } else if (matcherSelected.matches()) { + String odds = matcherSelected.group(1); + int baseChance = calculateChance(matcherSelected.group(2)); + String baseFormat = GuiProfileViewer.numberFormat.format(baseChance); + + int increasedChance = calculateChance(matcherSelected.group(3)); + String increased = GuiProfileViewer.numberFormat.format(increasedChance); + String fractionFormat = "§7(§8§m1/" + baseFormat + "§r §71/" + increased + ")"; + + result = odds + " " + fractionFormat; + } else { + return; + } + + if (showSlayerRngFractions) { + newToolTip.add("§7Odds: " + result); + newToolTip.add("§8[Press SHIFT to show odds as percentages]"); + } else { + newToolTip.add(line); + newToolTip.add("§8[Press SHIFT to show odds as fractions]"); + } + } + + /** + * This adds support for the /neureloadrepo command + */ + @SubscribeEvent(priority = EventPriority.LOWEST) + public void onRepoReload(RepositoryReloadEvent event) { + repoReloadNeeded = true; + } + + public void checkUpdateData() { + if (repoReloadNeeded) { + updateRepoData(); + } + } + + private void updateRepoData() { + slayerData.clear(); + dungeonData.clear(); + + JsonObject leveling = Constants.LEVELING; + if (!leveling.has("slayer_boss_xp") || + !leveling.has("slayer_highest_tier") || + !leveling.has("slayer_tier_colors") || + !leveling.has("rng_meter_dungeon_score")) { + Utils.showOutdatedRepoNotification(); + return; + } + + List slayerExp = new ArrayList<>(); + for (JsonElement element : leveling.get("slayer_boss_xp").getAsJsonArray()) { + slayerExp.add(element.getAsInt()); + } + + List slayerColors = new ArrayList<>(); + for (JsonElement element : leveling.get("slayer_tier_colors").getAsJsonArray()) { + slayerColors.add(element.getAsString()); + } + + for (Map.Entry entry : leveling.get("slayer_highest_tier").getAsJsonObject().entrySet()) { + String slayerName = entry.getKey(); + int maxTier = entry.getValue().getAsInt(); + LinkedHashMap singleSlayerData = new LinkedHashMap<>(); + for (int i = 0; i < maxTier; i++) { + String name = slayerColors.get(i) + "Tier " + (i + 1); + singleSlayerData.put(name, slayerExp.get(i)); + } + slayerData.put(slayerName, singleSlayerData); + } + + for (Map.Entry entry : leveling.get("rng_meter_dungeon_score").getAsJsonObject().entrySet()) { + String dungeonScore = entry.getKey(); + int score = entry.getValue().getAsInt(); + dungeonData.put(dungeonScore, score); + } + + repoReloadNeeded = false; + } + + private void runsRequired( + List toolTip, + int having, + int needed, + boolean nextLineProgress, + ItemStack stack + ) { + checkUpdateData(); + if (repoReloadNeeded) return; + + String openChestName = Utils.getOpenChestName(); + Map runsData; + String labelPlural; + String labelSingular; + if (openChestName.contains("Catacombs")) { + runsData = dungeonData; + labelPlural = "Runs"; + labelSingular = "Run"; + } else { // Slayer + Matcher matcher = SLAYER_INVENTORY_TITLE_PATTERN.matcher(openChestName); + if (!matcher.matches()) { + //Happens for the first 4-5 ticks after inventory opens. Thanks hypixel + return; + } + + String slayerName = matcher.group(1); + runsData = slayerData.get(slayerName); + labelPlural = "Bosses"; + labelSingular = "Boss"; + } + + handleArrowKeys(runsData); + + if (currentSelected >= runsData.keySet().size()) { + currentSelected = 0; + } + + String name = (String) runsData.keySet().toArray()[currentSelected]; + int gainPerRun = runsData.get(name); + + int runsNeeded = needed / gainPerRun; + int runsHaving = having / gainPerRun; + String runsNeededFormat = GuiProfileViewer.numberFormat.format(runsNeeded); + String runsHavingFormat = GuiProfileViewer.numberFormat.format(runsHaving); + + String progressString = null; + if (nextLineProgress) { + progressString = toolTip.remove(toolTip.size() - 1); + } + + toolTip.add("§9Stats for " + name + "§9: [§l§m< §9Switch§l➡§9]"); + toolTip.add( + " §7" + labelPlural + " completed: §e" + runsHavingFormat + " §7(of §e" + runsNeededFormat + " §7needed)"); + + if (NotEnoughUpdates.INSTANCE.config.tooltipTweaks.rngMeterProfitPerUnit) { + String formatCoinsPer = getFormatCoinsPer(stack, needed, gainPerRun, labelSingular); + if (formatCoinsPer != null) { + toolTip.add(" " + formatCoinsPer); + } + } + + toolTip.add(" "); + if (progressString != null) { + toolTip.add(progressString); + } + } + + private void handleArrowKeys(Map runsData) { + boolean left = Keyboard.isKeyDown(Keyboard.KEY_LEFT); + boolean right = Keyboard.isKeyDown(Keyboard.KEY_RIGHT); + if (!pressedArrowLast && (left || right)) { + if (Utils.getOpenChestName().contains("Catacombs") ? right : left) { + currentSelected--; + } else { + currentSelected++; + } + if (currentSelected < 0) currentSelected = 0; + if (currentSelected >= runsData.size()) currentSelected = runsData.size() - 1; + } + pressedArrowLast = left || right; + } + + private int calculateChance(String string) { + return (int) (100.0 / Double.parseDouble(string)); + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java b/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java index 54b647e9..166e46d0 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/RenderListener.java @@ -53,6 +53,7 @@ import io.github.moulberry.notenoughupdates.miscgui.TrophyRewardOverlay; import io.github.moulberry.notenoughupdates.mixins.AccessorGuiContainer; import io.github.moulberry.notenoughupdates.options.NEUConfig; import io.github.moulberry.notenoughupdates.overlays.AuctionSearchOverlay; +import io.github.moulberry.notenoughupdates.overlays.BazaarSearchOverlay; import io.github.moulberry.notenoughupdates.overlays.OverlayManager; import io.github.moulberry.notenoughupdates.overlays.RancherBootOverlay; import io.github.moulberry.notenoughupdates.overlays.TextOverlay; @@ -119,6 +120,8 @@ import java.util.TreeMap; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; import static io.github.moulberry.notenoughupdates.util.GuiTextures.dungeon_chest_worth; @@ -146,6 +149,8 @@ public class RenderListener { private boolean inDungeonPage = false; private final NumberFormat format = new DecimalFormat("#,##0.#", new DecimalFormatSymbols(Locale.US)); + private final Pattern ESSENCE_PATTERN = Pattern.compile("§d(.+) Essence §8x([\\d,]+)"); + public RenderListener(NotEnoughUpdates neu) { this.neu = neu; } @@ -420,6 +425,11 @@ public class RenderListener { event.setCanceled(true); return; } + if (BazaarSearchOverlay.shouldReplace()) { + BazaarSearchOverlay.render(); + event.setCanceled(true); + return; + } if (RancherBootOverlay.shouldReplace()) { RancherBootOverlay.render(); event.setCanceled(true); @@ -736,7 +746,7 @@ public class RenderListener { StringBuilder cost = new StringBuilder(); for (int i = 0; i < line6.length(); i++) { char c = line6.charAt(i); - if ("0123456789".indexOf(c) >= 0) { + if (Character.isDigit(c)) { cost.append(c); } } @@ -752,6 +762,20 @@ public class RenderListener { for (int i = 0; i < 5; i++) { ItemStack item = lower.getStackInSlot(11 + i); String internal = neu.manager.getInternalNameForItem(item); + String displayName = item.getDisplayName(); + Matcher matcher = ESSENCE_PATTERN.matcher(displayName); + if (neu.config.dungeons.useEssenceCostFromBazaar && matcher.matches()) { + String type = matcher.group(1).toUpperCase(); + JsonObject bazaarInfo = neu.manager.auctionManager.getBazaarInfo("ESSENCE_" + type); + if (bazaarInfo != null && bazaarInfo.has("curr_sell")) { + float bazaarPrice = bazaarInfo.get("curr_sell").getAsFloat(); + int amount = Integer.parseInt(matcher.group(2)); + double price = bazaarPrice * amount; + itemValues.put(displayName, price); + totalValue += price; + } + continue; + } if (internal != null) { internal = internal.replace("\u00CD", "I").replace("\u0130", "I"); float bazaarPrice = -1; @@ -986,6 +1010,11 @@ public class RenderListener { event.setCanceled(true); return; } + if (BazaarSearchOverlay.shouldReplace()) { + BazaarSearchOverlay.mouseEvent(); + event.setCanceled(true); + return; + } if (RancherBootOverlay.shouldReplace()) { RancherBootOverlay.mouseEvent(); event.setCanceled(true); @@ -1466,6 +1495,11 @@ public class RenderListener { event.setCanceled(true); return; } + if (BazaarSearchOverlay.shouldReplace()) { + BazaarSearchOverlay.keyEvent(); + event.setCanceled(true); + return; + } if (RancherBootOverlay.shouldReplace()) { RancherBootOverlay.keyEvent(); event.setCanceled(true); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionProfit.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionProfit.java index e1024eab..88ca0cc8 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionProfit.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/AuctionProfit.java @@ -20,8 +20,8 @@ package io.github.moulberry.notenoughupdates.miscfeatures; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.core.util.StringUtils; import io.github.moulberry.notenoughupdates.mixins.AccessorGuiContainer; -import io.github.moulberry.notenoughupdates.profileviewer.GuiProfileViewer; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; @@ -145,10 +145,10 @@ public class AuctionProfit { String coinsToCollectStr = EnumChatFormatting.BOLD + EnumChatFormatting.DARK_GRAY.toString() + "Coins to collect: " + EnumChatFormatting.RESET + EnumChatFormatting.DARK_GREEN + "" + - GuiProfileViewer.shortNumberFormat(coinsToCollect, 0); + StringUtils.shortNumberFormat(coinsToCollect); String valueIfSoldStr = EnumChatFormatting.BOLD + EnumChatFormatting.DARK_GRAY.toString() + "Value if all sold: " + EnumChatFormatting.RESET + EnumChatFormatting.DARK_GREEN + "" + - GuiProfileViewer.shortNumberFormat(coinsIfAllSold, 0); + StringUtils.shortNumberFormat(coinsIfAllSold); fontRendererObj.drawString(coinsToCollectStr, a + 6, guiTop + 32, -1, false); fontRendererObj.drawString(valueIfSoldStr, a + 6, guiTop + 42, -1, false); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/BazaarSacksProfit.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/BazaarSacksProfit.java index 084fd03f..7007f39b 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/BazaarSacksProfit.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/BazaarSacksProfit.java @@ -68,7 +68,7 @@ public class BazaarSacksProfit { @SubscribeEvent(priority = EventPriority.LOW) public void onItemTooltipLow(ItemTooltipEvent event) { - if (!NotEnoughUpdates.INSTANCE.config.tooltipTweaks.bazaarSacksProfit) return; + if (!NotEnoughUpdates.INSTANCE.config.bazaarTweaks.bazaarSacksProfit) return; if (!inBazaar()) return; ItemStack itemStack = event.itemStack; @@ -89,6 +89,11 @@ public class BazaarSacksProfit { out: for (String line : ItemUtils.getLore(itemStack)) { + + if (line.equals("§8Loading...")) { + dirty = true; + return; + } if (line.contains("§7x ")) { String[] split = line.split("§7x "); String rawAmount = StringUtils.cleanColour(split[0]).replace(",", "").substring(1); @@ -108,7 +113,7 @@ public class BazaarSacksProfit { } } } - System.out.println("no bazaar item in repo found for '" + bazaarName + "'"); + System.err.println("no bazaar item in repo found for '" + bazaarName + "'"); invalidNames.add(bazaarName); } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DamageCommas.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DamageCommas.java index 127edcde..b1ab11c1 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DamageCommas.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DamageCommas.java @@ -45,15 +45,18 @@ public class DamageCommas { }; private static final char STAR = '\u2727'; + private static final char OVERLOAD_STAR = '\u272F'; private static final Pattern PATTERN_CRIT = Pattern.compile( - "\u00a7f" + STAR + "((?:\u00a7.\\d)+)\u00a7." + STAR + "(.*)"); - private static final Pattern PATTERN_NO_CRIT = Pattern.compile("\u00a77(\\d+)(.*)"); + "\u00a7f" + STAR + "((?:\u00a7.\\d(?:§.,)?)+)\u00a7." + STAR + "(.*)"); + private static final Pattern PATTERN_NO_CRIT = Pattern.compile("(\u00a7.)([\\d+,]*)(.*)"); + private static final Pattern OVERLOAD_PATTERN = Pattern.compile("(\u00a7.)" + OVERLOAD_STAR + "((?:\u00a7.[\\d,])+)(\u00a7.)" + OVERLOAD_STAR + "\u00a7r"); public static IChatComponent replaceName(EntityLivingBase entity) { if (!entity.hasCustomName()) return entity.getDisplayName(); IChatComponent name = entity.getDisplayName(); - if (NotEnoughUpdates.INSTANCE.config.misc.damageIndicatorStyle == 0) return name; + if (!NotEnoughUpdates.INSTANCE.config.misc.damageIndicatorStyle2) return name; + if (!NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) return name; if (replacementMap.containsKey(entity)) { ChatComponentText component = replacementMap.get(entity); @@ -69,17 +72,23 @@ public class DamageCommas { String suffix; Matcher matcherCrit = PATTERN_CRIT.matcher(formatted); + Matcher matcherOverload = OVERLOAD_PATTERN.matcher(formatted); if (matcherCrit.matches()) { crit = true; - numbers = StringUtils.cleanColour(matcherCrit.group(1)); + numbers = StringUtils.cleanColour(matcherCrit.group(1)).replace(",", ""); prefix = "\u00a7f" + STAR; suffix = "\u00a7f" + STAR + matcherCrit.group(2); - } else { + } else if (matcherOverload.matches()) { + crit = true; + numbers = StringUtils.cleanColour(matcherOverload.group(2)).replace(",", ""); + prefix = matcherOverload.group(1) + OVERLOAD_STAR; + suffix = matcherOverload.group(3) + OVERLOAD_STAR + "\u00a7r"; + } else { Matcher matcherNoCrit = PATTERN_NO_CRIT.matcher(formatted); if (matcherNoCrit.matches()) { - numbers = matcherNoCrit.group(1); - prefix = "\u00A77"; - suffix = "\u00A7r" + matcherNoCrit.group(2); + numbers = matcherNoCrit.group(2).replace(",", ""); + prefix = matcherNoCrit.group(1); + suffix = "\u00A7r" + matcherNoCrit.group(3); } else { replacementMap.put(entity, null); return name; @@ -91,10 +100,10 @@ public class DamageCommas { try { int number = Integer.parseInt(numbers); - if (number > 999 && NotEnoughUpdates.INSTANCE.config.misc.damageIndicatorStyle == 2) { + if (number > 999) { newFormatted.append(Utils.shortNumberFormat(number, 0)); } else { - newFormatted.append(NumberFormat.getIntegerInstance().format(number)); + return name; } } catch (NumberFormatException e) { replacementMap.put(entity, null); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/AccessoryBagOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/AccessoryBagOverlay.java index b6c3e763..530dcfd1 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/AccessoryBagOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/AccessoryBagOverlay.java @@ -847,7 +847,7 @@ public class AccessoryBagOverlay { if (info != null) cost1 = info.craftCost; else - cost1 = 0; + cost1 = -1; } double cost2; JsonObject o2Auc = NotEnoughUpdates.INSTANCE.manager.auctionManager.getItemAuctionInfo(o2); @@ -858,7 +858,7 @@ public class AccessoryBagOverlay { if (info != null) cost2 = info.craftCost; else - cost2 = 0; + cost2 = -1; } if (cost1 == -1 && cost2 == -1) return o1.compareTo(o2); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/TrophyRewardOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/TrophyRewardOverlay.java index 2b600d2e..e6c4dc74 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/TrophyRewardOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/TrophyRewardOverlay.java @@ -70,7 +70,7 @@ public class TrophyRewardOverlay { * This adds support for the /neureloadrepo command */ @SubscribeEvent(priority = EventPriority.LOWEST) - public void reload(RepositoryReloadEvent event) { + public void onRepoReload(RepositoryReloadEvent event) { reloadNeeded = true; } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiContainer.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiContainer.java index 06512fa8..7c3414fa 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiContainer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinGuiContainer.java @@ -125,7 +125,7 @@ public abstract class MixinGuiContainer extends GuiScreen { else if (!($this instanceof GuiChest)) BetterContainers.profileViewerStackIndex = -1; - if (slot.getStack() == null && NotEnoughUpdates.INSTANCE.overlay.searchMode && RenderListener.drawingGuiScreen) { + if (slot.getStack() == null && NotEnoughUpdates.INSTANCE.overlay.searchMode && RenderListener.drawingGuiScreen && NotEnoughUpdates.INSTANCE.isOnSkyblock()) { GlStateManager.pushMatrix(); GlStateManager.translate(0, 0, 100 + Minecraft.getMinecraft().getRenderItem().zLevel); GlStateManager.depthMask(false); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderItem.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderItem.java index 4f193c98..dc59c0bb 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderItem.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinRenderItem.java @@ -195,7 +195,7 @@ public abstract class MixinRenderItem { @Inject(method = "renderItemIntoGUI", at = @At("HEAD")) public void renderItemHead(ItemStack stack, int x, int y, CallbackInfo ci) { - if (NotEnoughUpdates.INSTANCE.overlay.searchMode && RenderListener.drawingGuiScreen) { + if (NotEnoughUpdates.INSTANCE.overlay.searchMode && RenderListener.drawingGuiScreen && NotEnoughUpdates.INSTANCE.isOnSkyblock()) { boolean matches = false; GuiTextField textField = NotEnoughUpdates.INSTANCE.overlay.getTextField(); @@ -221,7 +221,7 @@ public abstract class MixinRenderItem { @Inject(method = "renderItemIntoGUI", at = @At("RETURN")) public void renderItemReturn(ItemStack stack, int x, int y, CallbackInfo ci) { if (stack != null && stack.stackSize != 1) return; - if (NotEnoughUpdates.INSTANCE.overlay.searchMode && RenderListener.drawingGuiScreen) { + if (NotEnoughUpdates.INSTANCE.overlay.searchMode && RenderListener.drawingGuiScreen && NotEnoughUpdates.INSTANCE.isOnSkyblock()) { boolean matches = false; GuiTextField textField = NotEnoughUpdates.INSTANCE.overlay.getTextField(); @@ -252,7 +252,7 @@ public abstract class MixinRenderItem { CallbackInfo ci ) { if (stack != null && stack.stackSize != 1) { - if (NotEnoughUpdates.INSTANCE.overlay.searchMode && RenderListener.drawingGuiScreen) { + if (NotEnoughUpdates.INSTANCE.overlay.searchMode && RenderListener.drawingGuiScreen && NotEnoughUpdates.INSTANCE.isOnSkyblock()) { boolean matches = false; GuiTextField textField = NotEnoughUpdates.INSTANCE.overlay.getTextField(); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinSkyclientCosmetics.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinSkyclientCosmetics.java new file mode 100644 index 00000000..32c9f418 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinSkyclientCosmetics.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.mixins; + +import net.minecraftforge.event.world.WorldEvent; +import org.spongepowered.asm.mixin.Dynamic; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Pseudo; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Pseudo +@Mixin(targets = "co.skyclient.scc.SkyclientCosmetics") +public class MixinSkyclientCosmetics { + + @Dynamic + @Inject(method = "onWorldLoad", at = @At("HEAD"), cancellable = true, remap = false) + public void onWorldLoad(WorldEvent.Load event, CallbackInfo ci) { + ci.cancel(); + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java b/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java index ade9edfe..4d04bfbc 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/NEUConfig.java @@ -37,6 +37,7 @@ import io.github.moulberry.notenoughupdates.options.seperateSections.AHGraph; import io.github.moulberry.notenoughupdates.options.seperateSections.AHTweaks; import io.github.moulberry.notenoughupdates.options.seperateSections.AccessoryBag; import io.github.moulberry.notenoughupdates.options.seperateSections.ApiData; +import io.github.moulberry.notenoughupdates.options.seperateSections.BazaarTweaks; import io.github.moulberry.notenoughupdates.options.seperateSections.Calendar; import io.github.moulberry.notenoughupdates.options.seperateSections.CustomArmour; import io.github.moulberry.notenoughupdates.options.seperateSections.DungeonMapConfig; @@ -369,6 +370,13 @@ public class NEUConfig extends Config { ) public AHTweaks ahTweaks = new AHTweaks(); + @Expose + @Category( + name = "Bazaar Tweaks", + desc = "Tweaks for the Bazaar" + ) + public BazaarTweaks bazaarTweaks = new BazaarTweaks(); + @Expose @Category( name = "AH/BZ Graph", @@ -445,6 +453,8 @@ public class NEUConfig extends Config { @Expose public ArrayList previousAuctionSearches = new ArrayList<>(); @Expose + public ArrayList previousBazaarSearches = new ArrayList<>(); + @Expose public ArrayList eventFavourites = new ArrayList<>(); @Expose public ArrayList quickCommands = createDefaultQuickCommands(); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/BazaarTweaks.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/BazaarTweaks.java new file mode 100644 index 00000000..2ba0b718 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/BazaarTweaks.java @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.options.seperateSections; + +import com.google.gson.annotations.Expose; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigAccordionId; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorAccordion; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigEditorBoolean; +import io.github.moulberry.notenoughupdates.core.config.annotations.ConfigOption; + +public class BazaarTweaks { + + @ConfigOption( + name = "Search GUI", + desc = "" + ) + @ConfigEditorAccordion(id = 0) + public boolean searchAccordion = false; + + @Expose + @ConfigOption( + name = "Enable Search GUI", + desc = "Use the advanced search GUI with autocomplete and history instead of the normal sign GUI" + ) + @ConfigEditorBoolean + @ConfigAccordionId(id = 0) + public boolean enableSearchOverlay = true; + + @Expose + @ConfigOption( + name = "Keep Previous Search", + desc = "Don't clear the search bar after closing the GUI" + ) + @ConfigEditorBoolean + @ConfigAccordionId(id = 0) + public boolean keepPreviousSearch = false; + + @Expose + @ConfigOption( + name = "Past Searches", + desc = "Show past searches below the autocomplete box" + ) + @ConfigEditorBoolean + @ConfigAccordionId(id = 0) + public boolean showPastSearches = true; + + @Expose + @ConfigOption( + name = "ESC to Full Close", + desc = "Make pressing ESCAPE close the search GUI without opening up the Bazaar again\n" + + "ENTER can still be used to search" + ) + @ConfigEditorBoolean + @ConfigAccordionId(id = 0) + public boolean escFullClose = true; + + @Expose + @ConfigOption( + name = "Bazaar Sacks Profit", + desc = "Orders the items in your sacks in the bazaar inventory and adding buy order toggle" + ) + @ConfigEditorBoolean + public boolean bazaarSacksProfit = true; +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Dungeons.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Dungeons.java index e080db7d..c94bd181 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Dungeons.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Dungeons.java @@ -114,6 +114,15 @@ public class Dungeons { @ConfigAccordionId(id = 1) public boolean useKismetOnDungeonProfit = true; + @Expose + @ConfigOption( + name = "Include Essence Cost", + desc = "Include Bazaar Essence Sell Cost in the Profit Calculation for Dungeon Chests" + ) + @ConfigEditorBoolean + @ConfigAccordionId(id = 1) + public boolean useEssenceCostFromBazaar = true; + @Expose @ConfigOption( name = "Warning if Derpy active", diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java index d87082b4..84e2322e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/Misc.java @@ -126,13 +126,11 @@ public class Misc { @Expose @ConfigOption( name = "Damage Indicator Style", - desc = "Change the style of Skyblock damage indicators to be easier to read\n" + + desc = "Change Skyblock damage indicators to use shortened numbers\n" + "\u00A7cSome old animations mods break this feature" ) - @ConfigEditorDropdown( - values = {"Off", "Commas", "Shortened"} - ) - public int damageIndicatorStyle = 1; + @ConfigEditorBoolean + public boolean damageIndicatorStyle2 = false; @Expose @ConfigOption( diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/SkillOverlays.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/SkillOverlays.java index 8b7002f9..943417e6 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/SkillOverlays.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/SkillOverlays.java @@ -274,7 +274,7 @@ public class SkillOverlays { @Expose @ConfigOption( name = "\u00A7cWarning", - desc = "The combat display will only show if you have a Book of Stats on the item you are using" + desc = "The combat display will only show if you have a Book of Stats or the Champion enchant" ) @ConfigEditorFSR( runnableId = 12, @@ -305,11 +305,12 @@ public class SkillOverlays { "\u00a7bCurrent XP: \u00a7e6,734", "\u00a7bRemaining XP: \u00a7e3,265", "\u00a7bXP/h: \u00a7e238,129", - "\u00a7bETA: \u00a7e13h12m" + "\u00a7bETA: \u00a7e13h12m", + "\u00a7bChampion XP: \u00a7e3,523" } ) @ConfigAccordionId(id = 4) - public List combatText = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5)); + public List combatText = new ArrayList<>(Arrays.asList(0, 6, 1, 2, 3, 4, 5)); @Expose @ConfigOption( @@ -337,7 +338,7 @@ public class SkillOverlays { @Expose @ConfigOption( name = "Always show combat overlay", - desc = "Shows combat overlay even if you dont have Book of Stats" + desc = "Shows combat overlay even if you dont have Book of Stats or the Champion enchant" ) @ConfigEditorBoolean @ConfigAccordionId(id = 4) diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/TooltipTweaks.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/TooltipTweaks.java index 0729df97..1edc0921 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/TooltipTweaks.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/TooltipTweaks.java @@ -181,11 +181,45 @@ public class TooltipTweaks { @ConfigEditorBoolean public boolean powerStoneStats = true; + @ConfigOption( + name = "RNG Meter", + desc = "" + ) + @ConfigEditorAccordion(id = 1) + public boolean rngMeter = false; + + @Expose + @ConfigOption( + name = "Fraction Display", + desc = "Show the fraction instead of the percentage in the slayer and dungeon rng meter inventory" + ) + @ConfigEditorBoolean + @ConfigAccordionId(id = 1) + public boolean rngMeterFractionDisplay = true; + + @Expose + @ConfigOption( + name = " Profit Per Score/XP", + desc = "Show the amount of coins per Score/XP in the rng meter inventory" + ) + @ConfigEditorBoolean + @ConfigAccordionId(id = 1) + public boolean rngMeterProfitPerUnit = true; + + @Expose + @ConfigOption( + name = "Dungeon/Slayer Needed Counter", + desc = "Show the amount of dungeon runs or slayer bosses needed for the rng meter to fill up" + ) + @ConfigEditorBoolean + @ConfigAccordionId(id = 1) + public boolean rngMeterRunsNeeded = true; + @Expose @ConfigOption( - name = "Bazaar Sacks Profit", - desc = "Orders the items in your sacks in the bazaar inventory and adding buy order toggle" + name = "Essence Price In Shop", + desc = "Show the essence price in the essence shop in the dungeon hub" ) @ConfigEditorBoolean - public boolean bazaarSacksProfit = true; + public boolean essencePriceInEssenceShop = true; } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java index 8ff3218a..fcea79dd 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/AuctionSearchOverlay.java @@ -607,7 +607,7 @@ public class AuctionSearchOverlay { close(); Minecraft.getMinecraft().thePlayer.sendQueue.addToSendQueue(new C0DPacketCloseWindow(Minecraft.getMinecraft().thePlayer.openContainer.windowId)); NotEnoughUpdates.INSTANCE.openGui = new GuiScreenElementWrapper(new NEUConfigEditor( - NotEnoughUpdates.INSTANCE.config, "AH Search GUI")); + NotEnoughUpdates.INSTANCE.config, "AH Tweaks")); } } } else if (Mouse.getEventButton() == 0) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/BazaarSearchOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/BazaarSearchOverlay.java new file mode 100644 index 00000000..66dacda3 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/BazaarSearchOverlay.java @@ -0,0 +1,572 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.overlays; + +import com.google.common.base.Splitter; +import com.google.gson.JsonObject; +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.core.GuiElementTextField; +import io.github.moulberry.notenoughupdates.core.GuiScreenElementWrapper; +import io.github.moulberry.notenoughupdates.mixins.AccessorGuiEditSign; +import io.github.moulberry.notenoughupdates.options.NEUConfigEditor; +import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.gui.inventory.GuiEditSign; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.item.ItemStack; +import net.minecraft.network.play.client.C0DPacketCloseWindow; +import net.minecraft.tileentity.TileEntitySign; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.atomic.AtomicInteger; + +public class BazaarSearchOverlay { + private static final ResourceLocation SEARCH_OVERLAY_TEXTURE = new ResourceLocation( + "notenoughupdates:auc_search/ah_search_overlay.png"); + private static final ResourceLocation SEARCH_OVERLAY_TEXTURE_TAB_COMPLETED = new ResourceLocation( + "notenoughupdates:auc_search/ah_search_overlay_tab_completed.png"); + + private static final GuiElementTextField textField = new GuiElementTextField("", 200, 20, 0); + private static boolean searchFieldClicked = false; + private static String searchString = ""; + private static String searchStringExtra = ""; + private static final Splitter SPACE_SPLITTER = Splitter.on(" ").omitEmptyStrings().trimResults(); + private static boolean tabCompleted = false; + private static int tabCompletionIndex = -1; + + private static final int AUTOCOMPLETE_HEIGHT = 118; + + private static final Set autocompletedItems = new LinkedHashSet<>(); + + private static final Comparator salesComparator = (o1, o2) -> { + JsonObject bazaarInfo1 = NotEnoughUpdates.INSTANCE.manager.auctionManager.getBazaarInfo(o1); + JsonObject bazaarInfo2 = NotEnoughUpdates.INSTANCE.manager.auctionManager.getBazaarInfo(o2); + + boolean auc1Invalid = bazaarInfo1 == null || !bazaarInfo1.has("curr_sell"); + boolean auc2Invalid = bazaarInfo2 == null || !bazaarInfo2.has("curr_sell"); + + if (auc1Invalid && auc2Invalid) return o1.compareTo(o2); + if (auc1Invalid) return -1; + if (auc2Invalid) return 1; + + int sales1 = bazaarInfo1.get("curr_sell").getAsInt(); + int sales2 = bazaarInfo2.get("curr_sell").getAsInt(); + + if (sales1 == sales2) return o1.compareTo(o2); + if (sales1 > sales2) return -1; + return 1; + }; + + public static boolean shouldReplace() { + if (!NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) return false; + if (!NotEnoughUpdates.INSTANCE.config.bazaarTweaks.enableSearchOverlay) return false; + + if (!(Minecraft.getMinecraft().currentScreen instanceof GuiEditSign)) { + if (!NotEnoughUpdates.INSTANCE.config.bazaarTweaks.keepPreviousSearch) searchString = ""; + return false; + } + + String lastContainer = Utils.getLastOpenChestName(); + if (!lastContainer.startsWith("Bazaar ➜ ")) return false; + + TileEntitySign tes = ((AccessorGuiEditSign) Minecraft.getMinecraft().currentScreen).getTileSign(); + + if (tes == null) return false; + if (tes.getPos().getY() != 0) return false; + if (!tes.signText[2].getUnformattedText().equals("^^^^^^^^^^^^^^^")) return false; + return tes.signText[3].getUnformattedText().equals("Enter query"); + } + + public static void render() { + ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft()); + int width = scaledResolution.getScaledWidth(); + int height = scaledResolution.getScaledHeight(); + int mouseX = Mouse.getX() * width / Minecraft.getMinecraft().displayWidth; + int mouseY = height - Mouse.getY() * height / Minecraft.getMinecraft().displayHeight - 1; + + Utils.drawGradientRect(0, 0, width, height, -1072689136, -804253680); + + int h = NotEnoughUpdates.INSTANCE.config.bazaarTweaks.showPastSearches ? 219 : 145; + + int topY = height / 4; + if (scaledResolution.getScaleFactor() >= 4) { + topY = height / 2 - h / 2 + 5; + } + + Minecraft.getMinecraft().getTextureManager().bindTexture(SEARCH_OVERLAY_TEXTURE); + GlStateManager.color(1, 1, 1, 1); + Utils.drawTexturedRect(width / 2 - 100, topY - 1, 203, h, 0, 203 / 512f, 0, h / 256f, GL11.GL_NEAREST); + + Minecraft.getMinecraft().fontRendererObj.drawString("Enter Query:", width / 2 - 100, topY - 10, 0xdddddd, true); + + textField.setFocus(true); + textField.setText(searchString); + textField.setSize(149, 20); + textField.setCustomBorderColour(0xffffff); + textField.render(width / 2 - 100 + 1, topY + 1); + + if (textField.getText().trim().isEmpty()) autocompletedItems.clear(); + + List tooltipToDisplay = null; + + int num = 0; + synchronized (autocompletedItems) { + String[] autoCompletedItemsArray = autocompletedItems.toArray(new String[0]); + for (int i = 0; i < autoCompletedItemsArray.length; i++) { + String str = autoCompletedItemsArray[i]; + JsonObject obj = NotEnoughUpdates.INSTANCE.manager.getItemInformation().get(str); + if (obj != null) { + ItemStack stack = NotEnoughUpdates.INSTANCE.manager.jsonToStack(obj); + if (i == tabCompletionIndex) { + Minecraft.getMinecraft().getTextureManager().bindTexture(SEARCH_OVERLAY_TEXTURE_TAB_COMPLETED); + GlStateManager.color(1, 1, 1, 1); + Utils.drawTexturedRect( + width / 2 - 96 + 1, + topY + 30 + num * 22 + 1, + 193, + 21, + 0 / 512f, + 193 / 512f, + 0, + 21 / 256f, + GL11.GL_NEAREST + ); + } else { + Minecraft.getMinecraft().getTextureManager().bindTexture(SEARCH_OVERLAY_TEXTURE); + GlStateManager.color(1, 1, 1, 1); + Utils.drawTexturedRect( + width / 2 - 96 + 1, + topY + 30 + num * 22 + 1, + 193, + 21, + 214 / 512f, + 407 / 512f, + 0, + 21 / 256f, + GL11.GL_NEAREST + ); + + } + String itemName = Utils.trimIgnoreColour(stack.getDisplayName().replaceAll("\\[.+]", "")); + if (itemName.contains("Enchanted Book") && str.contains(";")) { + String[] lore = NotEnoughUpdates.INSTANCE.manager.getLoreFromNBT(stack.getTagCompound()); + itemName = lore[0].trim(); + } + + Minecraft.getMinecraft().fontRendererObj.drawString(Minecraft.getMinecraft().fontRendererObj.trimStringToWidth( + itemName, + 165 + ), + width / 2 - 74, topY + 35 + num * 22 + 1, 0xdddddd, true + ); + + GlStateManager.enableDepth(); + Utils.drawItemStack(stack, width / 2 - 94 + 2, topY + 32 + num * 22 + 1); + + if (mouseX > width / 2 - 96 && mouseX < width / 2 + 96 && mouseY > topY + 30 + num * 22 && + mouseY < topY + 30 + num * 22 + 20) { + tooltipToDisplay = stack.getTooltip(Minecraft.getMinecraft().thePlayer, false); + } + + if (++num >= 5) break; + } + } + } + + if (NotEnoughUpdates.INSTANCE.config.bazaarTweaks.showPastSearches) { + Minecraft.getMinecraft().fontRendererObj.drawString( + "Past Searches:", + width / 2 - 100, + topY + 25 + AUTOCOMPLETE_HEIGHT + 5, + 0xdddddd, + true + ); + + for (int i = 0; i < 5; i++) { + if (i >= NotEnoughUpdates.INSTANCE.config.hidden.previousBazaarSearches.size()) break; + + String s = NotEnoughUpdates.INSTANCE.config.hidden.previousBazaarSearches.get(i); + Minecraft.getMinecraft().fontRendererObj.drawString( + s, + width / 2 - 95 + 1, + topY + 45 + AUTOCOMPLETE_HEIGHT + i * 10 + 2, + 0xdddddd, + true + ); + } + + if (tooltipToDisplay != null) { + Utils.drawHoveringText( + tooltipToDisplay, + mouseX, + mouseY, + width, + height, + -1, + Minecraft.getMinecraft().fontRendererObj + ); + } + } + + } + + private static final ExecutorService searchES = Executors.newSingleThreadExecutor(); + private static final AtomicInteger searchId = new AtomicInteger(0); + + private static String getItemIdAtIndex(int i) { + if (!autocompletedItems.isEmpty()) { + if ((i > autocompletedItems.size() - 1) || i < 0 || i > 4) { + return ""; + } + String searchString = autocompletedItems.toArray()[i].toString(); + JsonObject repoObject = NotEnoughUpdates.INSTANCE.manager.getItemInformation().get(searchString); + if (repoObject != null) { + ItemStack stack = NotEnoughUpdates.INSTANCE.manager.jsonToStack(repoObject); + return Utils.cleanColour(stack.getDisplayName().replaceAll("\\[.+]", "")); + } + + } + return null; + } + + public static void close() { + if (tabCompleted) { + tabCompletionIndex = -1; + tabCompleted = false; + } + if (NotEnoughUpdates.INSTANCE.config.bazaarTweaks.keepPreviousSearch) { + search(); + } else { + synchronized (autocompletedItems) { + autocompletedItems.clear(); + } + } + + TileEntitySign tes = ((AccessorGuiEditSign) Minecraft.getMinecraft().currentScreen).getTileSign(); + + StringBuilder stringBuilder = new StringBuilder(searchString.trim()); + if (!searchStringExtra.isEmpty()) { + stringBuilder.append(searchStringExtra); + } + + String search = stringBuilder.toString(); + + if (search.length() <= 15) { + tes.signText[0] = new ChatComponentText(search.substring(0, Math.min(search.length(), 15))); + } else { + List words = SPACE_SPLITTER.splitToList(search); + + StringBuilder line0 = new StringBuilder(); + StringBuilder line1 = new StringBuilder(); + + int currentLine = 0; + for (String word : words) { + if (currentLine == 0) { + if (line0.length() + word.length() > 15) { + currentLine++; + } else { + line0.append(word); + if (line0.length() >= 15) { + currentLine++; + continue; + } else { + line0.append(" "); + } + } + } + if (currentLine == 1) { + if (line1.length() + word.length() > 15) { + line1.append(word, 0, 15 - line1.length()); + break; + } else { + line1.append(word); + if (line1.length() >= 15) { + break; + } else { + line1.append(" "); + } + } + } + if (line1.length() >= 15) break; + } + + tes.signText[0] = new ChatComponentText(line0.toString().trim()); + tes.signText[1] = new ChatComponentText(line1.toString().trim()); + } + + if (!searchString.trim().isEmpty()) { + List previousBazaarSearches = NotEnoughUpdates.INSTANCE.config.hidden.previousBazaarSearches; + previousBazaarSearches.remove(searchString); + previousBazaarSearches.remove(searchString); + previousBazaarSearches.add(0, searchString); + while (previousBazaarSearches.size() > 5) { + previousBazaarSearches.remove(previousBazaarSearches.size() - 1); + } + } + + Minecraft.getMinecraft().displayGuiScreen(null); + + if (Minecraft.getMinecraft().currentScreen == null) { + Minecraft.getMinecraft().setIngameFocus(); + } + } + + private static boolean updateTabCompletedSearch(int key) { + String id; + if (key == Keyboard.KEY_DOWN || key == Keyboard.KEY_TAB) { + id = getItemIdAtIndex(tabCompletionIndex + 1); + if (id == null) { + textField.setFocus(true); + textField.setText(searchString); + tabCompleted = false; + tabCompletionIndex = -1; + return true; + } else if (id.equals("")) { + tabCompletionIndex = 0; + return true; + } else { + searchString = id; + tabCompletionIndex += 1; + return true; + } + } else if (key == Keyboard.KEY_UP) { + id = getItemIdAtIndex(tabCompletionIndex - 1); + if (id == null) { + textField.setFocus(true); + textField.setText(searchString); + tabCompleted = false; + tabCompletionIndex = -1; + return true; + } else if (id.equals("")) { + if (autocompletedItems.size() > 4) tabCompletionIndex = 4; + else tabCompletionIndex = autocompletedItems.size() - 1; + tabCompletionIndex = autocompletedItems.size() - 1; + return true; + } else { + searchString = id; + tabCompletionIndex -= 1; + return true; + } + } + return false; + } + + public static void search() { + final int thisSearchId = searchId.incrementAndGet(); + + searchES.submit(() -> { + if (thisSearchId != searchId.get()) return; + + List title = new ArrayList<>(NotEnoughUpdates.INSTANCE.manager.search("title:" + searchString.trim())); + + if (thisSearchId != searchId.get()) return; + + if (!searchString.trim().contains(" ")) { + StringBuilder sb = new StringBuilder(); + for (char c : searchString.toCharArray()) { + sb.append(c).append(" "); + } + title.addAll(NotEnoughUpdates.INSTANCE.manager.search("title:" + sb.toString().trim())); + } + + if (thisSearchId != searchId.get()) return; + + List desc = new ArrayList<>(NotEnoughUpdates.INSTANCE.manager.search("desc:" + searchString.trim())); + desc.removeAll(title); + + if (thisSearchId != searchId.get()) return; + + Set bazaarItems = NotEnoughUpdates.INSTANCE.manager.auctionManager.getBazaarKeySet(); + // Amalgamated Crimsonite (Old) // TODO remove from repo + bazaarItems.remove("AMALGAMATED_CRIMSONITE"); + + title.retainAll(bazaarItems); + desc.retainAll(bazaarItems); + + title.sort(salesComparator); + desc.sort(salesComparator); + + if (thisSearchId != searchId.get()) return; + + synchronized (autocompletedItems) { + autocompletedItems.clear(); + autocompletedItems.addAll(title); + autocompletedItems.addAll(desc); + } + }); + } + + public static void keyEvent() { + boolean ignoreKey = false; + + if (Keyboard.getEventKey() == Keyboard.KEY_ESCAPE) { + searchStringExtra = ""; + close(); + if (NotEnoughUpdates.INSTANCE.config.bazaarTweaks.escFullClose) { + Minecraft.getMinecraft().thePlayer.sendQueue.addToSendQueue(new C0DPacketCloseWindow(Minecraft.getMinecraft().thePlayer.openContainer.windowId)); + } + return; + } else if (Keyboard.getEventKey() == Keyboard.KEY_RETURN) { + searchStringExtra = ""; + close(); + return; + } else if (Keyboard.getEventKey() == Keyboard.KEY_TAB) { + //autocomplete to first item in the list + if (!tabCompleted) { + tabCompleted = true; + ignoreKey = true; + String id = getItemIdAtIndex(0); + if (id == null) { + tabCompleted = false; + textField.setFocus(true); + textField.setText(searchString); + } else { + tabCompletionIndex = 0; + searchString = id; + } + } + } + + if (Keyboard.getEventKeyState()) { + if (tabCompleted) { + if (!ignoreKey) { + boolean success = updateTabCompletedSearch(Keyboard.getEventKey()); + if (success) return; + textField.setFocus(true); + textField.setText(searchString); + tabCompleted = false; + tabCompletionIndex = -1; + } else return; + + } + textField.setFocus(true); + textField.setText(searchString); + textField.keyTyped(Keyboard.getEventCharacter(), Keyboard.getEventKey()); + searchString = textField.getText(); + + search(); + } + } + + public static void mouseEvent() { + ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft()); + int width = scaledResolution.getScaledWidth(); + int height = scaledResolution.getScaledHeight(); + int mouseX = Mouse.getX() * width / Minecraft.getMinecraft().displayWidth; + int mouseY = height - Mouse.getY() * height / Minecraft.getMinecraft().displayHeight - 1; + + int h = NotEnoughUpdates.INSTANCE.config.bazaarTweaks.showPastSearches ? 219 : 145; + + int topY = height / 4; + if (scaledResolution.getScaleFactor() >= 4) { + topY = height / 2 - h / 2 + 5; + } + + if (!Mouse.getEventButtonState() && Mouse.getEventButton() == -1 && searchFieldClicked) { + textField.mouseClickMove(mouseX - 2, topY + 10, 0, 0); + } + + if (Mouse.getEventButton() != -1) { + searchFieldClicked = false; + } + + if (Mouse.getEventButtonState()) { + if (mouseY > topY && mouseY < topY + 20) { + if (mouseX > width / 2 - 100) { + if (mouseX < width / 2 + 49) { + searchFieldClicked = true; + textField.mouseClicked(mouseX - 2, mouseY, Mouse.getEventButton()); + + if (Mouse.getEventButton() == 1) { + searchString = ""; + synchronized (autocompletedItems) { + autocompletedItems.clear(); + } + } + } else if (mouseX < width / 2 + 75) { + searchStringExtra = ""; + close(); + } else if (mouseX < width / 2 + 100) { + searchStringExtra = ""; + close(); + Minecraft.getMinecraft().thePlayer.sendQueue.addToSendQueue(new C0DPacketCloseWindow(Minecraft.getMinecraft().thePlayer.openContainer.windowId)); + NotEnoughUpdates.INSTANCE.openGui = new GuiScreenElementWrapper(new NEUConfigEditor( + NotEnoughUpdates.INSTANCE.config, "Bazaar Tweaks")); + } + } + } else if (Mouse.getEventButton() == 0) { + int num = 0; + synchronized (autocompletedItems) { + for (String str : autocompletedItems) { + JsonObject obj = NotEnoughUpdates.INSTANCE.manager.getItemInformation().get(str); + if (obj != null) { + ItemStack stack = NotEnoughUpdates.INSTANCE.manager.jsonToStack(obj); + if (mouseX >= width / 2 - 96 && mouseX <= width / 2 + 96 && mouseY >= topY + 30 + num * 22 && + mouseY <= topY + 30 + num * 22 + 20) { + searchString = Utils.cleanColour(stack.getDisplayName().replaceAll("\\[.+]", "")).trim(); + if (searchString.contains("Enchanted Book") && str.contains(";")) { + String[] lore = NotEnoughUpdates.INSTANCE.manager.getLoreFromNBT(stack.getTagCompound()); + if (lore != null) { + searchString = Utils.cleanColour(lore[0]); + } + } + + searchStringExtra = " "; + + close(); + return; + } + + if (++num >= 5) break; + } + } + } + + if (NotEnoughUpdates.INSTANCE.config.bazaarTweaks.showPastSearches) { + for (int i = 0; i < 5; i++) { + if (i >= NotEnoughUpdates.INSTANCE.config.hidden.previousBazaarSearches.size()) break; + + String s = NotEnoughUpdates.INSTANCE.config.hidden.previousBazaarSearches.get(i); + if (mouseX >= width / 2 - 95 && mouseX <= width / 2 + 95 && + mouseY >= topY + 45 + AUTOCOMPLETE_HEIGHT + i * 10 && + mouseY <= topY + 45 + AUTOCOMPLETE_HEIGHT + i * 10 + 10) { + searchString = s; + searchStringExtra = ""; + close(); + return; + } + } + } + } + } + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/overlays/CombatSkillOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/overlays/CombatSkillOverlay.java index 250be27d..4ad6767d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/overlays/CombatSkillOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/overlays/CombatSkillOverlay.java @@ -41,6 +41,10 @@ public class CombatSkillOverlay private long lastUpdate = -1; private int killLast = -1; private int kill = -1; + private int championTier = -1; + private String championTierAmount = "1"; + private int championXp = -1; + private int championXpLast = -1; private final LinkedList killQueue = new LinkedList<>(); private XPInformation.SkillInfo skillInfo = null; @@ -84,6 +88,7 @@ public class CombatSkillOverlay lastUpdate = System.currentTimeMillis(); killLast = kill; + championXpLast = championXp; xpGainHourLast = xpGainHour; kill = -1; @@ -100,9 +105,67 @@ public class CombatSkillOverlay kill = ea.getInteger("stats_book"); killQueue.add(0, kill); } + if (ea.hasKey("champion_combat_xp", 99)) { + championXp = (int) ea.getDouble("champion_combat_xp"); + } } } + if (championXp < 50000) { + championTier = 1; + } else if (championXp < 100000) { + championTier = 2; + } else if (championXp < 250000) { + championTier = 3; + } else if (championXp < 500000) { + championTier = 4; + } else if (championXp < 1000000) { + championTier = 5; + } else if (championXp < 1500000) { + championTier = 6; + } else if (championXp < 2000000) { + championTier = 7; + } else if (championXp < 2500000) { + championTier = 8; + } else if (championXp < 3000000) { + championTier = 9; + } else if (championXp > 3000000) { + championTier = 10; + } + + switch (championTier) { + case 1: + championTierAmount = "50,000"; + break; + case 2: + championTierAmount = "100,000"; + break; + case 3: + championTierAmount = "250,000"; + break; + case 4: + championTierAmount = "500,000"; + break; + case 5: + championTierAmount = "1,000,000"; + break; + case 6: + championTierAmount = "1,500,000"; + break; + case 7: + championTierAmount = "2,000,000"; + break; + case 8: + championTierAmount = "2,500,000"; + break; + case 9: + championTierAmount = "3,000,000"; + break; + case 10: + championTierAmount = "Maxed"; + break; + } + String internalname = NotEnoughUpdates.INSTANCE.manager.getInternalNameForItem(stack); skillInfoLast = skillInfo; @@ -165,7 +228,7 @@ public class CombatSkillOverlay public void updateFrequent() { super.updateFrequent(); - if (kill < 0 && !NotEnoughUpdates.INSTANCE.config.skillOverlays.alwaysShowCombatOverlay) { + if ((kill < 0 || championXp < 0) && !NotEnoughUpdates.INSTANCE.config.skillOverlays.alwaysShowCombatOverlay) { overlayStrings = null; } else { HashMap lineMap = new HashMap<>(); @@ -180,6 +243,23 @@ public class CombatSkillOverlay lineMap.put(0, EnumChatFormatting.AQUA + "Kills: " + EnumChatFormatting.YELLOW + format.format(counterInterp)); } + if (championTier <= 9) { + int counterInterp = (int) interp(championXp, championXpLast); + lineMap.put( + 6, + EnumChatFormatting.AQUA + "Champion: " + EnumChatFormatting.YELLOW + format.format(counterInterp) + "/" + + championTierAmount + ); + } + if (championTier == 10) { + int counterInterp = (int) interp(championXp, championXpLast); + lineMap.put( + 6, + EnumChatFormatting.AQUA + "Champion: " + EnumChatFormatting.YELLOW + format.format(counterInterp) + " " + + EnumChatFormatting.RED + championTierAmount + ); + } + float xpInterp = xpGainHour; if (xpGainHourLast == xpGainHour && xpGainHour <= 0) { lineMap.put(4, EnumChatFormatting.AQUA + "XP/h: " + EnumChatFormatting.YELLOW + "N/A"); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BasicPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BasicPage.java index dcbcb9e4..a72e0a24 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BasicPage.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BasicPage.java @@ -25,6 +25,7 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.mojang.authlib.GameProfile; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.core.util.StringUtils; import io.github.moulberry.notenoughupdates.profileviewer.weight.lily.LilyWeight; import io.github.moulberry.notenoughupdates.profileviewer.weight.senither.SenitherWeight; import io.github.moulberry.notenoughupdates.util.Constants; @@ -617,9 +618,9 @@ public class BasicPage extends GuiProfileViewerPage { EnumChatFormatting.GRAY + "Progress: " + EnumChatFormatting.DARK_PURPLE + - GuiProfileViewer.shortNumberFormat(Math.round((level % 1) * maxXp), 0) + + StringUtils.shortNumberFormat(Math.round((level % 1) * maxXp)) + "/" + - GuiProfileViewer.shortNumberFormat(maxXp, 0) + StringUtils.shortNumberFormat(maxXp) ); } String totalXpS = GuiProfileViewer.numberFormat.format((int) skyblockInfo.get(entry.getKey()).totalXp); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/CollectionsPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/CollectionsPage.java index b227c815..554e204c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/CollectionsPage.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/CollectionsPage.java @@ -21,15 +21,9 @@ package io.github.moulberry.notenoughupdates.profileviewer; import com.google.gson.JsonObject; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.core.util.StringUtils; import io.github.moulberry.notenoughupdates.util.Constants; import io.github.moulberry.notenoughupdates.util.Utils; -import java.awt.*; -import java.io.IOException; -import java.text.NumberFormat; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.item.ItemStack; @@ -39,6 +33,14 @@ import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; +import java.awt.*; +import java.io.IOException; +import java.text.NumberFormat; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; + public class CollectionsPage extends GuiProfileViewerPage { public static final ResourceLocation pv_cols = new ResourceLocation("notenoughupdates:pv_cols.png"); @@ -290,7 +292,7 @@ public class CollectionsPage extends GuiProfileViewerPage { } Utils.drawStringCentered( - GuiProfileViewer.shortNumberFormat(amount, 0) + "", + StringUtils.shortNumberFormat(amount) + "", Minecraft.getMinecraft().fontRendererObj, guiLeft + x + 10, guiTop + y + 26, diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/DungeonPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/DungeonPage.java index 73bbd295..c707f7fc 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/DungeonPage.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/DungeonPage.java @@ -25,14 +25,10 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.core.util.StringUtils; import io.github.moulberry.notenoughupdates.itemeditor.GuiElementTextField; import io.github.moulberry.notenoughupdates.util.Constants; import io.github.moulberry.notenoughupdates.util.Utils; -import java.io.IOException; -import java.util.Base64; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.UUID; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.GlStateManager; @@ -48,6 +44,12 @@ import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL14; +import java.io.IOException; +import java.util.Base64; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.UUID; + public class DungeonPage extends GuiProfileViewerPage { private static final ResourceLocation pv_dung = new ResourceLocation("notenoughupdates:pv_dung.png"); @@ -172,7 +174,7 @@ public class DungeonPage extends GuiProfileViewerPage { Utils.renderAlignedString( EnumChatFormatting.YELLOW + "Until Cata " + floorLevelTo + ": ", - EnumChatFormatting.WHITE + GuiProfileViewer.shortNumberFormat(floorLevelToXP, 0), + EnumChatFormatting.WHITE + StringUtils.shortNumberFormat((double) floorLevelToXP), x, y + 16, sectionWidth @@ -222,9 +224,9 @@ public class DungeonPage extends GuiProfileViewerPage { getInstance().tooltipToDisplay = Lists.newArrayList( - String.format("# F5 Runs (%s xp) : %d", GuiProfileViewer.shortNumberFormat(xpF5, 0), runsF5), - String.format("# F6 Runs (%s xp) : %d", GuiProfileViewer.shortNumberFormat(xpF6, 0), runsF6), - String.format("# F7 Runs (%s xp) : %d", GuiProfileViewer.shortNumberFormat(xpF7, 0), runsF7), + String.format("# F5 Runs (%s xp) : %d", StringUtils.shortNumberFormat(xpF5), runsF5), + String.format("# F6 Runs (%s xp) : %d", StringUtils.shortNumberFormat(xpF6), runsF6), + String.format("# F7 Runs (%s xp) : %d", StringUtils.shortNumberFormat(xpF7), runsF7), "" ); boolean hasTime = false; @@ -352,10 +354,10 @@ public class DungeonPage extends GuiProfileViewerPage { getInstance().tooltipToDisplay = Lists.newArrayList( - String.format("# M3 Runs (%s xp) : %d", GuiProfileViewer.shortNumberFormat(xpM3, 0), runsM3), - String.format("# M4 Runs (%s xp) : %d", GuiProfileViewer.shortNumberFormat(xpM4, 0), runsM4), - String.format("# M5 Runs (%s xp) : %d", GuiProfileViewer.shortNumberFormat(xpM5, 0), runsM5), - String.format("# M6 Runs (%s xp) : %d", GuiProfileViewer.shortNumberFormat(xpM6, 0), runsM6), + String.format("# M3 Runs (%s xp) : %d", StringUtils.shortNumberFormat(xpM3), runsM3), + String.format("# M4 Runs (%s xp) : %d", StringUtils.shortNumberFormat(xpM4), runsM4), + String.format("# M5 Runs (%s xp) : %d", StringUtils.shortNumberFormat(xpM5), runsM5), + String.format("# M6 Runs (%s xp) : %d", StringUtils.shortNumberFormat(xpM6), runsM6), "" ); boolean hasTime = false; @@ -482,7 +484,7 @@ public class DungeonPage extends GuiProfileViewerPage { ); Utils.renderAlignedString( EnumChatFormatting.YELLOW + "Secrets (Total) ", - EnumChatFormatting.WHITE + GuiProfileViewer.shortNumberFormat(secrets, 0), + EnumChatFormatting.WHITE + StringUtils.shortNumberFormat(secrets), x, miscTopY + 20, sectionWidth @@ -496,7 +498,7 @@ public class DungeonPage extends GuiProfileViewerPage { ); Utils.renderAlignedString( EnumChatFormatting.YELLOW + "Mob Kills (Total) ", - EnumChatFormatting.WHITE + GuiProfileViewer.shortNumberFormat(mobKills, 0), + EnumChatFormatting.WHITE + StringUtils.shortNumberFormat(mobKills), x, miscTopY + 40, sectionWidth diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ExtraPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ExtraPage.java index 3cbd944d..63a4df2c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ExtraPage.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ExtraPage.java @@ -22,10 +22,15 @@ package io.github.moulberry.notenoughupdates.profileviewer; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; -import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.core.util.StringUtils; import io.github.moulberry.notenoughupdates.util.Constants; -import io.github.moulberry.notenoughupdates.util.PronounDB; import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; +import org.apache.commons.lang3.text.WordUtils; +import org.lwjgl.opengl.GL11; + import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; @@ -34,15 +39,9 @@ import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.Set; import java.util.TimeZone; import java.util.TreeMap; -import net.minecraft.client.Minecraft; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.apache.commons.lang3.text.WordUtils; -import org.lwjgl.opengl.GL11; public class ExtraPage extends GuiProfileViewerPage { @@ -79,14 +78,14 @@ public class ExtraPage extends GuiProfileViewerPage { Utils.renderAlignedString( EnumChatFormatting.GOLD + "Bank Balance", - EnumChatFormatting.WHITE + GuiProfileViewer.shortNumberFormat(bankBalance, 0), + EnumChatFormatting.WHITE + StringUtils.shortNumberFormat(bankBalance), guiLeft + xStart, guiTop + yStartTop, 76 ); Utils.renderAlignedString( EnumChatFormatting.GOLD + "Purse", - EnumChatFormatting.WHITE + GuiProfileViewer.shortNumberFormat(purseBalance, 0), + EnumChatFormatting.WHITE + StringUtils.shortNumberFormat(purseBalance), guiLeft + xStart, guiTop + yStartTop + yOffset, 76 @@ -161,7 +160,17 @@ public class ExtraPage extends GuiProfileViewerPage { float totalSlayerCount = 0; float totalSlayerXP = 0; - List skills = Arrays.asList("taming", "mining", "foraging", "enchanting", "farming", "combat", "fishing", "alchemy"); + List skills = Arrays.asList( + "taming", + "mining", + "foraging", + "enchanting", + "farming", + "combat", + "fishing", + "alchemy", + "carpentry" + ); List slayers = Arrays.asList("zombie", "spider", "wolf", "enderman", "blaze"); for (Map.Entry entry : skyblockInfo.entrySet()) { @@ -206,7 +215,7 @@ public class ExtraPage extends GuiProfileViewerPage { Utils.renderAlignedString( EnumChatFormatting.RED + "Total Slayer XP", - EnumChatFormatting.WHITE + GuiProfileViewer.shortNumberFormat(totalSlayerXP, 0), + EnumChatFormatting.WHITE + StringUtils.shortNumberFormat(totalSlayerXP), guiLeft + xStart, guiTop + yStartBottom + yOffset * 4, 76 @@ -214,11 +223,17 @@ public class ExtraPage extends GuiProfileViewerPage { } float auctions_bids = Utils.getElementAsFloat(Utils.getElement(profileInfo, "stats.auctions_bids"), 0); - float auctions_highest_bid = Utils.getElementAsFloat(Utils.getElement(profileInfo, "stats.auctions_highest_bid"), 0); + float auctions_highest_bid = Utils.getElementAsFloat( + Utils.getElement(profileInfo, "stats.auctions_highest_bid"), + 0 + ); float auctions_won = Utils.getElementAsFloat(Utils.getElement(profileInfo, "stats.auctions_won"), 0); float auctions_created = Utils.getElementAsFloat(Utils.getElement(profileInfo, "stats.auctions_created"), 0); float auctions_gold_spent = Utils.getElementAsFloat(Utils.getElement(profileInfo, "stats.auctions_gold_spent"), 0); - float auctions_gold_earned = Utils.getElementAsFloat(Utils.getElement(profileInfo, "stats.auctions_gold_earned"), 0); + float auctions_gold_earned = Utils.getElementAsFloat( + Utils.getElement(profileInfo, "stats.auctions_gold_earned"), + 0 + ); Utils.renderAlignedString( EnumChatFormatting.DARK_PURPLE + "Auction Bids", @@ -229,7 +244,7 @@ public class ExtraPage extends GuiProfileViewerPage { ); Utils.renderAlignedString( EnumChatFormatting.DARK_PURPLE + "Highest Bid", - EnumChatFormatting.WHITE + GuiProfileViewer.shortNumberFormat(auctions_highest_bid, 0), + EnumChatFormatting.WHITE + StringUtils.shortNumberFormat(auctions_highest_bid), guiLeft + xStart + xOffset, guiTop + yStartTop + yOffset, 76 @@ -250,14 +265,14 @@ public class ExtraPage extends GuiProfileViewerPage { ); Utils.renderAlignedString( EnumChatFormatting.DARK_PURPLE + "Gold Spent", - EnumChatFormatting.WHITE + GuiProfileViewer.shortNumberFormat(auctions_gold_spent, 0), + EnumChatFormatting.WHITE + StringUtils.shortNumberFormat(auctions_gold_spent), guiLeft + xStart + xOffset, guiTop + yStartTop + yOffset * 4, 76 ); Utils.renderAlignedString( EnumChatFormatting.DARK_PURPLE + "Gold Earned", - EnumChatFormatting.WHITE + GuiProfileViewer.shortNumberFormat(auctions_gold_earned, 0), + EnumChatFormatting.WHITE + StringUtils.shortNumberFormat(auctions_gold_earned), guiLeft + xStart + xOffset, guiTop + yStartTop + yOffset * 5, 76 @@ -276,8 +291,14 @@ public class ExtraPage extends GuiProfileViewerPage { Utils.getElement(profileInfo, "slayer_bosses.zombie.boss_kills_tier_4"), 0 ); - float wolf_boss_kills_tier_2 = Utils.getElementAsFloat(Utils.getElement(profileInfo, "slayer_bosses.wolf.boss_kills_tier_2"), 0); - float wolf_boss_kills_tier_3 = Utils.getElementAsFloat(Utils.getElement(profileInfo, "slayer_bosses.wolf.boss_kills_tier_3"), 0); + float wolf_boss_kills_tier_2 = Utils.getElementAsFloat(Utils.getElement( + profileInfo, + "slayer_bosses.wolf.boss_kills_tier_2" + ), 0); + float wolf_boss_kills_tier_3 = Utils.getElementAsFloat(Utils.getElement( + profileInfo, + "slayer_bosses.wolf.boss_kills_tier_3" + ), 0); float spider_boss_kills_tier_2 = Utils.getElementAsFloat( Utils.getElement(profileInfo, "slayer_bosses.spider.boss_kills_tier_2"), 0 @@ -294,8 +315,14 @@ public class ExtraPage extends GuiProfileViewerPage { Utils.getElement(profileInfo, "slayer_bosses.enderman.boss_kills_tier_3"), 0 ); - float blaze_boss_kills_tier_2 = Utils.getElementAsFloat(Utils.getElement(profileInfo, "slayer_bosses.blaze.boss_kills_tier_2"), 0); - float blaze_boss_kills_tier_3 = Utils.getElementAsFloat(Utils.getElement(profileInfo, "slayer_bosses.blaze.boss_kills_tier_3"), 0); + float blaze_boss_kills_tier_2 = Utils.getElementAsFloat(Utils.getElement( + profileInfo, + "slayer_bosses.blaze.boss_kills_tier_2" + ), 0); + float blaze_boss_kills_tier_3 = Utils.getElementAsFloat(Utils.getElement( + profileInfo, + "slayer_bosses.blaze.boss_kills_tier_3" + ), 0); Utils.renderAlignedString( EnumChatFormatting.DARK_AQUA + "Revenant T3", @@ -376,15 +403,24 @@ public class ExtraPage extends GuiProfileViewerPage { 76 ); - float pet_milestone_ores_mined = Utils.getElementAsFloat(Utils.getElement(profileInfo, "stats.pet_milestone_ores_mined"), 0); + float pet_milestone_ores_mined = Utils.getElementAsFloat(Utils.getElement( + profileInfo, + "stats.pet_milestone_ores_mined" + ), 0); float pet_milestone_sea_creatures_killed = Utils.getElementAsFloat( Utils.getElement(profileInfo, "stats.pet_milestone_sea_creatures_killed"), 0 ); float items_fished = Utils.getElementAsFloat(Utils.getElement(profileInfo, "stats.items_fished"), 0); - float items_fished_treasure = Utils.getElementAsFloat(Utils.getElement(profileInfo, "stats.items_fished_treasure"), 0); - float items_fished_large_treasure = Utils.getElementAsFloat(Utils.getElement(profileInfo, "stats.items_fished_large_treasure"), 0); + float items_fished_treasure = Utils.getElementAsFloat( + Utils.getElement(profileInfo, "stats.items_fished_treasure"), + 0 + ); + float items_fished_large_treasure = Utils.getElementAsFloat(Utils.getElement( + profileInfo, + "stats.items_fished_large_treasure" + ), 0); Utils.renderAlignedString( EnumChatFormatting.GREEN + "Ores Mined", diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java index 59373952..0f9d1b4a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java @@ -23,6 +23,7 @@ import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.core.util.StringUtils; import io.github.moulberry.notenoughupdates.cosmetics.ShaderManager; import io.github.moulberry.notenoughupdates.itemeditor.GuiElementTextField; import io.github.moulberry.notenoughupdates.miscfeatures.PetInfoOverlay; @@ -283,20 +284,9 @@ public class GuiProfileViewer extends GuiScreen { return levelObj; } + @Deprecated public static String shortNumberFormat(double n, int iteration) { - if (n < 1000) { - if (n % 1 == 0) { - return Integer.toString((int) n); - } else { - return String.format("%.2f", n); - } - } - - double d = ((long) n / 100) / 10.0; - boolean isRound = (d * 10) % 10 == 0; - return d < 1000 ? (isRound || d > 9.99 ? (int) d * 10 / 10 : d + "") + "" + c[iteration] : shortNumberFormat( - d, - iteration + 1 + return StringUtils.shortNumberFormat(n, iteration ); } @@ -1013,9 +1003,9 @@ public class GuiProfileViewer extends GuiScreen { int maxXp = (int) levelObj.maxXpForLevel; levelStr = EnumChatFormatting.DARK_PURPLE + - shortNumberFormat(Math.round((level % 1) * maxXp), 0) + + StringUtils.shortNumberFormat(Math.round((level % 1) * maxXp)) + "/" + - shortNumberFormat(maxXp, 0); + StringUtils.shortNumberFormat(maxXp); } if (totalXpStr != null) { tooltipToDisplay = Utils.createList(levelStr, totalXpStr); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/InventoriesPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/InventoriesPage.java index 8bba9c76..c98792ee 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/InventoriesPage.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/InventoriesPage.java @@ -23,6 +23,7 @@ import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.core.util.StringUtils; import io.github.moulberry.notenoughupdates.profileviewer.info.QuiverInfo; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; @@ -57,13 +58,15 @@ import static io.github.moulberry.notenoughupdates.profileviewer.GuiProfileViewe public class InventoriesPage extends GuiProfileViewerPage { public static final ResourceLocation pv_invs = new ResourceLocation("notenoughupdates:pv_invs.png"); - private static final Pattern DAMAGE_PATTERN = Pattern.compile("^Damage: \\+(\\d+)"); - private static final ResourceLocation CHEST_GUI_TEXTURE = new ResourceLocation("textures/gui/container/generic_54.png"); - private static final Pattern STRENGTH_PATTERN = Pattern.compile("^Strength: \\+(\\d+)"); - private static final Pattern FISHSPEED_PATTERN = Pattern.compile("^Increases fishing speed by \\+(\\d+)"); + private static final ResourceLocation CHEST_GUI_TEXTURE = + new ResourceLocation("textures/gui/container/generic_54.png"); + private static final Pattern FISHING_SPEED_PATTERN = Pattern.compile("^Fishing Speed: \\+(\\d+)"); private static final LinkedHashMap invNameToDisplayMap = new LinkedHashMap() { { - put("inv_contents", Utils.createItemStack(Item.getItemFromBlock(Blocks.chest), EnumChatFormatting.GRAY + "Inventory")); + put( + "inv_contents", + Utils.createItemStack(Item.getItemFromBlock(Blocks.chest), EnumChatFormatting.GRAY + "Inventory") + ); put( "ender_chest_contents", Utils.createItemStack(Item.getItemFromBlock(Blocks.ender_chest), EnumChatFormatting.GRAY + "Ender Chest") @@ -82,7 +85,9 @@ public class InventoriesPage extends GuiProfileViewerPage { put( "personal_vault_contents", Utils.editItemStackInfo( - NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager.getItemInformation().get("IRON_CHEST")), + NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager + .getItemInformation() + .get("IRON_CHEST")), EnumChatFormatting.GRAY + "Personal Vault", true ) @@ -263,21 +268,18 @@ public class InventoriesPage extends GuiProfileViewerPage { findBestItems( inventoryInfo, 6, - new String[] { "inv_contents", "ender_chest_contents" }, - new String[] { "SWORD", "BOW" }, - DAMAGE_PATTERN, - STRENGTH_PATTERN + new String[]{"inv_contents", "ender_chest_contents"}, + new String[]{"SWORD", "BOW"} ); } if (bestRods == null) { - bestRods = - findBestItems( - inventoryInfo, - 3, - new String[] { "inv_contents", "ender_chest_contents" }, - new String[] { "FISHING ROD" }, - FISHSPEED_PATTERN - ); + bestRods = findBestItems( + inventoryInfo, + 3, + new String[]{"inv_contents", "ender_chest_contents"}, + new String[]{"FISHING ROD", "FISHING WEAPON"}, + FISHING_SPEED_PATTERN + ); } for (int i = 0; i < bestWeapons.length; i++) { @@ -313,21 +315,27 @@ public class InventoriesPage extends GuiProfileViewerPage { } Utils.drawItemStackWithText( - NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager.getItemInformation().get("ARROW")), + NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager + .getItemInformation() + .get("ARROW")), guiLeft + 173, guiTop + 101, - "" + (arrowCount > 999 ? GuiProfileViewer.shortNumberFormat(arrowCount, 0) : arrowCount), + "" + (arrowCount > 999 ? StringUtils.shortNumberFormat(arrowCount) : arrowCount), true ); Utils.drawItemStackWithText( - NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager.getItemInformation().get("GREEN_CANDY")), + NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager + .getItemInformation() + .get("GREEN_CANDY")), guiLeft + 173, guiTop + 119, "" + greenCandyCount, true ); Utils.drawItemStackWithText( - NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager.getItemInformation().get("PURPLE_CANDY")), + NotEnoughUpdates.INSTANCE.manager.jsonToStack(NotEnoughUpdates.INSTANCE.manager + .getItemInformation() + .get("PURPLE_CANDY")), guiLeft + 173, guiTop + 137, "" + purpleCandyCount, @@ -344,7 +352,8 @@ public class InventoriesPage extends GuiProfileViewerPage { } } else if (mouseY < guiTop + 119 + 17) { getInstance().tooltipToDisplay = - Utils.createList(EnumChatFormatting.GREEN + "Green Candy " + EnumChatFormatting.GRAY + "x" + greenCandyCount); + Utils.createList( + EnumChatFormatting.GREEN + "Green Candy " + EnumChatFormatting.GRAY + "x" + greenCandyCount); } else { getInstance().tooltipToDisplay = Utils.createList( @@ -431,11 +440,14 @@ public class InventoriesPage extends GuiProfileViewerPage { if ( getInstance().inventoryTextField.getText() != null && - !getInstance().inventoryTextField.getText().isEmpty() && - ( - stack == null || - !NotEnoughUpdates.INSTANCE.manager.doesStackMatchSearch(stack, getInstance().inventoryTextField.getText()) - ) + !getInstance().inventoryTextField.getText().isEmpty() && + ( + stack == null || + !NotEnoughUpdates.INSTANCE.manager.doesStackMatchSearch( + stack, + getInstance().inventoryTextField.getText() + ) + ) ) { GlStateManager.translate(0, 0, 50); GuiScreen.drawRect( @@ -585,7 +597,12 @@ public class InventoriesPage extends GuiProfileViewerPage { purpleCandyCount = -1; } - private int countItemsInInventory(String internalname, JsonObject inventoryInfo, boolean specific, String... invsToSearch) { + private int countItemsInInventory( + String internalname, + JsonObject inventoryInfo, + boolean specific, + String... invsToSearch + ) { int count = 0; for (String inv : invsToSearch) { JsonArray invItems = inventoryInfo.get(inv).getAsJsonArray(); @@ -594,7 +611,7 @@ public class InventoriesPage extends GuiProfileViewerPage { JsonObject item = invItems.get(i).getAsJsonObject(); if ( (specific && item.get("internalname").getAsString().equals(internalname)) || - (!specific && item.get("internalname").getAsString().contains(internalname)) + (!specific && item.get("internalname").getAsString().contains(internalname)) ) { if (item.has("count")) { count += item.get("count").getAsInt(); @@ -615,7 +632,7 @@ public class InventoriesPage extends GuiProfileViewerPage { Pattern... importantPatterns ) { ItemStack[] bestItems = new ItemStack[numItems]; - TreeMap> map = new TreeMap<>(); + TreeMap> map = new TreeMap<>(); for (String inv : invsToSearch) { JsonArray invItems = inventoryInfo.get(inv).getAsJsonArray(); for (int i = 0; i < invItems.size(); i++) { @@ -623,22 +640,33 @@ public class InventoriesPage extends GuiProfileViewerPage { JsonObject item = invItems.get(i).getAsJsonObject(); JsonArray lore = item.get("lore").getAsJsonArray(); if (Utils.checkItemType(lore, true, typeMatches) >= 0) { - int importance = 0; - for (int j = 0; j < lore.size(); j++) { - String line = lore.get(j).getAsString(); - for (Pattern pattern : importantPatterns) { - Matcher matcher = pattern.matcher(Utils.cleanColour(line)); - if (matcher.find()) { - importance += Integer.parseInt(matcher.group(1)); + long importance = 0; + int id = 0; + if (importantPatterns.length == 0) { + String internalName = item.get("internalname").getAsString(); + importance += NotEnoughUpdates.INSTANCE.manager.auctionManager.getLowestBin(internalName); + importance += ++id; + } else { + for (int j = 0; j < lore.size(); j++) { + String line = lore.get(j).getAsString(); + for (Pattern pattern : importantPatterns) { + Matcher matcher = pattern.matcher(Utils.cleanColour(line)); + if (matcher.find()) { + importance += Integer.parseInt(matcher.group(1)); + } } } } - map.computeIfAbsent(importance, k -> new HashSet<>()).add(NotEnoughUpdates.INSTANCE.manager.jsonToStack(item, false)); + map.computeIfAbsent(importance, k -> new HashSet<>()).add(NotEnoughUpdates.INSTANCE.manager.jsonToStack( + item, + false + )); } } } int i = 0; - outer:for (int key : map.descendingKeySet()) { + outer: + for (long key : map.descendingKeySet()) { Set items = map.get(key); for (ItemStack item : items) { bestItems[i] = item; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/MiningPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/MiningPage.java index c4c788e7..c32310b7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/MiningPage.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/MiningPage.java @@ -22,12 +22,9 @@ package io.github.moulberry.notenoughupdates.profileviewer; import com.google.common.collect.Lists; import com.google.gson.JsonArray; import com.google.gson.JsonObject; +import io.github.moulberry.notenoughupdates.core.util.StringUtils; import io.github.moulberry.notenoughupdates.util.Constants; import io.github.moulberry.notenoughupdates.util.Utils; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Objects; -import java.util.function.Supplier; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.RenderHelper; @@ -39,6 +36,11 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Objects; +import java.util.function.Supplier; + public class MiningPage extends GuiProfileViewerPage { public static final ResourceLocation pv_mining = new ResourceLocation("notenoughupdates:pv_mining.png"); @@ -222,28 +224,28 @@ public class MiningPage extends GuiProfileViewerPage { //Powder Utils.renderAlignedString( EnumChatFormatting.DARK_GREEN + "Mithril Powder", - EnumChatFormatting.WHITE + GuiProfileViewer.shortNumberFormat(mithrilPowder, 0), + EnumChatFormatting.WHITE + StringUtils.shortNumberFormat(mithrilPowder), guiLeft + xStart, guiTop + yStartTop + 24, 115 ); Utils.renderAlignedString( EnumChatFormatting.LIGHT_PURPLE + "Gemstone Powder", - EnumChatFormatting.WHITE + GuiProfileViewer.shortNumberFormat(gemstonePowder, 0), + EnumChatFormatting.WHITE + StringUtils.shortNumberFormat(gemstonePowder), guiLeft + xStart, guiTop + yStartTop + 44, 115 ); Utils.renderAlignedString( EnumChatFormatting.DARK_GREEN + "Total Mithril Powder", - EnumChatFormatting.WHITE + GuiProfileViewer.shortNumberFormat(mithrilPowderTotal + mithrilPowder, 0), + EnumChatFormatting.WHITE + StringUtils.shortNumberFormat(mithrilPowderTotal + mithrilPowder), guiLeft + xStart, guiTop + yStartTop + 34, 115 ); Utils.renderAlignedString( EnumChatFormatting.LIGHT_PURPLE + "Total Gemstone Powder", - EnumChatFormatting.WHITE + GuiProfileViewer.shortNumberFormat(gemstonePowderTotal + gemstonePowder, 0), + EnumChatFormatting.WHITE + StringUtils.shortNumberFormat(gemstonePowderTotal + gemstonePowder), guiLeft + xStart, guiTop + yStartTop + 54, 115 @@ -300,7 +302,7 @@ public class MiningPage extends GuiProfileViewerPage { ); Utils.renderAlignedString( EnumChatFormatting.BLUE + "Total Placed Crystals:", - EnumChatFormatting.WHITE + GuiProfileViewer.shortNumberFormat(crystalPlacedAmount, 0), + EnumChatFormatting.WHITE + StringUtils.shortNumberFormat(crystalPlacedAmount), guiLeft + xStart, guiTop + yStartTop + 149, 110 diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PetsPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PetsPage.java index 4214371c..25751ab8 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PetsPage.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/PetsPage.java @@ -24,17 +24,10 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.core.util.StringUtils; import io.github.moulberry.notenoughupdates.util.Constants; import io.github.moulberry.notenoughupdates.util.SBInfo; import io.github.moulberry.notenoughupdates.util.Utils; -import java.awt.*; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Base64; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.renderer.GlStateManager; @@ -50,6 +43,15 @@ import net.minecraft.util.ResourceLocation; import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; +import java.awt.*; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Base64; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + public class PetsPage extends GuiProfileViewerPage { public static final ResourceLocation pv_pets = new ResourceLocation("notenoughupdates:pv_pets.png"); @@ -497,21 +499,21 @@ public class PetsPage extends GuiProfileViewerPage { Utils.renderAlignedString( EnumChatFormatting.YELLOW + "Total XP", - EnumChatFormatting.WHITE + GuiProfileViewer.shortNumberFormat(exp, 0), + EnumChatFormatting.WHITE + StringUtils.shortNumberFormat(exp), guiLeft + 319, guiTop + 125, 98 ); Utils.renderAlignedString( EnumChatFormatting.YELLOW + "Current LVL XP", - EnumChatFormatting.WHITE + GuiProfileViewer.shortNumberFormat((level % 1) * currentLevelRequirement, 0), + EnumChatFormatting.WHITE + StringUtils.shortNumberFormat((level % 1) * currentLevelRequirement), guiLeft + 319, guiTop + 143, 98 ); Utils.renderAlignedString( EnumChatFormatting.YELLOW + "Required LVL XP", - EnumChatFormatting.WHITE + GuiProfileViewer.shortNumberFormat(currentLevelRequirement, 0), + EnumChatFormatting.WHITE + StringUtils.shortNumberFormat(currentLevelRequirement), guiLeft + 319, guiTop + 161, 98 diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/bestiary/BestiaryPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/bestiary/BestiaryPage.java index 3dc97a85..efa94ee5 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/bestiary/BestiaryPage.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/bestiary/BestiaryPage.java @@ -21,16 +21,12 @@ package io.github.moulberry.notenoughupdates.profileviewer.bestiary; import com.google.gson.JsonArray; import com.google.gson.JsonObject; +import io.github.moulberry.notenoughupdates.core.util.StringUtils; import io.github.moulberry.notenoughupdates.profileviewer.GuiProfileViewer; import io.github.moulberry.notenoughupdates.profileviewer.GuiProfileViewerPage; import io.github.moulberry.notenoughupdates.profileviewer.ProfileViewer; import io.github.moulberry.notenoughupdates.util.Constants; import io.github.moulberry.notenoughupdates.util.Utils; -import java.awt.*; -import java.text.NumberFormat; -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.GlStateManager; @@ -40,6 +36,12 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; +import java.awt.*; +import java.text.NumberFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + public class BestiaryPage extends GuiProfileViewerPage { public static final ResourceLocation pv_elements = new ResourceLocation("notenoughupdates:pv_elements.png"); @@ -200,10 +202,10 @@ public class BestiaryPage extends GuiProfileViewerPage { if (level.maxed) { progressStr = EnumChatFormatting.GOLD + "MAXED!"; } else { - progressStr = EnumChatFormatting.AQUA + - GuiProfileViewer.shortNumberFormat(Math.round((levelNum % 1) * level.maxXpForLevel), 0) + + progressStr =EnumChatFormatting.AQUA + + StringUtils.shortNumberFormat(Math.round((levelNum % 1) * level.maxXpForLevel)) + "/" + - GuiProfileViewer.shortNumberFormat(level.maxXpForLevel, 0); + StringUtils.shortNumberFormat(level.maxXpForLevel); } tooltipToDisplay.add(EnumChatFormatting.GRAY + "Progress: " + progressStr); } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/Calculator.java b/src/main/java/io/github/moulberry/notenoughupdates/util/Calculator.java index 7d378a03..10bfa6a9 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/Calculator.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/Calculator.java @@ -25,10 +25,12 @@ import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Deque; import java.util.List; +import java.util.Locale; import java.util.NoSuchElementException; public class Calculator { public static BigDecimal calculate(String source) throws CalculatorException { + source = source.toLowerCase(Locale.ROOT); return evaluate(shuntingYard(lex(source))); } diff --git a/src/main/resources/mixins.notenoughupdates.json b/src/main/resources/mixins.notenoughupdates.json index ed1ba55a..0a547b4b 100644 --- a/src/main/resources/mixins.notenoughupdates.json +++ b/src/main/resources/mixins.notenoughupdates.json @@ -40,6 +40,7 @@ "MixinRenderGlobal", "MixinRenderItem", "MixinRenderList", + "MixinSkyclientCosmetics", "MixinTextureManager", "MixinTileEntitySkullRenderer", "MixinTileEntitySpecialRenderer", -- cgit From 18255a0e473092d0f389507a19944a7ddfc8078d Mon Sep 17 00:00:00 2001 From: NopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com> Date: Wed, 14 Sep 2022 22:30:25 +1000 Subject: Added chat message to let players turn on the storage gui if they accidentally turned it off (#273) * Added a chat message to turn the storage gui back on after turning it off in said storage gui * remove the skyclient mixin * map on by default --- .../notenoughupdates/commands/Commands.java | 2 ++ .../commands/dev/EnableStorageCommand.java | 39 ++++++++++++++++++++++ .../notenoughupdates/miscgui/StorageOverlay.java | 14 ++++++++ .../mixins/MixinSkyclientCosmetics.java | 39 ---------------------- .../options/seperateSections/DungeonMapConfig.java | 2 +- src/main/resources/mixins.notenoughupdates.json | 1 - 6 files changed, 56 insertions(+), 41 deletions(-) create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/commands/dev/EnableStorageCommand.java delete mode 100644 src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinSkyclientCosmetics.java (limited to 'src/main/resources') diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java index fcb2aaf9..62981a30 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/Commands.java @@ -23,6 +23,7 @@ import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.commands.dev.DevTestCommand; import io.github.moulberry.notenoughupdates.commands.dev.DiagCommand; import io.github.moulberry.notenoughupdates.commands.dev.DungeonWinTestCommand; +import io.github.moulberry.notenoughupdates.commands.dev.EnableStorageCommand; import io.github.moulberry.notenoughupdates.commands.dev.NullzeeSphereCommand; import io.github.moulberry.notenoughupdates.commands.dev.PackDevCommand; import io.github.moulberry.notenoughupdates.commands.dev.ReloadRepoCommand; @@ -74,6 +75,7 @@ public class Commands { ClientCommandHandler.instance.registerCommand(new DiagCommand()); ClientCommandHandler.instance.registerCommand(new ReloadRepoCommand()); ClientCommandHandler.instance.registerCommand(new ResetRepoCommand()); + ClientCommandHandler.instance.registerCommand(new EnableStorageCommand()); // Profile Commands ClientCommandHandler.instance.registerCommand(new PeekCommand()); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/EnableStorageCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/EnableStorageCommand.java new file mode 100644 index 00000000..3415b030 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dev/EnableStorageCommand.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.commands.dev; + +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.commands.ClientCommandBase; +import net.minecraft.command.CommandException; +import net.minecraft.command.ICommandSender; + +public class EnableStorageCommand extends ClientCommandBase { + + public EnableStorageCommand() { + super("neuenablestorage"); + } + + @Override + public void processCommand(ICommandSender sender, String[] args) throws CommandException { + NotEnoughUpdates.INSTANCE.config.storageGUI.enableStorageGUI3 = true; + NotEnoughUpdates.INSTANCE.saveConfig(); + } + +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/StorageOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/StorageOverlay.java index 27fea377..8878c284 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/StorageOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/StorageOverlay.java @@ -45,13 +45,17 @@ import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.client.shader.Framebuffer; +import net.minecraft.event.ClickEvent; +import net.minecraft.event.HoverEvent; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.inventory.ContainerChest; import net.minecraft.inventory.Slot; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.ClientCommandHandler; import org.lwjgl.input.Keyboard; @@ -1966,6 +1970,16 @@ public class StorageOverlay extends GuiElement { switch (buttonIndex) { case 0: NotEnoughUpdates.INSTANCE.config.storageGUI.enableStorageGUI3 = false; + ChatComponentText storageMessage = new ChatComponentText( + EnumChatFormatting.YELLOW + "[NEU] " + EnumChatFormatting.YELLOW + + "You just disabled the custom storage gui, did you mean to do that? If not click this message to turn it back on."); + storageMessage.setChatStyle(Utils.createClickStyle(ClickEvent.Action.RUN_COMMAND, "/neuenablestorage")); + storageMessage.setChatStyle(storageMessage.getChatStyle().setChatHoverEvent( + new HoverEvent(HoverEvent.Action.SHOW_TEXT, + new ChatComponentText(EnumChatFormatting.YELLOW + "Click to enable the custom storage gui.")))); + ChatComponentText storageChatMessage = new ChatComponentText(""); + storageChatMessage.appendSibling(storageMessage); + Minecraft.getMinecraft().thePlayer.addChatMessage(storageChatMessage); break; case 1: int size = diff --git a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinSkyclientCosmetics.java b/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinSkyclientCosmetics.java deleted file mode 100644 index 32c9f418..00000000 --- a/src/main/java/io/github/moulberry/notenoughupdates/mixins/MixinSkyclientCosmetics.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (C) 2022 NotEnoughUpdates contributors - * - * This file is part of NotEnoughUpdates. - * - * NotEnoughUpdates is free software: you can redistribute it - * and/or modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation, either - * version 3 of the License, or (at your option) any later version. - * - * NotEnoughUpdates is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with NotEnoughUpdates. If not, see . - */ - -package io.github.moulberry.notenoughupdates.mixins; - -import net.minecraftforge.event.world.WorldEvent; -import org.spongepowered.asm.mixin.Dynamic; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Pseudo; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Pseudo -@Mixin(targets = "co.skyclient.scc.SkyclientCosmetics") -public class MixinSkyclientCosmetics { - - @Dynamic - @Inject(method = "onWorldLoad", at = @At("HEAD"), cancellable = true, remap = false) - public void onWorldLoad(WorldEvent.Load event, CallbackInfo ci) { - ci.cancel(); - } -} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java index 4397c02e..8e211bd6 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/options/seperateSections/DungeonMapConfig.java @@ -73,7 +73,7 @@ public class DungeonMapConfig { name = "Show Dungeon Map", desc = "Show/hide the NEU dungeon map" ) - public boolean dmEnable = false; + public boolean dmEnable = true; @Expose @ConfigOption( diff --git a/src/main/resources/mixins.notenoughupdates.json b/src/main/resources/mixins.notenoughupdates.json index 0a547b4b..ed1ba55a 100644 --- a/src/main/resources/mixins.notenoughupdates.json +++ b/src/main/resources/mixins.notenoughupdates.json @@ -40,7 +40,6 @@ "MixinRenderGlobal", "MixinRenderItem", "MixinRenderList", - "MixinSkyclientCosmetics", "MixinTextureManager", "MixinTileEntitySkullRenderer", "MixinTileEntitySpecialRenderer", -- cgit From 2dd4a2b36211c380c0bf4e231859dfafd3c04a5b Mon Sep 17 00:00:00 2001 From: Roman / Linnea Gräf Date: Thu, 29 Sep 2022 17:25:37 +0200 Subject: Add custom keystore and refactor HypixelApi.java (#318) * Add custom keystore and refactor HypixelApi.java * Fix inputstream leak (+ less console spam) * Fix HOTM crash * Use api selected variable to find best profile * Number formatting * Make old profiles show again Co-authored-by: nopo --- .../moulberry/notenoughupdates/NEUManager.java | 6 +- .../notenoughupdates/auction/APIManager.java | 113 +-- .../commands/misc/PronounsCommand.java | 8 +- .../notenoughupdates/cosmetics/CapeManager.java | 71 +- .../notenoughupdates/cosmetics/GuiCosmetics.java | 23 +- .../notenoughupdates/profileviewer/BingoPage.java | 97 ++- .../profileviewer/GuiProfileViewer.java | 4 +- .../notenoughupdates/profileviewer/MiningPage.java | 658 +++++++++------- .../profileviewer/ProfileViewer.java | 844 +++++++++++---------- .../moulberry/notenoughupdates/util/ApiUtil.java | 203 +++++ .../notenoughupdates/util/HotmInformation.java | 12 +- .../notenoughupdates/util/HypixelApi.java | 174 ----- .../moulberry/notenoughupdates/util/PronounDB.java | 81 +- .../moulberry/notenoughupdates/util/SBInfo.java | 11 +- src/main/resources/neukeystore.jks | Bin 0 -> 101958 bytes src/main/resources/neukeystore.txt | 17 + src/main/resources/pronoundb.jks | Bin 1457 -> 0 bytes 17 files changed, 1262 insertions(+), 1060 deletions(-) create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/util/ApiUtil.java delete mode 100644 src/main/java/io/github/moulberry/notenoughupdates/util/HypixelApi.java create mode 100644 src/main/resources/neukeystore.jks create mode 100644 src/main/resources/neukeystore.txt delete mode 100644 src/main/resources/pronoundb.jks (limited to 'src/main/resources') diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java index 7a2389d4..598ecc2e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java @@ -36,7 +36,7 @@ import io.github.moulberry.notenoughupdates.recipes.Ingredient; import io.github.moulberry.notenoughupdates.recipes.NeuRecipe; import io.github.moulberry.notenoughupdates.util.Constants; import io.github.moulberry.notenoughupdates.util.HotmInformation; -import io.github.moulberry.notenoughupdates.util.HypixelApi; +import io.github.moulberry.notenoughupdates.util.ApiUtil; import io.github.moulberry.notenoughupdates.util.ItemResolutionQuery; import io.github.moulberry.notenoughupdates.util.ItemUtils; import io.github.moulberry.notenoughupdates.util.SBInfo; @@ -124,9 +124,7 @@ public class NEUManager { public String viewItemAttemptID = null; public long viewItemAttemptTime = 0; - private final String currentProfile = ""; - private final String currentProfileBackup = ""; - public final HypixelApi hypixelApi = new HypixelApi(); + public final ApiUtil apiUtils = new ApiUtil(); private final Map itemstackCache = new HashMap<>(); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java b/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java index 2dc02b7e..1b6896db 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/auction/APIManager.java @@ -287,23 +287,26 @@ public class APIManager { } public void updateLowestBin() { - manager.hypixelApi.getMyApiGZIPAsync("lowestbin.json.gz", (jsonObject) -> { - if (lowestBins == null) { - lowestBins = new JsonObject(); - } - if (!jsonObject.entrySet().isEmpty()) { - lastLowestBinUpdate = System.currentTimeMillis(); - } - for (Map.Entry entry : jsonObject.entrySet()) { - lowestBins.add(entry.getKey(), entry.getValue()); - } - if (!didFirstUpdate) { - ItemPriceInformation.updateAuctionableItemsList(); - didFirstUpdate = true; - } - GuiPriceGraph.addToCache(lowestBins, false); - }, () -> { - }); + manager.apiUtils + .newMoulberryRequest("lowestbin.json.gz") + .gunzip() + .requestJson() + .thenAccept(jsonObject -> { + if (lowestBins == null) { + lowestBins = new JsonObject(); + } + if (!jsonObject.entrySet().isEmpty()) { + lastLowestBinUpdate = System.currentTimeMillis(); + } + for (Map.Entry entry : jsonObject.entrySet()) { + lowestBins.add(entry.getKey(), entry.getValue()); + } + if (!didFirstUpdate) { + ItemPriceInformation.updateAuctionableItemsList(); + didFirstUpdate = true; + } + GuiPriceGraph.addToCache(lowestBins, false); + }); } private void ahNotification() { @@ -460,20 +463,23 @@ public class APIManager { } }; - manager.hypixelApi.getMyApiGZIPAsync("auctionLast.json.gz", process, () -> - System.out.println("Error downloading auction from Moulberry's jank API. :(")); + manager.apiUtils.newMoulberryRequest("auctionLast.json.gz") + .gunzip().requestJson().thenAccept(process); - manager.hypixelApi.getMyApiGZIPAsync("auction.json.gz", jsonObject -> { - if (jsonObject.get("success").getAsBoolean()) { - long apiUpdate = (long) jsonObject.get("time").getAsFloat(); - if (lastApiUpdate == apiUpdate) { - lastAuctionUpdate -= 30 * 1000; - } - lastApiUpdate = apiUpdate; + manager.apiUtils + .newMoulberryRequest("auction.json.gz") + .gunzip().requestJson() + .thenAccept(jsonObject -> { + if (jsonObject.get("success").getAsBoolean()) { + long apiUpdate = (long) jsonObject.get("time").getAsFloat(); + if (lastApiUpdate == apiUpdate) { + lastAuctionUpdate -= 30 * 1000; + } + lastApiUpdate = apiUpdate; - process.accept(jsonObject); - } - }, () -> System.out.println("Error downloading auction from Moulberry's jank API. :(")); + process.accept(jsonObject); + } + }); } @@ -673,8 +679,10 @@ public class APIManager { //System.out.println("Trying to update page: " + page); HashMap args = new HashMap<>(); args.put("page", "" + page); - manager.hypixelApi.getHypixelApiAsync(null, "skyblock/auctions", - args, jsonObject -> { + manager.apiUtils + .newAnonymousHypixelApiRequest("skyblock/auctions") + .requestJson() + .thenAccept(jsonObject -> { if (jsonObject == null) return; if (jsonObject.get("success").getAsBoolean()) { @@ -701,8 +709,13 @@ public class APIManager { } else { pagesToDownload.addLast(page); } - }, () -> pagesToDownload.addLast(page) - ); + }) + .handle((ignored, ex) -> { + if (ex != null) { + pagesToDownload.addLast(page); + } + return null; + }); } private static final Pattern BAZAAR_ENCHANTMENT_PATTERN = Pattern.compile("ENCHANTMENT_(\\D*)_(\\d+)"); @@ -716,11 +729,10 @@ public class APIManager { } public void updateBazaar() { - manager.hypixelApi.getHypixelApiAsync( - NotEnoughUpdates.INSTANCE.config.apiData.apiKey, - "skyblock/bazaar", - new HashMap<>(), - (jsonObject) -> { + manager.apiUtils + .newHypixelApiRequest("skyblock/bazaar") + .requestJson() + .thenAccept(jsonObject -> { if (!jsonObject.get("success").getAsBoolean()) return; craftCost.clear(); @@ -755,20 +767,23 @@ public class APIManager { } } GuiPriceGraph.addToCache(bazaarJson, true); - } - ); + }); } public void updateAvgPrices() { - manager.hypixelApi.getMyApiGZIPAsync("auction_averages/3day.json.gz", (jsonObject) -> { - craftCost.clear(); - auctionPricesJson = jsonObject; - lastAuctionAvgUpdate = System.currentTimeMillis(); - }, () -> { - }); - manager.hypixelApi.getMyApiGZIPAsync("auction_averages_lbin/1day.json.gz", (jsonObject) -> - auctionPricesAvgLowestBinJson = jsonObject, () -> { - }); + manager.apiUtils + .newMoulberryRequest("auction_averages/3day.json.gz") + .gunzip().requestJson().thenAccept((jsonObject) -> { + craftCost.clear(); + auctionPricesJson = jsonObject; + lastAuctionAvgUpdate = System.currentTimeMillis(); + }); + manager.apiUtils + .newMoulberryRequest("auction_averages_lbin/1day.json.gz") + .gunzip().requestJson() + .thenAccept((jsonObject) -> { + auctionPricesAvgLowestBinJson = jsonObject; + }); } public Set getItemAuctionInfoKeySet() { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/PronounsCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/PronounsCommand.java index 6d0ee88d..5a4f1400 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/PronounsCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/PronounsCommand.java @@ -25,7 +25,6 @@ import io.github.moulberry.notenoughupdates.util.MinecraftExecutor; import io.github.moulberry.notenoughupdates.util.PronounDB; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; -import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.client.gui.GuiNewChat; import net.minecraft.command.CommandException; import net.minecraft.command.ICommandSender; @@ -75,9 +74,9 @@ public class PronounsCommand extends ClientCommandBase { c.complete(Utils.parseDashlessUUID(uuidString)); } }); - pronouns = c.thenApplyAsync(PronounDB::getPronounsFor); + pronouns = c.thenCompose(PronounDB::getPronounsFor); } else { - pronouns = CompletableFuture.supplyAsync(() -> PronounDB.getPronounsFor(platform, user)); + pronouns = PronounDB.getPronounsFor(platform, user); } pronouns.handleAsync((pronounChoice, throwable) -> { if (throwable != null || !pronounChoice.isPresent()) { @@ -85,7 +84,8 @@ public class PronounsCommand extends ClientCommandBase { return null; } PronounDB.PronounChoice betterPronounChoice = pronounChoice.get(); - nc.printChatMessageWithOptionalDeletion(new ChatComponentText("§e[NEU] Pronouns for §b" + user + " §eon §b" + platform + "§e:"), id); + nc.printChatMessageWithOptionalDeletion(new ChatComponentText( + "§e[NEU] Pronouns for §b" + user + " §eon §b" + platform + "§e:"), id); betterPronounChoice.render().forEach(it -> nc.printChatMessage(new ChatComponentText("§e[NEU] §a" + it))); return null; }, MinecraftExecutor.INSTANCE); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeManager.java b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeManager.java index 293535e7..7a609a2a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/CapeManager.java @@ -145,46 +145,53 @@ public class CapeManager { } private void updateCapes() { - NotEnoughUpdates.INSTANCE.manager.hypixelApi.getMyApiAsync("activecapes.json", (jsonObject) -> { - if (jsonObject.get("success").getAsBoolean()) { - lastJsonSync = jsonObject; - - lastCapeSynced = System.currentTimeMillis(); - capeMap.clear(); - for (JsonElement active : jsonObject.get("active").getAsJsonArray()) { - if (active.isJsonObject()) { - JsonObject activeObj = (JsonObject) active; - setCape(activeObj.get("_id").getAsString(), activeObj.get("capeType").getAsString(), false); + NotEnoughUpdates.INSTANCE.manager.apiUtils + .newMoulberryRequest("activecapes.json") + .requestJson() + .thenAccept(jsonObject -> { + if (jsonObject.get("success").getAsBoolean()) { + lastJsonSync = jsonObject; + + lastCapeSynced = System.currentTimeMillis(); + capeMap.clear(); + for (JsonElement active : jsonObject.get("active").getAsJsonArray()) { + if (active.isJsonObject()) { + JsonObject activeObj = (JsonObject) active; + setCape(activeObj.get("_id").getAsString(), activeObj.get("capeType").getAsString(), false); + } } } - } - }, () -> System.out.println("[MBAPI] Update capes errored")); + }); if (Minecraft.getMinecraft().thePlayer != null && permSyncTries > 0) { String uuid = Minecraft.getMinecraft().thePlayer.getUniqueID().toString().replace("-", ""); permSyncTries--; - NotEnoughUpdates.INSTANCE.manager.hypixelApi.getMyApiAsync("permscapes.json", (jsonObject) -> { - if (!jsonObject.get("success").getAsBoolean()) return; - - permSyncTries = 0; - availableCapes.clear(); - for (JsonElement permPlayer : jsonObject.get("perms").getAsJsonArray()) { - if (!permPlayer.isJsonObject()) continue; - String playerUuid = permPlayer.getAsJsonObject().get("_id").getAsString(); - if (!(playerUuid != null && playerUuid.equals(uuid))) continue; - for (JsonElement perm : permPlayer.getAsJsonObject().get("perms").getAsJsonArray()) { - if (!perm.isJsonPrimitive()) continue; - String cape = perm.getAsString(); - if (cape.equals("*")) { - allAvailable = true; - } else { - availableCapes.add(cape); - } + NotEnoughUpdates.INSTANCE.manager.apiUtils + .newMoulberryRequest("permscapes.json") + .requestJson() + .thenAccept(jsonObject -> { + if (!jsonObject.get("success").getAsBoolean()) return; + + permSyncTries = 0; + availableCapes.clear(); + for (JsonElement permPlayer : jsonObject.get("perms").getAsJsonArray()) { + if (!permPlayer.isJsonObject()) continue; + String playerUuid = permPlayer.getAsJsonObject().get("_id").getAsString(); + if (!(playerUuid != null && playerUuid.equals(uuid))) continue; + for (JsonElement perm : permPlayer.getAsJsonObject().get("perms").getAsJsonArray()) { + if (!perm.isJsonPrimitive()) continue; + String cape = perm.getAsString(); + if (cape.equals("*")) { + allAvailable = true; + } else { + availableCapes.add(cape); + } + } + return; } - return; - } - }, () -> System.out.println("[MBAPI] Update capes errored - perms")); + + }); } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/GuiCosmetics.java b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/GuiCosmetics.java index 0e37bed3..12d8c92d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/GuiCosmetics.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/cosmetics/GuiCosmetics.java @@ -404,21 +404,14 @@ public class GuiCosmetics extends GuiScreen { .getSession() .getProfile(), accessToken, serverId); - if (wantToEquipCape == null) { - NotEnoughUpdates.INSTANCE.manager.hypixelApi.getMyApiAsync( - "cgi-bin/changecape.py?capeType=null&serverId=" + - serverId + "&username=" + userName, - System.out::println, - () -> System.out.println("Change cape error") - ); - } else { - NotEnoughUpdates.INSTANCE.manager.hypixelApi.getMyApiAsync( - "cgi-bin/changecape.py?capeType=" + wantToEquipCape + "&serverId=" + - serverId + "&username=" + userName, - System.out::println, - () -> System.out.println("Change cape error") - ); - } + String toEquipName = wantToEquipCape == null ? "null" : wantToEquipCape; + NotEnoughUpdates.INSTANCE.manager.apiUtils + .newMoulberryRequest("cgi-bin/changecape.py") + .queryArgument("capeType", toEquipName) + .queryArgument("serverId", serverId) + .queryArgument("username", userName) + .requestString() + .thenAccept(System.out::println); } catch (Exception e) { System.out.println("Exception while generating mojang shared secret"); e.printStackTrace(); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BingoPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BingoPage.java index 27b9b363..ab80afab 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BingoPage.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/BingoPage.java @@ -24,9 +24,6 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.util.Utils; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.GlStateManager; @@ -39,6 +36,9 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; +import java.util.ArrayList; +import java.util.List; + public class BingoPage extends GuiProfileViewerPage { private static final ResourceLocation BINGO_GUI_TEXTURE = new ResourceLocation("notenoughupdates:pv_bingo_tab.png"); @@ -153,16 +153,23 @@ public class BingoPage extends GuiProfileViewerPage { } else { personalGoalsString = EnumChatFormatting.AQUA + - "Personal Goals: " + - EnumChatFormatting.WHITE + - completedGoals.size() + - EnumChatFormatting.GOLD + - "/" + - EnumChatFormatting.WHITE + - 20; + "Personal Goals: " + + EnumChatFormatting.WHITE + + completedGoals.size() + + EnumChatFormatting.GOLD + + "/" + + EnumChatFormatting.WHITE + + 20; } Utils.drawStringF(totalPointsString, Minecraft.getMinecraft().fontRendererObj, guiLeft + 22, guiTop + 19, true, 0); - Utils.drawStringF(personalGoalsString, Minecraft.getMinecraft().fontRendererObj, guiLeft + 22, guiTop + 31, true, 0); + Utils.drawStringF( + personalGoalsString, + Minecraft.getMinecraft().fontRendererObj, + guiLeft + 22, + guiTop + 31, + true, + 0 + ); GlStateManager.enableLighting(); } @@ -218,7 +225,9 @@ public class BingoPage extends GuiProfileViewerPage { } finalTier++; } - double nextTier = finalTier < totalTiers ? tiers.get(totalTiers - 1).getAsLong() : tiers.get(finalTier - 1).getAsLong(); + double nextTier = finalTier < totalTiers ? tiers.get(totalTiers - 1).getAsLong() : tiers + .get(finalTier - 1) + .getAsLong(); int progressToNextTier = (int) Math.round(progress / nextTier * 100); if (progressToNextTier > 100) progressToNextTier = 100; String progressBar = generateProgressIndicator(progress, nextTier); @@ -232,34 +241,37 @@ public class BingoPage extends GuiProfileViewerPage { tooltip.add(""); tooltip.add( EnumChatFormatting.GRAY + - "Progress to " + - name + - " " + - nextTierNum + - ": " + - EnumChatFormatting.YELLOW + - progressToNextTier + - EnumChatFormatting.GOLD + - "%" + "Progress to " + + name + + " " + + nextTierNum + + ": " + + EnumChatFormatting.YELLOW + + progressToNextTier + + EnumChatFormatting.GOLD + + "%" ); tooltip.add( progressBar + - EnumChatFormatting.YELLOW + - " " + - progressString + - EnumChatFormatting.GOLD + - "/" + - EnumChatFormatting.YELLOW + - nextTierString + EnumChatFormatting.YELLOW + + " " + + progressString + + EnumChatFormatting.GOLD + + "/" + + EnumChatFormatting.YELLOW + + nextTierString ); tooltip.add(""); tooltip.add(EnumChatFormatting.DARK_GRAY.toString() + EnumChatFormatting.ITALIC + "Community Goals are"); - tooltip.add(EnumChatFormatting.DARK_GRAY.toString() + EnumChatFormatting.ITALIC + "collaborative - anyone with a"); - tooltip.add(EnumChatFormatting.DARK_GRAY.toString() + EnumChatFormatting.ITALIC + "Bingo profile can help to reach"); + tooltip.add( + EnumChatFormatting.DARK_GRAY.toString() + EnumChatFormatting.ITALIC + "collaborative - anyone with a"); + tooltip.add( + EnumChatFormatting.DARK_GRAY.toString() + EnumChatFormatting.ITALIC + "Bingo profile can help to reach"); tooltip.add(EnumChatFormatting.DARK_GRAY.toString() + EnumChatFormatting.ITALIC + "the goal!"); tooltip.add(""); tooltip.add(EnumChatFormatting.DARK_GRAY.toString() + EnumChatFormatting.ITALIC + "The more you contribute"); - tooltip.add(EnumChatFormatting.DARK_GRAY.toString() + EnumChatFormatting.ITALIC + "towards the goal, the more you"); + tooltip.add( + EnumChatFormatting.DARK_GRAY.toString() + EnumChatFormatting.ITALIC + "towards the goal, the more you"); tooltip.add(EnumChatFormatting.DARK_GRAY.toString() + EnumChatFormatting.ITALIC + "will be rewarded"); if (finalTier == totalTiers) { @@ -287,7 +299,14 @@ public class BingoPage extends GuiProfileViewerPage { private void showMissingDataMessage(int guiLeft, int guiTop) { String message = EnumChatFormatting.RED + "No Bingo data for current event!"; - Utils.drawStringCentered(message, Minecraft.getMinecraft().fontRendererObj, guiLeft + 431 / 2f, guiTop + 101, true, 0); + Utils.drawStringCentered( + message, + Minecraft.getMinecraft().fontRendererObj, + guiLeft + 431 / 2f, + guiTop + 101, + true, + 0 + ); } private List jsonArrayToStringList(JsonArray completedGoals) { @@ -314,18 +333,14 @@ public class BingoPage extends GuiProfileViewerPage { if (currentTime - lastResourceRequest < 120 * 1000 && bingoGoals != null) return; lastResourceRequest = currentTime; - HashMap args = new HashMap<>(); - NotEnoughUpdates.INSTANCE.manager.hypixelApi.getHypixelApiAsync( - NotEnoughUpdates.INSTANCE.config.apiData.apiKey, - "resources/skyblock/bingo", - args, - jsonObject -> { + NotEnoughUpdates.INSTANCE.manager.apiUtils + .newAnonymousHypixelApiRequest("resources/skyblock/bingo") + .requestJson() + .thenAccept(jsonObject -> { if (jsonObject.has("success") && jsonObject.get("success").getAsBoolean()) { bingoGoals = jsonArrayToJsonObjectList(jsonObject.get("goals").getAsJsonArray()); currentEventId = jsonObject.get("id").getAsInt(); } - }, - () -> {} - ); + }); } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java index 83d8fab9..094f3892 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/GuiProfileViewer.java @@ -165,7 +165,9 @@ public class GuiProfileViewer extends GuiScreen { NotEnoughUpdates.INSTANCE.config.profileViewer.showPronounsInPv ? Optional.ofNullable(profile).map(it -> Utils.parseDashlessUUID(it.getUuid())) : Optional.empty(), - uuid -> CompletableFuture.supplyAsync(() -> uuid.flatMap(PronounDB::getPronounsFor)) + uuid -> uuid.isPresent() + ? PronounDB.getPronounsFor(uuid.get()) + : CompletableFuture.completedFuture(Optional.empty()) ); public final GuiElementTextField playerNameTextField; public final GuiElementTextField inventoryTextField = new GuiElementTextField("", GuiElementTextField.SCALE_TEXT); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/MiningPage.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/MiningPage.java index 94dbdc1e..d3b43e20 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/MiningPage.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/MiningPage.java @@ -75,7 +75,12 @@ public class MiningPage extends GuiProfileViewerPage { if (levelObjhotm == null) { float hotmXp = Utils.getElementAsFloat(Utils.getElement(profileInfo, "mining_core.experience"), 0); levelObjhotm = - ProfileViewer.getLevel(Utils.getElementOrDefault(leveling, "HOTM", new JsonArray()).getAsJsonArray(), hotmXp, 7, false); + ProfileViewer.getLevel( + Utils.getElementOrDefault(leveling, "HOTM", new JsonArray()).getAsJsonArray(), + hotmXp, + 7, + false + ); levelObjhotms.put(profileId, levelObjhotm); } @@ -83,37 +88,63 @@ public class MiningPage extends GuiProfileViewerPage { //The stats that show float mithrilPowder = Utils.getElementAsFloat(Utils.getElement(profileInfo, "mining_core.powder_mithril"), 0); float gemstonePowder = Utils.getElementAsFloat(Utils.getElement(profileInfo, "mining_core.powder_gemstone"), 0); - float mithrilPowderTotal = Utils.getElementAsFloat(Utils.getElement(profileInfo, "mining_core.powder_spent_mithril"), 0); - float gemstonePowderTotal = (Utils.getElementAsFloat(Utils.getElement(profileInfo, "mining_core.powder_spent_gemstone"), 0)); + float mithrilPowderTotal = Utils.getElementAsFloat(Utils.getElement( + profileInfo, + "mining_core.powder_spent_mithril" + ), 0); + float gemstonePowderTotal = (Utils.getElementAsFloat(Utils.getElement( + profileInfo, + "mining_core.powder_spent_gemstone" + ), 0)); String jadeCrystal = (Utils.getElementAsString(Utils.getElement(profileInfo, "mining_core.crystals.jade_crystal.state"), "Not Found")); float crystalPlacedAmount = (Utils.getElementAsFloat(Utils.getElement(profileInfo, "mining_core.crystals.jade_crystal.total_placed"), 0)); String jadeCrystalString = "§c✖"; String amethystCrystal = - (Utils.getElementAsString(Utils.getElement(profileInfo, "mining_core.crystals.amethyst_crystal.state"), "Not Found")); + (Utils.getElementAsString( + Utils.getElement(profileInfo, "mining_core.crystals.amethyst_crystal.state"), + "Not Found" + )); String amethystCrystalString = "§c✖"; String amberCrystal = - (Utils.getElementAsString(Utils.getElement(profileInfo, "mining_core.crystals.amber_crystal.state"), "Not Found")); + (Utils.getElementAsString( + Utils.getElement(profileInfo, "mining_core.crystals.amber_crystal.state"), + "Not Found" + )); String amberCrystalString = "§c✖"; String sapphireCrystal = - (Utils.getElementAsString(Utils.getElement(profileInfo, "mining_core.crystals.sapphire_crystal.state"), "Not Found")); + (Utils.getElementAsString( + Utils.getElement(profileInfo, "mining_core.crystals.sapphire_crystal.state"), + "Not Found" + )); String sapphireCrystalString = "§c✖"; String topazCrystal = - (Utils.getElementAsString(Utils.getElement(profileInfo, "mining_core.crystals.topaz_crystal.state"), "Not Found")); + (Utils.getElementAsString( + Utils.getElement(profileInfo, "mining_core.crystals.topaz_crystal.state"), + "Not Found" + )); String topazCrystalString = "§c✖"; String jasperCrystal = - (Utils.getElementAsString(Utils.getElement(profileInfo, "mining_core.crystals.jasper_crystal.state"), "Not Found")); + (Utils.getElementAsString( + Utils.getElement(profileInfo, "mining_core.crystals.jasper_crystal.state"), + "Not Found" + )); String jasperCrystalString = "§c✖"; String rubyCrystal = (Utils.getElementAsString(Utils.getElement(profileInfo, "mining_core.crystals.ruby_crystal.state"), "Not Found")); String rubyCrystalString = "§c✖"; int miningFortune = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.mining_fortune"), 0))); - int miningFortuneStat = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.mining_fortune"), 0)) * 5); + int miningFortuneStat = ((Utils.getElementAsInt( + Utils.getElement(profileInfo, "mining_core.nodes.mining_fortune"), + 0 + )) * 5); int miningSpeed = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.mining_speed"), 0))); - int miningSpeedStat = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.mining_speed"), 0)) * 20); + int miningSpeedStat = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.mining_speed"), 0)) * + 20); int dailyPowder = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.daily_powder"), 0))); - int dailyPowderStat = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.daily_powder"), 0)) * 36 + 364); + int dailyPowderStat = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.daily_powder"), 0)) * + 36 + 364); int effMiner = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.efficient_miner"), 0))); float effMinerStat = (float) ( (Utils.getElementAsFloat(Utils.getElement(profileInfo, "mining_core.nodes.efficient_miner"), 0)) * 0.4 + 10.4 @@ -121,7 +152,10 @@ public class MiningPage extends GuiProfileViewerPage { float effMinerStat2 = (float) ( (Utils.getElementAsFloat(Utils.getElement(profileInfo, "mining_core.nodes.efficient_miner"), 0)) * .06 + 0.31 ); - int tittyInsane = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.titanium_insanium"), 0))); + int tittyInsane = ((Utils.getElementAsInt( + Utils.getElement(profileInfo, "mining_core.nodes.titanium_insanium"), + 0 + ))); float tittyInsaneStat = (float) ( (Utils.getElementAsFloat(Utils.getElement(profileInfo, "mining_core.nodes.titanium_insanium"), 0)) * .1 + 2 ); @@ -143,23 +177,48 @@ public class MiningPage extends GuiProfileViewerPage { float orbitStat = (float) ( (Utils.getElementAsFloat(Utils.getElement(profileInfo, "mining_core.nodes.experience_orbs"), 0)) * .01 + 0.2 ); - int crystallized = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.fallen_star_bonus"), 0))); - int crystallizedStat = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.fallen_star_bonus"), 0)) * 6 + 14); + int crystallized = ((Utils.getElementAsInt( + Utils.getElement(profileInfo, "mining_core.nodes.fallen_star_bonus"), + 0 + ))); + int crystallizedStat = ((Utils.getElementAsInt( + Utils.getElement(profileInfo, "mining_core.nodes.fallen_star_bonus"), + 0 + )) * 6 + 14); int professional = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.professional"), 0))); - int professionalStat = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.professional"), 0)) * 5 + 50); + int professionalStat = ((Utils.getElementAsInt( + Utils.getElement(profileInfo, "mining_core.nodes.professional"), + 0 + )) * 5 + 50); int greatExplorer = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.great_explorer"), 0))); - int greatExplorerStat = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.great_explorer"), 0)) * 4 + 16); + int greatExplorerStat = ((Utils.getElementAsInt( + Utils.getElement(profileInfo, "mining_core.nodes.great_explorer"), + 0 + )) * 4 + 16); int fortunate = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.fortunate"), 0))); - int fortunateStat = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.fortunate"), 0)) * 4 + 20); + int fortunateStat = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.fortunate"), 0)) * 4 + + 20); int lonesomeMiner = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.lonesome_miner"), 0))); float lonesomeMinerStat = (float) ( (Utils.getElementAsFloat(Utils.getElement(profileInfo, "mining_core.nodes.lonesome_miner"), 0)) * .5 + 5 ); - int miningFortune2 = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.mining_fortune_2"), 0))); - int miningFortune2Stat = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.mining_fortune_2"), 0)) * 5); + int miningFortune2 = ((Utils.getElementAsInt( + Utils.getElement(profileInfo, "mining_core.nodes.mining_fortune_2"), + 0 + ))); + int miningFortune2Stat = ((Utils.getElementAsInt(Utils.getElement( + profileInfo, + "mining_core.nodes.mining_fortune_2" + ), 0)) * 5); int miningSpeed2 = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.mining_speed_2"), 0))); - int miningSpeed2Stat = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.mining_speed_2"), 0)) * 40); - int miningSpeedBoost = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.mining_speed_boost"), 0))); + int miningSpeed2Stat = ((Utils.getElementAsInt( + Utils.getElement(profileInfo, "mining_core.nodes.mining_speed_2"), + 0 + )) * 40); + int miningSpeedBoost = ((Utils.getElementAsInt(Utils.getElement( + profileInfo, + "mining_core.nodes.mining_speed_boost" + ), 0))); int veinSeeker = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.vein_seeker"), 0))); int powderBuff = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.powder_buff"), 0))); int potm = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.special_0"), 0))); @@ -172,7 +231,8 @@ public class MiningPage extends GuiProfileViewerPage { effMinerStat2 = 1; } int mole = ((Utils.getElementAsInt(Utils.getElement(profileInfo, "mining_core.nodes.mole"), 0))); - float moleStat = (float) ((Utils.getElementAsFloat(Utils.getElement(profileInfo, "mining_core.nodes.mole"), 0)) * 0.051); + float moleStat = (float) ((Utils.getElementAsFloat(Utils.getElement(profileInfo, "mining_core.nodes.mole"), 0)) * + 0.051); double moleperkstat = (double) mole / 20 - 0.55 + 50; double moleperkstat2 = (double) Math.round(moleperkstat * 100) / 100; @@ -320,35 +380,35 @@ public class MiningPage extends GuiProfileViewerPage { () -> miningSpeed != 50 && miningSpeed != 0 ? Lists.newArrayList( - "Mining Speed", - EnumChatFormatting.GRAY + "Level " + miningSpeed + EnumChatFormatting.DARK_GRAY + "/50", - "", - EnumChatFormatting.GRAY + + "Mining Speed", + EnumChatFormatting.GRAY + "Level " + miningSpeed + EnumChatFormatting.DARK_GRAY + "/50", + "", + EnumChatFormatting.GRAY + "Grants " + EnumChatFormatting.GREEN + "+" + miningSpeedStat + EnumChatFormatting.GOLD + " ⸕ Mining", - EnumChatFormatting.GOLD + "Speed" + EnumChatFormatting.GRAY + ".", - "", - EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.DARK_GREEN + + EnumChatFormatting.GOLD + "Speed" + EnumChatFormatting.GRAY + ".", + "", + EnumChatFormatting.GRAY + "Cost", + EnumChatFormatting.DARK_GREEN + "" + GuiProfileViewer.numberFormat.format(Math.pow(miningSpeed + 2, 3)) + " Mithril Powder" - ) + ) : Lists.newArrayList( "Mining Speed", EnumChatFormatting.GRAY + "Level " + miningSpeed + EnumChatFormatting.DARK_GRAY + "/50", "", EnumChatFormatting.GRAY + - "Grants " + - EnumChatFormatting.GREEN + - "+" + - miningSpeedStat + - EnumChatFormatting.GOLD + - " ⸕ Mining", + "Grants " + + EnumChatFormatting.GREEN + + "+" + + miningSpeedStat + + EnumChatFormatting.GOLD + + " ⸕ Mining", EnumChatFormatting.GOLD + "Speed" + EnumChatFormatting.GRAY + "." ), 50 @@ -363,35 +423,35 @@ public class MiningPage extends GuiProfileViewerPage { () -> miningFortune != 0 && miningFortune != 50 ? Lists.newArrayList( - "Mining Fortune", - EnumChatFormatting.GRAY + "Level " + miningFortune + EnumChatFormatting.DARK_GRAY + "/50", - "", - EnumChatFormatting.GRAY + + "Mining Fortune", + EnumChatFormatting.GRAY + "Level " + miningFortune + EnumChatFormatting.DARK_GRAY + "/50", + "", + EnumChatFormatting.GRAY + "Grants " + EnumChatFormatting.GREEN + "+" + miningFortuneStat + EnumChatFormatting.GOLD + " ☘ Mining", - EnumChatFormatting.GOLD + "Fortune" + EnumChatFormatting.GRAY + ".", - "", - EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.DARK_GREEN + + EnumChatFormatting.GOLD + "Fortune" + EnumChatFormatting.GRAY + ".", + "", + EnumChatFormatting.GRAY + "Cost", + EnumChatFormatting.DARK_GREEN + "" + GuiProfileViewer.numberFormat.format(Math.pow(miningFortune + 2, 3)) + " Mithril Powder" - ) + ) : Lists.newArrayList( "Mining Fortune", EnumChatFormatting.GRAY + "Level " + miningFortune + EnumChatFormatting.DARK_GRAY + "/50", "", EnumChatFormatting.GRAY + - "Grants " + - EnumChatFormatting.GREEN + - "+" + - miningFortuneStat + - EnumChatFormatting.GOLD + - " ☘ Mining", + "Grants " + + EnumChatFormatting.GREEN + + "+" + + miningFortuneStat + + EnumChatFormatting.GOLD + + " ☘ Mining", EnumChatFormatting.GOLD + "Fortune" + EnumChatFormatting.GRAY + "." ), 50 @@ -406,38 +466,38 @@ public class MiningPage extends GuiProfileViewerPage { () -> tittyInsane != 0 && tittyInsane != 50 ? Lists.newArrayList( - "Titanium Insanium", - EnumChatFormatting.GRAY + "Level " + tittyInsane + EnumChatFormatting.DARK_GRAY + "/50", - "", - EnumChatFormatting.GRAY + "When mining Mithril Ore, you", - EnumChatFormatting.GRAY + + "Titanium Insanium", + EnumChatFormatting.GRAY + "Level " + tittyInsane + EnumChatFormatting.DARK_GRAY + "/50", + "", + EnumChatFormatting.GRAY + "When mining Mithril Ore, you", + EnumChatFormatting.GRAY + "have a " + EnumChatFormatting.GREEN + tittyInsaneStat + "% " + EnumChatFormatting.GRAY + "chance to", - EnumChatFormatting.GRAY + "convert the block into Titanium", - EnumChatFormatting.GRAY + "Ore.", - "", - EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.DARK_GREEN + + EnumChatFormatting.GRAY + "convert the block into Titanium", + EnumChatFormatting.GRAY + "Ore.", + "", + EnumChatFormatting.GRAY + "Cost", + EnumChatFormatting.DARK_GREEN + "" + GuiProfileViewer.numberFormat.format((int) Math.pow(tittyInsane + 2, 3)) + " Mithril Powder" - ) + ) : Lists.newArrayList( "Titanium Insanium", EnumChatFormatting.GRAY + "Level " + tittyInsane + EnumChatFormatting.DARK_GRAY + "/50", "", EnumChatFormatting.GRAY + "When mining Mithril Ore, you", EnumChatFormatting.GRAY + - "have a " + - EnumChatFormatting.GREEN + - tittyInsaneStat + - "% " + - EnumChatFormatting.GRAY + - "chance to", + "have a " + + EnumChatFormatting.GREEN + + tittyInsaneStat + + "% " + + EnumChatFormatting.GRAY + + "chance to", EnumChatFormatting.GRAY + "convert the block into Titanium", EnumChatFormatting.GRAY + "Ore." ), @@ -453,31 +513,33 @@ public class MiningPage extends GuiProfileViewerPage { () -> potm == 0 ? Lists.newArrayList( // Peak of the mountain == 0 - "Mining Speed Boost", - "", - EnumChatFormatting.GRAY + "Pickaxe Ability: Mining Speed Boost", - EnumChatFormatting.GRAY + "Grants " + EnumChatFormatting.GREEN + "200% " + EnumChatFormatting.GOLD + "⸕ Mining", - EnumChatFormatting.GOLD + + "Mining Speed Boost", + "", + EnumChatFormatting.GRAY + "Pickaxe Ability: Mining Speed Boost", + EnumChatFormatting.GRAY + "Grants " + EnumChatFormatting.GREEN + "200% " + EnumChatFormatting.GOLD + + "⸕ Mining", + EnumChatFormatting.GOLD + "Speed " + EnumChatFormatting.GRAY + "for " + EnumChatFormatting.GREEN + "15s" + EnumChatFormatting.GRAY, - EnumChatFormatting.DARK_GRAY + "Cooldown: " + EnumChatFormatting.GREEN + "120s" - ) + EnumChatFormatting.DARK_GRAY + "Cooldown: " + EnumChatFormatting.GREEN + "120s" + ) : Lists.newArrayList( // Peak of the mountain > 0 "Mining Speed Boost", "", EnumChatFormatting.GRAY + "Pickaxe Ability: Mining Speed Boost", - EnumChatFormatting.GRAY + "Grants " + EnumChatFormatting.GREEN + "300% " + EnumChatFormatting.GOLD + "⸕ Mining", + EnumChatFormatting.GRAY + "Grants " + EnumChatFormatting.GREEN + "300% " + EnumChatFormatting.GOLD + + "⸕ Mining", EnumChatFormatting.GOLD + - "Speed " + - EnumChatFormatting.GRAY + - "for " + - EnumChatFormatting.GREEN + - "20s" + - EnumChatFormatting.GRAY, + "Speed " + + EnumChatFormatting.GRAY + + "for " + + EnumChatFormatting.GREEN + + "20s" + + EnumChatFormatting.GRAY, EnumChatFormatting.DARK_GRAY + "Cooldown: " + EnumChatFormatting.GREEN + "120s" ) ); @@ -509,19 +571,19 @@ public class MiningPage extends GuiProfileViewerPage { () -> luckofcave != 0 && luckofcave != 45 ? Lists.newArrayList( - "Luck of the Cave", - "§7Level " + luckofcave + EnumChatFormatting.DARK_GRAY + "/45", - "", - "§7Increases the chance for you to", - "§7trigger rare occurrences im", - "§2Dwarven Mines " + EnumChatFormatting.GRAY + "by " + EnumChatFormatting.GREEN + luckofcaveStat + "%§7.", - "", - EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.DARK_GREEN + + "Luck of the Cave", + "§7Level " + luckofcave + EnumChatFormatting.DARK_GRAY + "/45", + "", + "§7Increases the chance for you to", + "§7trigger rare occurrences im", + "§2Dwarven Mines " + EnumChatFormatting.GRAY + "by " + EnumChatFormatting.GREEN + luckofcaveStat + "%§7.", + "", + EnumChatFormatting.GRAY + "Cost", + EnumChatFormatting.DARK_GREEN + "" + GuiProfileViewer.numberFormat.format((int) Math.pow(luckofcave + 2, 3.07)) + " Mithril Powder" - ) + ) : Lists.newArrayList( "Luck of the Cave", "§7Level " + luckofcave + EnumChatFormatting.DARK_GRAY + "/45", @@ -542,33 +604,33 @@ public class MiningPage extends GuiProfileViewerPage { () -> dailyPowder != 0 && dailyPowder != 100 ? Lists.newArrayList( - "Daily Powder", - EnumChatFormatting.GRAY + "Level " + dailyPowder + EnumChatFormatting.DARK_GRAY + "/100", - "", - EnumChatFormatting.GRAY + + "Daily Powder", + EnumChatFormatting.GRAY + "Level " + dailyPowder + EnumChatFormatting.DARK_GRAY + "/100", + "", + EnumChatFormatting.GRAY + "Gains " + EnumChatFormatting.GREEN + dailyPowderStat + " Powder" + EnumChatFormatting.GRAY + " from the", - EnumChatFormatting.GRAY + "first ore you mine every day.", - EnumChatFormatting.GRAY + "Works for all Powder types.", - "", - EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.DARK_GREEN + "" + (200 + ((dailyPowder) * 18)) + " Mithril Powder" - ) + EnumChatFormatting.GRAY + "first ore you mine every day.", + EnumChatFormatting.GRAY + "Works for all Powder types.", + "", + EnumChatFormatting.GRAY + "Cost", + EnumChatFormatting.DARK_GREEN + "" + (200 + ((dailyPowder) * 18)) + " Mithril Powder" + ) : Lists.newArrayList( "Daily Powder", EnumChatFormatting.GRAY + "Level " + dailyPowder + EnumChatFormatting.DARK_GRAY + "/100", "", EnumChatFormatting.GRAY + - "Gains " + - EnumChatFormatting.GREEN + - dailyPowderStat + - " Powder" + - EnumChatFormatting.GRAY + - " from the", + "Gains " + + EnumChatFormatting.GREEN + + dailyPowderStat + + " Powder" + + EnumChatFormatting.GRAY + + " from the", EnumChatFormatting.GRAY + "first ore you mine every day.", EnumChatFormatting.GRAY + "Works for all Powder types." ), @@ -585,11 +647,11 @@ public class MiningPage extends GuiProfileViewerPage { () -> effMiner != 0 && effMiner != 100 ? Lists.newArrayList( - "Efficient Miner", - EnumChatFormatting.GRAY + "Level " + effMiner + EnumChatFormatting.DARK_GRAY + "/100", - "", - EnumChatFormatting.GRAY + "When mining ores, you have a", - EnumChatFormatting.GREEN + + "Efficient Miner", + EnumChatFormatting.GRAY + "Level " + effMiner + EnumChatFormatting.DARK_GRAY + "/100", + "", + EnumChatFormatting.GRAY + "When mining ores, you have a", + EnumChatFormatting.GREEN + "" + effMinerStat + "%" + @@ -597,27 +659,27 @@ public class MiningPage extends GuiProfileViewerPage { " chance to mine " + EnumChatFormatting.GREEN + Math.round(finalEffMinerStat2), - EnumChatFormatting.GRAY + "adjacent ores.", - "", - EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.DARK_GREEN + + EnumChatFormatting.GRAY + "adjacent ores.", + "", + EnumChatFormatting.GRAY + "Cost", + EnumChatFormatting.DARK_GREEN + "" + GuiProfileViewer.numberFormat.format((int) Math.pow(effMiner + 2, 2.6)) + " Mithril Powder" - ) + ) : Lists.newArrayList( "Efficient Miner", EnumChatFormatting.GRAY + "Level " + effMiner + EnumChatFormatting.DARK_GRAY + "/100", "", EnumChatFormatting.GRAY + "When mining ores, you have a", EnumChatFormatting.GREEN + - "" + - effMinerStat + - "%" + - EnumChatFormatting.GRAY + - " chance to mine " + - EnumChatFormatting.GREEN + - Math.round(finalEffMinerStat2), + "" + + effMinerStat + + "%" + + EnumChatFormatting.GRAY + + " chance to mine " + + EnumChatFormatting.GREEN + + Math.round(finalEffMinerStat2), EnumChatFormatting.GRAY + "adjacent ores." ), 100 @@ -634,38 +696,38 @@ public class MiningPage extends GuiProfileViewerPage { case 0: return Lists.newArrayList( EnumChatFormatting.RED + "Peak of the Mountain", - EnumChatFormatting.GRAY + "Level " + potm + EnumChatFormatting.DARK_GRAY + "/5", + EnumChatFormatting.GRAY + "Level " + potm + EnumChatFormatting.DARK_GRAY + "/7", "", EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.DARK_GREEN + "50000 Mithril Powder" + EnumChatFormatting.DARK_GREEN + "50,000 Mithril Powder" ); case 1: return Lists.newArrayList( EnumChatFormatting.YELLOW + "Peak of the Mountain", - EnumChatFormatting.GRAY + "Level " + potm + EnumChatFormatting.DARK_GRAY + "/5", + EnumChatFormatting.GRAY + "Level " + potm + EnumChatFormatting.DARK_GRAY + "/7", "", "§7§8+§c1 Pickaxe Ability Level", "§7§8+§51 Token of the Mountain", "", EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.DARK_GREEN + "50000 Mithril Powder" + EnumChatFormatting.DARK_GREEN + "50,000 Mithril Powder" ); case 2: return Lists.newArrayList( EnumChatFormatting.YELLOW + "Peak of the Mountain", - EnumChatFormatting.GRAY + "Level " + potm + EnumChatFormatting.DARK_GRAY + "/5", + EnumChatFormatting.GRAY + "Level " + potm + EnumChatFormatting.DARK_GRAY + "/7", "", "§7§8+§c1 Pickaxe Ability Level", "§7§8+§51 Token of the Mountain", "§7§8+§a1 Forge Slot", "", EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.DARK_GREEN + "75000 Mithril Powder" + EnumChatFormatting.DARK_GREEN + "75,000 Mithril Powder" ); case 3: return Lists.newArrayList( EnumChatFormatting.YELLOW + "Peak of the Mountain", - EnumChatFormatting.GRAY + "Level " + potm + EnumChatFormatting.DARK_GRAY + "/5", + EnumChatFormatting.GRAY + "Level " + potm + EnumChatFormatting.DARK_GRAY + "/7", "", "§7§8+§c1 Pickaxe Ability Level", "§7§8+§51 Token of the Mountain", @@ -673,12 +735,12 @@ public class MiningPage extends GuiProfileViewerPage { "§7§8+§a1 Commission Slot", "", EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.DARK_GREEN + "100000 Mithril Powder" + EnumChatFormatting.DARK_GREEN + "100,000 Mithril Powder" ); case 4: return Lists.newArrayList( EnumChatFormatting.YELLOW + "Peak of the Mountain", - EnumChatFormatting.GRAY + "Level " + potm + EnumChatFormatting.DARK_GRAY + "/5", + EnumChatFormatting.GRAY + "Level " + potm + EnumChatFormatting.DARK_GRAY + "/7", "", "§7§8+§c1 Pickaxe Ability Level", "§7§8+§51 Token of the Mountain", @@ -688,12 +750,46 @@ public class MiningPage extends GuiProfileViewerPage { "§7mining §fMithril", "", EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.DARK_GREEN + "125000 Mithril Powder" + EnumChatFormatting.DARK_GREEN + "125,000 Mithril Powder" ); case 5: return Lists.newArrayList( EnumChatFormatting.GREEN + "Peak of the Mountain", - EnumChatFormatting.GRAY + "Level " + potm + EnumChatFormatting.DARK_GRAY + "/5", + EnumChatFormatting.GRAY + "Level " + potm + EnumChatFormatting.DARK_GRAY + "/7", + "", + "§7§8+§c1 Pickaxe Ability Level", + "§7§8+§51 Token of the Mountain", + "§7§8+§a1 Forge Slot", + "§7§8+§a1 Commission Slot", + "§7§8+§21 Mithril Powder §7when", + "§7mining §fMithril", + "§7§8+§51 Token of the Mountain", + "", + "§7Cost", + "§d500,000 Gemstone Powder" + ); + case 6: + return Lists.newArrayList( + EnumChatFormatting.GREEN + "Peak of the Mountain", + EnumChatFormatting.GRAY + "Level " + potm + EnumChatFormatting.DARK_GRAY + "/7", + "", + "§7§8+§c1 Pickaxe Ability Level", + "§7§8+§51 Token of the Mountain", + "§7§8+§a1 Forge Slot", + "§7§8+§a1 Commission Slot", + "§7§8+§21 Mithril Powder §7when", + "§7mining §fMithril", + "§7§8+§51 Token of the Mountain", + "§7§8+§d2 Gemstone Powder §7when", + "§7mining §dGemstones", + "", + "§7Cost", + "§d750,000 Gemstone Powder" + ); + case 7: + return Lists.newArrayList( + EnumChatFormatting.GREEN + "Peak of the Mountain", + EnumChatFormatting.GRAY + "Level " + potm + EnumChatFormatting.DARK_GRAY + "/7", "", "§7§8+§c1 Pickaxe Ability Level", "§7§8+§51 Token of the Mountain", @@ -701,10 +797,18 @@ public class MiningPage extends GuiProfileViewerPage { "§7§8+§a1 Commission Slot", "§7§8+§21 Mithril Powder §7when", "§7mining §fMithril", + "§7§8+§51 Token of the Mountain", + "§7§8+§d2 Gemstone Powder §7when", + "§7mining §dGemstones", "§7§8+§51 Token of the Mountain" ); } - return null; + return Lists.newArrayList( + EnumChatFormatting.GREEN + "Peak of the Mountain", + EnumChatFormatting.GRAY + "Level " + potm + EnumChatFormatting.DARK_GRAY + "/???", + EnumChatFormatting.RED + "It looks like your NEU doesn't understand your peak of the mountain perks.", + EnumChatFormatting.RED + "Please patiently await an update to your NEU installation." + ); }, potm > 0 ? new ItemStack(Blocks.redstone_block) : new ItemStack(Blocks.bedrock), true // A redstone block or bedrock is being rendered, so standard GUI item lighting needs to be enabled. @@ -720,11 +824,11 @@ public class MiningPage extends GuiProfileViewerPage { () -> mole != 0 && mole != 190 ? Lists.newArrayList( - "Mole", - EnumChatFormatting.GRAY + "Level " + mole + EnumChatFormatting.DARK_GRAY + "/190", - "", - EnumChatFormatting.GRAY + "When mining hard stone, you have", - EnumChatFormatting.GRAY + + "Mole", + EnumChatFormatting.GRAY + "Level " + mole + EnumChatFormatting.DARK_GRAY + "/190", + "", + EnumChatFormatting.GRAY + "When mining hard stone, you have", + EnumChatFormatting.GRAY + "a " + EnumChatFormatting.GREEN + finalOutput + @@ -732,38 +836,38 @@ public class MiningPage extends GuiProfileViewerPage { EnumChatFormatting.GRAY + "chance to mine " + EnumChatFormatting.GREEN, - EnumChatFormatting.GREEN + + EnumChatFormatting.GREEN + "" + Math.round(moleStat) + EnumChatFormatting.GRAY + " adjacent hard stone block" + (moleStat == 1.0 ? "." : "s."), - "", - EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.LIGHT_PURPLE + + "", + EnumChatFormatting.GRAY + "Cost", + EnumChatFormatting.LIGHT_PURPLE + "" + GuiProfileViewer.numberFormat.format((int) Math.pow(mole + 2, 2.2)) + " Gemstone Powder" - ) + ) : Lists.newArrayList( "Mole", EnumChatFormatting.GRAY + "Level " + mole + EnumChatFormatting.DARK_GRAY + "/190", "", EnumChatFormatting.GRAY + "When mining hard stone, you have", EnumChatFormatting.GRAY + - "a " + - EnumChatFormatting.GREEN + - finalOutput + - "% " + - EnumChatFormatting.GRAY + - "chance to mine " + - EnumChatFormatting.GREEN, + "a " + + EnumChatFormatting.GREEN + + finalOutput + + "% " + + EnumChatFormatting.GRAY + + "chance to mine " + + EnumChatFormatting.GREEN, EnumChatFormatting.GREEN + - "" + - Math.round(moleStat) + - EnumChatFormatting.GRAY + - " adjacent hard stone block" + - (moleStat == 1.0 ? "." : "s.") + "" + + Math.round(moleStat) + + EnumChatFormatting.GRAY + + " adjacent hard stone block" + + (moleStat == 1.0 ? "." : "s.") ), 190 ); @@ -777,35 +881,35 @@ public class MiningPage extends GuiProfileViewerPage { () -> powderBuff != 0 && powderBuff != 50 ? Lists.newArrayList( - "Powder Buff", - EnumChatFormatting.GRAY + "Level " + powderBuff + EnumChatFormatting.DARK_GRAY + "/50", - "", - EnumChatFormatting.GRAY + + "Powder Buff", + EnumChatFormatting.GRAY + "Level " + powderBuff + EnumChatFormatting.DARK_GRAY + "/50", + "", + EnumChatFormatting.GRAY + "Gain " + EnumChatFormatting.GREEN + powderBuff + "% " + EnumChatFormatting.GRAY + "more Mithril", - EnumChatFormatting.GRAY + "Powder and Gemstone Powder§7.", - "", - EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.LIGHT_PURPLE + + EnumChatFormatting.GRAY + "Powder and Gemstone Powder§7.", + "", + EnumChatFormatting.GRAY + "Cost", + EnumChatFormatting.LIGHT_PURPLE + "" + GuiProfileViewer.numberFormat.format((int) Math.pow(powderBuff + 2, 3.2)) + " Gemstone Powder" - ) + ) : Lists.newArrayList( "Powder Buff", EnumChatFormatting.GRAY + "Level " + powderBuff + EnumChatFormatting.DARK_GRAY + "/50", "", EnumChatFormatting.GRAY + - "Gain " + - EnumChatFormatting.GREEN + - powderBuff + - "% " + - EnumChatFormatting.GRAY + - "more Mithril", + "Gain " + + EnumChatFormatting.GREEN + + powderBuff + + "% " + + EnumChatFormatting.GRAY + + "more Mithril", EnumChatFormatting.GRAY + "Powder and Gemstone Powder§7." ), 50 @@ -865,17 +969,17 @@ public class MiningPage extends GuiProfileViewerPage { () -> seasonMine != 0 && seasonMine != 100 ? Lists.newArrayList( - "Seasoned Mineman", - "§7Level " + seasonMine + "§8/100", - "", - "§7Grants §3+" + EnumChatFormatting.DARK_AQUA + seasonMineStat + "☯ Mining Wisdom§7.", - "", - EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.DARK_GREEN + + "Seasoned Mineman", + "§7Level " + seasonMine + "§8/100", + "", + "§7Grants §3+" + EnumChatFormatting.DARK_AQUA + seasonMineStat + "☯ Mining Wisdom§7.", + "", + EnumChatFormatting.GRAY + "Cost", + EnumChatFormatting.DARK_GREEN + "" + GuiProfileViewer.numberFormat.format((int) Math.pow(seasonMine + 2, 2.3)) + " Mithril Powder" - ) + ) : Lists.newArrayList( "Seasoned Mineman", "§7Level " + seasonMine + "§8/100", @@ -904,21 +1008,21 @@ public class MiningPage extends GuiProfileViewerPage { () -> lonesomeMiner != 0 && lonesomeMiner != 45 ? Lists.newArrayList( - "Lonesome Miner", - "§7Level " + lonesomeMiner + EnumChatFormatting.DARK_GRAY + "/45", - "", - "§7Increases §c❁ Strength, §9☣ Crit", - "§9Chance, §9☠ Crit Damage, §a❈", - "§aDefense, and §c❤ Health", - "§c§7statistics gain by " + EnumChatFormatting.GREEN + lonesomeMinerStat + "%§7", - "§7while in the Crystal Hollows.", - "", - EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.LIGHT_PURPLE + + "Lonesome Miner", + "§7Level " + lonesomeMiner + EnumChatFormatting.DARK_GRAY + "/45", + "", + "§7Increases §c❁ Strength, §9☣ Crit", + "§9Chance, §9☠ Crit Damage, §a❈", + "§aDefense, and §c❤ Health", + "§c§7statistics gain by " + EnumChatFormatting.GREEN + lonesomeMinerStat + "%§7", + "§7while in the Crystal Hollows.", + "", + EnumChatFormatting.GRAY + "Cost", + EnumChatFormatting.LIGHT_PURPLE + "" + GuiProfileViewer.numberFormat.format((int) Math.pow(lonesomeMiner + 2, 3.07)) + " Gemstone Powder" - ) + ) : Lists.newArrayList( "Lonesome Miner", "§7Level " + lonesomeMiner + EnumChatFormatting.DARK_GRAY + "/45", @@ -940,18 +1044,18 @@ public class MiningPage extends GuiProfileViewerPage { () -> professional != 0 && professional != 140 ? Lists.newArrayList( - "Professional", - "§7Level " + professional + EnumChatFormatting.DARK_GRAY + "/140", - "", - "§7Gain §a+" + professionalStat + "§6 ⸕ Mining", - "§6Speed§7 when mining Gemstones.", - "", - EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.LIGHT_PURPLE + + "Professional", + "§7Level " + professional + EnumChatFormatting.DARK_GRAY + "/140", + "", + "§7Gain §a+" + professionalStat + "§6 ⸕ Mining", + "§6Speed§7 when mining Gemstones.", + "", + EnumChatFormatting.GRAY + "Cost", + EnumChatFormatting.LIGHT_PURPLE + "" + GuiProfileViewer.numberFormat.format((int) Math.pow(professional + 2, 2.3)) + " Gemstone Powder" - ) + ) : Lists.newArrayList( "Professional", "§7Level " + professional + EnumChatFormatting.DARK_GRAY + "/140", @@ -971,18 +1075,18 @@ public class MiningPage extends GuiProfileViewerPage { () -> miningSpeed2 != 0 && miningSpeed2 != 50 ? Lists.newArrayList( - "Mining Speed 2", - "§7Level " + miningSpeed2 + EnumChatFormatting.DARK_GRAY + "/50", - "", - "§7Grants " + EnumChatFormatting.GREEN + "+" + miningSpeed2Stat + EnumChatFormatting.GOLD + " ⸕ Mining", - "§6Speed§7.", - "", - EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.LIGHT_PURPLE + + "Mining Speed 2", + "§7Level " + miningSpeed2 + EnumChatFormatting.DARK_GRAY + "/50", + "", + "§7Grants " + EnumChatFormatting.GREEN + "+" + miningSpeed2Stat + EnumChatFormatting.GOLD + " ⸕ Mining", + "§6Speed§7.", + "", + EnumChatFormatting.GRAY + "Cost", + EnumChatFormatting.LIGHT_PURPLE + "" + GuiProfileViewer.numberFormat.format(Math.pow(miningSpeed2 + 2, 3)) + " Gemstone Powder" - ) + ) : Lists.newArrayList( "Mining Speed 2", "§7Level " + miningSpeed2 + EnumChatFormatting.DARK_GRAY + "/50", @@ -1002,18 +1106,18 @@ public class MiningPage extends GuiProfileViewerPage { () -> quickForge != 0 && quickForge != 20 ? Lists.newArrayList( - "Quick Forge", - "§7Level " + quickForge + EnumChatFormatting.DARK_GRAY + "/20", - "", - "§7Decreases the time it takes to", - "§7forge by §a" + (quickForgeStat < 20 ? quickForgeStat : 30) + "%§7.", - "", - EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.DARK_GREEN + + "Quick Forge", + "§7Level " + quickForge + EnumChatFormatting.DARK_GRAY + "/20", + "", + "§7Decreases the time it takes to", + "§7forge by §a" + (quickForgeStat < 20 ? quickForgeStat : 30) + "%§7.", + "", + EnumChatFormatting.GRAY + "Cost", + EnumChatFormatting.DARK_GREEN + "" + GuiProfileViewer.numberFormat.format((int) Math.pow(quickForge + 2, 4)) + " Mithril Powder" - ) + ) : Lists.newArrayList( "Quick Forge", "§7Level " + quickForge + EnumChatFormatting.DARK_GRAY + "/20", @@ -1033,18 +1137,18 @@ public class MiningPage extends GuiProfileViewerPage { () -> fortunate != 0 && fortunate != 20 ? Lists.newArrayList( - "Fortunate", - "§7Level " + fortunate + EnumChatFormatting.DARK_GRAY + "/20", - "", - "§7Gain " + EnumChatFormatting.GREEN + "+" + fortunateStat + " §6☘ Mining", - "§6Fortune§7 when mining Gemstone.", - "", - EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.DARK_GREEN + + "Fortunate", + "§7Level " + fortunate + EnumChatFormatting.DARK_GRAY + "/20", + "", + "§7Gain " + EnumChatFormatting.GREEN + "+" + fortunateStat + " §6☘ Mining", + "§6Fortune§7 when mining Gemstone.", + "", + EnumChatFormatting.GRAY + "Cost", + EnumChatFormatting.DARK_GREEN + "" + GuiProfileViewer.numberFormat.format((int) Math.pow(fortunate + 2, 3.05)) + " Mithril Powder" - ) + ) : Lists.newArrayList( "Fortunate", "§7Level " + fortunate + EnumChatFormatting.DARK_GRAY + "/20", @@ -1064,23 +1168,25 @@ public class MiningPage extends GuiProfileViewerPage { () -> greatExplorer != 0 && greatExplorer != 20 ? Lists.newArrayList( - "Great Explorer", - "§7Level " + greatExplorer + EnumChatFormatting.DARK_GRAY + "/20", - "", - "§7Grants " + EnumChatFormatting.GREEN + "+" + greatExplorerStat + "% " + EnumChatFormatting.GRAY + "chance to", - "§7find treasure.", - "", - EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.LIGHT_PURPLE + + "Great Explorer", + "§7Level " + greatExplorer + EnumChatFormatting.DARK_GRAY + "/20", + "", + "§7Grants " + EnumChatFormatting.GREEN + "+" + greatExplorerStat + "% " + EnumChatFormatting.GRAY + + "chance to", + "§7find treasure.", + "", + EnumChatFormatting.GRAY + "Cost", + EnumChatFormatting.LIGHT_PURPLE + "" + GuiProfileViewer.numberFormat.format((int) Math.pow(greatExplorer + 2, 4)) + " Gemstone Powder" - ) + ) : Lists.newArrayList( "Great Explorer", "§7Level " + greatExplorer + EnumChatFormatting.DARK_GRAY + "/20", "", - "§7Grants " + EnumChatFormatting.GREEN + "+" + greatExplorerStat + "% " + EnumChatFormatting.GRAY + "chance to", + "§7Grants " + EnumChatFormatting.GREEN + "+" + greatExplorerStat + "% " + EnumChatFormatting.GRAY + + "chance to", "§7find treasure." ), 20 @@ -1095,18 +1201,18 @@ public class MiningPage extends GuiProfileViewerPage { () -> miningFortune2 != 0 && miningFortune2 != 50 ? Lists.newArrayList( - "Mining Fortune 2", - "§7Level " + miningFortune2 + EnumChatFormatting.DARK_GRAY + "/50", - "", - "§7Grants §a+§a" + miningFortune2Stat + "§7 §6☘ Mining", - "§6Fortune§7.", - "", - EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.LIGHT_PURPLE + + "Mining Fortune 2", + "§7Level " + miningFortune2 + EnumChatFormatting.DARK_GRAY + "/50", + "", + "§7Grants §a+§a" + miningFortune2Stat + "§7 §6☘ Mining", + "§6Fortune§7.", + "", + EnumChatFormatting.GRAY + "Cost", + EnumChatFormatting.LIGHT_PURPLE + "" + GuiProfileViewer.numberFormat.format((int) Math.pow(miningFortune2 + 2, 3.2)) + " Gemstone Powder" - ) + ) : Lists.newArrayList( "Mining Fortune 2", "§7Level " + miningFortune2 + EnumChatFormatting.DARK_GRAY + "/50", @@ -1126,16 +1232,16 @@ public class MiningPage extends GuiProfileViewerPage { () -> orbit != 0 && orbit != 80 ? Lists.newArrayList( - "Orbiter", - "§7Level " + orbit + EnumChatFormatting.DARK_GRAY + "/80", - "", - "§7When mining ores, you have a", - EnumChatFormatting.GREEN + "" + orbitStat + "%" + EnumChatFormatting.GRAY + " chance to get a random", - "§7amount of experience orbs.", - "", - EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.DARK_GREEN + "" + ((orbit + 1) * 70) + " Mithril Powder" - ) + "Orbiter", + "§7Level " + orbit + EnumChatFormatting.DARK_GRAY + "/80", + "", + "§7When mining ores, you have a", + EnumChatFormatting.GREEN + "" + orbitStat + "%" + EnumChatFormatting.GRAY + " chance to get a random", + "§7amount of experience orbs.", + "", + EnumChatFormatting.GRAY + "Cost", + EnumChatFormatting.DARK_GREEN + "" + ((orbit + 1) * 70) + " Mithril Powder" + ) : Lists.newArrayList( "Orbiter", "§7Level " + orbit + EnumChatFormatting.DARK_GRAY + "/80", @@ -1206,20 +1312,20 @@ public class MiningPage extends GuiProfileViewerPage { () -> crystallized != 0 && crystallized != 30 ? Lists.newArrayList( - "Crystallized", - "§7Level " + crystallized + EnumChatFormatting.DARK_GRAY + "/30", - "", - "§7Grants §a+§a" + crystallizedStat + "§7 §6⸕ Mining", - "§6Speed §7and a §a" + crystallizedStat + "%§7 §7chance", - "§7to deal §a+1 §7extra damage near", - "§7§5Fallen Stars§7.", - "", - EnumChatFormatting.GRAY + "Cost", - EnumChatFormatting.DARK_GREEN + + "Crystallized", + "§7Level " + crystallized + EnumChatFormatting.DARK_GRAY + "/30", + "", + "§7Grants §a+§a" + crystallizedStat + "§7 §6⸕ Mining", + "§6Speed §7and a §a" + crystallizedStat + "%§7 §7chance", + "§7to deal §a+1 §7extra damage near", + "§7§5Fallen Stars§7.", + "", + EnumChatFormatting.GRAY + "Cost", + EnumChatFormatting.DARK_GREEN + "" + GuiProfileViewer.numberFormat.format((int) Math.pow(crystallized + 2, 2.4)) + " Mithril Powder" - ) + ) : Lists.newArrayList( "Crystallized", "§7Level " + crystallized + EnumChatFormatting.DARK_GRAY + "/30", @@ -1320,7 +1426,9 @@ public class MiningPage extends GuiProfileViewerPage { ItemStack itemStack; if (isPickaxeAbility) { RenderHelper.enableGUIStandardItemLighting(); // GUI standard item lighting must be enabled for items that are rendered as blocks, like emerald blocks. - itemStack = new ItemStack(unlocked ? Blocks.emerald_block : Blocks.coal_block); // Pickaxe abilities are rendered as blocks + itemStack = new ItemStack(unlocked + ? Blocks.emerald_block + : Blocks.coal_block); // Pickaxe abilities are rendered as blocks } else { // Non-pickaxe abilities are rendered as items itemStack = new ItemStack(unlocked ? (perkLevel >= maxLevel ? Items.diamond : Items.emerald) : Items.coal); } @@ -1329,8 +1437,10 @@ public class MiningPage extends GuiProfileViewerPage { // Prepend the green, yellow, or red color on the first line of each tooltip depending on if the perk is unlocked tooltip.set( 0, - (unlocked ? (perkLevel >= maxLevel ? EnumChatFormatting.GREEN : EnumChatFormatting.YELLOW) : EnumChatFormatting.RED) + - tooltip.get(0) + (unlocked + ? (perkLevel >= maxLevel ? EnumChatFormatting.GREEN : EnumChatFormatting.YELLOW) + : EnumChatFormatting.RED) + + tooltip.get(0) ); NBTTagCompound nbt = new NBTTagCompound(); //Adding NBT Data for Custom Resource Packs diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java index c9bd92a3..4aeafb9e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewer.java @@ -27,6 +27,16 @@ import io.github.moulberry.notenoughupdates.NEUManager; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; import io.github.moulberry.notenoughupdates.util.Constants; import io.github.moulberry.notenoughupdates.util.Utils; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.util.EnumChatFormatting; + +import javax.annotation.Nullable; import java.io.ByteArrayInputStream; import java.io.IOException; import java.util.ArrayList; @@ -41,15 +51,6 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Consumer; import java.util.regex.Matcher; import java.util.regex.Pattern; -import javax.annotation.Nullable; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.EnumChatFormatting; public class ProfileViewer { @@ -63,311 +64,384 @@ public class ProfileViewer { put("MYTHIC", "5"); } }; - private static final LinkedHashMap skillToSkillDisplayMap = new LinkedHashMap() { - { - put("taming", Utils.createItemStack(Items.spawn_egg, EnumChatFormatting.LIGHT_PURPLE + "Taming")); - put("mining", Utils.createItemStack(Items.stone_pickaxe, EnumChatFormatting.GRAY + "Mining")); - put("foraging", Utils.createItemStack(Item.getItemFromBlock(Blocks.sapling), EnumChatFormatting.DARK_GREEN + "Foraging")); - put( - "enchanting", - Utils.createItemStack(Item.getItemFromBlock(Blocks.enchanting_table), EnumChatFormatting.GREEN + "Enchanting") - ); - put( - "carpentry", - Utils.createItemStack(Item.getItemFromBlock(Blocks.crafting_table), EnumChatFormatting.DARK_RED + "Carpentry") - ); - put("farming", Utils.createItemStack(Items.golden_hoe, EnumChatFormatting.YELLOW + "Farming")); - put("combat", Utils.createItemStack(Items.stone_sword, EnumChatFormatting.RED + "Combat")); - put("fishing", Utils.createItemStack(Items.fishing_rod, EnumChatFormatting.AQUA + "Fishing")); - put("alchemy", Utils.createItemStack(Items.brewing_stand, EnumChatFormatting.BLUE + "Alchemy")); - put("runecrafting", Utils.createItemStack(Items.magma_cream, EnumChatFormatting.DARK_PURPLE + "Runecrafting")); - put("social", Utils.createItemStack(Items.emerald, EnumChatFormatting.DARK_GREEN + "Social")); - // put("catacombs", Utils.createItemStack(Item.getItemFromBlock(Blocks.deadbush), EnumChatFormatting.GOLD+"Catacombs")); - put("zombie", Utils.createItemStack(Items.rotten_flesh, EnumChatFormatting.GOLD + "Rev Slayer")); - put("spider", Utils.createItemStack(Items.spider_eye, EnumChatFormatting.GOLD + "Tara Slayer")); - put("wolf", Utils.createItemStack(Items.bone, EnumChatFormatting.GOLD + "Sven Slayer")); - put("enderman", Utils.createItemStack(Items.ender_pearl, EnumChatFormatting.GOLD + "Ender Slayer")); - put("blaze", Utils.createItemStack(Items.blaze_rod, EnumChatFormatting.GOLD + "Blaze Slayer")); - } - }; - private static final ItemStack CAT_FARMING = Utils.createItemStack(Items.golden_hoe, EnumChatFormatting.YELLOW + "Farming"); - private static final ItemStack CAT_MINING = Utils.createItemStack(Items.stone_pickaxe, EnumChatFormatting.GRAY + "Mining"); - private static final ItemStack CAT_COMBAT = Utils.createItemStack(Items.stone_sword, EnumChatFormatting.RED + "Combat"); + private static final LinkedHashMap skillToSkillDisplayMap = + new LinkedHashMap() { + { + put("taming", Utils.createItemStack(Items.spawn_egg, EnumChatFormatting.LIGHT_PURPLE + "Taming")); + put("mining", Utils.createItemStack(Items.stone_pickaxe, EnumChatFormatting.GRAY + "Mining")); + put( + "foraging", + Utils.createItemStack(Item.getItemFromBlock(Blocks.sapling), EnumChatFormatting.DARK_GREEN + "Foraging") + ); + put( + "enchanting", + Utils.createItemStack(Item.getItemFromBlock(Blocks.enchanting_table), EnumChatFormatting.GREEN + "Enchanting") + ); + put( + "carpentry", + Utils.createItemStack(Item.getItemFromBlock(Blocks.crafting_table), EnumChatFormatting.DARK_RED + "Carpentry") + ); + put("farming", Utils.createItemStack(Items.golden_hoe, EnumChatFormatting.YELLOW + "Farming")); + put("combat", Utils.createItemStack(Items.stone_sword, EnumChatFormatting.RED + "Combat")); + put("fishing", Utils.createItemStack(Items.fishing_rod, EnumChatFormatting.AQUA + "Fishing")); + put("alchemy", Utils.createItemStack(Items.brewing_stand, EnumChatFormatting.BLUE + "Alchemy")); + put("runecrafting", Utils.createItemStack(Items.magma_cream, EnumChatFormatting.DARK_PURPLE + "Runecrafting")); + put("social", Utils.createItemStack(Items.emerald, EnumChatFormatting.DARK_GREEN + "Social")); + // put("catacombs", Utils.createItemStack(Item.getItemFromBlock(Blocks.deadbush), EnumChatFormatting.GOLD+"Catacombs")); + put("zombie", Utils.createItemStack(Items.rotten_flesh, EnumChatFormatting.GOLD + "Rev Slayer")); + put("spider", Utils.createItemStack(Items.spider_eye, EnumChatFormatting.GOLD + "Tara Slayer")); + put("wolf", Utils.createItemStack(Items.bone, EnumChatFormatting.GOLD + "Sven Slayer")); + put("enderman", Utils.createItemStack(Items.ender_pearl, EnumChatFormatting.GOLD + "Ender Slayer")); + put("blaze", Utils.createItemStack(Items.blaze_rod, EnumChatFormatting.GOLD + "Blaze Slayer")); + } + }; + private static final ItemStack CAT_FARMING = Utils.createItemStack( + Items.golden_hoe, + EnumChatFormatting.YELLOW + "Farming" + ); + private static final ItemStack CAT_MINING = Utils.createItemStack( + Items.stone_pickaxe, + EnumChatFormatting.GRAY + "Mining" + ); + private static final ItemStack CAT_COMBAT = Utils.createItemStack( + Items.stone_sword, + EnumChatFormatting.RED + "Combat" + ); private static final ItemStack CAT_FORAGING = Utils.createItemStack( Item.getItemFromBlock(Blocks.sapling), EnumChatFormatting.DARK_GREEN + "Foraging" ); - private static final ItemStack CAT_FISHING = Utils.createItemStack(Items.fishing_rod, EnumChatFormatting.AQUA + "Fishing"); - private static final LinkedHashMap> collectionCatToCollectionMap = new LinkedHashMap>() { - { - put( - CAT_FARMING, - Utils.createList( - "WHEAT", - "CARROT_ITEM", - "POTATO_ITEM", + private static final ItemStack CAT_FISHING = Utils.createItemStack( + Items.fishing_rod, + EnumChatFormatting.AQUA + "Fishing" + ); + private static final LinkedHashMap> collectionCatToCollectionMap = + new LinkedHashMap>() { + { + put( + CAT_FARMING, + Utils.createList( + "WHEAT", + "CARROT_ITEM", + "POTATO_ITEM", + "PUMPKIN", + "MELON", + "SEEDS", + "MUSHROOM_COLLECTION", + "INK_SACK:3", + "CACTUS", + "SUGAR_CANE", + "FEATHER", + "LEATHER", + "PORK", + "RAW_CHICKEN", + "MUTTON", + "RABBIT", + "NETHER_STALK" + ) + ); + put( + CAT_MINING, + Utils.createList( + "COBBLESTONE", + "COAL", + "IRON_INGOT", + "GOLD_INGOT", + "DIAMOND", + "INK_SACK:4", + "EMERALD", + "REDSTONE", + "QUARTZ", + "OBSIDIAN", + "GLOWSTONE_DUST", + "GRAVEL", + "ICE", + "NETHERRACK", + "SAND", + "ENDER_STONE", + null, + "MITHRIL_ORE", + "HARD_STONE", + "GEMSTONE_COLLECTION", + "MYCEL", + "SAND:1", + "SULPHUR_ORE" + ) + ); + put( + CAT_COMBAT, + Utils.createList( + "ROTTEN_FLESH", + "BONE", + "STRING", + "SPIDER_EYE", + "SULPHUR", + "ENDER_PEARL", + "GHAST_TEAR", + "SLIME_BALL", + "BLAZE_ROD", + "MAGMA_CREAM", + null, + null, + null, + null, + "CHILI_PEPPER" + ) + ); + put(CAT_FORAGING, Utils.createList("LOG", "LOG:1", "LOG:2", "LOG_2:1", "LOG_2", "LOG:3", null)); + put( + CAT_FISHING, + Utils.createList( + "RAW_FISH", + "RAW_FISH:1", + "RAW_FISH:2", + "RAW_FISH:3", + "PRISMARINE_SHARD", + "PRISMARINE_CRYSTALS", + "CLAY_BALL", + "WATER_LILY", + "INK_SACK", + "SPONGE", + "MAGMA_FISH" + ) + ); + } + }; + private static final LinkedHashMap> collectionCatToMinionMap = + new LinkedHashMap>() { + { + put( + CAT_FARMING, + Utils.createList( + "WHEAT", + "CARROT", + "POTATO", + "PUMPKIN", + "MELON", + null, + "MUSHROOM", + "COCOA", + "CACTUS", + "SUGAR_CANE", + "CHICKEN", + "COW", + "PIG", + null, + "SHEEP", + "RABBIT", + "NETHER_WARTS" + ) + ); + put( + CAT_MINING, + Utils.createList( + "COBBLESTONE", + "COAL", + "IRON", + "GOLD", + "DIAMOND", + "LAPIS", + "EMERALD", + "REDSTONE", + "QUARTZ", + "OBSIDIAN", + "GLOWSTONE", + "GRAVEL", + "ICE", + null, + "SAND", + "ENDER_STONE", + "SNOW", + "MITHRIL", + "HARD_STONE", + null, + "MYCELIUM", + "RED_SAND", + null + ) + ); + put( + CAT_COMBAT, + Utils.createList( + "ZOMBIE", + "SKELETON", + "SPIDER", + "CAVESPIDER", + "CREEPER", + "ENDERMAN", + "GHAST", + "SLIME", + "BLAZE", + "MAGMA_CUBE", + "REVENANT", + "TARANTULA", + "VOIDLING", + "INFERNO" + ) + ); + put(CAT_FORAGING, Utils.createList("OAK", "SPRUCE", "BIRCH", "DARK_OAK", "ACACIA", "JUNGLE", "FLOWER")); + put(CAT_FISHING, Utils.createList("FISHING", null, null, null, null, null, "CLAY", null, null, null)); + } + }; + private static final LinkedHashMap collectionToCollectionDisplayMap = + new LinkedHashMap() { + { + /* FARMING COLLECTIONS */ + put("WHEAT", Utils.createItemStack(Items.wheat, EnumChatFormatting.YELLOW + "Wheat")); + put("CARROT_ITEM", Utils.createItemStack(Items.carrot, EnumChatFormatting.YELLOW + "Carrot")); + put("POTATO_ITEM", Utils.createItemStack(Items.potato, EnumChatFormatting.YELLOW + "Potato")); + put( "PUMPKIN", - "MELON", - "SEEDS", + Utils.createItemStack(Item.getItemFromBlock(Blocks.pumpkin), EnumChatFormatting.YELLOW + "Pumpkin") + ); + put("MELON", Utils.createItemStack(Items.melon, EnumChatFormatting.YELLOW + "Melon")); + put("SEEDS", Utils.createItemStack(Items.wheat_seeds, EnumChatFormatting.YELLOW + "Seeds")); + put( "MUSHROOM_COLLECTION", - "INK_SACK:3", + Utils.createItemStack(Item.getItemFromBlock(Blocks.red_mushroom), EnumChatFormatting.YELLOW + "Mushroom") + ); + put("INK_SACK:3", Utils.createItemStack(Items.dye, EnumChatFormatting.YELLOW + "Cocoa Beans", 3)); + put( "CACTUS", - "SUGAR_CANE", - "FEATHER", - "LEATHER", - "PORK", - "RAW_CHICKEN", - "MUTTON", - "RABBIT", - "NETHER_STALK" - ) - ); - put( - CAT_MINING, - Utils.createList( + Utils.createItemStack(Item.getItemFromBlock(Blocks.cactus), EnumChatFormatting.YELLOW + "Cactus") + ); + put("SUGAR_CANE", Utils.createItemStack(Items.reeds, EnumChatFormatting.YELLOW + "Sugar Cane")); + put("FEATHER", Utils.createItemStack(Items.feather, EnumChatFormatting.YELLOW + "Feather")); + put("LEATHER", Utils.createItemStack(Items.leather, EnumChatFormatting.YELLOW + "Leather")); + put("PORK", Utils.createItemStack(Items.porkchop, EnumChatFormatting.YELLOW + "Raw Porkchop")); + put("RAW_CHICKEN", Utils.createItemStack(Items.chicken, EnumChatFormatting.YELLOW + "Raw Chicken")); + put("MUTTON", Utils.createItemStack(Items.mutton, EnumChatFormatting.YELLOW + "Mutton")); + put("RABBIT", Utils.createItemStack(Items.rabbit, EnumChatFormatting.YELLOW + "Raw Rabbit")); + put("NETHER_STALK", Utils.createItemStack(Items.nether_wart, EnumChatFormatting.YELLOW + "Nether Wart")); + + /* MINING COLLECTIONS */ + put( "COBBLESTONE", - "COAL", - "IRON_INGOT", - "GOLD_INGOT", - "DIAMOND", - "INK_SACK:4", - "EMERALD", - "REDSTONE", - "QUARTZ", + Utils.createItemStack(Item.getItemFromBlock(Blocks.cobblestone), EnumChatFormatting.GRAY + "Cobblestone") + ); + put("COAL", Utils.createItemStack(Items.coal, EnumChatFormatting.GRAY + "Coal")); + put("IRON_INGOT", Utils.createItemStack(Items.iron_ingot, EnumChatFormatting.GRAY + "Iron Ingot")); + put("GOLD_INGOT", Utils.createItemStack(Items.gold_ingot, EnumChatFormatting.GRAY + "Gold Ingot")); + put("DIAMOND", Utils.createItemStack(Items.diamond, EnumChatFormatting.GRAY + "Diamond")); + put("INK_SACK:4", Utils.createItemStack(Items.dye, EnumChatFormatting.GRAY + "Lapis Lazuli", 4)); + put("EMERALD", Utils.createItemStack(Items.emerald, EnumChatFormatting.GRAY + "Emerald")); + put("REDSTONE", Utils.createItemStack(Items.redstone, EnumChatFormatting.GRAY + "Redstone")); + put("QUARTZ", Utils.createItemStack(Items.quartz, EnumChatFormatting.GRAY + "Nether Quartz")); + put( "OBSIDIAN", - "GLOWSTONE_DUST", - "GRAVEL", - "ICE", + Utils.createItemStack(Item.getItemFromBlock(Blocks.obsidian), EnumChatFormatting.GRAY + "Obsidian") + ); + put("GLOWSTONE_DUST", Utils.createItemStack(Items.glowstone_dust, EnumChatFormatting.GRAY + "Glowstone Dust")); + put("GRAVEL", Utils.createItemStack(Item.getItemFromBlock(Blocks.gravel), EnumChatFormatting.GRAY + "Gravel")); + put("ICE", Utils.createItemStack(Item.getItemFromBlock(Blocks.ice), EnumChatFormatting.GRAY + "Ice")); + put( "NETHERRACK", - "SAND", + Utils.createItemStack(Item.getItemFromBlock(Blocks.netherrack), EnumChatFormatting.GRAY + "Netherrack") + ); + put("SAND", Utils.createItemStack(Item.getItemFromBlock(Blocks.sand), EnumChatFormatting.GRAY + "Sand")); + put( "ENDER_STONE", - null, - "MITHRIL_ORE", + Utils.createItemStack(Item.getItemFromBlock(Blocks.end_stone), EnumChatFormatting.GRAY + "End Stone") + ); + put("MITHRIL_ORE", Utils.createItemStack(Items.prismarine_crystals, EnumChatFormatting.GRAY + "Mithril")); + put( "HARD_STONE", + Utils.createItemStack(Item.getItemFromBlock(Blocks.stone), EnumChatFormatting.GRAY + "Hard Stone") + ); + put( "GEMSTONE_COLLECTION", + Utils.createSkull( + EnumChatFormatting.GRAY + "Gemstone", + "e942eb66-a350-38e5-aafa-0dfc3e17b4ac", + "ewogICJ0aW1lc3RhbXAiIDogMTYxODA4Mzg4ODc3MSwKICAicHJvZmlsZUlkIiA6ICJjNTBhZmE4YWJlYjk0ZTQ1OTRiZjFiNDI1YTk4MGYwMiIsCiAgInByb2ZpbGVOYW1lIiA6ICJUd29FQmFlIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2FhYzE1ZjZmY2YyY2U5NjNlZjRjYTcxZjFhODY4NWFkYjk3ZWI3NjllMWQxMTE5NGNiYmQyZTk2NGE4ODk3OGMiCiAgICB9CiAgfQp9" + ) + ); + put( "MYCEL", + Utils.createItemStack(Item.getItemFromBlock(Blocks.mycelium), EnumChatFormatting.GRAY + "Mycelium") + ); + put( "SAND:1", - "SULPHUR_ORE" - ) - ); - put( - CAT_COMBAT, - Utils.createList( - "ROTTEN_FLESH", - "BONE", - "STRING", - "SPIDER_EYE", - "SULPHUR", - "ENDER_PEARL", - "GHAST_TEAR", - "SLIME_BALL", - "BLAZE_ROD", - "MAGMA_CREAM", - null, - null, - null, - null, - "CHILI_PEPPER" - ) - ); - put(CAT_FORAGING, Utils.createList("LOG", "LOG:1", "LOG:2", "LOG_2:1", "LOG_2", "LOG:3", null)); - put( - CAT_FISHING, - Utils.createList( - "RAW_FISH", - "RAW_FISH:1", - "RAW_FISH:2", - "RAW_FISH:3", + Utils.createItemStack(Item.getItemFromBlock(Blocks.sand), EnumChatFormatting.GRAY + "Red Sand", 1) + ); + put("SULPHUR_ORE", Utils.createItemStack(Items.glowstone_dust, EnumChatFormatting.GRAY + "Sulphur")); + + /* COMBAT COLLECTIONS */ + put("ROTTEN_FLESH", Utils.createItemStack(Items.rotten_flesh, EnumChatFormatting.RED + "Rotten Flesh")); + put("BONE", Utils.createItemStack(Items.bone, EnumChatFormatting.RED + "Bone")); + put("STRING", Utils.createItemStack(Items.string, EnumChatFormatting.RED + "String")); + put("SPIDER_EYE", Utils.createItemStack(Items.spider_eye, EnumChatFormatting.RED + "Spider Eye")); + put("SULPHUR", Utils.createItemStack(Items.gunpowder, EnumChatFormatting.RED + "Gunpowder")); + put("ENDER_PEARL", Utils.createItemStack(Items.ender_pearl, EnumChatFormatting.RED + "Ender Pearl")); + put("GHAST_TEAR", Utils.createItemStack(Items.ghast_tear, EnumChatFormatting.RED + "Ghast Tear")); + put("SLIME_BALL", Utils.createItemStack(Items.slime_ball, EnumChatFormatting.RED + "Slimeball")); + put("BLAZE_ROD", Utils.createItemStack(Items.blaze_rod, EnumChatFormatting.RED + "Blaze Rod")); + put("MAGMA_CREAM", Utils.createItemStack(Items.magma_cream, EnumChatFormatting.RED + "Magma Cream")); + put( + "CHILI_PEPPER", + Utils.createSkull( + EnumChatFormatting.RED + "Chili Pepper", + "3d47abaa-b40b-3826-b20c-d83a7f053bd9", + "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjg1OWM4ZGYxMTA5YzA4YTc1NjI3NWYxZDI4ODdjMjc0ODA0OWZlMzM4Nzc3NjlhN2I0MTVkNTZlZGE0NjlkOCJ9fX0" + ) + ); + + /* FORAGING COLLECTIONS */ + put( + "LOG", + Utils.createItemStack(Item.getItemFromBlock(Blocks.log), EnumChatFormatting.DARK_GREEN + "Oak Wood") + ); + put( + "LOG:1", + Utils.createItemStack(Item.getItemFromBlock(Blocks.log), EnumChatFormatting.DARK_GREEN + "Spruce Wood", 1) + ); + put( + "LOG:2", + Utils.createItemStack(Item.getItemFromBlock(Blocks.log), EnumChatFormatting.DARK_GREEN + "Birch Wood", 2) + ); + put( + "LOG_2:1", + Utils.createItemStack(Item.getItemFromBlock(Blocks.log2), EnumChatFormatting.DARK_GREEN + "Dark Oak Wood", 1) + ); + put( + "LOG_2", + Utils.createItemStack(Item.getItemFromBlock(Blocks.log2), EnumChatFormatting.DARK_GREEN + "Acacia Wood") + ); + put( + "LOG:3", + Utils.createItemStack(Item.getItemFromBlock(Blocks.log), EnumChatFormatting.DARK_GREEN + "Jungle Wood", 3) + ); + + /* FISHING COLLECTIONS */ + put("RAW_FISH", Utils.createItemStack(Items.fish, EnumChatFormatting.AQUA + "Raw Fish")); + put("RAW_FISH:1", Utils.createItemStack(Items.fish, EnumChatFormatting.AQUA + "Raw Salmon", 1)); + put("RAW_FISH:2", Utils.createItemStack(Items.fish, EnumChatFormatting.AQUA + "Clownfish", 2)); + put("RAW_FISH:3", Utils.createItemStack(Items.fish, EnumChatFormatting.AQUA + "Pufferfish", 3)); + put( "PRISMARINE_SHARD", + Utils.createItemStack(Items.prismarine_shard, EnumChatFormatting.AQUA + "Prismarine Shard") + ); + put( "PRISMARINE_CRYSTALS", - "CLAY_BALL", + Utils.createItemStack(Items.prismarine_crystals, EnumChatFormatting.AQUA + "Prismarine Crystals") + ); + put("CLAY_BALL", Utils.createItemStack(Items.clay_ball, EnumChatFormatting.AQUA + "Clay")); + put( "WATER_LILY", - "INK_SACK", - "SPONGE", - "MAGMA_FISH" - ) - ); - } - }; - private static final LinkedHashMap> collectionCatToMinionMap = new LinkedHashMap>() { - { - put( - CAT_FARMING, - Utils.createList( - "WHEAT", - "CARROT", - "POTATO", - "PUMPKIN", - "MELON", - null, - "MUSHROOM", - "COCOA", - "CACTUS", - "SUGAR_CANE", - "CHICKEN", - "COW", - "PIG", - null, - "SHEEP", - "RABBIT", - "NETHER_WARTS" - ) - ); - put( - CAT_MINING, - Utils.createList( - "COBBLESTONE", - "COAL", - "IRON", - "GOLD", - "DIAMOND", - "LAPIS", - "EMERALD", - "REDSTONE", - "QUARTZ", - "OBSIDIAN", - "GLOWSTONE", - "GRAVEL", - "ICE", - null, - "SAND", - "ENDER_STONE", - "SNOW", - "MITHRIL", - "HARD_STONE", - null, - "MYCELIUM", - "RED_SAND", - null - ) - ); - put( - CAT_COMBAT, - Utils.createList( - "ZOMBIE", - "SKELETON", - "SPIDER", - "CAVESPIDER", - "CREEPER", - "ENDERMAN", - "GHAST", - "SLIME", - "BLAZE", - "MAGMA_CUBE", - "REVENANT", - "TARANTULA", - "VOIDLING", - "INFERNO" - ) - ); - put(CAT_FORAGING, Utils.createList("OAK", "SPRUCE", "BIRCH", "DARK_OAK", "ACACIA", "JUNGLE", "FLOWER")); - put(CAT_FISHING, Utils.createList("FISHING", null, null, null, null, null, "CLAY", null, null, null)); - } - }; - private static final LinkedHashMap collectionToCollectionDisplayMap = new LinkedHashMap() { - { - /* FARMING COLLECTIONS */ - put("WHEAT", Utils.createItemStack(Items.wheat, EnumChatFormatting.YELLOW + "Wheat")); - put("CARROT_ITEM", Utils.createItemStack(Items.carrot, EnumChatFormatting.YELLOW + "Carrot")); - put("POTATO_ITEM", Utils.createItemStack(Items.potato, EnumChatFormatting.YELLOW + "Potato")); - put("PUMPKIN", Utils.createItemStack(Item.getItemFromBlock(Blocks.pumpkin), EnumChatFormatting.YELLOW + "Pumpkin")); - put("MELON", Utils.createItemStack(Items.melon, EnumChatFormatting.YELLOW + "Melon")); - put("SEEDS", Utils.createItemStack(Items.wheat_seeds, EnumChatFormatting.YELLOW + "Seeds")); - put( - "MUSHROOM_COLLECTION", - Utils.createItemStack(Item.getItemFromBlock(Blocks.red_mushroom), EnumChatFormatting.YELLOW + "Mushroom") - ); - put("INK_SACK:3", Utils.createItemStack(Items.dye, EnumChatFormatting.YELLOW + "Cocoa Beans", 3)); - put("CACTUS", Utils.createItemStack(Item.getItemFromBlock(Blocks.cactus), EnumChatFormatting.YELLOW + "Cactus")); - put("SUGAR_CANE", Utils.createItemStack(Items.reeds, EnumChatFormatting.YELLOW + "Sugar Cane")); - put("FEATHER", Utils.createItemStack(Items.feather, EnumChatFormatting.YELLOW + "Feather")); - put("LEATHER", Utils.createItemStack(Items.leather, EnumChatFormatting.YELLOW + "Leather")); - put("PORK", Utils.createItemStack(Items.porkchop, EnumChatFormatting.YELLOW + "Raw Porkchop")); - put("RAW_CHICKEN", Utils.createItemStack(Items.chicken, EnumChatFormatting.YELLOW + "Raw Chicken")); - put("MUTTON", Utils.createItemStack(Items.mutton, EnumChatFormatting.YELLOW + "Mutton")); - put("RABBIT", Utils.createItemStack(Items.rabbit, EnumChatFormatting.YELLOW + "Raw Rabbit")); - put("NETHER_STALK", Utils.createItemStack(Items.nether_wart, EnumChatFormatting.YELLOW + "Nether Wart")); - - /* MINING COLLECTIONS */ - put("COBBLESTONE", Utils.createItemStack(Item.getItemFromBlock(Blocks.cobblestone), EnumChatFormatting.GRAY + "Cobblestone")); - put("COAL", Utils.createItemStack(Items.coal, EnumChatFormatting.GRAY + "Coal")); - put("IRON_INGOT", Utils.createItemStack(Items.iron_ingot, EnumChatFormatting.GRAY + "Iron Ingot")); - put("GOLD_INGOT", Utils.createItemStack(Items.gold_ingot, EnumChatFormatting.GRAY + "Gold Ingot")); - put("DIAMOND", Utils.createItemStack(Items.diamond, EnumChatFormatting.GRAY + "Diamond")); - put("INK_SACK:4", Utils.createItemStack(Items.dye, EnumChatFormatting.GRAY + "Lapis Lazuli", 4)); - put("EMERALD", Utils.createItemStack(Items.emerald, EnumChatFormatting.GRAY + "Emerald")); - put("REDSTONE", Utils.createItemStack(Items.redstone, EnumChatFormatting.GRAY + "Redstone")); - put("QUARTZ", Utils.createItemStack(Items.quartz, EnumChatFormatting.GRAY + "Nether Quartz")); - put("OBSIDIAN", Utils.createItemStack(Item.getItemFromBlock(Blocks.obsidian), EnumChatFormatting.GRAY + "Obsidian")); - put("GLOWSTONE_DUST", Utils.createItemStack(Items.glowstone_dust, EnumChatFormatting.GRAY + "Glowstone Dust")); - put("GRAVEL", Utils.createItemStack(Item.getItemFromBlock(Blocks.gravel), EnumChatFormatting.GRAY + "Gravel")); - put("ICE", Utils.createItemStack(Item.getItemFromBlock(Blocks.ice), EnumChatFormatting.GRAY + "Ice")); - put("NETHERRACK", Utils.createItemStack(Item.getItemFromBlock(Blocks.netherrack), EnumChatFormatting.GRAY + "Netherrack")); - put("SAND", Utils.createItemStack(Item.getItemFromBlock(Blocks.sand), EnumChatFormatting.GRAY + "Sand")); - put("ENDER_STONE", Utils.createItemStack(Item.getItemFromBlock(Blocks.end_stone), EnumChatFormatting.GRAY + "End Stone")); - put("MITHRIL_ORE", Utils.createItemStack(Items.prismarine_crystals, EnumChatFormatting.GRAY + "Mithril")); - put("HARD_STONE", Utils.createItemStack(Item.getItemFromBlock(Blocks.stone), EnumChatFormatting.GRAY + "Hard Stone")); - put( - "GEMSTONE_COLLECTION", - Utils.createSkull( - EnumChatFormatting.GRAY + "Gemstone", - "e942eb66-a350-38e5-aafa-0dfc3e17b4ac", - "ewogICJ0aW1lc3RhbXAiIDogMTYxODA4Mzg4ODc3MSwKICAicHJvZmlsZUlkIiA6ICJjNTBhZmE4YWJlYjk0ZTQ1OTRiZjFiNDI1YTk4MGYwMiIsCiAgInByb2ZpbGVOYW1lIiA6ICJUd29FQmFlIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2FhYzE1ZjZmY2YyY2U5NjNlZjRjYTcxZjFhODY4NWFkYjk3ZWI3NjllMWQxMTE5NGNiYmQyZTk2NGE4ODk3OGMiCiAgICB9CiAgfQp9" - ) - ); - put("MYCEL", Utils.createItemStack(Item.getItemFromBlock(Blocks.mycelium), EnumChatFormatting.GRAY + "Mycelium")); - put("SAND:1", Utils.createItemStack(Item.getItemFromBlock(Blocks.sand), EnumChatFormatting.GRAY + "Red Sand", 1)); - put("SULPHUR_ORE", Utils.createItemStack(Items.glowstone_dust, EnumChatFormatting.GRAY + "Sulphur")); - - /* COMBAT COLLECTIONS */ - put("ROTTEN_FLESH", Utils.createItemStack(Items.rotten_flesh, EnumChatFormatting.RED + "Rotten Flesh")); - put("BONE", Utils.createItemStack(Items.bone, EnumChatFormatting.RED + "Bone")); - put("STRING", Utils.createItemStack(Items.string, EnumChatFormatting.RED + "String")); - put("SPIDER_EYE", Utils.createItemStack(Items.spider_eye, EnumChatFormatting.RED + "Spider Eye")); - put("SULPHUR", Utils.createItemStack(Items.gunpowder, EnumChatFormatting.RED + "Gunpowder")); - put("ENDER_PEARL", Utils.createItemStack(Items.ender_pearl, EnumChatFormatting.RED + "Ender Pearl")); - put("GHAST_TEAR", Utils.createItemStack(Items.ghast_tear, EnumChatFormatting.RED + "Ghast Tear")); - put("SLIME_BALL", Utils.createItemStack(Items.slime_ball, EnumChatFormatting.RED + "Slimeball")); - put("BLAZE_ROD", Utils.createItemStack(Items.blaze_rod, EnumChatFormatting.RED + "Blaze Rod")); - put("MAGMA_CREAM", Utils.createItemStack(Items.magma_cream, EnumChatFormatting.RED + "Magma Cream")); - put( - "CHILI_PEPPER", - Utils.createSkull( - EnumChatFormatting.RED + "Chili Pepper", - "3d47abaa-b40b-3826-b20c-d83a7f053bd9", - "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjg1OWM4ZGYxMTA5YzA4YTc1NjI3NWYxZDI4ODdjMjc0ODA0OWZlMzM4Nzc3NjlhN2I0MTVkNTZlZGE0NjlkOCJ9fX0" - ) - ); - - /* FORAGING COLLECTIONS */ - put("LOG", Utils.createItemStack(Item.getItemFromBlock(Blocks.log), EnumChatFormatting.DARK_GREEN + "Oak Wood")); - put("LOG:1", Utils.createItemStack(Item.getItemFromBlock(Blocks.log), EnumChatFormatting.DARK_GREEN + "Spruce Wood", 1)); - put("LOG:2", Utils.createItemStack(Item.getItemFromBlock(Blocks.log), EnumChatFormatting.DARK_GREEN + "Birch Wood", 2)); - put("LOG_2:1", Utils.createItemStack(Item.getItemFromBlock(Blocks.log2), EnumChatFormatting.DARK_GREEN + "Dark Oak Wood", 1)); - put("LOG_2", Utils.createItemStack(Item.getItemFromBlock(Blocks.log2), EnumChatFormatting.DARK_GREEN + "Acacia Wood")); - put("LOG:3", Utils.createItemStack(Item.getItemFromBlock(Blocks.log), EnumChatFormatting.DARK_GREEN + "Jungle Wood", 3)); - - /* FISHING COLLECTIONS */ - put("RAW_FISH", Utils.createItemStack(Items.fish, EnumChatFormatting.AQUA + "Raw Fish")); - put("RAW_FISH:1", Utils.createItemStack(Items.fish, EnumChatFormatting.AQUA + "Raw Salmon", 1)); - put("RAW_FISH:2", Utils.createItemStack(Items.fish, EnumChatFormatting.AQUA + "Clownfish", 2)); - put("RAW_FISH:3", Utils.createItemStack(Items.fish, EnumChatFormatting.AQUA + "Pufferfish", 3)); - put("PRISMARINE_SHARD", Utils.createItemStack(Items.prismarine_shard, EnumChatFormatting.AQUA + "Prismarine Shard")); - put("PRISMARINE_CRYSTALS", Utils.createItemStack(Items.prismarine_crystals, EnumChatFormatting.AQUA + "Prismarine Crystals")); - put("CLAY_BALL", Utils.createItemStack(Items.clay_ball, EnumChatFormatting.AQUA + "Clay")); - put("WATER_LILY", Utils.createItemStack(Item.getItemFromBlock(Blocks.waterlily), EnumChatFormatting.AQUA + "Lily Pad")); - put("INK_SACK", Utils.createItemStack(Items.dye, EnumChatFormatting.AQUA + "Ink Sac")); - put("SPONGE", Utils.createItemStack(Item.getItemFromBlock(Blocks.sponge), EnumChatFormatting.AQUA + "Sponge")); - put( - "MAGMA_FISH", - Utils.createSkull( - EnumChatFormatting.AQUA + "Magmafish", - "5c53195c-5b98-3476-9731-c32647b22723", - "ewogICJ0aW1lc3RhbXAiIDogMTY0MjQ4ODA3MDY2NiwKICAicHJvZmlsZUlkIiA6ICIzNDkxZjJiOTdjMDE0MWE2OTM2YjFjMjJhMmEwMGZiNyIsCiAgInByb2ZpbGVOYW1lIiA6ICJKZXNzc3N1aGgiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjU2YjU5NTViMjk1NTIyYzk2ODk0ODE5NjBjMDFhOTkyY2ExYzc3NTRjZjRlZTMxM2M4ZGQwYzM1NmQzMzVmIgogICAgfQogIH0KfQ" - ) - ); - } - }; + Utils.createItemStack(Item.getItemFromBlock(Blocks.waterlily), EnumChatFormatting.AQUA + "Lily Pad") + ); + put("INK_SACK", Utils.createItemStack(Items.dye, EnumChatFormatting.AQUA + "Ink Sac")); + put("SPONGE", Utils.createItemStack(Item.getItemFromBlock(Blocks.sponge), EnumChatFormatting.AQUA + "Sponge")); + put( + "MAGMA_FISH", + Utils.createSkull( + EnumChatFormatting.AQUA + "Magmafish", + "5c53195c-5b98-3476-9731-c32647b22723", + "ewogICJ0aW1lc3RhbXAiIDogMTY0MjQ4ODA3MDY2NiwKICAicHJvZmlsZUlkIiA6ICIzNDkxZjJiOTdjMDE0MWE2OTM2YjFjMjJhMmEwMGZiNyIsCiAgInByb2ZpbGVOYW1lIiA6ICJKZXNzc3N1aGgiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjU2YjU5NTViMjk1NTIyYzk2ODk0ODE5NjBjMDFhOTkyY2ExYzc3NTRjZjRlZTMxM2M4ZGQwYzM1NmQzMzVmIgogICAgfQogIH0KfQ" + ) + ); + } + }; private static final AtomicBoolean updatingResourceCollection = new AtomicBoolean(false); private static JsonObject resourceCollection = null; private final NEUManager manager; @@ -437,49 +511,42 @@ public class ProfileViewer { updatingResourceCollection.set(true); - HashMap args = new HashMap<>(); - NotEnoughUpdates.INSTANCE.manager.hypixelApi.getHypixelApiAsync( - NotEnoughUpdates.INSTANCE.config.apiData.apiKey, - "resources/skyblock/collections", - args, - jsonObject -> { + NotEnoughUpdates.INSTANCE.manager.apiUtils + .newHypixelApiRequest("resources/skyblock/collections") + .requestJson() + .thenAccept(jsonObject -> { updatingResourceCollection.set(false); if (jsonObject != null && jsonObject.has("success") && jsonObject.get("success").getAsBoolean()) { resourceCollection = jsonObject.get("collections").getAsJsonObject(); } - }, - () -> updatingResourceCollection.set(false) - ); - + }); return null; } public void getHypixelProfile(String name, Consumer callback) { String nameF = name.toLowerCase(); - HashMap args = new HashMap<>(); - args.put("name", "" + nameF); - manager.hypixelApi.getHypixelApiAsync( - NotEnoughUpdates.INSTANCE.config.apiData.apiKey, - "player", - args, - jsonObject -> { - if ( - jsonObject != null && - jsonObject.has("success") && - jsonObject.get("success").getAsBoolean() && - jsonObject.get("player").isJsonObject() - ) { - nameToUuid.put(nameF, jsonObject.get("player").getAsJsonObject().get("uuid").getAsString()); - uuidToHypixelProfile.put( - jsonObject.get("player").getAsJsonObject().get("uuid").getAsString(), - jsonObject.get("player").getAsJsonObject() - ); - if (callback != null) callback.accept(jsonObject); - } else { - if (callback != null) callback.accept(null); + manager.apiUtils + .newHypixelApiRequest("player") + .queryArgument("name", nameF) + .requestJson() + .thenAccept(jsonObject -> { + if ( + jsonObject != null && + jsonObject.has("success") && + jsonObject.get("success").getAsBoolean() && + jsonObject.get("player").isJsonObject() + ) { + nameToUuid.put(nameF, jsonObject.get("player").getAsJsonObject().get("uuid").getAsString()); + uuidToHypixelProfile.put( + jsonObject.get("player").getAsJsonObject().get("uuid").getAsString(), + jsonObject.get("player").getAsJsonObject() + ); + if (callback != null) callback.accept(jsonObject); + } else { + if (callback != null) callback.accept(null); + } } - } - ); + ); } public void putNameUuid(String name, String uuid) { @@ -493,19 +560,20 @@ public class ProfileViewer { return; } - manager.hypixelApi.getApiAsync( - "https://api.mojang.com/users/profiles/minecraft/" + nameF, - jsonObject -> { - if (jsonObject.has("id") && jsonObject.get("id").isJsonPrimitive() && ((JsonPrimitive) jsonObject.get("id")).isString()) { + manager.apiUtils + .request() + .url("https://api.mojang.com/users/profiles/minecraft/" + nameF) + .requestJson() + .thenAccept(jsonObject -> { + if (jsonObject.has("id") && jsonObject.get("id").isJsonPrimitive() && + ((JsonPrimitive) jsonObject.get("id")).isString()) { String uuid = jsonObject.get("id").getAsString(); nameToUuid.put(nameF, uuid); uuidCallback.accept(uuid); return; } uuidCallback.accept(null); - }, - () -> uuidCallback.accept(null) - ); + }); } public void getProfileByName(String name, Consumer callback) { @@ -608,20 +676,18 @@ public class ProfileViewer { HashMap args = new HashMap<>(); args.put("uuid", "" + uuid); - manager.hypixelApi.getHypixelApiAsync( - NotEnoughUpdates.INSTANCE.config.apiData.apiKey, - "status", - args, - jsonObject -> { + manager.apiUtils + .newHypixelApiRequest("status") + .queryArgument("uuid", "" + uuid) + .requestJson() + .handle((jsonObject, ex) -> { updatingPlayerStatusState.set(false); if (jsonObject != null && jsonObject.has("success") && jsonObject.get("success").getAsBoolean()) { playerStatus = jsonObject.get("session").getAsJsonObject(); } - }, - () -> updatingPlayerStatusState.set(false) - ); - + return null; + }); return null; } @@ -634,13 +700,11 @@ public class ProfileViewer { lastBingoInfoState = currentTime; updatingBingoInfo.set(true); - HashMap args = new HashMap<>(); - args.put("uuid", "" + uuid); - NotEnoughUpdates.INSTANCE.manager.hypixelApi.getHypixelApiAsync( - NotEnoughUpdates.INSTANCE.config.apiData.apiKey, - "skyblock/bingo", - args, - jsonObject -> { + NotEnoughUpdates.INSTANCE.manager.apiUtils + .newHypixelApiRequest("skyblock/bingo") + .queryArgument("uuid", "" + uuid) + .requestJson() + .handle(((jsonObject, throwable) -> { updatingBingoInfo.set(false); if (jsonObject != null && jsonObject.has("success") && jsonObject.get("success").getAsBoolean()) { @@ -648,9 +712,8 @@ public class ProfileViewer { } else { bingoInformation = null; } - }, - () -> updatingBingoInfo.set(false) - ); + return null; + })); return bingoInformation != null ? bingoInformation : null; } @@ -726,7 +789,8 @@ public class ProfileViewer { } } } - } catch (IOException ignored) {} + } catch (IOException ignored) { + } int count = 1; if (element.getAsJsonObject().has("count")) { @@ -791,17 +855,15 @@ public class ProfileViewer { lastPlayerInfoState = currentTime; updatingSkyblockProfilesState.set(true); - HashMap args = new HashMap<>(); - args.put("uuid", "" + uuid); - manager.hypixelApi.getHypixelApiAsync( - NotEnoughUpdates.INSTANCE.config.apiData.apiKey, - "skyblock/profiles", - args, - jsonObject -> { + manager.apiUtils + .newHypixelApiRequest("skyblock/profiles") + .queryArgument("uuid", "" + uuid) + .requestJson() + .handle((jsonObject, throwable) -> { updatingSkyblockProfilesState.set(false); if (jsonObject != null && jsonObject.has("success") && jsonObject.get("success").getAsBoolean()) { - if (!jsonObject.has("profiles")) return; + if (!jsonObject.has("profiles")) return null; skyblockProfiles = jsonObject.get("profiles").getAsJsonArray(); String lastCuteName = null; @@ -825,8 +887,12 @@ public class ProfileViewer { } String cuteName = profile.get("cute_name").getAsString(); - if (lastCuteName == null) lastCuteName = cuteName; profileNames.add(cuteName); + if (profile.has("selected") && profile.get("selected").getAsBoolean()) { + lastCuteName = cuteName; + break; + } + if (lastCuteName == null) lastCuteName = cuteName; if (member.has("last_save")) { long lastSave = member.get("last_save").getAsLong(); if (lastSave > lastLastSave) { @@ -840,10 +906,8 @@ public class ProfileViewer { if (runnable != null) runnable.run(); } - }, - () -> updatingSkyblockProfilesState.set(false) - ); - + return null; + }); return null; } @@ -856,26 +920,22 @@ public class ProfileViewer { lastGuildInfoState = currentTime; updatingGuildInfoState.set(true); - HashMap args = new HashMap<>(); - args.put("player", "" + uuid); - manager.hypixelApi.getHypixelApiAsync( - NotEnoughUpdates.INSTANCE.config.apiData.apiKey, - "guild", - args, - jsonObject -> { + manager.apiUtils + .newHypixelApiRequest("guild") + .queryArgument("player", "" + uuid) + .requestJson() + .handle((jsonObject, ex) -> { updatingGuildInfoState.set(false); if (jsonObject != null && jsonObject.has("success") && jsonObject.get("success").getAsBoolean()) { - if (!jsonObject.has("guild")) return; + if (!jsonObject.has("guild")) return null; guildInformation = jsonObject.get("guild").getAsJsonObject(); if (runnable != null) runnable.run(); } - }, - () -> updatingGuildInfoState.set(false) - ); - + return null; + }); return null; } @@ -1013,11 +1073,11 @@ public class ProfileViewer { int maxLevel = getCap(leveling, skillName) + - ( - skillName.equals("farming") - ? Utils.getElementAsInt(Utils.getElement(profileInfo, "jacob2.perks.farming_level_cap"), 0) - : 0 - ); + ( + skillName.equals("farming") + ? Utils.getElementAsInt(Utils.getElement(profileInfo, "jacob2.perks.farming_level_cap"), 0) + : 0 + ); out.put(skillName, getLevel(levelingArray, skillExperience, maxLevel, false)); } @@ -1065,7 +1125,10 @@ public class ProfileViewer { List slayers = Arrays.asList("zombie", "spider", "wolf", "enderman", "blaze"); for (String slayerName : slayers) { - float slayerExperience = Utils.getElementAsFloat(Utils.getElement(profileInfo, "slayer_bosses." + slayerName + ".xp"), 0); + float slayerExperience = Utils.getElementAsFloat(Utils.getElement( + profileInfo, + "slayer_bosses." + slayerName + ".xp" + ), 0); out.put( slayerName, getLevel(Utils.getElement(leveling, "slayer_xp." + slayerName).getAsJsonArray(), slayerExperience, 9, true) @@ -1135,7 +1198,7 @@ public class ProfileViewer { JsonObject inventoryInfo = new JsonObject(); - String[] inv_names = new String[] { + String[] inv_names = new String[]{ "inv_armor", "fishing_bag", "quiver", @@ -1149,7 +1212,7 @@ public class ProfileViewer { "candy_inventory_contents", "equippment_contents", }; - String[] inv_bytes = new String[] { + String[] inv_bytes = new String[]{ inv_armor_bytes, fishing_bag_bytes, quiver_bytes, @@ -1244,7 +1307,8 @@ public class ProfileViewer { JsonObject item = manager.getJsonFromNBTEntry(items.getCompoundTagAt(j)); contents.add(item); } - } catch (IOException ignored) {} + } catch (IOException ignored) { + } } JsonObject bundledReturn = new JsonObject(); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/ApiUtil.java b/src/main/java/io/github/moulberry/notenoughupdates/util/ApiUtil.java new file mode 100644 index 00000000..8c594911 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/ApiUtil.java @@ -0,0 +1,203 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.util; + +import com.google.gson.Gson; +import com.google.gson.JsonObject; +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import org.apache.commons.io.IOUtils; +import org.apache.http.NameValuePair; +import org.apache.http.client.utils.URIBuilder; +import org.apache.http.message.BasicNameValuePair; + +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.KeyManagerFactory; +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManagerFactory; +import java.io.IOException; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URISyntaxException; +import java.net.URL; +import java.net.URLConnection; +import java.nio.charset.StandardCharsets; +import java.security.KeyManagementException; +import java.security.KeyStore; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.security.UnrecoverableKeyException; +import java.security.cert.CertificateException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.zip.GZIPInputStream; + +public class ApiUtil { + private static final Gson gson = new Gson(); + private static final ExecutorService executorService = Executors.newFixedThreadPool(3); + private static final String USER_AGENT = "NotEnoughUpdates/" + NotEnoughUpdates.VERSION; + private static SSLContext ctx; + + static { + try { + KeyStore letsEncryptStore = KeyStore.getInstance("JKS"); + letsEncryptStore.load(ApiUtil.class.getResourceAsStream("/neukeystore.jks"), "neuneu".toCharArray()); + ctx = SSLContext.getInstance("TLS"); + KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); + TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); + kmf.init(letsEncryptStore, null); + tmf.init(letsEncryptStore); + ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); + } catch (KeyStoreException | NoSuchAlgorithmException | KeyManagementException | UnrecoverableKeyException | + IOException | CertificateException e) { + System.out.println("Failed to load NEU keystore. A lot of API requests won't work"); + e.printStackTrace(); + } + } + + public static class Request { + + private final List queryArguments = new ArrayList<>(); + private String baseUrl = null; + private boolean shouldGunzip = false; + private String method = "GET"; + + public Request method(String method) { + this.method = method; + return this; + } + + public Request url(String baseUrl) { + this.baseUrl = baseUrl; + return this; + } + + public Request queryArgument(String key, String value) { + queryArguments.add(new BasicNameValuePair(key, value)); + return this; + } + + public Request queryArguments(Collection queryArguments) { + this.queryArguments.addAll(queryArguments); + return this; + } + + public Request gunzip() { + shouldGunzip = true; + return this; + } + + private CompletableFuture buildUrl() { + CompletableFuture fut = new CompletableFuture<>(); + try { + fut.complete(new URIBuilder(baseUrl) + .addParameters(queryArguments) + .build() + .toURL()); + } catch (URISyntaxException | + MalformedURLException | + NullPointerException e) { // Using CompletableFuture as an exception monad, isn't that exiting? + fut.completeExceptionally(e); + } + return fut; + } + + public CompletableFuture requestString() { + return buildUrl().thenApplyAsync(url -> { + try { + InputStream inputStream = null; + URLConnection conn = null; + try { + conn = url.openConnection(); + if (conn instanceof HttpsURLConnection && ctx != null) { + HttpsURLConnection sslConn = (HttpsURLConnection) conn; + sslConn.setSSLSocketFactory(ctx.getSocketFactory()); + } + if (conn instanceof HttpURLConnection) { + ((HttpURLConnection) conn).setRequestMethod(method); + } + conn.setConnectTimeout(10000); + conn.setReadTimeout(10000); + conn.setRequestProperty("User-Agent", USER_AGENT); + + inputStream = conn.getInputStream(); + + if (shouldGunzip) { + inputStream = new GZIPInputStream(inputStream); + } + + // While the assumption of UTF8 isn't always true; it *should* always be true. + // Not in the sense that this will hold in most cases (although that as well), + // but in the sense that any violation of this better have a good reason. + return IOUtils.toString(inputStream, StandardCharsets.UTF_8); + } finally { + try { + if (inputStream != null) { + inputStream.close(); + } + } finally { + if (conn instanceof HttpURLConnection) { + ((HttpURLConnection) conn).disconnect(); + } + } + } + } catch (IOException e) { + throw new RuntimeException(e); // We can rethrow, since supplyAsync catches exceptions. + } + }, executorService); + } + + public CompletableFuture requestJson() { + return requestJson(JsonObject.class); + } + + public CompletableFuture requestJson(Class clazz) { + return requestString().thenApply(str -> gson.fromJson(str, clazz)); + } + + } + + public Request request() { + return new Request(); + } + + public Request newHypixelApiRequest(String apiPath) { + return newAnonymousHypixelApiRequest(apiPath) + .queryArgument("key", NotEnoughUpdates.INSTANCE.config.apiData.apiKey); + } + + public Request newAnonymousHypixelApiRequest(String apiPath) { + return new Request() + .url("https://api.hypixel.net/" + apiPath); + } + + public Request newMoulberryRequest(String path) { + return new Request() + .url(getMyApiURL() + path); + } + + private String getMyApiURL() { + return String.format("https://%s/", NotEnoughUpdates.INSTANCE.config.apiData.moulberryCodesApi); + } +} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/HotmInformation.java b/src/main/java/io/github/moulberry/notenoughupdates/util/HotmInformation.java index c97a37d9..1968b51e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/HotmInformation.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/HotmInformation.java @@ -159,13 +159,11 @@ public class HotmInformation { public synchronized void requestUpdate(boolean force) { if (updateTask.isDone() || force) { - updateTask = neu.manager.hypixelApi.getHypixelApiAsync( - neu.config.apiData.apiKey, - "skyblock/profiles", - new HashMap() {{ - put("uuid", Minecraft.getMinecraft().thePlayer.getUniqueID().toString().replace("-", "")); - }} - ).thenAccept(this::updateInformation); + updateTask = neu.manager.apiUtils + .newHypixelApiRequest("skyblock/profiles") + .queryArgument("uuid", Minecraft.getMinecraft().thePlayer.getUniqueID().toString().replace("-", "")) + .requestJson() + .thenAccept(this::updateInformation); } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/HypixelApi.java b/src/main/java/io/github/moulberry/notenoughupdates/util/HypixelApi.java deleted file mode 100644 index 3e38fd2e..00000000 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/HypixelApi.java +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (C) 2022 NotEnoughUpdates contributors - * - * This file is part of NotEnoughUpdates. - * - * NotEnoughUpdates is free software: you can redistribute it - * and/or modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation, either - * version 3 of the License, or (at your option) any later version. - * - * NotEnoughUpdates is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with NotEnoughUpdates. If not, see . - */ - -package io.github.moulberry.notenoughupdates.util; - -import com.google.gson.Gson; -import com.google.gson.JsonObject; -import io.github.moulberry.notenoughupdates.NotEnoughUpdates; -import org.apache.commons.io.IOUtils; - -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.ConnectException; -import java.net.URL; -import java.net.URLConnection; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.function.Consumer; -import java.util.zip.GZIPInputStream; - -public class HypixelApi { - private final Gson gson = new Gson(); - private final ExecutorService es = Executors.newFixedThreadPool(3); - - public CompletableFuture getHypixelApiAsync(String apiKey, String method, HashMap args) { - return getApiAsync(generateApiUrl(apiKey, method, args)); - } - - public void getHypixelApiAsync( - String apiKey, - String method, - HashMap args, - Consumer consumer - ) { - getHypixelApiAsync(apiKey, method, args, consumer, () -> { - }); - } - - public void getHypixelApiAsync( - String apiKey, - String method, - HashMap args, - Consumer consumer, - Runnable error - ) { - getApiAsync(generateApiUrl(apiKey, method, args), consumer, error); - } - - private String getMyApiURL() { - return String.format("https://%s/", NotEnoughUpdates.INSTANCE.config.apiData.moulberryCodesApi); - } - - public CompletableFuture getApiAsync(String urlS) { - CompletableFuture result = new CompletableFuture<>(); - es.submit(() -> { - try { - result.complete(getApiSync(urlS)); - } catch (Exception e) { - result.completeExceptionally(e); - } - }); - return result; - } - - public void getApiAsync(String urlS, Consumer consumer, Runnable error) { - es.submit(() -> { - try { - consumer.accept(getApiSync(urlS)); - } catch (Exception e) { - error.run(); - } - }); - } - - public void getMyApiAsync(String urlS, Consumer consumer, Runnable error) { - es.submit(() -> { - try { - consumer.accept(getApiSync(getMyApiURL() + urlS)); - } catch (Exception e) { - if (NotEnoughUpdates.INSTANCE.config.hidden.dev) { - e.printStackTrace(); - } - error.run(); - } - }); - } - - public void getMyApiGZIPAsync(String urlS, Consumer consumer, Runnable error) { - es.submit(() -> { - try { - consumer.accept(getApiGZIPSync(getMyApiURL() + urlS)); - } catch (Exception e) { - error.run(); - } - }); - } - - public void getApiGZIPAsync(String urlS, Consumer consumer, Runnable error) { - es.submit(() -> { - try { - consumer.accept(getApiGZIPSync(urlS)); - } catch (Exception e) { - error.run(); - } - }); - } - - public JsonObject getApiSync(String urlS) throws IOException { - URL url = new URL(urlS); - URLConnection connection = url.openConnection(); - connection.setConnectTimeout(10000); - connection.setReadTimeout(10000); - - String response = IOUtils.toString(connection.getInputStream(), StandardCharsets.UTF_8); - - JsonObject json = gson.fromJson(response, JsonObject.class); - if (json == null) throw new ConnectException("Invalid JSON"); - return json; - } - - public JsonObject getApiGZIPSync(String urlS) throws IOException { - URL url = new URL(urlS); - URLConnection connection = url.openConnection(); - connection.setConnectTimeout(10000); - connection.setReadTimeout(10000); - - String response = IOUtils.toString(new GZIPInputStream(connection.getInputStream()), StandardCharsets.UTF_8); - - JsonObject json = gson.fromJson(response, JsonObject.class); - return json; - } - - public String generateApiUrl(String apiKey, String method, HashMap args) { - if (apiKey != null) - args.put("key", apiKey.trim()); - StringBuilder url = new StringBuilder("https://api.hypixel.net/" + method); - boolean first = true; - for (Map.Entry entry : args.entrySet()) { - if (first) { - url.append("?"); - first = false; - } else { - url.append("&"); - } - try { - url.append(URLEncoder.encode(entry.getKey(), StandardCharsets.UTF_8.name())).append("=") - .append(URLEncoder.encode(entry.getValue(), StandardCharsets.UTF_8.name())); - } catch (UnsupportedEncodingException e) { - } - } - return url.toString(); - } -} diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/PronounDB.java b/src/main/java/io/github/moulberry/notenoughupdates/util/PronounDB.java index e7286721..625f92f7 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/PronounDB.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/PronounDB.java @@ -21,50 +21,17 @@ package io.github.moulberry.notenoughupdates.util; import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; -import io.github.moulberry.notenoughupdates.core.util.StringUtils; - -import javax.net.ssl.HttpsURLConnection; -import javax.net.ssl.KeyManagerFactory; -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManagerFactory; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.URL; -import java.security.KeyManagementException; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.UnrecoverableKeyException; -import java.security.cert.CertificateException; + import java.util.Arrays; import java.util.List; import java.util.Optional; import java.util.UUID; +import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; public class PronounDB { - static SSLContext ctx; - - static { - try { - KeyStore ks = KeyStore.getInstance("JKS"); - ks.load(PronounDB.class.getResourceAsStream("/pronoundb.jks"), "pronoundb".toCharArray()); - ctx = SSLContext.getInstance("TLS"); - KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); - TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); - kmf.init(ks, null); - tmf.init(ks); - ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); - } catch (KeyStoreException | NoSuchAlgorithmException | KeyManagementException | UnrecoverableKeyException | - IOException | CertificateException e) { - System.out.println("Failed to load keystore. PronounDB requests will probably not work"); - e.printStackTrace(); - } - } - private static boolean isDisabled() { JsonObject disabled = Constants.DISABLE; return disabled != null && disabled.has("pronoundb"); @@ -73,22 +40,15 @@ public class PronounDB { /** * Returns an Optional, since JVMs can be *very* funky with KeyStore loading */ - public static Optional performPronouning(String platform, String id) { - if (isDisabled()) return Optional.empty(); - try { - URL url = new URL("https://pronoundb.org/api/v1/lookup" + - "?platform=" + StringUtils.urlEncode(platform) + - "&id=" + StringUtils.urlEncode(id)); - HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection(); - urlConnection.setSSLSocketFactory(ctx.getSocketFactory()); - return Optional.of(NotEnoughUpdates.INSTANCE.manager.gson.fromJson( - new InputStreamReader(urlConnection.getInputStream()), - JsonObject.class - )); - } catch (ClassCastException | IOException | JsonParseException e) { - System.out.println("Failed to contact PronounDB: " + e); - return Optional.empty(); - } + public static CompletableFuture> performPronouning(String platform, String id) { + if (isDisabled()) return CompletableFuture.completedFuture(Optional.empty()); + return NotEnoughUpdates.INSTANCE.manager.apiUtils + .request() + .url("https://pronoundb.org/api/v1/lookup") + .queryArgument("platform", platform) + .queryArgument("id", id) + .requestJson() + .handle((result, ex) -> Optional.ofNullable(result)); } public enum Pronoun { @@ -199,23 +159,20 @@ public class PronounDB { return Optional.empty(); } - public static Optional getPronounsFor(String platform, String name) { - return performPronouning(platform, name).flatMap(PronounDB::parsePronouns); + public static CompletableFuture> getPronounsFor(String platform, String name) { + return performPronouning(platform, name).thenApply(it -> it.flatMap(PronounDB::parsePronouns)); } - public static Optional getPronounsFor(UUID minecraftPlayer) { - return performPronouning("minecraft", minecraftPlayer.toString() /* dashed UUID */) - .flatMap(PronounDB::parsePronouns); + public static CompletableFuture> getPronounsFor(UUID minecraftPlayer) { + return getPronounsFor("minecraft", minecraftPlayer.toString() /* dashed UUID */); } public static void test() { - try { - System.out.println("Pronouning..."); - PronounChoice pronounsFor = getPronounsFor(UUID.fromString("842204e6-6880-487b-ae5a-0595394f9948")).get(); + System.out.println("Pronouning..."); + getPronounsFor(UUID.fromString("842204e6-6880-487b-ae5a-0595394f9948")).thenAccept(it -> { + PronounChoice pronounsFor = it.get(); pronounsFor.render().forEach(System.out::println); - } catch (Exception e) { - e.printStackTrace(); - } + }); } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/SBInfo.java b/src/main/java/io/github/moulberry/notenoughupdates/util/SBInfo.java index 4e920aea..f3a09fcc 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/SBInfo.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/SBInfo.java @@ -61,8 +61,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutionException; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -431,11 +429,10 @@ public class SBInfo { } public void updateMayor() { - NotEnoughUpdates.INSTANCE.manager.hypixelApi.getHypixelApiAsync( - NotEnoughUpdates.INSTANCE.config.apiData.apiKey, - "resources/skyblock/election", - new HashMap<>() - ).thenAcceptAsync(newJson -> mayorJson = newJson); + NotEnoughUpdates.INSTANCE.manager.apiUtils + .newHypixelApiRequest("resources/skyblock/election") + .requestJson() + .thenAccept(newJson -> mayorJson = newJson); } diff --git a/src/main/resources/neukeystore.jks b/src/main/resources/neukeystore.jks new file mode 100644 index 00000000..3a5a23b6 Binary files /dev/null and b/src/main/resources/neukeystore.jks differ diff --git a/src/main/resources/neukeystore.txt b/src/main/resources/neukeystore.txt new file mode 100644 index 00000000..5616f69b --- /dev/null +++ b/src/main/resources/neukeystore.txt @@ -0,0 +1,17 @@ +neukeystore.jks +=============== + +This file should only ever be handled by a `keytool` binary from jdk 1.8u51 or below, as to be compatible with old java versions. + +The password to the keystore is `neuneu` and it contains every certificate from jdk 1.8u51 and the Let's Encrypt root CAs. + +Example for adding a new certificate: + + ~/.jdks/jdk1.8.0_51/bin/keytool -keystore neukeystore.jks -storepass neuneu -alias ISRGROOTX1 -import -file isrgrootx1.der + +Please keep a list of added aliases below: + + - ISRGROOTX1 (Let's Encrypt) + - ISRGROOTX2 (Let's Encrypt) + + diff --git a/src/main/resources/pronoundb.jks b/src/main/resources/pronoundb.jks deleted file mode 100644 index 1c279333..00000000 Binary files a/src/main/resources/pronoundb.jks and /dev/null differ -- cgit From 431de03ea35cbbfbf81385ad320bfbd8f512feb9 Mon Sep 17 00:00:00 2001 From: "imgbot[bot]" <31301654+imgbot[bot]@users.noreply.github.com> Date: Tue, 4 Oct 2022 13:59:15 +1100 Subject: [ImgBot] Optimize images (#325) Co-authored-by: ImgBotApp --- .../notenoughupdates/accessory_bag_overlay.png | Bin 973 -> 587 bytes .../notenoughupdates/armordisplay/armordisplay.png | Bin 1599 -> 381 bytes .../armordisplay/armordisplay_transparent_pet.png | Bin 1500 -> 1171 bytes .../auc_search/ah_search_overlay.png | Bin 3513 -> 3168 bytes .../auc_search/ah_search_overlay_tab_completed.png | Bin 6969 -> 6547 bytes .../assets/notenoughupdates/auction_profit.png | Bin 595 -> 551 bytes .../assets/notenoughupdates/button_white.png | Bin 6570 -> 4882 bytes .../assets/notenoughupdates/capes/dg_preview.png | Bin 18852 -> 7788 bytes .../assets/notenoughupdates/capes/fade.png | Bin 18572 -> 10289 bytes .../assets/notenoughupdates/capes/fade_preview.png | Bin 10411 -> 10309 bytes .../assets/notenoughupdates/capes/furf.png | Bin 8509 -> 5776 bytes .../assets/notenoughupdates/capes/furf_preview.png | Bin 3506 -> 3286 bytes .../assets/notenoughupdates/capes/ironmoon.png | Bin 142131 -> 133758 bytes .../notenoughupdates/capes/ironmoon_preview.png | Bin 92492 -> 88214 bytes .../assets/notenoughupdates/capes/lava.png | Bin 169280 -> 167381 bytes .../notenoughupdates/capes/mbstaff_preview.png | Bin 39260 -> 38573 bytes .../assets/notenoughupdates/capes/mcworld.png | Bin 291014 -> 280386 bytes .../notenoughupdates/capes/packshq_preview.png | Bin 14680 -> 14346 bytes .../assets/notenoughupdates/capes/screensaver.png | Bin 31381 -> 31139 bytes .../notenoughupdates/capes/screensaver_preview.png | Bin 19453 -> 17150 bytes .../notenoughupdates/capes/secondpfirsisch.png | Bin 58167 -> 52827 bytes .../capes/secondpfirsisch_preview.png | Bin 38433 -> 36232 bytes .../assets/notenoughupdates/capes/sharex_white.png | Bin 27251 -> 15517 bytes .../capes/sharex_white_preview.png | Bin 21698 -> 15204 bytes .../assets/notenoughupdates/capes/skyclient.png | Bin 27981 -> 13024 bytes .../notenoughupdates/capes/skyclient_preview.png | Bin 10294 -> 5987 bytes .../assets/notenoughupdates/capes/space.png | Bin 922429 -> 856184 bytes .../assets/notenoughupdates/capes/stormy_lh.png | Bin 56764 -> 24286 bytes .../notenoughupdates/capes/stormy_lh_preview.png | Bin 12899 -> 11290 bytes .../notenoughupdates/capes/subreddit_dark.png | Bin 7297 -> 5275 bytes .../notenoughupdates/capes/subreddit_light.png | Bin 7508 -> 5353 bytes .../capes/subreddit_light_preview.png | Bin 2583 -> 2406 bytes .../assets/notenoughupdates/capes/thebakery.png | Bin 537705 -> 431168 bytes .../notenoughupdates/capes/thebakery_preview.png | Bin 71386 -> 50272 bytes .../assets/notenoughupdates/capes/void.png | Bin 41607 -> 20910 bytes .../assets/notenoughupdates/capes/void_preview.png | Bin 4712 -> 3235 bytes .../notenoughupdates/colour_selector_dot.png | Bin 3677 -> 2596 bytes .../notenoughupdates/core/colour_selector_dot.png | Bin 3677 -> 2596 bytes .../assets/notenoughupdates/custom_enchant_gui.png | Bin 4982 -> 3227 bytes .../dungeon_map/borders/large/10.png | Bin 7050 -> 6065 bytes .../dungeon_map/borders/large/11.png | Bin 16913 -> 12073 bytes .../dungeon_map/borders/large/2.png | Bin 1006 -> 943 bytes .../dungeon_map/borders/large/3.png | Bin 6971 -> 6232 bytes .../dungeon_map/borders/large/4.png | Bin 10886 -> 7775 bytes .../dungeon_map/borders/large/5.png | Bin 13433 -> 8195 bytes .../dungeon_map/borders/large/8.png | Bin 6904 -> 6080 bytes .../dungeon_map/borders/large/9.png | Bin 6779 -> 5405 bytes .../borders/map_border_dragon_stone.png | Bin 4952 -> 2351 bytes .../dungeon_map/borders/medium/10.png | Bin 6703 -> 6222 bytes .../dungeon_map/borders/medium/11.png | Bin 15370 -> 11183 bytes .../dungeon_map/borders/medium/3.png | Bin 6522 -> 6013 bytes .../dungeon_map/borders/medium/4.png | Bin 7093 -> 5987 bytes .../dungeon_map/borders/medium/5.png | Bin 7618 -> 5824 bytes .../dungeon_map/borders/medium/8.png | Bin 6277 -> 5779 bytes .../dungeon_map/borders/medium/9.png | Bin 6362 -> 5654 bytes .../dungeon_map/borders/small/10.png | Bin 7045 -> 6455 bytes .../dungeon_map/borders/small/11.png | Bin 12576 -> 9691 bytes .../dungeon_map/borders/small/3.png | Bin 6697 -> 6386 bytes .../dungeon_map/borders/small/4.png | Bin 5947 -> 5307 bytes .../dungeon_map/borders/small/5.png | Bin 8456 -> 7041 bytes .../dungeon_map/borders/small/8.png | Bin 6789 -> 6365 bytes .../dungeon_map/borders/small/9.png | Bin 5897 -> 5734 bytes .../dungeon_map/borders/steampunk.png | Bin 10039 -> 8341 bytes .../assets/notenoughupdates/dungeon_win/a.png | Bin 569 -> 517 bytes .../assets/notenoughupdates/dungeon_win/s.png | Bin 579 -> 502 bytes .../assets/notenoughupdates/dungeon_win/splus.png | Bin 2296 -> 1482 bytes .../dynamic_54/style4/dynamic_54_slot_ctm.png | Bin 539 -> 537 bytes .../dynamic_54/style5/dynamic_54_button_ctm.png | Bin 543 -> 533 bytes .../dynamic_54/style5/dynamic_54_slot_ctm.png | Bin 539 -> 537 bytes .../dynamic_54/style6/dynamic_54_button_ctm.png | Bin 539 -> 537 bytes .../dynamic_54/style6/dynamic_54_slot_ctm.png | Bin 539 -> 537 bytes .../dynamic_54/style7/dynamic_54_button_ctm.png | Bin 3437 -> 864 bytes .../dynamic_54/style7/dynamic_54_slot_ctm.png | Bin 539 -> 537 bytes .../notenoughupdates/dynamic_54/toggle_off.png | Bin 389 -> 379 bytes .../notenoughupdates/dynamic_54/toggle_on.png | Bin 406 -> 379 bytes .../notenoughupdates/fishing_warning_exclam.png | Bin 5807 -> 5749 bytes .../resources/assets/notenoughupdates/fuel_bar.png | Bin 2333 -> 2271 bytes .../resources/assets/notenoughupdates/help.png | Bin 3500 -> 3018 bytes .../invbuttons/extraicons/settings.png | Bin 3962 -> 2546 bytes .../resources/assets/notenoughupdates/logo.png | Bin 21782 -> 18710 bytes src/main/resources/assets/notenoughupdates/on.png | Bin 1311 -> 446 bytes .../panoramas/combat_1_day/panorama_0.jpg | Bin 21394 -> 20975 bytes .../panoramas/combat_1_day/panorama_1.jpg | Bin 20539 -> 20008 bytes .../panoramas/combat_1_day/panorama_2.jpg | Bin 18095 -> 18018 bytes .../panoramas/combat_1_day/panorama_3.jpg | Bin 21069 -> 20646 bytes .../panoramas/combat_1_day/panorama_4.jpg | Bin 17245 -> 16944 bytes .../panoramas/combat_1_night/panorama_5.jpg | Bin 16017 -> 15892 bytes .../panoramas/combat_3_day/panorama_0.jpg | Bin 34048 -> 32699 bytes .../panoramas/combat_3_day/panorama_1.jpg | Bin 28471 -> 27566 bytes .../panoramas/combat_3_day/panorama_2.jpg | Bin 22159 -> 21806 bytes .../panoramas/combat_3_day/panorama_3.jpg | Bin 27487 -> 26543 bytes .../panoramas/combat_3_day/panorama_4.jpg | Bin 19750 -> 19205 bytes .../panoramas/combat_3_day/panorama_5.jpg | Bin 21597 -> 21050 bytes .../panoramas/combat_3_night/panorama_0.jpg | Bin 18255 -> 18025 bytes .../panoramas/combat_3_night/panorama_3.jpg | Bin 18438 -> 18259 bytes .../panoramas/dark_auction/panorama_0.jpg | Bin 19008 -> 18990 bytes .../panoramas/dark_auction/panorama_1.jpg | Bin 19414 -> 19399 bytes .../panoramas/dark_auction/panorama_3.jpg | Bin 19497 -> 19482 bytes .../panoramas/dark_auction/panorama_4.jpg | Bin 18727 -> 18500 bytes .../panoramas/dark_auction/panorama_5.jpg | Bin 18871 -> 18621 bytes .../panoramas/dungeon/panorama_4.jpg | Bin 18780 -> 18727 bytes .../panoramas/dungeon/panorama_5.jpg | Bin 18041 -> 17991 bytes .../panoramas/dungeon_hub/panorama_4.jpg | Bin 18780 -> 18727 bytes .../panoramas/dungeon_hub/panorama_5.jpg | Bin 18041 -> 17991 bytes .../panoramas/dynamic_day/panorama_0.jpg | Bin 35131 -> 33582 bytes .../panoramas/dynamic_day/panorama_1.jpg | Bin 32356 -> 31126 bytes .../panoramas/dynamic_day/panorama_2.jpg | Bin 34147 -> 32793 bytes .../panoramas/dynamic_day/panorama_3.jpg | Bin 42291 -> 40205 bytes .../panoramas/dynamic_day/panorama_4.jpg | Bin 25831 -> 24929 bytes .../panoramas/dynamic_day/panorama_5.jpg | Bin 20933 -> 20373 bytes .../panoramas/dynamic_night/panorama_0.jpg | Bin 28070 -> 27052 bytes .../panoramas/dynamic_night/panorama_1.jpg | Bin 30401 -> 29354 bytes .../panoramas/dynamic_night/panorama_2.jpg | Bin 29899 -> 28849 bytes .../panoramas/dynamic_night/panorama_3.jpg | Bin 30543 -> 29568 bytes .../panoramas/dynamic_night/panorama_4.jpg | Bin 27401 -> 26255 bytes .../panoramas/dynamic_night/panorama_5.jpg | Bin 21828 -> 21223 bytes .../panoramas/farming_1_day/panorama_0.jpg | Bin 34294 -> 32829 bytes .../panoramas/farming_1_day/panorama_1.jpg | Bin 47518 -> 45004 bytes .../panoramas/farming_1_day/panorama_2.jpg | Bin 46569 -> 44117 bytes .../panoramas/farming_1_day/panorama_3.jpg | Bin 36648 -> 35025 bytes .../panoramas/farming_1_day/panorama_4.jpg | Bin 15788 -> 15667 bytes .../panoramas/farming_1_day/panorama_5.jpg | Bin 47536 -> 45072 bytes .../panoramas/farming_1_night/panorama_0.jpg | Bin 20273 -> 19870 bytes .../panoramas/farming_1_night/panorama_1.jpg | Bin 23666 -> 23078 bytes .../panoramas/farming_1_night/panorama_2.jpg | Bin 26548 -> 25794 bytes .../panoramas/farming_1_night/panorama_3.jpg | Bin 22310 -> 21899 bytes .../panoramas/farming_1_night/panorama_5.jpg | Bin 29882 -> 28777 bytes .../panoramas/farming_2_day/panorama_0.jpg | Bin 30779 -> 29641 bytes .../panoramas/farming_2_day/panorama_2.jpg | Bin 30070 -> 29040 bytes .../panoramas/farming_2_day/panorama_3.jpg | Bin 30822 -> 29641 bytes .../panoramas/farming_2_day/panorama_5.jpg | Bin 24780 -> 23466 bytes .../panoramas/farming_2_night/panorama_0.jpg | Bin 19525 -> 19360 bytes .../panoramas/farming_2_night/panorama_3.jpg | Bin 17533 -> 17432 bytes .../panoramas/farming_2_night/panorama_5.jpg | Bin 17504 -> 17040 bytes .../panoramas/foraging_1_day/panorama_0.jpg | Bin 42789 -> 40489 bytes .../panoramas/foraging_1_day/panorama_1.jpg | Bin 32963 -> 31789 bytes .../panoramas/foraging_1_day/panorama_2.jpg | Bin 36208 -> 34619 bytes .../panoramas/foraging_1_day/panorama_3.jpg | Bin 34657 -> 33244 bytes .../panoramas/foraging_1_day/panorama_4.jpg | Bin 25234 -> 24265 bytes .../panoramas/foraging_1_day/panorama_5.jpg | Bin 29243 -> 27950 bytes .../panoramas/foraging_1_night/panorama_0.jpg | Bin 16958 -> 16927 bytes .../panoramas/foraging_1_night/panorama_3.jpg | Bin 17531 -> 17518 bytes .../panoramas/foraging_1_night/panorama_5.jpg | Bin 17297 -> 16836 bytes .../panoramas/hub_day/panorama_0.jpg | Bin 20453 -> 20153 bytes .../panoramas/hub_day/panorama_1.jpg | Bin 20509 -> 20168 bytes .../panoramas/hub_day/panorama_2.jpg | Bin 23845 -> 23266 bytes .../panoramas/hub_day/panorama_3.jpg | Bin 24436 -> 23872 bytes .../panoramas/hub_day/panorama_5.jpg | Bin 16562 -> 16208 bytes .../panoramas/hub_night/panorama_0.jpg | Bin 17155 -> 16995 bytes .../panoramas/hub_night/panorama_1.jpg | Bin 17538 -> 17361 bytes .../panoramas/hub_night/panorama_2.jpg | Bin 15950 -> 15857 bytes .../panoramas/hub_night/panorama_3.jpg | Bin 17928 -> 17829 bytes .../panoramas/hub_night/panorama_5.jpg | Bin 15786 -> 15695 bytes .../panoramas/mining_1_day/panorama_0.jpg | Bin 37877 -> 36322 bytes .../panoramas/mining_1_day/panorama_1.jpg | Bin 33985 -> 32721 bytes .../panoramas/mining_1_day/panorama_2.jpg | Bin 29885 -> 28886 bytes .../panoramas/mining_1_day/panorama_3.jpg | Bin 29426 -> 28366 bytes .../panoramas/mining_1_day/panorama_4.jpg | Bin 17061 -> 16993 bytes .../panoramas/mining_1_day/panorama_5.jpg | Bin 24623 -> 23602 bytes .../panoramas/mining_1_night/panorama_0.jpg | Bin 25721 -> 25182 bytes .../panoramas/mining_1_night/panorama_1.jpg | Bin 22713 -> 22307 bytes .../panoramas/mining_1_night/panorama_3.jpg | Bin 19113 -> 18911 bytes .../panoramas/mining_1_night/panorama_5.jpg | Bin 17142 -> 17041 bytes .../panoramas/unknown/panorama_0.jpg | Bin 26015 -> 25187 bytes .../panoramas/unknown/panorama_1.jpg | Bin 26016 -> 25186 bytes .../panoramas/unknown/panorama_2.jpg | Bin 24769 -> 24064 bytes .../panoramas/unknown/panorama_3.jpg | Bin 24854 -> 24124 bytes .../panoramas/unknown/panorama_4.jpg | Bin 26123 -> 25315 bytes .../panoramas/unknown/panorama_5.jpg | Bin 24894 -> 24144 bytes .../petdisplay/petdisplayarmor_dark.png | Bin 1738 -> 1269 bytes .../petdisplay/petdisplayarmor_fsr.png | Bin 1734 -> 1305 bytes .../petdisplay/petdisplayarmor_phqdark.png | Bin 1728 -> 1272 bytes .../petdisplay/petdisplayarmor_transparent.png | Bin 1890 -> 1314 bytes .../notenoughupdates/petdisplay/petdisplaysolo.png | Bin 1743 -> 1284 bytes .../petdisplay/petdisplaysolo_dark.png | Bin 1545 -> 1190 bytes .../petdisplay/petdisplaysolo_fsr.png | Bin 1548 -> 1231 bytes .../petdisplay/petdisplaysolo_phqdark.png | Bin 1537 -> 1191 bytes .../petdisplay/petdisplaysolo_transparent.png | Bin 1720 -> 1257 bytes .../price_graph_gui/price_information_gui.png | Bin 2079 -> 1547 bytes .../price_graph_gui/price_information_gui_dark.png | Bin 2088 -> 1553 bytes .../price_graph_gui/price_information_gui_fsr.png | Bin 2045 -> 1520 bytes .../price_information_gui_phqdark.png | Bin 2091 -> 1556 bytes .../resources/assets/notenoughupdates/pv_basic.png | Bin 2836 -> 1860 bytes .../assets/notenoughupdates/pv_bestiary_tab.png | Bin 628 -> 400 bytes .../assets/notenoughupdates/pv_bingo_tab.png | Bin 2635 -> 1914 bytes .../assets/notenoughupdates/pv_elements.png | Bin 3030 -> 2219 bytes .../resources/assets/notenoughupdates/pv_invs.png | Bin 2426 -> 1219 bytes .../assets/notenoughupdates/pv_mining.png | Bin 4516 -> 3137 bytes .../assets/notenoughupdates/pv_trophy_fish_tab.png | Bin 2839 -> 1888 bytes .../assets/notenoughupdates/pv_unknown.png | Bin 1814 -> 1341 bytes .../resources/assets/notenoughupdates/settings.png | Bin 3962 -> 2546 bytes .../assets/notenoughupdates/slotlocking/bound.png | Bin 5619 -> 5512 bytes .../notenoughupdates/storage_gui/storage_gui_0.png | Bin 6939 -> 4334 bytes .../notenoughupdates/storage_gui/storage_gui_1.png | Bin 4859 -> 4026 bytes .../notenoughupdates/storage_gui/storage_gui_2.png | Bin 4380 -> 3669 bytes .../notenoughupdates/storage_gui/storage_gui_3.png | Bin 4469 -> 3419 bytes .../storage_gui/storage_gui_pane_ctm.png | Bin 1523 -> 1460 bytes .../notenoughupdates/storage_gui/storage_icons.png | Bin 5046 -> 3726 bytes .../storage_gui/storage_preview_0.png | Bin 6939 -> 5541 bytes .../storage_gui/storage_preview_1.png | Bin 7369 -> 6383 bytes .../storage_gui/storage_preview_2.png | Bin 7020 -> 5652 bytes .../storage_gui/storage_preview_3.png | Bin 4373 -> 3912 bytes .../storage_gui/we_do_a_little_rolling/0.jpg | Bin 3696 -> 3455 bytes .../storage_gui/we_do_a_little_rolling/1.jpg | Bin 3642 -> 3400 bytes .../storage_gui/we_do_a_little_rolling/10.jpg | Bin 3687 -> 3444 bytes .../storage_gui/we_do_a_little_rolling/11.jpg | Bin 3827 -> 3597 bytes .../storage_gui/we_do_a_little_rolling/12.jpg | Bin 3762 -> 3518 bytes .../storage_gui/we_do_a_little_rolling/13.jpg | Bin 3701 -> 3447 bytes .../storage_gui/we_do_a_little_rolling/14.jpg | Bin 3604 -> 3370 bytes .../storage_gui/we_do_a_little_rolling/15.jpg | Bin 3574 -> 3324 bytes .../storage_gui/we_do_a_little_rolling/16.jpg | Bin 3717 -> 3488 bytes .../storage_gui/we_do_a_little_rolling/17.jpg | Bin 3798 -> 3573 bytes .../storage_gui/we_do_a_little_rolling/18.jpg | Bin 4003 -> 3787 bytes .../storage_gui/we_do_a_little_rolling/2.jpg | Bin 3719 -> 3473 bytes .../storage_gui/we_do_a_little_rolling/3.jpg | Bin 3730 -> 3494 bytes .../storage_gui/we_do_a_little_rolling/4.jpg | Bin 3762 -> 3525 bytes .../storage_gui/we_do_a_little_rolling/5.jpg | Bin 3706 -> 3472 bytes .../storage_gui/we_do_a_little_rolling/6.jpg | Bin 3560 -> 3315 bytes .../storage_gui/we_do_a_little_rolling/7.jpg | Bin 3547 -> 3289 bytes .../storage_gui/we_do_a_little_rolling/8.jpg | Bin 3579 -> 3320 bytes .../storage_gui/we_do_a_little_rolling/9.jpg | Bin 3609 -> 3351 bytes .../notenoughupdates/supersecretassets/bald.png | Bin 19909 -> 17189 bytes .../notenoughupdates/supersecretassets/lunar.png | Bin 54979 -> 33956 bytes .../textures/gui/forge_recipe_tall.png | Bin 2743 -> 2548 bytes .../textures/gui/item_shop_recipe.png | Bin 3177 -> 2829 bytes .../notenoughupdates/textures/gui/navigation.png | Bin 984 -> 883 bytes .../textures/gui/villager_recipe_tall.png | Bin 2709 -> 2503 bytes 227 files changed, 0 insertions(+), 0 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/notenoughupdates/accessory_bag_overlay.png b/src/main/resources/assets/notenoughupdates/accessory_bag_overlay.png index 6fcac4d1..9de21da0 100644 Binary files a/src/main/resources/assets/notenoughupdates/accessory_bag_overlay.png and b/src/main/resources/assets/notenoughupdates/accessory_bag_overlay.png differ diff --git a/src/main/resources/assets/notenoughupdates/armordisplay/armordisplay.png b/src/main/resources/assets/notenoughupdates/armordisplay/armordisplay.png index 56f6060a..56bf0e1d 100644 Binary files a/src/main/resources/assets/notenoughupdates/armordisplay/armordisplay.png and b/src/main/resources/assets/notenoughupdates/armordisplay/armordisplay.png differ diff --git a/src/main/resources/assets/notenoughupdates/armordisplay/armordisplay_transparent_pet.png b/src/main/resources/assets/notenoughupdates/armordisplay/armordisplay_transparent_pet.png index aeb1b5ed..0467011e 100644 Binary files a/src/main/resources/assets/notenoughupdates/armordisplay/armordisplay_transparent_pet.png and b/src/main/resources/assets/notenoughupdates/armordisplay/armordisplay_transparent_pet.png differ diff --git a/src/main/resources/assets/notenoughupdates/auc_search/ah_search_overlay.png b/src/main/resources/assets/notenoughupdates/auc_search/ah_search_overlay.png index 3e21edda..7e15ccd5 100644 Binary files a/src/main/resources/assets/notenoughupdates/auc_search/ah_search_overlay.png and b/src/main/resources/assets/notenoughupdates/auc_search/ah_search_overlay.png differ diff --git a/src/main/resources/assets/notenoughupdates/auc_search/ah_search_overlay_tab_completed.png b/src/main/resources/assets/notenoughupdates/auc_search/ah_search_overlay_tab_completed.png index b5cf62c0..e6d5ccf0 100644 Binary files a/src/main/resources/assets/notenoughupdates/auc_search/ah_search_overlay_tab_completed.png and b/src/main/resources/assets/notenoughupdates/auc_search/ah_search_overlay_tab_completed.png differ diff --git a/src/main/resources/assets/notenoughupdates/auction_profit.png b/src/main/resources/assets/notenoughupdates/auction_profit.png index 80e06c10..26a2bbc6 100644 Binary files a/src/main/resources/assets/notenoughupdates/auction_profit.png and b/src/main/resources/assets/notenoughupdates/auction_profit.png differ diff --git a/src/main/resources/assets/notenoughupdates/button_white.png b/src/main/resources/assets/notenoughupdates/button_white.png index 7763716d..d6460e89 100644 Binary files a/src/main/resources/assets/notenoughupdates/button_white.png and b/src/main/resources/assets/notenoughupdates/button_white.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/dg_preview.png b/src/main/resources/assets/notenoughupdates/capes/dg_preview.png index 2e68d99d..bf9bad22 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/dg_preview.png and b/src/main/resources/assets/notenoughupdates/capes/dg_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/fade.png b/src/main/resources/assets/notenoughupdates/capes/fade.png index d898ec4d..7ee247a6 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/fade.png and b/src/main/resources/assets/notenoughupdates/capes/fade.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/fade_preview.png b/src/main/resources/assets/notenoughupdates/capes/fade_preview.png index fcb121e3..2a580336 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/fade_preview.png and b/src/main/resources/assets/notenoughupdates/capes/fade_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/furf.png b/src/main/resources/assets/notenoughupdates/capes/furf.png index a083a662..74983e1f 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/furf.png and b/src/main/resources/assets/notenoughupdates/capes/furf.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/furf_preview.png b/src/main/resources/assets/notenoughupdates/capes/furf_preview.png index d65f8fbe..8f5dd5da 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/furf_preview.png and b/src/main/resources/assets/notenoughupdates/capes/furf_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/ironmoon.png b/src/main/resources/assets/notenoughupdates/capes/ironmoon.png index b25221d9..2e3ebda1 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/ironmoon.png and b/src/main/resources/assets/notenoughupdates/capes/ironmoon.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/ironmoon_preview.png b/src/main/resources/assets/notenoughupdates/capes/ironmoon_preview.png index c233128a..242bec0e 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/ironmoon_preview.png and b/src/main/resources/assets/notenoughupdates/capes/ironmoon_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/lava.png b/src/main/resources/assets/notenoughupdates/capes/lava.png index 8f60a03e..71451cf2 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/lava.png and b/src/main/resources/assets/notenoughupdates/capes/lava.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/mbstaff_preview.png b/src/main/resources/assets/notenoughupdates/capes/mbstaff_preview.png index 0d9ad9eb..147491ef 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/mbstaff_preview.png and b/src/main/resources/assets/notenoughupdates/capes/mbstaff_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/mcworld.png b/src/main/resources/assets/notenoughupdates/capes/mcworld.png index 89b3b367..562ab737 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/mcworld.png and b/src/main/resources/assets/notenoughupdates/capes/mcworld.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/packshq_preview.png b/src/main/resources/assets/notenoughupdates/capes/packshq_preview.png index d69ff6c0..45c36da3 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/packshq_preview.png and b/src/main/resources/assets/notenoughupdates/capes/packshq_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/screensaver.png b/src/main/resources/assets/notenoughupdates/capes/screensaver.png index c6ce9e8c..024f5504 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/screensaver.png and b/src/main/resources/assets/notenoughupdates/capes/screensaver.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/screensaver_preview.png b/src/main/resources/assets/notenoughupdates/capes/screensaver_preview.png index a7d890f8..35d0cdeb 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/screensaver_preview.png and b/src/main/resources/assets/notenoughupdates/capes/screensaver_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/secondpfirsisch.png b/src/main/resources/assets/notenoughupdates/capes/secondpfirsisch.png index 66314629..a801e8c0 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/secondpfirsisch.png and b/src/main/resources/assets/notenoughupdates/capes/secondpfirsisch.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/secondpfirsisch_preview.png b/src/main/resources/assets/notenoughupdates/capes/secondpfirsisch_preview.png index 2be61fee..c8fb5204 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/secondpfirsisch_preview.png and b/src/main/resources/assets/notenoughupdates/capes/secondpfirsisch_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/sharex_white.png b/src/main/resources/assets/notenoughupdates/capes/sharex_white.png index c7457897..c638e825 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/sharex_white.png and b/src/main/resources/assets/notenoughupdates/capes/sharex_white.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/sharex_white_preview.png b/src/main/resources/assets/notenoughupdates/capes/sharex_white_preview.png index 6ed14bd8..0855c8d7 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/sharex_white_preview.png and b/src/main/resources/assets/notenoughupdates/capes/sharex_white_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/skyclient.png b/src/main/resources/assets/notenoughupdates/capes/skyclient.png index 8fa36038..62543232 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/skyclient.png and b/src/main/resources/assets/notenoughupdates/capes/skyclient.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/skyclient_preview.png b/src/main/resources/assets/notenoughupdates/capes/skyclient_preview.png index 36140806..d8ad43f0 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/skyclient_preview.png and b/src/main/resources/assets/notenoughupdates/capes/skyclient_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/space.png b/src/main/resources/assets/notenoughupdates/capes/space.png index 76d4a42c..0fd5c0a5 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/space.png and b/src/main/resources/assets/notenoughupdates/capes/space.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/stormy_lh.png b/src/main/resources/assets/notenoughupdates/capes/stormy_lh.png index aba13112..201f31c5 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/stormy_lh.png and b/src/main/resources/assets/notenoughupdates/capes/stormy_lh.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/stormy_lh_preview.png b/src/main/resources/assets/notenoughupdates/capes/stormy_lh_preview.png index 6a9b43d0..e03a6379 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/stormy_lh_preview.png and b/src/main/resources/assets/notenoughupdates/capes/stormy_lh_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/subreddit_dark.png b/src/main/resources/assets/notenoughupdates/capes/subreddit_dark.png index 83ae4223..4daa66ca 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/subreddit_dark.png and b/src/main/resources/assets/notenoughupdates/capes/subreddit_dark.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/subreddit_light.png b/src/main/resources/assets/notenoughupdates/capes/subreddit_light.png index a2af3c1d..f32d1b02 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/subreddit_light.png and b/src/main/resources/assets/notenoughupdates/capes/subreddit_light.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/subreddit_light_preview.png b/src/main/resources/assets/notenoughupdates/capes/subreddit_light_preview.png index d06a5c33..c9e3d636 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/subreddit_light_preview.png and b/src/main/resources/assets/notenoughupdates/capes/subreddit_light_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/thebakery.png b/src/main/resources/assets/notenoughupdates/capes/thebakery.png index 8d4ca440..8784cf63 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/thebakery.png and b/src/main/resources/assets/notenoughupdates/capes/thebakery.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/thebakery_preview.png b/src/main/resources/assets/notenoughupdates/capes/thebakery_preview.png index 4d0a6b7e..eb3dbcd9 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/thebakery_preview.png and b/src/main/resources/assets/notenoughupdates/capes/thebakery_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/void.png b/src/main/resources/assets/notenoughupdates/capes/void.png index d9f27e95..2c481444 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/void.png and b/src/main/resources/assets/notenoughupdates/capes/void.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/void_preview.png b/src/main/resources/assets/notenoughupdates/capes/void_preview.png index 5bac3004..a2914145 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/void_preview.png and b/src/main/resources/assets/notenoughupdates/capes/void_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/colour_selector_dot.png b/src/main/resources/assets/notenoughupdates/colour_selector_dot.png index 1150c8bb..775c5290 100644 Binary files a/src/main/resources/assets/notenoughupdates/colour_selector_dot.png and b/src/main/resources/assets/notenoughupdates/colour_selector_dot.png differ diff --git a/src/main/resources/assets/notenoughupdates/core/colour_selector_dot.png b/src/main/resources/assets/notenoughupdates/core/colour_selector_dot.png index 1150c8bb..6dc8cc15 100644 Binary files a/src/main/resources/assets/notenoughupdates/core/colour_selector_dot.png and b/src/main/resources/assets/notenoughupdates/core/colour_selector_dot.png differ diff --git a/src/main/resources/assets/notenoughupdates/custom_enchant_gui.png b/src/main/resources/assets/notenoughupdates/custom_enchant_gui.png index 735a3fb4..fe53d96d 100644 Binary files a/src/main/resources/assets/notenoughupdates/custom_enchant_gui.png and b/src/main/resources/assets/notenoughupdates/custom_enchant_gui.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/10.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/10.png index 6cd64ed1..a1935c97 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/10.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/10.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/11.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/11.png index 65898e8f..f0471e28 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/11.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/11.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/2.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/2.png index 6f0daba0..6d80fa08 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/2.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/2.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/3.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/3.png index 4c123e77..4ed21c74 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/3.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/3.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/4.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/4.png index 833b9017..3384e52f 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/4.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/4.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/5.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/5.png index 93bef87d..cb74af61 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/5.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/5.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/8.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/8.png index 54db6fbc..9fb3d937 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/8.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/8.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/9.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/9.png index c5fedff9..40b88826 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/9.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/9.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/map_border_dragon_stone.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/map_border_dragon_stone.png index c79eee7f..cb604e86 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/map_border_dragon_stone.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/map_border_dragon_stone.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/10.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/10.png index 4f4b1dc7..ef623aec 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/10.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/10.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/11.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/11.png index 3730ab57..132ccd97 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/11.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/11.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/3.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/3.png index 68824d04..a22cf178 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/3.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/3.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/4.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/4.png index 3b8776e7..51c59181 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/4.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/4.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/5.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/5.png index 3a708494..a4625bf9 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/5.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/5.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/8.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/8.png index c131badf..982477f9 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/8.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/8.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/9.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/9.png index a42870f2..723056e9 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/9.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/9.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/10.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/10.png index b9bcac1d..359eacf6 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/10.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/10.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/11.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/11.png index 2fdbe252..da1e28eb 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/11.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/11.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/3.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/3.png index fe0ba4b9..92e441ea 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/3.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/3.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/4.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/4.png index bd580c8e..5a8cb034 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/4.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/4.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/5.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/5.png index 6f2bdc29..1dabecff 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/5.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/5.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/8.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/8.png index 5dd06a89..055e99fb 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/8.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/8.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/9.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/9.png index 1d275525..199da5c7 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/9.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/9.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/steampunk.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/steampunk.png index 3d1c0833..dbe35950 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/steampunk.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/steampunk.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_win/a.png b/src/main/resources/assets/notenoughupdates/dungeon_win/a.png index 85322946..cfb3630d 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_win/a.png and b/src/main/resources/assets/notenoughupdates/dungeon_win/a.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_win/s.png b/src/main/resources/assets/notenoughupdates/dungeon_win/s.png index a514f285..a1bf993c 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_win/s.png and b/src/main/resources/assets/notenoughupdates/dungeon_win/s.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_win/splus.png b/src/main/resources/assets/notenoughupdates/dungeon_win/splus.png index 732d30a3..69aa0c75 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_win/splus.png and b/src/main/resources/assets/notenoughupdates/dungeon_win/splus.png differ diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/style4/dynamic_54_slot_ctm.png b/src/main/resources/assets/notenoughupdates/dynamic_54/style4/dynamic_54_slot_ctm.png index fa43a0ed..aa3f32fe 100644 Binary files a/src/main/resources/assets/notenoughupdates/dynamic_54/style4/dynamic_54_slot_ctm.png and b/src/main/resources/assets/notenoughupdates/dynamic_54/style4/dynamic_54_slot_ctm.png differ diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/style5/dynamic_54_button_ctm.png b/src/main/resources/assets/notenoughupdates/dynamic_54/style5/dynamic_54_button_ctm.png index bab0eab7..ee5a3b54 100644 Binary files a/src/main/resources/assets/notenoughupdates/dynamic_54/style5/dynamic_54_button_ctm.png and b/src/main/resources/assets/notenoughupdates/dynamic_54/style5/dynamic_54_button_ctm.png differ diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/style5/dynamic_54_slot_ctm.png b/src/main/resources/assets/notenoughupdates/dynamic_54/style5/dynamic_54_slot_ctm.png index fa43a0ed..13c83e85 100644 Binary files a/src/main/resources/assets/notenoughupdates/dynamic_54/style5/dynamic_54_slot_ctm.png and b/src/main/resources/assets/notenoughupdates/dynamic_54/style5/dynamic_54_slot_ctm.png differ diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/style6/dynamic_54_button_ctm.png b/src/main/resources/assets/notenoughupdates/dynamic_54/style6/dynamic_54_button_ctm.png index fa43a0ed..4ba59d9a 100644 Binary files a/src/main/resources/assets/notenoughupdates/dynamic_54/style6/dynamic_54_button_ctm.png and b/src/main/resources/assets/notenoughupdates/dynamic_54/style6/dynamic_54_button_ctm.png differ diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/style6/dynamic_54_slot_ctm.png b/src/main/resources/assets/notenoughupdates/dynamic_54/style6/dynamic_54_slot_ctm.png index fa43a0ed..3c91e846 100644 Binary files a/src/main/resources/assets/notenoughupdates/dynamic_54/style6/dynamic_54_slot_ctm.png and b/src/main/resources/assets/notenoughupdates/dynamic_54/style6/dynamic_54_slot_ctm.png differ diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/style7/dynamic_54_button_ctm.png b/src/main/resources/assets/notenoughupdates/dynamic_54/style7/dynamic_54_button_ctm.png index ea57f0d0..b8749675 100644 Binary files a/src/main/resources/assets/notenoughupdates/dynamic_54/style7/dynamic_54_button_ctm.png and b/src/main/resources/assets/notenoughupdates/dynamic_54/style7/dynamic_54_button_ctm.png differ diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/style7/dynamic_54_slot_ctm.png b/src/main/resources/assets/notenoughupdates/dynamic_54/style7/dynamic_54_slot_ctm.png index fa43a0ed..ff73398b 100644 Binary files a/src/main/resources/assets/notenoughupdates/dynamic_54/style7/dynamic_54_slot_ctm.png and b/src/main/resources/assets/notenoughupdates/dynamic_54/style7/dynamic_54_slot_ctm.png differ diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/toggle_off.png b/src/main/resources/assets/notenoughupdates/dynamic_54/toggle_off.png index 7a1aa4a4..34fde767 100644 Binary files a/src/main/resources/assets/notenoughupdates/dynamic_54/toggle_off.png and b/src/main/resources/assets/notenoughupdates/dynamic_54/toggle_off.png differ diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/toggle_on.png b/src/main/resources/assets/notenoughupdates/dynamic_54/toggle_on.png index 5f4960f9..55f0cf25 100644 Binary files a/src/main/resources/assets/notenoughupdates/dynamic_54/toggle_on.png and b/src/main/resources/assets/notenoughupdates/dynamic_54/toggle_on.png differ diff --git a/src/main/resources/assets/notenoughupdates/fishing_warning_exclam.png b/src/main/resources/assets/notenoughupdates/fishing_warning_exclam.png index 914e86bf..0e2078dc 100644 Binary files a/src/main/resources/assets/notenoughupdates/fishing_warning_exclam.png and b/src/main/resources/assets/notenoughupdates/fishing_warning_exclam.png differ diff --git a/src/main/resources/assets/notenoughupdates/fuel_bar.png b/src/main/resources/assets/notenoughupdates/fuel_bar.png index f15ab522..1b2daa14 100644 Binary files a/src/main/resources/assets/notenoughupdates/fuel_bar.png and b/src/main/resources/assets/notenoughupdates/fuel_bar.png differ diff --git a/src/main/resources/assets/notenoughupdates/help.png b/src/main/resources/assets/notenoughupdates/help.png index 1a7ebb60..71501035 100644 Binary files a/src/main/resources/assets/notenoughupdates/help.png and b/src/main/resources/assets/notenoughupdates/help.png differ diff --git a/src/main/resources/assets/notenoughupdates/invbuttons/extraicons/settings.png b/src/main/resources/assets/notenoughupdates/invbuttons/extraicons/settings.png index 481a0588..dd65a6e4 100644 Binary files a/src/main/resources/assets/notenoughupdates/invbuttons/extraicons/settings.png and b/src/main/resources/assets/notenoughupdates/invbuttons/extraicons/settings.png differ diff --git a/src/main/resources/assets/notenoughupdates/logo.png b/src/main/resources/assets/notenoughupdates/logo.png index c08a8991..26d30ff6 100644 Binary files a/src/main/resources/assets/notenoughupdates/logo.png and b/src/main/resources/assets/notenoughupdates/logo.png differ diff --git a/src/main/resources/assets/notenoughupdates/on.png b/src/main/resources/assets/notenoughupdates/on.png index 5520a661..e3f0eee0 100644 Binary files a/src/main/resources/assets/notenoughupdates/on.png and b/src/main/resources/assets/notenoughupdates/on.png differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_0.jpg index 27531695..e777b0fc 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_1.jpg index 5586cf8a..2564894c 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_2.jpg index 78540079..7bf12754 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_3.jpg index 74bc8f23..a6c9c2fe 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_4.jpg index cdf3fdde..d15749a6 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_night/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_night/panorama_5.jpg index f9e5ed40..2f9aac53 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_night/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_night/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_0.jpg index f1f6a028..ed3339e5 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_1.jpg index 882e20a2..7452f9ef 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_2.jpg index 3ec9391f..aa988960 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_3.jpg index 0c99863b..df60e3ba 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_4.jpg index 92b62ab3..ddd78a06 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_5.jpg index 169c36be..45c635f9 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_night/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_night/panorama_0.jpg index cb60f6d3..74ce480c 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_night/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_night/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_night/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_night/panorama_3.jpg index 39a3b594..1aadb5ba 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_night/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_night/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_0.jpg index 32f9f7bb..3cc6ec86 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_1.jpg index ece00b29..7ed2a00e 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_3.jpg index ed4af05e..4715dacf 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_4.jpg index aca79dcf..53449ffe 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_5.jpg index 398e21c9..a76500fe 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dungeon/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dungeon/panorama_4.jpg index 75b6cd4e..8b21cd0c 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dungeon/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dungeon/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dungeon/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dungeon/panorama_5.jpg index c5e99eac..e1562211 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dungeon/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dungeon/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dungeon_hub/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dungeon_hub/panorama_4.jpg index 75b6cd4e..8b21cd0c 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dungeon_hub/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dungeon_hub/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dungeon_hub/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dungeon_hub/panorama_5.jpg index c5e99eac..e1562211 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dungeon_hub/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dungeon_hub/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_0.jpg index f6231245..55ad8851 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_1.jpg index 286b3a38..bb0edeaa 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_2.jpg index c6fca879..ed6e4f58 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_3.jpg index 01b2f816..ccea9cd2 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_4.jpg index a5c810fe..4c8e6249 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_5.jpg index 30d32a08..803f43f4 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_0.jpg index b1fb3e84..39080e08 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_1.jpg index f7642beb..3167ff3a 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_2.jpg index 3cb3b42f..dd39c253 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_3.jpg index a98d7672..656700da 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_4.jpg index ad2b8c70..4cfc6d34 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_5.jpg index f2e93cde..b47d9b7f 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_0.jpg index c03b849d..302b60b8 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_1.jpg index 2286407b..a35a3ff8 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_2.jpg index 62127f51..6121cbcf 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_3.jpg index fe631d89..139dcceb 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_4.jpg index cf835eea..e9de5bf8 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_5.jpg index 879b5747..29304f3c 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_0.jpg index 265515f6..fac794d6 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_1.jpg index e774ca7a..7b526d60 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_2.jpg index 1e3c8a98..d3cbe633 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_3.jpg index 7833eb89..259bd3d6 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_5.jpg index ae3bdbdf..e1f41379 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_0.jpg index e03657af..009684ce 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_2.jpg index c83f2c91..3fb00305 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_3.jpg index 9b730712..1ae90a23 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_5.jpg index a17337b9..f98a25e2 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_0.jpg index 26909780..e893b436 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_3.jpg index 0e870f38..33512fe1 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_5.jpg index f40c330c..ddc7820f 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_0.jpg index 9a12896f..6ff184ff 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_1.jpg index c157ccdd..f0133647 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_2.jpg index ecee024b..bdb4e055 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_3.jpg index 0dbef91f..42d45a9c 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_4.jpg index 681aa33e..2bc73a30 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_5.jpg index 6be866d2..160f84c6 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_0.jpg index 050e4f78..1631924e 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_3.jpg index 3af3638e..8647d5ee 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_5.jpg index d3c13992..4bac20d8 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_0.jpg index 0d5f26dd..e61f7c12 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_1.jpg index 820b92a4..3e97f3c0 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_2.jpg index 14d01dd1..141a4fcf 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_3.jpg index bfc66ec9..570da076 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_5.jpg index f3df82a5..cafeb1dd 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_0.jpg index 34bc84db..988c7cdb 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_1.jpg index 742d158b..0ef7e0a2 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_2.jpg index abf0a253..1d3f8d11 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_3.jpg index 7efc75d6..aebc2b4e 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_5.jpg index e86e93c4..3159658d 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_0.jpg index e0c4288d..7872a822 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_1.jpg index e0cc8139..40c1b8bf 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_2.jpg index 381912e1..2586dec8 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_3.jpg index 0beaf628..7d4a23a4 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_4.jpg index 26417482..befb2875 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_5.jpg index 8571b288..2e2d1700 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_0.jpg index e90efd5f..3045fbc5 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_1.jpg index 603f9d04..6e04d738 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_3.jpg index abd201d1..1d87c269 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_5.jpg index 93a5a26d..67b0c1a0 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_0.jpg index 9482df80..3c579656 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_1.jpg index 1b4235dd..5d38a803 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_2.jpg index 2f1fcc06..46465f71 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_3.jpg index ce20d9b5..39eb8c7e 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_4.jpg index 3dcdac57..67cd1ecf 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_5.jpg index 45f65c7c..fe839f66 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_dark.png b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_dark.png index 27abd2d5..d231bd86 100644 Binary files a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_dark.png and b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_dark.png differ diff --git a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_fsr.png b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_fsr.png index 39782b3f..d179fa42 100644 Binary files a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_fsr.png and b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_fsr.png differ diff --git a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_phqdark.png b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_phqdark.png index 83b78351..d33dac25 100644 Binary files a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_phqdark.png and b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_phqdark.png differ diff --git a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_transparent.png b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_transparent.png index f1bebc01..6e9f1928 100644 Binary files a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_transparent.png and b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_transparent.png differ diff --git a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo.png b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo.png index c047d5ad..9f4f712e 100644 Binary files a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo.png and b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo.png differ diff --git a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_dark.png b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_dark.png index 6ad6216c..c43b5fdb 100644 Binary files a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_dark.png and b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_dark.png differ diff --git a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_fsr.png b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_fsr.png index f39235af..795ba881 100644 Binary files a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_fsr.png and b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_fsr.png differ diff --git a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_phqdark.png b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_phqdark.png index 80566c92..41fa8bc1 100644 Binary files a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_phqdark.png and b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_phqdark.png differ diff --git a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_transparent.png b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_transparent.png index dfe92b74..2364318f 100644 Binary files a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_transparent.png and b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_transparent.png differ diff --git a/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui.png b/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui.png index 633be870..d84526ca 100644 Binary files a/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui.png and b/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui.png differ diff --git a/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_dark.png b/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_dark.png index 0f7743e6..d70fc7dc 100644 Binary files a/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_dark.png and b/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_dark.png differ diff --git a/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_fsr.png b/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_fsr.png index e98bdb7d..36921193 100644 Binary files a/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_fsr.png and b/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_fsr.png differ diff --git a/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_phqdark.png b/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_phqdark.png index f794319f..893d2716 100644 Binary files a/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_phqdark.png and b/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_phqdark.png differ diff --git a/src/main/resources/assets/notenoughupdates/pv_basic.png b/src/main/resources/assets/notenoughupdates/pv_basic.png index 4d5236f5..1c46a8e4 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_basic.png and b/src/main/resources/assets/notenoughupdates/pv_basic.png differ diff --git a/src/main/resources/assets/notenoughupdates/pv_bestiary_tab.png b/src/main/resources/assets/notenoughupdates/pv_bestiary_tab.png index 620c156b..eed9a72b 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_bestiary_tab.png and b/src/main/resources/assets/notenoughupdates/pv_bestiary_tab.png differ diff --git a/src/main/resources/assets/notenoughupdates/pv_bingo_tab.png b/src/main/resources/assets/notenoughupdates/pv_bingo_tab.png index 135035cf..56046537 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_bingo_tab.png and b/src/main/resources/assets/notenoughupdates/pv_bingo_tab.png differ diff --git a/src/main/resources/assets/notenoughupdates/pv_elements.png b/src/main/resources/assets/notenoughupdates/pv_elements.png index 7e9033bd..2a6cd1c2 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_elements.png and b/src/main/resources/assets/notenoughupdates/pv_elements.png differ diff --git a/src/main/resources/assets/notenoughupdates/pv_invs.png b/src/main/resources/assets/notenoughupdates/pv_invs.png index 46c7b0e9..c25ce499 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_invs.png and b/src/main/resources/assets/notenoughupdates/pv_invs.png differ diff --git a/src/main/resources/assets/notenoughupdates/pv_mining.png b/src/main/resources/assets/notenoughupdates/pv_mining.png index a183fe88..226c7e40 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_mining.png and b/src/main/resources/assets/notenoughupdates/pv_mining.png differ diff --git a/src/main/resources/assets/notenoughupdates/pv_trophy_fish_tab.png b/src/main/resources/assets/notenoughupdates/pv_trophy_fish_tab.png index d42446c1..47ac6928 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_trophy_fish_tab.png and b/src/main/resources/assets/notenoughupdates/pv_trophy_fish_tab.png differ diff --git a/src/main/resources/assets/notenoughupdates/pv_unknown.png b/src/main/resources/assets/notenoughupdates/pv_unknown.png index d6ce3a00..0c282ac7 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_unknown.png and b/src/main/resources/assets/notenoughupdates/pv_unknown.png differ diff --git a/src/main/resources/assets/notenoughupdates/settings.png b/src/main/resources/assets/notenoughupdates/settings.png index 481a0588..c81d4c18 100644 Binary files a/src/main/resources/assets/notenoughupdates/settings.png and b/src/main/resources/assets/notenoughupdates/settings.png differ diff --git a/src/main/resources/assets/notenoughupdates/slotlocking/bound.png b/src/main/resources/assets/notenoughupdates/slotlocking/bound.png index 1631d386..8ff435b3 100644 Binary files a/src/main/resources/assets/notenoughupdates/slotlocking/bound.png and b/src/main/resources/assets/notenoughupdates/slotlocking/bound.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_0.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_0.png index da1461be..12f613ff 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_0.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_0.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_1.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_1.png index 3ff29ff1..5c0e8175 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_1.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_1.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_2.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_2.png index 16150a20..8ceeb6c3 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_2.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_2.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_3.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_3.png index 755dc865..74d9820d 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_3.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_3.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_pane_ctm.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_pane_ctm.png index 429e7a28..56a1c8ef 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_pane_ctm.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_pane_ctm.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_icons.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_icons.png index be569369..9dec164f 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_icons.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_icons.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_0.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_0.png index faa30c96..dcce08b4 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_0.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_0.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_1.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_1.png index 00ed9488..bb23232d 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_1.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_1.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_2.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_2.png index 89fe7b15..ddaf339c 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_2.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_2.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_3.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_3.png index 7ead5a79..2d23ee4a 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_3.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_3.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/0.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/0.jpg index 48d7a47f..ef225dba 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/0.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/1.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/1.jpg index ace0d1a0..363bc4ab 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/1.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/10.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/10.jpg index afed0c9b..82f66718 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/10.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/10.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/11.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/11.jpg index 0b03bbfb..9baa4531 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/11.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/11.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/12.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/12.jpg index b7142650..fea92c09 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/12.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/12.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/13.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/13.jpg index 8e62f742..4a220319 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/13.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/13.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/14.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/14.jpg index 6f296154..b50fb7cf 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/14.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/14.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/15.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/15.jpg index 682aae45..15fa28f9 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/15.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/15.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/16.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/16.jpg index ea4efa72..b6bd773a 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/16.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/16.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/17.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/17.jpg index 9be04bea..7046b122 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/17.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/17.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/18.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/18.jpg index d2f1e372..1429548a 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/18.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/18.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/2.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/2.jpg index 11598aec..5050048b 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/2.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/3.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/3.jpg index 6c8a53e7..468278b8 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/3.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/4.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/4.jpg index c78a311f..7d29bf3d 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/4.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/5.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/5.jpg index 48080f68..4277a767 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/5.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/6.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/6.jpg index 382082e2..bbe597d7 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/6.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/6.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/7.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/7.jpg index 7f3576fe..8f311a6d 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/7.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/7.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/8.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/8.jpg index de065e28..d7c97663 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/8.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/8.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/9.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/9.jpg index 29fdfc1b..39da193a 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/9.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/9.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/supersecretassets/bald.png b/src/main/resources/assets/notenoughupdates/supersecretassets/bald.png index 4f730a44..7b407117 100644 Binary files a/src/main/resources/assets/notenoughupdates/supersecretassets/bald.png and b/src/main/resources/assets/notenoughupdates/supersecretassets/bald.png differ diff --git a/src/main/resources/assets/notenoughupdates/supersecretassets/lunar.png b/src/main/resources/assets/notenoughupdates/supersecretassets/lunar.png index 7de98284..469d96b8 100644 Binary files a/src/main/resources/assets/notenoughupdates/supersecretassets/lunar.png and b/src/main/resources/assets/notenoughupdates/supersecretassets/lunar.png differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe_tall.png b/src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe_tall.png index cdd8b0f1..d89260db 100644 Binary files a/src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe_tall.png and b/src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe_tall.png differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/item_shop_recipe.png b/src/main/resources/assets/notenoughupdates/textures/gui/item_shop_recipe.png index e78c0f44..9226529a 100644 Binary files a/src/main/resources/assets/notenoughupdates/textures/gui/item_shop_recipe.png and b/src/main/resources/assets/notenoughupdates/textures/gui/item_shop_recipe.png differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/navigation.png b/src/main/resources/assets/notenoughupdates/textures/gui/navigation.png index 628f3a47..fc85046f 100644 Binary files a/src/main/resources/assets/notenoughupdates/textures/gui/navigation.png and b/src/main/resources/assets/notenoughupdates/textures/gui/navigation.png differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe_tall.png b/src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe_tall.png index 8cb89bae..f22f28ee 100644 Binary files a/src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe_tall.png and b/src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe_tall.png differ -- cgit From df9f5b86598e5d358463bcc770471a274027626d Mon Sep 17 00:00:00 2001 From: jani270 <69345714+jani270@users.noreply.github.com> Date: Tue, 4 Oct 2022 13:59:56 +0200 Subject: Revert "[ImgBot] Optimize images" (#334) --- .../notenoughupdates/accessory_bag_overlay.png | Bin 587 -> 973 bytes .../notenoughupdates/armordisplay/armordisplay.png | Bin 381 -> 1599 bytes .../armordisplay/armordisplay_transparent_pet.png | Bin 1171 -> 1500 bytes .../auc_search/ah_search_overlay.png | Bin 3168 -> 3513 bytes .../auc_search/ah_search_overlay_tab_completed.png | Bin 6547 -> 6969 bytes .../assets/notenoughupdates/auction_profit.png | Bin 551 -> 595 bytes .../assets/notenoughupdates/button_white.png | Bin 4882 -> 6570 bytes .../assets/notenoughupdates/capes/dg_preview.png | Bin 7788 -> 18852 bytes .../assets/notenoughupdates/capes/fade.png | Bin 10289 -> 18572 bytes .../assets/notenoughupdates/capes/fade_preview.png | Bin 10309 -> 10411 bytes .../assets/notenoughupdates/capes/furf.png | Bin 5776 -> 8509 bytes .../assets/notenoughupdates/capes/furf_preview.png | Bin 3286 -> 3506 bytes .../assets/notenoughupdates/capes/ironmoon.png | Bin 133758 -> 142131 bytes .../notenoughupdates/capes/ironmoon_preview.png | Bin 88214 -> 92492 bytes .../assets/notenoughupdates/capes/lava.png | Bin 167381 -> 169280 bytes .../notenoughupdates/capes/mbstaff_preview.png | Bin 38573 -> 39260 bytes .../assets/notenoughupdates/capes/mcworld.png | Bin 280386 -> 291014 bytes .../notenoughupdates/capes/packshq_preview.png | Bin 14346 -> 14680 bytes .../assets/notenoughupdates/capes/screensaver.png | Bin 31139 -> 31381 bytes .../notenoughupdates/capes/screensaver_preview.png | Bin 17150 -> 19453 bytes .../notenoughupdates/capes/secondpfirsisch.png | Bin 52827 -> 58167 bytes .../capes/secondpfirsisch_preview.png | Bin 36232 -> 38433 bytes .../assets/notenoughupdates/capes/sharex_white.png | Bin 15517 -> 27251 bytes .../capes/sharex_white_preview.png | Bin 15204 -> 21698 bytes .../assets/notenoughupdates/capes/skyclient.png | Bin 13024 -> 27981 bytes .../notenoughupdates/capes/skyclient_preview.png | Bin 5987 -> 10294 bytes .../assets/notenoughupdates/capes/space.png | Bin 856184 -> 922429 bytes .../assets/notenoughupdates/capes/stormy_lh.png | Bin 24286 -> 56764 bytes .../notenoughupdates/capes/stormy_lh_preview.png | Bin 11290 -> 12899 bytes .../notenoughupdates/capes/subreddit_dark.png | Bin 5275 -> 7297 bytes .../notenoughupdates/capes/subreddit_light.png | Bin 5353 -> 7508 bytes .../capes/subreddit_light_preview.png | Bin 2406 -> 2583 bytes .../assets/notenoughupdates/capes/thebakery.png | Bin 431168 -> 537705 bytes .../notenoughupdates/capes/thebakery_preview.png | Bin 50272 -> 71386 bytes .../assets/notenoughupdates/capes/void.png | Bin 20910 -> 41607 bytes .../assets/notenoughupdates/capes/void_preview.png | Bin 3235 -> 4712 bytes .../notenoughupdates/colour_selector_dot.png | Bin 2596 -> 3677 bytes .../notenoughupdates/core/colour_selector_dot.png | Bin 2596 -> 3677 bytes .../assets/notenoughupdates/custom_enchant_gui.png | Bin 3227 -> 4982 bytes .../dungeon_map/borders/large/10.png | Bin 6065 -> 7050 bytes .../dungeon_map/borders/large/11.png | Bin 12073 -> 16913 bytes .../dungeon_map/borders/large/2.png | Bin 943 -> 1006 bytes .../dungeon_map/borders/large/3.png | Bin 6232 -> 6971 bytes .../dungeon_map/borders/large/4.png | Bin 7775 -> 10886 bytes .../dungeon_map/borders/large/5.png | Bin 8195 -> 13433 bytes .../dungeon_map/borders/large/8.png | Bin 6080 -> 6904 bytes .../dungeon_map/borders/large/9.png | Bin 5405 -> 6779 bytes .../borders/map_border_dragon_stone.png | Bin 2351 -> 4952 bytes .../dungeon_map/borders/medium/10.png | Bin 6222 -> 6703 bytes .../dungeon_map/borders/medium/11.png | Bin 11183 -> 15370 bytes .../dungeon_map/borders/medium/3.png | Bin 6013 -> 6522 bytes .../dungeon_map/borders/medium/4.png | Bin 5987 -> 7093 bytes .../dungeon_map/borders/medium/5.png | Bin 5824 -> 7618 bytes .../dungeon_map/borders/medium/8.png | Bin 5779 -> 6277 bytes .../dungeon_map/borders/medium/9.png | Bin 5654 -> 6362 bytes .../dungeon_map/borders/small/10.png | Bin 6455 -> 7045 bytes .../dungeon_map/borders/small/11.png | Bin 9691 -> 12576 bytes .../dungeon_map/borders/small/3.png | Bin 6386 -> 6697 bytes .../dungeon_map/borders/small/4.png | Bin 5307 -> 5947 bytes .../dungeon_map/borders/small/5.png | Bin 7041 -> 8456 bytes .../dungeon_map/borders/small/8.png | Bin 6365 -> 6789 bytes .../dungeon_map/borders/small/9.png | Bin 5734 -> 5897 bytes .../dungeon_map/borders/steampunk.png | Bin 8341 -> 10039 bytes .../assets/notenoughupdates/dungeon_win/a.png | Bin 517 -> 569 bytes .../assets/notenoughupdates/dungeon_win/s.png | Bin 502 -> 579 bytes .../assets/notenoughupdates/dungeon_win/splus.png | Bin 1482 -> 2296 bytes .../dynamic_54/style4/dynamic_54_slot_ctm.png | Bin 537 -> 539 bytes .../dynamic_54/style5/dynamic_54_button_ctm.png | Bin 533 -> 543 bytes .../dynamic_54/style5/dynamic_54_slot_ctm.png | Bin 537 -> 539 bytes .../dynamic_54/style6/dynamic_54_button_ctm.png | Bin 537 -> 539 bytes .../dynamic_54/style6/dynamic_54_slot_ctm.png | Bin 537 -> 539 bytes .../dynamic_54/style7/dynamic_54_button_ctm.png | Bin 864 -> 3437 bytes .../dynamic_54/style7/dynamic_54_slot_ctm.png | Bin 537 -> 539 bytes .../notenoughupdates/dynamic_54/toggle_off.png | Bin 379 -> 389 bytes .../notenoughupdates/dynamic_54/toggle_on.png | Bin 379 -> 406 bytes .../notenoughupdates/fishing_warning_exclam.png | Bin 5749 -> 5807 bytes .../resources/assets/notenoughupdates/fuel_bar.png | Bin 2271 -> 2333 bytes .../resources/assets/notenoughupdates/help.png | Bin 3018 -> 3500 bytes .../invbuttons/extraicons/settings.png | Bin 2546 -> 3962 bytes .../resources/assets/notenoughupdates/logo.png | Bin 18710 -> 21782 bytes src/main/resources/assets/notenoughupdates/on.png | Bin 446 -> 1311 bytes .../panoramas/combat_1_day/panorama_0.jpg | Bin 20975 -> 21394 bytes .../panoramas/combat_1_day/panorama_1.jpg | Bin 20008 -> 20539 bytes .../panoramas/combat_1_day/panorama_2.jpg | Bin 18018 -> 18095 bytes .../panoramas/combat_1_day/panorama_3.jpg | Bin 20646 -> 21069 bytes .../panoramas/combat_1_day/panorama_4.jpg | Bin 16944 -> 17245 bytes .../panoramas/combat_1_night/panorama_5.jpg | Bin 15892 -> 16017 bytes .../panoramas/combat_3_day/panorama_0.jpg | Bin 32699 -> 34048 bytes .../panoramas/combat_3_day/panorama_1.jpg | Bin 27566 -> 28471 bytes .../panoramas/combat_3_day/panorama_2.jpg | Bin 21806 -> 22159 bytes .../panoramas/combat_3_day/panorama_3.jpg | Bin 26543 -> 27487 bytes .../panoramas/combat_3_day/panorama_4.jpg | Bin 19205 -> 19750 bytes .../panoramas/combat_3_day/panorama_5.jpg | Bin 21050 -> 21597 bytes .../panoramas/combat_3_night/panorama_0.jpg | Bin 18025 -> 18255 bytes .../panoramas/combat_3_night/panorama_3.jpg | Bin 18259 -> 18438 bytes .../panoramas/dark_auction/panorama_0.jpg | Bin 18990 -> 19008 bytes .../panoramas/dark_auction/panorama_1.jpg | Bin 19399 -> 19414 bytes .../panoramas/dark_auction/panorama_3.jpg | Bin 19482 -> 19497 bytes .../panoramas/dark_auction/panorama_4.jpg | Bin 18500 -> 18727 bytes .../panoramas/dark_auction/panorama_5.jpg | Bin 18621 -> 18871 bytes .../panoramas/dungeon/panorama_4.jpg | Bin 18727 -> 18780 bytes .../panoramas/dungeon/panorama_5.jpg | Bin 17991 -> 18041 bytes .../panoramas/dungeon_hub/panorama_4.jpg | Bin 18727 -> 18780 bytes .../panoramas/dungeon_hub/panorama_5.jpg | Bin 17991 -> 18041 bytes .../panoramas/dynamic_day/panorama_0.jpg | Bin 33582 -> 35131 bytes .../panoramas/dynamic_day/panorama_1.jpg | Bin 31126 -> 32356 bytes .../panoramas/dynamic_day/panorama_2.jpg | Bin 32793 -> 34147 bytes .../panoramas/dynamic_day/panorama_3.jpg | Bin 40205 -> 42291 bytes .../panoramas/dynamic_day/panorama_4.jpg | Bin 24929 -> 25831 bytes .../panoramas/dynamic_day/panorama_5.jpg | Bin 20373 -> 20933 bytes .../panoramas/dynamic_night/panorama_0.jpg | Bin 27052 -> 28070 bytes .../panoramas/dynamic_night/panorama_1.jpg | Bin 29354 -> 30401 bytes .../panoramas/dynamic_night/panorama_2.jpg | Bin 28849 -> 29899 bytes .../panoramas/dynamic_night/panorama_3.jpg | Bin 29568 -> 30543 bytes .../panoramas/dynamic_night/panorama_4.jpg | Bin 26255 -> 27401 bytes .../panoramas/dynamic_night/panorama_5.jpg | Bin 21223 -> 21828 bytes .../panoramas/farming_1_day/panorama_0.jpg | Bin 32829 -> 34294 bytes .../panoramas/farming_1_day/panorama_1.jpg | Bin 45004 -> 47518 bytes .../panoramas/farming_1_day/panorama_2.jpg | Bin 44117 -> 46569 bytes .../panoramas/farming_1_day/panorama_3.jpg | Bin 35025 -> 36648 bytes .../panoramas/farming_1_day/panorama_4.jpg | Bin 15667 -> 15788 bytes .../panoramas/farming_1_day/panorama_5.jpg | Bin 45072 -> 47536 bytes .../panoramas/farming_1_night/panorama_0.jpg | Bin 19870 -> 20273 bytes .../panoramas/farming_1_night/panorama_1.jpg | Bin 23078 -> 23666 bytes .../panoramas/farming_1_night/panorama_2.jpg | Bin 25794 -> 26548 bytes .../panoramas/farming_1_night/panorama_3.jpg | Bin 21899 -> 22310 bytes .../panoramas/farming_1_night/panorama_5.jpg | Bin 28777 -> 29882 bytes .../panoramas/farming_2_day/panorama_0.jpg | Bin 29641 -> 30779 bytes .../panoramas/farming_2_day/panorama_2.jpg | Bin 29040 -> 30070 bytes .../panoramas/farming_2_day/panorama_3.jpg | Bin 29641 -> 30822 bytes .../panoramas/farming_2_day/panorama_5.jpg | Bin 23466 -> 24780 bytes .../panoramas/farming_2_night/panorama_0.jpg | Bin 19360 -> 19525 bytes .../panoramas/farming_2_night/panorama_3.jpg | Bin 17432 -> 17533 bytes .../panoramas/farming_2_night/panorama_5.jpg | Bin 17040 -> 17504 bytes .../panoramas/foraging_1_day/panorama_0.jpg | Bin 40489 -> 42789 bytes .../panoramas/foraging_1_day/panorama_1.jpg | Bin 31789 -> 32963 bytes .../panoramas/foraging_1_day/panorama_2.jpg | Bin 34619 -> 36208 bytes .../panoramas/foraging_1_day/panorama_3.jpg | Bin 33244 -> 34657 bytes .../panoramas/foraging_1_day/panorama_4.jpg | Bin 24265 -> 25234 bytes .../panoramas/foraging_1_day/panorama_5.jpg | Bin 27950 -> 29243 bytes .../panoramas/foraging_1_night/panorama_0.jpg | Bin 16927 -> 16958 bytes .../panoramas/foraging_1_night/panorama_3.jpg | Bin 17518 -> 17531 bytes .../panoramas/foraging_1_night/panorama_5.jpg | Bin 16836 -> 17297 bytes .../panoramas/hub_day/panorama_0.jpg | Bin 20153 -> 20453 bytes .../panoramas/hub_day/panorama_1.jpg | Bin 20168 -> 20509 bytes .../panoramas/hub_day/panorama_2.jpg | Bin 23266 -> 23845 bytes .../panoramas/hub_day/panorama_3.jpg | Bin 23872 -> 24436 bytes .../panoramas/hub_day/panorama_5.jpg | Bin 16208 -> 16562 bytes .../panoramas/hub_night/panorama_0.jpg | Bin 16995 -> 17155 bytes .../panoramas/hub_night/panorama_1.jpg | Bin 17361 -> 17538 bytes .../panoramas/hub_night/panorama_2.jpg | Bin 15857 -> 15950 bytes .../panoramas/hub_night/panorama_3.jpg | Bin 17829 -> 17928 bytes .../panoramas/hub_night/panorama_5.jpg | Bin 15695 -> 15786 bytes .../panoramas/mining_1_day/panorama_0.jpg | Bin 36322 -> 37877 bytes .../panoramas/mining_1_day/panorama_1.jpg | Bin 32721 -> 33985 bytes .../panoramas/mining_1_day/panorama_2.jpg | Bin 28886 -> 29885 bytes .../panoramas/mining_1_day/panorama_3.jpg | Bin 28366 -> 29426 bytes .../panoramas/mining_1_day/panorama_4.jpg | Bin 16993 -> 17061 bytes .../panoramas/mining_1_day/panorama_5.jpg | Bin 23602 -> 24623 bytes .../panoramas/mining_1_night/panorama_0.jpg | Bin 25182 -> 25721 bytes .../panoramas/mining_1_night/panorama_1.jpg | Bin 22307 -> 22713 bytes .../panoramas/mining_1_night/panorama_3.jpg | Bin 18911 -> 19113 bytes .../panoramas/mining_1_night/panorama_5.jpg | Bin 17041 -> 17142 bytes .../panoramas/unknown/panorama_0.jpg | Bin 25187 -> 26015 bytes .../panoramas/unknown/panorama_1.jpg | Bin 25186 -> 26016 bytes .../panoramas/unknown/panorama_2.jpg | Bin 24064 -> 24769 bytes .../panoramas/unknown/panorama_3.jpg | Bin 24124 -> 24854 bytes .../panoramas/unknown/panorama_4.jpg | Bin 25315 -> 26123 bytes .../panoramas/unknown/panorama_5.jpg | Bin 24144 -> 24894 bytes .../petdisplay/petdisplayarmor_dark.png | Bin 1269 -> 1738 bytes .../petdisplay/petdisplayarmor_fsr.png | Bin 1305 -> 1734 bytes .../petdisplay/petdisplayarmor_phqdark.png | Bin 1272 -> 1728 bytes .../petdisplay/petdisplayarmor_transparent.png | Bin 1314 -> 1890 bytes .../notenoughupdates/petdisplay/petdisplaysolo.png | Bin 1284 -> 1743 bytes .../petdisplay/petdisplaysolo_dark.png | Bin 1190 -> 1545 bytes .../petdisplay/petdisplaysolo_fsr.png | Bin 1231 -> 1548 bytes .../petdisplay/petdisplaysolo_phqdark.png | Bin 1191 -> 1537 bytes .../petdisplay/petdisplaysolo_transparent.png | Bin 1257 -> 1720 bytes .../price_graph_gui/price_information_gui.png | Bin 1547 -> 2079 bytes .../price_graph_gui/price_information_gui_dark.png | Bin 1553 -> 2088 bytes .../price_graph_gui/price_information_gui_fsr.png | Bin 1520 -> 2045 bytes .../price_information_gui_phqdark.png | Bin 1556 -> 2091 bytes .../resources/assets/notenoughupdates/pv_basic.png | Bin 1860 -> 2836 bytes .../assets/notenoughupdates/pv_bestiary_tab.png | Bin 400 -> 628 bytes .../assets/notenoughupdates/pv_bingo_tab.png | Bin 1914 -> 2635 bytes .../assets/notenoughupdates/pv_elements.png | Bin 2219 -> 3030 bytes .../resources/assets/notenoughupdates/pv_invs.png | Bin 1219 -> 2426 bytes .../assets/notenoughupdates/pv_mining.png | Bin 3137 -> 4516 bytes .../assets/notenoughupdates/pv_trophy_fish_tab.png | Bin 1888 -> 2839 bytes .../assets/notenoughupdates/pv_unknown.png | Bin 1341 -> 1814 bytes .../resources/assets/notenoughupdates/settings.png | Bin 2546 -> 3962 bytes .../assets/notenoughupdates/slotlocking/bound.png | Bin 5512 -> 5619 bytes .../notenoughupdates/storage_gui/storage_gui_0.png | Bin 4334 -> 6939 bytes .../notenoughupdates/storage_gui/storage_gui_1.png | Bin 4026 -> 4859 bytes .../notenoughupdates/storage_gui/storage_gui_2.png | Bin 3669 -> 4380 bytes .../notenoughupdates/storage_gui/storage_gui_3.png | Bin 3419 -> 4469 bytes .../storage_gui/storage_gui_pane_ctm.png | Bin 1460 -> 1523 bytes .../notenoughupdates/storage_gui/storage_icons.png | Bin 3726 -> 5046 bytes .../storage_gui/storage_preview_0.png | Bin 5541 -> 6939 bytes .../storage_gui/storage_preview_1.png | Bin 6383 -> 7369 bytes .../storage_gui/storage_preview_2.png | Bin 5652 -> 7020 bytes .../storage_gui/storage_preview_3.png | Bin 3912 -> 4373 bytes .../storage_gui/we_do_a_little_rolling/0.jpg | Bin 3455 -> 3696 bytes .../storage_gui/we_do_a_little_rolling/1.jpg | Bin 3400 -> 3642 bytes .../storage_gui/we_do_a_little_rolling/10.jpg | Bin 3444 -> 3687 bytes .../storage_gui/we_do_a_little_rolling/11.jpg | Bin 3597 -> 3827 bytes .../storage_gui/we_do_a_little_rolling/12.jpg | Bin 3518 -> 3762 bytes .../storage_gui/we_do_a_little_rolling/13.jpg | Bin 3447 -> 3701 bytes .../storage_gui/we_do_a_little_rolling/14.jpg | Bin 3370 -> 3604 bytes .../storage_gui/we_do_a_little_rolling/15.jpg | Bin 3324 -> 3574 bytes .../storage_gui/we_do_a_little_rolling/16.jpg | Bin 3488 -> 3717 bytes .../storage_gui/we_do_a_little_rolling/17.jpg | Bin 3573 -> 3798 bytes .../storage_gui/we_do_a_little_rolling/18.jpg | Bin 3787 -> 4003 bytes .../storage_gui/we_do_a_little_rolling/2.jpg | Bin 3473 -> 3719 bytes .../storage_gui/we_do_a_little_rolling/3.jpg | Bin 3494 -> 3730 bytes .../storage_gui/we_do_a_little_rolling/4.jpg | Bin 3525 -> 3762 bytes .../storage_gui/we_do_a_little_rolling/5.jpg | Bin 3472 -> 3706 bytes .../storage_gui/we_do_a_little_rolling/6.jpg | Bin 3315 -> 3560 bytes .../storage_gui/we_do_a_little_rolling/7.jpg | Bin 3289 -> 3547 bytes .../storage_gui/we_do_a_little_rolling/8.jpg | Bin 3320 -> 3579 bytes .../storage_gui/we_do_a_little_rolling/9.jpg | Bin 3351 -> 3609 bytes .../notenoughupdates/supersecretassets/bald.png | Bin 17189 -> 19909 bytes .../notenoughupdates/supersecretassets/lunar.png | Bin 33956 -> 54979 bytes .../textures/gui/forge_recipe_tall.png | Bin 2548 -> 2743 bytes .../textures/gui/item_shop_recipe.png | Bin 2829 -> 3177 bytes .../notenoughupdates/textures/gui/navigation.png | Bin 883 -> 984 bytes .../textures/gui/villager_recipe_tall.png | Bin 2503 -> 2709 bytes 227 files changed, 0 insertions(+), 0 deletions(-) (limited to 'src/main/resources') diff --git a/src/main/resources/assets/notenoughupdates/accessory_bag_overlay.png b/src/main/resources/assets/notenoughupdates/accessory_bag_overlay.png index 9de21da0..6fcac4d1 100644 Binary files a/src/main/resources/assets/notenoughupdates/accessory_bag_overlay.png and b/src/main/resources/assets/notenoughupdates/accessory_bag_overlay.png differ diff --git a/src/main/resources/assets/notenoughupdates/armordisplay/armordisplay.png b/src/main/resources/assets/notenoughupdates/armordisplay/armordisplay.png index 56bf0e1d..56f6060a 100644 Binary files a/src/main/resources/assets/notenoughupdates/armordisplay/armordisplay.png and b/src/main/resources/assets/notenoughupdates/armordisplay/armordisplay.png differ diff --git a/src/main/resources/assets/notenoughupdates/armordisplay/armordisplay_transparent_pet.png b/src/main/resources/assets/notenoughupdates/armordisplay/armordisplay_transparent_pet.png index 0467011e..aeb1b5ed 100644 Binary files a/src/main/resources/assets/notenoughupdates/armordisplay/armordisplay_transparent_pet.png and b/src/main/resources/assets/notenoughupdates/armordisplay/armordisplay_transparent_pet.png differ diff --git a/src/main/resources/assets/notenoughupdates/auc_search/ah_search_overlay.png b/src/main/resources/assets/notenoughupdates/auc_search/ah_search_overlay.png index 7e15ccd5..3e21edda 100644 Binary files a/src/main/resources/assets/notenoughupdates/auc_search/ah_search_overlay.png and b/src/main/resources/assets/notenoughupdates/auc_search/ah_search_overlay.png differ diff --git a/src/main/resources/assets/notenoughupdates/auc_search/ah_search_overlay_tab_completed.png b/src/main/resources/assets/notenoughupdates/auc_search/ah_search_overlay_tab_completed.png index e6d5ccf0..b5cf62c0 100644 Binary files a/src/main/resources/assets/notenoughupdates/auc_search/ah_search_overlay_tab_completed.png and b/src/main/resources/assets/notenoughupdates/auc_search/ah_search_overlay_tab_completed.png differ diff --git a/src/main/resources/assets/notenoughupdates/auction_profit.png b/src/main/resources/assets/notenoughupdates/auction_profit.png index 26a2bbc6..80e06c10 100644 Binary files a/src/main/resources/assets/notenoughupdates/auction_profit.png and b/src/main/resources/assets/notenoughupdates/auction_profit.png differ diff --git a/src/main/resources/assets/notenoughupdates/button_white.png b/src/main/resources/assets/notenoughupdates/button_white.png index d6460e89..7763716d 100644 Binary files a/src/main/resources/assets/notenoughupdates/button_white.png and b/src/main/resources/assets/notenoughupdates/button_white.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/dg_preview.png b/src/main/resources/assets/notenoughupdates/capes/dg_preview.png index bf9bad22..2e68d99d 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/dg_preview.png and b/src/main/resources/assets/notenoughupdates/capes/dg_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/fade.png b/src/main/resources/assets/notenoughupdates/capes/fade.png index 7ee247a6..d898ec4d 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/fade.png and b/src/main/resources/assets/notenoughupdates/capes/fade.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/fade_preview.png b/src/main/resources/assets/notenoughupdates/capes/fade_preview.png index 2a580336..fcb121e3 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/fade_preview.png and b/src/main/resources/assets/notenoughupdates/capes/fade_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/furf.png b/src/main/resources/assets/notenoughupdates/capes/furf.png index 74983e1f..a083a662 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/furf.png and b/src/main/resources/assets/notenoughupdates/capes/furf.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/furf_preview.png b/src/main/resources/assets/notenoughupdates/capes/furf_preview.png index 8f5dd5da..d65f8fbe 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/furf_preview.png and b/src/main/resources/assets/notenoughupdates/capes/furf_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/ironmoon.png b/src/main/resources/assets/notenoughupdates/capes/ironmoon.png index 2e3ebda1..b25221d9 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/ironmoon.png and b/src/main/resources/assets/notenoughupdates/capes/ironmoon.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/ironmoon_preview.png b/src/main/resources/assets/notenoughupdates/capes/ironmoon_preview.png index 242bec0e..c233128a 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/ironmoon_preview.png and b/src/main/resources/assets/notenoughupdates/capes/ironmoon_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/lava.png b/src/main/resources/assets/notenoughupdates/capes/lava.png index 71451cf2..8f60a03e 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/lava.png and b/src/main/resources/assets/notenoughupdates/capes/lava.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/mbstaff_preview.png b/src/main/resources/assets/notenoughupdates/capes/mbstaff_preview.png index 147491ef..0d9ad9eb 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/mbstaff_preview.png and b/src/main/resources/assets/notenoughupdates/capes/mbstaff_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/mcworld.png b/src/main/resources/assets/notenoughupdates/capes/mcworld.png index 562ab737..89b3b367 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/mcworld.png and b/src/main/resources/assets/notenoughupdates/capes/mcworld.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/packshq_preview.png b/src/main/resources/assets/notenoughupdates/capes/packshq_preview.png index 45c36da3..d69ff6c0 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/packshq_preview.png and b/src/main/resources/assets/notenoughupdates/capes/packshq_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/screensaver.png b/src/main/resources/assets/notenoughupdates/capes/screensaver.png index 024f5504..c6ce9e8c 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/screensaver.png and b/src/main/resources/assets/notenoughupdates/capes/screensaver.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/screensaver_preview.png b/src/main/resources/assets/notenoughupdates/capes/screensaver_preview.png index 35d0cdeb..a7d890f8 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/screensaver_preview.png and b/src/main/resources/assets/notenoughupdates/capes/screensaver_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/secondpfirsisch.png b/src/main/resources/assets/notenoughupdates/capes/secondpfirsisch.png index a801e8c0..66314629 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/secondpfirsisch.png and b/src/main/resources/assets/notenoughupdates/capes/secondpfirsisch.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/secondpfirsisch_preview.png b/src/main/resources/assets/notenoughupdates/capes/secondpfirsisch_preview.png index c8fb5204..2be61fee 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/secondpfirsisch_preview.png and b/src/main/resources/assets/notenoughupdates/capes/secondpfirsisch_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/sharex_white.png b/src/main/resources/assets/notenoughupdates/capes/sharex_white.png index c638e825..c7457897 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/sharex_white.png and b/src/main/resources/assets/notenoughupdates/capes/sharex_white.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/sharex_white_preview.png b/src/main/resources/assets/notenoughupdates/capes/sharex_white_preview.png index 0855c8d7..6ed14bd8 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/sharex_white_preview.png and b/src/main/resources/assets/notenoughupdates/capes/sharex_white_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/skyclient.png b/src/main/resources/assets/notenoughupdates/capes/skyclient.png index 62543232..8fa36038 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/skyclient.png and b/src/main/resources/assets/notenoughupdates/capes/skyclient.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/skyclient_preview.png b/src/main/resources/assets/notenoughupdates/capes/skyclient_preview.png index d8ad43f0..36140806 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/skyclient_preview.png and b/src/main/resources/assets/notenoughupdates/capes/skyclient_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/space.png b/src/main/resources/assets/notenoughupdates/capes/space.png index 0fd5c0a5..76d4a42c 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/space.png and b/src/main/resources/assets/notenoughupdates/capes/space.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/stormy_lh.png b/src/main/resources/assets/notenoughupdates/capes/stormy_lh.png index 201f31c5..aba13112 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/stormy_lh.png and b/src/main/resources/assets/notenoughupdates/capes/stormy_lh.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/stormy_lh_preview.png b/src/main/resources/assets/notenoughupdates/capes/stormy_lh_preview.png index e03a6379..6a9b43d0 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/stormy_lh_preview.png and b/src/main/resources/assets/notenoughupdates/capes/stormy_lh_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/subreddit_dark.png b/src/main/resources/assets/notenoughupdates/capes/subreddit_dark.png index 4daa66ca..83ae4223 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/subreddit_dark.png and b/src/main/resources/assets/notenoughupdates/capes/subreddit_dark.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/subreddit_light.png b/src/main/resources/assets/notenoughupdates/capes/subreddit_light.png index f32d1b02..a2af3c1d 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/subreddit_light.png and b/src/main/resources/assets/notenoughupdates/capes/subreddit_light.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/subreddit_light_preview.png b/src/main/resources/assets/notenoughupdates/capes/subreddit_light_preview.png index c9e3d636..d06a5c33 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/subreddit_light_preview.png and b/src/main/resources/assets/notenoughupdates/capes/subreddit_light_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/thebakery.png b/src/main/resources/assets/notenoughupdates/capes/thebakery.png index 8784cf63..8d4ca440 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/thebakery.png and b/src/main/resources/assets/notenoughupdates/capes/thebakery.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/thebakery_preview.png b/src/main/resources/assets/notenoughupdates/capes/thebakery_preview.png index eb3dbcd9..4d0a6b7e 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/thebakery_preview.png and b/src/main/resources/assets/notenoughupdates/capes/thebakery_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/void.png b/src/main/resources/assets/notenoughupdates/capes/void.png index 2c481444..d9f27e95 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/void.png and b/src/main/resources/assets/notenoughupdates/capes/void.png differ diff --git a/src/main/resources/assets/notenoughupdates/capes/void_preview.png b/src/main/resources/assets/notenoughupdates/capes/void_preview.png index a2914145..5bac3004 100644 Binary files a/src/main/resources/assets/notenoughupdates/capes/void_preview.png and b/src/main/resources/assets/notenoughupdates/capes/void_preview.png differ diff --git a/src/main/resources/assets/notenoughupdates/colour_selector_dot.png b/src/main/resources/assets/notenoughupdates/colour_selector_dot.png index 775c5290..1150c8bb 100644 Binary files a/src/main/resources/assets/notenoughupdates/colour_selector_dot.png and b/src/main/resources/assets/notenoughupdates/colour_selector_dot.png differ diff --git a/src/main/resources/assets/notenoughupdates/core/colour_selector_dot.png b/src/main/resources/assets/notenoughupdates/core/colour_selector_dot.png index 6dc8cc15..1150c8bb 100644 Binary files a/src/main/resources/assets/notenoughupdates/core/colour_selector_dot.png and b/src/main/resources/assets/notenoughupdates/core/colour_selector_dot.png differ diff --git a/src/main/resources/assets/notenoughupdates/custom_enchant_gui.png b/src/main/resources/assets/notenoughupdates/custom_enchant_gui.png index fe53d96d..735a3fb4 100644 Binary files a/src/main/resources/assets/notenoughupdates/custom_enchant_gui.png and b/src/main/resources/assets/notenoughupdates/custom_enchant_gui.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/10.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/10.png index a1935c97..6cd64ed1 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/10.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/10.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/11.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/11.png index f0471e28..65898e8f 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/11.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/11.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/2.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/2.png index 6d80fa08..6f0daba0 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/2.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/2.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/3.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/3.png index 4ed21c74..4c123e77 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/3.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/3.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/4.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/4.png index 3384e52f..833b9017 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/4.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/4.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/5.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/5.png index cb74af61..93bef87d 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/5.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/5.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/8.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/8.png index 9fb3d937..54db6fbc 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/8.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/8.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/9.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/9.png index 40b88826..c5fedff9 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/9.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/large/9.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/map_border_dragon_stone.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/map_border_dragon_stone.png index cb604e86..c79eee7f 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/map_border_dragon_stone.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/map_border_dragon_stone.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/10.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/10.png index ef623aec..4f4b1dc7 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/10.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/10.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/11.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/11.png index 132ccd97..3730ab57 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/11.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/11.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/3.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/3.png index a22cf178..68824d04 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/3.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/3.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/4.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/4.png index 51c59181..3b8776e7 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/4.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/4.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/5.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/5.png index a4625bf9..3a708494 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/5.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/5.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/8.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/8.png index 982477f9..c131badf 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/8.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/8.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/9.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/9.png index 723056e9..a42870f2 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/9.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/medium/9.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/10.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/10.png index 359eacf6..b9bcac1d 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/10.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/10.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/11.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/11.png index da1e28eb..2fdbe252 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/11.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/11.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/3.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/3.png index 92e441ea..fe0ba4b9 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/3.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/3.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/4.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/4.png index 5a8cb034..bd580c8e 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/4.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/4.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/5.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/5.png index 1dabecff..6f2bdc29 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/5.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/5.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/8.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/8.png index 055e99fb..5dd06a89 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/8.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/8.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/9.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/9.png index 199da5c7..1d275525 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/9.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/small/9.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/steampunk.png b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/steampunk.png index dbe35950..3d1c0833 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_map/borders/steampunk.png and b/src/main/resources/assets/notenoughupdates/dungeon_map/borders/steampunk.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_win/a.png b/src/main/resources/assets/notenoughupdates/dungeon_win/a.png index cfb3630d..85322946 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_win/a.png and b/src/main/resources/assets/notenoughupdates/dungeon_win/a.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_win/s.png b/src/main/resources/assets/notenoughupdates/dungeon_win/s.png index a1bf993c..a514f285 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_win/s.png and b/src/main/resources/assets/notenoughupdates/dungeon_win/s.png differ diff --git a/src/main/resources/assets/notenoughupdates/dungeon_win/splus.png b/src/main/resources/assets/notenoughupdates/dungeon_win/splus.png index 69aa0c75..732d30a3 100644 Binary files a/src/main/resources/assets/notenoughupdates/dungeon_win/splus.png and b/src/main/resources/assets/notenoughupdates/dungeon_win/splus.png differ diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/style4/dynamic_54_slot_ctm.png b/src/main/resources/assets/notenoughupdates/dynamic_54/style4/dynamic_54_slot_ctm.png index aa3f32fe..fa43a0ed 100644 Binary files a/src/main/resources/assets/notenoughupdates/dynamic_54/style4/dynamic_54_slot_ctm.png and b/src/main/resources/assets/notenoughupdates/dynamic_54/style4/dynamic_54_slot_ctm.png differ diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/style5/dynamic_54_button_ctm.png b/src/main/resources/assets/notenoughupdates/dynamic_54/style5/dynamic_54_button_ctm.png index ee5a3b54..bab0eab7 100644 Binary files a/src/main/resources/assets/notenoughupdates/dynamic_54/style5/dynamic_54_button_ctm.png and b/src/main/resources/assets/notenoughupdates/dynamic_54/style5/dynamic_54_button_ctm.png differ diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/style5/dynamic_54_slot_ctm.png b/src/main/resources/assets/notenoughupdates/dynamic_54/style5/dynamic_54_slot_ctm.png index 13c83e85..fa43a0ed 100644 Binary files a/src/main/resources/assets/notenoughupdates/dynamic_54/style5/dynamic_54_slot_ctm.png and b/src/main/resources/assets/notenoughupdates/dynamic_54/style5/dynamic_54_slot_ctm.png differ diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/style6/dynamic_54_button_ctm.png b/src/main/resources/assets/notenoughupdates/dynamic_54/style6/dynamic_54_button_ctm.png index 4ba59d9a..fa43a0ed 100644 Binary files a/src/main/resources/assets/notenoughupdates/dynamic_54/style6/dynamic_54_button_ctm.png and b/src/main/resources/assets/notenoughupdates/dynamic_54/style6/dynamic_54_button_ctm.png differ diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/style6/dynamic_54_slot_ctm.png b/src/main/resources/assets/notenoughupdates/dynamic_54/style6/dynamic_54_slot_ctm.png index 3c91e846..fa43a0ed 100644 Binary files a/src/main/resources/assets/notenoughupdates/dynamic_54/style6/dynamic_54_slot_ctm.png and b/src/main/resources/assets/notenoughupdates/dynamic_54/style6/dynamic_54_slot_ctm.png differ diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/style7/dynamic_54_button_ctm.png b/src/main/resources/assets/notenoughupdates/dynamic_54/style7/dynamic_54_button_ctm.png index b8749675..ea57f0d0 100644 Binary files a/src/main/resources/assets/notenoughupdates/dynamic_54/style7/dynamic_54_button_ctm.png and b/src/main/resources/assets/notenoughupdates/dynamic_54/style7/dynamic_54_button_ctm.png differ diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/style7/dynamic_54_slot_ctm.png b/src/main/resources/assets/notenoughupdates/dynamic_54/style7/dynamic_54_slot_ctm.png index ff73398b..fa43a0ed 100644 Binary files a/src/main/resources/assets/notenoughupdates/dynamic_54/style7/dynamic_54_slot_ctm.png and b/src/main/resources/assets/notenoughupdates/dynamic_54/style7/dynamic_54_slot_ctm.png differ diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/toggle_off.png b/src/main/resources/assets/notenoughupdates/dynamic_54/toggle_off.png index 34fde767..7a1aa4a4 100644 Binary files a/src/main/resources/assets/notenoughupdates/dynamic_54/toggle_off.png and b/src/main/resources/assets/notenoughupdates/dynamic_54/toggle_off.png differ diff --git a/src/main/resources/assets/notenoughupdates/dynamic_54/toggle_on.png b/src/main/resources/assets/notenoughupdates/dynamic_54/toggle_on.png index 55f0cf25..5f4960f9 100644 Binary files a/src/main/resources/assets/notenoughupdates/dynamic_54/toggle_on.png and b/src/main/resources/assets/notenoughupdates/dynamic_54/toggle_on.png differ diff --git a/src/main/resources/assets/notenoughupdates/fishing_warning_exclam.png b/src/main/resources/assets/notenoughupdates/fishing_warning_exclam.png index 0e2078dc..914e86bf 100644 Binary files a/src/main/resources/assets/notenoughupdates/fishing_warning_exclam.png and b/src/main/resources/assets/notenoughupdates/fishing_warning_exclam.png differ diff --git a/src/main/resources/assets/notenoughupdates/fuel_bar.png b/src/main/resources/assets/notenoughupdates/fuel_bar.png index 1b2daa14..f15ab522 100644 Binary files a/src/main/resources/assets/notenoughupdates/fuel_bar.png and b/src/main/resources/assets/notenoughupdates/fuel_bar.png differ diff --git a/src/main/resources/assets/notenoughupdates/help.png b/src/main/resources/assets/notenoughupdates/help.png index 71501035..1a7ebb60 100644 Binary files a/src/main/resources/assets/notenoughupdates/help.png and b/src/main/resources/assets/notenoughupdates/help.png differ diff --git a/src/main/resources/assets/notenoughupdates/invbuttons/extraicons/settings.png b/src/main/resources/assets/notenoughupdates/invbuttons/extraicons/settings.png index dd65a6e4..481a0588 100644 Binary files a/src/main/resources/assets/notenoughupdates/invbuttons/extraicons/settings.png and b/src/main/resources/assets/notenoughupdates/invbuttons/extraicons/settings.png differ diff --git a/src/main/resources/assets/notenoughupdates/logo.png b/src/main/resources/assets/notenoughupdates/logo.png index 26d30ff6..c08a8991 100644 Binary files a/src/main/resources/assets/notenoughupdates/logo.png and b/src/main/resources/assets/notenoughupdates/logo.png differ diff --git a/src/main/resources/assets/notenoughupdates/on.png b/src/main/resources/assets/notenoughupdates/on.png index e3f0eee0..5520a661 100644 Binary files a/src/main/resources/assets/notenoughupdates/on.png and b/src/main/resources/assets/notenoughupdates/on.png differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_0.jpg index e777b0fc..27531695 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_1.jpg index 2564894c..5586cf8a 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_2.jpg index 7bf12754..78540079 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_3.jpg index a6c9c2fe..74bc8f23 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_4.jpg index d15749a6..cdf3fdde 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_day/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_night/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_night/panorama_5.jpg index 2f9aac53..f9e5ed40 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_1_night/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_1_night/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_0.jpg index ed3339e5..f1f6a028 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_1.jpg index 7452f9ef..882e20a2 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_2.jpg index aa988960..3ec9391f 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_3.jpg index df60e3ba..0c99863b 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_4.jpg index ddd78a06..92b62ab3 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_5.jpg index 45c635f9..169c36be 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_day/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_night/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_night/panorama_0.jpg index 74ce480c..cb60f6d3 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_night/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_night/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_night/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_night/panorama_3.jpg index 1aadb5ba..39a3b594 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/combat_3_night/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/combat_3_night/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_0.jpg index 3cc6ec86..32f9f7bb 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_1.jpg index 7ed2a00e..ece00b29 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_3.jpg index 4715dacf..ed4af05e 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_4.jpg index 53449ffe..aca79dcf 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_5.jpg index a76500fe..398e21c9 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dark_auction/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dungeon/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dungeon/panorama_4.jpg index 8b21cd0c..75b6cd4e 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dungeon/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dungeon/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dungeon/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dungeon/panorama_5.jpg index e1562211..c5e99eac 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dungeon/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dungeon/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dungeon_hub/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dungeon_hub/panorama_4.jpg index 8b21cd0c..75b6cd4e 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dungeon_hub/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dungeon_hub/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dungeon_hub/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dungeon_hub/panorama_5.jpg index e1562211..c5e99eac 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dungeon_hub/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dungeon_hub/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_0.jpg index 55ad8851..f6231245 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_1.jpg index bb0edeaa..286b3a38 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_2.jpg index ed6e4f58..c6fca879 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_3.jpg index ccea9cd2..01b2f816 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_4.jpg index 4c8e6249..a5c810fe 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_5.jpg index 803f43f4..30d32a08 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_day/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_0.jpg index 39080e08..b1fb3e84 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_1.jpg index 3167ff3a..f7642beb 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_2.jpg index dd39c253..3cb3b42f 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_3.jpg index 656700da..a98d7672 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_4.jpg index 4cfc6d34..ad2b8c70 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_5.jpg index b47d9b7f..f2e93cde 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/dynamic_night/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_0.jpg index 302b60b8..c03b849d 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_1.jpg index a35a3ff8..2286407b 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_2.jpg index 6121cbcf..62127f51 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_3.jpg index 139dcceb..fe631d89 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_4.jpg index e9de5bf8..cf835eea 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_5.jpg index 29304f3c..879b5747 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_day/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_0.jpg index fac794d6..265515f6 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_1.jpg index 7b526d60..e774ca7a 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_2.jpg index d3cbe633..1e3c8a98 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_3.jpg index 259bd3d6..7833eb89 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_5.jpg index e1f41379..ae3bdbdf 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_1_night/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_0.jpg index 009684ce..e03657af 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_2.jpg index 3fb00305..c83f2c91 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_3.jpg index 1ae90a23..9b730712 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_5.jpg index f98a25e2..a17337b9 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_day/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_0.jpg index e893b436..26909780 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_3.jpg index 33512fe1..0e870f38 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_5.jpg index ddc7820f..f40c330c 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/farming_2_night/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_0.jpg index 6ff184ff..9a12896f 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_1.jpg index f0133647..c157ccdd 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_2.jpg index bdb4e055..ecee024b 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_3.jpg index 42d45a9c..0dbef91f 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_4.jpg index 2bc73a30..681aa33e 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_5.jpg index 160f84c6..6be866d2 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_day/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_0.jpg index 1631924e..050e4f78 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_3.jpg index 8647d5ee..3af3638e 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_5.jpg index 4bac20d8..d3c13992 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/foraging_1_night/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_0.jpg index e61f7c12..0d5f26dd 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_1.jpg index 3e97f3c0..820b92a4 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_2.jpg index 141a4fcf..14d01dd1 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_3.jpg index 570da076..bfc66ec9 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_5.jpg index cafeb1dd..f3df82a5 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_day/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_0.jpg index 988c7cdb..34bc84db 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_1.jpg index 0ef7e0a2..742d158b 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_2.jpg index 1d3f8d11..abf0a253 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_3.jpg index aebc2b4e..7efc75d6 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_5.jpg index 3159658d..e86e93c4 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/hub_night/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_0.jpg index 7872a822..e0c4288d 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_1.jpg index 40c1b8bf..e0cc8139 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_2.jpg index 2586dec8..381912e1 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_3.jpg index 7d4a23a4..0beaf628 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_4.jpg index befb2875..26417482 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_5.jpg index 2e2d1700..8571b288 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_day/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_0.jpg index 3045fbc5..e90efd5f 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_1.jpg index 6e04d738..603f9d04 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_3.jpg index 1d87c269..abd201d1 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_5.jpg index 67b0c1a0..93a5a26d 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/mining_1_night/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_0.jpg b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_0.jpg index 3c579656..9482df80 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_0.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_1.jpg b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_1.jpg index 5d38a803..1b4235dd 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_1.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_2.jpg b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_2.jpg index 46465f71..2f1fcc06 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_2.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_3.jpg b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_3.jpg index 39eb8c7e..ce20d9b5 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_3.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_4.jpg b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_4.jpg index 67cd1ecf..3dcdac57 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_4.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_5.jpg b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_5.jpg index fe839f66..45f65c7c 100644 Binary files a/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_5.jpg and b/src/main/resources/assets/notenoughupdates/panoramas/unknown/panorama_5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_dark.png b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_dark.png index d231bd86..27abd2d5 100644 Binary files a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_dark.png and b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_dark.png differ diff --git a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_fsr.png b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_fsr.png index d179fa42..39782b3f 100644 Binary files a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_fsr.png and b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_fsr.png differ diff --git a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_phqdark.png b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_phqdark.png index d33dac25..83b78351 100644 Binary files a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_phqdark.png and b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_phqdark.png differ diff --git a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_transparent.png b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_transparent.png index 6e9f1928..f1bebc01 100644 Binary files a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_transparent.png and b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplayarmor_transparent.png differ diff --git a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo.png b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo.png index 9f4f712e..c047d5ad 100644 Binary files a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo.png and b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo.png differ diff --git a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_dark.png b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_dark.png index c43b5fdb..6ad6216c 100644 Binary files a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_dark.png and b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_dark.png differ diff --git a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_fsr.png b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_fsr.png index 795ba881..f39235af 100644 Binary files a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_fsr.png and b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_fsr.png differ diff --git a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_phqdark.png b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_phqdark.png index 41fa8bc1..80566c92 100644 Binary files a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_phqdark.png and b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_phqdark.png differ diff --git a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_transparent.png b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_transparent.png index 2364318f..dfe92b74 100644 Binary files a/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_transparent.png and b/src/main/resources/assets/notenoughupdates/petdisplay/petdisplaysolo_transparent.png differ diff --git a/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui.png b/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui.png index d84526ca..633be870 100644 Binary files a/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui.png and b/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui.png differ diff --git a/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_dark.png b/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_dark.png index d70fc7dc..0f7743e6 100644 Binary files a/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_dark.png and b/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_dark.png differ diff --git a/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_fsr.png b/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_fsr.png index 36921193..e98bdb7d 100644 Binary files a/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_fsr.png and b/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_fsr.png differ diff --git a/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_phqdark.png b/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_phqdark.png index 893d2716..f794319f 100644 Binary files a/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_phqdark.png and b/src/main/resources/assets/notenoughupdates/price_graph_gui/price_information_gui_phqdark.png differ diff --git a/src/main/resources/assets/notenoughupdates/pv_basic.png b/src/main/resources/assets/notenoughupdates/pv_basic.png index 1c46a8e4..4d5236f5 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_basic.png and b/src/main/resources/assets/notenoughupdates/pv_basic.png differ diff --git a/src/main/resources/assets/notenoughupdates/pv_bestiary_tab.png b/src/main/resources/assets/notenoughupdates/pv_bestiary_tab.png index eed9a72b..620c156b 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_bestiary_tab.png and b/src/main/resources/assets/notenoughupdates/pv_bestiary_tab.png differ diff --git a/src/main/resources/assets/notenoughupdates/pv_bingo_tab.png b/src/main/resources/assets/notenoughupdates/pv_bingo_tab.png index 56046537..135035cf 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_bingo_tab.png and b/src/main/resources/assets/notenoughupdates/pv_bingo_tab.png differ diff --git a/src/main/resources/assets/notenoughupdates/pv_elements.png b/src/main/resources/assets/notenoughupdates/pv_elements.png index 2a6cd1c2..7e9033bd 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_elements.png and b/src/main/resources/assets/notenoughupdates/pv_elements.png differ diff --git a/src/main/resources/assets/notenoughupdates/pv_invs.png b/src/main/resources/assets/notenoughupdates/pv_invs.png index c25ce499..46c7b0e9 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_invs.png and b/src/main/resources/assets/notenoughupdates/pv_invs.png differ diff --git a/src/main/resources/assets/notenoughupdates/pv_mining.png b/src/main/resources/assets/notenoughupdates/pv_mining.png index 226c7e40..a183fe88 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_mining.png and b/src/main/resources/assets/notenoughupdates/pv_mining.png differ diff --git a/src/main/resources/assets/notenoughupdates/pv_trophy_fish_tab.png b/src/main/resources/assets/notenoughupdates/pv_trophy_fish_tab.png index 47ac6928..d42446c1 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_trophy_fish_tab.png and b/src/main/resources/assets/notenoughupdates/pv_trophy_fish_tab.png differ diff --git a/src/main/resources/assets/notenoughupdates/pv_unknown.png b/src/main/resources/assets/notenoughupdates/pv_unknown.png index 0c282ac7..d6ce3a00 100644 Binary files a/src/main/resources/assets/notenoughupdates/pv_unknown.png and b/src/main/resources/assets/notenoughupdates/pv_unknown.png differ diff --git a/src/main/resources/assets/notenoughupdates/settings.png b/src/main/resources/assets/notenoughupdates/settings.png index c81d4c18..481a0588 100644 Binary files a/src/main/resources/assets/notenoughupdates/settings.png and b/src/main/resources/assets/notenoughupdates/settings.png differ diff --git a/src/main/resources/assets/notenoughupdates/slotlocking/bound.png b/src/main/resources/assets/notenoughupdates/slotlocking/bound.png index 8ff435b3..1631d386 100644 Binary files a/src/main/resources/assets/notenoughupdates/slotlocking/bound.png and b/src/main/resources/assets/notenoughupdates/slotlocking/bound.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_0.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_0.png index 12f613ff..da1461be 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_0.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_0.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_1.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_1.png index 5c0e8175..3ff29ff1 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_1.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_1.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_2.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_2.png index 8ceeb6c3..16150a20 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_2.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_2.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_3.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_3.png index 74d9820d..755dc865 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_3.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_3.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_pane_ctm.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_pane_ctm.png index 56a1c8ef..429e7a28 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_pane_ctm.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_gui_pane_ctm.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_icons.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_icons.png index 9dec164f..be569369 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_icons.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_icons.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_0.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_0.png index dcce08b4..faa30c96 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_0.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_0.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_1.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_1.png index bb23232d..00ed9488 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_1.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_1.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_2.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_2.png index ddaf339c..89fe7b15 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_2.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_2.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_3.png b/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_3.png index 2d23ee4a..7ead5a79 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_3.png and b/src/main/resources/assets/notenoughupdates/storage_gui/storage_preview_3.png differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/0.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/0.jpg index ef225dba..48d7a47f 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/0.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/0.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/1.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/1.jpg index 363bc4ab..ace0d1a0 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/1.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/1.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/10.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/10.jpg index 82f66718..afed0c9b 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/10.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/10.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/11.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/11.jpg index 9baa4531..0b03bbfb 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/11.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/11.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/12.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/12.jpg index fea92c09..b7142650 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/12.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/12.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/13.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/13.jpg index 4a220319..8e62f742 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/13.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/13.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/14.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/14.jpg index b50fb7cf..6f296154 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/14.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/14.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/15.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/15.jpg index 15fa28f9..682aae45 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/15.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/15.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/16.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/16.jpg index b6bd773a..ea4efa72 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/16.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/16.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/17.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/17.jpg index 7046b122..9be04bea 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/17.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/17.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/18.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/18.jpg index 1429548a..d2f1e372 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/18.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/18.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/2.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/2.jpg index 5050048b..11598aec 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/2.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/2.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/3.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/3.jpg index 468278b8..6c8a53e7 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/3.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/3.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/4.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/4.jpg index 7d29bf3d..c78a311f 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/4.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/4.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/5.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/5.jpg index 4277a767..48080f68 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/5.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/5.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/6.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/6.jpg index bbe597d7..382082e2 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/6.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/6.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/7.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/7.jpg index 8f311a6d..7f3576fe 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/7.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/7.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/8.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/8.jpg index d7c97663..de065e28 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/8.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/8.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/9.jpg b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/9.jpg index 39da193a..29fdfc1b 100644 Binary files a/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/9.jpg and b/src/main/resources/assets/notenoughupdates/storage_gui/we_do_a_little_rolling/9.jpg differ diff --git a/src/main/resources/assets/notenoughupdates/supersecretassets/bald.png b/src/main/resources/assets/notenoughupdates/supersecretassets/bald.png index 7b407117..4f730a44 100644 Binary files a/src/main/resources/assets/notenoughupdates/supersecretassets/bald.png and b/src/main/resources/assets/notenoughupdates/supersecretassets/bald.png differ diff --git a/src/main/resources/assets/notenoughupdates/supersecretassets/lunar.png b/src/main/resources/assets/notenoughupdates/supersecretassets/lunar.png index 469d96b8..7de98284 100644 Binary files a/src/main/resources/assets/notenoughupdates/supersecretassets/lunar.png and b/src/main/resources/assets/notenoughupdates/supersecretassets/lunar.png differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe_tall.png b/src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe_tall.png index d89260db..cdd8b0f1 100644 Binary files a/src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe_tall.png and b/src/main/resources/assets/notenoughupdates/textures/gui/forge_recipe_tall.png differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/item_shop_recipe.png b/src/main/resources/assets/notenoughupdates/textures/gui/item_shop_recipe.png index 9226529a..e78c0f44 100644 Binary files a/src/main/resources/assets/notenoughupdates/textures/gui/item_shop_recipe.png and b/src/main/resources/assets/notenoughupdates/textures/gui/item_shop_recipe.png differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/navigation.png b/src/main/resources/assets/notenoughupdates/textures/gui/navigation.png index fc85046f..628f3a47 100644 Binary files a/src/main/resources/assets/notenoughupdates/textures/gui/navigation.png and b/src/main/resources/assets/notenoughupdates/textures/gui/navigation.png differ diff --git a/src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe_tall.png b/src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe_tall.png index f22f28ee..8cb89bae 100644 Binary files a/src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe_tall.png and b/src/main/resources/assets/notenoughupdates/textures/gui/villager_recipe_tall.png differ -- cgit From 98ec7b09eec00e57632a92a0f9245dc755d386ae Mon Sep 17 00:00:00 2001 From: Roman / Linnea Gräf Date: Thu, 6 Oct 2022 23:51:17 +0200 Subject: Skyblock addons expect=0, and modlist config button (#337) * Skyblock addons expect=0 Synonyms for essential: crucial, main, fundamental, imperative, important, indispensable, vital, necessary, needed, vital, cardinal, principal, required, necessitous (oh wow that one sounds like incestous) * Make modlist config button work * Clean up buildscript * Add version to mock mod manifests as well Courtesy-off: MultiMC * Jitpack metadata --- build.gradle.kts | 85 ++++++++-------------- buildSrc/build.gradle.kts | 26 +++++++ buildSrc/src/main/kotlin/neubs/buildflags.kt | 56 ++++++++++++++ buildSrc/src/main/kotlin/neubs/publishing.kt | 62 ++++++++++++++++ buildSrc/src/main/kotlin/neubs/versioning.kt | 54 ++++++++++++++ jitpack.yml | 4 + .../notenoughupdates/NotEnoughUpdates.java | 4 +- .../core/config/MoulConfigGuiForgeInterop.java | 69 ++++++++++++++++++ src/main/resources/META-INF/mods.toml | 2 +- src/main/resources/fabric.mod.json | 2 +- 10 files changed, 307 insertions(+), 57 deletions(-) create mode 100644 buildSrc/build.gradle.kts create mode 100644 buildSrc/src/main/kotlin/neubs/buildflags.kt create mode 100644 buildSrc/src/main/kotlin/neubs/publishing.kt create mode 100644 buildSrc/src/main/kotlin/neubs/versioning.kt create mode 100644 jitpack.yml create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/core/config/MoulConfigGuiForgeInterop.java (limited to 'src/main/resources') diff --git a/build.gradle.kts b/build.gradle.kts index 409a8d51..deb740f5 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -18,12 +18,9 @@ */ -import net.fabricmc.loom.task.RemapJarTask -import java.io.ByteArrayOutputStream -import java.nio.file.FileSystems -import java.nio.file.Files -import java.nio.charset.StandardCharsets -import java.util.* +import neubs.NEUBuildFlags +import neubs.applyPublishingInformation +import neubs.setVersionFromEnvironment plugins { idea @@ -31,42 +28,18 @@ plugins { id("gg.essential.loom") version "0.10.0.+" id("dev.architectury.architectury-pack200") version "0.1.3" id("com.github.johnrengelman.shadow") version "7.1.2" + id("io.github.juuxel.loom-quiltflower") version "1.7.3" + `maven-publish` } +apply() + // Build metadata group = "io.github.moulberry" -val baseVersion = "2.1" - - -val buildExtra = mutableListOf() -val buildVersion = properties["BUILD_VERSION"] as? String -if (buildVersion != null) buildExtra.add(buildVersion) -if (properties["CI"] as? String == "true") buildExtra.add("ci") - -val stdout = ByteArrayOutputStream() -val execResult = exec { - commandLine("git", "describe", "--always", "--first-parent", "--abbrev=7") - standardOutput = stdout - isIgnoreExitValue = true -} -if (execResult.exitValue == 0) { - buildExtra.add(String(stdout.toByteArray()).trim()) -} - -val gitDiffStdout = ByteArrayOutputStream() -val gitDiffResult = exec { - commandLine("git", "status", "--porcelain") - standardOutput = gitDiffStdout - isIgnoreExitValue = true -} -if (gitDiffStdout.toByteArray().isNotEmpty()) { - buildExtra.add("dirty") -} - -version = baseVersion + (if (buildExtra.isEmpty()) "" else buildExtra.joinToString(prefix = "+", separator = ".")) +setVersionFromEnvironment("2.1") // Minecraft configuration: loom { @@ -106,6 +79,17 @@ val shadowImplementation by configurations.creating { configurations.implementation.get().extendsFrom(this) } +val shadowApi by configurations.creating { + configurations.implementation.get().extendsFrom(this) +} + +val devEnv by configurations.creating { + configurations.runtimeClasspath.get().extendsFrom(this) + isCanBeResolved = false + isCanBeConsumed = false + isVisible = false +} + dependencies { minecraft("com.mojang:minecraft:1.8.9") mappings("de.oceanlabs.mcp:mcp_stable:22-1.8.9") @@ -115,17 +99,18 @@ dependencies { isTransitive = false // Dependencies of mixin are already bundled by minecraft } annotationProcessor("org.spongepowered:mixin:0.8.4-SNAPSHOT") - shadowImplementation("info.bliki.wiki:bliki-core:3.1.0") + shadowApi("info.bliki.wiki:bliki-core:3.1.0") testImplementation("org.junit.jupiter:junit-jupiter:5.8.2") testAnnotationProcessor("org.spongepowered:mixin:0.8.4-SNAPSHOT") // modImplementation("io.github.notenoughupdates:MoulConfig:0.0.1") - modRuntimeOnly("me.djtheredstoner:DevAuth-forge-legacy:1.1.0") + devEnv("me.djtheredstoner:DevAuth-forge-legacy:1.1.0") } java { + withSourcesJar() toolchain.languageVersion.set(JavaLanguageVersion.of(8)) } @@ -162,7 +147,7 @@ val remapJar by tasks.named("remapJar") { tasks.shadowJar { archiveClassifier.set("dep-dev") - configurations = listOf(shadowImplementation) + configurations = listOf(shadowImplementation, shadowApi) exclude("**/module-info.class", "LICENSE.txt") dependencies { exclude { @@ -175,23 +160,9 @@ tasks.shadowJar { tasks.assemble.get().dependsOn(remapJar) -val generateBuildFlags by tasks.creating { - outputs.upToDateWhen { false } - val t = layout.buildDirectory.file("buildflags.properties") - outputs.file(t) - val props = project.properties.filter { (name, value) -> name.startsWith("neu.buildflags.") } - doLast { - val p = Properties() - p.putAll(props) - t.get().asFile.writer(StandardCharsets.UTF_8).use { - p.store(it, "Store build time configuration for NEU") - } - } -} - tasks.processResources { - from(generateBuildFlags) - filesMatching("mcmod.info") { + from(tasks["generateBuildFlags"]) + filesMatching(listOf("mcmod.info", "fabric.mod.json", "META-INF/mods.toml")) { expand( "version" to project.version, "mcversion" to "1.8.9" ) @@ -201,3 +172,9 @@ tasks.processResources { sourceSets.main { output.setResourcesDir(file("$buildDir/classes/java/main")) } + +applyPublishingInformation( + "deobf" to tasks.jar, + "all" to tasks.remapJar, + "sources" to tasks["sourcesJar"], +) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 00000000..5afecadc --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +plugins { + `kotlin-dsl` +} + +repositories { + mavenCentral() +} diff --git a/buildSrc/src/main/kotlin/neubs/buildflags.kt b/buildSrc/src/main/kotlin/neubs/buildflags.kt new file mode 100644 index 00000000..6b7ab489 --- /dev/null +++ b/buildSrc/src/main/kotlin/neubs/buildflags.kt @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package neubs + +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.the +import java.nio.charset.StandardCharsets +import java.util.* + +const val NEU_BUILDFLAGS_PREFIX = "neu.buildflags." + +class NEUBuildFlags : Plugin { + override fun apply(target: Project) { + val props = + target.properties.filterKeys { it.startsWith(NEU_BUILDFLAGS_PREFIX) }.mapValues { it.value as String } + target.extensions.add("buildflags", Extension(props)) + target.tasks.create("generateBuildFlags") { + outputs.upToDateWhen { false } + val t = target.layout.buildDirectory.file("buildflags.properties") + outputs.file(t) + doLast { + val p = Properties() + p.putAll(props) + t.get().asFile.writer(StandardCharsets.UTF_8).use { + p.store(it, "Store build time configuration for NEU") + } + } + + } + } + + class Extension(val props: Map) { + fun bool(name: String) = props["$NEU_BUILDFLAGS_PREFIX$name"] == "true" + } +} + +val Project.buildFlags: NEUBuildFlags.Extension + get() = the() diff --git a/buildSrc/src/main/kotlin/neubs/publishing.kt b/buildSrc/src/main/kotlin/neubs/publishing.kt new file mode 100644 index 00000000..4f9979a1 --- /dev/null +++ b/buildSrc/src/main/kotlin/neubs/publishing.kt @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package neubs + +import org.gradle.api.Project +import org.gradle.api.publish.PublishingExtension +import org.gradle.api.publish.maven.MavenPublication +import org.gradle.kotlin.dsl.configure +import org.gradle.kotlin.dsl.create +import org.gradle.kotlin.dsl.get + +fun Project.applyPublishingInformation( + vararg artifacts: Pair +) { + this.configure { + publications { + create("maven") { + for((name, source) in artifacts) { + artifact(source) { + classifier = name + } + } + pom { + name.set("NotEnoughUpdates") + description.set("A feature rich 1.8.9 Minecraft forge mod for Hypixel Skyblock") + licenses { + license { + name.set("GNU Lesser General Public License") + url.set("https://github.com/NotEnoughUpdates/NotEnoughUpdates/blob/master/COPYING.LESSER") + } + } + developers { + developer { + name.set("Moulberry") + } + developer { + name.set("The NotEnoughUpdates Contributors and Maintainers") + } + } + } + } + } + } + +} diff --git a/buildSrc/src/main/kotlin/neubs/versioning.kt b/buildSrc/src/main/kotlin/neubs/versioning.kt new file mode 100644 index 00000000..254e0012 --- /dev/null +++ b/buildSrc/src/main/kotlin/neubs/versioning.kt @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package neubs + +import org.gradle.api.Project +import java.io.ByteArrayOutputStream + +fun Project.setVersionFromEnvironment(baseVersion: String) { + val buildExtra = mutableListOf() + val buildVersion = properties["BUILD_VERSION"] as? String + if (buildVersion != null) buildExtra.add(buildVersion) + if (System.getenv("CI") == "true") buildExtra.add("ci") + + val stdout = ByteArrayOutputStream() + val execResult = exec { + commandLine("git", "describe", "--always", "--first-parent", "--abbrev=7") + standardOutput = stdout + isIgnoreExitValue = true + } + if (execResult.exitValue == 0) { + buildExtra.add(String(stdout.toByteArray()).trim()) + } + + val gitDiffStdout = ByteArrayOutputStream() + val gitDiffResult = exec { + commandLine("git", "status", "--porcelain") + standardOutput = gitDiffStdout + isIgnoreExitValue = true + } + if (gitDiffStdout.toByteArray().isNotEmpty()) { + buildExtra.add("dirty") + } + + version = baseVersion + (if (buildExtra.isEmpty()) "" else buildExtra.joinToString(prefix = "+", separator = ".")) + +} + diff --git a/jitpack.yml b/jitpack.yml new file mode 100644 index 00000000..6166e3d7 --- /dev/null +++ b/jitpack.yml @@ -0,0 +1,4 @@ +jdk: + - openjdk17 +env: + CI: true diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java index 7175c7e8..09c910e9 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NotEnoughUpdates.java @@ -117,7 +117,9 @@ import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Set; -@Mod(modid = NotEnoughUpdates.MODID, version = NotEnoughUpdates.VERSION, clientSideOnly = true) +@Mod( + modid = NotEnoughUpdates.MODID, version = NotEnoughUpdates.VERSION, clientSideOnly = true, useMetadata = true, + guiFactory = "io.github.moulberry.notenoughupdates.core.config.MoulConfigGuiForgeInterop") public class NotEnoughUpdates { public static final String MODID = "notenoughupdates"; public static final String VERSION = "2.1.0-REL"; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/core/config/MoulConfigGuiForgeInterop.java b/src/main/java/io/github/moulberry/notenoughupdates/core/config/MoulConfigGuiForgeInterop.java new file mode 100644 index 00000000..40887e54 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/core/config/MoulConfigGuiForgeInterop.java @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.core.config; + +import io.github.moulberry.notenoughupdates.core.GuiScreenElementWrapper; +import io.github.moulberry.notenoughupdates.options.NEUConfigEditor; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraftforge.fml.client.IModGuiFactory; +import org.lwjgl.input.Keyboard; + +import java.io.IOException; +import java.util.Set; + +public class MoulConfigGuiForgeInterop implements IModGuiFactory { + @Override + public void initialize(Minecraft minecraft) {} + + @Override + public Class mainConfigGuiClass() { + return WrappedMoulConfig.class; + } + + @Override + public Set runtimeGuiCategories() { + return null; + } + + @Override + public RuntimeOptionGuiHandler getHandlerFor(RuntimeOptionCategoryElement runtimeOptionCategoryElement) { + return null; + } + + public static class WrappedMoulConfig extends GuiScreenElementWrapper { + + private final GuiScreen parent; + + public WrappedMoulConfig(GuiScreen parent) { + super(NEUConfigEditor.editor); + this.parent = parent; + } + + @Override + public void handleKeyboardInput() throws IOException { + if (Keyboard.getEventKeyState() && Keyboard.getEventKey() == Keyboard.KEY_ESCAPE) { + Minecraft.getMinecraft().displayGuiScreen(parent); + return; + } + super.handleKeyboardInput(); + } + } +} diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 281faf65..412917d1 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -5,7 +5,7 @@ license = "LGPL" [[mods]] modId="notenoughupdateserrordisplay" -version="99.99" +version="${version}" displayName="NotEnoughUpdates (1.8.9)" description=''' This mod description is only here to warn you about using the wrong version of Minecraft and Forge. diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 8dd63bf3..0123ad91 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,6 +1,6 @@ { "id": "notenoughupdates", - "version": "9999.0", + "version": "${version}", "schemaVersion": 1, "entrypoints": { "main": [ -- cgit From 54eea328ad47ff55f3c8498fdc13e61a30200087 Mon Sep 17 00:00:00 2001 From: Roman / Linnea Gräf Date: Tue, 11 Oct 2022 21:43:00 +0200 Subject: Add ability to sign update.json, needed for autoupdates (#354) * Add ability to sign update.json, needed for autoupdates * Remove update from URL --- buildSrc/generate-public-key.sh | 31 ++++++++ buildSrc/moulsign.sh | 26 +++++++ .../commands/misc/UpdateCommand.java | 18 ----- .../miscfeatures/updater/AutoUpdater.java | 9 +++ .../notenoughupdates/util/MoulSigner.java | 80 +++++++++++++++++++++ src/main/resources/moulberry.key | Bin 0 -> 422 bytes 6 files changed, 146 insertions(+), 18 deletions(-) create mode 100755 buildSrc/generate-public-key.sh create mode 100755 buildSrc/moulsign.sh create mode 100644 src/main/java/io/github/moulberry/notenoughupdates/util/MoulSigner.java create mode 100644 src/main/resources/moulberry.key (limited to 'src/main/resources') diff --git a/buildSrc/generate-public-key.sh b/buildSrc/generate-public-key.sh new file mode 100755 index 00000000..3f778c53 --- /dev/null +++ b/buildSrc/generate-public-key.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# +# Copyright (C) 2022 NotEnoughUpdates contributors +# +# This file is part of NotEnoughUpdates. +# +# NotEnoughUpdates is free software: you can redistribute it +# and/or modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation, either +# version 3 of the License, or (at your option) any later version. +# +# NotEnoughUpdates is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with NotEnoughUpdates. If not, see . +# + + +output="$(dirname $(dirname $(readlink -f "$0")))/src/main/resources/moulberry.key" + +echo processing rsa input key from $1, and outputting to $output + +tempfile="$(mktemp)" +ssh-keygen -f "$1" -e -m pkcs8 > "$tempfile" +openssl rsa -pubin -in "$tempfile" -outform der > $output + +echo saved x509 public key at $output + diff --git a/buildSrc/moulsign.sh b/buildSrc/moulsign.sh new file mode 100755 index 00000000..dacb8ec3 --- /dev/null +++ b/buildSrc/moulsign.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# +# Copyright (C) 2022 NotEnoughUpdates contributors +# +# This file is part of NotEnoughUpdates. +# +# NotEnoughUpdates is free software: you can redistribute it +# and/or modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation, either +# version 3 of the License, or (at your option) any later version. +# +# NotEnoughUpdates is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with NotEnoughUpdates. If not, see . +# + +echo use key $1, signing file $2 +openssl dgst -sign "$1" "$2" > "$2.asc" +echo signature saved to "$2.asc" + + + diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/UpdateCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/UpdateCommand.java index 36443b27..cac93369 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/UpdateCommand.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/misc/UpdateCommand.java @@ -49,10 +49,6 @@ public class UpdateCommand extends ClientCommandBase { "" + "§e[NEU] §b/neuupdate help - View help.\n" + "§e[NEU] §b/neuupdate check - Check for updates.\n" + - "§e[NEU] §b/neuupdate url - Load an update from an direct download URL.\n" + - " §cONLY DO THIS WITH TRUSTED URLS OR IT MIGHT RESULT IN A RAT!\n" + - "§e[NEU] §b/neuupdate fromartifact - Load an update from an artifact.\n" + - " §cIf you don't know what this is, don't use it.\n" + "" )); @@ -68,20 +64,6 @@ public class UpdateCommand extends ClientCommandBase { case "check": neu.autoUpdater.displayUpdateMessageIfOutOfDate(); break; - case "url": - if (args.length != 2) { - sender.addChatMessage(new ChatComponentText("§e[NEU] §cPlease provide an URL")); - } - URL url; - try { - url = new URL(args[1]); - } catch (MalformedURLException e) { - e.printStackTrace(); - sender.addChatMessage(new ChatComponentText("§e[NEU] §cInvalid URL")); - return; - } - neu.autoUpdater.updateFromURL(url); - break; case "scheduledownload": neu.autoUpdater.scheduleDownload(); break; diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/updater/AutoUpdater.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/updater/AutoUpdater.java index 389cfc75..54fcc204 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/updater/AutoUpdater.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/updater/AutoUpdater.java @@ -26,6 +26,7 @@ import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; import com.google.gson.JsonSyntaxException; import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import io.github.moulberry.notenoughupdates.util.MoulSigner; import io.github.moulberry.notenoughupdates.util.NotificationHandler; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraft.client.Minecraft; @@ -171,6 +172,14 @@ public class AutoUpdater { File repo = neu.manager.repoLocation; File updateJson = new File(repo, "update.json"); if (updateJson.exists()) { + if (!MoulSigner.verifySignature(updateJson)) { + NotEnoughUpdates.LOGGER.error("update.json found without signature"); + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText( + "§e[NEU] §cThere has been an error checking for updates. Check the log or join the discord for more information.").setChatStyle( + Utils.createClickStyle( + ClickEvent.Action.OPEN_URL, "https://discord.gg/moulberry"))); + return; + } try { JsonObject o = neu.manager.getJsonFromFile(updateJson); diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/MoulSigner.java b/src/main/java/io/github/moulberry/notenoughupdates/util/MoulSigner.java new file mode 100644 index 00000000..6510bc20 --- /dev/null +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/MoulSigner.java @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2022 NotEnoughUpdates contributors + * + * This file is part of NotEnoughUpdates. + * + * NotEnoughUpdates is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation, either + * version 3 of the License, or (at your option) any later version. + * + * NotEnoughUpdates is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with NotEnoughUpdates. If not, see . + */ + +package io.github.moulberry.notenoughupdates.util; + +import io.github.moulberry.notenoughupdates.NotEnoughUpdates; +import org.apache.commons.io.IOUtils; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.security.InvalidKeyException; +import java.security.KeyFactory; +import java.security.NoSuchAlgorithmException; +import java.security.PublicKey; +import java.security.Signature; +import java.security.SignatureException; +import java.security.spec.InvalidKeySpecException; +import java.security.spec.X509EncodedKeySpec; + +public class MoulSigner { + private MoulSigner() {} + + static PublicKey publicKey; + + static { + try (InputStream is = MoulSigner.class.getResourceAsStream("/moulberry.key")) { + byte[] publicKeyBytes = IOUtils.toByteArray(is); + X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(publicKeyBytes); + publicKey = KeyFactory.getInstance("RSA").generatePublic(x509EncodedKeySpec); + } catch (IOException | NullPointerException | NoSuchAlgorithmException | InvalidKeySpecException e) { + NotEnoughUpdates.LOGGER.error("Cannot initialize MoulSigner", e); + } + } + + public static boolean verifySignature(byte[] data, byte[] signatureBytes) { + if (Boolean.getBoolean("neu.noverifysignature")) return true; + if (publicKey == null) { + NotEnoughUpdates.LOGGER.warn("MoulSigner could not be initialized, will fail this request"); + return false; + } + try { + Signature signature = Signature.getInstance("SHA256withRSA"); + signature.initVerify(publicKey); + signature.update(data); + return signature.verify(signatureBytes); + } catch (NoSuchAlgorithmException | InvalidKeyException | SignatureException e) { + NotEnoughUpdates.LOGGER.error("Error while verifying signature. Considering this as invalid signature", e); + return false; + } + } + + public static boolean verifySignature(File file) { + try { + return verifySignature( + IOUtils.toByteArray(file.toURI()), + IOUtils.toByteArray(new File(file.getParentFile(), file.getName() + ".asc").toURI()) + ); + } catch (IOException e) { + NotEnoughUpdates.LOGGER.error("Ran into an IOException while verifying a signature", e); + return false; + } + } +} diff --git a/src/main/resources/moulberry.key b/src/main/resources/moulberry.key new file mode 100644 index 00000000..5a7a3307 Binary files /dev/null and b/src/main/resources/moulberry.key differ -- cgit