private void AddNewSceneItemToTree(SceneItemType type, SceneItemGroup itemGroup) { SceneItem sceneItem; sceneItem = InstanciateNewItemOfType(type); sceneItem.Name = GetNewSceneItemName(); AddNewSceneItemInstance(sceneItem, itemGroup, true); }
/// <summary> /// Creates all the nodes of SceneItems from a group's collection /// </summary> /// <param name="sceneItemGroup"></param> private void LoadSceneItemsFromGroup(SceneItemGroup sceneItemGroup) { TreeNode rootNode; List<SceneItem> itemList = SceneManager.ActiveScene.SceneItems; switch (sceneItemGroup) { case SceneItemGroup.GlobalTemplates: rootNode = treeViewResources.Nodes[1].Nodes[0]; itemList = SceneManager.GlobalDataHolder.TemplateItems; break; case SceneItemGroup.LocalTemplates: rootNode = treeViewResources.Nodes[1].Nodes[1]; itemList = SceneManager.ActiveScene.TemplateItems; break; default: itemList = SceneManager.ActiveScene.SceneItems; rootNode = treeViewResources.Nodes[2]; break; } // clear all the nodes foreach (TreeNode node in rootNode.Nodes) { node.Nodes.Clear(); } // add the nodes foreach (SceneItem item in itemList) { SceneItemType itemType = GetTypeOfSceneItem(item); TreeNode newNode = rootNode.Nodes[(int)itemType].Nodes.Add(item.Name); String icon = GetIconFromType(itemType); newNode.SelectedImageKey = newNode.ImageKey = icon; newNode.Tag = item; // add a reference to the node and the item if (sceneItemGroup == SceneItemGroup.SceneInstances) { _sceneItemNodes[item] = newNode; } if (item == _objecToSelect) { treeViewResources.SelectedNode = newNode; } RefreshNodeComponents(newNode); } }
internal void AddNewSceneItemInstance(SceneItem newItem, SceneItemGroup itemGroup, bool selectItem) { newItem.Position = _sceneCamera.Position + new Vector2(100, 100); newItem.SceneParent = SceneManager.ActiveScene; if (itemGroup == SceneItemGroup.LocalTemplates) { newItem.IsTemplate = true; SceneManager.ActiveScene.TemplateItems.Add(newItem); } else if (itemGroup == SceneItemGroup.GlobalTemplates) { newItem.IsTemplate = true; SceneManager.GlobalDataHolder.TemplateItems.Add(newItem); } else { newItem.IsTemplate = false; SceneManager.ActiveScene.SceneItems.Add(newItem); } if (selectItem == true) { _objecToSelect = newItem; } LoadSceneTreeViewItems(); SceneWasModified = true; }