Пример #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));
        }
 public ComponentWithList(CanvasEntity entity) : base(entity)
 {
     containText = "test value" + count++;
     valueList   = new List <string>();
     initValueList();
     imageList = new List <Image>();
     initImageList();
 }
 public void attachCanvasEntity()
 {
     canvasEntity               = new CanvasEntity();
     canvasEntity.Width         = (int)numericWidth.Value;
     canvasEntity.RealWidth     = canvasEntity.Width;
     canvasEntity.Height        = (int)numericHeight.Value;
     canvasEntity.RealHeight    = canvasEntity.Height;
     canvasEntity.Count         = (int)numericCountOfSplitted.Value;
     numericWidth.ValueChanged += (sender, args) => {
         canvasEntity.Width = (int)numericWidth.Value;
         canvasEntity.DataChangedEvent();
         Console.Out.WriteLine(canvasEntity.ToString());
     };
     numericCountOfSplitted.ValueChanged += (sender, args) => {
         canvasEntity.Count = (int)numericCountOfSplitted.Value;
         numericWidth.Value = canvasEntity.RealWidth / canvasEntity.Count;
         canvasEntity.DataChangedEvent();
         Console.Out.WriteLine(canvasEntity.ToString());
     };
 }
 protected AbstractComponent(CanvasEntity entity)
 {
     this.entity = entity;
 }
Пример #5
0
        public AssetManagerWorld(
            IAssetManagerProvider assetManagerProvider,
            I2DRenderUtilities renderUtilities,
            ISkin skin,
            IAssetLoader[] loaders)
        {
            this.Entities = new List <IEntity>();
            this.m_Skin   = skin;
            this.m_Start  = DateTime.Now;

            // Add the asset manager layout.
            var entity = new CanvasEntity(this.m_Skin);

            this.m_Layout = new AssetManagerLayout(assetManagerProvider, renderUtilities, loaders, entity);
            entity.Canvas = this.m_Layout;
            this.Entities.Add(entity);

            this.m_Layout.MarkDirty.Click += (sender, e) =>
            {
                foreach (var asset in this.AssetManager.GetAll())
                {
                    this.AssetManager.Dirty(asset.Name);
                }
            };

            this.m_Layout.Bake.Click += (sender, e) =>
            {
                if (this.m_CurrentEditor != null)
                {
                    this.m_CurrentEditor.Bake(this.AssetManager);
                }
                var item = this.m_Layout.AssetTree.SelectedItem as AssetTreeItem;
                if (item == null)
                {
                    return;
                }
                this.AssetManager.Bake(item.Asset);
            };

            this.m_Layout.AssetTree.SelectedItemChanged += (sender, e) =>
            {
                if (this.m_CurrentEditor != null)
                {
                    this.m_CurrentEditor.FinishLayout(this.m_Layout.EditorContainer, this.AssetManager);
                }
                var item = this.m_Layout.AssetTree.SelectedItem as AssetTreeItem;
                if (item != null && m_Editors.ContainsKey(item.Asset.GetType()))
                {
                    this.m_CurrentEditor = m_Editors[item.Asset.GetType()];
                    this.m_CurrentEditor.SetAsset(item.Asset);
                    this.m_CurrentEditor.BuildLayout(this.m_Layout.EditorContainer, this.AssetManager);
                }
                else
                {
                    this.m_CurrentEditor = null;
                    this.m_Layout.EditorContainer.SetChild(
                        new Label {
                        Text = "No editor for " + (item == null ? "folders" : item.Asset.GetType().Name)
                    });
                }
            };

            this.m_Layout.ExitClick += (sender, e) =>
            {
                Environment.Exit(0);
            };

            this.m_Layout.BakeAllClick += (sender, e) =>
            {
                foreach (var asset in this.AssetManager.GetAll())
                {
                    this.AssetManager.Bake(asset);
                }
            };

            this.m_Layout.CreateNameEntered += (sender, e) =>
            {
                var asset = e.Loader.GetNew(this.AssetManager, this.m_Layout.PromptName.Text);
                assetManagerProvider.GetAssetManager(false).Bake(asset);
                this.m_Layout.AssetTree.AddChild(new AssetTreeItem
                {
                    Text  = this.m_Layout.PromptName.Text,
                    Asset = asset
                });
            };
        }
 public ComponentWithListAndInput(CanvasEntity entity) : base(entity)
 {
     valueComboBox = new List <string>();
     //initValueList();
 }
