Начинающий
- Статус
- Оффлайн
- Регистрация
- 9 Фев 2024
- Сообщения
- 88
- Реакции
- 0
- Выберите загрузчик игры
- Прочие моды
делаю на данке софт, написал дефолт ватермарку, это самая АДЕКВАТНАЯ моя вт из всех, что были.
пишите, если вам нужен фулл такой худ.
чат гпт мне не помогал.
ну я думаю если вы на 3.1 то перенесете, ибо это легче легкого.
Ах да, закругление покинуло чат. :astonished:
(id no ad!!!)
пишите, если вам нужен фулл такой худ.
чат гпт мне не помогал.
ну я думаю если вы на 3.1 то перенесете, ибо это легче легкого.
Ах да, закругление покинуло чат. :astonished:
wt:
package fun.danq.ui.clienthud.impl;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import fun.danq.Danq;
import fun.danq.events.EventRender2D;
import fun.danq.modules.impl.visual.HUD;
import fun.danq.ui.clienthud.updater.ElementRenderer;
import fun.danq.utils.math.MathUtility;
import fun.danq.utils.render.color.ColorUtility;
import fun.danq.utils.render.engine2d.RenderUtility;
import fun.danq.utils.render.engine2d.RectUtility;
import fun.danq.utils.render.font.Fonts;
import fun.danq.utils.text.BetterText;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.AbstractGui;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class Watermark implements ElementRenderer {
private final BetterText watermarkText = new BetterText(List.of(
"Свага",
"Несправедлиовсть",
"1.0",
"бууууустит)))"
), 1000);
private int fpsAnim, pingAnim;
private float blurRadius = 3f;
@Override
public void render(EventRender2D eventRender2D) {
fpsAnim = Minecraft.getInstance().debugFPS;
pingAnim = MathUtility.calculatePing();
MatrixStack ms = eventRender2D.getMatrixStack();
float x = 4;
float y = 4;
float padding = 5;
float iconSize = 10;
String text = watermarkText().toString();
float textWidth = Fonts.sf.getWidth(text, 8) + 25.5f;
float width = iconSize + padding + textWidth;
float height = iconSize + padding;
renderBlurredBackground(ms, x, y, width, height, blurRadius);
Fonts.sf.drawText(ms, text, x + iconSize + padding, y + (height - 8) / 2, -1, 8);
}
private void renderBlurredBackground(MatrixStack matrixStack, float x, float y, float width, float height, float radius) {
RenderSystem.enableBlend();
RenderSystem.defaultBlendFunc();
int passes = (int) (radius * 2);
float alpha = 0.7f / passes;
for (int i = 0; i < passes; i++) {
float offset = (i / (float) passes) * radius;
// Рисуем с разными смещениями и прозрачностью
RectUtility.drawRect(matrixStack,
x - offset, y - offset,
x + width + offset, y + height + offset,
ColorUtility.alpha(0x202020, alpha));
RectUtility.drawRect(matrixStack,
x + offset, y - offset,
x + width - offset, y + height + offset,
ColorUtility.alpha(0x202020, alpha));
RectUtility.drawRect(matrixStack,
x - offset, y + offset,
x + width + offset, y + height - offset,
ColorUtility.alpha(0x202020, alpha));
RectUtility.drawRect(matrixStack,
x + offset, y + offset,
x + width - offset, y + height - offset,
ColorUtility.alpha(0x202020, alpha));
}
RectUtility.drawRect(matrixStack, x, y, x + width, y + height, 0x80000000);
RenderSystem.disableBlend();
}
private StringBuilder watermarkText() {
StringBuilder watermarkText = new StringBuilder();
watermarkText.append("Alone-1.0");
String currentTime = new SimpleDateFormat("HH:mm:ss").format(new Date());
boolean showFps = isEnabled("Фпс");
boolean showPing = isEnabled("Пинг");
boolean showServer = isEnabled("Сервер");
boolean showTime = isEnabled("Время");
if (showFps || showPing || showServer || showTime) {
watermarkText.append(" ");
}
List<String> parts = new ArrayList<>();
if (showFps) {
parts.add(fpsAnim + "fps");
}
if (showPing) {
parts.add(pingAnim + "ms");
}
if (showTime) {
parts.add(currentTime);
}
if (showServer) {
String serverInfo = mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP != null
&& !mc.getCurrentServerData().serverIP.equals("45.93.200.8:25610")
? mc.getCurrentServerData().serverIP.toLowerCase()
: "Одиночный мир";
parts.add(serverInfo);
}
watermarkText.append(String.join(" ", parts));
return watermarkText;
}
private boolean isEnabled(String check) {
return Danq.getInst().getModuleRegister().getHud().waterMarkOptions.is(check).getValue();
}
}
если для вас шит пост, сорян!!!делаю на данке софт, написал дефолт ватермарку, это самая АДЕКВАТНАЯ моя вт из всех, что были.
пишите, если вам нужен фулл такой худ.
чат гпт мне не помогал.
ну я думаю если вы на 3.1 то перенесете, ибо это легче легкого.
Ах да, закругление покинуло чат. :astonished:
![]()
wt:package fun.danq.ui.clienthud.impl; import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; import fun.danq.Danq; import fun.danq.events.EventRender2D; import fun.danq.modules.impl.visual.HUD; import fun.danq.ui.clienthud.updater.ElementRenderer; import fun.danq.utils.math.MathUtility; import fun.danq.utils.render.color.ColorUtility; import fun.danq.utils.render.engine2d.RenderUtility; import fun.danq.utils.render.engine2d.RectUtility; import fun.danq.utils.render.font.Fonts; import fun.danq.utils.text.BetterText; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.AbstractGui; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @FieldDefaults(level = AccessLevel.PRIVATE) @RequiredArgsConstructor public class Watermark implements ElementRenderer { private final BetterText watermarkText = new BetterText(List.of( "Свага", "Несправедлиовсть", "1.0", "бууууустит)))" ), 1000); private int fpsAnim, pingAnim; private float blurRadius = 3f; @Override public void render(EventRender2D eventRender2D) { fpsAnim = Minecraft.getInstance().debugFPS; pingAnim = MathUtility.calculatePing(); MatrixStack ms = eventRender2D.getMatrixStack(); float x = 4; float y = 4; float padding = 5; float iconSize = 10; String text = watermarkText().toString(); float textWidth = Fonts.sf.getWidth(text, 8) + 25.5f; float width = iconSize + padding + textWidth; float height = iconSize + padding; renderBlurredBackground(ms, x, y, width, height, blurRadius); Fonts.sf.drawText(ms, text, x + iconSize + padding, y + (height - 8) / 2, -1, 8); } private void renderBlurredBackground(MatrixStack matrixStack, float x, float y, float width, float height, float radius) { RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); int passes = (int) (radius * 2); float alpha = 0.7f / passes; for (int i = 0; i < passes; i++) { float offset = (i / (float) passes) * radius; // Рисуем с разными смещениями и прозрачностью RectUtility.drawRect(matrixStack, x - offset, y - offset, x + width + offset, y + height + offset, ColorUtility.alpha(0x202020, alpha)); RectUtility.drawRect(matrixStack, x + offset, y - offset, x + width - offset, y + height + offset, ColorUtility.alpha(0x202020, alpha)); RectUtility.drawRect(matrixStack, x - offset, y + offset, x + width + offset, y + height - offset, ColorUtility.alpha(0x202020, alpha)); RectUtility.drawRect(matrixStack, x + offset, y + offset, x + width - offset, y + height - offset, ColorUtility.alpha(0x202020, alpha)); } RectUtility.drawRect(matrixStack, x, y, x + width, y + height, 0x80000000); RenderSystem.disableBlend(); } private StringBuilder watermarkText() { StringBuilder watermarkText = new StringBuilder(); watermarkText.append("Alone-1.0"); String currentTime = new SimpleDateFormat("HH:mm:ss").format(new Date()); boolean showFps = isEnabled("Фпс"); boolean showPing = isEnabled("Пинг"); boolean showServer = isEnabled("Сервер"); boolean showTime = isEnabled("Время"); if (showFps || showPing || showServer || showTime) { watermarkText.append(" "); } List<String> parts = new ArrayList<>(); if (showFps) { parts.add(fpsAnim + "fps"); } if (showPing) { parts.add(pingAnim + "ms"); } if (showTime) { parts.add(currentTime); } if (showServer) { String serverInfo = mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP != null && !mc.getCurrentServerData().serverIP.equals("45.93.200.8:25610") ? mc.getCurrentServerData().serverIP.toLowerCase() : "Одиночный мир"; parts.add(serverInfo); } watermarkText.append(String.join(" ", parts)); return watermarkText; } private boolean isEnabled(String check) { return Danq.getInst().getModuleRegister().getHud().waterMarkOptions.is(check).getValue(); } }