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);
}
}
Aggregations