Пример #7
0
        public AssetManagerLayout(
            IAssetManagerProvider assetManagerProvider,
            I2DRenderUtilities renderUtilities,
            IAssetLoader[] loaders,
            CanvasEntity canvasEntity)
        {
            this.m_CanvasEntity = canvasEntity;

            var toolbarContainer = new HorizontalContainer();

            toolbarContainer.AddChild(new SingleContainer(), "*");
            toolbarContainer.AddChild(this.Bake = new Button {
                Text = "Bake"
            }, "50");
            toolbarContainer.AddChild(this.MarkDirty = new Button {
                Text = "Mark Dirty"
            }, "80");

            var assetContainer = new VerticalContainer();

            assetContainer.AddChild(toolbarContainer, "20");
            assetContainer.AddChild(this.EditorContainer = new SingleContainer(), "*");

            var contentContainer = new HorizontalContainer();

            contentContainer.AddChild(this.AssetTree = new TreeView(), "210");
            contentContainer.AddChild(assetContainer, "*");

            var menuContainer = new VerticalContainer();

            menuContainer.AddChild(this.MainMenu = new MainMenu(assetManagerProvider, renderUtilities), "24");
            menuContainer.AddChild(contentContainer, "*");
            menuContainer.AddChild(this.Status = new Label {
                Text = "..."
            }, "24");
            this.SetChild(menuContainer);

            var exitItem = new MenuItem(assetManagerProvider, renderUtilities)
            {
                Text = "Exit"
            };
            var bakeAllItem = new MenuItem(assetManagerProvider, renderUtilities)
            {
                Text = "Bake All"
            };
            var assetManagerMenuItem = new MenuItem(assetManagerProvider, renderUtilities)
            {
                Text = "Asset Manager"
            };

            exitItem.Click += (sender, e) =>
            {
                if (this.ExitClick != null)
                {
                    this.ExitClick(sender, e);
                }
            };
            bakeAllItem.Click += (sender, e) =>
            {
                if (this.BakeAllClick != null)
                {
                    this.BakeAllClick(sender, e);
                }
                (bakeAllItem.Parent as MenuItem).Active = false;
            };
            assetManagerMenuItem.AddChild(bakeAllItem);
            assetManagerMenuItem.AddChild(exitItem);
            this.MainMenu.AddChild(assetManagerMenuItem);

            var newAssetMenuItem = new MenuItem(assetManagerProvider, renderUtilities)
            {
                Text = "Create New..."
            };

            foreach (var loader in loaders.Where(x => x.CanNew()))
            {
                var createNewMenuItem = new MenuItem(assetManagerProvider, renderUtilities)
                {
                    Text = loader.GetType().Name
                };
                createNewMenuItem.Click += (sender, e) =>
                {
                    if (this.PromptWindow == null)
                    {
                        this.PromptForCreation(loader.GetType().Name, (_, _2) =>
                        {
                            if (this.CreateNameEntered != null)
                            {
                                this.CreateNameEntered(this, new CreateEventArgs(loader));
                            }
                        });
                    }
                };
                newAssetMenuItem.AddChild(createNewMenuItem);
            }
            this.MainMenu.AddChild(newAssetMenuItem);
        }
Пример #8
0
 public ComponentWithInput(CanvasEntity entity) : base(entity)
 {
 }
Пример #9
0
 public CalculationComponents(CanvasEntity entity)
 {
     this.entity = entity;
     initComponents();
 }