示例#1
0
    private bool CheckModifiValueCallBack(object t)
    {
        if (t is TableConfigFieldInfo)
        {
            TableConfigFieldInfo info = (TableConfigFieldInfo)t;

            if (string.IsNullOrEmpty(info.fieldName))
            {
                return(false);
            }

            if (CheckIsNameRepeat(info))
            {
                return(false);
            }

            string df = DataConfigUtils.ObjectValue2TableString(info.defultValue);
            if (string.IsNullOrEmpty(df))
            {
                return(false);
            }
        }

        return(true);
    }
示例#2
0
    /// <summary>
    /// 修改格子数据完成回调
    /// </summary>
    /// <param name="t"></param>
    private void ModificationCompleteCallBack(object t)
    {
        if (t is TableConfigFieldInfo)
        {
            TableConfigFieldInfo temp = (TableConfigFieldInfo)t;

            string field = m_currentData.TableKeys[modifiIndex.y];
            if (field != temp.fieldName)
            {
                RenameField(m_currentData, field, temp.fieldName);
                field = temp.fieldName;
            }
            // SingleData data = m_currentData[m_currentData.TableIDs[modifiIndex.y]];
            m_currentData.m_defaultValue[field] = DataConfigUtils.ObjectValue2TableString(temp.defultValue);

            if (m_currentData.m_noteValue.ContainsKey(field))
            {
                m_currentData.m_noteValue[field] = temp.description;
            }
            else
            {
                if (!string.IsNullOrEmpty(temp.description))
                {
                    m_currentData.m_noteValue.Add(field, temp.description);
                }
            }

            if (m_currentData.m_tableTypes[field] != temp.fieldValueType)
            {
                m_currentData.m_tableTypes[field] = temp.fieldValueType;
                ResetDataField(m_currentData, field, temp.fieldValueType, temp.enumType, temp.defultValue);
            }
            if (temp.fieldValueType == FieldType.Enum)
            {
                if (m_currentData.m_tableEnumTypes.ContainsKey(field))
                {
                    m_currentData.m_tableEnumTypes[field] = temp.enumType;
                }

                else
                {
                    m_currentData.m_tableEnumTypes.Add(field, temp.enumType);
                }
            }
            m_currentData.m_fieldAssetTypes[field] = temp.fieldAssetType;
        }
        else
        {
            string     field = m_currentData.TableKeys[modifiIndex.y];
            SingleData data  = m_currentData[m_currentData.TableIDs[modifiIndex.x - 1]];
            data[field] = DataConfigUtils.ObjectValue2TableString(t);
        }
    }
示例#3
0
    private string GetDefaultValue(FieldType fieldValueType, string enumType, string field)
    {
        string defaultValue;

        if (!m_currentData.m_defaultValue.TryGetValue(field, out defaultValue))
        {
            Type   t   = DataConfigUtils.ConfigFieldValueType2Type(fieldValueType, enumType);
            object obj = ReflectionUtils.CreateDefultInstance(t);
            defaultValue = DataConfigUtils.ObjectValue2TableString(obj);
            m_currentData.m_defaultValue.Add(field, defaultValue);
        }

        return(defaultValue);
    }
示例#4
0
    /// <summary>
    /// 添加字段
    /// </summary>
    /// <param name="info"></param>
    private static void AddField(DataTable table, TableConfigFieldInfo info)
    {
        table.TableKeys.Add(info.fieldName);
        table.m_noteValue.Add(info.fieldName, info.description);
        table.m_tableTypes.Add(info.fieldName, info.fieldValueType);
        table.m_fieldAssetTypes.Add(info.fieldName, info.fieldAssetType);
        if (info.fieldValueType == FieldType.Enum)
        {
            table.m_tableEnumTypes.Add(info.fieldName, info.enumType);
        }
        table.m_defaultValue.Add(info.fieldName, DataConfigUtils.ObjectValue2TableString(info.defultValue));

        foreach (var item in table.Values)
        {
            item.Add(info.fieldName, DataConfigUtils.ObjectValue2TableString(info.defultValue));
        }
    }
示例#5
0
    /// <summary>
    /// 添加一个字段
    /// </summary>
    private void Add2FieldGUI()
    {
        GeneralDataModificationWindow.OpenWindow(this, "添加字段", new TableConfigFieldInfo(), (value) =>
        {
            TableConfigFieldInfo info = (TableConfigFieldInfo)value;
            DrawTableConfigFieldInfo(info);

            if (string.IsNullOrEmpty(info.fieldName))
            {
                EditorGUILayout.HelpBox("字段名不能为空!!", MessageType.Error);
            }
            else if (m_currentData.TableKeys.Contains(info.fieldName))
            {
                EditorGUILayout.HelpBox("字段名重复!!", MessageType.Error);
            }
            string df = DataConfigUtils.ObjectValue2TableString(info.defultValue);
            if (string.IsNullOrEmpty(df))
            {
                EditorGUILayout.HelpBox("默认值不能为空!!", MessageType.Error);
            }
            return(value);
        },
                                                 (value) =>
        {
            TableConfigFieldInfo info = (TableConfigFieldInfo)value;
            if (string.IsNullOrEmpty(info.fieldName) || m_currentData.TableKeys.Contains(info.fieldName))
            {
                return(false);
            }
            string df = DataConfigUtils.ObjectValue2TableString(info.defultValue);
            if (string.IsNullOrEmpty(df))
            {
                return(false);
            }
            return(true);
        },
                                                 (value) =>
        {
            TableConfigFieldInfo info = (TableConfigFieldInfo)value;
            AddField(m_currentData, info);
            withItemList.Add(wWith);
        });
    }
示例#6
0
    static void ResetDataField(DataTable data, string key, FieldType type, string enumType, object defaultValue)
    {
        string newContent = DataConfigUtils.ObjectValue2TableString(defaultValue);

        for (int i = 0; i < data.TableIDs.Count; i++)
        {
            SingleData tmp = data[data.TableIDs[i]];

            if (tmp.ContainsKey(key))
            {
                tmp[key] = newContent;
            }
        }

        if (data.m_defaultValue.ContainsKey(key))
        {
            data.m_defaultValue[key] = newContent;
        }
        else
        {
            data.m_defaultValue.Add(key, newContent);
        }
    }
示例#7
0
    /// <summary>
    /// 绘制数据修改窗口
    /// </summary>
    /// <param name="t"></param>
    /// <returns></returns>
    private object DrawModifiValueGUI(object t)
    {
        if (t is TableConfigFieldInfo)
        {
            TableConfigFieldInfo info = (TableConfigFieldInfo)t;
            DrawTableConfigFieldInfo(info);
            string df = DataConfigUtils.ObjectValue2TableString(info.defultValue);
            if (string.IsNullOrEmpty(df))
            {
                EditorGUILayout.HelpBox("默认值不能为空!!", MessageType.Error);
            }
            if (CheckIsNameRepeat(info))
            {
                EditorGUILayout.HelpBox("字段名不能重复!!", MessageType.Error);
            }
        }
        else
        {
            string     field = m_currentData.TableKeys[modifiIndex.y];
            SingleData data  = m_currentData[m_currentData.TableIDs[modifiIndex.x - 1]];

            EditorDrawGUIUtil.CanEdit = false;
            field = EditorDrawGUIUtil.DrawBaseValue("字段名", field).ToString();
            EditorDrawGUIUtil.CanEdit = true;
            GUILayout.Space(7);

            string description = GetDescription(field);
            GUILayout.Label("字段描述:" + description);

            FieldType fieldValueType = GetFieldType(modifiIndex.y, field);
            string    enumType       = GetEnumType(fieldValueType, field);

            string             defaultValue   = GetDefaultValue(fieldValueType, enumType, field);
            DataFieldAssetType fieldAssetType = GetDataFieldAssetType(field);
            GUILayout.BeginHorizontal();

            GUILayout.Label("默认值 :" + defaultValue);
            GUILayout.FlexibleSpace();

            if (GUILayout.Button("默认值", GUILayout.Width(60)))
            {
                t = DataConfigUtils.TableString2ObjectValue(defaultValue, fieldValueType, enumType);
            }
            GUILayout.EndHorizontal();

            string text = "值";
            if (fieldAssetType == DataFieldAssetType.LocalizedLanguage)
            {
                t = DrawLocalizedLanguageField(text, t);
            }
            else if (fieldAssetType == DataFieldAssetType.Prefab)
            {
                t = DrawPrefabGUI(text, t);
            }
            else if (fieldAssetType == DataFieldAssetType.Texture)
            {
                t = DrawTextureGUI(text, t);
            }
            else if (fieldAssetType == DataFieldAssetType.TableKey)
            {
                t = DrawTableGUI(text, t);
            }
            else
            {
                t = EditorDrawGUIUtil.DrawBaseValue(text, t);
            }
        }

        return(t);
    }