Added providers

This commit is contained in:
Flare Microsystems
2024-03-07 14:12:38 -08:00
parent 701db6e22c
commit 0564334f93
51 changed files with 690 additions and 528 deletions

View 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;
}
}