Ejemplo n.º 1
0
        /// <summary>
        /// 解析数据表。
        /// </summary>
        /// <param name="dataTable">数据表。</param>
        /// <param name="dataTableString">要解析的数据表字符串。</param>
        /// <param name="userData">用户自定义数据。</param>
        /// <returns>是否解析数据表成功。</returns>
        public override bool ParseData(DataTableProvider dataTable, string dataTableString, object userData)
        {
            try
            {
                int    position      = 0;
                string dataRowString = null;
                while ((dataRowString = dataTableString.ReadLine(ref position)) != null)
                {
                    if (dataRowString[0] == '#')
                    {
                        continue;
                    }

                    if (!dataTable.AddDataRow(dataRowString, userData))
                    {
                        Log.Warning("Can not parse data row string '{0}'.", dataRowString);
                        return(false);
                    }
                }

                return(true);
            }
            catch (Exception exception)
            {
                Log.Warning("Can not parse data table string with exception '{0}'.", exception.ToString());
                return(false);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 解析数据表。
        /// </summary>
        /// <param name="dataTable">数据表。</param>
        /// <param name="dataTableBytes">要解析的数据表二进制流。</param>
        /// <param name="startIndex">数据表二进制流的起始位置。</param>
        /// <param name="length">数据表二进制流的长度。</param>
        /// <param name="userData">用户自定义数据。</param>
        /// <returns>是否解析数据表成功。</returns>
        public override bool ParseData(DataTableProvider dataTable, byte[] dataTableBytes, int startIndex, int length, object userData)
        {
            try
            {
                using (MemoryStream memoryStream = new MemoryStream(dataTableBytes, startIndex, length, false))
                {
                    using (BinaryReader binaryReader = new BinaryReader(memoryStream, Encoding.UTF8))
                    {
                        while (binaryReader.BaseStream.Position < binaryReader.BaseStream.Length)
                        {
                            int dataRowBytesLength = binaryReader.ReadInt32();
                            if (!dataTable.AddDataRow(dataTableBytes, (int)binaryReader.BaseStream.Position, dataRowBytesLength, userData))
                            {
                                Log.Warning("Can not parse data row bytes.");
                                return(false);
                            }

                            binaryReader.BaseStream.Position += dataRowBytesLength;
                        }
                    }
                }

                return(true);
            }
            catch (Exception exception)
            {
                Log.Warning("Can not parse dictionary bytes with exception '{0}'.", exception.ToString());
                return(false);
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// 读取数据表。
 /// </summary>
 /// <param name="dataTable">数据表。</param>
 /// <param name="dataTableAssetName">数据表资源名称。</param>
 /// <param name="dataTableBytes">数据表二进制流。</param>
 /// <param name="startIndex">数据表二进制流的起始位置。</param>
 /// <param name="length">数据表二进制流的长度。</param>
 /// <param name="userData">用户自定义数据。</param>
 /// <returns>是否读取数据表成功。</returns>
 public override bool ReadData(DataTableProvider dataTable, string dataTableAssetName, byte[] dataTableBytes, int startIndex, int length, object userData)
 {
     if (dataTableAssetName.EndsWith(BytesAssetExtension, StringComparison.Ordinal))
     {
         return(dataTable.ParseData(dataTableBytes, startIndex, length, userData));
     }
     else
     {
         return(dataTable.ParseData(Utility.Converter.GetString(dataTableBytes, startIndex, length), userData));
     }
 }
		private void Dispose(bool disposing)
		{
			if (IsDisposed)
			{
				return;
			}

			if (disposing)
			{
				_provider = null;
			}
		}
Ejemplo n.º 5
0
        /// <summary>
        /// 加载数据表
        /// </summary>
        /// <param name="dataTableName">数据表</param>
        private async CFVoid LoadDataTable(string dataTableName)
        {
            DataTableProvider dataTableBase = CentorPivot.This.GetComponent <DataTableComponent>().CreateDataTable(dataTableName);

            bool status = await dataTableBase.ReadDataAsync(GlobalPath.Hoftix.GetDataTableResources(dataTableBase.Name), ConstData.Priority.DataTable, AssetCategory.DataTable, null);

            if (status)
            {
                m_CurrPreloadCount += 1;
                Log.Info("Load data table '{0}' OK.", dataTableBase.Name, LogCategory.Resource);
            }
            else
            {
                Log.Error("Can not load data table '{0}' error .", dataTableBase.Name, LogCategory.Resource);
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 读取数据表。
        /// </summary>
        /// <param name="dataTable">数据表。</param>
        /// <param name="dataTableAssetName">数据表资源名称。</param>
        /// <param name="dataTableAsset">数据表资源。</param>
        /// <param name="userData">用户自定义数据。</param>
        /// <returns>是否读取数据表成功。</returns>
        public override bool ReadData(DataTableProvider dataTable, string dataTableAssetName, object dataTableAsset, object userData)
        {
            TextAsset dataTableTextAsset = dataTableAsset as TextAsset;

            if (dataTableTextAsset != null)
            {
                if (dataTableAssetName.EndsWith(BytesAssetExtension, StringComparison.Ordinal))
                {
                    return(dataTable.ParseData(dataTableTextAsset.bytes, userData));
                }
                else
                {
                    return(dataTable.ParseData(dataTableTextAsset.text, userData));
                }
            }

            Log.Warning("Data table asset '{0}' is invalid.", dataTableAssetName);
            return(false);
        }
Ejemplo n.º 7
0
 private void DrawDataTable(DataTableProvider dataTable)
 {
     EditorGUILayout.LabelField(dataTable.FullName, Utility.Text.Format("{0} Rows", dataTable.Count.ToString()));
 }
		internal DataTableFeatureDataReader(DataTableProvider provider, BoundingBox bounds)
		{
			_provider = provider;
			_bounds = bounds;
		}
Ejemplo n.º 9
0
 /// <summary>
 /// 释放数据表资源。
 /// </summary>
 /// <param name="dataTable">数据表。</param>
 /// <param name="dataTableAsset">要释放的数据表资源。</param>
 public override void ReleaseDataAsset(DataTableProvider dataTable, object dataTableAsset)
 {
     CentorPivot.This.GetComponent <ResourceComponent>()?.UnloadAsset(dataTableAsset, AssetCategory.DataTable);
 }
Ejemplo n.º 10
0
        private async void OnStartPreloadCallBack(TimeAction timeAction)
        {
            DataTableProvider dataTableBase = (DataTableProvider)CentorPivot.This.GetComponent <DataTableComponent>().ICreateDataTable <DRDataTable>("DataTable");

            bool status = await dataTableBase.ReadDataAsync(GlobalPath.Hoftix.GetDataTableResources(dataTableBase.Name), ConstData.Priority.DataTable, AssetCategory.DataTable, null);

            if (status)
            {
                //1、获取要加载的表格
                AwaitGetDataTableInfo();
            }

            //2、获取要加载的热更CODE
            AwaitGetHotfixCode();

            //3、获取要加载的多语言字典信息
            AwaitGetDict();

            //4、获取要加载的shader信息
            AwaitGetShader();

            //5、获取要加载的fui信息
            AwaitGetFUIPackage();

            //当前+阶后的 预设进度值(计算值)
            timeAction.CFParams.FloatParam1 = 0f;
            //当前下载进度(计算值)
            timeAction.CFParams.FloatParam2 = 0f;
            //当前下载进度(UI)
            timeAction.CFParams.FloatParam3 = 0f;
            //初始的读条自增值(计算值)
            timeAction.CFParams.FloatParam5 = 0.01f;

            bool needUpdateResources = ProcedureComponent.This.GetProcedure <ProcedureResource>().OnOuterApi_11();

            L0_Text.This.m_MCycle_LoadRes.visible = true;

            //如果需要更新 则打开进度条弹窗
            if (needUpdateResources)
            {
                //资源更新完毕,正在校验资源…
                L0_Text.This.m_Text_Mseg
                .SetGTextByCode("Text_Mseg_007");

                //客户端资源更新完毕,正在校验资源
                L1_Loading.This.m_Text_ParDesc
                .SetGTextByCode("Text_ParDesc_002");

                L1_Loading.This
                .m_LoginPBar.value = 0;

                //selectedIndex = 2 进度条加载
                Block_Layout.This.m_Ctrl_Layout.selectedIndex = 1;
            }
            else
            {
                //信息获取完毕,正在校验资源...
                L0_Text.This.m_Text_Mseg
                .SetGTextByCode("Text_Mseg_006");

                L1_Loading.This
                .m_LoginPBar.value = 0;

                //selectedIndex = 0 默认
                Block_Layout.This.m_Ctrl_Layout.selectedIndex = 0;
            }
        }
Ejemplo n.º 11
0
        public FormListView(Control parentCntrl)
        {
            this._name          = "";
            this._visible       = true;
            this._enabled       = true;
            this._title         = "";
            this._parent        = null;
            this._parentControl = parentCntrl;

            this._methodName = "";
            this._thisScript = null;

            this._methodNameDblClick = "";
            this._scriptDblClick     = null;

            this._methodOnChoice = "";
            this._scriptOnChoice = null;

            this._methodOnKeyDown = "";
            this._scriptOnKeyDown = null;


            _bindingSource = new BindingSource();
            _dataTable     = new DataTableProvider();
            _item          = new ListView();
            _viewStyle     = new FormListViewView();

            ((ListView)_item).View = (View)1;

            //# Создаем контейнер для элемента формы
            _panelMainContainer    = new Panel();
            _panelTitleContainer   = new Panel();
            _panelControlContainer = new Panel();

            _panelMainContainer.Controls.Add(_panelControlContainer);
            _panelMainContainer.Controls.Add(_panelTitleContainer);

            _panelMainContainer.Dock         = DockStyle.Top;
            _panelMainContainer.MinimumSize  = new Size(150, 22);
            _panelMainContainer.AutoSize     = true;
            _panelMainContainer.AutoSizeMode = AutoSizeMode.GrowAndShrink;

            _panelTitleContainer.Dock         = DockStyle.Left;
            _panelTitleContainer.MinimumSize  = new Size(50, 21);
            _panelTitleContainer.AutoSize     = true;
            _panelTitleContainer.AutoSizeMode = AutoSizeMode.GrowAndShrink;
            _label = new Label();
            _panelTitleContainer.Controls.Add(_label);
            _label.AutoSize = true;
            _label.Dock     = DockStyle.Fill;


            //# Установка параметров панели для поля с данными
            _panelControlContainer.Dock         = DockStyle.Fill;
            _panelControlContainer.MinimumSize  = new Size(100, 21);
            _panelControlContainer.AutoSize     = true;
            _panelControlContainer.AutoSizeMode = AutoSizeMode.GrowAndShrink;

            this._parentControl.Controls.Add(_panelMainContainer);
            _panelMainContainer.BringToFront();

            this.createFormFieldByType();

            _columnWithImageIndex = 0;
            _smallImages          = new FormListViewImagePack();
            _largeImages          = new FormListViewImagePack();

            ((ListView)_item).SmallImageList = _smallImages.list();

            ((ListView)_item).StateImageList = _smallImages.list();

            ((ListView)_item).LargeImageList = _largeImages.list();
        }