55import com .flowpowered .math .vector .Vector4f ;
66import org .dimdev .ddutils .RGBA ;
77import org .dimdev .dimdoors .DimDoors ;
8+ import org .dimdev .dimdoors .client .tesseract .Tesseract ;
89import org .dimdev .dimdoors .shared .tileentities .TileEntityFloatingRift ;
910import net .minecraft .client .renderer .BufferBuilder ;
1011import net .minecraft .client .renderer .GlStateManager ;
2021public class TileEntityFloatingRiftRenderer extends TileEntitySpecialRenderer <TileEntityFloatingRift > {
2122 private static final ResourceLocation tesseract_path = new ResourceLocation (DimDoors .MODID + ":textures/other/tesseract.png" );
2223
23- private static final Vector4f [] tesseract = {
24- new Vector4f (-0.5f ,-0.5f ,-0.5f ,-0.5f ),
25- new Vector4f (0.5f ,-0.5f ,-0.5f ,-0.5f ),
26- new Vector4f (0.5f ,-0.5f ,0.5f ,-0.5f ),
27- new Vector4f (-0.5f ,-0.5f ,0.5f ,-0.5f ),
28-
29- new Vector4f (-0.5f ,0.5f ,-0.5f ,-0.5f ),
30- new Vector4f (0.5f ,0.5f ,-0.5f ,-0.5f ),
31- new Vector4f (0.5f ,0.5f ,0.5f ,-0.5f ),
32- new Vector4f (-0.5f ,0.5f ,0.5f ,-0.5f ),
33-
34- new Vector4f (-0.5f ,-0.5f ,-0.5f ,-0.5f ),
35- new Vector4f (0.5f ,-0.5f ,-0.5f ,-0.5f ),
36- new Vector4f (0.5f ,0.5f ,-0.5f ,-0.5f ),
37- new Vector4f (-0.5f ,0.5f ,-0.5f ,-0.5f ),
38-
39- new Vector4f (-0.5f ,-0.5f ,0.5f ,-0.5f ),
40- new Vector4f (0.5f ,-0.5f ,0.5f ,-0.5f ),
41- new Vector4f (0.5f ,0.5f ,0.5f ,-0.5f ),
42- new Vector4f (-0.5f ,0.5f ,0.5f ,-0.5f ),
43-
44- new Vector4f (-0.5f ,-0.5f ,-0.5f ,-0.5f ),
45- new Vector4f (-0.5f ,0.5f ,-0.5f ,-0.5f ),
46- new Vector4f (-0.5f ,0.5f ,0.5f ,-0.5f ),
47- new Vector4f (-0.5f ,-0.5f ,0.5f ,-0.5f ),
48-
49- new Vector4f (0.5f ,-0.5f ,-0.5f ,-0.5f ),
50- new Vector4f (0.5f ,0.5f ,-0.5f ,-0.5f ),
51- new Vector4f (0.5f ,0.5f ,0.5f ,-0.5f ),
52- new Vector4f (0.5f ,-0.5f ,0.5f ,-0.5f ),
53-
54- new Vector4f (-0.5f ,-0.5f ,-0.5f ,0.5f ),
55- new Vector4f (0.5f ,-0.5f ,-0.5f ,0.5f ),
56- new Vector4f (0.5f ,-0.5f ,0.5f ,0.5f ),
57- new Vector4f (-0.5f ,-0.5f ,0.5f ,0.5f ),
58-
59- new Vector4f (-0.5f ,0.5f ,-0.5f ,0.5f ),
60- new Vector4f (0.5f ,0.5f ,-0.5f ,0.5f ),
61- new Vector4f (0.5f ,0.5f ,0.5f ,0.5f ),
62- new Vector4f (-0.5f ,0.5f ,0.5f ,0.5f ),
63-
64- new Vector4f (-0.5f ,-0.5f ,-0.5f ,0.5f ),
65- new Vector4f (0.5f ,-0.5f ,-0.5f ,0.5f ),
66- new Vector4f (0.5f ,0.5f ,-0.5f ,0.5f ),
67- new Vector4f (-0.5f ,0.5f ,-0.5f ,0.5f ),
68-
69- new Vector4f (-0.5f ,-0.5f ,0.5f ,0.5f ),
70- new Vector4f (0.5f ,-0.5f ,0.5f ,0.5f ),
71- new Vector4f (0.5f ,0.5f ,0.5f ,0.5f ),
72- new Vector4f (-0.5f ,0.5f ,0.5f ,0.5f ),
73-
74- new Vector4f (-0.5f ,-0.5f ,-0.5f ,0.5f ),
75- new Vector4f (-0.5f ,0.5f ,-0.5f ,0.5f ),
76- new Vector4f (-0.5f ,0.5f ,0.5f ,0.5f ),
77- new Vector4f (-0.5f ,-0.5f ,0.5f ,0.5f ),
78-
79- new Vector4f (0.5f ,-0.5f ,-0.5f ,0.5f ),
80- new Vector4f (0.5f ,0.5f ,-0.5f ,0.5f ),
81- new Vector4f (0.5f ,0.5f ,0.5f ,0.5f ),
82- new Vector4f (0.5f ,-0.5f ,0.5f ,0.5f ),
83-
84- new Vector4f (-0.5f ,-0.5f ,-0.5f ,-0.5f ),
85- new Vector4f (-0.5f ,0.5f ,-0.5f ,-0.5f ),
86- new Vector4f (-0.5f ,0.5f ,-0.5f ,0.5f ),
87- new Vector4f (-0.5f ,-0.5f ,-0.5f ,0.5f ),
88-
89- new Vector4f (-0.5f ,-0.5f ,0.5f ,-0.5f ),
90- new Vector4f (-0.5f ,0.5f ,0.5f ,-0.5f ),
91- new Vector4f (-0.5f ,0.5f ,0.5f ,0.5f ),
92- new Vector4f (-0.5f ,-0.5f ,0.5f ,0.5f ),
93-
94- new Vector4f (-0.5f ,-0.5f ,-0.5f ,-0.5f ),
95- new Vector4f (-0.5f ,0.5f ,-0.5f ,-0.5f ),
96- new Vector4f (-0.5f ,0.5f ,0.5f ,-0.5f ),
97- new Vector4f (-0.5f ,-0.5f ,0.5f ,-0.5f ),
98-
99- new Vector4f (-0.5f ,-0.5f ,-0.5f ,0.5f ),
100- new Vector4f (-0.5f ,0.5f ,-0.5f ,0.5f ),
101- new Vector4f (-0.5f ,0.5f ,0.5f ,0.5f ),
102- new Vector4f (-0.5f ,-0.5f ,0.5f ,0.5f ),
103-
104- new Vector4f (-0.5f ,-0.5f ,-0.5f ,-0.5f ),
105- new Vector4f (-0.5f ,-0.5f ,0.5f ,-0.5f ),
106- new Vector4f (-0.5f ,-0.5f ,0.5f ,0.5f ),
107- new Vector4f (-0.5f ,-0.5f ,-0.5f ,0.5f ),
108-
109- new Vector4f (-0.5f ,0.5f ,-0.5f ,-0.5f ),
110- new Vector4f (-0.5f ,0.5f ,0.5f ,-0.5f ),
111- new Vector4f (-0.5f ,0.5f ,0.5f ,0.5f ),
112- new Vector4f (-0.5f ,0.5f ,-0.5f ,0.5f ),
113-
114- new Vector4f (0.5f ,-0.5f ,-0.5f ,-0.5f ),
115- new Vector4f (0.5f ,0.5f ,-0.5f ,-0.5f ),
116- new Vector4f (0.5f ,0.5f ,-0.5f ,0.5f ),
117- new Vector4f (0.5f ,-0.5f ,-0.5f ,0.5f ),
118-
119- new Vector4f (0.5f ,-0.5f ,0.5f ,-0.5f ),
120- new Vector4f (0.5f ,0.5f ,0.5f ,-0.5f ),
121- new Vector4f (0.5f ,0.5f ,0.5f ,0.5f ),
122- new Vector4f (0.5f ,-0.5f ,0.5f ,0.5f ),
123-
124- new Vector4f (0.5f ,-0.5f ,-0.5f ,-0.5f ),
125- new Vector4f (0.5f ,0.5f ,-0.5f ,-0.5f ),
126- new Vector4f (0.5f ,0.5f ,0.5f ,-0.5f ),
127- new Vector4f (0.5f ,-0.5f ,0.5f ,-0.5f ),
128-
129- new Vector4f (0.5f ,-0.5f ,-0.5f ,0.5f ),
130- new Vector4f (0.5f ,0.5f ,-0.5f ,0.5f ),
131- new Vector4f (0.5f ,0.5f ,0.5f ,0.5f ),
132- new Vector4f (0.5f ,-0.5f ,0.5f ,0.5f ),
133-
134- new Vector4f (0.5f ,-0.5f ,-0.5f ,-0.5f ),
135- new Vector4f (0.5f ,-0.5f ,0.5f ,-0.5f ),
136- new Vector4f (0.5f ,-0.5f ,0.5f ,0.5f ),
137- new Vector4f (0.5f ,-0.5f ,-0.5f ,0.5f ),
138-
139- new Vector4f (0.5f ,0.5f ,-0.5f ,-0.5f ),
140- new Vector4f (0.5f ,0.5f ,0.5f ,-0.5f ),
141- new Vector4f (0.5f ,0.5f ,0.5f ,0.5f ),
142- new Vector4f (0.5f ,0.5f ,-0.5f ,0.5f )
143- };
24+ private static final Tesseract tesseract = new Tesseract ();
14425
14526 /**
14627 * Renders the rift.
@@ -161,18 +42,7 @@ public void render(TileEntityFloatingRift te, double x, double y, double z, floa
16142 GlStateManager .translate (x +0.5 ,y +0.5 ,z +0.5 );
16243 GlStateManager .scale (0.25 ,0.25 ,0.25 );
16344
164- Tessellator tessellator = Tessellator .getInstance ();
165- BufferBuilder worldRenderer = tessellator .getBuffer ();
166-
167- for (int i = 0 ; i < tesseract .length ; i +=4 ) {
168- worldRenderer .begin (GL11 .GL_QUADS , DefaultVertexFormats .POSITION_TEX_COLOR );
169- GlStateManager .color (color .getRed (), color .getGreen (), color .getBlue (), color .getAlpha ());
170- project (worldRenderer , rotation (tesseract [i ], radian ),0 ,0 , color );
171- project (worldRenderer , rotation (tesseract [i +1 ], radian ),0 ,1 , color );
172- project (worldRenderer , rotation (tesseract [i +2 ], radian ),1 ,1 , color );
173- project (worldRenderer , rotation (tesseract [i +3 ], radian ),1 ,0 , color );
174- tessellator .draw ();
175- }
45+ tesseract .draw (color , radian );
17646
17747 GlStateManager .disableBlend ();
17848 GlStateManager .enableCull ();
@@ -181,27 +51,7 @@ public void render(TileEntityFloatingRift te, double x, double y, double z, floa
18151 }
18252
18353 private double update (TileEntityFloatingRift te , float partialTicks ) {
184- te .renderAngle = (te .renderAngle + 1 * partialTicks ) % 360 ;
54+ te .renderAngle = (te .renderAngle + 5 * partialTicks ) % 360 ;
18555 return te .renderAngle ;
18656 }
187-
188- private Vector4f rotation (Vector4f v , double angle ) {
189- double x = v .getX ();
190- double y = v .getY ();
191- double z = v .getZ ();
192- double w = v .getW ();
193-
194- return new Vector4f (
195- x * TrigMath .cos (angle ) - y * TrigMath .sin (angle ),
196- x * TrigMath .sin (angle ) + y * TrigMath .cos (angle ),
197- z * TrigMath .cos (angle ) - w * TrigMath .sin (angle ),
198- z * TrigMath .sin (angle ) + w * TrigMath .cos (angle ));
199- }
200-
201- private void project (BufferBuilder buffer , Vector4f vector , int u , int v , RGBA color ) {
202- double scalar = 1d /(vector .getW ()+1d );
203- Vector3f vector1 = vector .toVector3 ().mul (scalar );
204-
205- buffer .pos (vector1 .getX (), vector1 .getY (), vector1 .getZ ()).tex (u ,v ).color (color .getRed (), color .getGreen (), color .getBlue (), color .getAlpha ()).endVertex ();
206- }
20757}
0 commit comments