package minizoo.c.animal; import minizoo.App; import minizoo.c.Animal; import minizoo.c.Entity; import minizoo.c.action.ScaleTo; import minizoo.c.action.Spawn; import minizoo.c.action.easing.EaseInOutSine; import minizoo.c.core.Vector2d; import minizoo.i.AnimalFactory; import minizoo.i.TouchListener; import java.awt.*; import java.awt.geom.Point2D; public class AnimalSpawnButton extends Entity implements TouchListener { public AnimalSpawnButton(AnimalFactory factory) { super("AnimalSpawnButton:" + factory.toString()); this.factory = factory; this.setScale(0.3f, 0.3f); this.addChild(factory.build()); } @Override public void update(float elapsed) { super.update(elapsed); ((Entity)(getChildren().toArray()[0])).setPosition(0, 0); } @Override public void beforeDraw(Graphics2D g2) { super.beforeDraw(g2); } @Override public void Hover(boolean isHover) { if (isHover) { this.stopAction("hover:false"); this.stopAction("press:true"); this.runAction(Spawn.c(EaseInOutSine.c(ScaleTo.c(0.2f, 1f, 1f))), "hover:true"); } else { this.stopAction("hover:true"); this.stopAction("press:true"); this.runAction(Spawn.c(EaseInOutSine.c(ScaleTo.c(0.2f, 0.3f, 0.3f))), "hover:false"); } } @Override public void Drag(Point2D point) { } @Override public void Press(boolean isPress, Point2D point) { if (isPress) { this.stopAction("hover:true"); Animal animal = factory.build(); animal.setPosition(new Vector2d(App.Instance().getTouch().getCurrent())); Entity.add(animal); App.Instance().getTouch().setCurrentDrag(animal); } else { this.Hover(true); } } @Override public void Click() { } @Override public void DoubleClick() { } @Override public boolean isNeededSupportingDoubleClicking() { return false; } AnimalFactory factory; }