//this source code was auto-generated by tolua#, do not modify it
using System;
using LuaInterface;

public class Holoville_HOTween_SequenceWrap
{
	public static void Register(LuaState L)
	{
		L.BeginClass(typeof(Holoville.HOTween.Sequence), typeof(Holoville.HOTween.Core.ABSTweenComponent));
		L.RegFunction("AppendCallback", AppendCallback);
		L.RegFunction("InsertCallback", InsertCallback);
		L.RegFunction("AppendInterval", AppendInterval);
		L.RegFunction("Append", Append);
		L.RegFunction("PrependInterval", PrependInterval);
		L.RegFunction("Prepend", Prepend);
		L.RegFunction("Insert", Insert);
		L.RegFunction("Clear", Clear);
		L.RegFunction("Rewind", Rewind);
		L.RegFunction("Restart", Restart);
		L.RegFunction("IsTweening", IsTweening);
		L.RegFunction("IsLinkedTo", IsLinkedTo);
		L.RegFunction("GetTweenTargets", GetTweenTargets);
		L.RegFunction("GetTweenersByTarget", GetTweenersByTarget);
		L.RegFunction("New", _CreateHoloville_HOTween_Sequence);
		L.RegFunction("__tostring", ToLua.op_ToString);
		L.EndClass();
	}

	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int _CreateHoloville_HOTween_Sequence(IntPtr L)
	{
		try
		{
			int count = LuaDLL.lua_gettop(L);

			if (count == 0)
			{
				Holoville.HOTween.Sequence obj = new Holoville.HOTween.Sequence();
				ToLua.PushObject(L, obj);
				return 1;
			}
			else if (count == 1 && TypeChecker.CheckTypes(L, 1, typeof(Holoville.HOTween.SequenceParms)))
			{
				Holoville.HOTween.SequenceParms arg0 = (Holoville.HOTween.SequenceParms)ToLua.CheckObject(L, 1, typeof(Holoville.HOTween.SequenceParms));
				Holoville.HOTween.Sequence obj = new Holoville.HOTween.Sequence(arg0);
				ToLua.PushObject(L, obj);
				return 1;
			}
			else
			{
				return LuaDLL.luaL_throw(L, "invalid arguments to ctor method: Holoville.HOTween.Sequence.New");
			}
		}
		catch(Exception e)
		{
			return LuaDLL.toluaL_exception(L, e);
		}
	}

	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int AppendCallback(IntPtr L)
	{
		try
		{
			int count = LuaDLL.lua_gettop(L);

			if (count == 2 && TypeChecker.CheckTypes(L, 1, typeof(Holoville.HOTween.Sequence), typeof(Holoville.HOTween.Core.TweenDelegate.TweenCallback)))
			{
				Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.ToObject(L, 1);
				Holoville.HOTween.Core.TweenDelegate.TweenCallback arg0 = null;
				LuaTypes funcType2 = LuaDLL.lua_type(L, 2);

				if (funcType2 != LuaTypes.LUA_TFUNCTION)
				{
					 arg0 = (Holoville.HOTween.Core.TweenDelegate.TweenCallback)ToLua.ToObject(L, 2);
				}
				else
				{
					LuaFunction func = ToLua.ToLuaFunction(L, 2);
					arg0 = DelegateFactory.CreateDelegate(typeof(Holoville.HOTween.Core.TweenDelegate.TweenCallback), func) as Holoville.HOTween.Core.TweenDelegate.TweenCallback;
				}

				obj.AppendCallback(arg0);
				return 0;
			}
			else if (count == 5 && TypeChecker.CheckTypes(L, 1, typeof(Holoville.HOTween.Sequence), typeof(UnityEngine.GameObject), typeof(string), typeof(object), typeof(UnityEngine.SendMessageOptions)))
			{
				Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.ToObject(L, 1);
				UnityEngine.GameObject arg0 = (UnityEngine.GameObject)ToLua.ToObject(L, 2);
				string arg1 = ToLua.ToString(L, 3);
				object arg2 = ToLua.ToVarObject(L, 4);
				UnityEngine.SendMessageOptions arg3 = (UnityEngine.SendMessageOptions)ToLua.ToObject(L, 5);
				obj.AppendCallback(arg0, arg1, arg2, arg3);
				return 0;
			}
			else if (TypeChecker.CheckTypes(L, 1, typeof(Holoville.HOTween.Sequence), typeof(Holoville.HOTween.Core.TweenDelegate.TweenCallbackWParms)) && TypeChecker.CheckParamsType(L, typeof(object), 3, count - 2))
			{
				Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.ToObject(L, 1);
				Holoville.HOTween.Core.TweenDelegate.TweenCallbackWParms arg0 = null;
				LuaTypes funcType2 = LuaDLL.lua_type(L, 2);

				if (funcType2 != LuaTypes.LUA_TFUNCTION)
				{
					 arg0 = (Holoville.HOTween.Core.TweenDelegate.TweenCallbackWParms)ToLua.ToObject(L, 2);
				}
				else
				{
					LuaFunction func = ToLua.ToLuaFunction(L, 2);
					arg0 = DelegateFactory.CreateDelegate(typeof(Holoville.HOTween.Core.TweenDelegate.TweenCallbackWParms), func) as Holoville.HOTween.Core.TweenDelegate.TweenCallbackWParms;
				}

				object[] arg1 = ToLua.ToParamsObject(L, 3, count - 2);
				obj.AppendCallback(arg0, arg1);
				return 0;
			}
			else
			{
				return LuaDLL.luaL_throw(L, "invalid arguments to method: Holoville.HOTween.Sequence.AppendCallback");
			}
		}
		catch(Exception e)
		{
			return LuaDLL.toluaL_exception(L, e);
		}
	}

	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int InsertCallback(IntPtr L)
	{
		try
		{
			int count = LuaDLL.lua_gettop(L);

			if (count == 3 && TypeChecker.CheckTypes(L, 1, typeof(Holoville.HOTween.Sequence), typeof(float), typeof(Holoville.HOTween.Core.TweenDelegate.TweenCallback)))
			{
				Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.ToObject(L, 1);
				float arg0 = (float)LuaDLL.lua_tonumber(L, 2);
				Holoville.HOTween.Core.TweenDelegate.TweenCallback arg1 = null;
				LuaTypes funcType3 = LuaDLL.lua_type(L, 3);

				if (funcType3 != LuaTypes.LUA_TFUNCTION)
				{
					 arg1 = (Holoville.HOTween.Core.TweenDelegate.TweenCallback)ToLua.ToObject(L, 3);
				}
				else
				{
					LuaFunction func = ToLua.ToLuaFunction(L, 3);
					arg1 = DelegateFactory.CreateDelegate(typeof(Holoville.HOTween.Core.TweenDelegate.TweenCallback), func) as Holoville.HOTween.Core.TweenDelegate.TweenCallback;
				}

				obj.InsertCallback(arg0, arg1);
				return 0;
			}
			else if (count == 6 && TypeChecker.CheckTypes(L, 1, typeof(Holoville.HOTween.Sequence), typeof(float), typeof(UnityEngine.GameObject), typeof(string), typeof(object), typeof(UnityEngine.SendMessageOptions)))
			{
				Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.ToObject(L, 1);
				float arg0 = (float)LuaDLL.lua_tonumber(L, 2);
				UnityEngine.GameObject arg1 = (UnityEngine.GameObject)ToLua.ToObject(L, 3);
				string arg2 = ToLua.ToString(L, 4);
				object arg3 = ToLua.ToVarObject(L, 5);
				UnityEngine.SendMessageOptions arg4 = (UnityEngine.SendMessageOptions)ToLua.ToObject(L, 6);
				obj.InsertCallback(arg0, arg1, arg2, arg3, arg4);
				return 0;
			}
			else if (TypeChecker.CheckTypes(L, 1, typeof(Holoville.HOTween.Sequence), typeof(float), typeof(Holoville.HOTween.Core.TweenDelegate.TweenCallbackWParms)) && TypeChecker.CheckParamsType(L, typeof(object), 4, count - 3))
			{
				Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.ToObject(L, 1);
				float arg0 = (float)LuaDLL.lua_tonumber(L, 2);
				Holoville.HOTween.Core.TweenDelegate.TweenCallbackWParms arg1 = null;
				LuaTypes funcType3 = LuaDLL.lua_type(L, 3);

				if (funcType3 != LuaTypes.LUA_TFUNCTION)
				{
					 arg1 = (Holoville.HOTween.Core.TweenDelegate.TweenCallbackWParms)ToLua.ToObject(L, 3);
				}
				else
				{
					LuaFunction func = ToLua.ToLuaFunction(L, 3);
					arg1 = DelegateFactory.CreateDelegate(typeof(Holoville.HOTween.Core.TweenDelegate.TweenCallbackWParms), func) as Holoville.HOTween.Core.TweenDelegate.TweenCallbackWParms;
				}

				object[] arg2 = ToLua.ToParamsObject(L, 4, count - 3);
				obj.InsertCallback(arg0, arg1, arg2);
				return 0;
			}
			else
			{
				return LuaDLL.luaL_throw(L, "invalid arguments to method: Holoville.HOTween.Sequence.InsertCallback");
			}
		}
		catch(Exception e)
		{
			return LuaDLL.toluaL_exception(L, e);
		}
	}

	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int AppendInterval(IntPtr L)
	{
		try
		{
			ToLua.CheckArgsCount(L, 2);
			Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.CheckObject(L, 1, typeof(Holoville.HOTween.Sequence));
			float arg0 = (float)LuaDLL.luaL_checknumber(L, 2);
			float o = obj.AppendInterval(arg0);
			LuaDLL.lua_pushnumber(L, o);
			return 1;
		}
		catch(Exception e)
		{
			return LuaDLL.toluaL_exception(L, e);
		}
	}

	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int Append(IntPtr L)
	{
		try
		{
			ToLua.CheckArgsCount(L, 2);
			Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.CheckObject(L, 1, typeof(Holoville.HOTween.Sequence));
			Holoville.HOTween.IHOTweenComponent arg0 = (Holoville.HOTween.IHOTweenComponent)ToLua.CheckObject(L, 2, typeof(Holoville.HOTween.IHOTweenComponent));
			float o = obj.Append(arg0);
			LuaDLL.lua_pushnumber(L, o);
			return 1;
		}
		catch(Exception e)
		{
			return LuaDLL.toluaL_exception(L, e);
		}
	}

	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int PrependInterval(IntPtr L)
	{
		try
		{
			ToLua.CheckArgsCount(L, 2);
			Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.CheckObject(L, 1, typeof(Holoville.HOTween.Sequence));
			float arg0 = (float)LuaDLL.luaL_checknumber(L, 2);
			float o = obj.PrependInterval(arg0);
			LuaDLL.lua_pushnumber(L, o);
			return 1;
		}
		catch(Exception e)
		{
			return LuaDLL.toluaL_exception(L, e);
		}
	}

	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int Prepend(IntPtr L)
	{
		try
		{
			ToLua.CheckArgsCount(L, 2);
			Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.CheckObject(L, 1, typeof(Holoville.HOTween.Sequence));
			Holoville.HOTween.IHOTweenComponent arg0 = (Holoville.HOTween.IHOTweenComponent)ToLua.CheckObject(L, 2, typeof(Holoville.HOTween.IHOTweenComponent));
			float o = obj.Prepend(arg0);
			LuaDLL.lua_pushnumber(L, o);
			return 1;
		}
		catch(Exception e)
		{
			return LuaDLL.toluaL_exception(L, e);
		}
	}

	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int Insert(IntPtr L)
	{
		try
		{
			ToLua.CheckArgsCount(L, 3);
			Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.CheckObject(L, 1, typeof(Holoville.HOTween.Sequence));
			float arg0 = (float)LuaDLL.luaL_checknumber(L, 2);
			Holoville.HOTween.IHOTweenComponent arg1 = (Holoville.HOTween.IHOTweenComponent)ToLua.CheckObject(L, 3, typeof(Holoville.HOTween.IHOTweenComponent));
			float o = obj.Insert(arg0, arg1);
			LuaDLL.lua_pushnumber(L, o);
			return 1;
		}
		catch(Exception e)
		{
			return LuaDLL.toluaL_exception(L, e);
		}
	}

	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int Clear(IntPtr L)
	{
		try
		{
			ToLua.CheckArgsCount(L, 2);
			Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.CheckObject(L, 1, typeof(Holoville.HOTween.Sequence));
			Holoville.HOTween.SequenceParms arg0 = (Holoville.HOTween.SequenceParms)ToLua.CheckObject(L, 2, typeof(Holoville.HOTween.SequenceParms));
			obj.Clear(arg0);
			return 0;
		}
		catch(Exception e)
		{
			return LuaDLL.toluaL_exception(L, e);
		}
	}

	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int Rewind(IntPtr L)
	{
		try
		{
			ToLua.CheckArgsCount(L, 1);
			Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.CheckObject(L, 1, typeof(Holoville.HOTween.Sequence));
			obj.Rewind();
			return 0;
		}
		catch(Exception e)
		{
			return LuaDLL.toluaL_exception(L, e);
		}
	}

	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int Restart(IntPtr L)
	{
		try
		{
			ToLua.CheckArgsCount(L, 1);
			Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.CheckObject(L, 1, typeof(Holoville.HOTween.Sequence));
			obj.Restart();
			return 0;
		}
		catch(Exception e)
		{
			return LuaDLL.toluaL_exception(L, e);
		}
	}

	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int IsTweening(IntPtr L)
	{
		try
		{
			int count = LuaDLL.lua_gettop(L);

			if (count == 2 && TypeChecker.CheckTypes(L, 1, typeof(Holoville.HOTween.Sequence), typeof(string)))
			{
				Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.ToObject(L, 1);
				string arg0 = ToLua.ToString(L, 2);
				bool o = obj.IsTweening(arg0);
				LuaDLL.lua_pushboolean(L, o);
				return 1;
			}
			else if (count == 2 && TypeChecker.CheckTypes(L, 1, typeof(Holoville.HOTween.Sequence), typeof(int)))
			{
				Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.ToObject(L, 1);
				int arg0 = (int)LuaDLL.lua_tonumber(L, 2);
				bool o = obj.IsTweening(arg0);
				LuaDLL.lua_pushboolean(L, o);
				return 1;
			}
			else if (count == 2 && TypeChecker.CheckTypes(L, 1, typeof(Holoville.HOTween.Sequence), typeof(object)))
			{
				Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.ToObject(L, 1);
				object arg0 = ToLua.ToVarObject(L, 2);
				bool o = obj.IsTweening(arg0);
				LuaDLL.lua_pushboolean(L, o);
				return 1;
			}
			else
			{
				return LuaDLL.luaL_throw(L, "invalid arguments to method: Holoville.HOTween.Sequence.IsTweening");
			}
		}
		catch(Exception e)
		{
			return LuaDLL.toluaL_exception(L, e);
		}
	}

	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int IsLinkedTo(IntPtr L)
	{
		try
		{
			ToLua.CheckArgsCount(L, 2);
			Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.CheckObject(L, 1, typeof(Holoville.HOTween.Sequence));
			object arg0 = ToLua.ToVarObject(L, 2);
			bool o = obj.IsLinkedTo(arg0);
			LuaDLL.lua_pushboolean(L, o);
			return 1;
		}
		catch(Exception e)
		{
			return LuaDLL.toluaL_exception(L, e);
		}
	}

	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int GetTweenTargets(IntPtr L)
	{
		try
		{
			ToLua.CheckArgsCount(L, 1);
			Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.CheckObject(L, 1, typeof(Holoville.HOTween.Sequence));
			System.Collections.Generic.List<object> o = obj.GetTweenTargets();
			ToLua.PushObject(L, o);
			return 1;
		}
		catch(Exception e)
		{
			return LuaDLL.toluaL_exception(L, e);
		}
	}

	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int GetTweenersByTarget(IntPtr L)
	{
		try
		{
			ToLua.CheckArgsCount(L, 2);
			Holoville.HOTween.Sequence obj = (Holoville.HOTween.Sequence)ToLua.CheckObject(L, 1, typeof(Holoville.HOTween.Sequence));
			object arg0 = ToLua.ToVarObject(L, 2);
			System.Collections.Generic.List<Holoville.HOTween.Tweener> o = obj.GetTweenersByTarget(arg0);
			ToLua.PushObject(L, o);
			return 1;
		}
		catch(Exception e)
		{
			return LuaDLL.toluaL_exception(L, e);
		}
	}
}

