Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package buildermod.client;
- import net.minecraft.block.Block;
- import net.minecraft.client.Minecraft;
- import net.minecraft.client.renderer.ItemRenderer;
- import net.minecraft.client.renderer.RenderBlocks;
- import net.minecraft.client.renderer.Tessellator;
- import net.minecraft.client.renderer.entity.RenderItem;
- import net.minecraft.client.renderer.entity.RenderManager;
- import net.minecraft.client.renderer.texture.TextureManager;
- import net.minecraft.client.renderer.texture.TextureMap;
- import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
- import net.minecraft.init.Items;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemStack;
- import net.minecraft.tileentity.TileEntity;
- import net.minecraft.util.IIcon;
- import net.minecraft.util.ResourceLocation;
- import net.minecraftforge.client.IItemRenderer;
- import org.lwjgl.opengl.GL11;
- import buildermod.common.DummyEntity;
- import buildermod.common.SubWorld;
- import buildermod.common.TileEntityPalette;
- public class TileEntityPaletteRenderer extends TileEntitySpecialRenderer implements IItemRenderer {
- private static final ResourceLocation RSC_PALETTE = new ResourceLocation("buildermod:textures/entities/palette.png");
- ModelPalette palette = new ModelPalette();
- public static SubWorld sw = new SubWorld();
- public static ItemStack stack = new ItemStack(Items.apple);
- public static DummyEntity de = new DummyEntity(null);
- public void renderTileEntityAt(TileEntityPalette entity, double x, double y, double z, float f) {
- // int dir = entity.getWorldObj().getBlockMetadata(entity.xCoord, entity.yCoord, entity.zCoord) & 3;
- GL11.glPushMatrix();
- GL11.glTranslated(x, y, z);
- if (entity != null) {
- GL11.glPushMatrix();
- GL11.glTranslated(0, 0, 0);
- float rotation = entity.getWorldObj().getWorldTime() % 360;
- GL11.glRotated(rotation, 0, 1, 0);
- // GL11.glScaled(.5, .5, .5);
- renderItem(Items.apple);
- GL11.glPopMatrix();
- }
- GL11.glPushMatrix();
- GL11.glTranslated(0, 1, 1);
- GL11.glScaled(1, -1, -1);
- GL11.glColor3f(1, 1, 1);
- // GL11.glRotated(90 * (dir + 2), 0, 1, 0);
- bindTexture(RSC_PALETTE);
- palette.renderAll();
- GL11.glPopMatrix();
- if (entity != null) {
- GL11.glPushMatrix();
- GL11.glTranslated(1.0/16, 3.0/16, 1.0/16);
- GL11.glScaled(14.0/64, 14.0/64, 14.0/64);
- RenderBlocks rb = RenderHelper.rb;
- rb.blockAccess = sw;
- sw.setBrightness(entity.getWorldObj().getLightBrightnessForSkyBlocks(entity.xCoord, entity.yCoord, entity.zCoord, 0));
- TextureManager tm = Minecraft.getMinecraft().getTextureManager();
- tm.bindTexture(TextureMap.locationBlocksTexture);
- Tessellator.instance.startDrawingQuads();
- for (int xx = 0; xx < 4; xx++) {
- for (int yy = 0; yy < 4; yy++) {
- for (int zz = 0; zz < 4; zz++) {
- Block block = sw.getBlock(xx, yy, zz);
- rb.renderBlockByRenderType(block, xx, yy, zz);
- }
- }
- }
- Tessellator.instance.draw();
- GL11.glPopMatrix();
- }
- GL11.glPopMatrix();
- }
- public void renderItem(Item item) {
- IIcon icon = item.getIconFromDamage(0);
- float u0 = icon.getMinU();
- float u1 = icon.getMaxU();
- float v0 = icon.getMinV();
- float v1 = icon.getMaxV();
- if (item.getSpriteNumber() == 0)
- {
- this.bindTexture(TextureMap.locationBlocksTexture);
- }
- else
- {
- this.bindTexture(TextureMap.locationItemsTexture);
- }
- ItemRenderer.renderItemIn2D(Tessellator.instance, u1, v0, u0, v1, icon.getIconWidth(), icon.getIconHeight(), 0.0625f);
- }
- @Override
- public void renderTileEntityAt(TileEntity entity, double x, double y, double z, float f) {
- renderTileEntityAt((TileEntityPalette)entity, x, y, z, f);
- }
- @Override
- public boolean handleRenderType(ItemStack item, ItemRenderType type) {
- return true;
- }
- @Override
- public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item,
- ItemRendererHelper helper) {
- return true;
- }
- @Override
- public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
- switch (type) {
- case ENTITY: GL11.glTranslated(-0.5, 0, -0.5); break;
- case EQUIPPED:
- case EQUIPPED_FIRST_PERSON: GL11.glTranslated(0, 0.5, 0); break;
- default: break;
- }
- renderTileEntityAt(null, 0, 0, 0, 0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement