Esempio n. 1
0
        protected override void Collect()
        {
            if (vmData != null)
            {
                IEnumerable <string> keys = vmData.GetKeys <string>();
                foreach (string k in keys)
                {
                    LuaTable data = vmData.Get <LuaTable>(k);
                    this.AddData(k, XLuaData.GenerateDataWithLuaTable(data));
                }
            }

            if (vmCommand != null)
            {
                IEnumerable <string> keys = vmCommand.GetKeys <string>();
                foreach (string k in keys)
                {
                    LuaTable command = vmCommand.Get <LuaTable>(k);
                    this.AddCommand(k, XLuaCommand.GenerateCommandWithLuaTable(vmTable, command));
                }
            }

            if (this.BindRoot == null)
            {
                this.BindRoot = this.gameObject;
            }
            this.BindRoot.GetComponentsInChildren <AbstractDataBinder>(true, allDataBinders);
            this.BindRoot.GetComponentsInChildren <AbstractCommandBinder>(true, allCommandBinders);
        }
Esempio n. 2
0
        public static StructData GenerateVMData(LuaTable luaData)
        {
            LuaTable   strct     = luaData.Get <LuaTable>("__vm_value");
            StructData strctData = new StructData();

            strct.ForEach <string, LuaTable>(delegate(string key, LuaTable el)
            {
                strctData.AddField(key, XLuaData.GenerateDataWithLuaTable(el));
            });
            return(strctData);
        }
        public static IListData GenerateVMData(LuaTable luaData)
        {
            LuaTable  listLua  = luaData.Get <LuaTable>("__vm_value");
            LuaTable  first    = listLua.Get <int, LuaTable>(1);
            IListData listData = CreateListDataInstanceWithItemLuaTable(first);

            listData.DisableValueChangeHandler = true;
            listLua.ForEach <int, LuaTable>(delegate(int index, LuaTable item)
            {
                listData.Add(XLuaData.GenerateDataWithLuaTable(item));
            });
            listData.DisableValueChangeHandler = false;
            listData.InvokeValueChanged();

            luaData.Set <string, Action <LuaTable> >("__vm_list_add", delegate(LuaTable item) {
                listData.AddItem(XLuaData.GenerateDataWithLuaTable(item));
            });

            luaData.Set <string, Action <int, LuaTable> >("__vm_list_insert", delegate(int index, LuaTable item) {
                listData.InsertItem(index - 1, XLuaData.GenerateDataWithLuaTable(item));
            });

            luaData.Set <string, Action>("__vm_list_pop", delegate() {
                listData.RemoveAt(listData.Count - 1);
            });

            luaData.Set <string, Action <int> >("__vm_list_remove", delegate(int index) {
                listData.RemoveAt(index - 1);
            });

            luaData.Set <string, Action>("__vm_list_reorder", delegate() {
                listData.DisableValueChangeHandler = true;
                LuaTable newListLua = luaData.Get <LuaTable>("__vm_value");
                listData.Clear();
                newListLua.ForEach <int, LuaTable>(delegate(int index, LuaTable item)
                {
                    listData.Add(XLuaData.GenerateDataWithLuaTable(item));
                });
                listData.DisableValueChangeHandler = false;
                listData.InvokeValueChanged();
            });

            return(listData);
        }