diff options
| author | NopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com> | 2024-08-04 01:51:14 +1000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-03 17:51:14 +0200 |
| commit | 2b2f59ef37e93f11a70a44bc83d81ac8d9b64381 (patch) | |
| tree | 2a2bcd45b0d54ef3963030c149d973d726960e77 | |
| parent | 24ff8316f1b43db4dca47bb1fba529e69d0d72df (diff) | |
| download | notenoughupdates-2b2f59ef37e93f11a70a44bc83d81ac8d9b64381.tar.gz notenoughupdates-2b2f59ef37e93f11a70a44bc83d81ac8d9b64381.tar.bz2 notenoughupdates-2b2f59ef37e93f11a70a44bc83d81ac8d9b64381.zip | |
Fix performance when NEU deals with item stacks (#1271)
4 files changed, 14 insertions, 9 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java index c2fb6659..43035ca8 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java @@ -1507,7 +1507,7 @@ public class NEUManager { } public ItemStack jsonToStack(JsonObject json, boolean useCache) { - return jsonToStack(json, useCache, true); + return jsonToStack(json, useCache, false); } public ItemStack jsonToStack(JsonObject json, boolean useCache, boolean useReplacements) { diff --git a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java index 77cc2cab..1a56bf1a 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java @@ -568,7 +568,7 @@ public class NEUOverlay extends Gui { extraScale = 1.3f; } else if (manager.getItemInformation().containsKey(display)) { - render = manager.jsonToStack(manager.getItemInformation().get(display), true, true); + render = manager.jsonToStack(manager.getItemInformation().get(display), true, false); } else { Item item = Item.itemRegistry.getObject(new ResourceLocation(display.toLowerCase(Locale.ROOT))); if (item != null) { @@ -2270,7 +2270,7 @@ public class NEUOverlay extends Gui { JsonObject json = tooltipToDisplay.get(); if (json != null) { - ItemStack stack = manager.jsonToStack(json); + ItemStack stack = manager.jsonToStack(json, false, true); { NBTTagCompound tag = stack.getTagCompound(); tag.setBoolean("DisablePetExp", true); @@ -2443,10 +2443,15 @@ public class NEUOverlay extends Gui { if (json == null) { return; } - ItemStack stack = manager.jsonToStack(json, true, true, false); - if (stack == null || !stack.hasEffect()) { - return; + boolean hasEnch = false; + if (json.has("nbttag")) { + String jsonString = json.get("nbttag").getAsJsonPrimitive().getAsString(); + // scuffed way of doing it but improves performance significantly over the old method + if (jsonString.contains("ench:[") || jsonString.contains("CustomPotionEffects:[")) { + hasEnch = true; + } } + if (!hasEnch) return; GlStateManager.pushMatrix(); GlStateManager.enableRescaleNormal(); @@ -2601,7 +2606,7 @@ public class NEUOverlay extends Gui { renderEntity(x + ITEM_SIZE / 2, y + ITEM_SIZE, scale, name, entities); } else { if (!items) return; - ItemStack stack = manager.jsonToStack(json, true, true, false); + ItemStack stack = manager.jsonToStack(json, true, false, false); if (stack != null) { if (glint) { Utils.drawItemStack(stack, x, y); 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 c92fca74..379e3fcb 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/listener/NEUEventListener.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/listener/NEUEventListener.java @@ -117,7 +117,7 @@ public class NEUEventListener { List<JsonObject> list = new ArrayList<>(neu.manager.getItemInformation().values()); for (JsonObject json : list) { itemPreloader.submit(() -> { - ItemStack stack = neu.manager.jsonToStack(json, true, true); + ItemStack stack = neu.manager.jsonToStack(json, true, false); if (stack.getItem() == Items.skull) toPreload.add(stack); }); } 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 38d2447b..a55d4a2e 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/recipes/Ingredient.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/recipes/Ingredient.java @@ -96,7 +96,7 @@ public class Ingredient { return ItemUtils.getCoinItemStack(count); } JsonObject itemInfo = manager.getItemInformation().get(internalItemId); - itemStack = manager.jsonToStack(itemInfo); + itemStack = manager.jsonToStack(itemInfo, false, true); itemStack.stackSize = (int) count; return itemStack; } |
