Exemple #1
0
        private void AddBtn_Click(object sender, EventArgs e)
        {
            var sel         = Selected;
            int TTAIndex    = 0;
            int MaxTTAIndex = (ActiveTTAB.Interactions.Length == 0)?-1:ActiveTTAB.Interactions.Max(x => (int)x.TTAIndex);

            Content.Content.Get().Changes.BlockingResMod(new ResAction(() =>
            {
                while (Strings.Length <= MaxTTAIndex)
                {
                    Strings.InsertString(Strings.Length, new STRItem {
                        Value = "---"
                    });
                }
                TTAIndex = Strings.Length;
                Strings.InsertString(Strings.Length, new STRItem {
                    Value = "New Interaction"
                });
            }, Strings));

            Content.Content.Get().Changes.BlockingResMod(new ResAction(() =>
            {
                var action = new TTABInteraction()
                {
                    TTAIndex = (uint)TTAIndex, MotiveEntries = new TTABMotiveEntry[MotiveNames.Length]
                };
                ActiveTTAB.InsertInteraction(action,
                                             (sel == null)?ActiveTTAB.Interactions.Length:(Array.IndexOf(ActiveTTAB.Interactions, sel) + 1));
            }, ActiveTTAB));

            UpdateListing();
        }
Exemple #2
0
        public void UpdateSelection(int sel)
        {
            InternalChange = true;
            SelectedIndex  = sel;
            bool enabled = true;

            try
            {
                Selected = ActiveTTAB.InteractionByIndex[(uint)sel];
            }
            catch (Exception) {
                Selected = new TTABInteraction()
                {
                    TTAIndex = 0, MotiveEntries = new TTABMotiveEntry[MotiveNames.Length]
                };
                enabled = false;
                //disable everything and set Selected to a dummy.
            }

            AllowBox.Enabled     = enabled;
            ActionButton.Enabled = enabled;
            CheckButton.Enabled  = enabled;
            FlagsBox.Enabled     = enabled;
            MetaBox.Enabled      = enabled;
            MotiveBox.Enabled    = enabled;

            InteractionPathName.Text = GetTTA(Selected.TTAIndex);
            AutonomyInput.Value      = Selected.AutonomyThreshold;
            AttenuationCombo.Text    = Selected.AttenuationValue.ToString();
            JoinInput.Value          = Math.Max(-1, Selected.JoiningIndex);

            UpdateMotiveList();

            foreach (var checkAtt in FlagNames)
            {
                var check    = checkAtt.Key;
                var att      = checkAtt.Value;
                var property = Selected.GetType().GetProperty(att);
                check.Checked = (bool)property.GetValue(Selected, new object[0]);
            }

            if (InteractionList.Items.Count > 0)
            {
                var int1 = PieToInteraction.FirstOrDefault(x => x.Value == sel);
                PieView.SelectedNode = int1.Key;
                var int2 = -1;
                TTAToListIndex.TryGetValue(sel, out int2);
                if (int2 != -1 && !InteractionList.SelectedIndices.Contains(int2))
                {
                    InteractionList.SelectedIndices.Clear();
                    InteractionList.SelectedIndices.Add(int2);
                }
            }
            InternalChange = false;
            var oldInd = MotiveList.SelectedIndex;

            MotiveList.SelectedIndex = -1;
            MotiveList.SelectedIndex = oldInd;
        }