Files
VisualForecast-1000/src/com/flaremicro/visualforecast/icons/impl/ButterIcon.java
Flare Microsystems 0564334f93 Added providers
2024-03-07 14:12:38 -08:00

107 lines
2.8 KiB
Java

package com.flaremicro.visualforecast.icons.impl;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.geom.Path2D;
import com.flaremicro.visualforecast.icons.Icon;
public class ButterIcon extends Icon {
Path2D.Float iceOutline = new Path2D.Float();
Path2D.Float[] iceFaces = new Path2D.Float[3];
Path2D.Float[] iceShines = new Path2D.Float[3];
Color[] iceFaceColors = new Color[] {
new Color(0xfff8a0),
new Color(0xfff14c),
new Color(0xccbc00),
};
Color[] iceShineAnimation = new Color[] {
new Color(0xFFFFFF),
};
public ButterIcon(int id) {
super(id);
iceOutline.moveTo(0F, 0.161F);
iceOutline.lineTo(0.542F, 0F);
iceOutline.lineTo(1.0F, 0.093F);
iceOutline.lineTo(1.0F, 0.441F);
iceOutline.lineTo(0.489F, 0.650F);
iceOutline.lineTo(0.0F, 0.531F);
iceOutline.closePath();
iceFaces[1] = new Path2D.Float();
iceFaces[1].moveTo(0F, 0.161F);
iceFaces[1].lineTo(0.542F, 0F);
iceFaces[1].lineTo(1.0F, 0.093F);
iceFaces[1].lineTo(0.489F, 0.263F);
iceFaces[1].closePath();
iceFaces[2] = new Path2D.Float();
iceFaces[2].moveTo(0.489F, 0.263F);
iceFaces[2].lineTo(1.0F, 0.093F);
iceFaces[2].lineTo(1.0F, 0.441F);
iceFaces[2].lineTo(0.489F, 0.650F);
iceFaces[2].closePath();
iceFaces[0] = new Path2D.Float();
iceFaces[0].moveTo(0.0F, 0.161F);
iceFaces[0].lineTo(0.489F, 0.263F);
iceFaces[0].lineTo(0.489F, 0.650F);
iceFaces[0].lineTo(0.0F, 0.531F);
iceFaces[0].closePath();
iceShines[1] = new Path2D.Float();
iceShines[1].moveTo(0.537F, 0.013F);
iceShines[1].lineTo(0.930F, 0.099F);
iceShines[1].lineTo(0.673F, 0.185F);
iceShines[1].lineTo(0.556F, 0.187F);
iceShines[1].lineTo(0.556F, 0.187F);
iceShines[1].lineTo(0.742F, 0.086);
iceShines[1].closePath();
iceShines[2] = new Path2D.Float();
iceShines[2].moveTo(0.981F, 0.134F);
iceShines[2].lineTo(0.981F, 0.423F);
iceShines[2].lineTo(0.515F, 0.624F);
iceShines[2].lineTo(0.571F, 0.557F);
iceShines[2].lineTo(0.915F, 0.372F);
iceShines[2].closePath();
iceShines[0] = new Path2D.Float();
iceShines[0].moveTo(0.018F, 0.187F);
iceShines[0].lineTo(0.205F, 0.229F);
iceShines[0].lineTo(0.060F, 0.249F);
iceShines[0].lineTo(0.044F, 0.475F);
iceShines[0].lineTo(0.021F, 0.508F);
iceShines[0].closePath();
}
@Override
public void drawIcon(Graphics2D g2d, float scale, int animationStep) {
g2d.setColor(Color.BLACK);
g2d.setStroke(new BasicStroke(4 / scale));
g2d.translate(0F, 0.325F);
g2d.setColor(Color.BLACK);
g2d.draw(iceOutline);
for(int i = 0; i < iceFaces.length; i++)
{
g2d.setColor(iceFaceColors[i]);
g2d.fill(iceFaces[i]);
g2d.setColor(iceShineAnimation[(i+animationStep) % iceShineAnimation.length]);
g2d.fill(iceShines[i]);
}
g2d.translate(0F, -0.325F);
}
@Override
public boolean isAnimated() {
return false;
}
}