Package crazypants.enderio.machine.painter

Source Code of crazypants.enderio.machine.painter.BlockPaintedFenceGateRenderer

package crazypants.enderio.machine.painter;

import net.minecraft.block.Block;
import net.minecraft.block.BlockDirectional;
import net.minecraft.block.BlockFenceGate;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.init.Blocks;
import net.minecraft.world.IBlockAccess;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import crazypants.enderio.EnderIO;

public class BlockPaintedFenceGateRenderer implements ISimpleBlockRenderingHandler {

  @Override
  public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) {
    renderer.renderBlockAsItem(Blocks.fence_gate, metadata, 1);
  }

  @Override
  public boolean shouldRender3DInInventory(int modelId) {
    return true;
  }

  @Override
  public int getRenderId() {
    return BlockPaintedFenceGate.renderId;
  }

  @Override
  public boolean renderWorldBlock(IBlockAccess blockAccess, int par2, int par3, int par4, Block block, int modelId, RenderBlocks rb) {

    BlockFenceGate par1BlockFenceGate = (BlockFenceGate) block;

    boolean flag = true;
    int l = rb.blockAccess.getBlockMetadata(par2, par3, par4);
    boolean flag1 = BlockFenceGate.isFenceGateOpen(l);
    int i1 = BlockDirectional.getDirection(l);
    float f = 0.375F;
    float f1 = 0.5625F;
    float f2 = 0.75F;
    float f3 = 0.9375F;
    float f4 = 0.3125F;
    float f5 = 1.0F;

    if((i1 == 2 || i1 == 0) && rb.blockAccess.getBlock(par2 - 1, par3, par4) == Blocks.cobblestone_wall
        && rb.blockAccess.getBlock(par2 + 1, par3, par4) == Blocks.cobblestone_wall ||
        (i1 == 3 || i1 == 1) && rb.blockAccess.getBlock(par2, par3, par4 - 1) == Blocks.cobblestone_wall
        && rb.blockAccess.getBlock(par2, par3, par4 + 1) == Blocks.cobblestone_wall ||
        (i1 == 2 || i1 == 0) && rb.blockAccess.getBlock(par2 - 1, par3, par4) == EnderIO.blockPaintedWall
        && rb.blockAccess.getBlock(par2 + 1, par3, par4) == EnderIO.blockPaintedWall ||
        (i1 == 3 || i1 == 1) && rb.blockAccess.getBlock(par2, par3, par4 - 1) == EnderIO.blockPaintedWall
        && rb.blockAccess.getBlock(par2, par3, par4 + 1) == EnderIO.blockPaintedWall)
    {
      f -= 0.1875F;
      f1 -= 0.1875F;
      f2 -= 0.1875F;
      f3 -= 0.1875F;
      f4 -= 0.1875F;
      f5 -= 0.1875F;
    }

    rb.renderAllFaces = true;
    float f6;
    float f7;
    float f8;
    float f9;

    if(i1 != 3 && i1 != 1)
    {
      f6 = 0.0F;
      f8 = 0.125F;
      f7 = 0.4375F;
      f9 = 0.5625F;
      rb.setRenderBounds(f6, f4, f7, f8, f5, f9);
      rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
      f6 = 0.875F;
      f8 = 1.0F;
      rb.setRenderBounds(f6, f4, f7, f8, f5, f9);
      rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
    }
    else
    {
      rb.uvRotateTop = 1;
      f6 = 0.4375F;
      f8 = 0.5625F;
      f7 = 0.0F;
      f9 = 0.125F;
      rb.setRenderBounds(f6, f4, f7, f8, f5, f9);
      rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
      f7 = 0.875F;
      f9 = 1.0F;
      rb.setRenderBounds(f6, f4, f7, f8, f5, f9);
      rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
      rb.uvRotateTop = 0;
    }

    if(flag1)
    {
      if(i1 == 2 || i1 == 0)
      {
        rb.uvRotateTop = 1;
      }

      if(i1 == 3)
      {
        rb.setRenderBounds(0.8125D, f, 0.0D, 0.9375D, f3, 0.125D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.8125D, f, 0.875D, 0.9375D, f3, 1.0D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.5625D, f, 0.0D, 0.8125D, f1, 0.125D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.5625D, f, 0.875D, 0.8125D, f1, 1.0D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.5625D, f2, 0.0D, 0.8125D, f3, 0.125D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.5625D, f2, 0.875D, 0.8125D, f3, 1.0D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
      }
      else if(i1 == 1)
      {
        rb.setRenderBounds(0.0625D, f, 0.0D, 0.1875D, f3, 0.125D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.0625D, f, 0.875D, 0.1875D, f3, 1.0D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.1875D, f, 0.0D, 0.4375D, f1, 0.125D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.1875D, f, 0.875D, 0.4375D, f1, 1.0D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.1875D, f2, 0.0D, 0.4375D, f3, 0.125D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.1875D, f2, 0.875D, 0.4375D, f3, 1.0D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
      }
      else if(i1 == 0)
      {
        rb.setRenderBounds(0.0D, f, 0.8125D, 0.125D, f3, 0.9375D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.875D, f, 0.8125D, 1.0D, f3, 0.9375D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.0D, f, 0.5625D, 0.125D, f1, 0.8125D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.875D, f, 0.5625D, 1.0D, f1, 0.8125D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.0D, f2, 0.5625D, 0.125D, f3, 0.8125D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.875D, f2, 0.5625D, 1.0D, f3, 0.8125D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
      }
      else if(i1 == 2)
      {
        rb.setRenderBounds(0.0D, f, 0.0625D, 0.125D, f3, 0.1875D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.875D, f, 0.0625D, 1.0D, f3, 0.1875D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.0D, f, 0.1875D, 0.125D, f1, 0.4375D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.875D, f, 0.1875D, 1.0D, f1, 0.4375D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.0D, f2, 0.1875D, 0.125D, f3, 0.4375D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
        rb.setRenderBounds(0.875D, f2, 0.1875D, 1.0D, f3, 0.4375D);
        rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
      }
    }
    else if(i1 != 3 && i1 != 1)
    {
      f6 = 0.375F;
      f8 = 0.5F;
      f7 = 0.4375F;
      f9 = 0.5625F;
      rb.setRenderBounds(f6, f, f7, f8, f3, f9);
      rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
      f6 = 0.5F;
      f8 = 0.625F;
      rb.setRenderBounds(f6, f, f7, f8, f3, f9);
      rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
      f6 = 0.625F;
      f8 = 0.875F;
      rb.setRenderBounds(f6, f, f7, f8, f1, f9);
      rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
      rb.setRenderBounds(f6, f2, f7, f8, f3, f9);
      rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
      f6 = 0.125F;
      f8 = 0.375F;
      rb.setRenderBounds(f6, f, f7, f8, f1, f9);
      rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
      rb.setRenderBounds(f6, f2, f7, f8, f3, f9);
      rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
    }
    else
    {
      rb.uvRotateTop = 1;
      f6 = 0.4375F;
      f8 = 0.5625F;
      f7 = 0.375F;
      f9 = 0.5F;
      rb.setRenderBounds(f6, f, f7, f8, f3, f9);
      rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
      f7 = 0.5F;
      f9 = 0.625F;
      rb.setRenderBounds(f6, f, f7, f8, f3, f9);
      rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
      f7 = 0.625F;
      f9 = 0.875F;
      rb.setRenderBounds(f6, f, f7, f8, f1, f9);
      rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
      rb.setRenderBounds(f6, f2, f7, f8, f3, f9);
      rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
      f7 = 0.125F;
      f9 = 0.375F;
      rb.setRenderBounds(f6, f, f7, f8, f1, f9);
      rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
      rb.setRenderBounds(f6, f2, f7, f8, f3, f9);
      rb.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
    }

    rb.renderAllFaces = false;
    rb.uvRotateTop = 0;
    rb.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
    return flag;
  }

}
TOP

Related Classes of crazypants.enderio.machine.painter.BlockPaintedFenceGateRenderer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.