tigres810

My FastTESR

Feb 14th, 2019
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.19 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);
  35.  
  36. GlStateManager.popMatrix();
  37. }
  38.  
  39. @SuppressWarnings("unused")
  40. private void renderFluid(TileEntityFluxPipe te) {
  41. if (te == null) {
  42. return;
  43. }
  44.  
  45. FluidStack fluid = new FluidStack(ModFluids.FLUX_FLUID, 1);
  46. if (fluid == null) {
  47. return;
  48. }
  49.  
  50. Fluid renderFluid = fluid.getFluid();
  51. if (renderFluid == null) {
  52. return;
  53. }
  54.  
  55. float scale = (1.0f) * fluid.amount / (te.energy);
  56.  
  57. if (scale > 0.0f) {
  58. Tessellator tessellator = Tessellator.getInstance();
  59. BufferBuilder renderer = tessellator.getBuffer();
  60. ResourceLocation still = renderFluid.getStill();
  61. TextureAtlasSprite sprite = Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite(still.toString());
  62.  
  63. net.minecraft.client.renderer.RenderHelper.disableStandardItemLighting();
  64.  
  65. GlStateManager.color(1, 1, 1, .5f);
  66. renderer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR);
  67.  
  68. float u1 = sprite.getMinU();
  69. float v1 = sprite.getMinV();
  70. float u2 = sprite.getMaxU();
  71. float v2 = sprite.getMaxV();
  72.  
  73. // Top
  74. renderer.pos(te.getPos().getX(), scale + te.getPos().getY(), te.getPos().getZ()).tex(u1, v1).color(255, 255, 255, 128).endVertex();
  75. renderer.pos(te.getPos().getX(), scale + te.getPos().getY(), 1-te.getPos().getZ()).tex(u1, v2).color(255, 255, 255, 128).endVertex();
  76. renderer.pos(1-te.getPos().getX(), scale + te.getPos().getY(), 1-te.getPos().getZ()).tex(u2, v2).color(255, 255, 255, 128).endVertex();
  77. renderer.pos(1-te.getPos().getX(), scale + te.getPos().getY(), te.getPos().getZ()).tex(u2, v1).color(255, 255, 255, 128).endVertex();
  78.  
  79. // Bottom
  80. renderer.pos(1-te.getPos().getX(), te.getPos().getY(), te.getPos().getZ()).tex(u2, v1).color(255, 255, 255, 128).endVertex();
  81. renderer.pos(1-te.getPos().getX(), te.getPos().getY(), 1-te.getPos().getZ()).tex(u2, v2).color(255, 255, 255, 128).endVertex();
  82. renderer.pos(te.getPos().getX(), te.getPos().getY(), 1-te.getPos().getZ()).tex(u1, v2).color(255, 255, 255, 128).endVertex();
  83. renderer.pos(te.getPos().getX(), te.getPos().getY(), te.getPos().getZ()).tex(u1, v1).color(255, 255, 255, 128).endVertex();
  84.  
  85. // Sides
  86. renderer.pos(te.getPos().getX(), scale + te.getPos().getY(), 1-te.getPos().getZ()).tex(u1, v1).color(255, 255, 255, 128).endVertex();
  87. renderer.pos(te.getPos().getX(), te.getPos().getY(), 1-te.getPos().getZ()).tex(u1, v2).color(255, 255, 255, 128).endVertex();
  88. renderer.pos(1-te.getPos().getX(), te.getPos().getY(), 1-te.getPos().getZ()).tex(u2, v2).color(255, 255, 255, 128).endVertex();
  89. renderer.pos(1-te.getPos().getX(), scale + te.getPos().getY(), 1-te.getPos().getZ()).tex(u2, v1).color(255, 255, 255, 128).endVertex();
  90.  
  91. renderer.pos(1-te.getPos().getX(), scale + te.getPos().getY(), te.getPos().getZ()).tex(u2, v1).color(255, 255, 255, 128).endVertex();
  92. renderer.pos(1-te.getPos().getX(), te.getPos().getY(), te.getPos().getZ()).tex(u2, v2).color(255, 255, 255, 128).endVertex();
  93. renderer.pos(te.getPos().getX(), te.getPos().getY(), te.getPos().getZ()).tex(u1, v2).color(255, 255, 255, 128).endVertex();
  94. renderer.pos(te.getPos().getX(), scale + te.getPos().getY(), te.getPos().getZ()).tex(u1, v1).color(255, 255, 255, 128).endVertex();
  95.  
  96. renderer.pos(1-te.getPos().getX(), scale + te.getPos().getY(), 1-te.getPos().getZ()).tex(u2, v1).color(255, 255, 255, 128).endVertex();
  97. renderer.pos(1-te.getPos().getX(), te.getPos().getY(), 1-te.getPos().getZ()).tex(u2, v2).color(255, 255, 255, 128).endVertex();
  98. renderer.pos(1-te.getPos().getX(), te.getPos().getY(), te.getPos().getZ()).tex(u1, v2).color(255, 255, 255, 128).endVertex();
  99. renderer.pos(1-te.getPos().getX(), scale + te.getPos().getY(), te.getPos().getZ()).tex(u1, v1).color(255, 255, 255, 128).endVertex();
  100.  
  101. renderer.pos(te.getPos().getX(), scale + te.getPos().getY(), te.getPos().getZ()).tex(u1, v1).color(255, 255, 255, 128).endVertex();
  102. renderer.pos(te.getPos().getX(), te.getPos().getY(), te.getPos().getZ()).tex(u1, v2).color(255, 255, 255, 128).endVertex();
  103. renderer.pos(te.getPos().getX(), te.getPos().getY(), 1-te.getPos().getZ()).tex(u2, v2).color(255, 255, 255, 128).endVertex();
  104. renderer.pos(te.getPos().getX(), scale + te.getPos().getY(), 1-te.getPos().getZ()).tex(u2, v1).color(255, 255, 255, 128).endVertex();
  105.  
  106. tessellator.draw();
  107.  
  108. net.minecraft.client.renderer.RenderHelper.enableStandardItemLighting();
  109. }
  110. }
  111.  
  112. }
Add Comment
Please, Sign In to add comment