Merge pull request #1437 from Caffeinew/main

iris compat
This commit is contained in:
Mrbysco 2024-11-05 21:35:19 +01:00 committed by GitHub
commit 74addcb6e0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 40 additions and 52 deletions

View file

@ -25,6 +25,7 @@ public class RenderTypes extends RenderType {
.setOutputState(MAIN_TARGET)
.setLightmapState(RenderStateShard.LIGHTMAP)
.setCullState(RenderStateShard.NO_CULL)
.setShaderState(RenderStateShard.POSITION_COLOR_TEX_LIGHTMAP_SHADER)
.setShaderState(RenderStateShard.POSITION_COLOR_SHADER)
.createCompositeState(true));
}

View file

@ -38,7 +38,7 @@ public class ParticleBeam extends Particle {
RenderSystem.disableCull();
RenderSystem.enableBlend();
RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE);
return tesselator.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.PARTICLE);
return tesselator.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR);
}
@Override
@ -100,7 +100,7 @@ public class ParticleBeam extends Particle {
public static ParticleOptions createData(double endX, double endY, double endZ, int color, float alpha,
int maxAge, double rotationTime, float size) {
return new BeamParticleData(endX, endY, endZ, color, maxAge, rotationTime, size);
return new BeamParticleData(endX, endY, endZ, FastColor.ARGB32.color((int)(alpha * 255F), color), maxAge, rotationTime, size);
}
}
}

View file

