-
Автор темы
- #1
Пожалуйста, авторизуйтесь для просмотра ссылки.
Код:
package examplemod.Module.imlp;
import examplemod.Module.Module;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import com.mojang.blaze3d.systems.RenderSystem;
import java.awt.*;
public class WaterMark extends Module {
private static final Minecraft mc = Minecraft.getInstance();
public WaterMark() {
super("WaterMark", 0, "Private");
}
@SubscribeEvent
public void onRenderOverlay(RenderGameOverlayEvent.Text event) {
int x = 10;
int y = 10;
renderAnimatedText(event, "Private", x + 10, y + 10);
}
private void renderAnimatedText(RenderGameOverlayEvent event, String text, int x, int y) {
long time = System.currentTimeMillis();
int textX = x;
int textY = y;
for (int i = 0; i < text.length(); i++) {
char c = text.charAt(i);
float hue = (float) ((time + i * 100) % 5000) / 5000;
int color = Color.HSBtoRGB(hue, 1, 1);
mc.font.draw(event.getMatrixStack(), String.valueOf(c), textX, textY, color);
textX += mc.font.width(String.valueOf(c));
}
}
private void drawContainer(double x1, double y1, double x2, double y2, int fillColor, int borderColor) {
drawRect(x1, y1, x2, y2, fillColor);
drawRect(x1 - 1, y1 - 1, x2 + 1, y1, borderColor);
drawRect(x1 - 1, y2, x2 + 1, y2 + 1, borderColor);
drawRect(x1 - 1, y1, x1, y2, borderColor);
drawRect(x2, y1, x2 + 1, y2, borderColor);
}
private void drawRect(double x1, double y1, double x2, double y2, int color) {
RenderSystem.enableBlend();
RenderSystem.defaultBlendFunc();
RenderSystem.disableTexture();
float alpha = (color >> 24 & 255) / 255.0f;
float red = (color >> 16 & 255) / 255.0f;
float green = (color >> 8 & 255) / 255.0f;
float blue = (color & 255) / 255.0f;
BufferBuilder buffer = Tessellator.getInstance().getBuilder();
buffer.begin(7, DefaultVertexFormats.POSITION_COLOR);
buffer.vertex(x1, y1, 0).color(red, green, blue, alpha).endVertex();
buffer.vertex(x2, y1, 0).color(red, green, blue, alpha).endVertex();
buffer.vertex(x2, y2, 0).color(red, green, blue, alpha).endVertex();
buffer.vertex(x1, y2, 0).color(red, green, blue, alpha).endVertex();
Tessellator.getInstance().end();
RenderSystem.enableTexture();
RenderSystem.disableBlend();
}
}