12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package me.km.networking;
- import com.mojang.blaze3d.matrix.MatrixStack;
- import com.mojang.blaze3d.systems.RenderSystem;
- import me.km.utils.ClientReflectionUtils;
- import me.km.utils.Mapper;
- import net.minecraft.client.Minecraft;
- import net.minecraft.client.gui.AbstractGui;
- import net.minecraft.client.renderer.ItemRenderer;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemStack;
- import net.minecraft.util.ResourceLocation;
- import net.minecraftforge.api.distmarker.Dist;
- import net.minecraftforge.api.distmarker.OnlyIn;
- @OnlyIn(Dist.CLIENT)
- public class ItemStackDisplayGui extends AbstractGui {
- private static final ResourceLocation WIDGETS_TEX_PATH = new ResourceLocation("textures/gui/widgets.png");
- public final static ItemStackDisplayGui INSTANCE = new ItemStackDisplayGui(Minecraft.getInstance());
- private final Minecraft mc;
- private final ItemStack[] icons = new ItemStack[9];
- private boolean inactive = true;
- public ItemStackDisplayGui(Minecraft mc) {
- this.mc = mc;
- for(int i = 0; i < icons.length; i++) {
- icons[i] = ItemStack.EMPTY;
- }
- }
- public void setActive(boolean active) {
- this.inactive = !active;
- }
- public void setIcon(int index, String name) {
- if(index >= 0 && index < 9) {
- Item item = Mapper.getItem(name);
- if(item != null) {
- icons[index] = new ItemStack(item);
- }
- }
- }
- public final void clear() {
- for(int i = 0; i < icons.length; i++) {
- icons[i] = ItemStack.EMPTY;
- }
- }
- public void paint(MatrixStack matrixStack, KeyManager km) {
- if(inactive) {
- return;
- }
-
- int screenWidth = (mc.getMainWindow().getScaledWidth() >> 1) - 91;
- int y = 0;
- if(ClientReflectionUtils.isRenderingBossBar()) {
- y += 20;
- }
-
- RenderSystem.enableBlend();
- RenderSystem.color4f(1.0f, 1.0f, 1.0f, 1.0f);
- mc.getTextureManager().bindTexture(WIDGETS_TEX_PATH);
- int oldBlitOffset = this.getBlitOffset();
- setBlitOffset(-90);
- blit(matrixStack, screenWidth, y, 0, 0, 182, 22);
- setBlitOffset(oldBlitOffset);
-
- y += 3;
- ItemRenderer ir = mc.getItemRenderer();
- int i = 0;
- for(int x = 3; x < 164; x += 20) {
- if(!icons[i].isEmpty()) {
- ir.renderItemAndEffectIntoGUI(mc.player, icons[i], screenWidth + x, y);
- ir.renderItemOverlayIntoGUI(this.mc.fontRenderer, icons[i], screenWidth + x, y, km.getKeyDescription(i));
- }
- i++;
- }
- RenderSystem.disableBlend();
- }
- }
|