Advertisement
tigres810

My FastTESR

Feb 14th, 2019
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.99 KB | None | 0 0
  1. package com.tigres810.adventurermod.blocks.pipes.fasttesr;
  2.  
  3. import org.lwjgl.opengl.GL11;
  4.  
  5. import com.tigres810.adventurermod.blocks.pipes.tileentity.TileEntityFluxPipe;
  6. import com.tigres810.adventurermod.init.ModBlocks;
  7. import com.tigres810.adventurermod.init.ModFluids;
  8.  
  9. import net.minecraft.client.Minecraft;
  10. import net.minecraft.client.renderer.BufferBuilder;
  11. import net.minecraft.client.renderer.GlStateManager;
  12. import net.minecraft.client.renderer.Tessellator;
  13. import net.minecraft.client.renderer.texture.TextureAtlasSprite;
  14. import net.minecraft.client.renderer.texture.TextureMap;
  15. import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
  16. import net.minecraft.util.ResourceLocation;
  17. import net.minecraftforge.client.model.animation.FastTESR;
  18. import net.minecraftforge.fluids.Fluid;
  19. import net.minecraftforge.fluids.FluidStack;
  20.  
  21. public class FluxPipeFastTESR extends FastTESR<TileEntityFluxPipe> {
  22.  
  23. @Override
  24. public void renderTileEntityFast(TileEntityFluxPipe te, double x, double y, double z, float partialTicks, int destroyStage, float partial, BufferBuilder buffer) {
  25. if(te == null) return;
  26.  
  27. GlStateManager.pushMatrix();
  28. GlStateManager.disableRescaleNormal();
  29. GlStateManager.color(1, 1, 1, 1);
  30. GlStateManager.disableBlend();
  31. GlStateManager.translate((float) x, (float) y, (float) z);
  32.  
  33. bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
  34. renderFluid(te, x, y, z);
  35.  
  36. GlStateManager.popMatrix();
  37. }
  38.  
  39. private void renderFluid(TileEntityFluxPipe te, double x, double y, double z) {
  40. if (te == null) {
  41. return;
  42. }
  43.  
  44. FluidStack fluid = new FluidStack(ModFluids.FLUX_FLUID, 1);
  45.  
  46. Fluid renderFluid = fluid.getFluid();
  47. if (renderFluid == null) {
  48. return;
  49. }
  50.  
  51. float scale = fluid.amount / te.getMaxEnergyStored();
  52. System.out.println(scale);
  53.  
  54. if (scale > 0.0f) {
  55. Tessellator tessellator = Tessellator.getInstance();
  56. BufferBuilder renderer = tessellator.getBuffer();
  57. ResourceLocation still = renderFluid.getStill();
  58. TextureAtlasSprite sprite = Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite(still.toString());
  59.  
  60. net.minecraft.client.renderer.RenderHelper.disableStandardItemLighting();
  61.  
  62. GlStateManager.color(1, 1, 1, .5f);
  63. renderer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR);
  64.  
  65. float u1 = sprite.getMinU();
  66. float v1 = sprite.getMinV();
  67. float u2 = sprite.getMaxU();
  68. float v2 = sprite.getMaxV();
  69.  
  70. tessellator.draw();
  71.  
  72. // Top
  73. renderer.pos(x, scale + y, z).tex(u1, v1).color(255, 255, 255, 128).endVertex();
  74. renderer.pos(x, scale + y, 1-z).tex(u1, v2).color(255, 255, 255, 128).endVertex();
  75. renderer.pos(1-x, scale + y, 1-z).tex(u2, v2).color(255, 255, 255, 128).endVertex();
  76. renderer.pos(1-x, scale + y, z).tex(u2, v1).color(255, 255, 255, 128).endVertex();
  77.  
  78. // Bottom
  79. renderer.pos(1-x, y, z).tex(u2, v1).color(255, 255, 255, 128).endVertex();
  80. renderer.pos(1-x, y, 1-z).tex(u2, v2).color(255, 255, 255, 128).endVertex();
  81. renderer.pos(x, y, 1-z).tex(u1, v2).color(255, 255, 255, 128).endVertex();
  82. renderer.pos(x, y, z).tex(u1, v1).color(255, 255, 255, 128).endVertex();
  83.  
  84. // Sides
  85. renderer.pos(x, scale + y, 1-z).tex(u1, v1).color(255, 255, 255, 128).endVertex();
  86. renderer.pos(x, y, 1-z).tex(u1, v2).color(255, 255, 255, 128).endVertex();
  87. renderer.pos(1-x, y, 1-z).tex(u2, v2).color(255, 255, 255, 128).endVertex();
  88. renderer.pos(1-x, scale + y, 1-z).tex(u2, v1).color(255, 255, 255, 128).endVertex();
  89.  
  90. renderer.pos(1-x, scale + y, z).tex(u2, v1).color(255, 255, 255, 128).endVertex();
  91. renderer.pos(1-x, y, z).tex(u2, v2).color(255, 255, 255, 128).endVertex();
  92. renderer.pos(x, y, z).tex(u1, v2).color(255, 255, 255, 128).endVertex();
  93. renderer.pos(x, scale + y, z).tex(u1, v1).color(255, 255, 255, 128).endVertex();
  94.  
  95. renderer.pos(1-x, scale + y, 1-z).tex(u2, v1).color(255, 255, 255, 128).endVertex();
  96. renderer.pos(1-x, y, 1-z).tex(u2, v2).color(255, 255, 255, 128).endVertex();
  97. renderer.pos(1-x, y, z).tex(u1, v2).color(255, 255, 255, 128).endVertex();
  98. renderer.pos(1-x, scale + y, z).tex(u1, v1).color(255, 255, 255, 128).endVertex();
  99.  
  100. renderer.pos(x, scale + y, z).tex(u1, v1).color(255, 255, 255, 128).endVertex();
  101. renderer.pos(x, y, z).tex(u1, v2).color(255, 255, 255, 128).endVertex();
  102. renderer.pos(x, y, 1-z).tex(u2, v2).color(255, 255, 255, 128).endVertex();
  103. renderer.pos(x, scale + y, 1-z).tex(u2, v1).color(255, 255, 255, 128).endVertex();
  104.  
  105. net.minecraft.client.renderer.RenderHelper.enableStandardItemLighting();
  106. }
  107. }
  108.  
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement