private void doTileEntityRenderPass(Multiblock mb, Iterable<? extends BlockPos> blocks, final int pass) { mb.setWorld(mc.world); RenderHelper.enableStandardItemLighting(); GlStateManager.enableLighting(); ForgeHooksClient.setRenderPass(1); setGlStateForPass(1); for (BlockPos pos : blocks) { TileEntity te = mb.getTileEntity(pos); BlockPos relPos = new BlockPos(mc.player); if (te != null && !erroredTiles.contains(te) && te.shouldRenderInPass(pass)) { te.setWorld(mc.world); te.setPos(relPos.add(pos)); try { TileEntityRendererDispatcher.instance.render(te, pos.getX(), pos.getY(), pos.getZ(), ClientTicker.partialTicks); } catch (Exception e) { erroredTiles.add(te); e.printStackTrace(); } } } ForgeHooksClient.setRenderPass(-1); RenderHelper.disableStandardItemLighting(); }
ForgeHooksClient.setRenderPass(pass); setGlStateForPass(pass, false); doTileEntityRenderPass(configurables, pass); ForgeHooksClient.setRenderPass(-1); setGlStateForPass(0, false);
private void renderElements(Multiblock mb, Iterable<? extends BlockPos> blocks, Vector4f eye) { GlStateManager.pushMatrix(); GlStateManager.color(1F, 1F, 1F, 1F); GlStateManager.translate(0, 0, -1); TileEntityRendererDispatcher.instance.entityX = eye.x; TileEntityRendererDispatcher.instance.entityY = eye.y; TileEntityRendererDispatcher.instance.entityZ = eye.z; TileEntityRendererDispatcher.staticPlayerX = eye.x; TileEntityRendererDispatcher.staticPlayerY = eye.y; TileEntityRendererDispatcher.staticPlayerZ = eye.z; BlockRenderLayer oldRenderLayer = MinecraftForgeClient.getRenderLayer(); for (BlockRenderLayer layer : BlockRenderLayer.values()) { if (layer == BlockRenderLayer.TRANSLUCENT) { doTileEntityRenderPass(mb, blocks, 0); } doWorldRenderPass(mb, blocks, layer, eye); if (layer == BlockRenderLayer.TRANSLUCENT) { doTileEntityRenderPass(mb, blocks, 1); } } ForgeHooksClient.setRenderLayer(oldRenderLayer); ForgeHooksClient.setRenderPass(-1); setGlStateForPass(0); mc.getTextureManager().getTexture(TextureMap.LOCATION_BLOCKS_TEXTURE).restoreLastBlurMipmap(); GlStateManager.popMatrix(); }
ForgeHooksClient.setRenderPass(pass); setGlStateForPass(pass, false); doTileEntityRenderPass(configurables, pass); ForgeHooksClient.setRenderPass(-1); setGlStateForPass(0, false);