Search in sources :

Example 11 with Window

use of org.bleachhack.gui.window.Window in project BleachHack by BleachDrinker420.

the class BleachOptionsScreen method addCategory.

private int addCategory(int window, int x, int y, String name, Option<?>... entries) {
    getWindow(window).addWidget(new WindowTextWidget("- " + name + " -", true, WindowTextWidget.TextAlign.MIDDLE, x, y, 0xe0e0e0));
    y += 20;
    for (Option<?> entry : entries) {
        // Option
        getWindow(0).addWidget(entry.getWidget(x + 10, y - 3, 56, 16));
        // Revert button
        getWindow(window).addWidget(new WindowButtonWidget(x + 68, y - 3, x + 84, y + 13, "", entry::resetValue).withRenderEvent((w, ms, wx, wy) -> ((WindowButtonWidget) w).text = entry.isDefault() ? "\u00a77\u21c4" : "\u21c4"));
        // Name text (at the end because of... reasons)
        getWindow(window).addWidget(new WindowTextWidget(new LiteralText(entry.getName()).styled(s -> s.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new LiteralText(entry.getTooltip())))), true, x - 107, y, 0xffffff));
        y += 17;
    }
    return y;
}
Also used : WindowScreen(org.bleachhack.gui.window.WindowScreen) LiteralText(net.minecraft.text.LiteralText) MatrixStack(net.minecraft.client.util.math.MatrixStack) Items(net.minecraft.item.Items) WindowWidget(org.bleachhack.gui.window.widget.WindowWidget) WindowButtonWidget(org.bleachhack.gui.window.widget.WindowButtonWidget) HoverEvent(net.minecraft.text.HoverEvent) WindowTextWidget(org.bleachhack.gui.window.widget.WindowTextWidget) ItemStack(net.minecraft.item.ItemStack) Screen(net.minecraft.client.gui.screen.Screen) Window(org.bleachhack.gui.window.Window) WindowScrollbarWidget(org.bleachhack.gui.window.widget.WindowScrollbarWidget) Option(org.bleachhack.setting.option.Option) HoverEvent(net.minecraft.text.HoverEvent) WindowTextWidget(org.bleachhack.gui.window.widget.WindowTextWidget) WindowButtonWidget(org.bleachhack.gui.window.widget.WindowButtonWidget) LiteralText(net.minecraft.text.LiteralText)

Example 12 with Window

use of org.bleachhack.gui.window.Window in project BleachHack by BleachDrinker420.

the class BleachTitleScreen method init.

