Начинающий
Начинающий
- Статус
- Оффлайн
- Регистрация
- 6 Июн 2025
- Сообщения
- 7
- Реакции
- 0
- Выберите загрузчик игры
- Vanilla
- OptiFine
некоторым не понравилась моя прошлая работа (noad),
так что я переделал её + есть на выбор две ватермарки, эта и акриен премиум (noad)
SS:
И в этой ватермарке можно отключать рендер ника
И это в HUD.java
так что я переделал её + есть на выбор две ватермарки, эта и акриен премиум (noad)
SS:
И в этой ватермарке можно отключать рендер ника
WatermarkRenderer.java:
package expensive.display.display.impl;
import com.mojang.blaze3d.matrix.MatrixStack;
import expensive.display.display.ElementRenderer;
import expensive.events.EventDisplay;
import expensive.modules.impl.render.HUD;
import expensive.util.math.main.Vector4i;
import expensive.util.visual.main.color.ColorUtils;
import expensive.util.visual.main.display.DisplayUtils;
import expensive.util.visual.main.fonts.Fonts;
import expensive.util.visual.main.color.fonts.GradientUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.vector.Vector4f;
import net.minecraft.util.text.ITextComponent;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class WatermarkRenderer implements ElementRenderer {
final Minecraft mc = Minecraft.getInstance();
final ResourceLocation logo = new ResourceLocation("expensive/images/hud/logo.png");
final Dragging dragging;
@Override
public void render(EventDisplay eventDisplay) {
MatrixStack ms = eventDisplay.getMatrixStack();
float x = 7f;
float y = 8f;
float height = 14f;
float fontSize = 8f;
float padding = 4f;
float gap = 6f;
float logoSize = 10f;
float nicknameHeight = 14f;
int ping = mc.getConnection() != null && mc.getConnection().getPlayerInfo(mc.player.getUniqueID()) != null
? mc.getConnection().getPlayerInfo(mc.player.getUniqueID()).getResponseTime() : 0;
if (HUD.typeWatermark.is("Client")) {
ITextComponent expensiveText = GradientUtil.gradient("Expensive");
String fpsText = mc.debugFPS + "fps";
String pingText = ping + "ms";
String nicknameText = mc.player != null ? mc.player.getName().getString() : "Expensive";
float expensiveWidth = Fonts.sfui.getWidth(expensiveText, fontSize);
float fpsWidth = Fonts.sfui.getWidth(fpsText, fontSize);
float pingWidth = Fonts.sfui.getWidth(pingText, fontSize);
float separatorWidth = Fonts.sfui.getWidth("|", fontSize);
float nicknameWidth = Fonts.sfui.getWidth(nicknameText, fontSize);
float logoRectWidth = padding * 2 + logoSize;
float firstRectWidth = padding * 2 + expensiveWidth;
float secondRectWidth = padding * 2 + fpsWidth + 4f + separatorWidth + 4f + pingWidth;
float nicknameRectWidth = padding * 2 + nicknameWidth;
int color1 = HUD.getColor(0);
int color2 = HUD.getColor(90);
int shadowColor1 = ColorUtils.rgba(ColorUtils.getRed(color1), ColorUtils.getGreen(color1), ColorUtils.getBlue(color1), 80);
int shadowColor2 = ColorUtils.rgba(ColorUtils.getRed(color2), ColorUtils.getGreen(color2), ColorUtils.getBlue(color2), 80);
DisplayUtils.drawShadow(x - 2, y - 2, logoRectWidth + 4, height + 4, 10, shadowColor1, shadowColor2);
DisplayUtils.drawShadow(x + logoRectWidth + gap - 2, y - 2, firstRectWidth + 4, height + 4, 10, shadowColor1, shadowColor2);
DisplayUtils.drawShadow(x + logoRectWidth + gap + firstRectWidth + gap - 2, y - 2, secondRectWidth + 4, height + 4, 10, shadowColor1, shadowColor2);
if (HUD.nicknameInWatermark.get())
DisplayUtils.drawShadow(x - 2, y + height + gap - 2, nicknameRectWidth + 4, nicknameHeight + 4, 10, shadowColor1, shadowColor2);
DisplayUtils.drawRoundedRect(x, y, logoRectWidth - 2, height, 3f, ColorUtils.rgba(0, 0, 0, 160));
DisplayUtils.drawRoundedRect(x + logoRectWidth + gap, y, firstRectWidth, height, 3f, ColorUtils.rgba(0, 0, 0, 160));
DisplayUtils.drawRoundedRect(x + logoRectWidth + gap + firstRectWidth + gap, y, secondRectWidth, height, 3f, ColorUtils.rgba(0, 0, 0, 160));
if (HUD.nicknameInWatermark.get())
DisplayUtils.drawRoundedRect(x, y + height + gap, nicknameRectWidth, nicknameHeight, 3f, ColorUtils.rgba(0, 0, 0, 160));
float currentX = x + padding;
float logoY = y + (height - logoSize) / 2;
DisplayUtils.drawImage(logo, currentX - 1, logoY, logoSize, logoSize, ColorUtils.rgba(255, 255, 255, 255));
currentX = x + logoRectWidth + gap + padding;
float textY = y + (height - fontSize) / 2;
Fonts.sfui.drawText(ms, expensiveText, currentX, textY, fontSize, 255);
currentX = x + logoRectWidth + gap + firstRectWidth + gap + padding;
Fonts.sfui.drawText(ms, fpsText, currentX, textY, ColorUtils.rgba(255, 255, 255, 255), (int) fontSize);
currentX += fpsWidth + 4f;
Fonts.sfui.drawText(ms, "|", currentX, textY, ColorUtils.rgba(89, 88, 88, 255), (int) fontSize);
currentX += separatorWidth + 4f;
Fonts.sfui.drawText(ms, pingText, currentX, textY, ColorUtils.rgba(255, 255, 255, 255), (int) fontSize);
currentX = x + padding;
float nicknameY = y + height + gap + (nicknameHeight - fontSize) / 2;
if (HUD.nicknameInWatermark.get())
Fonts.sfui.drawText(ms, nicknameText, currentX, nicknameY, ColorUtils.rgba(255, 255, 255, 255), (int) fontSize);
} else if (HUD.typeWatermark.is("Akrien Premium")) {
MatrixStack stack = new MatrixStack();
Vector4i gradientColors = new Vector4i(
ColorUtils.setAlpha(HUD.getColor(0), 255),
ColorUtils.setAlpha(HUD.getColor(90), 255),
ColorUtils.setAlpha(HUD.getColor(90), 255),
ColorUtils.setAlpha(HUD.getColor(0), 255)
);
String playerName = mc.player != null ? mc.player.getName().getString() : "Unknown";
int fps = mc.getDebugFPS();
String serverIp = mc.getCurrentServerData() != null ? mc.getCurrentServerData().serverIP : "Singleplayer";
String text = String.format("Expensive Client v1.00 | %s | %dfps | %s", playerName, fps, serverIp);
float textWidth = Fonts.montserrat.getWidth(text, 6f) + 4f;
float rectWidth = textWidth + 2 * 4f;
float textX = 11f;
float textY = 9f + (14f - Fonts.montserrat.getHeight(6f)) / 2f;
DisplayUtils.drawRoundedRect(7f, 7f + 1f, rectWidth, 1f + 1.5f, new Vector4f(0, 0, 0, 0), gradientColors);
DisplayUtils.drawRoundedRect(7f, 7f + 1f + 1f, rectWidth, 14f, new Vector4f(0, 0, 0, 0), ColorUtils.rgba(33, 33, 33, 255));
Fonts.montserrat.drawText(stack, text, textX, textY, ColorUtils.rgb(255, 255, 255), 6f, 0.1f);
}
}
}
И это в HUD.java
HUD.java:
public static final ModeSetting typeWatermark = new ModeSetting("Watermark", "Client", "Client","Akrien Premium");
public static final BooleanSetting nicknameInWatermark = new BooleanSetting("Никнейм в Watermark", false);
