private bool IsFalse(ref TValue v) { if (v.TtIsNil()) { return(true); } if ((v.TtIsBoolean() && v.BValue() == false)) { return(true); } return(false); }
public T GetValue <T>(TValue v) { var t = typeof(T); if (t.IsEnum) { t = Enum.GetUnderlyingType(t); } switch ((LuaType)v.Tt) { case LuaType.LUA_TNIL: return(default(T)); case LuaType.LUA_TBOOLEAN: bool b = !v.TtIsNil() && (!v.TtIsBoolean() || v.BValue()); return((T)(object)b); case LuaType.LUA_TLIGHTUSERDATA: return((T)v.OValue); case LuaType.LUA_TNUMBER: if (t == typeof(object) && v.NValue >= int.MinValue && v.NValue <= int.MaxValue && v.NValue == (int)v.NValue) { t = typeof(int); } return((T)Convert.ChangeType(v.NValue, t)); case LuaType.LUA_TSTRING: return((T)v.OValue); case LuaType.LUA_TTABLE: case LuaType.LUA_TFUNCTION: case LuaType.LUA_TTHREAD: return((T)v.OValue); case LuaType.LUA_TUINT64: return((T)Convert.ChangeType(v.UInt64Value, t)); default: return(default(T)); } }
private bool IsFalse(ref TValue v) { if( v.TtIsNil() ) return true; if((v.TtIsBoolean() && v.BValue() == false)) return true; return false; }