@Override
public void init() {
    super.init();
    addWindow(new Window(width / 8, height / 8, width - width / 8, height - height / 8 + 2, "BleachHack", new ItemStack(Items.MUSIC_DISC_CAT)));
    int w = getWindow(0).x2 - getWindow(0).x1;
    int h = getWindow(0).y2 - getWindow(0).y1;
    int maxY = MathHelper.clamp(h / 4 + 119, 0, h - 22);
    getWindow(0).addWidget(new WindowButtonWidget(w / 2 - 100, h / 4 + 38, w / 2 + 100, h / 4 + 58, I18n.translate("menu.singleplayer"), () -> client.setScreen(new SelectWorldScreen(client.currentScreen))));
    getWindow(0).addWidget(new WindowButtonWidget(w / 2 - 100, h / 4 + 62, w / 2 + 100, h / 4 + 82, I18n.translate("menu.multiplayer"), () -> client.setScreen(new MultiplayerScreen(client.currentScreen))));
    getWindow(0).addWidget(new WindowButtonWidget(w / 2 - 100, h / 4 + 86, w / 2 + 100, h / 4 + 106, I18n.translate("menu.online"), () -> client.setScreen(new RealmsMainScreen(this))));
    getWindow(0).addWidget(new WindowButtonWidget(w / 2 - 124, h / 4 + 86, w / 2 - 104, h / 4 + 106, "MC", () -> {
        customTitleScreen = !customTitleScreen;
        BleachFileHelper.saveMiscSetting("customTitleScreen", new JsonPrimitive(false));
        client.setScreen(new TitleScreen(false));
    }));
    getWindow(0).addWidget(new WindowButtonWidget(w / 2 - 100, maxY, w / 2 - 2, maxY + 20, I18n.translate("menu.options"), () -> client.setScreen(new OptionsScreen(client.currentScreen, client.options))));
    getWindow(0).addWidget(new WindowButtonWidget(w / 2 + 2, maxY, w / 2 + 100, maxY + 20, I18n.translate("menu.quit"), () -> client.scheduleStop()));
    // Main Text
    getWindow(0).addWidget(new WindowTextWidget(LiteralText.EMPTY, true, WindowTextWidget.TextAlign.MIDDLE, 3f, w / 2, h / 4 - 25, 0).withRenderEvent((widget, ms, wx, wy) -> {
        MutableText bhText = new LiteralText("");
        int i = 0;
        for (char c : "BleachHack".toCharArray()) {
            int fi = i++;
            bhText.append(new LiteralText(String.valueOf(c)).styled(s -> s.withColor(TextColor.fromRgb(UI.getRainbowFromSettings(fi)))));
        }
        ((WindowTextWidget) widget).setText(bhText);
    }));
    // Version Text
    getWindow(0).addWidget(new WindowTextWidget(BleachHack.VERSION, true, WindowTextWidget.TextAlign.MIDDLE, 1.5f, w / 2, h / 4 - 6, 0xffc050));
    // Splash
    getWindow(0).addWidget(new WindowTextWidget(LiteralText.EMPTY, true, WindowTextWidget.TextAlign.MIDDLE, 2f, -20f, w / 2 + 80, h / 4 + 6, 0xffff00).withRenderEvent((widget, ms, wx, wy) -> {
        if (splash != null) {
            WindowTextWidget windgetText = (WindowTextWidget) widget;
            windgetText.setText(new LiteralText(splash));
            windgetText.color = (windgetText.color & 0x00ffffff) | ((splashTicks * 17) << 24);
            float scale = 1.8F - MathHelper.abs(MathHelper.sin(Util.getMeasuringTimeMs() % 1000L / 1000.0F * 6.2831855F) * 0.1F);
            scale = scale * 66.0F / (textRenderer.getWidth(splash) + 32);
            windgetText.setScale(scale);
        }
    }));
    // Update Text
    JsonObject updateJson = BleachHack.getUpdateJson();
    if (updateJson != null && updateJson.has("version") && updateJson.get("version").getAsInt() > BleachHack.INTVERSION) {
        getWindow(0).addWidget(new WindowTextWidget("\u00a76\u00a7nUpdate\u00a76", true, 4, h - 12, 0xffffff).withClickEvent((widget, mx, my, wx, wy) -> client.setScreen(new UpdateScreen(client.currentScreen, updateJson))));
    }
}
Also used : Window(org.bleachhack.gui.window.Window) FabricLoader(net.fabricmc.loader.api.FabricLoader) JsonObject(com.google.gson.JsonObject) LiteralText(net.minecraft.text.LiteralText) SelectWorldScreen(net.minecraft.client.gui.screen.world.SelectWorldScreen) BodyHandlers(java.net.http.HttpResponse.BodyHandlers) Util(net.minecraft.util.Util) TranslatableText(net.minecraft.text.TranslatableText) BleachFileHelper(org.bleachhack.util.io.BleachFileHelper) Random(java.util.Random) ParticleManager(org.bleachhack.gui.effect.ParticleManager) WindowTextWidget(org.bleachhack.gui.window.widget.WindowTextWidget) ItemStack(net.minecraft.item.ItemStack) Window(org.bleachhack.gui.window.Window) MutableText(net.minecraft.text.MutableText) SharedConstants(net.minecraft.SharedConstants) JsonPrimitive(com.google.gson.JsonPrimitive) WindowScreen(org.bleachhack.gui.window.WindowScreen) I18n(net.minecraft.client.resource.language.I18n) UI(org.bleachhack.module.mods.UI) BleachHack(org.bleachhack.BleachHack) MatrixStack(net.minecraft.client.util.math.MatrixStack) Items(net.minecraft.item.Items) TextColor(net.minecraft.text.TextColor) WindowButtonWidget(org.bleachhack.gui.window.widget.WindowButtonWidget) OptionsScreen(net.minecraft.client.gui.screen.option.OptionsScreen) BleachOnlineMang(org.bleachhack.util.io.BleachOnlineMang) TitleScreen(net.minecraft.client.gui.screen.TitleScreen) List(java.util.List) MultiplayerScreen(net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen) MathHelper(net.minecraft.util.math.MathHelper) RealmsMainScreen(net.minecraft.client.realms.gui.screen.RealmsMainScreen) MutableText(net.minecraft.text.MutableText) JsonPrimitive(com.google.gson.JsonPrimitive) OptionsScreen(net.minecraft.client.gui.screen.option.OptionsScreen) WindowTextWidget(org.bleachhack.gui.window.widget.WindowTextWidget) JsonObject(com.google.gson.JsonObject) WindowButtonWidget(org.bleachhack.gui.window.widget.WindowButtonWidget) TitleScreen(net.minecraft.client.gui.screen.TitleScreen) MultiplayerScreen(net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen) RealmsMainScreen(net.minecraft.client.realms.gui.screen.RealmsMainScreen) ItemStack(net.minecraft.item.ItemStack) SelectWorldScreen(net.minecraft.client.gui.screen.world.SelectWorldScreen) LiteralText(net.minecraft.text.LiteralText)

Example 13 with Window

use of org.bleachhack.gui.window.Window in project BleachHack by BleachDrinker420.

the class NotebotScreen method init.

public void init() {
    super.init();
    files.clear();
    BleachFileMang.getDir().resolve("notebot/").toFile().mkdirs();
    for (String f : BleachFileMang.getDir().resolve("notebot/").toFile().list()) files.add(f);
    int ww = Math.max(width / 2, 360);
    int wh = Math.max(height / 2, 200);
    addWindow(new Window(width / 2 - ww / 2, height / 2 - wh / 2, width / 2 + ww / 2, height / 2 + wh / 2, "Notebot Gui", new ItemStack(Items.NOTE_BLOCK)));
    getWindow(0).addWidget(new WindowButtonWidget(22, 14, 32, 24, "<", () -> page = page <= 0 ? 0 : page - 1));
    getWindow(0).addWidget(new WindowButtonWidget(77, 14, 87, 24, ">", () -> page++));
    int xEnd = getWindow(0).x2 - getWindow(0).x1;
    getWindow(0).addWidget(new WindowButtonWidget(xEnd - 30, 14, xEnd - 3, 24, "Help", () -> Util.getOperatingSystem().open(URI.create("https://www.youtube.com/watch?v=Z6O80jItoAk"))));
}
Also used : Window(org.bleachhack.gui.window.Window) WindowButtonWidget(org.bleachhack.gui.window.widget.WindowButtonWidget) ItemStack(net.minecraft.item.ItemStack)

Example 14 with Window

use of org.bleachhack.gui.window.Window in project BleachHack by BleachDrinker420.

the class ModuleClickGuiScreen method initWindows.

public void initWindows() {
    int len = ModuleManager.getModule(ClickGui.class).getSetting(0).asSlider().getValueInt();
    int y = 50;
    for (ModuleCategory c : ModuleCategory.values()) {
        addWindow(new ModuleWindow(ModuleManager.getModulesInCat(c), 30, y, len, StringUtils.capitalize(c.name().toLowerCase()), c.getItem()));
        y += 16;
    }
    for (Window w : getWindows()) {
        if (w instanceof ClickGuiWindow) {
            ((ClickGuiWindow) w).hiding = true;
        }
    }
}
Also used : ModuleWindow(org.bleachhack.gui.clickgui.window.ModuleWindow) ClickGuiWindow(org.bleachhack.gui.clickgui.window.ClickGuiWindow) Window(org.bleachhack.gui.window.Window) ClickGui(org.bleachhack.module.mods.ClickGui) ModuleCategory(org.bleachhack.module.ModuleCategory) ClickGuiWindow(org.bleachhack.gui.clickgui.window.ClickGuiWindow) ModuleWindow(org.bleachhack.gui.clickgui.window.ModuleWindow)

Example 15 with Window

use of org.bleachhack.gui.window.Window in project BleachHack by BleachDrinker420.

the class ModuleClickGuiScreen method render.

public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) {
    BleachFileHelper.SCHEDULE_SAVE_CLICKGUI.set(true);
    ClickGui clickGui = ModuleManager.getModule(ClickGui.class);
    searchField.visible = clickGui.getSetting(1).asToggle().getState();
    if (clickGui.getSetting(1).asToggle().getState()) {
        searchField.setSuggestion(searchField.getText().isEmpty() ? "Search here" : "");
        Set<Module> seachMods = new HashSet<>();
        if (!searchField.getText().isEmpty()) {
            for (Module m : ModuleManager.getModules()) {
                if (m.getName().toLowerCase(Locale.ENGLISH).contains(searchField.getText().toLowerCase(Locale.ENGLISH).replace(" ", ""))) {
                    seachMods.add(m);
                }
            }
        }
        for (Window w : getWindows()) {
            if (w instanceof ModuleWindow) {
                ((ModuleWindow) w).setSearchedModule(seachMods);
            }
        }
    }
    int len = clickGui.getSetting(0).asSlider().getValueInt();
    for (Window w : getWindows()) {
        if (w instanceof ModuleWindow) {
            ((ModuleWindow) w).setLen(len);
        }
    }
    super.render(matrices, mouseX, mouseY, delta);
    textRenderer.draw(matrices, "BleachHack-" + BleachHack.VERSION + "-" + SharedConstants.getGameVersion().getName(), 3, 3, 0x305090);
    textRenderer.draw(matrices, "BleachHack-" + BleachHack.VERSION + "-" + SharedConstants.getGameVersion().getName(), 2, 2, 0x6090d0);
    if (clickGui.getSetting(2).asToggle().getState()) {
        textRenderer.drawWithShadow(matrices, "Current prefix is: \"" + Command.getPrefix() + "\" (" + Command.getPrefix() + "help)", 2, height - 20, 0x99ff99);
        textRenderer.drawWithShadow(matrices, "Use " + Command.getPrefix() + "clickgui to reset the clickgui", 2, height - 10, 0x9999ff);
    }
}
Also used : ModuleWindow(org.bleachhack.gui.clickgui.window.ModuleWindow) ClickGuiWindow(org.bleachhack.gui.clickgui.window.ClickGuiWindow) Window(org.bleachhack.gui.window.Window) ClickGui(org.bleachhack.module.mods.ClickGui) ModuleWindow(org.bleachhack.gui.clickgui.window.ModuleWindow) Module(org.bleachhack.module.Module) HashSet(java.util.HashSet)

Aggregations

Window (org.bleachhack.gui.window.Window)15 ItemStack (net.minecraft.item.ItemStack)9 LiteralText (net.minecraft.text.LiteralText)6 ClickGuiWindow (org.bleachhack.gui.clickgui.window.ClickGuiWindow)6 MatrixStack (net.minecraft.client.util.math.MatrixStack)5 Items (net.minecraft.item.Items)5 WindowScreen (org.bleachhack.gui.window.WindowScreen)5 JsonObject (com.google.gson.JsonObject)4 FabricLoader (net.fabricmc.loader.api.FabricLoader)4 BleachHack (org.bleachhack.BleachHack)4 URL (java.net.URL)3 SharedConstants (net.minecraft.SharedConstants)3 WindowButtonWidget (org.bleachhack.gui.window.widget.WindowButtonWidget)3 WindowScrollbarWidget (org.bleachhack.gui.window.widget.WindowScrollbarWidget)3 WindowTextWidget (org.bleachhack.gui.window.widget.WindowTextWidget)3 WindowWidget (org.bleachhack.gui.window.widget.WindowWidget)3 Resources (com.google.common.io.Resources)2 JsonElement (com.google.gson.JsonElement)2 JsonParser (com.google.gson.JsonParser)2 GameProfile (com.mojang.authlib.GameProfile)2