Вопрос Draggable обводка

Начинающий
Статус
Оффлайн
Регистрация
22 Фев 2022
Сообщения
2
Реакции[?]
0
Поинты[?]
0

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

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

Спасибо!

у меня есть обводка draggable элементов и если я отключаю рендер элемента то на его месте остаётся обводка как это можно пофиксить ?
Пожалуйста, авторизуйтесь для просмотра ссылки.


GuiChat:
    public void drawScreen(int mouseX, int mouseY, float partialTicks) {
        drawRect(2, this.height - 14, this.width - 2, this.height - 2, Integer.MIN_VALUE);
        this.inputField.drawTextBox();
        ITextComponent itextcomponent = this.mc.ingameGUI.getChatGUI().getChatComponent(Mouse.getX(), Mouse.getY());

        if (itextcomponent != null && itextcomponent.getStyle().getHoverEvent() != null) {
            this.handleComponentHover(itextcomponent, mouseX, mouseY);
        }

        if (DarkMoon.getInstance().getModuleManager().getModule(PasswordHider.class).isEnabled()) {
            if (((inputField.getText().startsWith("/l") && inputField.getText().split(" ")[0].length() <= 6)
                    || (inputField.getText().startsWith("/reg") && inputField.getText().split(" ")[0].length() <= 9)
                    || (inputField.getText().startsWith("/warp") && inputField.getText().split(" ")[0].length() <= 9))
                    && inputField.getText().split(" ").length != 1) {
                BlurUtility.drawBlur(10, () -> RenderUtility.drawRectNoWH(
                        mc.fontRenderer.getStringWidth(inputField.getText().split(" ")[0]) + 7, this.height - 14,
                        mc.fontRenderer.getStringWidth(inputField.getText().split(" ")[0]) + 6 + mc.fontRenderer.getStringWidth(inputField.getText().substring(inputField.getText().split(" ")[0].length())),
                        this.height - 2, Integer.MIN_VALUE));
            }
        }

        Vec2i scale = DarkMoon.getInstance().getScaleMath().getMouse(mouseX, mouseY, new ScaledResolution(mc));
        Timer timerModule = DarkMoon.getInstance().getModuleManager().timer;

        DragManager.getDraggables().values().forEach(dragging -> {
            if (dragging.getModule().isEnabled() || dragging.getModule().equals(timerModule) && Hud.elements.get(4)) {
                dragging.onDraw(scale.getX(), scale.getY());

                int x = dragging.getX();
                int y = dragging.getY();
                int width = (int) dragging.getWidth();
                int height = (int) dragging.getHeight();

                if (mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + height) {
                    RenderUtility.drawRoundOutline(x, y, width, height, 5, 1, new Color(0, 0, 0, 0), Color.WHITE);
                }
            }
        });

        super.drawScreen(mouseX, mouseY, partialTicks);
    }
Draggable:
package dev.darkmoon.client.manager.dragging;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import dev.darkmoon.client.module.Module;
import dev.darkmoon.client.utility.render.RenderUtility;
import lombok.Getter;
import lombok.Setter;

public class Draggable {
    @Expose
    [USER=270918]@Getter[/USER]
    [USER=1132491]@setter[/USER]
    @SerializedName("x")
    private int x;
    @Expose
    [USER=270918]@Getter[/USER]
    [USER=1132491]@setter[/USER]
    @SerializedName("y")
    private int y;

    public int initialXVal;
    public int initialYVal;

    private int startX, startY;
    private boolean dragging;

    [USER=270918]@Getter[/USER]
    [USER=1132491]@setter[/USER]
    private float width, height;

    @Expose
    [USER=270918]@Getter[/USER]
    @SerializedName("name")
    private String name;

    [USER=270918]@Getter[/USER]
    private final Module module;

    public Draggable(Module module, String name, int initialXVal, int initialYVal) {
        this.module = module;
        this.name = name;
        this.x = initialXVal;
        this.y = initialYVal;
        this.initialXVal = initialXVal;
        this.initialYVal = initialYVal;
    }

    public final void onDraw(int mouseX, int mouseY) {
        if (dragging) {
            x = (mouseX - startX);
            y = (mouseY - startY);
        }
    }

    public final void onClick(int mouseX, int mouseY, int button) {
        if (button == 0 && RenderUtility.isHovered(mouseX, mouseY, x, y, width, height)) {
            dragging = true;
            startX = mouseX - x;
            startY = mouseY - y;
        }
    }

    public final void onRelease(int button) {
        if (button == 0) dragging = false;
    }
}
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
26 Мар 2022
Сообщения
33
Реакции[?]
0
Поинты[?]
0
у меня есть обводка draggable элементов и если я отключаю рендер элемента то на его месте остаётся обводка как это можно пофиксить ?
Пожалуйста, авторизуйтесь для просмотра ссылки.


GuiChat:
    public void drawScreen(int mouseX, int mouseY, float partialTicks) {
        drawRect(2, this.height - 14, this.width - 2, this.height - 2, Integer.MIN_VALUE);
        this.inputField.drawTextBox();
        ITextComponent itextcomponent = this.mc.ingameGUI.getChatGUI().getChatComponent(Mouse.getX(), Mouse.getY());

        if (itextcomponent != null && itextcomponent.getStyle().getHoverEvent() != null) {
            this.handleComponentHover(itextcomponent, mouseX, mouseY);
        }

        if (DarkMoon.getInstance().getModuleManager().getModule(PasswordHider.class).isEnabled()) {
            if (((inputField.getText().startsWith("/l") && inputField.getText().split(" ")[0].length() <= 6)
                    || (inputField.getText().startsWith("/reg") && inputField.getText().split(" ")[0].length() <= 9)
                    || (inputField.getText().startsWith("/warp") && inputField.getText().split(" ")[0].length() <= 9))
                    && inputField.getText().split(" ").length != 1) {
                BlurUtility.drawBlur(10, () -> RenderUtility.drawRectNoWH(
                        mc.fontRenderer.getStringWidth(inputField.getText().split(" ")[0]) + 7, this.height - 14,
                        mc.fontRenderer.getStringWidth(inputField.getText().split(" ")[0]) + 6 + mc.fontRenderer.getStringWidth(inputField.getText().substring(inputField.getText().split(" ")[0].length())),
                        this.height - 2, Integer.MIN_VALUE));
            }
        }

        Vec2i scale = DarkMoon.getInstance().getScaleMath().getMouse(mouseX, mouseY, new ScaledResolution(mc));
        Timer timerModule = DarkMoon.getInstance().getModuleManager().timer;

        DragManager.getDraggables().values().forEach(dragging -> {
            if (dragging.getModule().isEnabled() || dragging.getModule().equals(timerModule) && Hud.elements.get(4)) {
                dragging.onDraw(scale.getX(), scale.getY());

                int x = dragging.getX();
                int y = dragging.getY();
                int width = (int) dragging.getWidth();
                int height = (int) dragging.getHeight();

                if (mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + height) {
                    RenderUtility.drawRoundOutline(x, y, width, height, 5, 1, new Color(0, 0, 0, 0), Color.WHITE);
                }
            }
        });

        super.drawScreen(mouseX, mouseY, partialTicks);
    }
Draggable:
package dev.darkmoon.client.manager.dragging;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import dev.darkmoon.client.module.Module;
import dev.darkmoon.client.utility.render.RenderUtility;
import lombok.Getter;
import lombok.Setter;

public class Draggable {
    @Expose
    [USER=270918]@Getter[/USER]
    [USER=1132491]@setter[/USER]
    @SerializedName("x")
    private int x;
    @Expose
    [USER=270918]@Getter[/USER]
    [USER=1132491]@setter[/USER]
    @SerializedName("y")
    private int y;

    public int initialXVal;
    public int initialYVal;

    private int startX, startY;
    private boolean dragging;

    [USER=270918]@Getter[/USER]
    [USER=1132491]@setter[/USER]
    private float width, height;

    @Expose
    [USER=270918]@Getter[/USER]
    @SerializedName("name")
    private String name;

    [USER=270918]@Getter[/USER]
    private final Module module;

    public Draggable(Module module, String name, int initialXVal, int initialYVal) {
        this.module = module;
        this.name = name;
        this.x = initialXVal;
        this.y = initialYVal;
        this.initialXVal = initialXVal;
        this.initialYVal = initialYVal;
    }

    public final void onDraw(int mouseX, int mouseY) {
        if (dragging) {
            x = (mouseX - startX);
            y = (mouseY - startY);
        }
    }

    public final void onClick(int mouseX, int mouseY, int button) {
        if (button == 0 && RenderUtility.isHovered(mouseX, mouseY, x, y, width, height)) {
            dragging = true;
            startX = mouseX - x;
            startY = mouseY - y;
        }
    }

    public final void onRelease(int button) {
        if (button == 0) dragging = false;
    }
}
Ну тебе надо сделать проверку на отрисовку обводки, дабы проверяло, активен элемент, или нет
 
Сверху Снизу