aboutsummaryrefslogtreecommitdiff
path: root/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2020-08-20 22:18:59 +0800
committershedaniel <daniel@shedaniel.me>2020-08-20 22:18:59 +0800
commit38779f9b8e3804a6efa0e47d28226017e2584c13 (patch)
treea65afdd6351938108300b322de5f94ec7253aff1 /RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java
parent2ea877295f2fd55eb208af2e296b83df6d443f84 (diff)
downloadRoughlyEnoughItems-38779f9b8e3804a6efa0e47d28226017e2584c13.tar.gz
RoughlyEnoughItems-38779f9b8e3804a6efa0e47d28226017e2584c13.tar.bz2
RoughlyEnoughItems-38779f9b8e3804a6efa0e47d28226017e2584c13.zip
Some changes to partitioning search and optimisations to asFormattedText in ItemEntryStack.
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java')
-rw-r--r--RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java26
1 files changed, 14 insertions, 12 deletions
diff --git a/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java b/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java
index 2cc66f959..46f6f6327 100644
--- a/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java
+++ b/RoughlyEnoughItems-runtime/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java
@@ -26,6 +26,8 @@ package me.shedaniel.rei.impl;
import com.google.common.collect.Lists;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
+import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet;
+import it.unimi.dsi.fastutil.objects.ReferenceSet;
import me.shedaniel.math.Point;
import me.shedaniel.math.Rectangle;
import me.shedaniel.rei.api.ClientHelper;
@@ -33,6 +35,8 @@ import me.shedaniel.rei.api.ConfigObject;
import me.shedaniel.rei.api.EntryStack;
import me.shedaniel.rei.api.fractions.Fraction;
import me.shedaniel.rei.api.widgets.Tooltip;
+import me.shedaniel.rei.utils.FormattingUtils;
+import me.shedaniel.rei.utils.ImmutableLiteralText;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.item.TooltipContext;
import net.minecraft.client.render.DiffuseLighting;
@@ -40,6 +44,7 @@ import net.minecraft.client.render.OverlayTexture;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.model.BakedModel;
import net.minecraft.client.render.model.json.ModelTransformation;
+import net.minecraft.client.resource.language.I18n;
import net.minecraft.client.texture.SpriteAtlasTexture;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.item.Item;
@@ -47,10 +52,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag;
import net.minecraft.nbt.Tag;
-import net.minecraft.text.LiteralText;
import net.minecraft.text.Text;
-import net.minecraft.text.TranslatableText;
-import net.minecraft.util.Formatting;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.registry.Registry;
@@ -284,7 +286,7 @@ public class ItemEntryStack extends AbstractEntryStack implements OptimalEntrySt
final String modId = ClientHelper.getInstance().getModFromItem(getItem());
boolean alreadyHasMod = false;
for (Text s : toolTip)
- if (Formatting.strip(s.getString()).equalsIgnoreCase(modId)) {
+ if (FormattingUtils.stripFormatting(s.getString()).equalsIgnoreCase(modId)) {
alreadyHasMod = true;
break;
}
@@ -377,32 +379,32 @@ public class ItemEntryStack extends AbstractEntryStack implements OptimalEntrySt
}
}
- private static final List<Item> SEARCH_BLACKLISTED = Lists.newArrayList();
+ private static final ReferenceSet<Item> SEARCH_BLACKLISTED = new ReferenceOpenHashSet<>();
@Override
public @NotNull Text asFormattedText() {
- if (!SEARCH_BLACKLISTED.contains(getItem()))
+ if (!SEARCH_BLACKLISTED.contains(itemStack.getItem()))
try {
- return getItemStack().getName();
+ return itemStack.getName();
} catch (Throwable e) {
e.printStackTrace();
- SEARCH_BLACKLISTED.add(getItem());
+ SEARCH_BLACKLISTED.add(itemStack.getItem());
}
try {
- return new TranslatableText("item." + Registry.ITEM.getId(getItem()).toString().replace(":", "."));
+ return new ImmutableLiteralText(I18n.translate("item." + Registry.ITEM.getId(itemStack.getItem()).toString().replace(":", ".")));
} catch (Throwable e) {
e.printStackTrace();
}
- return new LiteralText("ERROR");
+ return new ImmutableLiteralText("ERROR");
}
private List<Text> tryGetItemStackToolTip(boolean careAboutAdvanced) {
- if (!SEARCH_BLACKLISTED.contains(getItem()))
+ if (!SEARCH_BLACKLISTED.contains(itemStack.getItem()))
try {
return itemStack.getTooltip(MinecraftClient.getInstance().player, MinecraftClient.getInstance().options.advancedItemTooltips && careAboutAdvanced ? TooltipContext.Default.ADVANCED : TooltipContext.Default.NORMAL);
} catch (Throwable e) {
e.printStackTrace();
- SEARCH_BLACKLISTED.add(getItem());
+ SEARCH_BLACKLISTED.add(itemStack.getItem());
}
return Lists.newArrayList(asFormattedText());
}