/// <summary> /// Registers function on global Lua state. /// </summary> /// <param name="functionName"></param> private void Register(Melua.LuaNativeFunction function) { // Keep a reference, so it's not garbage collected...? var func = new Melua.LuaNativeFunction(function); _functions.Add(func); Melua.lua_register(GL, function.Method.Name, func); }
/// <summary> /// Initializes scripting environment. /// </summary> public void Initialize() { GL = Melua.luaL_newstate(); Melua.melua_openlib(GL, LuaLib.Table, LuaLib.String, LuaLib.Math); var func = new Melua.LuaNativeFunction(OnPanic); _functions.Add(func); Melua.lua_atpanic(GL, func); // Functions // -------------------------------------------------------------- // Output Register(print); Register(logdebug); // Setup Register(addnpc); Register(addwarp); // Dialog Register(msg); Register(select); Register(close); Register(input); Register(numinput); // Information Register(getpc); Register(getnpc); Register(gettime); // Inventory Register(hasitem); Register(countitem); // Action Register(warp); Register(resetstats); Register(changehair); Register(spawn); }
/// <summary> /// Registers function on global Lua state. /// </summary> /// <param name="function"></param> private void Register(Melua.LuaNativeFunction function) { var func = Melua.CreateFunctionReference(GL, function); Melua.lua_register(GL, function.Method.Name, func); }