package openmods.gui.component; import com.google.common.collect.ImmutableList; import java.util.List; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.item.ItemStack; import net.minecraft.util.MathHelper; import org.lwjgl.opengl.GL11; public class GuiComponentItemStack extends BaseComponent { protected static RenderItem itemRenderer = new RenderItem(); private final ItemStack stack; private boolean drawTooltip; private final float scale; private final int size; private final List<String> displayName; public GuiComponentItemStack(int x, int y, ItemStack stack, boolean drawTooltip, float scale) { super(x, y); this.stack = stack; this.drawTooltip = drawTooltip; this.scale = scale; this.size = MathHelper.floor_float(16 * scale); this.displayName = ImmutableList.of(stack.getDisplayName()); } @Override public int getWidth() { return size; } @Override public int getHeight() { return size; } @Override public void render(Minecraft minecraft, int offsetX, int offsetY, int mouseX, int mouseY) { if (scale != 1) { GL11.glPushMatrix(); GL11.glScalef(scale, scale, 1); } drawItemStack(stack, (int)((x + offsetX) / scale), (int)((y + offsetY) / scale), ""); if (scale != 1) GL11.glPopMatrix(); } @Override public void renderOverlay(Minecraft minecraft, int offsetX, int offsetY, int mouseX, int mouseY) { if (drawTooltip && isMouseOver(mouseX, mouseY)) drawHoveringText(displayName, offsetX + mouseX, offsetY + mouseY, minecraft.fontRenderer); } }