BloodMagic/src/main/java/WayofTime/bloodmagic/client/hud/HUDElementHolding.java

79 lines
3.4 KiB
Java
Raw Normal View History

package WayofTime.bloodmagic.client.hud;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.core.RegistrarBloodMagicItems;
2017-08-15 21:30:48 -07:00
import WayofTime.bloodmagic.item.sigil.ItemSigilHolding;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
2017-03-05 10:28:06 -08:00
import java.util.List;
2017-08-15 21:30:48 -07:00
public class HUDElementHolding extends HUDElement {
2017-08-15 21:30:48 -07:00
public HUDElementHolding() {
super(0, 0, RenderGameOverlayEvent.ElementType.HOTBAR);
}
@Override
2017-08-15 21:30:48 -07:00
public void render(Minecraft minecraft, ScaledResolution resolution, float partialTicks) {
2017-01-02 00:10:28 -08:00
ItemStack sigilHolding = minecraft.player.getHeldItemMainhand();
// Check mainhand for Sigil of Holding
if (!(sigilHolding.getItem() == RegistrarBloodMagicItems.SIGIL_HOLDING))
2017-01-02 00:10:28 -08:00
sigilHolding = minecraft.player.getHeldItemOffhand();
// Check offhand for Sigil of Holding
if (!(sigilHolding.getItem() == RegistrarBloodMagicItems.SIGIL_HOLDING))
return;
Gui ingameGui = minecraft.ingameGUI;
minecraft.getTextureManager().bindTexture(new ResourceLocation(BloodMagic.MODID, "textures/gui/widgets.png"));
GlStateManager.color(1.0F, 1.0F, 1.0F);
ingameGui.drawTexturedModalRect(resolution.getScaledWidth() / 2 + 100 + getXOffset(), resolution.getScaledHeight() - 22 + getYOffset(), 0, 0, 102, 22);
int currentSlot = ItemSigilHolding.getCurrentItemOrdinal(sigilHolding);
ingameGui.drawTexturedModalRect(resolution.getScaledWidth() / 2 + 99 + (currentSlot * 20) + getXOffset(), resolution.getScaledHeight() - 23 + getYOffset(), 0, 22, 24, 24);
RenderHelper.enableGUIStandardItemLighting();
2017-03-05 10:28:06 -08:00
List<ItemStack> holdingInv = ItemSigilHolding.getInternalInventory(sigilHolding);
int xOffset = 0;
2017-08-15 21:30:48 -07:00
for (ItemStack sigil : holdingInv) {
2017-03-05 10:28:06 -08:00
renderHotbarItem(resolution.getScaledWidth() / 2 + 103 + xOffset + getXOffset(), resolution.getScaledHeight() - 18 + getYOffset(), partialTicks, minecraft.player, sigil);
xOffset += 20;
}
RenderHelper.disableStandardItemLighting();
}
@Override
2017-08-15 21:30:48 -07:00
public boolean shouldRender(Minecraft minecraft) {
return true;
}
2017-08-15 21:30:48 -07:00
protected void renderHotbarItem(int x, int y, float partialTicks, EntityPlayer player, ItemStack stack) {
if (!stack.isEmpty()) {
2017-01-02 00:10:28 -08:00
float animation = (float) stack.getAnimationsToGo() - partialTicks;
2017-08-15 21:30:48 -07:00
if (animation > 0.0F) {
GlStateManager.pushMatrix();
float f1 = 1.0F + animation / 5.0F;
GlStateManager.translate((float) (x + 8), (float) (y + 12), 0.0F);
GlStateManager.scale(1.0F / f1, (f1 + 1.0F) / 2.0F, 1.0F);
GlStateManager.translate((float) (-(x + 8)), (float) (-(y + 12)), 0.0F);
}
Minecraft.getMinecraft().getRenderItem().renderItemAndEffectIntoGUI(player, stack, x, y);
if (animation > 0.0F)
GlStateManager.popMatrix();
2017-08-15 20:21:54 -07:00
Minecraft.getMinecraft().getRenderItem().renderItemOverlays(Minecraft.getMinecraft().fontRenderer, stack, x, y);
}
}
}