static int EnumParam(RealStatePtr L) { string parameterName = ""; string enumString = ""; string defaultValue = ""; try { int paramCount = LuaAPI.lua_gettop(L); parameterName = LuaAPI.lua_tostring(L, 2); enumString = LuaAPI.lua_tostring(L, 3); defaultValue = LuaAPI.lua_tostring(L, 4); } catch (Exception e) { return(LuaAPI.luaL_error(L, "c# exception:" + e)); } string[] splitEnumString = enumString.Split('|'); string result = contents.EnumProperty(parameterName, splitEnumString, defaultValue); if (recordedBehaviour) { callRecords.Add(() => { contents.EnumProperty(parameterName, splitEnumString, defaultValue); }); } try { LuaAPI.lua_pushstring(L, result); return(1); } catch (Exception e) { return(LuaAPI.luaL_error(L, "c# exception:" + e)); } }