Исходник Draggable сеткой

Начинающий
Статус
Оффлайн
Регистрация
1 Окт 2022
Сообщения
177
Реакции[?]
5
Поинты[?]
2K

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

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

Спасибо!

ждем данный драггейбл в новых пастах, особенно от лехи акривера
сс -
Пожалуйста, авторизуйтесь для просмотра ссылки.


Первый код закидываете в Dragging.java
Dragging.java:
package fun.centric.api.utils.drag;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import fun.centric.api.utils.client.ClientUtil;
import fun.centric.api.utils.client.Vec2i;
import fun.centric.api.utils.math.MathUtil;
import fun.centric.modules.api.Function;
import fun.centric.api.utils.render.DisplayUtils;
import net.minecraft.client.MainWindow;

public class Dragging {
    @Expose
    @SerializedName("x")
    private float xPos;
    @Expose
    @SerializedName("y")
    private float yPos;

    public float initialXVal;
    public float initialYVal;

    private float startX, startY;
    private boolean dragging;

    private float width, height;

    @Expose
    @SerializedName("name")
    private final String name;

    private final Function module;

    private static final float CENTER_LINE_WIDTH = 1.0f;
    private static final float SNAP_THRESHOLD = 10.0f;

    private float lineAlpha = 0.0f;
    private long lastUpdateTime;

    public Dragging(Function module, String name, float initialXVal, float initialYVal) {
        this.module = module;
        this.name = name;
        this.xPos = initialXVal;
        this.yPos = initialYVal;
        this.initialXVal = initialXVal;
        this.initialYVal = initialYVal;
    }

    public Function getModule() {
        return module;
    }

    public String getName() {
        return name;
    }

    public float getWidth() {
        return width;
    }

    public void setWidth(float width) {
        this.width = width;
    }

    public float getHeight() {
        return height;
    }

    public void setHeight(float height) {
        this.height = height;
    }

    public float getX() {
        return xPos;
    }

    public void setX(float x) {
        this.xPos = x;
    }

    public float getY() {
        return yPos;
    }

    public void setY(float y) {
        this.yPos = y;
    }

    public final void onDraw(int mouseX, int mouseY, MainWindow res) {
        Vec2i fixed = ClientUtil.getMouse(mouseX, mouseY);
        mouseX = fixed.getX();
        mouseY = fixed.getY();
     
        float centerX = res.scaledWidth() / 2.0f;
        float centerY = res.scaledHeight() / 2.0f;

        if (dragging) {
            xPos = (mouseX - startX);
            yPos = (mouseY - startY);
         
            if (Math.abs(xPos + width / 2.0f - centerX) < SNAP_THRESHOLD) {
                xPos = centerX - width / 2.0f;
            }
         
            if (Math.abs(yPos + height / 2.0f - centerY) < SNAP_THRESHOLD) {
                yPos = centerY - height / 2.0f;
            }
         
            if (xPos + width > res.scaledWidth()) {
                xPos = res.scaledWidth() - width;
            }
            if (yPos + height > res.scaledHeight()) {
                yPos = res.scaledHeight() - height;
            }
            if (xPos < 0) {
                xPos = 0;
            }
            if (yPos < 0) {
                yPos = 0;
            }
         
            updateLineAlpha(true);
        } else {
            updateLineAlpha(false);
        }
     
        drawCenterLines(res);
    }

    private void updateLineAlpha(boolean increasing) {
        long currentTime = System.currentTimeMillis();
        float deltaTime = (currentTime - lastUpdateTime) / 1000.0f;
        lastUpdateTime = currentTime;

        if (increasing) {
            lineAlpha += deltaTime * 2.0f;
            if (lineAlpha > 1.0f) {
                lineAlpha = 1.0f;
            }
        } else {
            lineAlpha -= deltaTime * 2.0f;
            if (lineAlpha < 0.0f) {
                lineAlpha = 0.0f;
            }
        }
    }

    private void drawCenterLines(MainWindow res) {
        if (lineAlpha > 0.0f) {
            float centerX = res.scaledWidth() / 2.0f;
            float centerY = res.scaledHeight() / 2.0f;

            int color = (int) (lineAlpha * 255) << 24 | 0xFFFFFF;

            DisplayUtils.drawRoundedRect(centerX - CENTER_LINE_WIDTH / 2.0f, 0, CENTER_LINE_WIDTH, res.scaledHeight(), 1, color);
            DisplayUtils.drawRoundedRect(0, centerY - CENTER_LINE_WIDTH / 2.0f, res.scaledWidth(), CENTER_LINE_WIDTH, 1, color);
        }
    }

    public final boolean onClick(double mouseX, double mouseY, int button) {
        Vec2i fixed = ClientUtil.getMouse((int) mouseX, (int) mouseY);
        mouseX = fixed.getX();
        mouseY = fixed.getY();
        if (button == 0 && MathUtil.isHovered((float) mouseX, (float) mouseY, xPos, yPos, width, height)) {
            dragging = true;
            startX = (int) (mouseX - xPos);
            startY = (int) (mouseY - yPos);
            lastUpdateTime = System.currentTimeMillis();
            return true;
        }
        return false;
    }

    public final void onRelease(int button) {
        if (button == 0) dragging = false;
    }
}
Этот в Drag.java
Drag.java:
package fun.centric.api.utils.drag;

public class Drag {

    private float xPos, yPos;
    private float startX, startY;
    private boolean dragging;

    public Drag(float initialXVal, float initialYVal) {
        this.xPos = initialXVal;
        this.yPos = initialYVal;
    }

    public float getX() {
        return xPos;
    }

    public void setX(float x) {
        this.xPos = x;
    }

    public float getY() {
        return yPos;
    }

    public void setY(float y) {
        this.yPos = y;
    }

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

    public final void onDrawNegX(int mouseX, int mouseY) {
        if (dragging) {
            xPos = -(mouseX - startX);
            yPos = (mouseY - startY);
        }
    }

    public final void onClick(int mouseX, int mouseY, int button, boolean canDrag) {
        if (button == 0 && canDrag) {
            dragging = true;
            startX = (int) (mouseX - xPos);
            startY = (int) (mouseY - yPos);
        }
    }

    public final void onClickAddX(int mouseX, int mouseY, int button, boolean canDrag) {
        if (button == 0 && canDrag) {
            dragging = true;
            startX = (int) (mouseX + xPos);
            startY = (int) (mouseY - yPos);
        }
    }

    public final void onRelease(int button) {
        if (button == 0) dragging = false;
    }

}
credits: hellwave
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
25 Янв 2024
Сообщения
347
Реакции[?]
0
Поинты[?]
1K
ждем данный драггейбл в новых пастах, особенно от лехи акривера
сс -
Пожалуйста, авторизуйтесь для просмотра ссылки.


Первый код закидываете в Dragging.java
Dragging.java:
package fun.centric.api.utils.drag;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import fun.centric.api.utils.client.ClientUtil;
import fun.centric.api.utils.client.Vec2i;
import fun.centric.api.utils.math.MathUtil;
import fun.centric.modules.api.Function;
import fun.centric.api.utils.render.DisplayUtils;
import net.minecraft.client.MainWindow;

public class Dragging {
    @Expose
    @SerializedName("x")
    private float xPos;
    @Expose
    @SerializedName("y")
    private float yPos;

    public float initialXVal;
    public float initialYVal;

    private float startX, startY;
    private boolean dragging;

    private float width, height;

    @Expose
    @SerializedName("name")
    private final String name;

    private final Function module;

    private static final float CENTER_LINE_WIDTH = 1.0f;
    private static final float SNAP_THRESHOLD = 10.0f;

    private float lineAlpha = 0.0f;
    private long lastUpdateTime;

    public Dragging(Function module, String name, float initialXVal, float initialYVal) {
        this.module = module;
        this.name = name;
        this.xPos = initialXVal;
        this.yPos = initialYVal;
        this.initialXVal = initialXVal;
        this.initialYVal = initialYVal;
    }

    public Function getModule() {
        return module;
    }

    public String getName() {
        return name;
    }

    public float getWidth() {
        return width;
    }

    public void setWidth(float width) {
        this.width = width;
    }

    public float getHeight() {
        return height;
    }

    public void setHeight(float height) {
        this.height = height;
    }

    public float getX() {
        return xPos;
    }

    public void setX(float x) {
        this.xPos = x;
    }

    public float getY() {
        return yPos;
    }

    public void setY(float y) {
        this.yPos = y;
    }

    public final void onDraw(int mouseX, int mouseY, MainWindow res) {
        Vec2i fixed = ClientUtil.getMouse(mouseX, mouseY);
        mouseX = fixed.getX();
        mouseY = fixed.getY();
    
        float centerX = res.scaledWidth() / 2.0f;
        float centerY = res.scaledHeight() / 2.0f;

        if (dragging) {
            xPos = (mouseX - startX);
            yPos = (mouseY - startY);
        
            if (Math.abs(xPos + width / 2.0f - centerX) < SNAP_THRESHOLD) {
                xPos = centerX - width / 2.0f;
            }
        
            if (Math.abs(yPos + height / 2.0f - centerY) < SNAP_THRESHOLD) {
                yPos = centerY - height / 2.0f;
            }
        
            if (xPos + width > res.scaledWidth()) {
                xPos = res.scaledWidth() - width;
            }
            if (yPos + height > res.scaledHeight()) {
                yPos = res.scaledHeight() - height;
            }
            if (xPos < 0) {
                xPos = 0;
            }
            if (yPos < 0) {
                yPos = 0;
            }
        
            updateLineAlpha(true);
        } else {
            updateLineAlpha(false);
        }
    
        drawCenterLines(res);
    }

    private void updateLineAlpha(boolean increasing) {
        long currentTime = System.currentTimeMillis();
        float deltaTime = (currentTime - lastUpdateTime) / 1000.0f;
        lastUpdateTime = currentTime;

        if (increasing) {
            lineAlpha += deltaTime * 2.0f;
            if (lineAlpha > 1.0f) {
                lineAlpha = 1.0f;
            }
        } else {
            lineAlpha -= deltaTime * 2.0f;
            if (lineAlpha < 0.0f) {
                lineAlpha = 0.0f;
            }
        }
    }

    private void drawCenterLines(MainWindow res) {
        if (lineAlpha > 0.0f) {
            float centerX = res.scaledWidth() / 2.0f;
            float centerY = res.scaledHeight() / 2.0f;

            int color = (int) (lineAlpha * 255) << 24 | 0xFFFFFF;

            DisplayUtils.drawRoundedRect(centerX - CENTER_LINE_WIDTH / 2.0f, 0, CENTER_LINE_WIDTH, res.scaledHeight(), 1, color);
            DisplayUtils.drawRoundedRect(0, centerY - CENTER_LINE_WIDTH / 2.0f, res.scaledWidth(), CENTER_LINE_WIDTH, 1, color);
        }
    }

    public final boolean onClick(double mouseX, double mouseY, int button) {
        Vec2i fixed = ClientUtil.getMouse((int) mouseX, (int) mouseY);
        mouseX = fixed.getX();
        mouseY = fixed.getY();
        if (button == 0 && MathUtil.isHovered((float) mouseX, (float) mouseY, xPos, yPos, width, height)) {
            dragging = true;
            startX = (int) (mouseX - xPos);
            startY = (int) (mouseY - yPos);
            lastUpdateTime = System.currentTimeMillis();
            return true;
        }
        return false;
    }

    public final void onRelease(int button) {
        if (button == 0) dragging = false;
    }
}
Этот в Drag.java
Drag.java:
package fun.centric.api.utils.drag;

public class Drag {

    private float xPos, yPos;
    private float startX, startY;
    private boolean dragging;

    public Drag(float initialXVal, float initialYVal) {
        this.xPos = initialXVal;
        this.yPos = initialYVal;
    }

    public float getX() {
        return xPos;
    }

    public void setX(float x) {
        this.xPos = x;
    }

    public float getY() {
        return yPos;
    }

    public void setY(float y) {
        this.yPos = y;
    }

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

    public final void onDrawNegX(int mouseX, int mouseY) {
        if (dragging) {
            xPos = -(mouseX - startX);
            yPos = (mouseY - startY);
        }
    }

    public final void onClick(int mouseX, int mouseY, int button, boolean canDrag) {
        if (button == 0 && canDrag) {
            dragging = true;
            startX = (int) (mouseX - xPos);
            startY = (int) (mouseY - yPos);
        }
    }

    public final void onClickAddX(int mouseX, int mouseY, int button, boolean canDrag) {
        if (button == 0 && canDrag) {
            dragging = true;
            startX = (int) (mouseX + xPos);
            startY = (int) (mouseY - yPos);
        }
    }

    public final void onRelease(int button) {
        if (button == 0) dragging = false;
    }

}
credits: hellwave
+rep
 
Начинающий
Статус
Оффлайн
Регистрация
7 Мар 2024
Сообщения
294
Реакции[?]
6
Поинты[?]
4K
ждем данный драггейбл в новых пастах, особенно от лехи акривера
сс -
Пожалуйста, авторизуйтесь для просмотра ссылки.


Первый код закидываете в Dragging.java
Dragging.java:
package fun.centric.api.utils.drag;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import fun.centric.api.utils.client.ClientUtil;
import fun.centric.api.utils.client.Vec2i;
import fun.centric.api.utils.math.MathUtil;
import fun.centric.modules.api.Function;
import fun.centric.api.utils.render.DisplayUtils;
import net.minecraft.client.MainWindow;

public class Dragging {
    @Expose
    @SerializedName("x")
    private float xPos;
    @Expose
    @SerializedName("y")
    private float yPos;

    public float initialXVal;
    public float initialYVal;

    private float startX, startY;
    private boolean dragging;

    private float width, height;

    @Expose
    @SerializedName("name")
    private final String name;

    private final Function module;

    private static final float CENTER_LINE_WIDTH = 1.0f;
    private static final float SNAP_THRESHOLD = 10.0f;

    private float lineAlpha = 0.0f;
    private long lastUpdateTime;

    public Dragging(Function module, String name, float initialXVal, float initialYVal) {
        this.module = module;
        this.name = name;
        this.xPos = initialXVal;
        this.yPos = initialYVal;
        this.initialXVal = initialXVal;
        this.initialYVal = initialYVal;
    }

    public Function getModule() {
        return module;
    }

    public String getName() {
        return name;
    }

    public float getWidth() {
        return width;
    }

    public void setWidth(float width) {
        this.width = width;
    }

    public float getHeight() {
        return height;
    }

    public void setHeight(float height) {
        this.height = height;
    }

    public float getX() {
        return xPos;
    }

    public void setX(float x) {
        this.xPos = x;
    }

    public float getY() {
        return yPos;
    }

    public void setY(float y) {
        this.yPos = y;
    }

    public final void onDraw(int mouseX, int mouseY, MainWindow res) {
        Vec2i fixed = ClientUtil.getMouse(mouseX, mouseY);
        mouseX = fixed.getX();
        mouseY = fixed.getY();
    
        float centerX = res.scaledWidth() / 2.0f;
        float centerY = res.scaledHeight() / 2.0f;

        if (dragging) {
            xPos = (mouseX - startX);
            yPos = (mouseY - startY);
        
            if (Math.abs(xPos + width / 2.0f - centerX) < SNAP_THRESHOLD) {
                xPos = centerX - width / 2.0f;
            }
        
            if (Math.abs(yPos + height / 2.0f - centerY) < SNAP_THRESHOLD) {
                yPos = centerY - height / 2.0f;
            }
        
            if (xPos + width > res.scaledWidth()) {
                xPos = res.scaledWidth() - width;
            }
            if (yPos + height > res.scaledHeight()) {
                yPos = res.scaledHeight() - height;
            }
            if (xPos < 0) {
                xPos = 0;
            }
            if (yPos < 0) {
                yPos = 0;
            }
        
            updateLineAlpha(true);
        } else {
            updateLineAlpha(false);
        }
    
        drawCenterLines(res);
    }

    private void updateLineAlpha(boolean increasing) {
        long currentTime = System.currentTimeMillis();
        float deltaTime = (currentTime - lastUpdateTime) / 1000.0f;
        lastUpdateTime = currentTime;

        if (increasing) {
            lineAlpha += deltaTime * 2.0f;
            if (lineAlpha > 1.0f) {
                lineAlpha = 1.0f;
            }
        } else {
            lineAlpha -= deltaTime * 2.0f;
            if (lineAlpha < 0.0f) {
                lineAlpha = 0.0f;
            }
        }
    }

    private void drawCenterLines(MainWindow res) {
        if (lineAlpha > 0.0f) {
            float centerX = res.scaledWidth() / 2.0f;
            float centerY = res.scaledHeight() / 2.0f;

            int color = (int) (lineAlpha * 255) << 24 | 0xFFFFFF;

            DisplayUtils.drawRoundedRect(centerX - CENTER_LINE_WIDTH / 2.0f, 0, CENTER_LINE_WIDTH, res.scaledHeight(), 1, color);
            DisplayUtils.drawRoundedRect(0, centerY - CENTER_LINE_WIDTH / 2.0f, res.scaledWidth(), CENTER_LINE_WIDTH, 1, color);
        }
    }

    public final boolean onClick(double mouseX, double mouseY, int button) {
        Vec2i fixed = ClientUtil.getMouse((int) mouseX, (int) mouseY);
        mouseX = fixed.getX();
        mouseY = fixed.getY();
        if (button == 0 && MathUtil.isHovered((float) mouseX, (float) mouseY, xPos, yPos, width, height)) {
            dragging = true;
            startX = (int) (mouseX - xPos);
            startY = (int) (mouseY - yPos);
            lastUpdateTime = System.currentTimeMillis();
            return true;
        }
        return false;
    }

    public final void onRelease(int button) {
        if (button == 0) dragging = false;
    }
}
Этот в Drag.java
Drag.java:
package fun.centric.api.utils.drag;

public class Drag {

    private float xPos, yPos;
    private float startX, startY;
    private boolean dragging;

    public Drag(float initialXVal, float initialYVal) {
        this.xPos = initialXVal;
        this.yPos = initialYVal;
    }

    public float getX() {
        return xPos;
    }

    public void setX(float x) {
        this.xPos = x;
    }

    public float getY() {
        return yPos;
    }

    public void setY(float y) {
        this.yPos = y;
    }

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

    public final void onDrawNegX(int mouseX, int mouseY) {
        if (dragging) {
            xPos = -(mouseX - startX);
            yPos = (mouseY - startY);
        }
    }

    public final void onClick(int mouseX, int mouseY, int button, boolean canDrag) {
        if (button == 0 && canDrag) {
            dragging = true;
            startX = (int) (mouseX - xPos);
            startY = (int) (mouseY - yPos);
        }
    }

    public final void onClickAddX(int mouseX, int mouseY, int button, boolean canDrag) {
        if (button == 0 && canDrag) {
            dragging = true;
            startX = (int) (mouseX + xPos);
            startY = (int) (mouseY - yPos);
        }
    }

    public final void onRelease(int button) {
        if (button == 0) dragging = false;
    }

}
credits: hellwave
В Tense сливали в 2 раза лучше
 
Начинающий
Статус
Оффлайн
Регистрация
12 Авг 2021
Сообщения
149
Реакции[?]
3
Поинты[?]
2K
ждем данный драггейбл в новых пастах, особенно от лехи акривера
сс -
Пожалуйста, авторизуйтесь для просмотра ссылки.


Первый код закидываете в Dragging.java
Dragging.java:
package fun.centric.api.utils.drag;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import fun.centric.api.utils.client.ClientUtil;
import fun.centric.api.utils.client.Vec2i;
import fun.centric.api.utils.math.MathUtil;
import fun.centric.modules.api.Function;
import fun.centric.api.utils.render.DisplayUtils;
import net.minecraft.client.MainWindow;

public class Dragging {
    @Expose
    @SerializedName("x")
    private float xPos;
    @Expose
    @SerializedName("y")
    private float yPos;

    public float initialXVal;
    public float initialYVal;

    private float startX, startY;
    private boolean dragging;

    private float width, height;

    @Expose
    @SerializedName("name")
    private final String name;

    private final Function module;

    private static final float CENTER_LINE_WIDTH = 1.0f;
    private static final float SNAP_THRESHOLD = 10.0f;

    private float lineAlpha = 0.0f;
    private long lastUpdateTime;

    public Dragging(Function module, String name, float initialXVal, float initialYVal) {
        this.module = module;
        this.name = name;
        this.xPos = initialXVal;
        this.yPos = initialYVal;
        this.initialXVal = initialXVal;
        this.initialYVal = initialYVal;
    }

    public Function getModule() {
        return module;
    }

    public String getName() {
        return name;
    }

    public float getWidth() {
        return width;
    }

    public void setWidth(float width) {
        this.width = width;
    }

    public float getHeight() {
        return height;
    }

    public void setHeight(float height) {
        this.height = height;
    }

    public float getX() {
        return xPos;
    }

    public void setX(float x) {
        this.xPos = x;
    }

    public float getY() {
        return yPos;
    }

    public void setY(float y) {
        this.yPos = y;
    }

    public final void onDraw(int mouseX, int mouseY, MainWindow res) {
        Vec2i fixed = ClientUtil.getMouse(mouseX, mouseY);
        mouseX = fixed.getX();
        mouseY = fixed.getY();
    
        float centerX = res.scaledWidth() / 2.0f;
        float centerY = res.scaledHeight() / 2.0f;

        if (dragging) {
            xPos = (mouseX - startX);
            yPos = (mouseY - startY);
        
            if (Math.abs(xPos + width / 2.0f - centerX) < SNAP_THRESHOLD) {
                xPos = centerX - width / 2.0f;
            }
        
            if (Math.abs(yPos + height / 2.0f - centerY) < SNAP_THRESHOLD) {
                yPos = centerY - height / 2.0f;
            }
        
            if (xPos + width > res.scaledWidth()) {
                xPos = res.scaledWidth() - width;
            }
            if (yPos + height > res.scaledHeight()) {
                yPos = res.scaledHeight() - height;
            }
            if (xPos < 0) {
                xPos = 0;
            }
            if (yPos < 0) {
                yPos = 0;
            }
        
            updateLineAlpha(true);
        } else {
            updateLineAlpha(false);
        }
    
        drawCenterLines(res);
    }

    private void updateLineAlpha(boolean increasing) {
        long currentTime = System.currentTimeMillis();
        float deltaTime = (currentTime - lastUpdateTime) / 1000.0f;
        lastUpdateTime = currentTime;

        if (increasing) {
            lineAlpha += deltaTime * 2.0f;
            if (lineAlpha > 1.0f) {
                lineAlpha = 1.0f;
            }
        } else {
            lineAlpha -= deltaTime * 2.0f;
            if (lineAlpha < 0.0f) {
                lineAlpha = 0.0f;
            }
        }
    }

    private void drawCenterLines(MainWindow res) {
        if (lineAlpha > 0.0f) {
            float centerX = res.scaledWidth() / 2.0f;
            float centerY = res.scaledHeight() / 2.0f;

            int color = (int) (lineAlpha * 255) << 24 | 0xFFFFFF;

            DisplayUtils.drawRoundedRect(centerX - CENTER_LINE_WIDTH / 2.0f, 0, CENTER_LINE_WIDTH, res.scaledHeight(), 1, color);
            DisplayUtils.drawRoundedRect(0, centerY - CENTER_LINE_WIDTH / 2.0f, res.scaledWidth(), CENTER_LINE_WIDTH, 1, color);
        }
    }

    public final boolean onClick(double mouseX, double mouseY, int button) {
        Vec2i fixed = ClientUtil.getMouse((int) mouseX, (int) mouseY);
        mouseX = fixed.getX();
        mouseY = fixed.getY();
        if (button == 0 && MathUtil.isHovered((float) mouseX, (float) mouseY, xPos, yPos, width, height)) {
            dragging = true;
            startX = (int) (mouseX - xPos);
            startY = (int) (mouseY - yPos);
            lastUpdateTime = System.currentTimeMillis();
            return true;
        }
        return false;
    }

    public final void onRelease(int button) {
        if (button == 0) dragging = false;
    }
}
Этот в Drag.java
Drag.java:
package fun.centric.api.utils.drag;

public class Drag {

    private float xPos, yPos;
    private float startX, startY;
    private boolean dragging;

    public Drag(float initialXVal, float initialYVal) {
        this.xPos = initialXVal;
        this.yPos = initialYVal;
    }

    public float getX() {
        return xPos;
    }

    public void setX(float x) {
        this.xPos = x;
    }

    public float getY() {
        return yPos;
    }

    public void setY(float y) {
        this.yPos = y;
    }

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

    public final void onDrawNegX(int mouseX, int mouseY) {
        if (dragging) {
            xPos = -(mouseX - startX);
            yPos = (mouseY - startY);
        }
    }

    public final void onClick(int mouseX, int mouseY, int button, boolean canDrag) {
        if (button == 0 && canDrag) {
            dragging = true;
            startX = (int) (mouseX - xPos);
            startY = (int) (mouseY - yPos);
        }
    }

    public final void onClickAddX(int mouseX, int mouseY, int button, boolean canDrag) {
        if (button == 0 && canDrag) {
            dragging = true;
            startX = (int) (mouseX + xPos);
            startY = (int) (mouseY - yPos);
        }
    }

    public final void onRelease(int button) {
        if (button == 0) dragging = false;
    }

}
credits: hellwave
сетка != перекрестие
 
Начинающий
Статус
Оффлайн
Регистрация
18 Апр 2024
Сообщения
14
Реакции[?]
0
Поинты[?]
0
т
ждем данный драггейбл в новых пастах, особенно от лехи акривера
сс -
Пожалуйста, авторизуйтесь для просмотра ссылки.


Первый код закидываете в Dragging.java
Dragging.java:
package fun.centric.api.utils.drag;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import fun.centric.api.utils.client.ClientUtil;
import fun.centric.api.utils.client.Vec2i;
import fun.centric.api.utils.math.MathUtil;
import fun.centric.modules.api.Function;
import fun.centric.api.utils.render.DisplayUtils;
import net.minecraft.client.MainWindow;

public class Dragging {
    @Expose
    @SerializedName("x")
    private float xPos;
    @Expose
    @SerializedName("y")
    private float yPos;

    public float initialXVal;
    public float initialYVal;

    private float startX, startY;
    private boolean dragging;

    private float width, height;

    @Expose
    @SerializedName("name")
    private final String name;

    private final Function module;

    private static final float CENTER_LINE_WIDTH = 1.0f;
    private static final float SNAP_THRESHOLD = 10.0f;

    private float lineAlpha = 0.0f;
    private long lastUpdateTime;

    public Dragging(Function module, String name, float initialXVal, float initialYVal) {
        this.module = module;
        this.name = name;
        this.xPos = initialXVal;
        this.yPos = initialYVal;
        this.initialXVal = initialXVal;
        this.initialYVal = initialYVal;
    }

    public Function getModule() {
        return module;
    }

    public String getName() {
        return name;
    }

    public float getWidth() {
        return width;
    }

    public void setWidth(float width) {
        this.width = width;
    }

    public float getHeight() {
        return height;
    }

    public void setHeight(float height) {
        this.height = height;
    }

    public float getX() {
        return xPos;
    }

    public void setX(float x) {
        this.xPos = x;
    }

    public float getY() {
        return yPos;
    }

    public void setY(float y) {
        this.yPos = y;
    }

    public final void onDraw(int mouseX, int mouseY, MainWindow res) {
        Vec2i fixed = ClientUtil.getMouse(mouseX, mouseY);
        mouseX = fixed.getX();
        mouseY = fixed.getY();
    
        float centerX = res.scaledWidth() / 2.0f;
        float centerY = res.scaledHeight() / 2.0f;

        if (dragging) {
            xPos = (mouseX - startX);
            yPos = (mouseY - startY);
        
            if (Math.abs(xPos + width / 2.0f - centerX) < SNAP_THRESHOLD) {
                xPos = centerX - width / 2.0f;
            }
        
            if (Math.abs(yPos + height / 2.0f - centerY) < SNAP_THRESHOLD) {
                yPos = centerY - height / 2.0f;
            }
        
            if (xPos + width > res.scaledWidth()) {
                xPos = res.scaledWidth() - width;
            }
            if (yPos + height > res.scaledHeight()) {
                yPos = res.scaledHeight() - height;
            }
            if (xPos < 0) {
                xPos = 0;
            }
            if (yPos < 0) {
                yPos = 0;
            }
        
            updateLineAlpha(true);
        } else {
            updateLineAlpha(false);
        }
    
        drawCenterLines(res);
    }

    private void updateLineAlpha(boolean increasing) {
        long currentTime = System.currentTimeMillis();
        float deltaTime = (currentTime - lastUpdateTime) / 1000.0f;
        lastUpdateTime = currentTime;

        if (increasing) {
            lineAlpha += deltaTime * 2.0f;
            if (lineAlpha > 1.0f) {
                lineAlpha = 1.0f;
            }
        } else {
            lineAlpha -= deltaTime * 2.0f;
            if (lineAlpha < 0.0f) {
                lineAlpha = 0.0f;
            }
        }
    }

    private void drawCenterLines(MainWindow res) {
        if (lineAlpha > 0.0f) {
            float centerX = res.scaledWidth() / 2.0f;
            float centerY = res.scaledHeight() / 2.0f;

            int color = (int) (lineAlpha * 255) << 24 | 0xFFFFFF;

            DisplayUtils.drawRoundedRect(centerX - CENTER_LINE_WIDTH / 2.0f, 0, CENTER_LINE_WIDTH, res.scaledHeight(), 1, color);
            DisplayUtils.drawRoundedRect(0, centerY - CENTER_LINE_WIDTH / 2.0f, res.scaledWidth(), CENTER_LINE_WIDTH, 1, color);
        }
    }

    public final boolean onClick(double mouseX, double mouseY, int button) {
        Vec2i fixed = ClientUtil.getMouse((int) mouseX, (int) mouseY);
        mouseX = fixed.getX();
        mouseY = fixed.getY();
        if (button == 0 && MathUtil.isHovered((float) mouseX, (float) mouseY, xPos, yPos, width, height)) {
            dragging = true;
            startX = (int) (mouseX - xPos);
            startY = (int) (mouseY - yPos);
            lastUpdateTime = System.currentTimeMillis();
            return true;
        }
        return false;
    }

    public final void onRelease(int button) {
        if (button == 0) dragging = false;
    }
}
Этот в Drag.java
Drag.java:
package fun.centric.api.utils.drag;

public class Drag {

    private float xPos, yPos;
    private float startX, startY;
    private boolean dragging;

    public Drag(float initialXVal, float initialYVal) {
        this.xPos = initialXVal;
        this.yPos = initialYVal;
    }

    public float getX() {
        return xPos;
    }

    public void setX(float x) {
        this.xPos = x;
    }

    public float getY() {
        return yPos;
    }

    public void setY(float y) {
        this.yPos = y;
    }

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

    public final void onDrawNegX(int mouseX, int mouseY) {
        if (dragging) {
            xPos = -(mouseX - startX);
            yPos = (mouseY - startY);
        }
    }

    public final void onClick(int mouseX, int mouseY, int button, boolean canDrag) {
        if (button == 0 && canDrag) {
            dragging = true;
            startX = (int) (mouseX - xPos);
            startY = (int) (mouseY - yPos);
        }
    }

    public final void onClickAddX(int mouseX, int mouseY, int button, boolean canDrag) {
        if (button == 0 && canDrag) {
            dragging = true;
            startX = (int) (mouseX + xPos);
            startY = (int) (mouseY - yPos);
        }
    }

    public final void onRelease(int button) {
        if (button == 0) dragging = false;
    }

}
credits: hellwave
так а в чём прикол типо скид нурлана так ты просто рендерку сделал без функцонала какой тебе +rep 15 sek кода
 
Начинающий
Статус
Оффлайн
Регистрация
12 Сен 2022
Сообщения
308
Реакции[?]
7
Поинты[?]
3K
ждем данный драггейбл в новых пастах, особенно от лехи акривера
сс -
Пожалуйста, авторизуйтесь для просмотра ссылки.


Первый код закидываете в Dragging.java
Dragging.java:
package fun.centric.api.utils.drag;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import fun.centric.api.utils.client.ClientUtil;
import fun.centric.api.utils.client.Vec2i;
import fun.centric.api.utils.math.MathUtil;
import fun.centric.modules.api.Function;
import fun.centric.api.utils.render.DisplayUtils;
import net.minecraft.client.MainWindow;

public class Dragging {
    @Expose
    @SerializedName("x")
    private float xPos;
    @Expose
    @SerializedName("y")
    private float yPos;

    public float initialXVal;
    public float initialYVal;

    private float startX, startY;
    private boolean dragging;

    private float width, height;

    @Expose
    @SerializedName("name")
    private final String name;

    private final Function module;

    private static final float CENTER_LINE_WIDTH = 1.0f;
    private static final float SNAP_THRESHOLD = 10.0f;

    private float lineAlpha = 0.0f;
    private long lastUpdateTime;

    public Dragging(Function module, String name, float initialXVal, float initialYVal) {
        this.module = module;
        this.name = name;
        this.xPos = initialXVal;
        this.yPos = initialYVal;
        this.initialXVal = initialXVal;
        this.initialYVal = initialYVal;
    }

    public Function getModule() {
        return module;
    }

    public String getName() {
        return name;
    }

    public float getWidth() {
        return width;
    }

    public void setWidth(float width) {
        this.width = width;
    }

    public float getHeight() {
        return height;
    }

    public void setHeight(float height) {
        this.height = height;
    }

    public float getX() {
        return xPos;
    }

    public void setX(float x) {
        this.xPos = x;
    }

    public float getY() {
        return yPos;
    }

    public void setY(float y) {
        this.yPos = y;
    }

    public final void onDraw(int mouseX, int mouseY, MainWindow res) {
        Vec2i fixed = ClientUtil.getMouse(mouseX, mouseY);
        mouseX = fixed.getX();
        mouseY = fixed.getY();
    
        float centerX = res.scaledWidth() / 2.0f;
        float centerY = res.scaledHeight() / 2.0f;

        if (dragging) {
            xPos = (mouseX - startX);
            yPos = (mouseY - startY);
        
            if (Math.abs(xPos + width / 2.0f - centerX) < SNAP_THRESHOLD) {
                xPos = centerX - width / 2.0f;
            }
        
            if (Math.abs(yPos + height / 2.0f - centerY) < SNAP_THRESHOLD) {
                yPos = centerY - height / 2.0f;
            }
        
            if (xPos + width > res.scaledWidth()) {
                xPos = res.scaledWidth() - width;
            }
            if (yPos + height > res.scaledHeight()) {
                yPos = res.scaledHeight() - height;
            }
            if (xPos < 0) {
                xPos = 0;
            }
            if (yPos < 0) {
                yPos = 0;
            }
        
            updateLineAlpha(true);
        } else {
            updateLineAlpha(false);
        }
    
        drawCenterLines(res);
    }

    private void updateLineAlpha(boolean increasing) {
        long currentTime = System.currentTimeMillis();
        float deltaTime = (currentTime - lastUpdateTime) / 1000.0f;
        lastUpdateTime = currentTime;

        if (increasing) {
            lineAlpha += deltaTime * 2.0f;
            if (lineAlpha > 1.0f) {
                lineAlpha = 1.0f;
            }
        } else {
            lineAlpha -= deltaTime * 2.0f;
            if (lineAlpha < 0.0f) {
                lineAlpha = 0.0f;
            }
        }
    }

    private void drawCenterLines(MainWindow res) {
        if (lineAlpha > 0.0f) {
            float centerX = res.scaledWidth() / 2.0f;
            float centerY = res.scaledHeight() / 2.0f;

            int color = (int) (lineAlpha * 255) << 24 | 0xFFFFFF;

            DisplayUtils.drawRoundedRect(centerX - CENTER_LINE_WIDTH / 2.0f, 0, CENTER_LINE_WIDTH, res.scaledHeight(), 1, color);
            DisplayUtils.drawRoundedRect(0, centerY - CENTER_LINE_WIDTH / 2.0f, res.scaledWidth(), CENTER_LINE_WIDTH, 1, color);
        }
    }

    public final boolean onClick(double mouseX, double mouseY, int button) {
        Vec2i fixed = ClientUtil.getMouse((int) mouseX, (int) mouseY);
        mouseX = fixed.getX();
        mouseY = fixed.getY();
        if (button == 0 && MathUtil.isHovered((float) mouseX, (float) mouseY, xPos, yPos, width, height)) {
            dragging = true;
            startX = (int) (mouseX - xPos);
            startY = (int) (mouseY - yPos);
            lastUpdateTime = System.currentTimeMillis();
            return true;
        }
        return false;
    }

    public final void onRelease(int button) {
        if (button == 0) dragging = false;
    }
}
Этот в Drag.java
Drag.java:
package fun.centric.api.utils.drag;

public class Drag {

    private float xPos, yPos;
    private float startX, startY;
    private boolean dragging;

    public Drag(float initialXVal, float initialYVal) {
        this.xPos = initialXVal;
        this.yPos = initialYVal;
    }

    public float getX() {
        return xPos;
    }

    public void setX(float x) {
        this.xPos = x;
    }

    public float getY() {
        return yPos;
    }

    public void setY(float y) {
        this.yPos = y;
    }

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

    public final void onDrawNegX(int mouseX, int mouseY) {
        if (dragging) {
            xPos = -(mouseX - startX);
            yPos = (mouseY - startY);
        }
    }

    public final void onClick(int mouseX, int mouseY, int button, boolean canDrag) {
        if (button == 0 && canDrag) {
            dragging = true;
            startX = (int) (mouseX - xPos);
            startY = (int) (mouseY - yPos);
        }
    }

    public final void onClickAddX(int mouseX, int mouseY, int button, boolean canDrag) {
        if (button == 0 && canDrag) {
            dragging = true;
            startX = (int) (mouseX + xPos);
            startY = (int) (mouseY - yPos);
        }
    }

    public final void onRelease(int button) {
        if (button == 0) dragging = false;
    }

}
credits: hellwave
что это делает вообще зачем
 
Начинающий
Статус
Оффлайн
Регистрация
27 Ноя 2021
Сообщения
54
Реакции[?]
1
Поинты[?]
3K
т

так а в чём прикол типо скид нурлана так ты просто рендерку сделал без функцонала какой тебе +rep 15 sek кода
Так ты накоди еблан я и то зная джаву сделал за 15м
Тип нахуй ты свою пасту сливаешь сделай сам накоди и потом пизди что-то
Ливни с форума пастер ебаный
Ты пытаешься сделать скид нурика но нихуя не получается а ведь надо просто добавить в метод рект и всё нахуя страдать хуйней, и еще советик тебе создай свою базу
 
Начинающий
Статус
Оффлайн
Регистрация
28 Окт 2022
Сообщения
136
Реакции[?]
5
Поинты[?]
3K
Так ты накоди еблан я и то зная джаву сделал за 15м

Тип нахуй ты свою пасту сливаешь сделай сам накоди и потом пизди что-то
Ливни с форума пастер ебаный
Ты пытаешься сделать скид нурика но нихуя не получается а ведь надо просто добавить в метод рект и всё нахуя страдать хуйней, и еще советик тебе создай свою базу
1719480705882.png
1719480759513.png
еблан я и то зная джаву
Ливни с форума пастер ебаный
создай свою базу
:dizzy:
Hack3R youtube
 
Сверху Снизу