From f0eed8c32f5a35cf2c58ae181d15ec544ca831d1 Mon Sep 17 00:00:00 2001 From: Calclavia Date: Sun, 23 Feb 2014 22:14:04 +0800 Subject: [PATCH] Pipe now renders fluid inside of it --- .../mechanical/fluid/pipe/PartPipe.java | 9 --- .../mechanical/fluid/pipe/RenderPipe.java | 65 ++++++++++++++++++ .../assets/resonantinduction/models/pipe.png | Bin 3294 -> 3256 bytes 3 files changed, 65 insertions(+), 9 deletions(-) diff --git a/mechanical/src/main/java/resonantinduction/mechanical/fluid/pipe/PartPipe.java b/mechanical/src/main/java/resonantinduction/mechanical/fluid/pipe/PartPipe.java index b07d218c..32bd7d34 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/fluid/pipe/PartPipe.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/fluid/pipe/PartPipe.java @@ -60,15 +60,6 @@ public class PartPipe extends PartFramedConnection 0) + { + float percentage = (float) fluid.amount / (float) capacity; + int[] displayList = RenderFluidHelper.getFluidDisplayLists(fluid, part.world(), false); + RenderUtility.bind(RenderFluidHelper.getFluidSheet(fluid)); + + GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_ENABLE_BIT); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + + GL11.glTranslatef((float) x + 0.3f, (float) y + 0.35f, (float) z + 0.3f); + GL11.glScalef(0.4f, 0.3f, 0.4f); + + GL11.glCallList(displayList[(int) (percentage * (RenderFluidHelper.DISPLAY_STAGES - 1))]); + + GL11.glPopAttrib(); + GL11.glPopMatrix(); + + for (ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS) + { + if (RenderUtility.canRenderSide(renderSides, direction)) + { + GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_ENABLE_BIT); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + + switch (direction.ordinal()) + { + case 4: + GL11.glTranslatef((float) x + 0F, (float) y + 0.35f, (float) z + 0.3F); + break; + case 5: + GL11.glTranslatef((float) x + 0.7F, (float) y + 0.35f, (float) z + 0.3F); + break; + case 2: + GL11.glTranslatef((float) x + 0.3F, (float) y + 0.35f, (float) z + 0F); + break; + case 3: + GL11.glTranslatef((float) x + 0.3F, (float) y + 0.35f, (float) z + 0.7F); + break; + } + + GL11.glScalef(0.4f, 0.3f, 0.4f); + GL11.glCallList(displayList[(int) (percentage * (RenderFluidHelper.DISPLAY_STAGES - 1))]); + + GL11.glPopAttrib(); + GL11.glPopMatrix(); + } + } + } + GL11.glPushMatrix(); GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); GL11.glScalef(1.0F, -1F, -1F); diff --git a/src/main/resources/assets/resonantinduction/models/pipe.png b/src/main/resources/assets/resonantinduction/models/pipe.png index b5d6b63cab0f02b373f7f6a489a0225f0f8d5cee..0414b7996e911616f74dab230283b2a4447a5d5f 100644 GIT binary patch delta 516 zcmV+f0{i{m8Mqm+zY2c=<4Ht8RCwC#TS1P3KoBetW1@x!$Vp>(gTBL)kMte>!J7vX zXWVFze|-31Y>I>FF(8!4u$htXKARxvWz@Arm&zFx26qHzh?*er@ZTQ$#i zyG?Rjuh(RJGMNAXj>jYZ0>^Puc>o{`!>4rsU@#cuu3MIs98Z6z(_9_j_j7rqu_kL< zXbEKmAzlNMKLH6qd@!uv=yO%wCOSlbS7>n)#G!|1a0cib7K=s7A)n7@0D$Ydskp=8 zKmyS5(*zQqGy~MF&wSb`0dJ-K5@xfRIIcW_S|uX^*aff+BxnK&5`drwpk9*zZ};W3 zciyAXC^|9;=AAPPiska^!)#=^Xl4^0D1s|63_#9o>zO$)9I8t zUoMyZBfw^}sdbTNx7)R1_|!f=02mI3Ii1ws1}ZHbkH=!J%jE(9ux&dTdpsVL0HWs- zpzj`4j#63|uNp^mfB?7KO}rqrQc)B=jZ<5b37WvSGJ$;a`J8vThyePNs~aV0!9n^1 zLiSo)a2zK`0^a-z1SnfEN;$@YSZM{TtxiC70R+1MqHG4x`&+&5Rpu`Uf@Dk?Mk$V6 zK+jB|(*ClkUFsGHN&wMC6DYZR$pn_g5#7NT00030{{sNpRnJY#&ukF@00002}wjjRCwC#n@w(lP!xp^iZM~+0%W8yu0f{l+=(NX(sbOo z8kf*c*@H6%HpZdR#P~-C&7%*wAWL2PZ4U{Ei!+%_{1}_f#vgAsn*adUb#V)pWd-5@zumH#tBT7J&w#R8cDQE$tt;O!k=qrig>m-b4 zV|tUxBzLR;Wuw>Y1sw8fwE_SP27|!7`Fzd-pyQ_rB+s-0q;Bk-5w)2T@HpBpb~7E> zf+|m-cF9-(DUp9k`^c3hodRGxMH5I^0E8wmLnt%s0eXaI6ZlXju-onOF2@ys{>#;klC;lNO6+rKA^}bh`zuj)s~>9qg=002ovPDHLkV1j9u0kQx9