package com.isartdigital.game.sprites;

import com.isartdigital.utils.Config;
import com.isartdigital.utils.game.BoxType;
import com.isartdigital.utils.game.factory.MovieClipAnimFactory;
import com.isartdigital.utils.game.GameStage;
import com.isartdigital.utils.game.StateGraphic;
import com.isartdigital.utils.system.DeviceCapabilities;
import pixi.core.sprites.Sprite;
import pixi.core.textures.Texture;
import pixi.extras.MovieClip;

	
/**
 * ...
 * @author Nathan
 */
class InputZone extends StateGraphic 
{
	
	/**
	 * instance unique de la classe InputZone
	 */
	private static var instance: InputZone;
	
	/**
	 * Retourne l'instance unique de la classe, et la crée si elle n'existait pas au préalable
	 * @return instance unique
	 */
	public static function getInstance (): InputZone {
		if (instance == null) instance = new InputZone();
		return instance;
	}
	
	public var indiceVisuel : Sprite;
	
	/**
	 * constructeur privé pour éviter qu'une instance soit créée directement
	 */
	private function new() 
	{
		//indiceVisuel = new Sprite(Texture.fromImage(Config.assetsPath+"Inputzone.png"));

		super();
		factory = new MovieClipAnimFactory();
		assetName = "Inputzone";
		//addChild(indiceVisuel);
		//anchor.set(0.5, 0.5);
		//y += DeviceCapabilities.getScreenRect(GameStage.getInstance()).height / 8;
		boxType = BoxType.SIMPLE;
		
	}
	
	public function init() {
		start();
		setModeNormal();
	}
	
	override private function setModeNormal():Void {
		setState(DEFAULT_STATE, true);
		cast(anim, MovieClip).anchor.set(0.5, 0.5);
		x = DeviceCapabilities.getScreenRect(GameStage.getInstance()).height/3;
		y = anim.width / 2;
		super.setModeNormal();
	}
	
	/**
	 * détruit l'instance unique et met sa référence interne à null
	 */
	override function destroy (): Void {
		instance = null;
	}

}