Search in sources :

Example 1 with STATE

use of lumien.randomthings.tileentity.TileEntityAncientFurnace.STATE in project Random-Things by lumien231.

the class RenderAncientFurnace method render.

@Override
public void render(TileEntityAncientFurnace te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) {
    STATE state = te.getState();
    int counter = te.getStartingCounter();
    float transparency = 0;
    if (state == STATE.RUNNING) {
        transparency = 1;
    } else if (state == STATE.STARTING && counter > 100) {
        transparency = Math.min(1, -1 * (float) Math.cos(((counter + partialTicks) - 100) / 300D * (Math.PI / 2)) + 1);
    }
    if (state == STATE.RUNNING || (state == STATE.STARTING && counter > 100)) {
        // System.out.println(transparency + "/" + counter);
        // transparency = 0.1f;
        GlStateManager.alphaFunc(GL11.GL_ALWAYS, 0);
        GlStateManager.enableBlend();
        GlStateManager.blendFunc(SourceFactor.SRC_ALPHA, DestFactor.ONE_MINUS_SRC_ALPHA);
        this.setLightmapDisabled(true);
        GlStateManager.disableLighting();
        float yellow = ((float) Math.sin((RTEventHandler.clientAnimationCounter + partialTicks) / 25f) + 1) / 5 + 0.1f;
        GlStateManager.color(1f, yellow, 0, transparency);
        for (Overlay o : toDraw) {
            Pair<Integer, Integer> offset = o.offset;
            long rdm = MathHelper.getPositionRandom(new Vec3i(te.getPos().getX() + offset.getLeft(), te.getPos().getY(), te.getPos().getZ() + offset.getRight()));
            int model = getRandomInteger(4, Math.abs((int) rdm >> 16) % 4);
            for (EnumFacing f : o.facings) {
                ResourceLocation texture = textures[textureIndices[model][f.getHorizontalIndex()]];
                this.bindTexture(texture);
                Tessellator tessellator = Tessellator.getInstance();
                BufferBuilder renderer = tessellator.getBuffer();
                renderer.begin(7, DefaultVertexFormats.POSITION_TEX);
                double iX = x + offset.getLeft();
                double iZ = z + offset.getRight();
                switch(f) {
                    case NORTH:
                        renderer.pos(iX, y, iZ - 0.001).tex(1, 1).endVertex();
                        renderer.pos(iX, y + 1, iZ - 0.001).tex(1, 0).endVertex();
                        renderer.pos(iX + 1, y + 1, iZ - 0.001).tex(0, 0).endVertex();
                        renderer.pos(iX + 1, y, iZ - 0.001).tex(0, 1).endVertex();
                        break;
                    case SOUTH:
                        renderer.pos(iX, y, iZ + 1.001).tex(0, 1).endVertex();
                        renderer.pos(iX + 1, y, iZ + 1.001).tex(1, 1).endVertex();
                        renderer.pos(iX + 1, y + 1, iZ + 1.001).tex(1, 0).endVertex();
                        renderer.pos(iX, y + 1, iZ + 1.001).tex(0, 0).endVertex();
                        break;
                    case WEST:
                        renderer.pos(iX - 0.001, y, iZ).tex(0, 1).endVertex();
                        renderer.pos(iX - 0.001, y, iZ + 1).tex(1, 1).endVertex();
                        renderer.pos(iX - 0.001, y + 1, iZ + 1).tex(1, 0).endVertex();
                        renderer.pos(iX - 0.001, y + 1, iZ).tex(0, 0).endVertex();
                        break;
                    case EAST:
                        renderer.pos(iX + 1.001, y, iZ).tex(1, 1).endVertex();
                        renderer.pos(iX + 1.001, y + 1, iZ).tex(1, 0).endVertex();
                        renderer.pos(iX + 1.001, y + 1, iZ + 1).tex(0, 0).endVertex();
                        renderer.pos(iX + 1.001, y, iZ + 1).tex(0, 1).endVertex();
                        break;
                    default:
                        break;
                }
                tessellator.draw();
            }
        }
        this.setLightmapDisabled(false);
        GlStateManager.enableLighting();
        GlStateManager.disableBlend();
        GlStateManager.alphaFunc(516, 0.1F);
    }
}
Also used : Vec3i(net.minecraft.util.math.Vec3i) Tessellator(net.minecraft.client.renderer.Tessellator) EnumFacing(net.minecraft.util.EnumFacing) BufferBuilder(net.minecraft.client.renderer.BufferBuilder) STATE(lumien.randomthings.tileentity.TileEntityAncientFurnace.STATE) ResourceLocation(net.minecraft.util.ResourceLocation)

Aggregations

STATE (lumien.randomthings.tileentity.TileEntityAncientFurnace.STATE)1 BufferBuilder (net.minecraft.client.renderer.BufferBuilder)1 Tessellator (net.minecraft.client.renderer.Tessellator)1 EnumFacing (net.minecraft.util.EnumFacing)1 ResourceLocation (net.minecraft.util.ResourceLocation)1 Vec3i (net.minecraft.util.math.Vec3i)1