• Я зарабатываю 100 000 RUB / месяц на этом сайте!

    А знаешь как? Я всего-лишь публикую (создаю темы), а админ мне платит. Трачу деньги на мороженое, робуксы и сервера в Minecraft. А ещё на паль из Китая. 

    Хочешь так же? Пиши и узнавай условия: https://t.me/alex_redact
    Реклама: https://t.me/yougame_official

Визуальная часть MainScreen Akrien beta 1.12.2

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2025
Сообщения
71
Реакции
1
Выберите загрузчик игры
  1. Vanilla
  2. OptiFine
ss
1751549064786.png

code
MainScreen:
Expand Collapse Copy
package expensive.display.mainmenu;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import expensive.main.Expensive;
import expensive.util.Normal.ClientFonts;
import expensive.util.client.main.ClientUtil;
import expensive.util.client.main.IMinecraft;
import expensive.util.client.main.Vec2i;
import expensive.util.math.main.MathUtil;
import expensive.util.math.main.StopWatch;
import expensive.util.visual.main.color.ColorUtils;
import expensive.util.visual.main.display.DisplayUtils;
import expensive.util.visual.blur.KawaseBlur;
import expensive.util.visual.components.Stencil;
import expensive.util.visual.main.fonts.Fonts;
import lombok.AllArgsConstructor;
import lombok.Getter;
import net.minecraft.client.MainWindow;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.*;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.text.ITextComponent;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ThreadLocalRandom;


public class MainScreen extends Screen implements IMinecraft {
    public MainScreen() {
        super(ITextComponent.getTextComponentOrEmpty(""));

    }


    private final List<Button> buttons = new ArrayList<>();

    @Override
    public void init(Minecraft minecraft, int width, int height) {
        super.init(minecraft, width, height);
        float widthButton = 350 / 2f;
        float spacing = -140;
        int buttonsCount = 4;

        float totalWidth = buttonsCount * widthButton + (buttonsCount - 1) * spacing;

        float startX = (ClientUtil.calc(width) - totalWidth) / 2f;
        float y = Math.round(ClientUtil.calc(height) / 39f);

        buttons.clear();

        float x = startX;

        buttons.add(new Button(
                x, y, widthButton, 68 / 2f,
                new ResourceLocation("eva/images/mainmenu/1.png"),
                () -> mc.displayGuiScreen(new WorldSelectionScreen(this))
        ));

        x += widthButton + spacing;

        buttons.add(new Button(
                x, y, widthButton, 68 / 2f,
                new ResourceLocation("eva/images/mainmenu/multiplayer.png"),
                () -> mc.displayGuiScreen(new MultiplayerScreen(this))
        ));

        x += widthButton + spacing;

        buttons.add(new Button(
                x, y, widthButton, 68 / 2f,
                new ResourceLocation("eva/images/mainmenu/options.png"),
                () -> mc.displayGuiScreen(new OptionsScreen(this, mc.gameSettings))
        ));

        x += widthButton + spacing;

        buttons.add(new Button(
                x, y, widthButton, 68 / 2f,
                new ResourceLocation("icons/exit.png"),
                mc::shutdownMinecraftApplet
        ));
    }



    @Override
    public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
        super.render(matrixStack, mouseX, mouseY, partialTicks);


        MainWindow mainWindow = mc.getMainWindow();
        int windowWidth = ClientUtil.calc(mainWindow.getScaledWidth());
        int windowHeight = ClientUtil.calc(mainWindow.getScaledHeight());

        int logoWidth = 1920 / 2;
        int logoHeight = 1080 / 2;

        int xLogo = (windowWidth - logoWidth) / 2;
        int yLogo = (windowHeight - logoHeight) / 2 + 50;
        boolean small = mainWindow.getWidth() < 900 && mainWindow.getHeight() < 900;
        if (small) {
            yLogo += 50;
        }

        mc.gameRenderer.setupOverlayRendering(2);
        DisplayUtils.drawRoundedRect(0, 0, 1000, 1000, 0, ColorUtils.rgba(200, 200, 200, 255));


        DisplayUtils.drawShadow(
                63,
                16,
                815,
                26,
                8,
                ColorUtils.rgba(21, 21, 21, 255)
        );

        DisplayUtils.drawRoundedRect(
                60,
                14,
                820,
                30,
                6,
                ColorUtils.rgba(255, 255, 255, 255)
        );

        DisplayUtils.drawShadow(
                63,
                61,
                815,
                28,
                7,
                ColorUtils.rgba(21, 21, 21, 255)
        );

        DisplayUtils.drawRoundedRect(
                60,
                60,
                820,
                30,
                6,
                ColorUtils.rgba(60, 100, 255, 255) 
        );
        drawButtons(matrixStack, mouseX, mouseY, partialTicks);
        ClientFonts.msBold[24].drawString(matrixStack,"AKRIEN",70,24,ColorUtils.rgba(0,0,0,255));

        ClientFonts.msBold[17].drawString(matrixStack,"BetaUser",795,22,ColorUtils.rgba(60, 100, 255, 255));

        ClientFonts.msBold[14].drawString(matrixStack,"UID: 1",815,32,ColorUtils.rgba(150, 150, 150, 255));

        ClientFonts.msBold[18].drawString(matrixStack,"Добро пожаловать в Akrien Beta. Скоро на этой странице что-то появится :)",70,72,ColorUtils.rgba(255,255,255,255));
        mc.gameRenderer.setupOverlayRendering();
    }



    @Override
    public boolean mouseClicked(double mouseX, double mouseY, int button) {
        Vec2i fixed = ClientUtil.getMouse((int) mouseX, (int) mouseY);
        buttons.forEach(b -> b.click(fixed.getX(), fixed.getY(), button));
        return super.mouseClicked(mouseX, mouseY, button);
    }

    private void drawButtons(MatrixStack stack, int mX, int mY, float pt) {

        buttons.forEach(b -> b.render(stack, mX, mY, pt));
    }



    @AllArgsConstructor
    private class Button {
        @Getter
        private final float x, y, width, height;
        private ResourceLocation icon;
        private Runnable action;

        public void render(MatrixStack stack, int mouseX, int mouseY, float pt) {
            
            mc.getTextureManager().bindTexture(icon);
                GlStateManager.color4f(0, 0, 0, 1);
            int iconSize = (int) (height - 18);
            blit(stack, (int)(x + (width - iconSize) / 2), (int)(y + (height - iconSize) / 2), 0, 0, iconSize, iconSize, iconSize, iconSize);
        }

        public void click(int mouseX, int mouseY, int button) {
            if (MathUtil.isHovered(mouseX, mouseY, x, y, width, height)) {
                action.run();
            }
        }
    }

}

асетов у меня нету, чуть баганные кнопки
 
годно, жалко ассетов ниту
 
ss
Посмотреть вложение 310396
code
MainScreen:
Expand Collapse Copy
package expensive.display.mainmenu;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import expensive.main.Expensive;
import expensive.util.Normal.ClientFonts;
import expensive.util.client.main.ClientUtil;
import expensive.util.client.main.IMinecraft;
import expensive.util.client.main.Vec2i;
import expensive.util.math.main.MathUtil;
import expensive.util.math.main.StopWatch;
import expensive.util.visual.main.color.ColorUtils;
import expensive.util.visual.main.display.DisplayUtils;
import expensive.util.visual.blur.KawaseBlur;
import expensive.util.visual.components.Stencil;
import expensive.util.visual.main.fonts.Fonts;
import lombok.AllArgsConstructor;
import lombok.Getter;
import net.minecraft.client.MainWindow;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.*;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.text.ITextComponent;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ThreadLocalRandom;


public class MainScreen extends Screen implements IMinecraft {
    public MainScreen() {
        super(ITextComponent.getTextComponentOrEmpty(""));

    }


    private final List<Button> buttons = new ArrayList<>();

    @Override
    public void init(Minecraft minecraft, int width, int height) {
        super.init(minecraft, width, height);
        float widthButton = 350 / 2f;
        float spacing = -140;
        int buttonsCount = 4;

        float totalWidth = buttonsCount * widthButton + (buttonsCount - 1) * spacing;

        float startX = (ClientUtil.calc(width) - totalWidth) / 2f;
        float y = Math.round(ClientUtil.calc(height) / 39f);

        buttons.clear();

        float x = startX;

        buttons.add(new Button(
                x, y, widthButton, 68 / 2f,
                new ResourceLocation("eva/images/mainmenu/1.png"),
                () -> mc.displayGuiScreen(new WorldSelectionScreen(this))
        ));

        x += widthButton + spacing;

        buttons.add(new Button(
                x, y, widthButton, 68 / 2f,
                new ResourceLocation("eva/images/mainmenu/multiplayer.png"),
                () -> mc.displayGuiScreen(new MultiplayerScreen(this))
        ));

        x += widthButton + spacing;

        buttons.add(new Button(
                x, y, widthButton, 68 / 2f,
                new ResourceLocation("eva/images/mainmenu/options.png"),
                () -> mc.displayGuiScreen(new OptionsScreen(this, mc.gameSettings))
        ));

        x += widthButton + spacing;

        buttons.add(new Button(
                x, y, widthButton, 68 / 2f,
                new ResourceLocation("icons/exit.png"),
                mc::shutdownMinecraftApplet
        ));
    }



