This commit is contained in:
Mysticpasta1 2022-06-23 02:36:01 -05:00
commit a8c296940e
2 changed files with 27 additions and 30 deletions

View File

@ -8,6 +8,7 @@ import com.google.common.collect.ImmutableList;
import com.mojang.blaze3d.vertex.DefaultVertexFormat; import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.renderer.block.model.BakedQuad;
import net.minecraft.client.renderer.block.model.ItemOverrideList; import net.minecraft.client.renderer.block.model.ItemOverrideList;
import net.minecraft.client.renderer.block.model.ItemOverrides;
import net.minecraft.client.renderer.block.model.ItemTransforms; import net.minecraft.client.renderer.block.model.ItemTransforms;
import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.client.renderer.texture.TextureAtlas;
import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureAtlasSprite;
@ -140,8 +141,8 @@ public class ScreenBaker implements IModelBaker {
@Override @Override
@Nonnull @Nonnull
public ItemOverrideList getOverrides() { public ItemOverrides getOverrides() {
return ItemOverrideList.NONE; return ItemOverrides.EMPTY;
} }
} }

View File

@ -16,6 +16,7 @@ import net.montoyo.wd.utilities.Vector3f;
import net.montoyo.wd.utilities.Vector3i; import net.montoyo.wd.utilities.Vector3i;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import static com.mojang.math.Vector3f.*;
import static org.lwjgl.opengl.GL11.*; import static org.lwjgl.opengl.GL11.*;
public class ScreenRenderer implements BlockEntityRenderer<TileEntityScreen> { public class ScreenRenderer implements BlockEntityRenderer<TileEntityScreen> {
@ -30,9 +31,9 @@ public class ScreenRenderer implements BlockEntityRenderer<TileEntityScreen> {
return; return;
//Disable lighting //Disable lighting
glEnable(GL_TEXTURE_2D); RenderSystem.enableTexture();
glDisable(GL_CULL_FACE); RenderSystem.disableCull();
glDisable(GL_BLEND); RenderSystem.disableBlend();
for(int i = 0; i < te.screenCount(); i++) { for(int i = 0; i < te.screenCount(); i++) {
TileEntityScreen.Screen scr = te.getScreen(i); TileEntityScreen.Screen scr = te.getScreen(i);
@ -52,39 +53,38 @@ public class ScreenRenderer implements BlockEntityRenderer<TileEntityScreen> {
tmpi.mul(scr.size.x); tmpi.mul(scr.size.x);
tmpi.addMul(scr.side.up, scr.size.y); tmpi.addMul(scr.side.up, scr.size.y);
tmpf.set(tmpi); tmpf.set(tmpi);
mid.set(0.5, 0.5, 0.5);
mid.set(tmpf.x + 0.5, tmpi.y + 0.5, tmpi.z + 0.5);
mid.addMul(tmpf, 0.5f); mid.addMul(tmpf, 0.5f);
tmpf.set(scr.side.left); tmpf.set(scr.side.left);
mid.addMul(tmpf, 0.5f); mid.addMul(tmpf, 0.5f);
tmpf.set(scr.side.down); tmpf.set(scr.side.down);
mid.addMul(tmpf, 0.5f); mid.addMul(tmpf, 0.5f);
glPushMatrix(); poseStack.pushPose();
glTranslatef(mid.x, mid.y, mid.z); poseStack.translate(mid.x, mid.y, mid.z);
switch(scr.side) { switch(scr.side) {
case BOTTOM: case BOTTOM:
glRotatef(90.f, 1.f, 0.f, 0.f); poseStack.mulPose(XP.rotation(90.f));
break; break;
case TOP: case TOP:
glRotatef(-90.f, 1.f, 0.f, 0.f); poseStack.mulPose(XN.rotation(90.f));
break; break;
case NORTH: case NORTH:
glRotatef(180.f, 0.f, 1.f, 0.f); poseStack.mulPose(YN.rotationDegrees(180.f));
break; break;
case SOUTH: case SOUTH:
break; break;
case WEST: case WEST:
glRotatef(-90.f, 0.f, 1.f, 0.f); poseStack.mulPose(YN.rotationDegrees(90.f));
break; break;
case EAST: case EAST:
glRotatef(90.f, 0.f, 1.f, 0.f); poseStack.mulPose(YP.rotationDegrees(90.f));
break; break;
} }
@ -112,16 +112,19 @@ public class ScreenRenderer implements BlockEntityRenderer<TileEntityScreen> {
sh = tmp; sh = tmp;
} }
Tesselator tesselator = Tesselator.getInstance();
BufferBuilder builder = tesselator.getBuilder();
//TODO: Use tesselator //TODO: Use tesselator
glBindTexture(GL_TEXTURE_2D, scr.browser.getTextureID()); RenderSystem.setShaderTexture(0, scr.browser.getTextureID());
glBegin(GL_QUADS); builder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR_TEX);
glColor4f(1.f, 1.f, 1.f, 1.f); glTexCoord2f(0.f, 1.f); glVertex3f(-sw, -sh, 0.505f);
glColor4f(1.f, 1.f, 1.f, 1.f); glTexCoord2f(1.f, 1.f); glVertex3f( sw, -sh, 0.505f); builder.vertex(-sw, -sh, 0.505f).color(1.f, 1.f, 1.f, 1.f).uv(0.f, 1.f).endVertex();
glColor4f(1.f, 1.f, 1.f, 1.f); glTexCoord2f(1.f, 0.f); glVertex3f( sw, sh, 0.505f); builder.vertex( sw, -sh, 0.505f).color(1.f, 1.f, 1.f, 1.f).uv(1.f, 1.f).endVertex();
glColor4f(1.f, 1.f, 1.f, 1.f); glTexCoord2f(0.f, 0.f); glVertex3f(-sw, sh, 0.505f); builder.vertex( sw, sh, 0.505f).color(1.f, 1.f, 1.f, 1.f).uv(1.f, 0.f).endVertex();
glEnd(); builder.vertex(-sw, sh, 0.505f).color(1.f, 1.f, 1.f, 1.f).uv(0.f, 0.f).endVertex();
builder.end();
RenderSystem.bindTexture(0); //Minecraft does shit with mah texture otherwise... RenderSystem.bindTexture(0); //Minecraft does shit with mah texture otherwise...
glPopMatrix(); poseStack.popPose();
} }
/* /*
@ -133,7 +136,7 @@ public class ScreenRenderer implements BlockEntityRenderer<TileEntityScreen> {
*/ */
//Re-enable lighting //Re-enable lighting
glEnable(GL_CULL_FACE); RenderSystem.enableCull();
} }
public void renderAABB(AABB bb) { public void renderAABB(AABB bb) {
@ -191,11 +194,4 @@ public class ScreenRenderer implements BlockEntityRenderer<TileEntityScreen> {
glEnable(GL_TEXTURE_2D); glEnable(GL_TEXTURE_2D);
glDisable(GL_BLEND); glDisable(GL_BLEND);
} }
// @Override
// public boolean isGlobalRenderer(TileEntityScreen te) {
//I don't like making it a global renderer for performance reasons,
//but Minecraft's AABB-in-view-frustum checking is crappy as hell.
// return te.isLoaded();
// }
} }