TODOs and WorldRenderMixin
Update
This commit is contained in:
parent
20859ae133
commit
fdd61262c5
2 changed files with 38 additions and 21 deletions
|
@ -2,6 +2,7 @@ package ru.betterend.mixin.client;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
import com.mojang.math.Matrix4f;
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
import org.spongepowered.asm.mixin.Final;
|
import org.spongepowered.asm.mixin.Final;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
@ -92,7 +93,7 @@ public class WorldRendererMixin {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject(method = "renderSky", at = @At("HEAD"), cancellable = true)
|
@Inject(method = "renderSky", at = @At("HEAD"), cancellable = true)
|
||||||
private void be_renderBetterEndSky(PoseStack matrices, float tickDelta, CallbackInfo info) {
|
private void be_renderBetterEndSky(PoseStack matrices, Matrix4f matrix4f, float tickDelta, Runnable runnable, CallbackInfo info) {
|
||||||
if (ClientOptions.isCustomSky() && minecraft.level.effects().skyType() == DimensionSpecialEffects.SkyType.END) {
|
if (ClientOptions.isCustomSky() && minecraft.level.effects().skyType() == DimensionSpecialEffects.SkyType.END) {
|
||||||
time = (ticks % 360000) * 0.000017453292F;
|
time = (ticks % 360000) * 0.000017453292F;
|
||||||
time2 = time * 2;
|
time2 = time * 2;
|
||||||
|
@ -108,8 +109,9 @@ public class WorldRendererMixin {
|
||||||
RenderSystem.depthMask(false);
|
RenderSystem.depthMask(false);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
RenderSystem.enableAlphaTest();
|
//TODO: Removed in 1.17
|
||||||
RenderSystem.alphaFunc(516, 0.0F);
|
//RenderSystem.enableAlphaTest();
|
||||||
|
//RenderSystem.alphaFunc(516, 0.0F);
|
||||||
RenderSystem.enableBlend();
|
RenderSystem.enableBlend();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,23 +122,27 @@ public class WorldRendererMixin {
|
||||||
if (blindA > 0) {
|
if (blindA > 0) {
|
||||||
matrices.pushPose();
|
matrices.pushPose();
|
||||||
matrices.mulPose(new Quaternion(0, time, 0, false));
|
matrices.mulPose(new Quaternion(0, time, 0, false));
|
||||||
textureManager.bind(HORIZON);
|
RenderSystem.setShaderTexture(0, HORIZON);
|
||||||
|
//textureManager.bind(HORIZON);
|
||||||
be_renderBuffer(matrices, horizon, DefaultVertexFormat.POSITION_TEX, 0.77F, 0.31F, 0.73F, 0.7F * blindA);
|
be_renderBuffer(matrices, horizon, DefaultVertexFormat.POSITION_TEX, 0.77F, 0.31F, 0.73F, 0.7F * blindA);
|
||||||
matrices.popPose();
|
matrices.popPose();
|
||||||
|
|
||||||
matrices.pushPose();
|
matrices.pushPose();
|
||||||
matrices.mulPose(new Quaternion(0, -time, 0, false));
|
matrices.mulPose(new Quaternion(0, -time, 0, false));
|
||||||
textureManager.bind(NEBULA_1);
|
//textureManager.bind(NEBULA_1);
|
||||||
|
RenderSystem.setShaderTexture(0, NEBULA_1);
|
||||||
be_renderBuffer(matrices, nebulas1, DefaultVertexFormat.POSITION_TEX, 0.77F, 0.31F, 0.73F, blind02);
|
be_renderBuffer(matrices, nebulas1, DefaultVertexFormat.POSITION_TEX, 0.77F, 0.31F, 0.73F, blind02);
|
||||||
matrices.popPose();
|
matrices.popPose();
|
||||||
|
|
||||||
matrices.pushPose();
|
matrices.pushPose();
|
||||||
matrices.mulPose(new Quaternion(0, time2, 0, false));
|
matrices.mulPose(new Quaternion(0, time2, 0, false));
|
||||||
textureManager.bind(NEBULA_2);
|
//textureManager.bind(NEBULA_2);
|
||||||
|
RenderSystem.setShaderTexture(0, NEBULA_2);
|
||||||
be_renderBuffer(matrices, nebulas2, DefaultVertexFormat.POSITION_TEX, 0.77F, 0.31F, 0.73F, blind02);
|
be_renderBuffer(matrices, nebulas2, DefaultVertexFormat.POSITION_TEX, 0.77F, 0.31F, 0.73F, blind02);
|
||||||
matrices.popPose();
|
matrices.popPose();
|
||||||
|
|
||||||
textureManager.bind(STARS);
|
//textureManager.bind(STARS);
|
||||||
|
RenderSystem.setShaderTexture(0, STARS);
|
||||||
|
|
||||||
matrices.pushPose();
|
matrices.pushPose();
|
||||||
matrices.mulPose(axis3.rotation(time));
|
matrices.mulPose(axis3.rotation(time));
|
||||||
|
@ -152,7 +158,8 @@ public class WorldRendererMixin {
|
||||||
float a = (BackgroundInfo.fogDensity - 1F);
|
float a = (BackgroundInfo.fogDensity - 1F);
|
||||||
if (a > 0) {
|
if (a > 0) {
|
||||||
if (a > 1) a = 1;
|
if (a > 1) a = 1;
|
||||||
textureManager.bind(FOG);
|
RenderSystem.setShaderTexture(0, FOG);
|
||||||
|
//textureManager.bind(FOG);
|
||||||
be_renderBuffer(matrices, fog, DefaultVertexFormat.POSITION_TEX, BackgroundInfo.fogColorRed, BackgroundInfo.fogColorGreen, BackgroundInfo.fogColorBlue, a);
|
be_renderBuffer(matrices, fog, DefaultVertexFormat.POSITION_TEX, BackgroundInfo.fogColorRed, BackgroundInfo.fogColorGreen, BackgroundInfo.fogColorBlue, a);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,10 +185,12 @@ public class WorldRendererMixin {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void be_renderBuffer(PoseStack matrices, VertexBuffer buffer, VertexFormat format, float r, float g, float b, float a) {
|
private void be_renderBuffer(PoseStack matrices, VertexBuffer buffer, VertexFormat format, float r, float g, float b, float a) {
|
||||||
RenderSystem.color4f(r, g, b, a);
|
RenderSystem.setShaderColor(r, g, b, a);
|
||||||
buffer.bind();
|
buffer.bind();
|
||||||
format.setupBufferState(0L);
|
//format.setupBufferState(0L);
|
||||||
buffer.draw(matrices.last().pose(), 7);
|
//buffer.draw(matrices.last().pose(), 7);
|
||||||
|
format.setupBufferState();
|
||||||
|
buffer.draw();
|
||||||
VertexBuffer.unbind();
|
VertexBuffer.unbind();
|
||||||
format.clearBufferState();
|
format.clearBufferState();
|
||||||
}
|
}
|
||||||
|
@ -203,7 +212,10 @@ public class WorldRendererMixin {
|
||||||
buffer.close();
|
buffer.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer = new VertexBuffer(DefaultVertexFormat.POSITION);
|
//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);
|
be_makeStars(bufferBuilder, minSize, maxSize, count, seed);
|
||||||
bufferBuilder.end();
|
bufferBuilder.end();
|
||||||
buffer.upload(bufferBuilder);
|
buffer.upload(bufferBuilder);
|
||||||
|
@ -216,7 +228,8 @@ public class WorldRendererMixin {
|
||||||
buffer.close();
|
buffer.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer = new VertexBuffer(DefaultVertexFormat.POSITION_TEX);
|
// buffer = new VertexBuffer(DefaultVertexFormat.POSITION_TEX);
|
||||||
|
buffer = new VertexBuffer();
|
||||||
be_makeUVStars(bufferBuilder, minSize, maxSize, count, seed);
|
be_makeUVStars(bufferBuilder, minSize, maxSize, count, seed);
|
||||||
bufferBuilder.end();
|
bufferBuilder.end();
|
||||||
buffer.upload(bufferBuilder);
|
buffer.upload(bufferBuilder);
|
||||||
|
@ -229,7 +242,8 @@ public class WorldRendererMixin {
|
||||||
buffer.close();
|
buffer.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer = new VertexBuffer(DefaultVertexFormat.POSITION_TEX);
|
// buffer = new VertexBuffer(DefaultVertexFormat.POSITION_TEX);
|
||||||
|
buffer = new VertexBuffer();
|
||||||
be_makeFarFog(bufferBuilder, minSize, maxSize, count, seed);
|
be_makeFarFog(bufferBuilder, minSize, maxSize, count, seed);
|
||||||
bufferBuilder.end();
|
bufferBuilder.end();
|
||||||
buffer.upload(bufferBuilder);
|
buffer.upload(bufferBuilder);
|
||||||
|
@ -242,7 +256,8 @@ public class WorldRendererMixin {
|
||||||
buffer.close();
|
buffer.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer = new VertexBuffer(DefaultVertexFormat.POSITION_TEX);
|
// buffer = new VertexBuffer(DefaultVertexFormat.POSITION_TEX);
|
||||||
|
buffer = new VertexBuffer();
|
||||||
be_makeCylinder(bufferBuilder, 16, 50, 100);
|
be_makeCylinder(bufferBuilder, 16, 50, 100);
|
||||||
bufferBuilder.end();
|
bufferBuilder.end();
|
||||||
buffer.upload(bufferBuilder);
|
buffer.upload(bufferBuilder);
|
||||||
|
@ -255,7 +270,8 @@ public class WorldRendererMixin {
|
||||||
buffer.close();
|
buffer.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer = new VertexBuffer(DefaultVertexFormat.POSITION_TEX);
|
// buffer = new VertexBuffer(DefaultVertexFormat.POSITION_TEX);
|
||||||
|
buffer = new VertexBuffer();
|
||||||
be_makeCylinder(bufferBuilder, 16, 50, 70);
|
be_makeCylinder(bufferBuilder, 16, 50, 70);
|
||||||
bufferBuilder.end();
|
bufferBuilder.end();
|
||||||
buffer.upload(bufferBuilder);
|
buffer.upload(bufferBuilder);
|
||||||
|
@ -265,7 +281,7 @@ public class WorldRendererMixin {
|
||||||
|
|
||||||
private void be_makeStars(BufferBuilder buffer, double minSize, double maxSize, int count, long seed) {
|
private void be_makeStars(BufferBuilder buffer, double minSize, double maxSize, int count, long seed) {
|
||||||
Random random = new Random(seed);
|
Random random = new Random(seed);
|
||||||
buffer.begin(7, DefaultVertexFormat.POSITION);
|
buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION);
|
||||||
|
|
||||||
for (int i = 0; i < count; ++i) {
|
for (int i = 0; i < count; ++i) {
|
||||||
double posX = random.nextDouble() * 2.0 - 1.0;
|
double posX = random.nextDouble() * 2.0 - 1.0;
|
||||||
|
@ -308,7 +324,7 @@ public class WorldRendererMixin {
|
||||||
|
|
||||||
private void be_makeUVStars(BufferBuilder buffer, double minSize, double maxSize, int count, long seed) {
|
private void be_makeUVStars(BufferBuilder buffer, double minSize, double maxSize, int count, long seed) {
|
||||||
Random random = new Random(seed);
|
Random random = new Random(seed);
|
||||||
buffer.begin(7, DefaultVertexFormat.POSITION_TEX);
|
buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX);
|
||||||
|
|
||||||
for (int i = 0; i < count; ++i) {
|
for (int i = 0; i < count; ++i) {
|
||||||
double posX = random.nextDouble() * 2.0 - 1.0;
|
double posX = random.nextDouble() * 2.0 - 1.0;
|
||||||
|
@ -356,7 +372,7 @@ public class WorldRendererMixin {
|
||||||
|
|
||||||
private void be_makeFarFog(BufferBuilder buffer, double minSize, double maxSize, int count, long seed) {
|
private void be_makeFarFog(BufferBuilder buffer, double minSize, double maxSize, int count, long seed) {
|
||||||
Random random = new Random(seed);
|
Random random = new Random(seed);
|
||||||
buffer.begin(7, DefaultVertexFormat.POSITION_TEX);
|
buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX);
|
||||||
|
|
||||||
for (int i = 0; i < count; ++i) {
|
for (int i = 0; i < count; ++i) {
|
||||||
double posX = random.nextDouble() * 2.0 - 1.0;
|
double posX = random.nextDouble() * 2.0 - 1.0;
|
||||||
|
@ -406,7 +422,7 @@ public class WorldRendererMixin {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void be_makeCylinder(BufferBuilder buffer, int segments, double height, double radius) {
|
private void be_makeCylinder(BufferBuilder buffer, int segments, double height, double radius) {
|
||||||
buffer.begin(7, DefaultVertexFormat.POSITION_TEX);
|
buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX);
|
||||||
for (int i = 0; i < segments; i ++) {
|
for (int i = 0; i < segments; i ++) {
|
||||||
double a1 = (double) i * Math.PI * 2.0 / (double) segments;
|
double a1 = (double) i * Math.PI * 2.0 / (double) segments;
|
||||||
double a2 = (double) (i + 1) * Math.PI * 2.0 / (double) segments;
|
double a2 = (double) (i + 1) * Math.PI * 2.0 / (double) segments;
|
||||||
|
|
|
@ -10,6 +10,7 @@ public class EndModelProviders {
|
||||||
public final static CrystaliteArmorProvider CRYSTALITE_PROVIDER = new CrystaliteArmorProvider();
|
public final static CrystaliteArmorProvider CRYSTALITE_PROVIDER = new CrystaliteArmorProvider();
|
||||||
|
|
||||||
public final static void register() {
|
public final static void register() {
|
||||||
|
//TODO: Needs Fix in 1.17
|
||||||
throw new RuntimeException("Needs Fix for 1.17");
|
throw new RuntimeException("Needs Fix for 1.17");
|
||||||
//ArmorRenderingRegistry.registerModel(CRYSTALITE_PROVIDER, CRYSTALITE_PROVIDER.getRenderedItems());
|
//ArmorRenderingRegistry.registerModel(CRYSTALITE_PROVIDER, CRYSTALITE_PROVIDER.getRenderedItems());
|
||||||
//ArmorRenderingRegistry.registerTexture(CRYSTALITE_PROVIDER, CRYSTALITE_PROVIDER.getRenderedItems());
|
//ArmorRenderingRegistry.registerTexture(CRYSTALITE_PROVIDER, CRYSTALITE_PROVIDER.getRenderedItems());
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue