示例#1
0
        public static void AddIoLibrary(LuaContext Context)
        {
            dynamic io = LuaObject.NewTable();

            FileMetatable.__index       = LuaObject.NewTable();
            FileMetatable.__index.write = (LuaFunction)write;
            FileMetatable.__index.close = (LuaFunction)close;
            FileMetatable.__index.flush = (LuaFunction)flush;
            FileMetatable.__index.seek  = (LuaFunction)seek;
            FileMetatable.__index.read  = (LuaFunction)read;

            io.open   = (LuaFunction)io_open;
            io.type   = (LuaFunction)io_type;
            io.input  = (LuaFunction)io_input;
            io.output = (LuaFunction)io_output;
            io.temp   = (LuaFunction)io_temp;
            io.flush  = (LuaFunction)io_flush;
            io.write  = (LuaFunction)io_write;
            io.read   = (LuaFunction)io_read;

            currentInput  = CreateFileObject(Console.OpenStandardInput());
            currentOutput = CreateFileObject(Console.OpenStandardOutput(), true);
            io.stdin      = currentInput;
            io.stdout     = currentOutput;
            io.stderr     = CreateFileObject(Console.OpenStandardError(), true);

            Context.Set("io", io);
        }
示例#2
0
        public static void AddIoLibrary(LuaContext Context)
        {
            dynamic io = LuaObject.NewTable();

            FileMetatable.__index = LuaObject.NewTable();
            FileMetatable.__index.write = (LuaFunction)write;
            FileMetatable.__index.close = (LuaFunction)close;
            FileMetatable.__index.flush = (LuaFunction)flush;
            FileMetatable.__index.seek = (LuaFunction)seek;
            FileMetatable.__index.read = (LuaFunction)read;

            io.open = (LuaFunction)io_open;
            io.type = (LuaFunction)io_type;
            io.input = (LuaFunction)io_input;
            io.output = (LuaFunction)io_output;
            io.temp = (LuaFunction)io_temp;
            io.flush = (LuaFunction)io_flush;
            io.write = (LuaFunction)io_write;
            io.read = (LuaFunction)io_read;

            currentInput = CreateFileObject(Console.OpenStandardInput());
            currentOutput = CreateFileObject(Console.OpenStandardOutput(), true);
            io.stdin = currentInput;
            io.stdout = currentOutput;
            io.stderr = CreateFileObject(Console.OpenStandardError(), true);

            Context.Set("io", io);
        }
示例#3
0
        public static void AddMathLibrary(LuaContext Context)
        {
            dynamic math = LuaObject.NewTable();

            math.abs   = (LuaFunction)math_abs;
            math.acos  = (LuaFunction)math_acos;
            math.asin  = (LuaFunction)math_asin;
            math.atan  = (LuaFunction)math_atan;
            math.atan2 = (LuaFunction)math_atan2;
            math.ceil  = (LuaFunction)math_ceil;
            math.cos   = (LuaFunction)math_cos;
            math.cosh  = (LuaFunction)math_cosh;
            math.exp   = (LuaFunction)math_exp;
            math.floor = (LuaFunction)math_floor;
            math.log   = (LuaFunction)math_log;
            math.max   = (LuaFunction)math_max;
            math.min   = (LuaFunction)math_min;
            math.pow   = (LuaFunction)math_pow;
            math.sin   = (LuaFunction)math_sin;
            math.sinh  = (LuaFunction)math_sinh;
            math.sqrt  = (LuaFunction)math_sqrt;
            math.tan   = (LuaFunction)math_tan;
            math.tanh  = (LuaFunction)math_tanh;

            math.pi = Math.PI;

            Context.Set("math", math);
        }
示例#4
0
 static void SetVariable(Variable Expression, LuaObject Value, LuaContext Context)
 {
     if (Expression.Prefix == null)
     {
         Context.Set(Expression.Name, Value);
     }
     else
     {
         EvalExpression(Expression.Prefix, Context)[0][Expression.Name] = Value;
     }
 }
示例#5
0
        /// <summary>
        /// Sets the nearest declared variable or creates a new one
        /// </summary>
        public void Set(string Name, LuaObject Value)
        {
            var obj = LuaObject.Nil;

            if (parent == null || variables.TryGetValue(Name, out obj))
            {
                variables[Name] = Value;
            }
            else
            {
                parent.Set(Name, Value);
            }
        }
示例#6
0
文件: Lua.cs 项目: lsjsoft/NetLua
 /// <summary>
 /// Creates a new Lua context with the base functions already set
 /// </summary>
 public Lua()
 {
     ctx.Set("assert", (LuaFunction)assert);
     ctx.Set("dofile", (LuaFunction)dofile);
     ctx.Set("error", (LuaFunction)error);
     ctx.Set("getmetatable", (LuaFunction)getmetatable);
     ctx.Set("setmetatable", (LuaFunction)setmetatable);
     ctx.Set("rawequal", (LuaFunction)rawequal);
     ctx.Set("rawget", (LuaFunction)rawget);
     ctx.Set("rawset", (LuaFunction)rawset);
     ctx.Set("rawlen", (LuaFunction)rawlen);
     ctx.Set("tonumber", (LuaFunction)tonumber);
     ctx.Set("tostring", (LuaFunction)tostring);
     ctx.Set("type", (LuaFunction)type);
     ctx.Set("ipairs", (LuaFunction)ipairs);
     ctx.Set("next", (LuaFunction)next);
     ctx.Set("pairs", (LuaFunction)pairs);
 }
示例#7
0
        public static void AddMathLibrary(LuaContext Context)
        {
            dynamic math = LuaObject.NewTable();
            math.abs = (LuaFunction)math_abs;
            math.acos = (LuaFunction)math_acos;
            math.asin = (LuaFunction)math_asin;
            math.atan = (LuaFunction)math_atan;
            math.atan2 = (LuaFunction)math_atan2;
            math.ceil = (LuaFunction)math_ceil;
            math.cos = (LuaFunction)math_cos;
            math.cosh = (LuaFunction)math_cosh;
            math.exp = (LuaFunction)math_exp;
            math.floor = (LuaFunction)math_floor;
            math.log = (LuaFunction)math_log;
            math.max = (LuaFunction)math_max;
            math.min = (LuaFunction)math_min;
            math.pow = (LuaFunction)math_pow;
            math.sin = (LuaFunction)math_sin;
            math.sinh = (LuaFunction)math_sinh;
            math.sqrt = (LuaFunction)math_sqrt;
            math.tan = (LuaFunction)math_tan;
            math.tanh = (LuaFunction)math_tanh;

            math.pi = Math.PI;

            Context.Set("math", math);
        }