Exemple #1
0
        private WorldStateItem CreateGoalPartItem(WorldStateDescription _goalpart)
        {
            WorldStateItem goalPartItem = new WorldStateItem(_goalpart);

            goalPartItem.OnMouseDown += _item =>
            {
                if (m_SelectedWorkingMemoryUtilityItem != null)
                {
                    UpdateSelectedUtilityItem(null);
                }

                PuppeteerEditorHelper.UpdateSelectedWorldStateItem(ref m_SelectedGoalPartItem, _item);
            };
            goalPartItem.OnDelete += _item =>
            {
                PuppeteerEditorHelper.DeleteWorldStateItem(this, m_SelectedListItem as GoalListItem,
                                                           ref (m_SelectedListItem as GoalListItem).GetDescription().GoalParts, _item, SelectNeighbourGoalPartItemIfNeeded);
            };

            goalPartItem.OnDuplicate    += _item => AddNewGoalPartItem(new WorldStateDescription(_item.GetWorldStateDescription()));
            goalPartItem.OnValueChanged += _item =>
            {
                m_SelectedListItem.MarkUnsavedChanges(true);
                AddUnsavedMarker();
            };

            m_GoalConfigurator.GoalPartsContainer.Add(goalPartItem);

            return(goalPartItem);
        }
Exemple #2
0
 public override void DeleteSelection()
 {
     if (m_SelectedGoalPartItem != null)
     {
         PuppeteerEditorHelper.DeleteWorldStateItem(this, m_SelectedListItem as GoalListItem,
                                                    ref (m_SelectedListItem as GoalListItem).GetDescription().GoalParts, m_SelectedGoalPartItem, SelectNeighbourGoalPartItemIfNeeded);
     }
     else if (m_SelectedWorkingMemoryUtilityItem != null)
     {
         DeleteUtilityItem(m_SelectedWorkingMemoryUtilityItem);
     }
     else
     {
         base.DeleteSelection();
     }
 }
Exemple #3
0
        protected override void UpdateConfigurator()
        {
            if (m_SelectedListItem is ActionListItem selectedActionListItem)
            {
                EnableRightPanelContent();
                LazyInitConfigurator();

                ActionDescription selectedDescription = selectedActionListItem.GetDescription();

                m_ActionConfigurator.DisplayName.value = selectedDescription.DisplayName;
                m_ActionConfigurator.GUIDLabel.text    = selectedDescription.GUID.ToString();
                m_ActionConfigurator.BaseUtility.value = selectedDescription.BaseUtility;

                if (selectedDescription.ExecutableActionType != null)
                {
                    m_ActionConfigurator.ActionField.SetValueWithoutNotify(selectedDescription.ExecutableActionType);
                }

                m_ActionConfigurator.PreconditionsContainer.Clear();
                for (int i = 0; i < selectedDescription.Preconditions.Length; ++i)
                {
                    WorldStateItem worldStateItem = CreateWorldStateItem(selectedDescription.Preconditions[i]);
                    worldStateItem.OnDelete += _item =>
                    {
                        PuppeteerEditorHelper.DeleteWorldStateItem(this, m_SelectedListItem as ActionListItem,
                                                                   ref (m_SelectedListItem as ActionListItem).GetDescription().Preconditions, _item, null);
                    };

                    m_ActionConfigurator.PreconditionsContainer.Add(worldStateItem);
                }

                m_ActionConfigurator.EffectsContainer.Clear();
                for (int i = 0; i < selectedDescription.Effects.Length; ++i)
                {
                    WorldStateItem worldStateItem = CreateWorldStateItem(selectedDescription.Effects[i]);
                    worldStateItem.OnDelete += _item =>
                    {
                        PuppeteerEditorHelper.DeleteWorldStateItem(this, m_SelectedListItem as ActionListItem,
                                                                   ref (m_SelectedListItem as ActionListItem).GetDescription().Effects, _item, null);
                    };

                    m_ActionConfigurator.EffectsContainer.Add(worldStateItem);
                }
            }
        }
Exemple #4
0
        private void AddNewWorldStateItem(VisualElement _targetContainer, WorldStateDescription _worldStateDescription)
        {
            if (m_SelectedListItem is ActionListItem selectedActionListItem)
            {
                ActionDescription selectedDescription = selectedActionListItem.GetDescription();

                WorldStateItem worldStateItem;

                if (_targetContainer == m_ActionConfigurator.EffectsContainer)
                {
                    int newIndex = PuppeteerEditorHelper.Append(ref selectedDescription.Effects, _worldStateDescription);
                    worldStateItem           = CreateWorldStateItem(selectedDescription.Effects[newIndex]);
                    worldStateItem.OnDelete += _item =>
                    {
                        PuppeteerEditorHelper.DeleteWorldStateItem(this, m_SelectedListItem as ActionListItem,
                                                                   ref (m_SelectedListItem as ActionListItem).GetDescription().Effects, _item, null);
                    };
                }
                else
                {
                    int newIndex = PuppeteerEditorHelper.Append(ref selectedDescription.Preconditions, _worldStateDescription);
                    worldStateItem           = CreateWorldStateItem(selectedDescription.Preconditions[newIndex]);
                    worldStateItem.OnDelete += _item =>
                    {
                        PuppeteerEditorHelper.DeleteWorldStateItem(this, m_SelectedListItem as ActionListItem,
                                                                   ref (m_SelectedListItem as ActionListItem).GetDescription().Preconditions, _item, null);
                    };
                }

                _targetContainer.Add(worldStateItem);

                m_SelectedListItem.MarkUnsavedChanges(true);
                AddUnsavedMarker();

                PuppeteerEditorHelper.UpdateSelectedWorldStateItem(ref m_SelectedWorldStateItem, worldStateItem);
            }
        }