package;

import flixel.FlxG;
import flixel.FlxSprite;
import flixel.FlxState;
import flixel.addons.display.FlxGridOverlay;
import flixel.group.FlxGroup.FlxTypedGroup;
import flixel.math.FlxPoint;
import flixel.text.FlxText;
import flixel.util.FlxColor;
import openfl.Assets;
import openfl.display.BitmapData;
import openfl.display.MovieClip;
import openfl.display.Timeline;
import openfl.geom.Matrix;
import openfl.geom.Rectangle;

class CutsceneAnimTestState extends FlxState
{
	var cutsceneGroup:CutsceneCharacter;

	var curSelected:Int = 0;
	var debugTxt:FlxText;

	var funnySprite:FlxSprite = new FlxSprite();
	var clip:MovieClip;

	public function new()
	{
		super();

		var gridBG:FlxSprite = FlxGridOverlay.create(10, 10);
		gridBG.scrollFactor.set(0.5, 0.5);
		add(gridBG);

		debugTxt = new FlxText(900, 20, 0, "", 20);
		debugTxt.color = FlxColor.BLUE;
		add(debugTxt);

		clip = Assets.getMovieClip("tanky:");
		// clip.x = FlxG.width/2;
		// clip.y = FlxG.height/2;
		FlxG.stage.addChild(clip);

		var swagShit:MovieClip = Assets.getMovieClip('tankBG:');
		// swagShit.scaleX = 5;

		FlxG.stage.addChild(swagShit);
		swagShit.gotoAndStop(13);

		var swfMountain = new BitmapData(FlxG.width, FlxG.height, true, 0x00000000);
		swfMountain.draw(swagShit, swagShit.transform.matrix);

		var mountains:FlxSprite = new FlxSprite().loadGraphic(swfMountain);
		// add(mountains);

		FlxG.stage.removeChild(swagShit);

		funnySprite.x = FlxG.width / 2;
		funnySprite.y = FlxG.height / 2;
		add(funnySprite);
	}

	override function update(elapsed:Float)
	{
		super.update(elapsed);

		// jam sprite into top left corner
		var drawMatrix:Matrix = clip.transform.matrix;
		var bounds:Rectangle = clip.getBounds(null);
		drawMatrix.tx = -bounds.x;
		drawMatrix.ty = -bounds.y;
		// make bitmapdata only as big as it needs to be
		var funnyBmp:BitmapData = new BitmapData(Math.ceil(bounds.width), Math.ceil(bounds.height), true, 0x00000000);
		funnyBmp.draw(clip, drawMatrix, true);
		funnySprite.loadGraphic(funnyBmp);
		// jam sprite back into place lol
		funnySprite.offset.x = -bounds.x;
		funnySprite.offset.y = -bounds.y;
	}
}