32 lines
1.6 KiB
Java
32 lines
1.6 KiB
Java
package net.mcreator.superbwarfare.tools;
|
|
|
|
import com.mojang.blaze3d.systems.RenderSystem;
|
|
import com.mojang.blaze3d.vertex.*;
|
|
import net.minecraft.client.gui.GuiGraphics;
|
|
import net.minecraft.client.renderer.GameRenderer;
|
|
import net.minecraft.resources.ResourceLocation;
|
|
import org.joml.Matrix4f;
|
|
|
|
public class RenderTool {
|
|
public static void preciseBlit(GuiGraphics gui, ResourceLocation pAtlasLocation, float pX, float pY, float pUOffset, float pVOffset, float pWidth, float pHeight, float pTextureWidth, float pTextureHeight) {
|
|
float pX2 = pX + pWidth;
|
|
float pY2 = pY + pHeight;
|
|
float pBlitOffset = 0;
|
|
|
|
float pMinU = pUOffset / pTextureWidth;
|
|
float pMaxU = (pUOffset + pWidth) / pTextureWidth;
|
|
float pMinV = pVOffset / pTextureHeight;
|
|
float pMaxV = (pVOffset + pHeight) / pTextureHeight;
|
|
|
|
RenderSystem.setShaderTexture(0, pAtlasLocation);
|
|
RenderSystem.setShader(GameRenderer::getPositionTexShader);
|
|
Matrix4f matrix4f = gui.pose().last().pose();
|
|
BufferBuilder bufferbuilder = Tesselator.getInstance().getBuilder();
|
|
bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX);
|
|
bufferbuilder.vertex(matrix4f, pX, pY, pBlitOffset).uv(pMinU, pMinV).endVertex();
|
|
bufferbuilder.vertex(matrix4f, pX, pY2, pBlitOffset).uv(pMinU, pMaxV).endVertex();
|
|
bufferbuilder.vertex(matrix4f, pX2, pY2, pBlitOffset).uv(pMaxU, pMaxV).endVertex();
|
|
bufferbuilder.vertex(matrix4f, pX2, pY, pBlitOffset).uv(pMaxU, pMinV).endVertex();
|
|
BufferUploader.drawWithShader(bufferbuilder.end());
|
|
}
|
|
}
|