Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        public ProjectManager(
            IRawLaunchArguments launchArguments,
            IConsoleHandle consoleHandle,
            ICoroutine coroutine,
            IRecentProjects recentProjects)
        {
            _coroutine      = coroutine;
            _consoleHandle  = consoleHandle;
            _recentProjects = recentProjects;

            var arguments      = launchArguments.Arguments;
            var directoryIndex = Array.IndexOf(arguments, "--project");

            if (!(directoryIndex == -1 || directoryIndex == arguments.Length - 1))
            {
                LoadProject(arguments[directoryIndex + 1]);
            }
        }
        public StartEditorWindow(
            IAssetManager assetManager,
            IProjectManager projectManager,
            IProjectManagerUi projectManagerUi,
            ICoroutine coroutine,
            IRecentProjects recentProjects,
            I2DRenderUtilities renderUtilities)
        {
            _assetManager    = assetManager;
            _projectManager  = projectManager;
            _coroutine       = coroutine;
            _recentProjects  = recentProjects;
            _renderUtilities = renderUtilities;

            Title = "Welcome!";
            Icon  = _assetManager.Get <TextureAsset>("texture.IconWelcome");

            var newProject = new Button
            {
                Text = "New Project"
            };
            var openProject = new Button
            {
                Text = "Open Project"
            };

            openProject.Click += (sender, e) =>
            {
                _coroutine.Run(() => projectManagerUi.LoadProject());
            };

            var buttonContainer = new HorizontalContainer();

            buttonContainer.AddChild(newProject, "*");
            buttonContainer.AddChild(new EmptyContainer(), "20");
            buttonContainer.AddChild(openProject, "*");

            _recentProjectsContainer = new VerticalContainer();
            //var scrollableContainer = new ScrollableContainer();
            //scrollableContainer.SetChild(_recentProjectsContainer);

            var verticalContainer = new VerticalContainer();

            verticalContainer.AddChild(new Label {
                Font = _assetManager.Get <FontAsset>("font.Welcome"),
                Text = "Welcome to Protogame!",
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment   = VerticalAlignment.Top
            }, "80");
            verticalContainer.AddChild(buttonContainer, "60");
            verticalContainer.AddChild(new EmptyContainer(), "24");
            verticalContainer.AddChild(_recentProjectsContainer, "*");

            var outerVertContainer = new VerticalContainer();

            outerVertContainer.AddChild(new EmptyContainer(), "15%");
            outerVertContainer.AddChild(verticalContainer, "*");
            outerVertContainer.AddChild(new EmptyContainer(), "15%");

            var outerHorContainer = new HorizontalContainer();

            outerHorContainer.AddChild(new EmptyContainer(), "15%");
            outerHorContainer.AddChild(outerVertContainer, "*");
            outerHorContainer.AddChild(new EmptyContainer(), "15%");

            SetChild(outerHorContainer);
        }