Advertisement
tahg

Untitled

Oct 7th, 2014
281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.25 KB | None | 0 0
  1. package buildermod.client;
  2.  
  3. import net.minecraft.block.Block;
  4. import net.minecraft.client.Minecraft;
  5. import net.minecraft.client.renderer.ItemRenderer;
  6. import net.minecraft.client.renderer.RenderBlocks;
  7. import net.minecraft.client.renderer.Tessellator;
  8. import net.minecraft.client.renderer.entity.RenderItem;
  9. import net.minecraft.client.renderer.entity.RenderManager;
  10. import net.minecraft.client.renderer.texture.TextureManager;
  11. import net.minecraft.client.renderer.texture.TextureMap;
  12. import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
  13. import net.minecraft.init.Items;
  14. import net.minecraft.item.Item;
  15. import net.minecraft.item.ItemStack;
  16. import net.minecraft.tileentity.TileEntity;
  17. import net.minecraft.util.IIcon;
  18. import net.minecraft.util.ResourceLocation;
  19. import net.minecraftforge.client.IItemRenderer;
  20.  
  21. import org.lwjgl.opengl.GL11;
  22.  
  23. import buildermod.common.DummyEntity;
  24. import buildermod.common.SubWorld;
  25. import buildermod.common.TileEntityPalette;
  26.  
  27. public class TileEntityPaletteRenderer extends TileEntitySpecialRenderer implements IItemRenderer {
  28. private static final ResourceLocation RSC_PALETTE = new ResourceLocation("buildermod:textures/entities/palette.png");
  29. ModelPalette palette = new ModelPalette();
  30. public static SubWorld sw = new SubWorld();
  31. public static ItemStack stack = new ItemStack(Items.apple);
  32. public static DummyEntity de = new DummyEntity(null);
  33.  
  34. public void renderTileEntityAt(TileEntityPalette entity, double x, double y, double z, float f) {
  35. // int dir = entity.getWorldObj().getBlockMetadata(entity.xCoord, entity.yCoord, entity.zCoord) & 3;
  36. GL11.glPushMatrix();
  37. GL11.glTranslated(x, y, z);
  38. if (entity != null) {
  39. GL11.glPushMatrix();
  40. GL11.glTranslated(0, 0, 0);
  41. float rotation = entity.getWorldObj().getWorldTime() % 360;
  42. GL11.glRotated(rotation, 0, 1, 0);
  43. // GL11.glScaled(.5, .5, .5);
  44. renderItem(Items.apple);
  45. GL11.glPopMatrix();
  46. }
  47. GL11.glPushMatrix();
  48. GL11.glTranslated(0, 1, 1);
  49. GL11.glScaled(1, -1, -1);
  50. GL11.glColor3f(1, 1, 1);
  51. // GL11.glRotated(90 * (dir + 2), 0, 1, 0);
  52. bindTexture(RSC_PALETTE);
  53. palette.renderAll();
  54. GL11.glPopMatrix();
  55. if (entity != null) {
  56. GL11.glPushMatrix();
  57. GL11.glTranslated(1.0/16, 3.0/16, 1.0/16);
  58. GL11.glScaled(14.0/64, 14.0/64, 14.0/64);
  59. RenderBlocks rb = RenderHelper.rb;
  60. rb.blockAccess = sw;
  61. sw.setBrightness(entity.getWorldObj().getLightBrightnessForSkyBlocks(entity.xCoord, entity.yCoord, entity.zCoord, 0));
  62. TextureManager tm = Minecraft.getMinecraft().getTextureManager();
  63. tm.bindTexture(TextureMap.locationBlocksTexture);
  64. Tessellator.instance.startDrawingQuads();
  65. for (int xx = 0; xx < 4; xx++) {
  66. for (int yy = 0; yy < 4; yy++) {
  67. for (int zz = 0; zz < 4; zz++) {
  68. Block block = sw.getBlock(xx, yy, zz);
  69. rb.renderBlockByRenderType(block, xx, yy, zz);
  70. }
  71. }
  72. }
  73. Tessellator.instance.draw();
  74. GL11.glPopMatrix();
  75.  
  76. }
  77. GL11.glPopMatrix();
  78. }
  79.  
  80. public void renderItem(Item item) {
  81. IIcon icon = item.getIconFromDamage(0);
  82. float u0 = icon.getMinU();
  83. float u1 = icon.getMaxU();
  84. float v0 = icon.getMinV();
  85. float v1 = icon.getMaxV();
  86. if (item.getSpriteNumber() == 0)
  87. {
  88. this.bindTexture(TextureMap.locationBlocksTexture);
  89. }
  90. else
  91. {
  92. this.bindTexture(TextureMap.locationItemsTexture);
  93. }
  94. ItemRenderer.renderItemIn2D(Tessellator.instance, u1, v0, u0, v1, icon.getIconWidth(), icon.getIconHeight(), 0.0625f);
  95. }
  96.  
  97. @Override
  98. public void renderTileEntityAt(TileEntity entity, double x, double y, double z, float f) {
  99. renderTileEntityAt((TileEntityPalette)entity, x, y, z, f);
  100. }
  101.  
  102. @Override
  103. public boolean handleRenderType(ItemStack item, ItemRenderType type) {
  104. return true;
  105. }
  106.  
  107. @Override
  108. public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item,
  109. ItemRendererHelper helper) {
  110. return true;
  111. }
  112.  
  113. @Override
  114. public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
  115. switch (type) {
  116. case ENTITY: GL11.glTranslated(-0.5, 0, -0.5); break;
  117. case EQUIPPED:
  118. case EQUIPPED_FIRST_PERSON: GL11.glTranslated(0, 0.5, 0); break;
  119. default: break;
  120. }
  121. renderTileEntityAt(null, 0, 0, 0, 0);
  122. }
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement