package eu.thog92.isbrh;
import eu.thog92.isbrh.registry.RenderRegistry;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.*;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.resources.IResourceManager;
import net.minecraft.client.resources.model.IBakedModel;
import net.minecraft.client.settings.GameSettings;
import net.minecraft.util.BlockPos;
import net.minecraft.world.IBlockAccess;
public class ISBRHDispatcher extends BlockRendererDispatcher
{
private final BlockRendererDispatcher oldDispatcher;
public ISBRHDispatcher(BlockRendererDispatcher oldDispatcher, BlockModelShapes modelShapes, GameSettings settings)
{
super(modelShapes, settings);
this.oldDispatcher = oldDispatcher;
}
@Override
public boolean renderBlock(IBlockState state, BlockPos pos, IBlockAccess blockAccess, WorldRenderer worldRendererIn)
{
final boolean result = oldDispatcher.renderBlock(state, pos, blockAccess, worldRendererIn);
if(!result && state.getBlock().getRenderType() > 4)
{
return RenderRegistry.instance().renderBlock(state.getBlock().getRenderType(), state, pos, blockAccess, worldRendererIn);
}
return result;
}
@Override
public void renderBlockBrightness(IBlockState state, float brightness)
{
oldDispatcher.renderBlockBrightness(state, brightness);
if(state.getBlock().getRenderType() > 4)
RenderRegistry.instance().renderBlockBrightness(state.getBlock().getRenderType(), state, brightness);
}
@Override
public void renderBlockDamage(IBlockState state, BlockPos pos, TextureAtlasSprite texture, IBlockAccess blockAccess)
{
oldDispatcher.renderBlockDamage(state, pos, texture, blockAccess);
if(state.getBlock().getRenderType() > 4)
RenderRegistry.instance().renderBlock(state.getBlock().getRenderType(), state, pos, blockAccess, Tessellator.getInstance().getWorldRenderer());
}
@Override
public BlockModelRenderer getBlockModelRenderer()
{
return oldDispatcher.getBlockModelRenderer();
}
@Override
public IBakedModel getModelFromBlockState(IBlockState state, IBlockAccess worldIn, BlockPos pos)
{
return oldDispatcher.getModelFromBlockState(state, worldIn, pos);
}
@Override
public boolean isRenderTypeChest(Block block, int meta)
{
return oldDispatcher.isRenderTypeChest(block, meta);
}
@Override
public void onResourceManagerReload(IResourceManager resourceManager)
{
oldDispatcher.onResourceManagerReload(resourceManager);
}
}