@Override public boolean renderWorldBlock( IBlockAccess world, int i, int j, int k, Block block, int modelId, RenderBlocks renderer) { IBlockAccess blockAccess = renderer.blockAccess; renderer.renderAllFaces = true; Block blockToRender = TFCBlocks.Planks; if (block instanceof IMultipleBlock) { blockToRender = ((IMultipleBlock) block).getBlockTypeForRender(); } TEStand te = (TEStand) (world.getTileEntity(i, j, k)); if ((world.getTileEntity(i, j - 1, k) != null && world.getTileEntity(i, j - 1, k) instanceof TEStand) || te.isTop) return false; int l = (int) (((te.yaw % 360) / 90) % 2); // Arms of the Stand if (l == 0) { renderer.setRenderBounds(0.1F, 1.35F, 0.44F, 0.9F, 1.45F, 0.56F); renderer.renderStandardBlock(blockToRender, i, j, k); // Main posts of the stand renderer.setRenderBounds(0.35F, 0.101F, 0.45F, 0.45F, 1.35F, 0.55F); renderer.renderStandardBlock(blockToRender, i, j, k); renderer.setRenderBounds(0.55F, 0.101F, 0.45F, 0.65F, 1.35F, 0.55F); renderer.renderStandardBlock(blockToRender, i, j, k); } else { renderer.setRenderBounds(0.44F, 1.35F, 0.1F, 0.56F, 1.45F, 0.9F); renderer.renderStandardBlock(blockToRender, i, j, k); // Main posts of the stand renderer.setRenderBounds(0.45F, 0.101F, 0.35F, 0.55F, 1.35F, 0.45F); renderer.renderStandardBlock(blockToRender, i, j, k); renderer.setRenderBounds(0.45F, 0.101F, 0.55F, 0.55F, 1.35F, 0.65F); renderer.renderStandardBlock(blockToRender, i, j, k); } // Base of the stand renderer.setRenderBounds(0.1F, 0F, 0.1F, 0.9F, 0.1F, 0.9F); renderer.renderStandardBlock(blockToRender, i, j, k); renderer.setRenderBounds(0.45F, 1.45F, 0.45F, 0.55F, 1.9F, 0.55F); renderer.renderStandardBlock(blockToRender, i, j, k); renderer.renderAllFaces = false; return true; }
@Override public boolean renderWorldBlock( IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { TEBarrel te = (TEBarrel) world.getTileEntity(x, y, z); Block planksBlock; Block lidBlock; if (te.barrelType < 16) { planksBlock = TFCBlocks.Planks; lidBlock = TFCBlocks.WoodSupportH; } else { planksBlock = TFCBlocks.Planks2; lidBlock = TFCBlocks.WoodSupportH2; } renderer.renderAllFaces = true; if ((te.rotation & -128) == 0) { if (te.getSealed()) { renderer.setRenderBounds(min + 0.05F, min, min + 0.05F, max - 0.05F, 0.95F, max - 0.05F); renderer.renderStandardBlock(lidBlock, x, y, z); } else { renderer.setRenderBounds( min + 0.05F, min, min + 0.05F, max - 0.05F, min + 0.05F, max - 0.05F); renderer.renderStandardBlock(lidBlock, x, y, z); if (te.fluid != null) { int color = te.fluid.getFluid().getColor(te.fluid); float f = (color >> 16 & 255) / 255.0F; float f1 = (color >> 8 & 255) / 255.0F; float f2 = (color & 255) / 255.0F; float h = 0.75f * (te.fluid.amount / 10000f); renderer.setRenderBounds( min + 0.05F, min + 0.05, min + 0.05F, max - 0.05F, min + 0.05f + h, max - 0.05F); IIcon still = te.fluid.getFluid().getStillIcon(); renderer.setOverrideBlockTexture(still); renderer.renderStandardBlockWithColorMultiplier(lidBlock, x, y, z, f, f1, f2); renderer.clearOverrideBlockTexture(); } } renderer.setRenderBounds(min, 0F, min + 0.05F, min + 0.05F, 1F, max - 0.05F); rotate(renderer, 1); renderer.renderStandardBlock(planksBlock, x, y, z); rotate(renderer, 0); renderer.renderStandardBlock(block, x, y, z); renderer.setRenderBounds(max - 0.05F, 0F, min + 0.05F, max, 1F, max - 0.05F); rotate(renderer, 1); renderer.renderStandardBlock(planksBlock, x, y, z); rotate(renderer, 0); renderer.renderStandardBlock(block, x, y, z); renderer.setRenderBounds(min, 0F, min, max, 1F, min + 0.05F); rotate(renderer, 1); renderer.renderStandardBlock(planksBlock, x, y, z); rotate(renderer, 0); renderer.renderStandardBlock(block, x, y, z); renderer.setRenderBounds(min, 0F, max - 0.05F, max, 1F, max); rotate(renderer, 1); renderer.renderStandardBlock(planksBlock, x, y, z); rotate(renderer, 0); renderer.renderStandardBlock(block, x, y, z); } else { if ((te.rotation & 3) == 0) { renderer.setRenderBounds(min, min, min + 0.05F, 0.95F, min + 0.05F, max - 0.05F); renderer.renderStandardBlock(lidBlock, x, y, z); } if ((te.rotation & 3) == 1) { renderer.setRenderBounds(min + 0.05F, min, min, max - 0.05F, min + 0.05F, 0.95F); renderer.renderStandardBlock(lidBlock, x, y, z); } } renderer.renderAllFaces = false; return true; }