コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);
        }