    @Override
    public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
        super.render(matrixStack, mouseX, mouseY, partialTicks);


        MainWindow mainWindow = mc.getMainWindow();
        int windowWidth = ClientUtil.calc(mainWindow.getScaledWidth());
        int windowHeight = ClientUtil.calc(mainWindow.getScaledHeight());

        int logoWidth = 1920 / 2;
        int logoHeight = 1080 / 2;

        int xLogo = (windowWidth - logoWidth) / 2;
        int yLogo = (windowHeight - logoHeight) / 2 + 50;
        boolean small = mainWindow.getWidth() < 900 && mainWindow.getHeight() < 900;
        if (small) {
            yLogo += 50;
        }

        mc.gameRenderer.setupOverlayRendering(2);
        DisplayUtils.drawRoundedRect(0, 0, 1000, 1000, 0, ColorUtils.rgba(200, 200, 200, 255));


        DisplayUtils.drawShadow(
                63,
                16,
                815,
                26,
                8,
                ColorUtils.rgba(21, 21, 21, 255)
        );

        DisplayUtils.drawRoundedRect(
                60,
                14,
                820,
                30,
                6,
                ColorUtils.rgba(255, 255, 255, 255)
        );

        DisplayUtils.drawShadow(
                63,
                61,
                815,
                28,
                7,
                ColorUtils.rgba(21, 21, 21, 255)
        );

        DisplayUtils.drawRoundedRect(
                60,
                60,
                820,
                30,
                6,
                ColorUtils.rgba(60, 100, 255, 255)
        );
        drawButtons(matrixStack, mouseX, mouseY, partialTicks);
        ClientFonts.msBold[24].drawString(matrixStack,"AKRIEN",70,24,ColorUtils.rgba(0,0,0,255));

        ClientFonts.msBold[17].drawString(matrixStack,"BetaUser",795,22,ColorUtils.rgba(60, 100, 255, 255));

        ClientFonts.msBold[14].drawString(matrixStack,"UID: 1",815,32,ColorUtils.rgba(150, 150, 150, 255));

        ClientFonts.msBold[18].drawString(matrixStack,"Добро пожаловать в Akrien Beta. Скоро на этой странице что-то появится :)",70,72,ColorUtils.rgba(255,255,255,255));
        mc.gameRenderer.setupOverlayRendering();
    }



    @Override
    public boolean mouseClicked(double mouseX, double mouseY, int button) {
        Vec2i fixed = ClientUtil.getMouse((int) mouseX, (int) mouseY);
        buttons.forEach(b -> b.click(fixed.getX(), fixed.getY(), button));
        return super.mouseClicked(mouseX, mouseY, button);
    }

    private void drawButtons(MatrixStack stack, int mX, int mY, float pt) {

        buttons.forEach(b -> b.render(stack, mX, mY, pt));
    }



    @AllArgsConstructor
    private class Button {
        @Getter
        private final float x, y, width, height;
        private ResourceLocation icon;
        private Runnable action;

        public void render(MatrixStack stack, int mouseX, int mouseY, float pt) {
          
            mc.getTextureManager().bindTexture(icon);
                GlStateManager.color4f(0, 0, 0, 1);
            int iconSize = (int) (height - 18);
            blit(stack, (int)(x + (width - iconSize) / 2), (int)(y + (height - iconSize) / 2), 0, 0, iconSize, iconSize, iconSize, iconSize);
        }

        public void click(int mouseX, int mouseY, int button) {
            if (MathUtil.isHovered(mouseX, mouseY, x, y, width, height)) {
                action.run();
            }
        }
    }

}

асетов у меня нету, чуть баганные кнопки
пару штрихов в виде логотипа серого на фоне и ваще кайф, +реп
 
