Исходник Hotbar | Expensive 3.1

Начинающий
Статус
Оффлайн
Регистрация
4 Май 2024
Сообщения
5
Реакции[?]
0
Поинты[?]
0

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Первая моя работа
hotbar.png Хотбар подстраивающийся под темы под экспу 3.1, не нуждаюсь в попкорне :)
Java:
package im.expensive.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.FunctionRegister;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.vector.Vector4f;
import im.expensive.events.EventDisplay;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.utils.math.Vector4i;
import im.expensive.utils.render.ColorUtils;
import im.expensive.utils.render.DisplayUtils;

@FunctionRegister(name = "Hotbar", type = Category.Render)
public class Hotbar extends Function {
    private final Minecraft mc = Minecraft.getInstance();

    private final FontRenderer fontRenderer = this.mc.fontRenderer;

    private static Hotbar instance;

    private boolean state;

    public static Hotbar getInstance() {
        if (instance == null)
            instance = new Hotbar();
        return instance;
    }

    public void setState(boolean state) {
        this.state = state;
    }

    public boolean getState() {
        return this.state;
    }

    @Subscribe
    public void onDisplay(EventDisplay e) {
        if (e.getType() != EventDisplay.Type.POST)
            return;
        int hotbarX = (this.mc.getMainWindow().getScaledWidth() - 182) / 2;
        int hotbarY = this.mc.getMainWindow().getScaledHeight() - 22;
        drawStyledRect((hotbarX - 1), (hotbarY - 1), 183.2F, 25.0F, 3.5F, 1.0F, 2130706432);
        DisplayUtils.drawShadow((hotbarX - 1), (hotbarY - 1), 183.2F, 22.0F, 25, ColorUtils.rgba(0, 0, 0, 255), ColorUtils.rgba(0, 0, 0, 0));
        NonNullList<ItemStack> hotbarItems = this.mc.player.inventory.mainInventory;
        for (int i = 0; i < 9; i++) {
            int slotX = hotbarX + i * 20;
            int slotY = hotbarY;
            int slotColor = 1426063360;
            if (i == this.mc.player.inventory.currentItem)
                slotColor = 1439485132;
            DisplayUtils.drawRoundedRect(slotX, slotY, 22.0F, 20.0F, 3.0F, slotColor);
            ItemStack itemStack = (ItemStack)hotbarItems.get(i);
            if (!itemStack.isEmpty()) {
                this.mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, slotX + 2, slotY + 2);
                this.mc.getItemRenderer().renderItemOverlayIntoGUI(this.fontRenderer, itemStack, slotX + 2, slotY + 2, null);
            }
        }
        NonNullList<ItemStack> offhandItems = this.mc.player.inventory.offHandInventory;
        ItemStack offhandItem = (ItemStack)offhandItems.get(0);
        if (!offhandItem.isEmpty())
            for (int j = 0; j < 1; j++) {
                int slotX = hotbarX - 28 - j * 20;
                int slotY = hotbarY;
                int slotColor = 1426063360;
                DisplayUtils.drawRoundedRect(slotX, slotY, 20.0F, 20.0F, 3.0F, slotColor);
                drawStyledRect(slotX, slotY, 20.0F, 20.0F, 3.0F, 1.0F, 2130706432);
                ItemStack itemStack = (ItemStack)offhandItems.get(j);
                if (!itemStack.isEmpty()) {
                    this.mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, slotX + 2, slotY + 2);
                    this.mc.getItemRenderer().renderItemOverlayIntoGUI(this.fontRenderer, itemStack, slotX + 2, slotY + 2, null);
                }
            }
    }

    private void drawStyledRect(float x, float y, float width, float height, float radius, float borderWidth, int color) {
        Vector4i colors = new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(180, 1.0F), HUD.getColor(270, 1.0F));
        DisplayUtils.drawRoundedRect(x - borderWidth, y - borderWidth, width + borderWidth * 2.0F, height + borderWidth * 2.0F, new Vector4f(7.0F, 7.0F, 7.0F, 7.0F), colors);
        DisplayUtils.drawRoundedRect(x, y, width, height, radius, color);
    }
}
 
