package joshie.harvest.cooking.gui; import joshie.harvest.cooking.tile.TileFridge; import joshie.harvest.core.base.gui.ContainerExpanded.SlotHF; import joshie.harvest.core.base.gui.GuiBaseContainer; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; import net.minecraft.util.ResourceLocation; import javax.annotation.Nonnull; public class GuiFridge extends GuiBaseContainer { private FridgeFont font; public GuiFridge(EntityPlayer player, InventoryPlayer playerInv, TileFridge fridge) { super(new ContainerFridge(player, playerInv, fridge), "fridge", 56); } @Override public void setWorldAndResolution(Minecraft mc, int width, int height) { super.setWorldAndResolution(mc, width, height); this.font = new FridgeFont(fontRendererObj); } @Override public void drawSlot(@Nonnull Slot slot) { if (slot instanceof SlotHF) { FontRenderer temp = fontRendererObj; fontRendererObj = font; super.drawSlot(slot); fontRendererObj = temp; } else super.drawSlot(slot); } /** Borrowed from Chisel and Bits **/ public static class FridgeFont extends FontRenderer { private final FontRenderer original; private final int offsetX, offsetY; private final double scale; public FridgeFont(FontRenderer font) { super(Minecraft.getMinecraft().gameSettings, new ResourceLocation("textures/font/ascii.png"), Minecraft.getMinecraft().getTextureManager(), false); original = font; scale = 0.75; offsetX = 3; offsetY = 2; } @Override public int getStringWidth(String text) { return original.getStringWidth(text); } @Override public int drawString(String text, float x, float y, int color, boolean dropShadow) { try { GlStateManager.pushMatrix(); GlStateManager.scale(scale, scale, scale); x /= scale; y /= scale; x += offsetX; y += offsetY; return original.drawString(text, x, y, color, dropShadow); } finally { GlStateManager.popMatrix(); } } } }