int logoWidth = 1920 / 2; int logoHeight = 1080 / 2;
Вы че курите нахуй кубоголовые? Нахуя тебе тогда коде это?
MainWindow mainWindow = mc.getMainWindow(); int windowWidth = ClientUtil.calc(mainWindow.getScaledWidth()); int windowHeight = ClientUtil.calc(mainWindow.getScaledHeight());
boolean small = mainWindow.getWidth() < 900 && mainWindow.getHeight() < 900; if (small) { yLogo += 50; }
АХАХАХАХААХХАХААХАХХААХХАХАХА
Вы такому кодстайлу учитесь у чата гпт?
 
Вы че курите нахуй кубоголовые? Нахуя тебе тогда коде это?


АХАХАХАХААХХАХААХАХХААХХАХАХА

Вы такому кодстайлу учитесь у чата гпт?
это не мой код, а дед инсайда
Вы че курите нахуй кубоголовые? Нахуя тебе тогда коде это?


АХАХАХАХААХХАХААХАХХААХХАХАХА

Вы такому кодстайлу учитесь у чата гпт?
это код еще с экспы, был рект экспы я взял я про копи пастил
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ss
Посмотреть вложение 310396
code
MainScreen:
Expand Collapse Copy
package expensive.display.mainmenu;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import expensive.main.Expensive;
import expensive.util.Normal.ClientFonts;
import expensive.util.client.main.ClientUtil;
import expensive.util.client.main.IMinecraft;
import expensive.util.client.main.Vec2i;
import expensive.util.math.main.MathUtil;
import expensive.util.math.main.StopWatch;
import expensive.util.visual.main.color.ColorUtils;
import expensive.util.visual.main.display.DisplayUtils;
import expensive.util.visual.blur.KawaseBlur;
import expensive.util.visual.components.Stencil;
import expensive.util.visual.main.fonts.Fonts;
import lombok.AllArgsConstructor;
import lombok.Getter;
import net.minecraft.client.MainWindow;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.*;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.text.ITextComponent;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ThreadLocalRandom;


public class MainScreen extends Screen implements IMinecraft {
    public MainScreen() {
        super(ITextComponent.getTextComponentOrEmpty(""));

    }


    private final List<Button> buttons = new ArrayList<>();

    @Override
    public void init(Minecraft minecraft, int width, int height) {
        super.init(minecraft, width, height);
        float widthButton = 350 / 2f;
        float spacing = -140;
        int buttonsCount = 4;

        float totalWidth = buttonsCount * widthButton + (buttonsCount - 1) * spacing;

        float startX = (ClientUtil.calc(width) - totalWidth) / 2f;
        float y = Math.round(ClientUtil.calc(height) / 39f);

        buttons.clear();

        float x = startX;

        buttons.add(new Button(
                x, y, widthButton, 68 / 2f,
                new ResourceLocation("eva/images/mainmenu/1.png"),
                () -> mc.displayGuiScreen(new WorldSelectionScreen(this))
        ));

        x += widthButton + spacing;

        buttons.add(new Button(
                x, y, widthButton, 68 / 2f,
                new ResourceLocation("eva/images/mainmenu/multiplayer.png"),
                () -> mc.displayGuiScreen(new MultiplayerScreen(this))
        ));

        x += widthButton + spacing;

        buttons.add(new Button(
                x, y, widthButton, 68 / 2f,
                new ResourceLocation("eva/images/mainmenu/options.png"),
                () -> mc.displayGuiScreen(new OptionsScreen(this, mc.gameSettings))
        ));

        x += widthButton + spacing;

        buttons.add(new Button(
                x, y, widthButton, 68 / 2f,
                new ResourceLocation("icons/exit.png"),
                mc::shutdownMinecraftApplet
        ));
    }



    @Override
    public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
        super.render(matrixStack, mouseX, mouseY, partialTicks);


        MainWindow mainWindow = mc.getMainWindow();
        int windowWidth = ClientUtil.calc(mainWindow.getScaledWidth());
        int windowHeight = ClientUtil.calc(mainWindow.getScaledHeight());

        int logoWidth = 1920 / 2;
        int logoHeight = 1080 / 2;

        int xLogo = (windowWidth - logoWidth) / 2;
        int yLogo = (windowHeight - logoHeight) / 2 + 50;
        boolean small = mainWindow.getWidth() < 900 && mainWindow.getHeight() < 900;
        if (small) {
            yLogo += 50;
        }

        mc.gameRenderer.setupOverlayRendering(2);
        DisplayUtils.drawRoundedRect(0, 0, 1000, 1000, 0, ColorUtils.rgba(200, 200, 200, 255));


        DisplayUtils.drawShadow(
                63,
                16,
                815,
                26,
                8,
                ColorUtils.rgba(21, 21, 21, 255)
        );

