Пример #1
0
	//从lua读取每个参数的值
	static void paraseParam(StreamWriter n, ParamTypeData paramType, int i, int index)
	{
		string variableExp = string.Format("param{0}", i);
		writeLine(n, "{0} {1} = default({0});", paramType.csFullTypeName, variableExp);
		paramType.ReadFromLua2CS(n, index, variableExp,0);
	}
Пример #2
0
	//从Lua读数据写回cs的对象属性
	static void writeWriteProp(StreamWriter n,
		Type objt,
		Type propt,
		string propName,
		bool isStatic,
		bool isEnum
		)
	{
		ParamTypeData objT = new ParamTypeData(objt);
		string objectTypeFullName = objT.csFullTypeName;

		writeLine(n, "//---------------------------------");

		funcNames.Add("set_" + propName);
		n.WriteLine("[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]");
		ParamTypeData paramType = new ParamTypeData(propt);

		writeLine(n,"public static int set_{0}(IntPtr L)", propName);
		writeLine(n,"{");

		WriteTryBegin(n);

		int index = 1;
		if (isStatic == false)
		{
			index = 2;
			writeSelf(n,objT);
		}

		string owner = isStatic ? objectTypeFullName : "self";
		string variableExp = string.Format("{0}.{1}", owner, propName);
		paramType.ReadFromLua2CS(n, index, variableExp,0);

		if (isStatic == false && objt.IsValueType)
		{
			writeLine(n, "IntPtr idptr = LuaDLL.lua_touserdata(L, 1);");
			n.WriteLine("objs[idptr.ToInt64()] = self;");
		}

		n.WriteLine("return 0;");

		WriteTryEnd(n);

		n.WriteLine("}");
		n.WriteLine("");
		n.WriteLine("");
		n.WriteLine("");

	}