示例#1
0
        protected void UpdateCandinates()
        {
            bool bShouldResetNull = true;

            if (arguments != null)
            {
                // try auto complete arguments
                int Index = arguments.Length - 1;

                var ArgumentTypes = CurrentCommand.argumentsTypes;

                if (ArgumentTypes != null && Index < ArgumentTypes.Length)
                {
                    var ArgumentType = ArgumentTypes[Index];

                    IArgumentDescription ArgDescInterface = ArgumentDescriptionRepository.instance.GetDescription(ArgumentType.argumentType);

                    DebugHelper.Assert(ArgDescInterface != null);

                    List <String> Results = ArgDescInterface.FilteredCandinates(ArgumentType.argumentType, arguments[Index]);

                    ResetCandinates(Results);

                    bShouldResetNull = false;
                }
            }

            if (bShouldResetNull)
            {
                CandinatesList.Reset(null);
            }
        }
示例#2
0
        public override void OnGUI()
        {
            if (CandinatesList != null)
            {
                UpdateCandinates();

                var LastRect = GUILayoutUtility.GetLastRect();
                CandinatesList.OnGUI(LastRect);
            }

            CheckCandinateState();
        }
示例#3
0
        public override void OnGUI()
        {
            if (!CheckCandinateState(CurrentCommand))
            {
                return;
            }

            DebugHelper.Assert(CurrentCommand != null);

            UpdateCandinates();

            CandinatesList.OnGUI(GUILayoutUtility.GetLastRect());
        }
示例#4
0
        protected void ResetCandinates(List <string> InValues)
        {
            if (InValues != null && InValues.Count > 0)
            {
                DebugHelper.Assert(arguments.Length > 0);

                // string ArgInput = arguments[arguments.Length - 1];

                List <IListItem> Items = new List <IListItem>(InValues.Count);

                for (int i = 0; i < InValues.Count; ++i)
                {
                    Items.Add(new StringItem(InValues[i]));
                }

                CandinatesList.Reset(Items);
            }
            else
            {
                CandinatesList.Reset(null);
            }
        }
示例#5
0
        public void UpdateCandinates()
        {
            var InputText = inputText;

            string[] SplitedParts = LinqS.Where(InputText.Split(' '), x => !string.IsNullOrEmpty(x.Trim()));

            List <IListItem> Candinates = new List <IListItem>();

            if (SplitedParts == null || SplitedParts.Length <= 0)
            {
                // no any valid input.
                var GeneralRepositories = CheatCommandsRepository.instance.generalRepositories;

                var Iter = GeneralRepositories.Commands.GetEnumerator();

                while (Iter.MoveNext())
                {
                    Candinates.Add(new CheatCommandItem(Iter.Current.Value));
                }

                CandinatesList.Reset(Candinates);
            }
            else
            {
                var BaseCommand = SplitedParts[0];

                var FilteredCommands = CheatCommandsRepository.instance.FilterByString(BaseCommand);

                for (int i = 0; i < FilteredCommands.Count; ++i)
                {
                    Candinates.Add(new CheatCommandItem(FilteredCommands[i]));
                }

                CandinatesList.Reset(Candinates);
            }
        }