@ -26,7 +26,6 @@ import net.minecraft.client.renderer.LightTexture;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.entity.ItemRenderer;
import net.minecraft.client.renderer.texture.TextureAtlas;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.client.resources.model.BakedModel;
import net.minecraft.core.BlockPos;
@ -234,9 +233,9 @@ public final class AssetUtil {
int g = (color >> 8) & 0xFF;
int b = color & 0xFF;
int a = (int) (alpha * 255);*/
int r = (int)(((color >> 16) & 0xFF) * alpha);
int g = (int)(((color >> 8) & 0xFF) * alpha);
int b = (int)((color & 0xFF) * alpha);
int r = (int)(((color >> 16) & 0xFF) * alpha * 0.4F);
int g = (int)(((color >> 8) & 0xFF) * alpha * 0.4F);
int b = (int)((color & 0xFF) * alpha * 0.4F);
int a = 255;
int lightmap = LightTexture.pack(MAX_LIGHT_X, MAX_LIGHT_Y);
@ -254,35 +253,29 @@ public final class AssetUtil {
Matrix4f matrix = matrixStack.last().pose();
TextureAtlasSprite sprite = Minecraft.getInstance().getTextureAtlas(TextureAtlas.LOCATION_BLOCKS).apply(FORGE_WHITE);
float minU = sprite.getU0();
float maxU = sprite.getU1();
float minV = sprite.getV0();
float maxV = sprite.getV1();
//Draw laser tube faces
for (int i = 1; i < 4; i++) {
float width = beamWidth * (i / 4.0f);
//top
builder.addVertex(matrix, -width, width, 0.0f).setColor(r, g, b, a).setUv(minU, maxV).setLight(lightmap);
builder.addVertex(matrix, width, width, 0.0f).setColor(r, g, b, a).setUv(maxU, maxV).setLight(lightmap);
builder.addVertex(matrix, width, width, -length).setColor(r, g, b, a).setUv(maxU, minV).setLight(lightmap);
builder.addVertex(matrix, -width, width, -length).setColor(r, g, b, a).setUv(minU, minV).setLight(lightmap);
builder.addVertex(matrix, -width, width, 0.0f).setColor(r, g, b, a).setLight(lightmap);
builder.addVertex(matrix, width, width, 0.0f).setColor(r, g, b, a).setLight(lightmap);
builder.addVertex(matrix, width, width, -length).setColor(r, g, b, a).setLight(lightmap);
builder.addVertex(matrix, -width, width, -length).setColor(r, g, b, a).setLight(lightmap);
//bottom
builder.addVertex(matrix, -width, -width, 0.0f).setColor(r, g, b, a).setUv(minU, maxV).setLight(lightmap);
builder.addVertex(matrix, -width, -width, -length).setColor(r, g, b, a).setUv(minU, minV).setLight(lightmap);
builder.addVertex(matrix, width, -width, -length).setColor(r, g, b, a).setUv(maxU, minV).setLight(lightmap);
builder.addVertex(matrix, width, -width, 0.0f).setColor(r, g, b, a).setUv(maxU, maxV).setLight(lightmap);
builder.addVertex(matrix, -width, -width, 0.0f).setColor(r, g, b, a).setLight(lightmap);
builder.addVertex(matrix, -width, -width, -length).setColor(r, g, b, a).setLight(lightmap);
builder.addVertex(matrix, width, -width, -length).setColor(r, g, b, a).setLight(lightmap);
builder.addVertex(matrix, width, -width, 0.0f).setColor(r, g, b, a).setLight(lightmap);
//left
builder.addVertex(matrix, -width, width, 0.0f).setColor(r, g, b, a).setUv(maxU, maxV).setLight(lightmap);
builder.addVertex(matrix, -width, -width, 0.0f).setColor(r, g, b, a).setUv(maxU, maxV).setLight(lightmap);
builder.addVertex(matrix, -width, -width, -length).setColor(r, g, b, a).setUv(minU, minV).setLight(lightmap);
builder.addVertex(matrix, -width, width, -length).setColor(r, g, b, a).setUv(minU, minV).setLight(lightmap);
builder.addVertex(matrix, -width, width, 0.0f).setColor(r, g, b, a).setLight(lightmap);
builder.addVertex(matrix, -width, -width, 0.0f).setColor(r, g, b, a).setLight(lightmap);
builder.addVertex(matrix, -width, -width, -length).setColor(r, g, b, a).setLight(lightmap);
builder.addVertex(matrix, -width, width, -length).setColor(r, g, b, a).setLight(lightmap);
//right
builder.addVertex(matrix, width, width, 0.0f).setColor(r, g, b, a).setUv(maxU, maxV).setLight(lightmap);
builder.addVertex(matrix, width, -width, 0.0f).setColor(r, g, b, a).setUv(maxU, maxV).setLight(lightmap);
builder.addVertex(matrix, width, -width, -length).setColor(r, g, b, a).setUv(minU, minV).setLight(lightmap);
builder.addVertex(matrix, width, width, -length).setColor(r, g, b, a).setUv(minU, minV).setLight(lightmap);
builder.addVertex(matrix, width, width, 0.0f).setColor(r, g, b, a).setLight(lightmap);
builder.addVertex(matrix, width, -width, 0.0f).setColor(r, g, b, a).setLight(lightmap);
builder.addVertex(matrix, width, -width, -length).setColor(r, g, b, a).setLight(lightmap);
builder.addVertex(matrix, width, width, -length).setColor(r, g, b, a).setLight(lightmap);
}
@ -334,37 +327,31 @@ public final class AssetUtil {
Matrix4f matrix = matrixStack.last().pose();
RenderSystem.setShader(GameRenderer::getPositionColorLightmapShader);
TextureAtlasSprite sprite = Minecraft.getInstance().getTextureAtlas(TextureAtlas.LOCATION_BLOCKS).apply(FORGE_WHITE);
float minU = sprite.getU0();
float maxU = sprite.getU1();
float minV = sprite.getV0();
float maxV = sprite.getV1();
RenderSystem.setShader(GameRenderer::getPositionColorShader);
//Draw laser tube faces
for (int i = 1; i < 4; i++) {
float width = beamWidth * (i / 4.0f);
//top
builder.addVertex(matrix, -width, width, 0.0f).setColor(r, g, b, a).setUv(minU, maxV).setLight(lightmap);
builder.addVertex(matrix, width, width, 0.0f).setColor(r, g, b, a).setUv(maxU, maxV).setLight(lightmap);
builder.addVertex(matrix, width, width, -length).setColor(r, g, b, a).setUv(maxU, minV).setLight(lightmap);
builder.addVertex(matrix, -width, width, -length).setColor(r, g, b, a).setUv(minU, minV).setLight(lightmap);
builder.addVertex(matrix, -width, width, 0.0f).setColor(r, g, b, a);
builder.addVertex(matrix, width, width, 0.0f).setColor(r, g, b, a);
builder.addVertex(matrix, width, width, -length).setColor(r, g, b, a);
builder.addVertex(matrix, -width, width, -length).setColor(r, g, b, a);
//bottom
builder.addVertex(matrix, -width, -width, 0.0f).setColor(r, g, b, a).setUv(minU, maxV).setLight(lightmap);
builder.addVertex(matrix, -width, -width, -length).setColor(r, g, b, a).setUv(minU, minV).setLight(lightmap);
builder.addVertex(matrix, width, -width, -length).setColor(r, g, b, a).setUv(maxU, minV).setLight(lightmap);
builder.addVertex(matrix, width, -width, 0.0f).setColor(r, g, b, a).setUv(maxU, maxV).setLight(lightmap);
builder.addVertex(matrix, -width, -width, 0.0f).setColor(r, g, b, a);
builder.addVertex(matrix, -width, -width, -length).setColor(r, g, b, a);
builder.addVertex(matrix, width, -width, -length).setColor(r, g, b, a);
builder.addVertex(matrix, width, -width, 0.0f).setColor(r, g, b, a);
//left
builder.addVertex(matrix, -width, width, 0.0f).setColor(r, g, b, a).setUv(maxU, maxV).setLight(lightmap);
builder.addVertex(matrix, -width, -width, 0.0f).setColor(r, g, b, a).setUv(maxU, maxV).setLight(lightmap);
builder.addVertex(matrix, -width, -width, -length).setColor(r, g, b, a).setUv(minU, minV).setLight(lightmap);
builder.addVertex(matrix, -width, width, -length).setColor(r, g, b, a).setUv(minU, minV).setLight(lightmap);
builder.addVertex(matrix, -width, width, 0.0f).setColor(r, g, b, a);
builder.addVertex(matrix, -width, -width, 0.0f).setColor(r, g, b, a);
builder.addVertex(matrix, -width, -width, -length).setColor(r, g, b, a);
builder.addVertex(matrix, -width, width, -length).setColor(r, g, b, a);
//right
builder.addVertex(matrix, width, width, 0.0f).setColor(r, g, b, a).setUv(maxU, maxV).setLight(lightmap);
builder.addVertex(matrix, width, -width, 0.0f).setColor(r, g, b, a).setUv(maxU, maxV).setLight(lightmap);
builder.addVertex(matrix, width, -width, -length).setColor(r, g, b, a).setUv(minU, minV).setLight(lightmap);
builder.addVertex(matrix, width, width, -length).setColor(r, g, b, a).setUv(minU, minV).setLight(lightmap);
builder.addVertex(matrix, width, width, 0.0f).setColor(r, g, b, a);
builder.addVertex(matrix, width, -width, 0.0f).setColor(r, g, b, a);
builder.addVertex(matrix, width, -width, -length).setColor(r, g, b, a);
builder.addVertex(matrix, width, width, -length).setColor(r, g, b, a);
}
matrixStack.popPose();