929efa5597
Multiple View Cells now sum together to allow more customization. View Cells are now protected by Build Security. Meteorite Compass now renders correctly in other peoples hands.
193 lines
7.7 KiB
Java
193 lines
7.7 KiB
Java
package appeng.client.render.blocks;
|
|
|
|
import java.util.EnumSet;
|
|
|
|
import net.minecraft.client.renderer.RenderBlocks;
|
|
import net.minecraft.client.renderer.Tessellator;
|
|
import net.minecraft.init.Blocks;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.world.IBlockAccess;
|
|
import net.minecraftforge.client.IItemRenderer.ItemRenderType;
|
|
import net.minecraftforge.common.util.ForgeDirection;
|
|
import appeng.api.util.IOrientable;
|
|
import appeng.block.AEBaseBlock;
|
|
import appeng.block.misc.BlockQuartzTorch;
|
|
import appeng.client.render.BaseBlockRender;
|
|
|
|
public class RenderQuartzTorch extends BaseBlockRender
|
|
{
|
|
|
|
public RenderQuartzTorch() {
|
|
super( false, 20 );
|
|
}
|
|
|
|
@Override
|
|
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj)
|
|
{
|
|
Tessellator tess = Tessellator.instance;
|
|
|
|
float Point2 = 6.0f / 16.0f;
|
|
float Point3 = 7.0f / 16.0f;
|
|
float Point13 = 10.0f / 16.0f;
|
|
float Point12 = 9.0f / 16.0f;
|
|
|
|
float Onepx = 1.0f / 16.0f;
|
|
float rbottom = 5.0f / 16.0f;
|
|
float rtop = 10.0f / 16.0f;
|
|
|
|
float bottom = 7.0f / 16.0f;
|
|
float top = 8.0f / 16.0f;
|
|
|
|
float xOff = 0.0f;
|
|
float yOff = 0.0f;
|
|
float zOff = 0.0f;
|
|
|
|
renderer.setRenderBounds( Point3 + xOff, rbottom + yOff, Point3 + zOff, Point12 + xOff, rtop + yOff, Point12 + zOff );
|
|
renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer );
|
|
|
|
renderer.setRenderBounds( Point3 + xOff, rtop + yOff, Point3 + zOff, Point3 + Onepx + xOff, rtop + Onepx + yOff, Point3 + Onepx + zOff );
|
|
renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer );
|
|
|
|
renderer.setRenderBounds( Point12 - Onepx + xOff, rbottom - Onepx + yOff, Point12 - Onepx + zOff, Point12 + xOff, rbottom + yOff, Point12 + zOff );
|
|
|
|
renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer );
|
|
|
|
blk.getRendererInstance().setTemporaryRenderIcon( Blocks.hopper.getIcon( 0, 0 ) );
|
|
renderer.renderAllFaces = true;
|
|
|
|
renderer.setRenderBounds( Point2 + xOff, bottom + yOff, Point2 + zOff, Point13 + xOff, top + yOff, Point3 + zOff );
|
|
|
|
renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer );
|
|
renderer.setRenderBounds( Point2 + xOff, bottom + yOff, Point12 + zOff, Point13 + xOff, top + yOff, Point13 + zOff );
|
|
|
|
renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer );
|
|
renderer.setRenderBounds( Point2 + xOff, bottom + yOff, Point3 + zOff, Point3 + xOff, top + yOff, Point12 + zOff );
|
|
|
|
renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer );
|
|
renderer.setRenderBounds( Point12 + xOff, bottom + yOff, Point3 + zOff, Point13 + xOff, top + yOff, Point12 + zOff );
|
|
|
|
renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer );
|
|
|
|
renderer.renderAllFaces = false;
|
|
blk.getRendererInstance().setTemporaryRenderIcon( null );
|
|
|
|
}
|
|
|
|
@Override
|
|
public boolean renderInWorld(AEBaseBlock block, IBlockAccess world, int x, int y, int z, RenderBlocks renderer)
|
|
{
|
|
BlockQuartzTorch blk = (BlockQuartzTorch) block;
|
|
|
|
IOrientable te = getOrientable( block, world, x, y, z );
|
|
|
|
float Point2 = 6.0f / 16.0f;
|
|
float Point3 = 7.0f / 16.0f;
|
|
float Point13 = 10.0f / 16.0f;
|
|
float Point12 = 9.0f / 16.0f;
|
|
|
|
float Onepx = 1.0f / 16.0f;
|
|
float rbottom = 5.0f / 16.0f;
|
|
float rtop = 10.0f / 16.0f;
|
|
|
|
float bottom = 7.0f / 16.0f;
|
|
float top = 8.0f / 16.0f;
|
|
|
|
float xOff = 0.0f;
|
|
float yOff = 0.0f;
|
|
float zOff = 0.0f;
|
|
|
|
renderer.renderAllFaces = true;
|
|
if ( te != null )
|
|
{
|
|
ForgeDirection forward = te.getUp();
|
|
xOff = forward.offsetX * -(4.0f / 16.0f);
|
|
yOff = forward.offsetY * -(4.0f / 16.0f);
|
|
zOff = forward.offsetZ * -(4.0f / 16.0f);
|
|
}
|
|
|
|
renderer.setRenderBounds( Point3 + xOff, rbottom + yOff, Point3 + zOff, Point12 + xOff, rtop + yOff, Point12 + zOff );
|
|
super.renderInWorld( block, world, x, y, z, renderer );
|
|
|
|
int r = (x + y + z) % 2;
|
|
if ( r == 0 )
|
|
{
|
|
renderer.setRenderBounds( Point3 + xOff, rtop + yOff, Point3 + zOff, Point3 + Onepx + xOff, rtop + Onepx + yOff, Point3 + Onepx + zOff );
|
|
super.renderInWorld( block, world, x, y, z, renderer );
|
|
|
|
renderer.setRenderBounds( Point12 - Onepx + xOff, rbottom - Onepx + yOff, Point12 - Onepx + zOff, Point12 + xOff, rbottom + yOff, Point12 + zOff );
|
|
super.renderInWorld( block, world, x, y, z, renderer );
|
|
}
|
|
else
|
|
{
|
|
renderer.setRenderBounds( Point3 + xOff, rbottom - Onepx + yOff, Point3 + zOff, Point3 + Onepx + xOff, rbottom + yOff, Point3 + Onepx + zOff );
|
|
super.renderInWorld( block, world, x, y, z, renderer );
|
|
|
|
renderer.setRenderBounds( Point12 - Onepx + xOff, rtop + yOff, Point12 - Onepx + zOff, Point12 + xOff, rtop + Onepx + yOff, Point12 + zOff );
|
|
super.renderInWorld( block, world, x, y, z, renderer );
|
|
}
|
|
|
|
blk.getRendererInstance().setTemporaryRenderIcon( Blocks.hopper.getIcon( 0, 0 ) );
|
|
|
|
renderer.setRenderBounds( Point2 + xOff, bottom + yOff, Point2 + zOff, Point13 + xOff, top + yOff, Point3 + zOff );
|
|
boolean out = renderer.renderStandardBlock( blk, x, y, z );
|
|
|
|
renderer.setRenderBounds( Point2 + xOff, bottom + yOff, Point12 + zOff, Point13 + xOff, top + yOff, Point13 + zOff );
|
|
renderer.renderStandardBlock( blk, x, y, z );
|
|
|
|
renderer.setRenderBounds( Point2 + xOff, bottom + yOff, Point3 + zOff, Point3 + xOff, top + yOff, Point12 + zOff );
|
|
renderer.renderStandardBlock( blk, x, y, z );
|
|
|
|
renderer.setRenderBounds( Point12 + xOff, bottom + yOff, Point3 + zOff, Point13 + xOff, top + yOff, Point12 + zOff );
|
|
renderer.renderStandardBlock( blk, x, y, z );
|
|
|
|
if ( te != null )
|
|
{
|
|
ForgeDirection forward = te.getUp();
|
|
switch (forward)
|
|
{
|
|
case EAST:
|
|
renderer.setRenderBounds( 0, bottom + yOff, bottom + zOff, Point2 + xOff, top + yOff, top + zOff );
|
|
renderer.renderStandardBlock( blk, x, y, z );
|
|
break;
|
|
case WEST:
|
|
renderer.setRenderBounds( Point13 + xOff, bottom + yOff, bottom + zOff, 1.0, top + yOff, top + zOff );
|
|
renderer.renderStandardBlock( blk, x, y, z );
|
|
break;
|
|
case NORTH:
|
|
renderer.setRenderBounds( bottom + xOff, bottom + yOff, Point13 + zOff, top + xOff, top + yOff, 1.0 );
|
|
renderer.renderStandardBlock( blk, x, y, z );
|
|
break;
|
|
case SOUTH:
|
|
renderer.setRenderBounds( bottom + xOff, bottom + yOff, 0, top + xOff, top + yOff, Point2 + zOff );
|
|
renderer.renderStandardBlock( blk, x, y, z );
|
|
break;
|
|
case UP:
|
|
renderer.setRenderBounds( Point2, 0, Point2, Point3, bottom + yOff, Point3 );
|
|
renderer.renderStandardBlock( blk, x, y, z );
|
|
renderer.setRenderBounds( Point2, 0, Point12, Point3, bottom + yOff, Point13 );
|
|
renderer.renderStandardBlock( blk, x, y, z );
|
|
renderer.setRenderBounds( Point12, 0, Point2, Point13, bottom + yOff, Point3 );
|
|
renderer.renderStandardBlock( blk, x, y, z );
|
|
renderer.setRenderBounds( Point12, 0, Point12, Point13, bottom + yOff, Point13 );
|
|
renderer.renderStandardBlock( blk, x, y, z );
|
|
break;
|
|
case DOWN:
|
|
renderer.setRenderBounds( Point2, top + yOff, Point2, Point3, 1.0, Point3 );
|
|
renderer.renderStandardBlock( blk, x, y, z );
|
|
renderer.setRenderBounds( Point2, top + yOff, Point12, Point3, 1.0, Point13 );
|
|
renderer.renderStandardBlock( blk, x, y, z );
|
|
renderer.setRenderBounds( Point12, top + yOff, Point2, Point13, 1.0, Point3 );
|
|
renderer.renderStandardBlock( blk, x, y, z );
|
|
renderer.setRenderBounds( Point12, top + yOff, Point12, Point13, 1.0, Point13 );
|
|
renderer.renderStandardBlock( blk, x, y, z );
|
|
break;
|
|
default:
|
|
}
|
|
}
|
|
|
|
renderer.renderAllFaces = false;
|
|
blk.getRendererInstance().setTemporaryRenderIcon( null );
|
|
|
|
return out;
|
|
}
|
|
}
|