This commit is contained in:
Adrian Siekierka 2022-10-26 23:36:38 +02:00
parent cc1893448c
commit 8a6b126701
2 changed files with 13 additions and 6 deletions

View file

@ -91,9 +91,9 @@ public class ItemPackage extends ItemBuildCraft {
public void addInformation(ItemStack stack, EntityPlayer player, List strings, boolean adv) { public void addInformation(ItemStack stack, EntityPlayer player, List strings, boolean adv) {
NBTTagCompound tag = NBTUtils.getItemData(stack); NBTTagCompound tag = NBTUtils.getItemData(stack);
if (!tag.hasNoTags()) { if (!tag.hasNoTags()) {
strings.add("SPECIAL:0"); strings.add("{{BC_PACKAGE_SPECIAL:0}}");
strings.add("SPECIAL:1"); strings.add("{{BC_PACKAGE_SPECIAL:1}}");
strings.add("SPECIAL:2"); strings.add("{{BC_PACKAGE_SPECIAL:2}}");
} }
} }
} }

View file

@ -1,5 +1,6 @@
package buildcraft.silicon.render; package buildcraft.silicon.render;
import net.minecraft.util.EnumChatFormatting;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
@ -11,11 +12,15 @@ import net.minecraft.util.ResourceLocation;
import buildcraft.core.lib.utils.NBTUtils; import buildcraft.core.lib.utils.NBTUtils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PackageFontRenderer extends FontRenderer { public class PackageFontRenderer extends FontRenderer {
private static final RenderItem itemRender = new RenderItem(); private static final RenderItem itemRender = new RenderItem();
private static final Minecraft mc = Minecraft.getMinecraft(); private static final Minecraft mc = Minecraft.getMinecraft();
private static final FontRenderer realRenderer = mc.fontRenderer; private static final FontRenderer realRenderer = mc.fontRenderer;
private final NBTTagCompound pkgTag; private final NBTTagCompound pkgTag;
private final Pattern stringPattern = Pattern.compile("^\\{\\{BC_PACKAGE_SPECIAL:([0-2])}}$");
public PackageFontRenderer(ItemStack packageStack) { public PackageFontRenderer(ItemStack packageStack) {
super(mc.gameSettings, new ResourceLocation("textures/font/ascii.png"), mc.getTextureManager(), mc.fontRenderer.getUnicodeFlag()); super(mc.gameSettings, new ResourceLocation("textures/font/ascii.png"), mc.getTextureManager(), mc.fontRenderer.getUnicodeFlag());
@ -24,7 +29,8 @@ public class PackageFontRenderer extends FontRenderer {
@Override @Override
public int getStringWidth(String s) { public int getStringWidth(String s) {
if (!s.contains("SPECIAL:")) { Matcher m = stringPattern.matcher(EnumChatFormatting.getTextWithoutFormattingCodes(s));
if (!m.find()) {
return realRenderer.getStringWidth(s); return realRenderer.getStringWidth(s);
} }
@ -33,11 +39,12 @@ public class PackageFontRenderer extends FontRenderer {
@Override @Override
public int drawString(String s, int x, int y, int color, boolean shadow) { 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); 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; int rx = x;
for (int slotPos = begin; slotPos < begin + 3; slotPos++) { for (int slotPos = begin; slotPos < begin + 3; slotPos++) {