diff --git a/src/main/java/ru/betterend/client/render/BetterEndSkyRenderer.java b/src/main/java/ru/betterend/client/render/BetterEndSkyRenderer.java index 855710c5..c750e726 100644 --- a/src/main/java/ru/betterend/client/render/BetterEndSkyRenderer.java +++ b/src/main/java/ru/betterend/client/render/BetterEndSkyRenderer.java @@ -11,26 +11,12 @@ import com.mojang.blaze3d.vertex.VertexFormat; import com.mojang.math.Matrix4f; import com.mojang.math.Quaternion; import com.mojang.math.Vector3f; -import net.minecraft.client.Minecraft; -import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.renderer.DimensionSpecialEffects; import net.minecraft.client.renderer.FogRenderer; import net.minecraft.client.renderer.GameRenderer; -import net.minecraft.client.renderer.LevelRenderer; -import net.minecraft.client.renderer.RenderBuffers; -import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.resources.ResourceLocation; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import ru.bclib.util.BackgroundInfo; import ru.bclib.util.MHelper; import ru.betterend.BetterEnd; -import ru.betterend.client.ClientOptions; -import ru.betterend.mixin.client.LevelRendererAccessor; import java.util.Random; @@ -44,30 +30,24 @@ public class BetterEndSkyRenderer implements DimensionRenderingRegistry.SkyRende private static final ResourceLocation STARS = BetterEnd.makeID("textures/sky/stars.png"); private static final ResourceLocation FOG = BetterEnd.makeID("textures/sky/fog.png"); - private static VertexBuffer stars1; - private static VertexBuffer stars2; - private static VertexBuffer stars3; - private static VertexBuffer stars4; - private static VertexBuffer nebulas1; - private static VertexBuffer nebulas2; - private static VertexBuffer horizon; - private static VertexBuffer fog; - private static Vector3f axis1; - private static Vector3f axis2; - private static Vector3f axis3; - private static Vector3f axis4; - private static float time; - private static float time2; - private static float time3; - private static float blind02; - private static float blind06; + private VertexBuffer nebula1; + private VertexBuffer nebula2; + private VertexBuffer horizon; + private VertexBuffer stars1; + private VertexBuffer stars2; + private VertexBuffer stars3; + private VertexBuffer stars4; + private VertexBuffer fog; + private Vector3f axis1; + private Vector3f axis2; + private Vector3f axis3; + private Vector3f axis4; private boolean initalized = false; - public void initalize() { - + private void initialise() { if(!initalized) { - be_initStars(); + initStars(); Random random = new Random(131); axis1 = new Vector3f(random.nextFloat(), random.nextFloat(), random.nextFloat()); axis2 = new Vector3f(random.nextFloat(), random.nextFloat(), random.nextFloat()); @@ -77,144 +57,104 @@ public class BetterEndSkyRenderer implements DimensionRenderingRegistry.SkyRende axis2.normalize(); axis3.normalize(); axis4.normalize(); - this.initalized = true; } } @Override public void render(WorldRenderContext context) { - initalize(); - + if (context.world() == null || context.matrixStack() == null) { + return; + } + + initialise(); + + Matrix4f projectionMatrix = context.projectionMatrix(); PoseStack matrices = context.matrixStack(); - - Matrix4f matrix4f = context.projectionMatrix(); - float tickDelta = context.tickDelta(); - - time = (((LevelRendererAccessor) context.gameRenderer().getMinecraft().levelRenderer).getTick() + context.tickDelta() % 360000) * 0.000017453292F; - time2 = time * 2; - time3 = time * 3; + + float time = ((context.world().getDayTime() + context.tickDelta()) % 360000) * 0.000017453292F; + float time2 = time * 2; + float time3 = time * 3; + + FogRenderer.levelFogColor(); + RenderSystem.depthMask(false); + RenderSystem.enableTexture(); + RenderSystem.enableBlend(); + RenderSystem.setShaderColor(1.0F ,1.0F ,1.0F ,1.0F); + RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA); + + float blindA = 1F - BackgroundInfo.blindness; + float blind02 = blindA * 0.2F; + float blind06 = blindA * 0.6F; + + if (blindA > 0) { + matrices.pushPose(); + matrices.mulPose(new Quaternion(0, time, 0, false)); + RenderSystem.setShaderTexture(0, HORIZON); + renderBuffer(matrices, projectionMatrix, horizon, DefaultVertexFormat.POSITION_TEX, 0.77F, 0.31F, 0.73F, 0.7F * blindA); + matrices.popPose(); - FogRenderer.levelFogColor(); - RenderSystem.depthMask(false); - RenderSystem.enableTexture(); - RenderSystem.enableBlend(); - RenderSystem.setShaderColor(1,1,1,1); - RenderSystem.blendFunc( - GlStateManager.SourceFactor.SRC_ALPHA, - GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA - ); + matrices.pushPose(); + matrices.mulPose(new Quaternion(0, -time, 0, false)); + RenderSystem.setShaderTexture(0, NEBULA_1); + renderBuffer(matrices, projectionMatrix, nebula1, DefaultVertexFormat.POSITION_TEX, 0.77F, 0.31F, 0.73F, blind02); + matrices.popPose(); - float blindA = 1F - BackgroundInfo.blindness; - blind02 = blindA * 0.2F; - blind06 = blindA * 0.6F; + matrices.pushPose(); + matrices.mulPose(new Quaternion(0, time2, 0, false)); + RenderSystem.setShaderTexture(0, NEBULA_2); + renderBuffer(matrices, projectionMatrix, nebula2, DefaultVertexFormat.POSITION_TEX, 0.77F, 0.31F, 0.73F, blind02); + matrices.popPose(); - if (blindA > 0) { - matrices.pushPose(); - matrices.mulPose(new Quaternion(0, time, 0, false)); - RenderSystem.setShaderTexture(0, HORIZON); - be_renderBuffer( - matrices, - matrix4f, - horizon, - DefaultVertexFormat.POSITION_TEX, - 0.77F, - 0.31F, - 0.73F, - 0.7F * blindA - ); - matrices.popPose(); - - matrices.pushPose(); - matrices.mulPose(new Quaternion(0, -time, 0, false)); - RenderSystem.setShaderTexture(0, NEBULA_1); - be_renderBuffer( - matrices, - matrix4f, - nebulas1, - DefaultVertexFormat.POSITION_TEX, - 0.77F, - 0.31F, - 0.73F, - blind02 - ); - matrices.popPose(); - - matrices.pushPose(); - matrices.mulPose(new Quaternion(0, time2, 0, false)); - RenderSystem.setShaderTexture(0, NEBULA_2); - be_renderBuffer( - matrices, - matrix4f, - nebulas2, - DefaultVertexFormat.POSITION_TEX, - 0.77F, - 0.31F, - 0.73F, - blind02 - ); - matrices.popPose(); - - RenderSystem.setShaderTexture(0, STARS); - - matrices.pushPose(); - matrices.mulPose(axis3.rotation(time)); - be_renderBuffer( - matrices, - matrix4f, - stars3, - DefaultVertexFormat.POSITION_TEX, - 0.77F, - 0.31F, - 0.73F, - blind06 - ); - matrices.popPose(); - - matrices.pushPose(); - matrices.mulPose(axis4.rotation(time2)); - be_renderBuffer(matrices, matrix4f, stars4, DefaultVertexFormat.POSITION_TEX, 1F, 1F, 1F, blind06); - matrices.popPose(); - } + RenderSystem.setShaderTexture(0, STARS); - float a = (BackgroundInfo.fogDensity - 1F); - if (a > 0) { - if (a > 1) a = 1; - RenderSystem.setShaderTexture(0, FOG); - be_renderBuffer( - matrices, - matrix4f, - fog, - DefaultVertexFormat.POSITION_TEX, - BackgroundInfo.fogColorRed, - BackgroundInfo.fogColorGreen, - BackgroundInfo.fogColorBlue, - a - ); - } + matrices.pushPose(); + matrices.mulPose(axis3.rotation(time)); + renderBuffer(matrices, projectionMatrix, stars3, DefaultVertexFormat.POSITION_TEX, 0.77F, 0.31F, 0.73F, blind06); + matrices.popPose(); - RenderSystem.disableTexture(); + matrices.pushPose(); + matrices.mulPose(axis4.rotation(time2)); + renderBuffer(matrices, projectionMatrix, stars4, DefaultVertexFormat.POSITION_TEX, 1F, 1F, 1F, blind06); + matrices.popPose(); + } + + float a = (BackgroundInfo.fogDensity - 1F); + if (a > 0) { + if (a > 1) a = 1; + RenderSystem.setShaderTexture(0, FOG); + renderBuffer( + matrices, + projectionMatrix, + fog, + DefaultVertexFormat.POSITION_TEX, + BackgroundInfo.fogColorRed, + BackgroundInfo.fogColorGreen, + BackgroundInfo.fogColorBlue, + a); + } + + RenderSystem.disableTexture(); + + if (blindA > 0) { + matrices.pushPose(); + matrices.mulPose(axis1.rotation(time3)); + renderBuffer(matrices, projectionMatrix, stars1, DefaultVertexFormat.POSITION, 1, 1, 1, blind06); + matrices.popPose(); - if (blindA > 0) { - matrices.pushPose(); - matrices.mulPose(axis1.rotation(time3)); - be_renderBuffer(matrices, matrix4f, stars1, DefaultVertexFormat.POSITION, 1, 1, 1, blind06); - matrices.popPose(); - - matrices.pushPose(); - matrices.mulPose(axis2.rotation(time2)); - be_renderBuffer(matrices, matrix4f, stars2, DefaultVertexFormat.POSITION, 0.95F, 0.64F, 0.93F, blind06); - matrices.popPose(); - } - - RenderSystem.enableTexture(); - RenderSystem.depthMask(true); - RenderSystem.defaultBlendFunc(); - RenderSystem.disableBlend(); - + matrices.pushPose(); + matrices.mulPose(axis2.rotation(time2)); + renderBuffer(matrices, projectionMatrix, stars2, DefaultVertexFormat.POSITION, 0.95F, 0.64F, 0.93F, blind06); + matrices.popPose(); + } + + RenderSystem.enableTexture(); + RenderSystem.depthMask(true); + RenderSystem.defaultBlendFunc(); + RenderSystem.disableBlend(); } - private void be_renderBuffer(PoseStack matrices, Matrix4f matrix4f, VertexBuffer buffer, VertexFormat format, float r, float g, float b, float a) { + private void renderBuffer(PoseStack matrices, Matrix4f matrix4f, VertexBuffer buffer, VertexFormat format, float r, float g, float b, float a) { RenderSystem.setShaderColor(r, g, b, a); if (format == DefaultVertexFormat.POSITION) { buffer.drawWithShader(matrices.last().pose(), matrix4f, GameRenderer.getPositionShader()); @@ -224,91 +164,84 @@ public class BetterEndSkyRenderer implements DimensionRenderingRegistry.SkyRende } } - private void be_initStars() { + private void initStars() { BufferBuilder buffer = Tesselator.getInstance().getBuilder(); - stars1 = be_buildBufferStars(buffer, stars1, 0.1, 0.30, 3500, 41315); - stars2 = be_buildBufferStars(buffer, stars2, 0.1, 0.35, 2000, 35151); - stars3 = be_buildBufferUVStars(buffer, stars3, 0.4, 1.2, 1000, 61354); - stars4 = be_buildBufferUVStars(buffer, stars4, 0.4, 1.2, 1000, 61355); - nebulas1 = be_buildBufferFarFog(buffer, nebulas1, 40, 60, 30, 11515); - nebulas2 = be_buildBufferFarFog(buffer, nebulas2, 40, 60, 10, 14151); - horizon = be_buildBufferHorizon(buffer, horizon); - fog = be_buildBufferFog(buffer, fog); + stars1 = buildBufferStars(buffer, stars1, 0.1, 0.30, 3500, 41315); + stars2 = buildBufferStars(buffer, stars2, 0.1, 0.35, 2000, 35151); + stars3 = buildBufferUVStars(buffer, stars3, 0.4, 1.2, 1000, 61354); + stars4 = buildBufferUVStars(buffer, stars4, 0.4, 1.2, 1000, 61355); + nebula1 = buildBufferFarFog(buffer, nebula1, 40, 60, 30, 11515); + nebula2 = buildBufferFarFog(buffer, nebula2, 40, 60, 10, 14151); + horizon = buildBufferHorizon(buffer, horizon); + fog = buildBufferFog(buffer, fog); } - private VertexBuffer be_buildBufferStars(BufferBuilder bufferBuilder, VertexBuffer buffer, double minSize, double maxSize, int count, long seed) { + private VertexBuffer buildBufferStars(BufferBuilder bufferBuilder, VertexBuffer buffer, double minSize, double maxSize, int count, long seed) { if (buffer != null) { buffer.close(); } - //TODO: Test if this is working correct - //Format is set in the DrawState - //buffer = new VertexBuffer(DefaultVertexFormat.POSITION); buffer = new VertexBuffer(); - be_makeStars(bufferBuilder, minSize, maxSize, count, seed); + makeStars(bufferBuilder, minSize, maxSize, count, seed); bufferBuilder.end(); buffer.upload(bufferBuilder); return buffer; } - private VertexBuffer be_buildBufferUVStars(BufferBuilder bufferBuilder, VertexBuffer buffer, double minSize, double maxSize, int count, long seed) { + private VertexBuffer buildBufferUVStars(BufferBuilder bufferBuilder, VertexBuffer buffer, double minSize, double maxSize, int count, long seed) { if (buffer != null) { buffer.close(); } - // buffer = new VertexBuffer(DefaultVertexFormat.POSITION_TEX); buffer = new VertexBuffer(); - be_makeUVStars(bufferBuilder, minSize, maxSize, count, seed); + makeUVStars(bufferBuilder, minSize, maxSize, count, seed); bufferBuilder.end(); buffer.upload(bufferBuilder); return buffer; } - private VertexBuffer be_buildBufferFarFog(BufferBuilder bufferBuilder, VertexBuffer buffer, double minSize, double maxSize, int count, long seed) { + private VertexBuffer buildBufferFarFog(BufferBuilder bufferBuilder, VertexBuffer buffer, double minSize, double maxSize, int count, long seed) { if (buffer != null) { buffer.close(); } - // buffer = new VertexBuffer(DefaultVertexFormat.POSITION_TEX); buffer = new VertexBuffer(); - be_makeFarFog(bufferBuilder, minSize, maxSize, count, seed); + makeFarFog(bufferBuilder, minSize, maxSize, count, seed); bufferBuilder.end(); buffer.upload(bufferBuilder); return buffer; } - private VertexBuffer be_buildBufferHorizon(BufferBuilder bufferBuilder, VertexBuffer buffer) { + private VertexBuffer buildBufferHorizon(BufferBuilder bufferBuilder, VertexBuffer buffer) { if (buffer != null) { buffer.close(); } - // buffer = new VertexBuffer(DefaultVertexFormat.POSITION_TEX); buffer = new VertexBuffer(); - be_makeCylinder(bufferBuilder, 16, 50, 100); + makeCylinder(bufferBuilder, 16, 50, 100); bufferBuilder.end(); buffer.upload(bufferBuilder); return buffer; } - private VertexBuffer be_buildBufferFog(BufferBuilder bufferBuilder, VertexBuffer buffer) { + private VertexBuffer buildBufferFog(BufferBuilder bufferBuilder, VertexBuffer buffer) { if (buffer != null) { buffer.close(); } - // buffer = new VertexBuffer(DefaultVertexFormat.POSITION_TEX); buffer = new VertexBuffer(); - be_makeCylinder(bufferBuilder, 16, 50, 70); + makeCylinder(bufferBuilder, 16, 50, 70); bufferBuilder.end(); buffer.upload(bufferBuilder); return buffer; } - private void be_makeStars(BufferBuilder buffer, double minSize, double maxSize, int count, long seed) { + private void makeStars(BufferBuilder buffer, double minSize, double maxSize, int count, long seed) { Random random = new Random(seed); buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION); @@ -318,40 +251,43 @@ public class BetterEndSkyRenderer implements DimensionRenderingRegistry.SkyRende double posZ = random.nextDouble() * 2.0 - 1.0; double size = MHelper.randRange(minSize, maxSize, random); double length = posX * posX + posY * posY + posZ * posZ; + if (length < 1.0 && length > 0.001) { length = 1.0 / Math.sqrt(length); posX *= length; posY *= length; posZ *= length; - double j = posX * 100.0; - double k = posY * 100.0; - double l = posZ * 100.0; - double m = Math.atan2(posX, posZ); - double n = Math.sin(m); - double o = Math.cos(m); - double p = Math.atan2(Math.sqrt(posX * posX + posZ * posZ), posY); - double q = Math.sin(p); - double r = Math.cos(p); - double s = random.nextDouble() * Math.PI * 2.0; - double t = Math.sin(s); - double u = Math.cos(s); - for (int v = 0; v < 4; ++v) { - double x = (double) ((v & 2) - 1) * size; - double y = (double) ((v + 1 & 2) - 1) * size; - double aa = x * u - y * t; - double ab = y * u + x * t; - double ad = aa * q + 0.0 * r; - double ae = 0.0 * q - aa * r; - double af = ae * n - ab * o; - double ah = ab * n + ae * o; - buffer.vertex(j + af, k + ad, l + ah).endVertex(); + double px = posX * 100.0; + double py = posY * 100.0; + double pz = posZ * 100.0; + + double angle = Math.atan2(posX, posZ); + double sin1 = Math.sin(angle); + double cos1 = Math.cos(angle); + angle = Math.atan2(Math.sqrt(posX * posX + posZ * posZ), posY); + double sin2 = Math.sin(angle); + double cos2 = Math.cos(angle); + angle = random.nextDouble() * Math.PI * 2.0; + double sin3 = Math.sin(angle); + double cos3 = Math.cos(angle); + + for (int index = 0; index < 4; ++index) { + double x = (double) ((index & 2) - 1) * size; + double y = (double) ((index + 1 & 2) - 1) * size; + double aa = x * cos3 - y * sin3; + double ab = y * cos3 + x * sin3; + double dy = aa * sin2 + 0.0 * cos2; + double ae = 0.0 * sin2 - aa * cos2; + double dx = ae * sin1 - ab * cos1; + double dz = ab * sin1 + ae * cos1; + buffer.vertex(px + dx, py + dy, pz + dz).endVertex(); } } } } - private void be_makeUVStars(BufferBuilder buffer, double minSize, double maxSize, int count, long seed) { + private void makeUVStars(BufferBuilder buffer, double minSize, double maxSize, int count, long seed) { Random random = new Random(seed); buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); @@ -361,45 +297,46 @@ public class BetterEndSkyRenderer implements DimensionRenderingRegistry.SkyRende double posZ = random.nextDouble() * 2.0 - 1.0; double size = MHelper.randRange(minSize, maxSize, random); double length = posX * posX + posY * posY + posZ * posZ; + if (length < 1.0 && length > 0.001) { length = 1.0 / Math.sqrt(length); posX *= length; posY *= length; posZ *= length; - double j = posX * 100.0; - double k = posY * 100.0; - double l = posZ * 100.0; - double m = Math.atan2(posX, posZ); - double n = Math.sin(m); - double o = Math.cos(m); - double p = Math.atan2(Math.sqrt(posX * posX + posZ * posZ), posY); - double q = Math.sin(p); - double r = Math.cos(p); - double s = random.nextDouble() * Math.PI * 2.0; - double t = Math.sin(s); - double u = Math.cos(s); - int pos = 0; + double px = posX * 100.0; + double py = posY * 100.0; + double pz = posZ * 100.0; + + double angle = Math.atan2(posX, posZ); + double sin1 = Math.sin(angle); + double cos1 = Math.cos(angle); + angle = Math.atan2(Math.sqrt(posX * posX + posZ * posZ), posY); + double sin2 = Math.sin(angle); + double cos2 = Math.cos(angle); + angle = random.nextDouble() * Math.PI * 2.0; + double sin3 = Math.sin(angle); + double cos3 = Math.cos(angle); + float minV = random.nextInt(4) / 4F; - for (int v = 0; v < 4; ++v) { - double x = (double) ((v & 2) - 1) * size; - double y = (double) ((v + 1 & 2) - 1) * size; - double aa = x * u - y * t; - double ab = y * u + x * t; - double ad = aa * q + 0.0 * r; - double ae = 0.0 * q - aa * r; - double af = ae * n - ab * o; - double ah = ab * n + ae * o; - float texU = (pos >> 1) & 1; - float texV = (((pos + 1) >> 1) & 1) / 4F + minV; - pos++; - buffer.vertex(j + af, k + ad, l + ah).uv(texU, texV).endVertex(); + for (int index = 0; index < 4; ++index) { + double x = (double) ((index & 2) - 1) * size; + double y = (double) ((index + 1 & 2) - 1) * size; + double aa = x * cos3 - y * sin3; + double ab = y * cos3 + x * sin3; + double dy = aa * sin2 + 0.0 * cos2; + double ae = 0.0 * sin2 - aa * cos2; + double dx = ae * sin1 - ab * cos1; + double dz = ab * sin1 + ae * cos1; + float texU = (index >> 1) & 1; + float texV = (((index + 1) >> 1) & 1) / 4F + minV; + buffer.vertex(px + dx, py + dy, pz + dz).uv(texU, texV).endVertex(); } } } } - private void be_makeFarFog(BufferBuilder buffer, double minSize, double maxSize, int count, long seed) { + private void makeFarFog(BufferBuilder buffer, double minSize, double maxSize, int count, long seed) { Random random = new Random(seed); buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); @@ -410,47 +347,46 @@ public class BetterEndSkyRenderer implements DimensionRenderingRegistry.SkyRende double size = MHelper.randRange(minSize, maxSize, random); double length = posX * posX + posY * posY + posZ * posZ; double distance = 2.0; - double delta = 1.0 / count; + if (length < 1.0 && length > 0.001) { length = distance / Math.sqrt(length); size *= distance; - distance -= delta; posX *= length; posY *= length; posZ *= length; - double j = posX * 100.0; - double k = posY * 100.0; - double l = posZ * 100.0; - double m = Math.atan2(posX, posZ); - double n = Math.sin(m); - double o = Math.cos(m); - double p = Math.atan2(Math.sqrt(posX * posX + posZ * posZ), posY); - double q = Math.sin(p); - double r = Math.cos(p); - double s = random.nextDouble() * Math.PI * 2.0; - double t = Math.sin(s); - double u = Math.cos(s); - int pos = 0; - for (int v = 0; v < 4; ++v) { - double x = (double) ((v & 2) - 1) * size; - double y = (double) ((v + 1 & 2) - 1) * size; - double aa = x * u - y * t; - double ab = y * u + x * t; - double ad = aa * q + 0.0 * r; - double ae = 0.0 * q - aa * r; - double af = ae * n - ab * o; - double ah = ab * n + ae * o; - float texU = (pos >> 1) & 1; - float texV = ((pos + 1) >> 1) & 1; - pos++; - buffer.vertex(j + af, k + ad, l + ah).uv(texU, texV).endVertex(); + double px = posX * 100.0; + double py = posY * 100.0; + double pz = posZ * 100.0; + + double angle = Math.atan2(posX, posZ); + double sin1 = Math.sin(angle); + double cos1 = Math.cos(angle); + angle = Math.atan2(Math.sqrt(posX * posX + posZ * posZ), posY); + double sin2 = Math.sin(angle); + double cos2 = Math.cos(angle); + angle = random.nextDouble() * Math.PI * 2.0; + double sin3 = Math.sin(angle); + double cos3 = Math.cos(angle); + + for (int index = 0; index < 4; ++index) { + double x = (double) ((index & 2) - 1) * size; + double y = (double) ((index + 1 & 2) - 1) * size; + double aa = x * cos3 - y * sin3; + double ab = y * cos3 + x * sin3; + double dy = aa * sin2 + 0.0 * cos2; + double ae = 0.0 * sin2 - aa * cos2; + double dx = ae * sin1 - ab * cos1; + double dz = ab * sin1 + ae * cos1; + float texU = (index >> 1) & 1; + float texV = ((index + 1) >> 1) & 1; + buffer.vertex(px + dx, py + dy, pz + dz).uv(texU, texV).endVertex(); } } } } - private void be_makeCylinder(BufferBuilder buffer, int segments, double height, double radius) { + private void makeCylinder(BufferBuilder buffer, int segments, double height, double radius) { buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); for (int i = 0; i < segments; i++) { double a1 = (double) i * Math.PI * 2.0 / (double) segments; diff --git a/src/main/java/ru/betterend/mixin/client/LevelRendererAccessor.java b/src/main/java/ru/betterend/mixin/client/LevelRendererAccessor.java deleted file mode 100644 index d78f99a9..00000000 --- a/src/main/java/ru/betterend/mixin/client/LevelRendererAccessor.java +++ /dev/null @@ -1,12 +0,0 @@ -package ru.betterend.mixin.client; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -import net.minecraft.client.renderer.LevelRenderer; - -@Mixin(LevelRenderer.class) -public interface LevelRendererAccessor { - @Accessor("ticks") - int getTick(); -} diff --git a/src/main/resources/betterend.mixins.client.json b/src/main/resources/betterend.mixins.client.json index 825e70b6..d6bf3910 100644 --- a/src/main/resources/betterend.mixins.client.json +++ b/src/main/resources/betterend.mixins.client.json @@ -5,17 +5,16 @@ "compatibilityLevel": "JAVA_16", "client": [ "AbstractSoundInstanceAccessor", - "ArmorStandRendererMixin", - "BiomeColorsMixin", - "CapeLayerMixin", "HumanoidMobRendererMixin", - "ItemStackMixin", - "LocalPlayerMixin", + "ArmorStandRendererMixin", "MinecraftClientMixin", - "ModelLoaderMixin", - "MusicTrackerMixin", "PlayerRendererMixin", - "LevelRendererAccessor" + "MusicTrackerMixin", + "BiomeColorsMixin", + "LocalPlayerMixin", + "ModelLoaderMixin", + "CapeLayerMixin", + "ItemStackMixin" ], "injectors": { "defaultRequire": 1