-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
CODE:
package dev.xclient.ui.display.impl;
import com.mojang.blaze3d.matrix.MatrixStack;
import dev.xclient.Xclient;
import dev.xclient.events.EventDisplay;
import dev.xclient.ui.display.ElementRenderer;
import dev.xclient.ui.styles.Style;
import dev.xclient.utils.render.ColorUtils;
import dev.xclient.utils.render.DisplayUtils;
import dev.xclient.utils.render.font.Fonts;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.util.ResourceLocation;
import java.text.SimpleDateFormat;
import java.util.Date;
@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class WatermarkRenderer implements ElementRenderer {
final Minecraft mc = Minecraft.getInstance();
long lastChangeTime = System.currentTimeMillis();
long lastTextChangeTime = System.currentTimeMillis();
int currentImageIndex = 0;
final ResourceLocation[] logos = new ResourceLocation[]{
new ResourceLocation("Xclient/images/hud/logo1.png"),
new ResourceLocation("Xclient/images/hud/logo2.png")
};
final String[] texts = new String[]{
" Xclient Beta",
" Dev: imbalal",
" Xclient Beta",
" Ver: untitled",
" Xclient Beta",
" User: Tester",
" Xclient Beta",
" Time: " + getCurrentTime(),
" Xclient Beta",
" Xclient",
" FPS: " + getFPS()
};
int currentTextIndex = 0;
@Override
public void render(EventDisplay eventDisplay) {
MatrixStack ms = eventDisplay.getMatrixStack();
float posX = 3;
float posY = 7;
float padding = 3;
float fontSize = 8f;
float localHeight = fontSize + padding * 2;
Style style = Xclient.getInstance().getStyleManager().getCurrentStyle();
float textWidth = Fonts.sfui.getWidth(texts[currentTextIndex], fontSize);
if (System.currentTimeMillis() - lastChangeTime >= 1000) {
currentImageIndex = (currentImageIndex + 1) % logos.length;
lastChangeTime = System.currentTimeMillis();
}
if (System.currentTimeMillis() - lastTextChangeTime >= 1000) {
currentTextIndex = (currentTextIndex + 1) % texts.length;
if (currentTextIndex == 7) {
texts[currentTextIndex] = " Time: " + getCurrentTime();
} else if (currentTextIndex == 9) {
texts[currentTextIndex] = " FPS: " + getFPS();
}
lastTextChangeTime = System.currentTimeMillis();
}
drawStyledRect(posX, posY, textWidth + padding + 2, localHeight + 2, 2);
Fonts.sfui.drawText(ms, " " + " ", posX + padding + 1, posY + padding + 1, ColorUtils.rgb(255, 255, 255), fontSize);
Fonts.sfui.drawText(ms, " " + texts[currentTextIndex], posX + padding + 1, posY + padding + 1, ColorUtils.getColor(0), fontSize);
DisplayUtils.drawImage(logos[currentImageIndex], 6, 9.5f, 11, 11, ColorUtils.rgb(255, 255, 255));
}
private String getCurrentTime() {
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
return sdf.format(new Date());
}
private int getFPS() {
return mc.getDebugFPS();
}
int[] colors = new int[]{
ColorUtils.rgba(17, 17, 17, 255),
ColorUtils.rgba(17, 17, 17, 255)
};
int currentColorIndex = 0;
long lastColorChangeTime = System.currentTimeMillis();
private void drawStyledRect(float x, float y, float width, float height, float radius) {
if (System.currentTimeMillis() - lastColorChangeTime >= 1000) {
currentColorIndex = (currentColorIndex + 1) % colors.length;
lastColorChangeTime = System.currentTimeMillis();
}
int currentColor = colors[currentColorIndex];
DisplayUtils.drawRoundedRect(x, y, width + 11, height, radius, currentColor);
}
}