// Path: src/main/java/mnm/mods/itemdash/easing/EasingType.java
// public interface EasingType {
// 
//     Easing in();
// 
//     Easing out();
// 
//     Easing inOut();
// }
// 
// Path: src/main/java/mnm/mods/itemdash/easing/Easings.java
// public interface Easings {
// 
//     EasingType linear();
// 
//     EasingType quadratic();
//     
//     EasingType cubic();
//     
//     EasingType quartic();
//     
//     EasingType quintic();
//     
//     EasingType sinusoidal();
//     
//     EasingType circular();
// }
// 
// Path: src/main/java/mnm/mods/itemdash/easing/EasingsFactory.java
// public class EasingsFactory implements Easings {
// 
//     public static Easings getInstance() {
//         return new EasingsFactory();
//     }
// 
//     private EasingsFactory() {}
// 
//     @Override
//     public EasingType linear() {
//         return new Linear();
//     }
// 
//     @Override
//     public EasingType quadratic() {
//         return new Quadratic();
//     }
// 
//     @Override
//     public EasingType cubic() {
//         return new Cubic();
//     }
// 
//     @Override
//     public EasingType quartic() {
//         return new Quartic();
//     }
// 
//     @Override
//     public EasingType quintic() {
//         return new Quintic();
//     }
// 
//     @Override
//     public EasingType sinusoidal() {
//         return new Sinusoidal();
//     }
// 
//     @Override
//     public EasingType circular() {
//         return new Circular();
//     }
// }


import mnm.mods.itemdash.easing.EasingType;
import mnm.mods.itemdash.easing.Easings;
import mnm.mods.itemdash.easing.EasingsFactory;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.util.ResourceLocation;
package mnm.mods.itemdash.gui;


public class Rainblower extends Gui implements Runnable {

    static final Object YES_THIS_IS_AN_EASTER_EGG = null;
    private static final ResourceLocation DASHIE = new ResourceLocation("itemdash", "textures/gui/rainbow.png");

    private Minecraft mc = Minecraft.getMinecraft();
    private boolean activated;
    private int timer;

    @Override
    public void run() {
        this.activated = true;
        this.timer = mc.ingameGUI.getUpdateCounter();
    }

    public void draw() {
        if (activated) {
            final int TIME = 60;
            int currTime = mc.ingameGUI.getUpdateCounter() - timer;
            if (currTime < TIME) {
                Easings factory = EasingsFactory.getInstance();
// Path: src/main/java/mnm/mods/itemdash/easing/EasingType.java
// public interface EasingType {
// 
//     Easing in();
// 
//     Easing out();
// 
//     Easing inOut();
// }
// 
// Path: src/main/java/mnm/mods/itemdash/easing/Easings.java
// public interface Easings {
// 
//     EasingType linear();
// 
//     EasingType quadratic();
//     
//     EasingType cubic();
//     
//     EasingType quartic();
//     
//     EasingType quintic();
//     
//     EasingType sinusoidal();
//     
//     EasingType circular();
// }
// 
// Path: src/main/java/mnm/mods/itemdash/easing/EasingsFactory.java
// public class EasingsFactory implements Easings {
// 
//     public static Easings getInstance() {
//         return new EasingsFactory();
//     }
// 
//     private EasingsFactory() {}
// 
//     @Override
//     public EasingType linear() {
//         return new Linear();
//     }
// 
//     @Override
//     public EasingType quadratic() {
//         return new Quadratic();
//     }
// 
//     @Override
//     public EasingType cubic() {
//         return new Cubic();
//     }
// 
//     @Override
//     public EasingType quartic() {
//         return new Quartic();
//     }
// 
//     @Override
//     public EasingType quintic() {
//         return new Quintic();
//     }
// 
//     @Override
//     public EasingType sinusoidal() {
//         return new Sinusoidal();
//     }
// 
//     @Override
//     public EasingType circular() {
//         return new Circular();
//     }
// }


// Path: src/main/java/mnm/mods/itemdash/gui/Rainblower.java
import mnm.mods.itemdash.easing.EasingType;
import mnm.mods.itemdash.easing.Easings;
import mnm.mods.itemdash.easing.EasingsFactory;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.util.ResourceLocation;

package mnm.mods.itemdash.gui;


public class Rainblower extends Gui implements Runnable {

    static final Object YES_THIS_IS_AN_EASTER_EGG = null;
    private static final ResourceLocation DASHIE = new ResourceLocation("itemdash", "textures/gui/rainbow.png");

    private Minecraft mc = Minecraft.getMinecraft();
    private boolean activated;
    private int timer;

    @Override
    public void run() {
        this.activated = true;
        this.timer = mc.ingameGUI.getUpdateCounter();
    }

    public void draw() {
        if (activated) {
            final int TIME = 60;
            int currTime = mc.ingameGUI.getUpdateCounter() - timer;
            if (currTime < TIME) {
                Easings factory = EasingsFactory.getInstance();
                EasingType linear = factory.sinusoidal();