Skip to content

Commit 87993a1

Browse files
committed
More fixes on Infinitato rendering
1 parent e12f7e2 commit 87993a1

File tree

1 file changed

+17
-53
lines changed

1 file changed

+17
-53
lines changed

src/main/java/jackyy/avaritiatweaks/compat/botania/render/RenderTileInfinitato.java

Lines changed: 17 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package jackyy.avaritiatweaks.compat.botania.render;
22

33
import jackyy.avaritiatweaks.AvaritiaTweaks;
4+
import jackyy.avaritiatweaks.compat.botania.BotaniaCompat;
45
import jackyy.avaritiatweaks.compat.botania.tile.TileInfinitato;
56
import net.minecraft.client.Minecraft;
67
import net.minecraft.client.renderer.GlStateManager;
8+
import net.minecraft.client.renderer.OpenGlHelper;
79
import net.minecraft.client.renderer.Tessellator;
810
import net.minecraft.client.renderer.VertexBuffer;
911
import net.minecraft.client.renderer.texture.TextureMap;
@@ -15,13 +17,14 @@
1517

1618
public class RenderTileInfinitato extends TileEntitySpecialRenderer<TileInfinitato> {
1719

18-
public static boolean drawHalo = true;
1920
private static final ResourceLocation TEXTURE = new ResourceLocation(AvaritiaTweaks.MODID,"textures/blocks/infinitato.png");
20-
public static final ResourceLocation HALO = new ResourceLocation("avaritia", "textures/items/halo128.png");
2121
private static final ModelInfinitato MODEL = new ModelInfinitato();
2222

2323
@Override
2424
public void renderTileEntityAt(TileInfinitato te, double x, double y, double z, float partialTicks, int destroyStage) {
25+
if (!te.getWorld().isBlockLoaded(te.getPos(), false)
26+
|| te.getWorld().getBlockState(te.getPos()).getBlock() != BotaniaCompat.infinitato)
27+
return;
2528
Tessellator tessellator = Tessellator.getInstance();
2629
VertexBuffer buffer = tessellator.getBuffer();
2730
Minecraft mc = Minecraft.getMinecraft();
@@ -33,44 +36,6 @@ public void renderTileEntityAt(TileInfinitato te, double x, double y, double z,
3336
GlStateManager.translate(0.5F, 1.5F, 0.5F);
3437
GlStateManager.scale(1F, -1F, -1F);
3538
int meta = te.getBlockMetadata();
36-
if (drawHalo) {
37-
this.bindTexture(HALO);
38-
GlStateManager.pushMatrix();
39-
double xdiff = (te.getPos().getX() + 0.5) - pos.hitVec.xCoord;
40-
double ydiff = (te.getPos().getY() + 0.4) - pos.hitVec.yCoord;
41-
double zdiff = (te.getPos().getZ() + 0.5) - pos.hitVec.zCoord;
42-
double len = Math.sqrt(xdiff*xdiff + ydiff*ydiff + zdiff*zdiff);
43-
xdiff /= len;
44-
ydiff /= len;
45-
zdiff /= len;
46-
GlStateManager.translate(-xdiff, ydiff, zdiff);
47-
GlStateManager.scale(1F, -1F, -1F);
48-
GlStateManager.translate(0F, -1.15F, 0F);
49-
GlStateManager.rotate((float) -pos.hitVec.yCoord, 0.0F, 1.0F, 0.0F);
50-
GlStateManager.rotate((float) pos.hitVec.xCoord, 1.0F, 0.0F, 0.0F);
51-
float f = 1.6F;
52-
float f1 = 0.016666668F * f;
53-
GlStateManager.scale(f1, f1, f1);
54-
GlStateManager.disableLighting();
55-
GlStateManager.depthMask(false);
56-
GlStateManager.enableBlend();
57-
GlStateManager.disableAlpha();
58-
GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
59-
buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
60-
int i=60;
61-
buffer.color(0.0F, 0.0F, 0.0F, 1.0F);
62-
buffer.pos(-i, -i, 0.0D).tex(0,0).endVertex();
63-
buffer.pos(-i, i, 0.0D).tex(1,0).endVertex();
64-
buffer.pos(i, i, 0.0D).tex(1,1).endVertex();
65-
buffer.pos(i, -i, 0.0D).tex(0,1).endVertex();
66-
tessellator.draw();
67-
GlStateManager.depthMask(true);
68-
GlStateManager.enableLighting();
69-
GlStateManager.disableBlend();
70-
GlStateManager.enableAlpha();
71-
GlStateManager.color(1F, 1F, 1F, 1F);
72-
GlStateManager.popMatrix();
73-
}
7439
float rotY = meta * 90F - 180F;
7540
GlStateManager.rotate(rotY, 0F, 1F, 0F);
7641
float jump = te.jumpTicks*0.5f;
@@ -92,33 +57,32 @@ public void renderTileEntityAt(TileInfinitato te, double x, double y, double z,
9257
GlStateManager.rotate(-rotY, 0F, 1F, 0F);
9358
GlStateManager.color(1F, 1F, 1F);
9459
GlStateManager.scale(1F, -1F, -1F);
95-
if(!te.name.isEmpty() && pos != null && pos.hitVec.xCoord == pos.hitVec.xCoord && pos.hitVec.yCoord == pos.hitVec.yCoord && pos.hitVec.zCoord == pos.hitVec.zCoord) {
60+
if (!te.name.isEmpty() && pos != null && te.getPos().equals(pos.getBlockPos())) {
9661
GlStateManager.pushMatrix();
97-
GlStateManager.translate(0F, -0.4F, 0F);
98-
GlStateManager.rotate((float) -pos.hitVec.yCoord, 0.0F, 1.0F, 0.0F);
99-
GlStateManager.rotate((float) pos.hitVec.xCoord, 1.0F, 0.0F, 0.0F);
62+
GlStateManager.translate(0F, -0.6F, 0F);
63+
GlStateManager.rotate(-mc.getRenderManager().playerViewY, 0.0F, 1.0F, 0.0F);
64+
GlStateManager.rotate(mc.getRenderManager().playerViewX, 1.0F, 0.0F, 0.0F);
10065
float f = 1.6F;
10166
float f1 = 0.016666668F * f;
10267
GlStateManager.scale(-f1, -f1, f1);
10368
GlStateManager.disableLighting();
10469
GlStateManager.translate(0.0F, 0F / f1, 0.0F);
10570
GlStateManager.depthMask(false);
10671
GlStateManager.enableBlend();
107-
GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
108-
GlStateManager.enableTexture2D();
109-
buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
72+
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
73+
GlStateManager.disableTexture2D();
74+
buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_COLOR);
11075
int i = mc.fontRendererObj.getStringWidth(te.name) / 2;
111-
buffer.color(0.0F, 0.0F, 0.0F, 0.25F);
112-
buffer.pos(-i - 1, -1.0D, 0.0D).endVertex();
113-
buffer.pos(-i - 1, 8.0D, 0.0D).endVertex();
114-
buffer.pos(i + 1, 8.0D, 0.0D).endVertex();
115-
buffer.pos(i + 1, -1.0D, 0.0D).endVertex();
76+
buffer.pos(-i - 1, -1.0D, 0.0D).color(0.0F, 0.0F, 0.0F, 0.25F).endVertex();
77+
buffer.pos(-i - 1, 8.0D, 0.0D).color(0.0F, 0.0F, 0.0F, 0.25F).endVertex();
78+
buffer.pos(i + 1, 8.0D, 0.0D).color(0.0F, 0.0F, 0.0F, 0.25F).endVertex();
79+
buffer.pos(i + 1, -1.0D, 0.0D).color(0.0F, 0.0F, 0.0F, 0.25F).endVertex();
11680
tessellator.draw();
11781
GlStateManager.enableTexture2D();
11882
GlStateManager.depthMask(true);
11983
mc.fontRendererObj.drawString(te.name, -mc.fontRendererObj.getStringWidth(te.name) / 2, 0, 0xFFFFFF);
12084
GlStateManager.enableLighting();
121-
GlStateManager.enableBlend();
85+
GlStateManager.disableBlend();
12286
GlStateManager.color(1F, 1F, 1F, 1F);
12387
GlStateManager.scale(1F / -f1, 1F / -f1, 1F / f1);
12488
GlStateManager.popMatrix();

0 commit comments

Comments
 (0)