        DisplayUtils.drawRoundedRect(
                60,
                14,
                820,
                30,
                6,
                ColorUtils.rgba(255, 255, 255, 255)
        );

        DisplayUtils.drawShadow(
                63,
                61,
                815,
                28,
                7,
                ColorUtils.rgba(21, 21, 21, 255)
        );

        DisplayUtils.drawRoundedRect(
                60,
                60,
                820,
                30,
                6,
                ColorUtils.rgba(60, 100, 255, 255)
        );
        drawButtons(matrixStack, mouseX, mouseY, partialTicks);
        ClientFonts.msBold[24].drawString(matrixStack,"AKRIEN",70,24,ColorUtils.rgba(0,0,0,255));

        ClientFonts.msBold[17].drawString(matrixStack,"BetaUser",795,22,ColorUtils.rgba(60, 100, 255, 255));

        ClientFonts.msBold[14].drawString(matrixStack,"UID: 1",815,32,ColorUtils.rgba(150, 150, 150, 255));

        ClientFonts.msBold[18].drawString(matrixStack,"Добро пожаловать в Akrien Beta. Скоро на этой странице что-то появится :)",70,72,ColorUtils.rgba(255,255,255,255));
        mc.gameRenderer.setupOverlayRendering();
    }



    @Override
    public boolean mouseClicked(double mouseX, double mouseY, int button) {
        Vec2i fixed = ClientUtil.getMouse((int) mouseX, (int) mouseY);
        buttons.forEach(b -> b.click(fixed.getX(), fixed.getY(), button));
        return super.mouseClicked(mouseX, mouseY, button);
    }

    private void drawButtons(MatrixStack stack, int mX, int mY, float pt) {

        buttons.forEach(b -> b.render(stack, mX, mY, pt));
    }



    @AllArgsConstructor
    private class Button {
        @Getter
        private final float x, y, width, height;
        private ResourceLocation icon;
        private Runnable action;

        public void render(MatrixStack stack, int mouseX, int mouseY, float pt) {
           
            mc.getTextureManager().bindTexture(icon);
                GlStateManager.color4f(0, 0, 0, 1);
            int iconSize = (int) (height - 18);
            blit(stack, (int)(x + (width - iconSize) / 2), (int)(y + (height - iconSize) / 2), 0, 0, iconSize, iconSize, iconSize, iconSize);
        }

        public void click(int mouseX, int mouseY, int button) {
            if (MathUtil.isHovered(mouseX, mouseY, x, y, width, height)) {
                action.run();
            }
        }
    }

}

асетов у меня нету, чуть баганные кнопки
наш сланяра красавчiк марат
 
по факту реализация хуйня идея хороша)
 
ss
Посмотреть вложение 310396
code
MainScreen:
Expand Collapse Copy
package expensive.display.mainmenu;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import expensive.main.Expensive;
import expensive.util.Normal.ClientFonts;
import expensive.util.client.main.ClientUtil;
import expensive.util.client.main.IMinecraft;
import expensive.util.client.main.Vec2i;
import expensive.util.math.main.MathUtil;
import expensive.util.math.main.StopWatch;
import expensive.util.visual.main.color.ColorUtils;
import expensive.util.visual.main.display.DisplayUtils;
import expensive.util.visual.blur.KawaseBlur;
import expensive.util.visual.components.Stencil;
import expensive.util.visual.main.fonts.Fonts;
import lombok.AllArgsConstructor;
import lombok.Getter;
import net.minecraft.client.MainWindow;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.*;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.text.ITextComponent;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ThreadLocalRandom;


public class MainScreen extends Screen implements IMinecraft {
    public MainScreen() {
        super(ITextComponent.getTextComponentOrEmpty(""));

    }


    private final List<Button> buttons = new ArrayList<>();

