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
        private WorldStateItem CreateWorldStateItem(WorldStateDescription _worldStateDescription)
        {
            WorldStateItem worldStateItem = new WorldStateItem(_worldStateDescription);

            worldStateItem.OnMouseDown    += _item => PuppeteerEditorHelper.UpdateSelectedWorldStateItem(ref m_SelectedWorldStateItem, _item);
            worldStateItem.OnDuplicate    += _item => AddNewWorldStateItem(_item.parent, new WorldStateDescription(_item.GetWorldStateDescription()));
            worldStateItem.OnValueChanged += _item =>
            {
                m_SelectedListItem.MarkUnsavedChanges(true);
                AddUnsavedMarker();
            };

            return(worldStateItem);
        }
Exemple #3
0
        private void AddNewGoalPartItem(WorldStateDescription _goalPart)
        {
            if (m_SelectedListItem is GoalListItem selectedGoalListItem)
            {
                GoalDescription selectedDescription = selectedGoalListItem.GetDescription();

                int newIndex = PuppeteerEditorHelper.Append(ref selectedDescription.GoalParts, _goalPart);

                WorldStateItem goalPartItem = CreateGoalPartItem(selectedDescription.GoalParts[newIndex]);

                m_SelectedListItem.MarkUnsavedChanges(true);
                AddUnsavedMarker();

                PuppeteerEditorHelper.UpdateSelectedWorldStateItem(ref m_SelectedGoalPartItem, goalPartItem);
            }
        }
Exemple #4
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 #5
0
        private void SelectNeighbourGoalPartItemIfNeeded(WorldStateItem _goalPartItem)
        {
            if (_goalPartItem != m_SelectedGoalPartItem)
            {
                return;
            }

            bool neighbourSelected = SelectNeighbourGoalPartItem(MoveDirection.Up);

            if (!neighbourSelected)
            {
                neighbourSelected |= SelectNeighbourGoalPartItem(MoveDirection.Down);
            }

            if (!neighbourSelected)
            {
                m_SelectedGoalPartItem = null;
            }
        }