11package gregtech .client .renderer .scene ;
22
3+ import codechicken .lib .vec .Vector3 ;
34import gregtech .api .util .Position ;
45import gregtech .api .util .PositionedRect ;
56import gregtech .api .util .Size ;
67import gregtech .client .utils .RenderUtil ;
7-
8+ import it . unimi . dsi . fastutil . objects . ObjectOpenHashSet ;
89import net .minecraft .block .Block ;
910import net .minecraft .block .state .IBlockState ;
1011import net .minecraft .client .Minecraft ;
2324import net .minecraftforge .client .MinecraftForgeClient ;
2425import net .minecraftforge .fml .relauncher .Side ;
2526import net .minecraftforge .fml .relauncher .SideOnly ;
26-
27- import codechicken .lib .vec .Vector3 ;
28- import it .unimi .dsi .fastutil .objects .ObjectOpenHashSet ;
2927import org .jetbrains .annotations .Nullable ;
3028import org .lwjgl .opengl .GL11 ;
3129import org .lwjgl .util .glu .GLU ;
3230
31+ import javax .vecmath .Vector3f ;
3332import java .nio .ByteBuffer ;
3433import java .nio .ByteOrder ;
3534import java .nio .FloatBuffer ;
3635import java .nio .IntBuffer ;
3736import java .util .Collection ;
3837import java .util .function .Consumer ;
3938
40- import javax .vecmath .Vector3f ;
41-
4239/**
4340 * Created with IntelliJ IDEA.
4441 *
@@ -237,23 +234,8 @@ protected void drawWorld() {
237234
238235 try { // render block in each layer
239236 for (BlockRenderLayer layer : BlockRenderLayer .values ()) {
240- ForgeHooksClient .setRenderLayer (layer );
241- int pass = layer == BlockRenderLayer .TRANSLUCENT ? 1 : 0 ;
242- setDefaultPassRenderState (pass );
243-
244- BufferBuilder buffer = Tessellator .getInstance ().getBuffer ();
245- buffer .begin (GL11 .GL_QUADS , DefaultVertexFormats .BLOCK );
246- BlockRendererDispatcher blockrendererdispatcher = mc .getBlockRendererDispatcher ();
247-
248- for (BlockPos pos : renderedBlocks ) {
249- IBlockState state = world .getBlockState (pos );
250- Block block = state .getBlock ();
251- if (block == Blocks .AIR ) continue ;
252- state = state .getActualState (world , pos );
253- if (block .canRenderInLayer (state , layer )) {
254- blockrendererdispatcher .renderBlock (state , pos , world , buffer );
255- }
256- }
237+
238+ renderBlockLayer (layer );
257239
258240 Tessellator .getInstance ().draw ();
259241 Tessellator .getInstance ().getBuffer ().setTranslation (0 , 0 , 0 );
@@ -262,14 +244,44 @@ protected void drawWorld() {
262244 ForgeHooksClient .setRenderLayer (oldRenderLayer );
263245 }
264246
265- RenderHelper .enableStandardItemLighting ();
266- GlStateManager .enableLighting ();
247+ renderTESR (); // Handles TileEntities
248+
249+ GlStateManager .enableDepth ();
250+ GlStateManager .disableBlend ();
251+ GlStateManager .depthMask (true );
252+
253+ if (afterRender != null ) {
254+ afterRender .accept (this );
255+ }
256+ }
267257
268- // render TESR
258+ protected void renderBlockLayer (BlockRenderLayer layer ) {
259+ ForgeHooksClient .setRenderLayer (layer );
260+ int pass = layer == BlockRenderLayer .TRANSLUCENT ? 1 : 0 ;
261+ setDefaultPassRenderState (pass );
262+
263+ BufferBuilder buffer = Tessellator .getInstance ().getBuffer ();
264+ buffer .begin (GL11 .GL_QUADS , DefaultVertexFormats .BLOCK );
265+ BlockRendererDispatcher blockrendererdispatcher = Minecraft .getMinecraft ().getBlockRendererDispatcher ();
266+
267+ for (BlockPos pos : renderedBlocks ) {
268+ IBlockState state = world .getBlockState (pos );
269+ Block block = state .getBlock ();
270+ state = state .getActualState (world , pos );
271+ if (block == Blocks .AIR ) continue ;
272+ if (block .canRenderInLayer (state , layer )) {
273+ blockrendererdispatcher .renderBlock (state , pos , world , buffer );
274+ }
275+ }
276+ }
277+
278+ protected void renderTESR () {
279+ RenderHelper .enableStandardItemLighting ();
269280 for (int pass = 0 ; pass < 2 ; pass ++) {
270281 ForgeHooksClient .setRenderPass (pass );
271282 setDefaultPassRenderState (pass );
272- for (BlockPos pos : renderedBlocks ) {
283+
284+ for (BlockPos pos : renderedBlocks ) { // This
273285 TileEntity tile = world .getTileEntity (pos );
274286 if (tile != null ) {
275287 if (tile .shouldRenderInPass (pass )) {
@@ -279,13 +291,7 @@ protected void drawWorld() {
279291 }
280292 }
281293 ForgeHooksClient .setRenderPass (-1 );
282- GlStateManager .enableDepth ();
283- GlStateManager .disableBlend ();
284- GlStateManager .depthMask (true );
285-
286- if (afterRender != null ) {
287- afterRender .accept (this );
288- }
294+ RenderHelper .disableStandardItemLighting ();
289295 }
290296
291297 public static void setDefaultPassRenderState (int pass ) {
0 commit comments