Начинающий
Статус
Оффлайн
Регистрация
5 Май 2024
Сообщения
33
Реакции[?]
0
Поинты[?]
0
Первая моя работа
Посмотреть вложение 277609 Хотбар подстраивающийся под темы под экспу 3.1, не нуждаюсь в попкорне :)
Java:
package im.expensive.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.FunctionRegister;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.vector.Vector4f;
import im.expensive.events.EventDisplay;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.utils.math.Vector4i;
import im.expensive.utils.render.ColorUtils;
import im.expensive.utils.render.DisplayUtils;

@FunctionRegister(name = "Hotbar", type = Category.Render)
public class Hotbar extends Function {
    private final Minecraft mc = Minecraft.getInstance();

    private final FontRenderer fontRenderer = this.mc.fontRenderer;

    private static Hotbar instance;

    private boolean state;

    public static Hotbar getInstance() {
        if (instance == null)
            instance = new Hotbar();
        return instance;
    }

    public void setState(boolean state) {
        this.state = state;
    }

    public boolean getState() {
        return this.state;
    }

    @Subscribe
    public void onDisplay(EventDisplay e) {
        if (e.getType() != EventDisplay.Type.POST)
            return;
        int hotbarX = (this.mc.getMainWindow().getScaledWidth() - 182) / 2;
        int hotbarY = this.mc.getMainWindow().getScaledHeight() - 22;
        drawStyledRect((hotbarX - 1), (hotbarY - 1), 183.2F, 25.0F, 3.5F, 1.0F, 2130706432);
        DisplayUtils.drawShadow((hotbarX - 1), (hotbarY - 1), 183.2F, 22.0F, 25, ColorUtils.rgba(0, 0, 0, 255), ColorUtils.rgba(0, 0, 0, 0));
        NonNullList<ItemStack> hotbarItems = this.mc.player.inventory.mainInventory;
        for (int i = 0; i < 9; i++) {
            int slotX = hotbarX + i * 20;
            int slotY = hotbarY;
            int slotColor = 1426063360;
            if (i == this.mc.player.inventory.currentItem)
                slotColor = 1439485132;
            DisplayUtils.drawRoundedRect(slotX, slotY, 22.0F, 20.0F, 3.0F, slotColor);
            ItemStack itemStack = (ItemStack)hotbarItems.get(i);
            if (!itemStack.isEmpty()) {
                this.mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, slotX + 2, slotY + 2);
                this.mc.getItemRenderer().renderItemOverlayIntoGUI(this.fontRenderer, itemStack, slotX + 2, slotY + 2, null);
            }
        }
        NonNullList<ItemStack> offhandItems = this.mc.player.inventory.offHandInventory;
        ItemStack offhandItem = (ItemStack)offhandItems.get(0);
        if (!offhandItem.isEmpty())
            for (int j = 0; j < 1; j++) {
                int slotX = hotbarX - 28 - j * 20;
                int slotY = hotbarY;
                int slotColor = 1426063360;
                DisplayUtils.drawRoundedRect(slotX, slotY, 20.0F, 20.0F, 3.0F, slotColor);
                drawStyledRect(slotX, slotY, 20.0F, 20.0F, 3.0F, 1.0F, 2130706432);
                ItemStack itemStack = (ItemStack)offhandItems.get(j);
                if (!itemStack.isEmpty()) {
                    this.mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, slotX + 2, slotY + 2);
                    this.mc.getItemRenderer().renderItemOverlayIntoGUI(this.fontRenderer, itemStack, slotX + 2, slotY + 2, null);
                }
            }
    }

    private void drawStyledRect(float x, float y, float width, float height, float radius, float borderWidth, int color) {
        Vector4i colors = new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(180, 1.0F), HUD.getColor(270, 1.0F));
        DisplayUtils.drawRoundedRect(x - borderWidth, y - borderWidth, width + borderWidth * 2.0F, height + borderWidth * 2.0F, new Vector4f(7.0F, 7.0F, 7.0F, 7.0F), colors);
        DisplayUtils.drawRoundedRect(x, y, width, height, radius, color);
    }
}
Ну для первой работы нормально
 
Начинающий
Статус
Оффлайн
Регистрация
26 Фев 2024
Сообщения
369
Реакции[?]
0
Поинты[?]
0
Первая моя работа
Посмотреть вложение 277609 Хотбар подстраивающийся под темы под экспу 3.1, не нуждаюсь в попкорне :)
Java:
package im.expensive.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.FunctionRegister;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.vector.Vector4f;
import im.expensive.events.EventDisplay;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.utils.math.Vector4i;
import im.expensive.utils.render.ColorUtils;
import im.expensive.utils.render.DisplayUtils;

@FunctionRegister(name = "Hotbar", type = Category.Render)
public class Hotbar extends Function {
    private final Minecraft mc = Minecraft.getInstance();

    private final FontRenderer fontRenderer = this.mc.fontRenderer;

    private static Hotbar instance;

    private boolean state;

    public static Hotbar getInstance() {
        if (instance == null)
            instance = new Hotbar();
        return instance;
    }

    public void setState(boolean state) {
        this.state = state;
    }

    public boolean getState() {
        return this.state;
    }

    @Subscribe
    public void onDisplay(EventDisplay e) {
        if (e.getType() != EventDisplay.Type.POST)
            return;
        int hotbarX = (this.mc.getMainWindow().getScaledWidth() - 182) / 2;
        int hotbarY = this.mc.getMainWindow().getScaledHeight() - 22;
        drawStyledRect((hotbarX - 1), (hotbarY - 1), 183.2F, 25.0F, 3.5F, 1.0F, 2130706432);
        DisplayUtils.drawShadow((hotbarX - 1), (hotbarY - 1), 183.2F, 22.0F, 25, ColorUtils.rgba(0, 0, 0, 255), ColorUtils.rgba(0, 0, 0, 0));
        NonNullList<ItemStack> hotbarItems = this.mc.player.inventory.mainInventory;
        for (int i = 0; i < 9; i++) {
            int slotX = hotbarX + i * 20;
            int slotY = hotbarY;
            int slotColor = 1426063360;
            if (i == this.mc.player.inventory.currentItem)
                slotColor = 1439485132;
            DisplayUtils.drawRoundedRect(slotX, slotY, 22.0F, 20.0F, 3.0F, slotColor);
            ItemStack itemStack = (ItemStack)hotbarItems.get(i);
            if (!itemStack.isEmpty()) {
                this.mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, slotX + 2, slotY + 2);
                this.mc.getItemRenderer().renderItemOverlayIntoGUI(this.fontRenderer, itemStack, slotX + 2, slotY + 2, null);
            }
        }
        NonNullList<ItemStack> offhandItems = this.mc.player.inventory.offHandInventory;
        ItemStack offhandItem = (ItemStack)offhandItems.get(0);
        if (!offhandItem.isEmpty())
            for (int j = 0; j < 1; j++) {
                int slotX = hotbarX - 28 - j * 20;
                int slotY = hotbarY;
                int slotColor = 1426063360;
                DisplayUtils.drawRoundedRect(slotX, slotY, 20.0F, 20.0F, 3.0F, slotColor);
                drawStyledRect(slotX, slotY, 20.0F, 20.0F, 3.0F, 1.0F, 2130706432);
                ItemStack itemStack = (ItemStack)offhandItems.get(j);
                if (!itemStack.isEmpty()) {
                    this.mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, slotX + 2, slotY + 2);
                    this.mc.getItemRenderer().renderItemOverlayIntoGUI(this.fontRenderer, itemStack, slotX + 2, slotY + 2, null);
                }
            }
    }

    private void drawStyledRect(float x, float y, float width, float height, float radius, float borderWidth, int color) {
        Vector4i colors = new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(180, 1.0F), HUD.getColor(270, 1.0F));
        DisplayUtils.drawRoundedRect(x - borderWidth, y - borderWidth, width + borderWidth * 2.0F, height + borderWidth * 2.0F, new Vector4f(7.0F, 7.0F, 7.0F, 7.0F), colors);
        DisplayUtils.drawRoundedRect(x, y, width, height, radius, color);
    }
}
ого ебать фуриос клиент момент
 
Начинающий
Статус
Оффлайн
Регистрация
28 Ноя 2023
Сообщения
50
Реакции[?]
0
Поинты[?]
0
Первая моя работа
Посмотреть вложение 277609 Хотбар подстраивающийся под темы под экспу 3.1, не нуждаюсь в попкорне :)
Java:
package im.expensive.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.FunctionRegister;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.vector.Vector4f;
import im.expensive.events.EventDisplay;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.utils.math.Vector4i;
import im.expensive.utils.render.ColorUtils;
import im.expensive.utils.render.DisplayUtils;

@FunctionRegister(name = "Hotbar", type = Category.Render)
public class Hotbar extends Function {
    private final Minecraft mc = Minecraft.getInstance();

    private final FontRenderer fontRenderer = this.mc.fontRenderer;

    private static Hotbar instance;

    private boolean state;

    public static Hotbar getInstance() {
        if (instance == null)
            instance = new Hotbar();
        return instance;
    }

    public void setState(boolean state) {
        this.state = state;
    }

    public boolean getState() {
        return this.state;
    }

    @Subscribe
    public void onDisplay(EventDisplay e) {
        if (e.getType() != EventDisplay.Type.POST)
            return;
        int hotbarX = (this.mc.getMainWindow().getScaledWidth() - 182) / 2;
        int hotbarY = this.mc.getMainWindow().getScaledHeight() - 22;
        drawStyledRect((hotbarX - 1), (hotbarY - 1), 183.2F, 25.0F, 3.5F, 1.0F, 2130706432);
        DisplayUtils.drawShadow((hotbarX - 1), (hotbarY - 1), 183.2F, 22.0F, 25, ColorUtils.rgba(0, 0, 0, 255), ColorUtils.rgba(0, 0, 0, 0));
        NonNullList<ItemStack> hotbarItems = this.mc.player.inventory.mainInventory;
        for (int i = 0; i < 9; i++) {
            int slotX = hotbarX + i * 20;
            int slotY = hotbarY;
            int slotColor = 1426063360;
            if (i == this.mc.player.inventory.currentItem)
                slotColor = 1439485132;
            DisplayUtils.drawRoundedRect(slotX, slotY, 22.0F, 20.0F, 3.0F, slotColor);
            ItemStack itemStack = (ItemStack)hotbarItems.get(i);
            if (!itemStack.isEmpty()) {
                this.mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, slotX + 2, slotY + 2);
                this.mc.getItemRenderer().renderItemOverlayIntoGUI(this.fontRenderer, itemStack, slotX + 2, slotY + 2, null);
            }
        }
        NonNullList<ItemStack> offhandItems = this.mc.player.inventory.offHandInventory;
        ItemStack offhandItem = (ItemStack)offhandItems.get(0);
        if (!offhandItem.isEmpty())
            for (int j = 0; j < 1; j++) {
                int slotX = hotbarX - 28 - j * 20;
                int slotY = hotbarY;
                int slotColor = 1426063360;
                DisplayUtils.drawRoundedRect(slotX, slotY, 20.0F, 20.0F, 3.0F, slotColor);
                drawStyledRect(slotX, slotY, 20.0F, 20.0F, 3.0F, 1.0F, 2130706432);
                ItemStack itemStack = (ItemStack)offhandItems.get(j);
                if (!itemStack.isEmpty()) {
                    this.mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, slotX + 2, slotY + 2);
                    this.mc.getItemRenderer().renderItemOverlayIntoGUI(this.fontRenderer, itemStack, slotX + 2, slotY + 2, null);
                }
            }
    }

    private void drawStyledRect(float x, float y, float width, float height, float radius, float borderWidth, int color) {
        Vector4i colors = new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(180, 1.0F), HUD.getColor(270, 1.0F));
        DisplayUtils.drawRoundedRect(x - borderWidth, y - borderWidth, width + borderWidth * 2.0F, height + borderWidth * 2.0F, new Vector4f(7.0F, 7.0F, 7.0F, 7.0F), colors);
        DisplayUtils.drawRoundedRect(x, y, width, height, radius, color);
    }
}
Годно
 
Начинающий
Статус
Оффлайн
Регистрация
7 Мар 2024
Сообщения
294
Реакции[?]
6
Поинты[?]
4K
Первая моя работа
Посмотреть вложение 277609 Хотбар подстраивающийся под темы под экспу 3.1, не нуждаюсь в попкорне :)
Java:
package im.expensive.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.FunctionRegister;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.vector.Vector4f;
import im.expensive.events.EventDisplay;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.utils.math.Vector4i;
import im.expensive.utils.render.ColorUtils;
import im.expensive.utils.render.DisplayUtils;

