aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com>2024-08-04 01:51:14 +1000
committerGitHub <noreply@github.com>2024-08-03 17:51:14 +0200
commit2b2f59ef37e93f11a70a44bc83d81ac8d9b64381 (patch)
tree2a2bcd45b0d54ef3963030c149d973d726960e77
parent24ff8316f1b43db4dca47bb1fba529e69d0d72df (diff)
downloadnotenoughupdates-2b2f59ef37e93f11a70a44bc83d81ac8d9b64381.tar.gz
notenoughupdates-2b2f59ef37e93f11a70a44bc83d81ac8d9b64381.tar.bz2
notenoughupdates-2b2f59ef37e93f11a70a44bc83d81ac8d9b64381.zip
Fix performance when NEU deals with item stacks (#1271)
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/NEUManager.java2
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/NEUOverlay.java17
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/listener/NEUEventListener.java2
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/recipes/Ingredient.java2
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;
}