Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
дак норм же
нетунормас а прокси тоже есть?
Сливай альт менеджер, у меня хоть есть, но людям пригодиться. Тут только закруглить бы всё... А так неплохойКрч надо в images папке, где assets/expensive закинуть туда свой логотип, либо экспы, и переимновать его в log.png можешь в свою фотку переимновать если умеешь, и так то все
Спасибо
Могу так то слить, но это с юга альт мененджер, переделанныйПосмотреть вложение 327991
годно, спастил, слегка переделав под себя и свою базуВсем дарова, сделал скид MainMenu вексайда(noad), шрифт сами найдете
Не обращайте на лого дебуды(noad), думаю норм!
Пожалуйста, авторизуйтесь для просмотра ссылки.
MainMenu WexSide (noad):package im.expensive.ui.mainmenu; import com.mojang.blaze3d.matrix.MatrixStack; import im.expensive.Expensive; import im.expensive.utils.client.IMinecraft; import im.expensive.utils.render.ColorUtils; import im.expensive.utils.render.DisplayUtils; import im.expensive.utils.render.font.Fonts; import net.minecraft.client.gui.AbstractGui; import net.minecraft.client.gui.screen.MultiplayerScreen; import net.minecraft.client.gui.screen.OptionsScreen; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.WorldSelectionScreen; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; import java.util.ArrayList; import java.util.List; public class MainScreen extends Screen implements IMinecraft { private final ResourceLocation logo = new ResourceLocation("expensive/images/log.png"); private final List<Button> buttons = new ArrayList<>(); private final float NAV_OFFSET = 75f; private final float NAV_GAP = 80f; public MainScreen() { super(ITextComponent.getTextComponentOrEmpty("")); } @Override protected void init() { buttons.clear(); float btnWidth = 230f; float btnHeight = 30f; float spacing = 8f; float centerX = width / 2f - btnWidth / 2f; float startY = height / 2f - 45; buttons.add(new Button(centerX, startY, btnWidth, btnHeight, "Singleplayer", () -> mc.displayGuiScreen(new WorldSelectionScreen(this)), false)); buttons.add(new Button(centerX, startY + btnHeight + spacing, btnWidth, btnHeight, "Multiplayer", () -> mc.displayGuiScreen(new MultiplayerScreen(this)), false)); buttons.add(new Button(centerX, startY + (btnHeight + spacing) * 2 + 2, btnWidth, btnHeight, "Swap Accounts", () -> { Expensive.getInstance().getAltWidget().open = true; }, true)); } @Override public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { DisplayUtils.drawRect(0, 0, width, height, ColorUtils.rgb(10, 11, 14)); float centerX = width / 2f; float centerY = height / 2f; drawPlayerInfo(matrixStack); float logoSize = 22; DisplayUtils.drawImage(logo, centerX - logoSize / 2f, centerY - 115, logoSize, logoSize, -1); String name = mc.getSession().getUsername(); Fonts.inter_wex.drawCenteredText(matrixStack, "Good time of day, " + name, centerX, centerY - 85, ColorUtils.rgb(210, 210, 215), 9.5f); Fonts.inter_wex.drawCenteredText(matrixStack, "Welcome to Fallen, the best Minecraft client.", centerX, centerY - 72, ColorUtils.rgb(130, 131, 135), 7.5f); buttons.forEach(btn -> btn.render(matrixStack, mouseX, mouseY)); renderNav(matrixStack, mouseX, mouseY, centerY + NAV_OFFSET); float footerY = height - 25; Fonts.inter_wex.drawCenteredText(matrixStack, "By logging into your account you agree to all of our policies,", centerX, footerY, ColorUtils.rgb(55, 56, 60), 6f); Fonts.inter_wex.drawCenteredText(matrixStack, "including our Privacy Policy and Terms of Service", centerX, footerY + 9, ColorUtils.rgb(55, 56, 60), 6f); if (Expensive.getInstance().getAltWidget().open) { Expensive.getInstance().getAltWidget().render(matrixStack, mouseX, mouseY); } super.render(matrixStack, mouseX, mouseY, partialTicks); } @Override public boolean charTyped(char codePoint, int modifiers) { if (Expensive.getInstance().getAltWidget().open) { Expensive.getInstance().getAltWidget().onChar(codePoint); return true; } return super.charTyped(codePoint, modifiers); } @Override public boolean keyPressed(int keyCode, int scanCode, int modifiers) { if (Expensive.getInstance().getAltWidget().open) { if (keyCode == 256) { Expensive.getInstance().getAltWidget().open = false; return true; } Expensive.getInstance().getAltWidget().onKey(keyCode); return true; } return super.keyPressed(keyCode, scanCode, modifiers); } @Override public boolean mouseClicked(double mouseX, double mouseY, int button) { if (Expensive.getInstance().getAltWidget().open) { Expensive.getInstance().getAltWidget().click((int) mouseX, (int) mouseY, button); return true; } buttons.forEach(btn -> btn.click((int) mouseX, (int) mouseY)); float yNav = height / 2f + NAV_OFFSET; if (mouseY > yNav - 6 && mouseY < yNav + 6) { if (Math.abs(mouseX - (width / 2f - NAV_GAP)) < 30) mc.displayGuiScreen(new OptionsScreen(this, mc.gameSettings)); if (Math.abs(mouseX - (width / 2f + NAV_GAP)) < 30) mc.shutdown(); } return super.mouseClicked(mouseX, mouseY, button); } @Override public boolean mouseScrolled(double mouseX, double mouseY, double delta) { if (Expensive.getInstance().getAltWidget().open) { Expensive.getInstance().getAltWidget().handleMouseScroll(delta); return true; } return super.mouseScrolled(mouseX, mouseY, delta); } private void drawPlayerInfo(MatrixStack stack) { float x = 12, y = 12, size = 18, round = 4; ResourceLocation skin = mc.player != null ? mc.player.getLocationSkin() : net.minecraft.client.resources.DefaultPlayerSkin.getDefaultSkin(mc.getSession().getProfile().getId()); im.expensive.utils.render.Stencil.initStencilToWrite(); DisplayUtils.drawRoundedRect(x, y, size, size, round, -1); im.expensive.utils.render.Stencil.readStencilBuffer(1); mc.getTextureManager().bindTexture(skin); AbstractGui.blit(stack, (int)x, (int)y, (int)size, (int)size, 8, 8, 8, 8, 64, 64); AbstractGui.blit(stack, (int)x, (int)y, (int)size, (int)size, 40, 8, 8, 8, 64, 64); im.expensive.utils.render.Stencil.uninitStencilBuffer(); float textX = x + size + 6; Fonts.inter_wex.drawText(stack, "Logged in as", textX, y + 1, ColorUtils.rgb(130, 131, 135), 5.5f); Fonts.inter_wex.drawText(stack, mc.getSession().getUsername(), textX, y + 9, -1, 7.5f); } private void renderNav(MatrixStack stack, int mx, int my, float y) { String[] labels = {"Options", "Proxies", "Exit"}; float startX = width / 2f - NAV_GAP; for (int i = 0; i < labels.length; i++) { float x = startX + (i * NAV_GAP); boolean hovered = mx > x - 25 && mx < x + 25 && my > y - 6 && my < y + 6; int color = hovered ? -1 : ColorUtils.rgb(90, 92, 98); Fonts.inter_wex.drawCenteredText(stack, labels[i], x, y, color, 8f); } } private class Button { float x, y, w, h; String text; Runnable action; boolean orange; public Button(float x, float y, float w, float h, String text, Runnable action, boolean orange) { this.x = x; this.y = y; this.w = w; this.h = h; this.text = text; this.action = action; this.orange = orange; } public void render(MatrixStack stack, int mx, int my) { boolean hovered = mx > x && mx < x + w && my > y && my < y + h; int color = orange ? ColorUtils.rgb(212, 95, 12) : ColorUtils.rgb(20, 23, 29); if (hovered) color = orange ? ColorUtils.rgb(235, 105, 15) : ColorUtils.rgb(28, 31, 38); DisplayUtils.drawRoundedRect(x, y, w, h, 10f, color); int txtColor = orange ? -1 : ColorUtils.rgb(150, 152, 158); if (hovered && !orange) txtColor = -1; Fonts.inter_wex.drawCenteredText(stack, text, x + w / 2f, y + h / 2f - 3.5f, txtColor, 7.5f); } public void click(int mx, int my) { if (mx > x && mx < x + w && my > y && my < y + h) action.run(); } } }
Че то не вижу 10 версий скида векса, и работа нормальнаяудали не позорься ето уже 10 раз выкладовали и причем там версия лучше твоей пон
Че то не вижу 10 версий скида векса, и работа нормальная
Я не пиздил,я сам писал, просто захотелось тоже скид векса написать мейн меню,ток на экспу, но не 10 же версий,а одна (кроме моей)не позорься. И работа у него ужасная, тут намного лучше спизжено, почти 1в1(или вообще 1в1)Mainmenu skid wexside (rich 1.21.11)
врод похоже хз фонты думаю сами найдете package rich.screens.menu; import net.minecraft.client.gui.Click; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen; import...yougame.biz
ну если выровнять то будет хорошо ну в принципе красивый скидВсем дарова, сделал скид MainMenu вексайда(noad), шрифт сами найдете
Не обращайте на лого дебуды(noad), думаю норм!
Пожалуйста, авторизуйтесь для просмотра ссылки.
MainMenu WexSide (noad):package im.expensive.ui.mainmenu; import com.mojang.blaze3d.matrix.MatrixStack; import im.expensive.Expensive; import im.expensive.utils.client.IMinecraft; import im.expensive.utils.render.ColorUtils; import im.expensive.utils.render.DisplayUtils; import im.expensive.utils.render.font.Fonts; import net.minecraft.client.gui.AbstractGui; import net.minecraft.client.gui.screen.MultiplayerScreen; import net.minecraft.client.gui.screen.OptionsScreen; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.WorldSelectionScreen; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; import java.util.ArrayList; import java.util.List; public class MainScreen extends Screen implements IMinecraft { private final ResourceLocation logo = new ResourceLocation("expensive/images/log.png"); private final List<Button> buttons = new ArrayList<>(); private final float NAV_OFFSET = 75f; private final float NAV_GAP = 80f; public MainScreen() { super(ITextComponent.getTextComponentOrEmpty("")); } @Override protected void init() { buttons.clear(); float btnWidth = 230f; float btnHeight = 30f; float spacing = 8f; float centerX = width / 2f - btnWidth / 2f; float startY = height / 2f - 45; buttons.add(new Button(centerX, startY, btnWidth, btnHeight, "Singleplayer", () -> mc.displayGuiScreen(new WorldSelectionScreen(this)), false)); buttons.add(new Button(centerX, startY + btnHeight + spacing, btnWidth, btnHeight, "Multiplayer", () -> mc.displayGuiScreen(new MultiplayerScreen(this)), false)); buttons.add(new Button(centerX, startY + (btnHeight + spacing) * 2 + 2, btnWidth, btnHeight, "Swap Accounts", () -> { Expensive.getInstance().getAltWidget().open = true; }, true)); } @Override public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { DisplayUtils.drawRect(0, 0, width, height, ColorUtils.rgb(10, 11, 14)); float centerX = width / 2f; float centerY = height / 2f; drawPlayerInfo(matrixStack); float logoSize = 22; DisplayUtils.drawImage(logo, centerX - logoSize / 2f, centerY - 115, logoSize, logoSize, -1); String name = mc.getSession().getUsername(); Fonts.inter_wex.drawCenteredText(matrixStack, "Good time of day, " + name, centerX, centerY - 85, ColorUtils.rgb(210, 210, 215), 9.5f); Fonts.inter_wex.drawCenteredText(matrixStack, "Welcome to Fallen, the best Minecraft client.", centerX, centerY - 72, ColorUtils.rgb(130, 131, 135), 7.5f); buttons.forEach(btn -> btn.render(matrixStack, mouseX, mouseY)); renderNav(matrixStack, mouseX, mouseY, centerY + NAV_OFFSET); float footerY = height - 25; Fonts.inter_wex.drawCenteredText(matrixStack, "By logging into your account you agree to all of our policies,", centerX, footerY, ColorUtils.rgb(55, 56, 60), 6f); Fonts.inter_wex.drawCenteredText(matrixStack, "including our Privacy Policy and Terms of Service", centerX, footerY + 9, ColorUtils.rgb(55, 56, 60), 6f); if (Expensive.getInstance().getAltWidget().open) { Expensive.getInstance().getAltWidget().render(matrixStack, mouseX, mouseY); } super.render(matrixStack, mouseX, mouseY, partialTicks); } @Override public boolean charTyped(char codePoint, int modifiers) { if (Expensive.getInstance().getAltWidget().open) { Expensive.getInstance().getAltWidget().onChar(codePoint); return true; } return super.charTyped(codePoint, modifiers); } @Override public boolean keyPressed(int keyCode, int scanCode, int modifiers) { if (Expensive.getInstance().getAltWidget().open) { if (keyCode == 256) { Expensive.getInstance().getAltWidget().open = false; return true; } Expensive.getInstance().getAltWidget().onKey(keyCode); return true; } return super.keyPressed(keyCode, scanCode, modifiers); } @Override public boolean mouseClicked(double mouseX, double mouseY, int button) { if (Expensive.getInstance().getAltWidget().open) { Expensive.getInstance().getAltWidget().click((int) mouseX, (int) mouseY, button); return true; } buttons.forEach(btn -> btn.click((int) mouseX, (int) mouseY)); float yNav = height / 2f + NAV_OFFSET; if (mouseY > yNav - 6 && mouseY < yNav + 6) { if (Math.abs(mouseX - (width / 2f - NAV_GAP)) < 30) mc.displayGuiScreen(new OptionsScreen(this, mc.gameSettings)); if (Math.abs(mouseX - (width / 2f + NAV_GAP)) < 30) mc.shutdown(); } return super.mouseClicked(mouseX, mouseY, button); } @Override public boolean mouseScrolled(double mouseX, double mouseY, double delta) { if (Expensive.getInstance().getAltWidget().open) { Expensive.getInstance().getAltWidget().handleMouseScroll(delta); return true; } return super.mouseScrolled(mouseX, mouseY, delta); } private void drawPlayerInfo(MatrixStack stack) { float x = 12, y = 12, size = 18, round = 4; ResourceLocation skin = mc.player != null ? mc.player.getLocationSkin() : net.minecraft.client.resources.DefaultPlayerSkin.getDefaultSkin(mc.getSession().getProfile().getId()); im.expensive.utils.render.Stencil.initStencilToWrite(); DisplayUtils.drawRoundedRect(x, y, size, size, round, -1); im.expensive.utils.render.Stencil.readStencilBuffer(1); mc.getTextureManager().bindTexture(skin); AbstractGui.blit(stack, (int)x, (int)y, (int)size, (int)size, 8, 8, 8, 8, 64, 64); AbstractGui.blit(stack, (int)x, (int)y, (int)size, (int)size, 40, 8, 8, 8, 64, 64); im.expensive.utils.render.Stencil.uninitStencilBuffer(); float textX = x + size + 6; Fonts.inter_wex.drawText(stack, "Logged in as", textX, y + 1, ColorUtils.rgb(130, 131, 135), 5.5f); Fonts.inter_wex.drawText(stack, mc.getSession().getUsername(), textX, y + 9, -1, 7.5f); } private void renderNav(MatrixStack stack, int mx, int my, float y) { String[] labels = {"Options", "Proxies", "Exit"}; float startX = width / 2f - NAV_GAP; for (int i = 0; i < labels.length; i++) { float x = startX + (i * NAV_GAP); boolean hovered = mx > x - 25 && mx < x + 25 && my > y - 6 && my < y + 6; int color = hovered ? -1 : ColorUtils.rgb(90, 92, 98); Fonts.inter_wex.drawCenteredText(stack, labels[i], x, y, color, 8f); } } private class Button { float x, y, w, h; String text; Runnable action; boolean orange; public Button(float x, float y, float w, float h, String text, Runnable action, boolean orange) { this.x = x; this.y = y; this.w = w; this.h = h; this.text = text; this.action = action; this.orange = orange; } public void render(MatrixStack stack, int mx, int my) { boolean hovered = mx > x && mx < x + w && my > y && my < y + h; int color = orange ? ColorUtils.rgb(212, 95, 12) : ColorUtils.rgb(20, 23, 29); if (hovered) color = orange ? ColorUtils.rgb(235, 105, 15) : ColorUtils.rgb(28, 31, 38); DisplayUtils.drawRoundedRect(x, y, w, h, 10f, color); int txtColor = orange ? -1 : ColorUtils.rgb(150, 152, 158); if (hovered && !orange) txtColor = -1; Fonts.inter_wex.drawCenteredText(stack, text, x + w / 2f, y + h / 2f - 3.5f, txtColor, 7.5f); } public void click(int mx, int my) { if (mx > x && mx < x + w && my > y && my < y + h) action.run(); } } }
нууу, не прям как у меня но подравнять партиклы добавить фонт другой и будет примерно такое же, +repВсем дарова, сделал скид MainMenu вексайда(noad), шрифт сами найдете
Не обращайте на лого дебуды(noad), думаю норм!
Пожалуйста, авторизуйтесь для просмотра ссылки.
MainMenu WexSide (noad):package im.expensive.ui.mainmenu; import com.mojang.blaze3d.matrix.MatrixStack; import im.expensive.Expensive; import im.expensive.utils.client.IMinecraft; import im.expensive.utils.render.ColorUtils; import im.expensive.utils.render.DisplayUtils; import im.expensive.utils.render.font.Fonts; import net.minecraft.client.gui.AbstractGui; import net.minecraft.client.gui.screen.MultiplayerScreen; import net.minecraft.client.gui.screen.OptionsScreen; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.WorldSelectionScreen; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; import java.util.ArrayList; import java.util.List; public class MainScreen extends Screen implements IMinecraft { private final ResourceLocation logo = new ResourceLocation("expensive/images/log.png"); private final List<Button> buttons = new ArrayList<>(); private final float NAV_OFFSET = 75f; private final float NAV_GAP = 80f; public MainScreen() { super(ITextComponent.getTextComponentOrEmpty("")); } @Override protected void init() { buttons.clear(); float btnWidth = 230f; float btnHeight = 30f; float spacing = 8f; float centerX = width / 2f - btnWidth / 2f; float startY = height / 2f - 45; buttons.add(new Button(centerX, startY, btnWidth, btnHeight, "Singleplayer", () -> mc.displayGuiScreen(new WorldSelectionScreen(this)), false)); buttons.add(new Button(centerX, startY + btnHeight + spacing, btnWidth, btnHeight, "Multiplayer", () -> mc.displayGuiScreen(new MultiplayerScreen(this)), false)); buttons.add(new Button(centerX, startY + (btnHeight + spacing) * 2 + 2, btnWidth, btnHeight, "Swap Accounts", () -> { Expensive.getInstance().getAltWidget().open = true; }, true)); } @Override public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { DisplayUtils.drawRect(0, 0, width, height, ColorUtils.rgb(10, 11, 14)); float centerX = width / 2f; float centerY = height / 2f; drawPlayerInfo(matrixStack); float logoSize = 22; DisplayUtils.drawImage(logo, centerX - logoSize / 2f, centerY - 115, logoSize, logoSize, -1); String name = mc.getSession().getUsername(); Fonts.inter_wex.drawCenteredText(matrixStack, "Good time of day, " + name, centerX, centerY - 85, ColorUtils.rgb(210, 210, 215), 9.5f); Fonts.inter_wex.drawCenteredText(matrixStack, "Welcome to Fallen, the best Minecraft client.", centerX, centerY - 72, ColorUtils.rgb(130, 131, 135), 7.5f); buttons.forEach(btn -> btn.render(matrixStack, mouseX, mouseY)); renderNav(matrixStack, mouseX, mouseY, centerY + NAV_OFFSET); float footerY = height - 25; Fonts.inter_wex.drawCenteredText(matrixStack, "By logging into your account you agree to all of our policies,", centerX, footerY, ColorUtils.rgb(55, 56, 60), 6f); Fonts.inter_wex.drawCenteredText(matrixStack, "including our Privacy Policy and Terms of Service", centerX, footerY + 9, ColorUtils.rgb(55, 56, 60), 6f); if (Expensive.getInstance().getAltWidget().open) { Expensive.getInstance().getAltWidget().render(matrixStack, mouseX, mouseY); } super.render(matrixStack, mouseX, mouseY, partialTicks); } @Override public boolean charTyped(char codePoint, int modifiers) { if (Expensive.getInstance().getAltWidget().open) { Expensive.getInstance().getAltWidget().onChar(codePoint); return true; } return super.charTyped(codePoint, modifiers); } @Override public boolean keyPressed(int keyCode, int scanCode, int modifiers) { if (Expensive.getInstance().getAltWidget().open) { if (keyCode == 256) { Expensive.getInstance().getAltWidget().open = false; return true; } Expensive.getInstance().getAltWidget().onKey(keyCode); return true; } return super.keyPressed(keyCode, scanCode, modifiers); } @Override public boolean mouseClicked(double mouseX, double mouseY, int button) { if (Expensive.getInstance().getAltWidget().open) { Expensive.getInstance().getAltWidget().click((int) mouseX, (int) mouseY, button); return true; } buttons.forEach(btn -> btn.click((int) mouseX, (int) mouseY)); float yNav = height / 2f + NAV_OFFSET; if (mouseY > yNav - 6 && mouseY < yNav + 6) { if (Math.abs(mouseX - (width / 2f - NAV_GAP)) < 30) mc.displayGuiScreen(new OptionsScreen(this, mc.gameSettings)); if (Math.abs(mouseX - (width / 2f + NAV_GAP)) < 30) mc.shutdown(); } return super.mouseClicked(mouseX, mouseY, button); } @Override public boolean mouseScrolled(double mouseX, double mouseY, double delta) { if (Expensive.getInstance().getAltWidget().open) { Expensive.getInstance().getAltWidget().handleMouseScroll(delta); return true; } return super.mouseScrolled(mouseX, mouseY, delta); } private void drawPlayerInfo(MatrixStack stack) { float x = 12, y = 12, size = 18, round = 4; ResourceLocation skin = mc.player != null ? mc.player.getLocationSkin() : net.minecraft.client.resources.DefaultPlayerSkin.getDefaultSkin(mc.getSession().getProfile().getId()); im.expensive.utils.render.Stencil.initStencilToWrite(); DisplayUtils.drawRoundedRect(x, y, size, size, round, -1); im.expensive.utils.render.Stencil.readStencilBuffer(1); mc.getTextureManager().bindTexture(skin); AbstractGui.blit(stack, (int)x, (int)y, (int)size, (int)size, 8, 8, 8, 8, 64, 64); AbstractGui.blit(stack, (int)x, (int)y, (int)size, (int)size, 40, 8, 8, 8, 64, 64); im.expensive.utils.render.Stencil.uninitStencilBuffer(); float textX = x + size + 6; Fonts.inter_wex.drawText(stack, "Logged in as", textX, y + 1, ColorUtils.rgb(130, 131, 135), 5.5f); Fonts.inter_wex.drawText(stack, mc.getSession().getUsername(), textX, y + 9, -1, 7.5f); } private void renderNav(MatrixStack stack, int mx, int my, float y) { String[] labels = {"Options", "Proxies", "Exit"}; float startX = width / 2f - NAV_GAP; for (int i = 0; i < labels.length; i++) { float x = startX + (i * NAV_GAP); boolean hovered = mx > x - 25 && mx < x + 25 && my > y - 6 && my < y + 6; int color = hovered ? -1 : ColorUtils.rgb(90, 92, 98); Fonts.inter_wex.drawCenteredText(stack, labels[i], x, y, color, 8f); } } private class Button { float x, y, w, h; String text; Runnable action; boolean orange; public Button(float x, float y, float w, float h, String text, Runnable action, boolean orange) { this.x = x; this.y = y; this.w = w; this.h = h; this.text = text; this.action = action; this.orange = orange; } public void render(MatrixStack stack, int mx, int my) { boolean hovered = mx > x && mx < x + w && my > y && my < y + h; int color = orange ? ColorUtils.rgb(212, 95, 12) : ColorUtils.rgb(20, 23, 29); if (hovered) color = orange ? ColorUtils.rgb(235, 105, 15) : ColorUtils.rgb(28, 31, 38); DisplayUtils.drawRoundedRect(x, y, w, h, 10f, color); int txtColor = orange ? -1 : ColorUtils.rgb(150, 152, 158); if (hovered && !orange) txtColor = -1; Fonts.inter_wex.drawCenteredText(stack, text, x + w / 2f, y + h / 2f - 3.5f, txtColor, 7.5f); } public void click(int mx, int my) { if (mx > x && mx < x + w && my > y && my < y + h) action.run(); } } }
Обе ваши работы спизженый дизайн мейн менюЯ не пиздил,я сам писал, просто захотелось тоже скид векса написать мейн меню,ток на экспу, но не 10 же версий,а одна (кроме моей)
Можете сказать что это такое и зачем оно надо?Всем дарова, сделал скид MainMenu вексайда(noad), шрифт сами найдете
Не обращайте на лого дебуды(noad), думаю норм!
Пожалуйста, авторизуйтесь для просмотра ссылки.
MainMenu WexSide (noad):package im.expensive.ui.mainmenu; import com.mojang.blaze3d.matrix.MatrixStack; import im.expensive.Expensive; import im.expensive.utils.client.IMinecraft; import im.expensive.utils.render.ColorUtils; import im.expensive.utils.render.DisplayUtils; import im.expensive.utils.render.font.Fonts; import net.minecraft.client.gui.AbstractGui; import net.minecraft.client.gui.screen.MultiplayerScreen; import net.minecraft.client.gui.screen.OptionsScreen; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.WorldSelectionScreen; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; import java.util.ArrayList; import java.util.List; public class MainScreen extends Screen implements IMinecraft { private final ResourceLocation logo = new ResourceLocation("expensive/images/log.png"); private final List<Button> buttons = new ArrayList<>(); private final float NAV_OFFSET = 75f; private final float NAV_GAP = 80f; public MainScreen() { super(ITextComponent.getTextComponentOrEmpty("")); } @Override protected void init() { buttons.clear(); float btnWidth = 230f; float btnHeight = 30f; float spacing = 8f; float centerX = width / 2f - btnWidth / 2f; float startY = height / 2f - 45; buttons.add(new Button(centerX, startY, btnWidth, btnHeight, "Singleplayer", () -> mc.displayGuiScreen(new WorldSelectionScreen(this)), false)); buttons.add(new Button(centerX, startY + btnHeight + spacing, btnWidth, btnHeight, "Multiplayer", () -> mc.displayGuiScreen(new MultiplayerScreen(this)), false)); buttons.add(new Button(centerX, startY + (btnHeight + spacing) * 2 + 2, btnWidth, btnHeight, "Swap Accounts", () -> { Expensive.getInstance().getAltWidget().open = true; }, true)); } @Override public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { DisplayUtils.drawRect(0, 0, width, height, ColorUtils.rgb(10, 11, 14)); float centerX = width / 2f; float centerY = height / 2f; drawPlayerInfo(matrixStack); float logoSize = 22; DisplayUtils.drawImage(logo, centerX - logoSize / 2f, centerY - 115, logoSize, logoSize, -1); String name = mc.getSession().getUsername(); Fonts.inter_wex.drawCenteredText(matrixStack, "Good time of day, " + name, centerX, centerY - 85, ColorUtils.rgb(210, 210, 215), 9.5f); Fonts.inter_wex.drawCenteredText(matrixStack, "Welcome to Fallen, the best Minecraft client.", centerX, centerY - 72, ColorUtils.rgb(130, 131, 135), 7.5f); buttons.forEach(btn -> btn.render(matrixStack, mouseX, mouseY)); renderNav(matrixStack, mouseX, mouseY, centerY + NAV_OFFSET); float footerY = height - 25; Fonts.inter_wex.drawCenteredText(matrixStack, "By logging into your account you agree to all of our policies,", centerX, footerY, ColorUtils.rgb(55, 56, 60), 6f); Fonts.inter_wex.drawCenteredText(matrixStack, "including our Privacy Policy and Terms of Service", centerX, footerY + 9, ColorUtils.rgb(55, 56, 60), 6f); if (Expensive.getInstance().getAltWidget().open) { Expensive.getInstance().getAltWidget().render(matrixStack, mouseX, mouseY); } super.render(matrixStack, mouseX, mouseY, partialTicks); } @Override public boolean charTyped(char codePoint, int modifiers) { if (Expensive.getInstance().getAltWidget().open) { Expensive.getInstance().getAltWidget().onChar(codePoint); return true; } return super.charTyped(codePoint, modifiers); } @Override public boolean keyPressed(int keyCode, int scanCode, int modifiers) { if (Expensive.getInstance().getAltWidget().open) { if (keyCode == 256) { Expensive.getInstance().getAltWidget().open = false; return true; } Expensive.getInstance().getAltWidget().onKey(keyCode); return true; } return super.keyPressed(keyCode, scanCode, modifiers); } @Override public boolean mouseClicked(double mouseX, double mouseY, int button) { if (Expensive.getInstance().getAltWidget().open) { Expensive.getInstance().getAltWidget().click((int) mouseX, (int) mouseY, button); return true; } buttons.forEach(btn -> btn.click((int) mouseX, (int) mouseY)); float yNav = height / 2f + NAV_OFFSET; if (mouseY > yNav - 6 && mouseY < yNav + 6) { if (Math.abs(mouseX - (width / 2f - NAV_GAP)) < 30) mc.displayGuiScreen(new OptionsScreen(this, mc.gameSettings)); if (Math.abs(mouseX - (width / 2f + NAV_GAP)) < 30) mc.shutdown(); } return super.mouseClicked(mouseX, mouseY, button); } @Override public boolean mouseScrolled(double mouseX, double mouseY, double delta) { if (Expensive.getInstance().getAltWidget().open) { Expensive.getInstance().getAltWidget().handleMouseScroll(delta); return true; } return super.mouseScrolled(mouseX, mouseY, delta); } private void drawPlayerInfo(MatrixStack stack) { float x = 12, y = 12, size = 18, round = 4; ResourceLocation skin = mc.player != null ? mc.player.getLocationSkin() : net.minecraft.client.resources.DefaultPlayerSkin.getDefaultSkin(mc.getSession().getProfile().getId()); im.expensive.utils.render.Stencil.initStencilToWrite(); DisplayUtils.drawRoundedRect(x, y, size, size, round, -1); im.expensive.utils.render.Stencil.readStencilBuffer(1); mc.getTextureManager().bindTexture(skin); AbstractGui.blit(stack, (int)x, (int)y, (int)size, (int)size, 8, 8, 8, 8, 64, 64); AbstractGui.blit(stack, (int)x, (int)y, (int)size, (int)size, 40, 8, 8, 8, 64, 64); im.expensive.utils.render.Stencil.uninitStencilBuffer(); float textX = x + size + 6; Fonts.inter_wex.drawText(stack, "Logged in as", textX, y + 1, ColorUtils.rgb(130, 131, 135), 5.5f); Fonts.inter_wex.drawText(stack, mc.getSession().getUsername(), textX, y + 9, -1, 7.5f); } private void renderNav(MatrixStack stack, int mx, int my, float y) { String[] labels = {"Options", "Proxies", "Exit"}; float startX = width / 2f - NAV_GAP; for (int i = 0; i < labels.length; i++) { float x = startX + (i * NAV_GAP); boolean hovered = mx > x - 25 && mx < x + 25 && my > y - 6 && my < y + 6; int color = hovered ? -1 : ColorUtils.rgb(90, 92, 98); Fonts.inter_wex.drawCenteredText(stack, labels[i], x, y, color, 8f); } } private class Button { float x, y, w, h; String text; Runnable action; boolean orange; public Button(float x, float y, float w, float h, String text, Runnable action, boolean orange) { this.x = x; this.y = y; this.w = w; this.h = h; this.text = text; this.action = action; this.orange = orange; } public void render(MatrixStack stack, int mx, int my) { boolean hovered = mx > x && mx < x + w && my > y && my < y + h; int color = orange ? ColorUtils.rgb(212, 95, 12) : ColorUtils.rgb(20, 23, 29); if (hovered) color = orange ? ColorUtils.rgb(235, 105, 15) : ColorUtils.rgb(28, 31, 38); DisplayUtils.drawRoundedRect(x, y, w, h, 10f, color); int txtColor = orange ? -1 : ColorUtils.rgb(150, 152, 158); if (hovered && !orange) txtColor = -1; Fonts.inter_wex.drawCenteredText(stack, text, x + w / 2f, y + h / 2f - 3.5f, txtColor, 7.5f); } public void click(int mx, int my) { if (mx > x && mx < x + w && my > y && my < y + h) action.run(); } } }
skid не равно спиздилОбе ваши работы спизженый дизайн мейн меню
нет это спиздил. Ты не спиздил код, но ты спиздил дизайн.skid не равно спиздил
о аетхтакое се
Всем дарова, сделал скид MainMenu вексайда(noad), шрифт сами найдете
Не обращайте на лого дебуды(noad), думаю норм!
Пожалуйста, авторизуйтесь для просмотра ссылки.
сойдет
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz