Начинающий
- Статус
- Оффлайн
- Регистрация
- 20 Июл 2024
- Сообщения
- 11
- Реакции
- 0
- Выберите загрузчик игры
- OptiFine
- ForgeOptiFine
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Пожалуйста, авторизуйтесь для просмотра ссылки.
адекватный
MotionGraph, для past$$ов чилл + вайб
Код:
package fun.netreex.ui.display.impl;
import com.mojang.blaze3d.matrix.MatrixStack;
import fun.netreex.Netreex;
import fun.netreex.events.EventDisplay;
import fun.netreex.events.EventUpdate;
import fun.netreex.ui.display.ElementRenderer;
import fun.netreex.ui.styles.StyleManager;
import fun.netreex.utils.drag.Dragging;
import fun.netreex.utils.render.ColorUtils;
import fun.netreex.utils.render.DisplayUtils;
import fun.netreex.utils.render.Scissor;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import org.lwjgl.opengl.GL11;
import java.util.ArrayList;
@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class MotionGraphRenderer implements ElementRenderer {
private final Dragging dragging;
private final Minecraft mc = Minecraft.getInstance();
private final ArrayList<Double> heightHistory = new ArrayList<>();
private double lastY;
public void tick() {
this.lastY = mc.player.getPosY();
this.heightHistory.add(this.lastY);
if (this.heightHistory.size() > 150) {
this.heightHistory.remove(0);
}
}
@Override
public void render(EventDisplay eventDisplay) {
MatrixStack ms = eventDisplay.getMatrixStack();
float posX = this.dragging.getX();
float posY = this.dragging.getY();
renderHeightGraph(ms, posX, posY);
Scissor.unset();
}
private void renderHeightGraph(MatrixStack ms, float posX, float posY) {
int width = 120;
int height = 50;
int bgColor = ColorUtils.rgba(20, 20, 30, 180);
DisplayUtils.drawRoundedRect((int)posX, (int)posY, width, height, 3, bgColor);
int borderColor = ColorUtils.rgba(60, 60, 80, 150);
GL11.glLineWidth(1.5f);
GL11.glBegin(GL11.GL_LINE_LOOP);
GL11.glColor4f(
((borderColor >> 16) & 0xFF) / 255.0f,
((borderColor >> 8) & 0xFF) / 255.0f,
(borderColor & 0xFF) / 255.0f,
((borderColor >> 24) & 0xFF) / 255.0f
);
GL11.glVertex2d(posX, posY);
GL11.glVertex2d(posX + width, posY);
GL11.glVertex2d(posX + width, posY + height);
GL11.glVertex2d(posX, posY + height);
GL11.glEnd();
if (this.heightHistory.size() < 2) {
return;
}
double maxY = this.heightHistory.stream().mapToDouble(Double::doubleValue).max().orElse(100.0);
double minY = this.heightHistory.stream().mapToDouble(Double::doubleValue).min().orElse(0.0);
double range = maxY - minY;
if (range < 0.1) range = 0.1;
GL11.glPushMatrix();
GL11.glDisable(GL11.GL_TEXTURE_2D);
GL11.glEnable(GL11.GL_LINE_SMOOTH);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glLineWidth(3.0F);
GL11.glBegin(GL11.GL_LINE_STRIP);
StyleManager styleManager = Netreex.getInstance().getStyleManager();
int firstColor = styleManager.getCurrentStyle().getFirstColor().getRGB();
GL11.glColor4f(
((firstColor >> 16) & 0xFF) / 255.0f,
((firstColor >> 8) & 0xFF) / 255.0f,
(firstColor & 0xFF) / 255.0f,
0.9f
);
for (int i = 0; i < this.heightHistory.size(); i++) {
double x = posX + 2 + (i * (width - 4.0) / (this.heightHistory.size() - 1));
double value = this.heightHistory.get(i);
double normalized = (value - minY) / range;
double yPos = posY + height - 5 - (normalized * (height - 10));
GL11.glVertex2d(x, yPos);
}
GL11.glEnd();
GL11.glBegin(GL11.GL_QUAD_STRIP);
GL11.glColor4f(0.3f, 0.5f, 1.0f, 0.15f);
for (int i = 0; i < this.heightHistory.size(); i++) {
double x = posX + 2 + (i * (width - 4.0) / (this.heightHistory.size() - 1));
double value = this.heightHistory.get(i);
double normalized = (value - minY) / range;
double yPos = posY + height - 5 - (normalized * (height - 10));
GL11.glVertex2d(x, yPos);
GL11.glVertex2d(x, posY + height - 5);
}
GL11.glEnd();
GL11.glDisable(GL11.GL_BLEND);
GL11.glDisable(GL11.GL_LINE_SMOOTH);
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glPopMatrix();
dragging.setWidth(width);
dragging.setHeight(height);
}
public void update(EventUpdate e) {
tick();
}
}
Последнее редактирование: