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); }
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); }