private void DuplicateEntities(List <EditorEntity> entities) { if (null == entities || !entities.Any()) { return; } // work out a slot for each entity, and add it in turn // this should prevent generating the same ID for each member of the list var new_entities = new List <EditorEntity>(); foreach (var entity in entities) { ushort slot = getFreeSlot(entity.Entity); var sceneEntity = new SceneEntity(entity.Entity, slot); var editorEntity = GenerateEditorEntity(sceneEntity); AddEntity(editorEntity); new_entities.Add(editorEntity); } if (new_entities.Count > 0) { LastAction = new Actions.ActionAddDeleteEntities(new_entities.ToList(), true, x => AddEntities(x), x => DeleteEntities(x)); } Deselect(); selectedEntities.AddRange(new_entities); foreach (var entity in new_entities) { entity.Selected = true; } }
private void ResolveItem(BuildAction action, Profile.Stage stage, Profile.Item item) { if (stage == null || item == null) { return; } Actions.IAction resolvedAction = null; if (item.Type == Profile.ItemType.Solution || item.Type == Profile.ItemType.Project) { resolvedAction = new Actions.MSBuildAction(item.Path, action == BuildAction.Clean, _environment); } else if (item.Type == Profile.ItemType.BatchScript || item.Type == Profile.ItemType.ShellCommand) { resolvedAction = new Actions.ShellAction(item.Path); } else if (item.Type == Profile.ItemType.PowerShellScript) { resolvedAction = new Actions.PowerShellAction(item.Path); } if (resolvedAction == null) { throw new ApplicationException($"Don't know how to execute action of type {item.Type}"); } _actions.Add(resolvedAction); }
public void DeleteSelected() { if (selectedEntities.Count > 0) { LastAction = new Actions.ActionAddDeleteEntities(selectedEntities.ToList(), false, x => AddEntities(x), x => DeleteEntities(x)); } DeleteEntities(selectedEntities); Deselect(); }
/// <summary> /// Creates a new instance of the given SceneObject at the indicated position. /// </summary> /// <param name="sceneObject">Type of SceneObject to create an instance of.</param> /// <param name="position">Location to insert into the scene.</param> public void Add(RSDKv5.SceneObject sceneObject, RSDKv5.Position position) { var editorEntity = GenerateEditorEntity(new RSDKv5.SceneEntity(sceneObject, getFreeSlot(null))); editorEntity.Entity.Position = position; var newEntities = new List <EditorEntity> { editorEntity }; LastAction = new Actions.ActionAddDeleteEntities(newEntities, true, x => AddEntities(x), x => DeleteEntities(x)); AddEntities(newEntities); Deselect(); editorEntity.Selected = true; selectedEntities.Add(editorEntity); }
private void DuplicateEntities(List <EditorEntity> entities) { var new_entities = entities.Select(x => new EditorEntity(x.Entity.Copy())).ToList(); if (new_entities.Count > 0) { LastAction = new Actions.ActionAddDeleteEntities(new_entities.ToList(), true, x => AddEntities(x), x => DeleteEntities(x)); } AddEntities(new_entities); Deselect(); selectedEntities.AddRange(new_entities); foreach (var entity in new_entities) { entity.Selected = true; } }
private void DuplicateEntities(List <EditorEntity> entities) { if (null == entities || !entities.Any()) { return; } var new_entities = entities.Select(x => GenerateEditorEntity(new RSDKv5.SceneEntity(x.Entity, getFreeSlot(x.Entity)))).ToList(); if (new_entities.Count > 0) { LastAction = new Actions.ActionAddDeleteEntities(new_entities.ToList(), true, x => AddEntities(x), x => DeleteEntities(x)); } AddEntities(new_entities); Deselect(); selectedEntities.AddRange(new_entities); foreach (var entity in new_entities) { entity.Selected = true; } }
public static ToDoREST.State.ApplicationState ReduceApplication(ToDoREST.State.ApplicationState previousState, Actions.IAction action) { return(new ToDoREST.State.ApplicationState { Todos = TodoReducers.Reduce(previousState.Todos, action) }); }