diff --git a/common/buildcraft/silicon/ItemPackage.java b/common/buildcraft/silicon/ItemPackage.java index c5515b37..f9b37941 100644 --- a/common/buildcraft/silicon/ItemPackage.java +++ b/common/buildcraft/silicon/ItemPackage.java @@ -91,9 +91,9 @@ public class ItemPackage extends ItemBuildCraft { public void addInformation(ItemStack stack, EntityPlayer player, List strings, boolean adv) { NBTTagCompound tag = NBTUtils.getItemData(stack); if (!tag.hasNoTags()) { - strings.add("SPECIAL:0"); - strings.add("SPECIAL:1"); - strings.add("SPECIAL:2"); + strings.add("{{BC_PACKAGE_SPECIAL:0}}"); + strings.add("{{BC_PACKAGE_SPECIAL:1}}"); + strings.add("{{BC_PACKAGE_SPECIAL:2}}"); } } } diff --git a/common/buildcraft/silicon/render/PackageFontRenderer.java b/common/buildcraft/silicon/render/PackageFontRenderer.java index b7d3e312..bdef8a93 100644 --- a/common/buildcraft/silicon/render/PackageFontRenderer.java +++ b/common/buildcraft/silicon/render/PackageFontRenderer.java @@ -1,5 +1,6 @@ package buildcraft.silicon.render; +import net.minecraft.util.EnumChatFormatting; import org.lwjgl.opengl.GL11; import net.minecraft.client.Minecraft; @@ -11,11 +12,15 @@ import net.minecraft.util.ResourceLocation; import buildcraft.core.lib.utils.NBTUtils; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + public class PackageFontRenderer extends FontRenderer { private static final RenderItem itemRender = new RenderItem(); private static final Minecraft mc = Minecraft.getMinecraft(); private static final FontRenderer realRenderer = mc.fontRenderer; private final NBTTagCompound pkgTag; + private final Pattern stringPattern = Pattern.compile("^\\{\\{BC_PACKAGE_SPECIAL:([0-2])}}$"); public PackageFontRenderer(ItemStack packageStack) { super(mc.gameSettings, new ResourceLocation("textures/font/ascii.png"), mc.getTextureManager(), mc.fontRenderer.getUnicodeFlag()); @@ -24,7 +29,8 @@ public class PackageFontRenderer extends FontRenderer { @Override public int getStringWidth(String s) { - if (!s.contains("SPECIAL:")) { + Matcher m = stringPattern.matcher(EnumChatFormatting.getTextWithoutFormattingCodes(s)); + if (!m.find()) { return realRenderer.getStringWidth(s); } @@ -33,11 +39,12 @@ public class PackageFontRenderer extends FontRenderer { @Override public int drawString(String s, int x, int y, int color, boolean shadow) { - if (!s.contains("SPECIAL:")) { + Matcher m = stringPattern.matcher(EnumChatFormatting.getTextWithoutFormattingCodes(s)); + if (!m.find()) { return realRenderer.drawString(s, x, y, color, shadow); } - int begin = Integer.parseInt(s.substring(s.length() - 1)) * 3; + int begin = Integer.parseInt(m.group(1)) * 3; int rx = x; for (int slotPos = begin; slotPos < begin + 3; slotPos++) {