Added providers
This commit is contained in:
84
src/com/flaremicro/visualforecast/icons/impl/RainIcon.java
Normal file
84
src/com/flaremicro/visualforecast/icons/impl/RainIcon.java
Normal file
@@ -0,0 +1,84 @@
|
||||
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 RainIcon extends Icon {
|
||||
private final int rainCount;
|
||||
private final float rainSpace;
|
||||
private final Icon cloudIcon;
|
||||
|
||||
Path2D.Float[] rainPath = new Path2D.Float[6];
|
||||
Color[] aniColors = new Color[]{
|
||||
//new Color(0x0000FF),
|
||||
new Color(0x0022FF),
|
||||
//new Color(0x0044FF),
|
||||
new Color(0x0066FF),
|
||||
//new Color(0x0088FF),
|
||||
new Color(0x00DDFF),
|
||||
//new Color(0x00CCFF),
|
||||
new Color(0xFFFFFF),
|
||||
//new Color(0x0088FF),
|
||||
new Color(0x00DDFF),
|
||||
//new Color(0x0044FF),
|
||||
new Color(0x0066FF),
|
||||
};
|
||||
|
||||
public RainIcon(int id, int rainCount, float rainSpace, Icon cloudIcon)
|
||||
{
|
||||
super(id);
|
||||
this.rainCount = rainCount;
|
||||
this.rainSpace = rainSpace * 0.125F;
|
||||
this.cloudIcon = cloudIcon;
|
||||
for(int i = 0; i < rainPath.length; i++)
|
||||
{
|
||||
float ph = 0.075F;
|
||||
float pw = 0.1F;
|
||||
float poff = 0.037F;
|
||||
float xoff = poff*i;
|
||||
float yoff = ph*i;
|
||||
rainPath[i] = new Path2D.Float();
|
||||
rainPath[i].moveTo(0F+xoff, 1F-yoff);
|
||||
rainPath[i].lineTo(poff+xoff, 1F-ph-yoff);
|
||||
rainPath[i].lineTo(pw+poff+xoff, 1F-ph-yoff);
|
||||
rainPath[i].lineTo(pw+xoff, 1F-yoff);
|
||||
rainPath[i].closePath();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawIcon(Graphics2D g2d, float scale, int animationStep) {
|
||||
g2d.setStroke(new BasicStroke(4/scale));
|
||||
for(int j = 0; j < rainCount; j++)
|
||||
{
|
||||
g2d.translate(j*rainSpace, 0F);
|
||||
g2d.setColor(Color.BLACK);
|
||||
for(int i = 0; i < rainPath.length; i++)
|
||||
{
|
||||
g2d.draw(rainPath[i]);
|
||||
}
|
||||
for(int i = 0; i < rainPath.length; i++)
|
||||
{
|
||||
|
||||
g2d.setColor(aniColors[Math.abs(i-j+animationStep) % aniColors.length]);
|
||||
g2d.fill(rainPath[i]);
|
||||
}
|
||||
g2d.translate(-j*rainSpace, 0F);
|
||||
}
|
||||
g2d.translate(0F, -0.10F);
|
||||
g2d.scale(1F, 0.8F);
|
||||
cloudIcon.drawIcon(g2d, scale, animationStep);
|
||||
g2d.scale(1F, 1.25F);
|
||||
g2d.translate(0F, 0.10F);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAnimated() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user