コード例 #1
0
        private void AddNewActionListItem(ActionDescription _actionDescription)
        {
            ActionDescription newActionDescription = new ActionDescription
            {
                GUID                 = System.Guid.NewGuid(),
                DisplayName          = _actionDescription.DisplayName,
                ExecutableActionType = _actionDescription.ExecutableActionType,
                Preconditions        = new WorldStateDescription[_actionDescription.Preconditions.Length],
                Effects              = new WorldStateDescription[_actionDescription.Effects.Length],
                BaseUtility          = _actionDescription.BaseUtility,
            };

            for (int i = 0; i < _actionDescription.Preconditions.Length; ++i)
            {
                newActionDescription.Preconditions[i] = new WorldStateDescription(_actionDescription.Preconditions[i]);
            }

            for (int i = 0; i < _actionDescription.Effects.Length; ++i)
            {
                newActionDescription.Effects[i] = new WorldStateDescription(_actionDescription.Effects[i]);
            }

            ActionListItem item = CreateActionListItem(newActionDescription);

            m_ListItemScrollView.Add(item);

            item.MarkUnsavedChanges(true);
            AddUnsavedMarker();

            UpdateSelectedListItem(item);
        }
コード例 #2
0
        private ActionListItem CreateActionListItem(ActionDescription _description)
        {
            ValidateAndFixDescription(ref _description);
            ActionListItem item = new ActionListItem(_description);

            item.OnMouseDown += UpdateSelectedListItem;
            item.OnDelete    += DeleteListItem;
            item.OnDuplicate += _item => AddNewActionListItem((_item as ActionListItem).GetDescription());
            m_ListItems.Add(item);

            return(item);
        }