    @Override
    public void init(Minecraft minecraft, int width, int height) {
        super.init(minecraft, width, height);
        float widthButton = 350 / 2f;
        float spacing = -140;
        int buttonsCount = 4;

        float totalWidth = buttonsCount * widthButton + (buttonsCount - 1) * spacing;

        float startX = (ClientUtil.calc(width) - totalWidth) / 2f;
        float y = Math.round(ClientUtil.calc(height) / 39f);

        buttons.clear();

        float x = startX;

        buttons.add(new Button(
                x, y, widthButton, 68 / 2f,
                new ResourceLocation("eva/images/mainmenu/1.png"),
                () -> mc.displayGuiScreen(new WorldSelectionScreen(this))
        ));

        x += widthButton + spacing;

        buttons.add(new Button(
                x, y, widthButton, 68 / 2f,
                new ResourceLocation("eva/images/mainmenu/multiplayer.png"),
                () -> mc.displayGuiScreen(new MultiplayerScreen(this))
        ));

        x += widthButton + spacing;

        buttons.add(new Button(
                x, y, widthButton, 68 / 2f,
                new ResourceLocation("eva/images/mainmenu/options.png"),
                () -> mc.displayGuiScreen(new OptionsScreen(this, mc.gameSettings))
        ));

        x += widthButton + spacing;

        buttons.add(new Button(
                x, y, widthButton, 68 / 2f,
                new ResourceLocation("icons/exit.png"),
                mc::shutdownMinecraftApplet
        ));
    }



    @Override
    public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
        super.render(matrixStack, mouseX, mouseY, partialTicks);


        MainWindow mainWindow = mc.getMainWindow();
        int windowWidth = ClientUtil.calc(mainWindow.getScaledWidth());
        int windowHeight = ClientUtil.calc(mainWindow.getScaledHeight());

        int logoWidth = 1920 / 2;
        int logoHeight = 1080 / 2;

        int xLogo = (windowWidth - logoWidth) / 2;
        int yLogo = (windowHeight - logoHeight) / 2 + 50;
        boolean small = mainWindow.getWidth() < 900 && mainWindow.getHeight() < 900;
        if (small) {
            yLogo += 50;
        }

        mc.gameRenderer.setupOverlayRendering(2);
        DisplayUtils.drawRoundedRect(0, 0, 1000, 1000, 0, ColorUtils.rgba(200, 200, 200, 255));


        DisplayUtils.drawShadow(
                63,
                16,
                815,
                26,
                8,
                ColorUtils.rgba(21, 21, 21, 255)
        );

        DisplayUtils.drawRoundedRect(
                60,
                14,
                820,
                30,
                6,
                ColorUtils.rgba(255, 255, 255, 255)
        );

        DisplayUtils.drawShadow(
                63,
                61,
                815,
                28,
                7,
                ColorUtils.rgba(21, 21, 21, 255)
        );

        DisplayUtils.drawRoundedRect(
                60,
                60,
                820,
                30,
                6,
                ColorUtils.rgba(60, 100, 255, 255)
        );
        drawButtons(matrixStack, mouseX, mouseY, partialTicks);
        ClientFonts.msBold[24].drawString(matrixStack,"AKRIEN",70,24,ColorUtils.rgba(0,0,0,255));

        ClientFonts.msBold[17].drawString(matrixStack,"BetaUser",795,22,ColorUtils.rgba(60, 100, 255, 255));

        ClientFonts.msBold[14].drawString(matrixStack,"UID: 1",815,32,ColorUtils.rgba(150, 150, 150, 255));

        ClientFonts.msBold[18].drawString(matrixStack,"Добро пожаловать в Akrien Beta. Скоро на этой странице что-то появится :)",70,72,ColorUtils.rgba(255,255,255,255));
        mc.gameRenderer.setupOverlayRendering();
    }



    @Override
    public boolean mouseClicked(double mouseX, double mouseY, int button) {
        Vec2i fixed = ClientUtil.getMouse((int) mouseX, (int) mouseY);
        buttons.forEach(b -> b.click(fixed.getX(), fixed.getY(), button));
        return super.mouseClicked(mouseX, mouseY, button);
    }

    private void drawButtons(MatrixStack stack, int mX, int mY, float pt) {

        buttons.forEach(b -> b.render(stack, mX, mY, pt));
    }



    @AllArgsConstructor
    private class Button {
        @Getter
        private final float x, y, width, height;
        private ResourceLocation icon;
        private Runnable action;

        public void render(MatrixStack stack, int mouseX, int mouseY, float pt) {
           
            mc.getTextureManager().bindTexture(icon);
                GlStateManager.color4f(0, 0, 0, 1);
            int iconSize = (int) (height - 18);
            blit(stack, (int)(x + (width - iconSize) / 2), (int)(y + (height - iconSize) / 2), 0, 0, iconSize, iconSize, iconSize, iconSize);
        }

        public void click(int mouseX, int mouseY, int button) {
            if (MathUtil.isHovered(mouseX, mouseY, x, y, width, height)) {
                action.run();
            }
        }
    }

}

асетов у меня нету, чуть баганные кнопки
Ладно 🐺
 
Назад
Сверху Снизу