private void CreateEditorControls(MudData.FormulaAction containerAction, string archetypeName)
        {
            ContainerPanel.Controls.Clear();

            Control ctl = null;
            MudData.FormulaAction action = containerAction.InternalAction;
            if (action == null)
                action = containerAction;

            if (action.GetType() == typeof(MudData.FormulaActionAddToList))
            {
                ctl = new ScriptActionControlAddToList(action as MudData.FormulaActionAddToList);
            }
            else if (action.GetType() == typeof(MudData.FormulaActionCreateListMember))
            {
                ctl = new ScriptActionControlCreateListMember(action as MudData.FormulaActionCreateListMember);
            }
            else if (action.GetType() == typeof(MudData.FormulaActionForEach))
            {
                ctl = new ScriptActionControlForEach(action as MudData.FormulaActionForEach, archetypeName);
            }
            else if (action.GetType() == typeof(MudData.FormulaActionIf))
            {
                ctl = new ScriptActionControlIf(action as MudData.FormulaActionIf, archetypeName);
            }
            else if (action.GetType() == typeof(MudData.FormulaActionListTransfer))
            {
                ctl = new ScriptActionControlListTransfer(action as MudData.FormulaActionListTransfer);
            }
            else if (action.GetType() == typeof(MudData.FormulaActionListRemove))
            {
                ctl = new ScriptActionControlListRemove(action as MudData.FormulaActionListRemove);
            }
            else if (action.GetType() == typeof(MudData.FormulaActionRepeatEvent))
            {
                ctl = new ScriptActionControlRepeatEvent(action as MudData.FormulaActionRepeatEvent);
            }
            else if (action.GetType() == typeof(MudData.FormulaActionSetGoalState))
            {
                ctl = new ScriptActionControlSetGoalState(action as MudData.FormulaActionSetGoalState, archetypeName);
            }
            else if (action.GetType() == typeof(MudData.FormulaActionSetProperty))
            {
                ctl = new ScriptActionControlSetProperty(action as MudData.FormulaActionSetProperty);
            }
            else if (action.GetType() == typeof(MudData.FormulaActionTriggerEvent))
            {
                ctl = new ScriptActionControlTriggerEvent(action as MudData.FormulaActionTriggerEvent);
            }

            if (ctl != null)
            {
                ContainerPanel.Controls.Add(ctl);
                ctl.Dock = DockStyle.Fill;
            }
            else
            {
                MessageBox.Show("Missing support for actions of this type: " + action.GetType().ToString(), "FormulaEdit", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        internal ScriptActionControlAddToList(MudData.FormulaActionAddToList action)
        {
            InitializeComponent();

            TargetComboBox.Text = action.target;
            ListComboBox.Text = action.list;
            HostComboBox.Text = action.@object;
        }
        internal ScriptActionControlSetProperty(MudData.FormulaActionSetProperty action)
        {
            InitializeComponent();

            PropertyComboBox.Text = action.property;
            FormulaTextBox.Text = action.value;
            ObjectComboBox.Text = action.target;
        }
        internal ScriptActionControlListTransfer(MudData.FormulaActionListTransfer action)
        {
            InitializeComponent();

            ScriptableComboBox.Text = action.scriptable;
            OriginListComboBox.Text = action.list;
            TargetComboBox.Text = action.target;
            TargetListComboBox.Text = action.targetList;
            FilterConditionTextBox.Text = action.condition;
        }
Пример #5
0
        internal ScriptActionControlIf(MudData.FormulaActionIf action, string archetypeName)
        {
            InitializeComponent();

            EditingArchetypeName = archetypeName;

            ConditionTextBox.Text = action.condition;

            ScriptActionEditControl.PopulatePanel(action.actions, ActionsFlowPanel, EditingArchetypeName);
            ScriptActionEditControl.PopulatePanel(action.@else, ElseActionsFlowPanel, EditingArchetypeName);
        }
        internal ScriptActionEditControl(MudData.FormulaAction containerAction, string archetypeName)
        {
            InitializeComponent();

            EditingArchetypeName = archetypeName;

            ActionComboBox.SelectedItem = containerAction.action;
            CreateEditorControls(containerAction, archetypeName);

            Paint += ScriptActionEditControl_Paint;
        }
        internal ScriptActionControlRepeatEvent(MudData.FormulaActionRepeatEvent action)
        {
            InitializeComponent();

            EventComboBox.Text = action.@event;
            RepeatCountTextBox.Text = action.count;

            foreach (var kvp in action.@params)
            {
                ParamDataGridView.Rows.Add(new object[] { kvp.Key, kvp.Value });
            }
        }
        internal ScriptActionControlCreateListMember(MudData.FormulaActionCreateListMember action)
        {
            InitializeComponent();

            ListComboBox.Text = action.list;
            ArchetypeComboBox.Text = action.archetype;

            foreach (var kvp in action.@params)
            {
                ParamDataGridView.Rows.Add(new object[] { kvp.Key, kvp.Value });
            }
        }
        internal ScriptActionControlSetGoalState(MudData.FormulaActionSetGoalState action, string archetypeName)
        {
            InitializeComponent();

            BindingComboBox.TextChanged += (ctl, args) =>
            {
                Utilities.PopulateHints(PropertyComboBox, MudData.GenerateHintsForGoalStates(BindingComboBox.Text));
            };

            BindingComboBox.Text = action.binding;
            PropertyComboBox.Text = action.property;
            ValueTextBox.Text = action.value;

            Utilities.PopulateHints(BindingComboBox, MudData.GenerateHintsForBindings(archetypeName));
        }
        internal ScriptActionControlSetGoalState(MudData.FormulaActionSetGoalState action, string archetypeName)
        {
            InitializeComponent();

            BindingComboBox.TextChanged += (ctl, args) =>
            {
                Utilities.PopulateHints(PropertyComboBox, MudData.GenerateHintsForGoalStates(BindingComboBox.Text));
            };


            BindingComboBox.Text  = action.binding;
            PropertyComboBox.Text = action.property;
            ValueTextBox.Text     = action.value;

            Utilities.PopulateHints(BindingComboBox, MudData.GenerateHintsForBindings(archetypeName));
        }
Пример #11
0
        private void RefreshUserPropertiesTab(MudData.Archetype userArchetype)
        {
            UserPropertiesListBox.Items.Clear();

            if (userArchetype.properties == null)
            {
                SetEnabledControlsUserPropertiesTab(false);
                return;
            }

            foreach (var prop in userArchetype.properties)
            {
                UserPropertiesListBox.Items.Add(prop.Key);
            }

            UserPropertiesListBox_SelectedIndexChanged(null, null);
        }
Пример #12
0
        private void RefreshUserListsTab(MudData.Archetype userArchetype)
        {
            UserListsListBox.Items.Clear();

            foreach (var list in userArchetype.lists)
            {
                UserListsListBox.Items.Add(list);
            }

            UserListsListBox_SelectedIndexChanged(null, null);
        }
Пример #13
0
        private void RefreshUserEventsTab(MudData.Archetype userArchetype)
        {
            UserEventsListBox.Items.Clear();

            if (userArchetype.events == null)
                return;

            foreach (var e in userArchetype.events)
            {
                UserEventsListBox.Items.Add(e);
            }

            UserEventsListBox_SelectedIndexChanged(null, null);
        }
Пример #14
0
 private void RefreshUserBindingsTab(MudData.Archetype userArchetype)
 {
     UserBindingsTextBox.Text = string.Join("\r\n", userArchetype.bindings);
     UnhighlightCommitButton(UserBindingsApplyButton);
 }