From 8b7a55d764beb297603d58fb1630583470448467 Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 26 Jan 2024 23:30:22 +0000 Subject: [PATCH] Combine TexturedSphereModel into SphereModel --- .../client/render/model/BakedModel.java | 17 +++++++- .../render/model/TexturedSphereModel.java | 41 ------------------- .../render/spell/PortalFrameBuffer.java | 3 +- 3 files changed, 17 insertions(+), 44 deletions(-) delete mode 100644 src/main/java/com/minelittlepony/unicopia/client/render/model/TexturedSphereModel.java diff --git a/src/main/java/com/minelittlepony/unicopia/client/render/model/BakedModel.java b/src/main/java/com/minelittlepony/unicopia/client/render/model/BakedModel.java index 694571c3..d2c03914 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/render/model/BakedModel.java +++ b/src/main/java/com/minelittlepony/unicopia/client/render/model/BakedModel.java @@ -15,7 +15,7 @@ public class BakedModel { protected final List vertices = new ArrayList<>(); protected void addVertex(Vector4f vertex) { - addVertex(vertex.x, vertex.y, vertex.z, 0, 0); + addVertex(vertex.x, vertex.y, vertex.z, (vertex.x + 1) * 0.5F, (vertex.z + 1) * 0.5F); } protected void addVertex(float x, float y, float z, float u, float v) { @@ -36,4 +36,19 @@ public class BakedModel { } matrices.pop(); } + + public final void render(MatrixStack matrices, VertexConsumer buffer, float scale, float r, float g, float b, float a, float uScale, float vScale) { + scale = Math.abs(scale); + if (scale < 0.001F) { + return; + } + + matrices.push(); + matrices.scale(scale, scale, scale); + for (RenderUtil.Vertex vertex : vertices) { + Vector4f pos = vertex.position(matrices); + buffer.vertex(pos.x, pos.y, pos.z).texture(vertex.u() * uScale, vertex.v() * vScale).color(r, g, b, a).next(); + } + matrices.pop(); + } } diff --git a/src/main/java/com/minelittlepony/unicopia/client/render/model/TexturedSphereModel.java b/src/main/java/com/minelittlepony/unicopia/client/render/model/TexturedSphereModel.java deleted file mode 100644 index 60c0b74e..00000000 --- a/src/main/java/com/minelittlepony/unicopia/client/render/model/TexturedSphereModel.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.minelittlepony.unicopia.client.render.model; - -import org.joml.Vector4f; - -import com.minelittlepony.unicopia.client.gui.DrawableUtil; -import com.minelittlepony.unicopia.client.render.RenderUtil; - -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.util.math.MatrixStack; - -public class TexturedSphereModel extends BakedModel { - public static final TexturedSphereModel DISK = new TexturedSphereModel(40, 2, DrawableUtil.PI); - - public TexturedSphereModel(double rings, double sectors, double azimuthRange) { - double zenithIncrement = DrawableUtil.PI / rings; - double azimuthIncrement = DrawableUtil.TAU / sectors; - SphereModel.compileVertices(azimuthRange, zenithIncrement, azimuthIncrement, this::addVertex); - } - - @Override - protected void addVertex(Vector4f vertex) { - addVertex(vertex.x, vertex.y, vertex.z, vertex.x, vertex.z); - } - - public final void render(MatrixStack matrices, VertexConsumer buffer, float scale, float r, float g, float b, float a, float uScale, float vScale) { - scale = Math.abs(scale); - if (scale < 0.001F) { - return; - } - - matrices.push(); - matrices.scale(scale, scale, scale); - uScale *= 0.5F; - vScale *= 0.5F; - for (RenderUtil.Vertex vertex : vertices) { - Vector4f pos = vertex.position(matrices); - buffer.vertex(pos.x, pos.y, pos.z).texture((vertex.u() + 1) * uScale, (vertex.v() + 1) * vScale).color(r, g, b, a).next(); - } - matrices.pop(); - } -} diff --git a/src/main/java/com/minelittlepony/unicopia/client/render/spell/PortalFrameBuffer.java b/src/main/java/com/minelittlepony/unicopia/client/render/spell/PortalFrameBuffer.java index 81a99039..f864c098 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/render/spell/PortalFrameBuffer.java +++ b/src/main/java/com/minelittlepony/unicopia/client/render/spell/PortalFrameBuffer.java @@ -15,7 +15,6 @@ import com.minelittlepony.unicopia.ability.magic.Caster; import com.minelittlepony.unicopia.ability.magic.spell.effect.PortalSpell; import com.minelittlepony.unicopia.client.render.RenderLayers; import com.minelittlepony.unicopia.client.render.model.SphereModel; -import com.minelittlepony.unicopia.client.render.model.TexturedSphereModel; import com.minelittlepony.unicopia.entity.EntityReference; import com.minelittlepony.unicopia.entity.mob.UEntities; import com.minelittlepony.unicopia.mixin.client.MixinMinecraftClient; @@ -96,7 +95,7 @@ class PortalFrameBuffer implements AutoCloseable { RenderSystem.setShader(GameRenderer::getPositionTexColorProgram); RenderSystem._setShaderTexture(0, framebuffer.getColorAttachment()); buffer.begin(VertexFormat.DrawMode.QUADS, VertexFormats.POSITION_TEXTURE_COLOR); - TexturedSphereModel.DISK.render(matrices, buffer, 2F, 1, 1, 1, 1, uScale, vScale); + SphereModel.DISK.render(matrices, buffer, 2F, 1, 1, 1, 1, uScale, vScale); tessellator.draw(); client.getTextureManager().bindTexture(PlayerScreenHandler.BLOCK_ATLAS_TEXTURE);