#include "scripts/common.txt"
#include "scripts/BP_common.txt"

enum FlyingDinoAnims
{
    FDAnim_Idle = 0,
    FDAnim_Flap,
    FDAnim_Dive
}

class BP_FlyingDino : ScriptObject
{
    kActor @self;
	float animTime;
	int animID;
	
	//------------------------------------------------------------------------------------------------------------------------
    BP_FlyingDino(kActor @actor)
	{
        @self = actor;
		self.Flags() |= AF_ALWAYSACTIVE;
		self.AnimState().Set(FDAnim_Idle, 4.0f, ANF_LOOP);
		animID = FDAnim_Idle;
		self.ClipFlags() |= CF_CLIPEDGES | CF_DROPOFF | CF_WALKWALLS | CF_COLLIDEFLOORS | CF_NOSLOPESTEP | CF_COLLIDEHEIGHT | CF_NOFLOORADJUST | CF_NOCEILINGADJUST | CF_COLLIDEWATER;
    }
	//------------------------------------------------------------------------------------------------------------------------
    void OnSpawn() { }
	//------------------------------------------------------------------------------------------------------------------------
	void OnBeginLevel()
	{
		self.RenderModel().SetRotationOffset(0, Math::Deg2Rad(180.0f), 0.0f, 0.0f, 1.0f);
	}
	//------------------------------------------------------------------------------------------------------------------------
    void OnTick()
	{
		//Animation Test
		animTime += GAME_DELTA_TIME;
		if (animTime > 4.0f)
		{
			animTime = 0.0f;
			animID++;
			if (animID > FDAnim_Dive)
				animID = FDAnim_Idle;
			self.AnimState().Blend(animID, 4.0f, 16.0f, ANF_BLEND|ANF_LOOP);
		}
    }
	//------------------------------------------------------------------------------------------------------------------------
}
