Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.tigres810.adventurermod.blocks.pipes.fasttesr;
- import org.lwjgl.opengl.GL11;
- import com.tigres810.adventurermod.blocks.pipes.tileentity.TileEntityFluxPipe;
- import com.tigres810.adventurermod.init.ModBlocks;
- import com.tigres810.adventurermod.init.ModFluids;
- import net.minecraft.client.Minecraft;
- import net.minecraft.client.renderer.BufferBuilder;
- import net.minecraft.client.renderer.GlStateManager;
- import net.minecraft.client.renderer.Tessellator;
- import net.minecraft.client.renderer.texture.TextureAtlasSprite;
- import net.minecraft.client.renderer.texture.TextureMap;
- import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
- import net.minecraft.util.ResourceLocation;
- import net.minecraftforge.client.model.animation.FastTESR;
- import net.minecraftforge.fluids.Fluid;
- import net.minecraftforge.fluids.FluidStack;
- public class FluxPipeFastTESR extends FastTESR<TileEntityFluxPipe> {
- @Override
- public void renderTileEntityFast(TileEntityFluxPipe te, double x, double y, double z, float partialTicks, int destroyStage, float partial, BufferBuilder buffer) {
- if(te == null) return;
- GlStateManager.pushMatrix();
- GlStateManager.disableRescaleNormal();
- GlStateManager.color(1, 1, 1, 1);
- GlStateManager.disableBlend();
- GlStateManager.translate((float) x, (float) y, (float) z);
- bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
- renderFluid(te, x, y, z);
- GlStateManager.popMatrix();
- }
- private void renderFluid(TileEntityFluxPipe te, double x, double y, double z) {
- if (te == null) {
- return;
- }
- FluidStack fluid = new FluidStack(ModFluids.FLUX_FLUID, 1);
- Fluid renderFluid = fluid.getFluid();
- if (renderFluid == null) {
- return;
- }
- float scale = fluid.amount / te.getMaxEnergyStored();
- System.out.println(scale);
- if (scale > 0.0f) {
- Tessellator tessellator = Tessellator.getInstance();
- BufferBuilder renderer = tessellator.getBuffer();
- ResourceLocation still = renderFluid.getStill();
- TextureAtlasSprite sprite = Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite(still.toString());
- net.minecraft.client.renderer.RenderHelper.disableStandardItemLighting();
- GlStateManager.color(1, 1, 1, .5f);
- renderer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR);
- float u1 = sprite.getMinU();
- float v1 = sprite.getMinV();
- float u2 = sprite.getMaxU();
- float v2 = sprite.getMaxV();
- tessellator.draw();
- // Top
- renderer.pos(x, scale + y, z).tex(u1, v1).color(255, 255, 255, 128).endVertex();
- renderer.pos(x, scale + y, 1-z).tex(u1, v2).color(255, 255, 255, 128).endVertex();
- renderer.pos(1-x, scale + y, 1-z).tex(u2, v2).color(255, 255, 255, 128).endVertex();
- renderer.pos(1-x, scale + y, z).tex(u2, v1).color(255, 255, 255, 128).endVertex();
- // Bottom
- renderer.pos(1-x, y, z).tex(u2, v1).color(255, 255, 255, 128).endVertex();
- renderer.pos(1-x, y, 1-z).tex(u2, v2).color(255, 255, 255, 128).endVertex();
- renderer.pos(x, y, 1-z).tex(u1, v2).color(255, 255, 255, 128).endVertex();
- renderer.pos(x, y, z).tex(u1, v1).color(255, 255, 255, 128).endVertex();
- // Sides
- renderer.pos(x, scale + y, 1-z).tex(u1, v1).color(255, 255, 255, 128).endVertex();
- renderer.pos(x, y, 1-z).tex(u1, v2).color(255, 255, 255, 128).endVertex();
- renderer.pos(1-x, y, 1-z).tex(u2, v2).color(255, 255, 255, 128).endVertex();
- renderer.pos(1-x, scale + y, 1-z).tex(u2, v1).color(255, 255, 255, 128).endVertex();
- renderer.pos(1-x, scale + y, z).tex(u2, v1).color(255, 255, 255, 128).endVertex();
- renderer.pos(1-x, y, z).tex(u2, v2).color(255, 255, 255, 128).endVertex();
- renderer.pos(x, y, z).tex(u1, v2).color(255, 255, 255, 128).endVertex();
- renderer.pos(x, scale + y, z).tex(u1, v1).color(255, 255, 255, 128).endVertex();
- renderer.pos(1-x, scale + y, 1-z).tex(u2, v1).color(255, 255, 255, 128).endVertex();
- renderer.pos(1-x, y, 1-z).tex(u2, v2).color(255, 255, 255, 128).endVertex();
- renderer.pos(1-x, y, z).tex(u1, v2).color(255, 255, 255, 128).endVertex();
- renderer.pos(1-x, scale + y, z).tex(u1, v1).color(255, 255, 255, 128).endVertex();
- renderer.pos(x, scale + y, z).tex(u1, v1).color(255, 255, 255, 128).endVertex();
- renderer.pos(x, y, z).tex(u1, v2).color(255, 255, 255, 128).endVertex();
- renderer.pos(x, y, 1-z).tex(u2, v2).color(255, 255, 255, 128).endVertex();
- renderer.pos(x, scale + y, 1-z).tex(u2, v1).color(255, 255, 255, 128).endVertex();
- net.minecraft.client.renderer.RenderHelper.enableStandardItemLighting();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement