107 lines
2.8 KiB
Java
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;
|
|
}
|
|
|
|
}
|