@FunctionRegister(name = "Hotbar", type = Category.Render)
public class Hotbar extends Function {
    private final Minecraft mc = Minecraft.getInstance();

    private final FontRenderer fontRenderer = this.mc.fontRenderer;

    private static Hotbar instance;

    private boolean state;

    public static Hotbar getInstance() {
        if (instance == null)
            instance = new Hotbar();
        return instance;
    }

    public void setState(boolean state) {
        this.state = state;
    }

    public boolean getState() {
        return this.state;
    }

    @Subscribe
    public void onDisplay(EventDisplay e) {
        if (e.getType() != EventDisplay.Type.POST)
            return;
        int hotbarX = (this.mc.getMainWindow().getScaledWidth() - 182) / 2;
        int hotbarY = this.mc.getMainWindow().getScaledHeight() - 22;
        drawStyledRect((hotbarX - 1), (hotbarY - 1), 183.2F, 25.0F, 3.5F, 1.0F, 2130706432);
        DisplayUtils.drawShadow((hotbarX - 1), (hotbarY - 1), 183.2F, 22.0F, 25, ColorUtils.rgba(0, 0, 0, 255), ColorUtils.rgba(0, 0, 0, 0));
        NonNullList<ItemStack> hotbarItems = this.mc.player.inventory.mainInventory;
        for (int i = 0; i < 9; i++) {
            int slotX = hotbarX + i * 20;
            int slotY = hotbarY;
            int slotColor = 1426063360;
            if (i == this.mc.player.inventory.currentItem)
                slotColor = 1439485132;
            DisplayUtils.drawRoundedRect(slotX, slotY, 22.0F, 20.0F, 3.0F, slotColor);
            ItemStack itemStack = (ItemStack)hotbarItems.get(i);
            if (!itemStack.isEmpty()) {
                this.mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, slotX + 2, slotY + 2);
                this.mc.getItemRenderer().renderItemOverlayIntoGUI(this.fontRenderer, itemStack, slotX + 2, slotY + 2, null);
            }
        }
        NonNullList<ItemStack> offhandItems = this.mc.player.inventory.offHandInventory;
        ItemStack offhandItem = (ItemStack)offhandItems.get(0);
        if (!offhandItem.isEmpty())
            for (int j = 0; j < 1; j++) {
                int slotX = hotbarX - 28 - j * 20;
                int slotY = hotbarY;
                int slotColor = 1426063360;
                DisplayUtils.drawRoundedRect(slotX, slotY, 20.0F, 20.0F, 3.0F, slotColor);
                drawStyledRect(slotX, slotY, 20.0F, 20.0F, 3.0F, 1.0F, 2130706432);
                ItemStack itemStack = (ItemStack)offhandItems.get(j);
                if (!itemStack.isEmpty()) {
                    this.mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, slotX + 2, slotY + 2);
                    this.mc.getItemRenderer().renderItemOverlayIntoGUI(this.fontRenderer, itemStack, slotX + 2, slotY + 2, null);
                }
            }
    }

    private void drawStyledRect(float x, float y, float width, float height, float radius, float borderWidth, int color) {
        Vector4i colors = new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(180, 1.0F), HUD.getColor(270, 1.0F));
        DisplayUtils.drawRoundedRect(x - borderWidth, y - borderWidth, width + borderWidth * 2.0F, height + borderWidth * 2.0F, new Vector4f(7.0F, 7.0F, 7.0F, 7.0F), colors);
        DisplayUtils.drawRoundedRect(x, y, width, height, radius, color);
    }
}
Даа, не проще же уже в классе хотбара добавить изменение модулем. Надо же херней позаниматся
 
Начинающий
Статус
Оффлайн
Регистрация
13 Сен 2023
Сообщения
119
Реакции[?]
1
Поинты[?]
1K
Первая моя работа
Посмотреть вложение 277609 Хотбар подстраивающийся под темы под экспу 3.1, не нуждаюсь в попкорне :)
Java:
package im.expensive.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.FunctionRegister;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.vector.Vector4f;
import im.expensive.events.EventDisplay;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.utils.math.Vector4i;
import im.expensive.utils.render.ColorUtils;
import im.expensive.utils.render.DisplayUtils;

@FunctionRegister(name = "Hotbar", type = Category.Render)
public class Hotbar extends Function {
    private final Minecraft mc = Minecraft.getInstance();

    private final FontRenderer fontRenderer = this.mc.fontRenderer;

    private static Hotbar instance;

    private boolean state;

    public static Hotbar getInstance() {
        if (instance == null)
            instance = new Hotbar();
        return instance;
    }

    public void setState(boolean state) {
        this.state = state;
    }

    public boolean getState() {
        return this.state;
    }

    @Subscribe
    public void onDisplay(EventDisplay e) {
        if (e.getType() != EventDisplay.Type.POST)
            return;
        int hotbarX = (this.mc.getMainWindow().getScaledWidth() - 182) / 2;
        int hotbarY = this.mc.getMainWindow().getScaledHeight() - 22;
        drawStyledRect((hotbarX - 1), (hotbarY - 1), 183.2F, 25.0F, 3.5F, 1.0F, 2130706432);
        DisplayUtils.drawShadow((hotbarX - 1), (hotbarY - 1), 183.2F, 22.0F, 25, ColorUtils.rgba(0, 0, 0, 255), ColorUtils.rgba(0, 0, 0, 0));
        NonNullList<ItemStack> hotbarItems = this.mc.player.inventory.mainInventory;
        for (int i = 0; i < 9; i++) {
            int slotX = hotbarX + i * 20;
            int slotY = hotbarY;
            int slotColor = 1426063360;
            if (i == this.mc.player.inventory.currentItem)
                slotColor = 1439485132;
            DisplayUtils.drawRoundedRect(slotX, slotY, 22.0F, 20.0F, 3.0F, slotColor);
            ItemStack itemStack = (ItemStack)hotbarItems.get(i);
            if (!itemStack.isEmpty()) {
                this.mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, slotX + 2, slotY + 2);
                this.mc.getItemRenderer().renderItemOverlayIntoGUI(this.fontRenderer, itemStack, slotX + 2, slotY + 2, null);
            }
        }
        NonNullList<ItemStack> offhandItems = this.mc.player.inventory.offHandInventory;
        ItemStack offhandItem = (ItemStack)offhandItems.get(0);
        if (!offhandItem.isEmpty())
            for (int j = 0; j < 1; j++) {
                int slotX = hotbarX - 28 - j * 20;
                int slotY = hotbarY;
                int slotColor = 1426063360;
                DisplayUtils.drawRoundedRect(slotX, slotY, 20.0F, 20.0F, 3.0F, slotColor);
                drawStyledRect(slotX, slotY, 20.0F, 20.0F, 3.0F, 1.0F, 2130706432);
                ItemStack itemStack = (ItemStack)offhandItems.get(j);
                if (!itemStack.isEmpty()) {
                    this.mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, slotX + 2, slotY + 2);
                    this.mc.getItemRenderer().renderItemOverlayIntoGUI(this.fontRenderer, itemStack, slotX + 2, slotY + 2, null);
                }
            }
    }

    private void drawStyledRect(float x, float y, float width, float height, float radius, float borderWidth, int color) {
        Vector4i colors = new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(180, 1.0F), HUD.getColor(270, 1.0F));
        DisplayUtils.drawRoundedRect(x - borderWidth, y - borderWidth, width + borderWidth * 2.0F, height + borderWidth * 2.0F, new Vector4f(7.0F, 7.0F, 7.0F, 7.0F), colors);
        DisplayUtils.drawRoundedRect(x, y, width, height, radius, color);
    }
}
1716831984984.png
:tonguewink:
 
Начинающий
Статус
Оффлайн
Регистрация
3 Сен 2023
Сообщения
217
Реакции[?]
3
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
21 Дек 2023
Сообщения
6
Реакции[?]
0
Поинты[?]
0
Для 1 работы не все так плохо ЕСЛИ ДЕЛАЛ САМ
Чутка рект выбранного слота кривой но исправить 2 секунды.
 
Начинающий
Статус
Оффлайн
Регистрация
20 Дек 2023
Сообщения
126
Реакции[?]
0
Поинты[?]
0
Первая моя работа
Посмотреть вложение 277609 Хотбар подстраивающийся под темы под экспу 3.1, не нуждаюсь в попкорне :)
Java:
package im.expensive.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.FunctionRegister;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.vector.Vector4f;
import im.expensive.events.EventDisplay;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.utils.math.Vector4i;
import im.expensive.utils.render.ColorUtils;
import im.expensive.utils.render.DisplayUtils;

@FunctionRegister(name = "Hotbar", type = Category.Render)
public class Hotbar extends Function {
    private final Minecraft mc = Minecraft.getInstance();

    private final FontRenderer fontRenderer = this.mc.fontRenderer;

    private static Hotbar instance;

    private boolean state;

    public static Hotbar getInstance() {
        if (instance == null)
            instance = new Hotbar();
        return instance;
    }

    public void setState(boolean state) {
        this.state = state;
    }

    public boolean getState() {
        return this.state;
    }

    @Subscribe
    public void onDisplay(EventDisplay e) {
        if (e.getType() != EventDisplay.Type.POST)
            return;
        int hotbarX = (this.mc.getMainWindow().getScaledWidth() - 182) / 2;
        int hotbarY = this.mc.getMainWindow().getScaledHeight() - 22;
        drawStyledRect((hotbarX - 1), (hotbarY - 1), 183.2F, 25.0F, 3.5F, 1.0F, 2130706432);
        DisplayUtils.drawShadow((hotbarX - 1), (hotbarY - 1), 183.2F, 22.0F, 25, ColorUtils.rgba(0, 0, 0, 255), ColorUtils.rgba(0, 0, 0, 0));
        NonNullList<ItemStack> hotbarItems = this.mc.player.inventory.mainInventory;
        for (int i = 0; i < 9; i++) {
            int slotX = hotbarX + i * 20;
            int slotY = hotbarY;
            int slotColor = 1426063360;
            if (i == this.mc.player.inventory.currentItem)
                slotColor = 1439485132;
            DisplayUtils.drawRoundedRect(slotX, slotY, 22.0F, 20.0F, 3.0F, slotColor);
            ItemStack itemStack = (ItemStack)hotbarItems.get(i);
            if (!itemStack.isEmpty()) {
                this.mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, slotX + 2, slotY + 2);
                this.mc.getItemRenderer().renderItemOverlayIntoGUI(this.fontRenderer, itemStack, slotX + 2, slotY + 2, null);
            }
        }
        NonNullList<ItemStack> offhandItems = this.mc.player.inventory.offHandInventory;
        ItemStack offhandItem = (ItemStack)offhandItems.get(0);
        if (!offhandItem.isEmpty())
            for (int j = 0; j < 1; j++) {
                int slotX = hotbarX - 28 - j * 20;
                int slotY = hotbarY;
                int slotColor = 1426063360;
                DisplayUtils.drawRoundedRect(slotX, slotY, 20.0F, 20.0F, 3.0F, slotColor);
                drawStyledRect(slotX, slotY, 20.0F, 20.0F, 3.0F, 1.0F, 2130706432);
                ItemStack itemStack = (ItemStack)offhandItems.get(j);
                if (!itemStack.isEmpty()) {
                    this.mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, slotX + 2, slotY + 2);
                    this.mc.getItemRenderer().renderItemOverlayIntoGUI(this.fontRenderer, itemStack, slotX + 2, slotY + 2, null);
                }
            }
    }

    private void drawStyledRect(float x, float y, float width, float height, float radius, float borderWidth, int color) {
        Vector4i colors = new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(180, 1.0F), HUD.getColor(270, 1.0F));
        DisplayUtils.drawRoundedRect(x - borderWidth, y - borderWidth, width + borderWidth * 2.0F, height + borderWidth * 2.0F, new Vector4f(7.0F, 7.0F, 7.0F, 7.0F), colors);
        DisplayUtils.drawRoundedRect(x, y, width, height, radius, color);
    }
}
фуриос момент:SMOrc:
 
Начинающий
Статус
Онлайн
Регистрация
12 Авг 2021
Сообщения
144
Реакции[?]
3
Поинты[?]
2K
Первая моя работа
Посмотреть вложение 277609 Хотбар подстраивающийся под темы под экспу 3.1, не нуждаюсь в попкорне :)
Java:
package im.expensive.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.FunctionRegister;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.vector.Vector4f;
import im.expensive.events.EventDisplay;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.utils.math.Vector4i;
import im.expensive.utils.render.ColorUtils;
import im.expensive.utils.render.DisplayUtils;

@FunctionRegister(name = "Hotbar", type = Category.Render)
public class Hotbar extends Function {
    private final Minecraft mc = Minecraft.getInstance();

    private final FontRenderer fontRenderer = this.mc.fontRenderer;

    private static Hotbar instance;

    private boolean state;

    public static Hotbar getInstance() {
        if (instance == null)
            instance = new Hotbar();
        return instance;
    }

    public void setState(boolean state) {
        this.state = state;
    }

    public boolean getState() {
        return this.state;
    }

    @Subscribe
    public void onDisplay(EventDisplay e) {
        if (e.getType() != EventDisplay.Type.POST)
            return;
        int hotbarX = (this.mc.getMainWindow().getScaledWidth() - 182) / 2;
        int hotbarY = this.mc.getMainWindow().getScaledHeight() - 22;
        drawStyledRect((hotbarX - 1), (hotbarY - 1), 183.2F, 25.0F, 3.5F, 1.0F, 2130706432);
        DisplayUtils.drawShadow((hotbarX - 1), (hotbarY - 1), 183.2F, 22.0F, 25, ColorUtils.rgba(0, 0, 0, 255), ColorUtils.rgba(0, 0, 0, 0));
        NonNullList<ItemStack> hotbarItems = this.mc.player.inventory.mainInventory;
        for (int i = 0; i < 9; i++) {
            int slotX = hotbarX + i * 20;
            int slotY = hotbarY;
            int slotColor = 1426063360;
            if (i == this.mc.player.inventory.currentItem)
                slotColor = 1439485132;
            DisplayUtils.drawRoundedRect(slotX, slotY, 22.0F, 20.0F, 3.0F, slotColor);
            ItemStack itemStack = (ItemStack)hotbarItems.get(i);
            if (!itemStack.isEmpty()) {
                this.mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, slotX + 2, slotY + 2);
                this.mc.getItemRenderer().renderItemOverlayIntoGUI(this.fontRenderer, itemStack, slotX + 2, slotY + 2, null);
            }
        }
        NonNullList<ItemStack> offhandItems = this.mc.player.inventory.offHandInventory;
        ItemStack offhandItem = (ItemStack)offhandItems.get(0);
        if (!offhandItem.isEmpty())
            for (int j = 0; j < 1; j++) {
                int slotX = hotbarX - 28 - j * 20;
                int slotY = hotbarY;
                int slotColor = 1426063360;
                DisplayUtils.drawRoundedRect(slotX, slotY, 20.0F, 20.0F, 3.0F, slotColor);
                drawStyledRect(slotX, slotY, 20.0F, 20.0F, 3.0F, 1.0F, 2130706432);
                ItemStack itemStack = (ItemStack)offhandItems.get(j);
                if (!itemStack.isEmpty()) {
                    this.mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, slotX + 2, slotY + 2);
                    this.mc.getItemRenderer().renderItemOverlayIntoGUI(this.fontRenderer, itemStack, slotX + 2, slotY + 2, null);
                }
            }
    }

    private void drawStyledRect(float x, float y, float width, float height, float radius, float borderWidth, int color) {
        Vector4i colors = new Vector4i(HUD.getColor(0, 1.0F), HUD.getColor(90, 1.0F), HUD.getColor(180, 1.0F), HUD.getColor(270, 1.0F));
        DisplayUtils.drawRoundedRect(x - borderWidth, y - borderWidth, width + borderWidth * 2.0F, height + borderWidth * 2.0F, new Vector4f(7.0F, 7.0F, 7.0F, 7.0F), colors);
        DisplayUtils.drawRoundedRect(x, y, width, height, radius, color);
    }
}
ну для первой работы неплохо
 
Начинающий
Статус
Оффлайн
Регистрация
1 Май 2024
Сообщения
130
Реакции[?]
1
Поинты[?]
1K
просто переделал с Furios под expensive может уже весь сурс фуриуса сольёшь? ток передланый под экспу
 
Сверху Снизу