public ProtogameEditorWorld( INode worldNode, IHierarchy hierarchy, ISkinLayout skinLayout, ISkinDelegator skinDelegator, IAssetManager assetManager, IMainMenuController mainMenuController, IEditorWindowFactory editorWindowFactory, IProjectManager projectManager, ILoadedGame loadedGame, IRecentProjects recentProjects, IThumbnailSampler thumbnailSampler, IExtensionManager extensionManager) { _skinLayout = skinLayout; _skinDelegator = skinDelegator; _assetManager = assetManager; _mainMenuController = mainMenuController; _editorWindowFactory = editorWindowFactory; _projectManager = projectManager; _loadedGame = loadedGame; _recentProjects = recentProjects; _thumbnailSampler = thumbnailSampler; _extensionManager = extensionManager; SetupCanvas(); var entity = new CanvasEntity(_skinLayout, _skinDelegator); entity.Canvas = _canvas; hierarchy.AddChildNode(worldNode, hierarchy.CreateNodeForObject(entity)); }
protected void RegisterComponent(object component) { if (_node == null || _hierarchy == null) { // No hierarchy, always use private list. _nonHierarchyComponents.Add(component); UpdateCache(); UpdateEnabledInterfacesCache(); } else { // Check if the component is underneath this hierarchy, if node, add it. if (_node.Children.All(x => x.UntypedValue != component)) { // It is not underneath the hierarchy; add it. var childNode = _hierarchy.Lookup(component) ?? _hierarchy.CreateNodeForObject(component); _hierarchy.AddChildNode(_node, childNode); } } }