Skip to content

Instantly share code, notes, and snippets.

@AtomicBlom
Created January 27, 2016 12:15
Show Gist options
  • Save AtomicBlom/804b89c9ce64bfc48a99 to your computer and use it in GitHub Desktop.
Save AtomicBlom/804b89c9ce64bfc48a99 to your computer and use it in GitHub Desktop.
package mod.steamnsteel.client.renderer.tileentity;
import mod.steamnsteel.tileentity.LargeFanTE;
import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.*;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.client.resources.model.IBakedModel;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.client.model.ISmartBlockModel;
import net.minecraftforge.common.property.IExtendedBlockState;
import org.lwjgl.opengl.GL11;
public class MyTESR extends TileEntitySpecialRenderer<MyTE>
{
@Override
public void renderTileEntityAt(LargeFanTE te, double x, double y, double z, float partialTicks, int destroyStage)
{
final BlockRendererDispatcher blockRenderer = Minecraft.getMinecraft().getBlockRendererDispatcher();
IBlockState blockState = te.getWorld().getBlockState(te.getPos());
BlockPos blockpos = te.getPos();
IBakedModel model = blockRenderer.getModelFromBlockState(blockState, getWorld(), te.getPos());
Tessellator tessellator = Tessellator.getInstance();
WorldRenderer worldRenderer = tessellator.getWorldRenderer();
bindTexture(TextureMap.locationBlocksTexture);
RenderHelper.disableStandardItemLighting();
GlStateManager.blendFunc(770, 771);
GlStateManager.enableBlend();
GlStateManager.disableCull();
if (Minecraft.isAmbientOcclusionEnabled())
{
GlStateManager.shadeModel(7425);
}
else
{
GlStateManager.shadeModel(7424);
}
worldRenderer.begin(GL11.GL_QUADS, DefaultVertexFormats.BLOCK);
worldRenderer.setTranslation(x - blockpos.getX(), y - blockpos.getY(), z - blockpos.getZ());
worldRenderer.color(255, 255, 255, 255);
if (model instanceof ISmartBlockModel) {
model = ((ISmartBlockModel) model).handleBlockState(blockState);
}
blockRenderer.getBlockModelRenderer().renderModel(te.getWorld(), model, blockState, te.getPos(), worldRenderer);
worldRenderer.setTranslation(0.0D, 0.0D, 0.0D);
tessellator.draw();
RenderHelper.enableStandardItemLighting();
}
}
Status API Training Shop Blog About Pricing
© 2016 GitHub, Inc. Terms Privacy Security Contact Help
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment