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