Начинающий
Начинающий
- Статус
- Оффлайн
- Регистрация
- 7 Май 2025
- Сообщения
- 11
- Реакции
- 0
- Выберите загрузчик игры
- Прочие моды
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
незнаю зачем,моя первая тема на форуме не пинайте!
ss
ss
Пожалуйста, авторизуйтесь для просмотра ссылки.
govnocode:
package im.expensive.ui.display.impl;
import com.mojang.blaze3d.matrix.MatrixStack;
import im.expensive.Expensive;
import im.expensive.events.EventDisplay;
import im.expensive.events.EventUpdate;
import im.expensive.ui.display.ElementRenderer;
import im.expensive.ui.styles.StyleManager;
import im.expensive.utils.drag.Dragging;
import im.expensive.utils.render.ColorUtils;
import im.expensive.utils.render.DisplayUtils;
import im.expensive.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> height = new ArrayList<>();
private double bps;
public void tick() {
this.height.add(this.bps);
if (this.height.size() > 80) {
this.height.remove(0);
}
}
public void render(EventDisplay eventDisplay) {
MatrixStack ms = eventDisplay.getMatrixStack();
float posX = this.dragging.getX();
float posY = this.dragging.getY();
this.bps = Math.hypot(mc.player.prevPosX - mc.player.getPosX(), mc.player.prevPosZ - mc.player.getPosZ()) * 20.0D;
renderMotionGraph(ms, posX, posY);
Scissor.unset();
}
private void renderMotionGraph(MatrixStack ms, float posX, float posY) {
int width = 80;
int height = 30;
int color = ColorUtils.rgba(0, 0, 0, 190);
DisplayUtils.drawRoundedRect((int) posX, (int) posY, width, height, 5, color);
if (this.height.size() < 2) {
return;
}
double maxBps = Math.max(0.5, this.height.stream().mapToDouble(Double::doubleValue).max().orElse(1.0));
double minBps = this.height.stream().mapToDouble(Double::doubleValue).min().orElse(0.0);
double range = maxBps - minBps;
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(2.0F);
GL11.glBegin(GL11.GL_LINE_STRIP);
StyleManager styleManager = Expensive.getInstance().getStyleManager();
int firstColor = styleManager.getCurrentStyle().getFirstColor().getRGB();
float alpha = ((firstColor >> 24) & 0xFF) / 255.0f;
float red = ((firstColor >> 16) & 0xFF) / 255.0f;
float green = ((firstColor >> 8) & 0xFF) / 255.0f;
float blue = (firstColor & 0xFF) / 255.0f;
GL11.glColor4f(red, green, blue, alpha);
for (int i = 0; i < this.height.size(); i++) {
double x = posX + 1 + (i * (width - 2.0) / (this.height.size() - 1));
double value = this.height.get(i);
double normalized = (value - minBps) / range;
double y = posY + height - 3 - (normalized * (height - 6));
if (i % 10 == 0) {
}
GL11.glVertex2d(x, y);
}
GL11.glEnd();
GL11.glDisable(GL11.GL_BLEND);
GL11.glDisable(GL11.GL_LINE_SMOOTH);
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glPopMatrix();
String bpsText = String.format("%.1f BPS", this.bps);
float textX = posX + width + 5;
float textY = posY + 5;
int backgroundColor = ColorUtils.rgba(0, 0, 0, 150);
float textWidth = mc.fontRenderer.getStringWidth(bpsText);
float textHeight = 10;
DisplayUtils.drawRoundedRect((int) textX - 2, (int) textY - 2, (int) textWidth + 4, (int) textHeight + 2, 2, backgroundColor);
mc.fontRenderer.drawStringWithShadow(ms, bpsText, textX, textY, 0xFFFFFF);
dragging.setWidth(width);
dragging.setHeight(height);
}
public void update(EventUpdate e) {
tick();
}
}