Beispiel #1
0
            public void Rebuild(AnimationTreeParameter[] source)
            {
                for (int i = 0; i < _Params.Length; i++)
                {
                    string parameter = GetParameter(i);
                    _Params[i].Options.Clear();
                    int value = 0;
                    Skill.Editor.UI.PopupOption selectedOP = null;

                    if (source != null)
                    {
                        foreach (var p in source)
                        {
                            if (p.Type == _ParamType)
                            {
                                Skill.Editor.UI.PopupOption op = new UI.PopupOption(value++, p.Name);
                                this._Params[i].Options.Add(op);
                                if (p.Name == parameter)
                                {
                                    selectedOP = op;
                                }
                            }
                        }
                    }
                    this._Params[i].SelectedOption = selectedOP;
                }
            }
            private void RefreshAccessClasses()
            {
                AccessLimitDecoratorData data = (AccessLimitDecoratorData)_ALItem.Data;

                _AccessClassField.Options.Clear();
                _AccessClassField.SelectedIndex = -1;

                if (_ALItem.Editor.Asset.SharedKeys != null)
                {
                    int selectedIndex = -1;
                    for (int i = 0; i < _ALItem.Editor.Asset.SharedKeys.Length; i++)
                    {
                        var sk = _ALItem.Editor.Asset.SharedKeys[i];
                        if (sk != null)
                        {
                            Skill.Editor.UI.PopupOption op = new UI.PopupOption(i, sk.name);
                            _AccessClassField.Options.Add(op);
                            if (sk.name == data.ClassName)
                            {
                                selectedIndex = i;
                            }
                        }
                    }
                    _AccessClassField.SelectedIndex = selectedIndex;
                }
                else
                {
                    data.ClassName = string.Empty;
                }
                RefreshAccessKeys();
            }
            private void RefreshAccessKeys()
            {
                AccessLimitDecoratorData data = (AccessLimitDecoratorData)_ALItem.Data;

                _AccessKeyField.Options.Clear();
                _AccessKeyField.SelectedIndex = -1;

                if (!string.IsNullOrEmpty(data.ClassName) && _AccessClassField.SelectedOption != null)
                {
                    SharedAccessKeysAsset asset = null;
                    foreach (var item in _ALItem.Editor.Asset.SharedKeys)
                    {
                        if (item.name == data.ClassName)
                        {
                            asset = item;
                        }
                    }

                    if (asset != null)
                    {
                        int selectedIndex = -1;
                        var keys          = asset.Load().Keys;
                        for (int i = 0; i < keys.Length; i++)
                        {
                            Skill.Editor.UI.PopupOption op = new UI.PopupOption((int)keys[i].Type, keys[i].Key);
                            _AccessKeyField.Options.Add(op);
                            if (keys[i].Key == data.AccessKey)
                            {
                                selectedIndex = i;
                            }
                        }
                        _AccessKeyField.SelectedIndex = selectedIndex;
                    }
                    else
                    {
                        data.AccessKey = string.Empty;
                    }
                }
                else
                {
                    data.AccessKey = string.Empty;
                }
            }