package com.jaquadro.minecraft.gardencore.client.renderer.plant;
import com.jaquadro.minecraft.gardencore.api.IPlantMetaResolver;
import com.jaquadro.minecraft.gardencore.api.IPlantRenderer;
import com.jaquadro.minecraft.gardencore.api.PlantRegistry;
import com.jaquadro.minecraft.gardencore.util.RenderHelper;
import net.minecraft.block.Block;
import net.minecraft.block.BlockDoublePlant;
import net.minecraft.client.renderer.EntityRenderer;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.init.Blocks;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
public class DoublePlantRenderer implements IPlantRenderer
{
@Override
public void render (IBlockAccess world, int x, int y, int z, RenderBlocks renderer, Block block, int meta, int height, AxisAlignedBB[] bounds) {
if (!(block instanceof BlockDoublePlant))
return;
BlockDoublePlant doublePlant = (BlockDoublePlant)block;
IPlantMetaResolver resolver = PlantRegistry.instance().getPlantMetaResolver(block, meta);
if (resolver != null)
meta = resolver.getPlantSectionMeta(block, meta, height);
IIcon iicon = getIcon(block, world, meta);
if (height == 1) {
for (AxisAlignedBB bound : bounds) {
RenderHelper.instance.setRenderBounds(bound.minX, bound.minY, bound.minZ, bound.maxX, bound.maxY, bound.maxZ);
RenderHelper.instance.drawCrossedSquaresBounded(iicon, x, y, z, 1);
}
}
else {
AxisAlignedBB bound = bounds[0];
for (AxisAlignedBB slice : bounds) {
if (slice.maxY > bound.maxY)
bound = slice;
}
RenderHelper.instance.setRenderBounds(bound.minX, 0, bound.minZ, bound.maxX, 1, bound.maxZ);
RenderHelper.instance.drawCrossedSquaresBounded(iicon, x, y, z, 1);
}
}
public IIcon getIcon (Block block, IBlockAccess blockAccess, int meta) {
boolean isTopHalf = BlockDoublePlant.func_149887_c(meta);
int baseMeta = BlockDoublePlant.func_149890_d(meta);
return Blocks.double_plant.func_149888_a(isTopHalf, baseMeta);
}
}