Пример #1
0
            private void move(float x, float y)
            {
                var handle = _handle;

                if (handle == null)
                {
                    return;
                }
                (x, y)          = _editor.ToEditorResolution(x, y, _drawable);
                handle.Position = new Position(x, y);
            }
Пример #2
0
        public void Load()
        {
            float center  = _editor.ToEditorResolution(_editor.Game.Settings.VirtualResolution.Width / 2f, 0f, null).x;
            var   factory = _editor.Editor.Factory;

            _parent             = factory.UI.GetPanel($"MethodWizardPanel_{_method.Name}", 600f, 400f, -1000f, 100f, addToUi: false);
            _parent.RenderLayer = _layer;
            _parent.Tint        = GameViewColors.Panel;
            _parent.Border      = factory.Graphics.Borders.SolidColor(GameViewColors.Border, 3f);
            var host = new AGSComponentHost(_editor.GameResolver);

            host.Init(_parent, typeof(AGSComponentHost));
            _modal = host.AddComponent <IModalWindowComponent>();
            _modal.GrabFocus();
            var box = _parent.AddComponent <IBoundingBoxWithChildrenComponent>();

            box.IncludeSelf = false;

            _parent.Visible = false;
            _editor.Editor.State.UI.Add(_parent);

            var inspectorParent = factory.UI.GetPanel("WizardInspectorParentPanel", WIDTH, 300f, MARGIN_HORIZONTAL, 0f, _parent);

            inspectorParent.Tint  = Colors.Transparent;
            inspectorParent.Pivot = (0f, 1f);

            _inspector = new InspectorPanel(_editor, _layer, new ActionManager(), "Wizard");
            _inspector.Load(inspectorParent);
            _inspector.Inspector.SortValues = false;

            var methodDescriptor = new MethodTypeDescriptor(_method, _hideProperties, _overrideDefaults);

            _inspector.Show(methodDescriptor);

            _addUiExternal?.Invoke(_parent);
            addButtons();

            var layout = _parent.AddComponent <IStackLayoutComponent>();

            layout.AbsoluteSpacing = -30f;
            layout.LayoutAfterCrop = true;

            box.OnBoundingBoxWithChildrenChanged.Subscribe(() =>
            {
                layout.StartLocation = box.BoundingBoxWithChildren.Height + MARGIN_VERTICAL;
                _parent.BaseSize     = (box.BoundingBoxWithChildren.Width + MARGIN_HORIZONTAL * 2f, box.BoundingBoxWithChildren.Height + MARGIN_VERTICAL * 2f);
                _parent.X            = center - _parent.BaseSize.Width / 2f;
            });

            layout.StartLayout();
        }
Пример #3
0
        public static void ExpandAroundGameObject(AGSEditor editor, IBoundingBoxComponent boxComponent, IDrawableInfoComponent drawable,
                                                  IImageComponent image, IObject objToExpand, bool updatePosition)
        {
            if (boxComponent == null || image == null)
            {
                return;
            }
            var box = boxComponent.WorldBoundingBox;

            objToExpand.Pivot = image.Pivot;
            var x = MathUtils.Lerp(0f, box.MinX, 1f, box.MaxX, image.Pivot.X);
            var y = MathUtils.Lerp(0f, box.MinY, 1f, box.MaxY, image.Pivot.Y);

            (x, y) = editor.ToEditorResolution(x, y, drawable);

            (var minX, var minY) = editor.ToEditorResolution(box.MinX, box.MinY, drawable);
            (var maxX, var maxY) = editor.ToEditorResolution(box.MaxX, box.MaxY, drawable);

            if (updatePosition)
            {
                objToExpand.Position = (x, y);
            }
            objToExpand.BaseSize = new SizeF(maxX - minX, maxY - minY);
        }
Пример #4
0
            public void UpdatePosition()
            {
                var image        = _image;
                var boxComponent = _boundingBox;
                var handle       = _handle;

                if (image == null || boxComponent == null || handle == null)
                {
                    return;
                }
                var box   = boxComponent.WorldBoundingBox;
                var pivot = image.Pivot;
                var x     = MathUtils.Lerp(0f, box.MinX, 1f, box.MaxX, pivot.X);
                var y     = MathUtils.Lerp(0f, box.MinY, 1f, box.MaxY, pivot.Y);

                (x, y) = _editor.ToEditorResolution(x, y, _drawable);

                handle.Position = new Position(x, y);
            }
Пример #5
0
        public void Load()
        {
            float center  = _editor.ToEditorResolution(_editor.Game.Settings.VirtualResolution.Width / 2f, 0f, null).x;
            var   factory = _editor.Editor.Factory;
            var   title   = _parentForm == null ? _title : $"{_parentForm.Header.Text}->{_title}";

            _form         = factory.UI.GetForm($"MethodWizardPanel{_idSuffix}", title, 600f, 30f, 400f, -1000f, 100f, addToUi: false);
            _form.Visible = false;

            var host = new AGSComponentHost(_editor.GameResolver);

            host.Init(_form.Contents, typeof(AGSComponentHost));
            _modal = host.AddComponent <IModalWindowComponent>();
            _modal.GrabFocus();
            var box = _form.Contents.AddComponent <IBoundingBoxWithChildrenComponent>();

            box.IncludeSelf = false;

            setupForm(_form.Contents, factory);
            setupForm(_form.Header, factory);

            var layoutPanel = factory.UI.GetPanel($"WizardLayoutPanel{_idSuffix}", 1f, 1f, 0f, 0f, _form.Contents);

            layoutPanel.Tint = Colors.Transparent;

            var inspectorParent = factory.UI.GetPanel($"WizardInspectorParentPanel{_idSuffix}", WIDTH, 300f, MARGIN_HORIZONTAL, 0f, layoutPanel);

            inspectorParent.Tint  = Colors.Transparent;
            inspectorParent.Pivot = (0f, 1f);

            _inspector = new InspectorPanel(_editor, _layer, new ActionManager(), $"Wizard{_idSuffix}");
            _inspector.Load(inspectorParent, _form);
            _inspector.Inspector.SortValues = false;

            var methodDescriptor = new MethodTypeDescriptor(_method, _hideProperties, _overrideDefaults);

            if (!_inspector.Show(methodDescriptor) && _addUiExternal == null)
            {
                closeForm(new Dictionary <string, ValueModel>());
                return;
            }

            _addUiExternal?.Invoke(layoutPanel);
            addButtons(layoutPanel);

            var layout = layoutPanel.AddComponent <IStackLayoutComponent>();

            layout.AbsoluteSpacing = -30f;
            layout.LayoutAfterCrop = true;

            box.OnBoundingBoxWithChildrenChanged.Subscribe(() =>
            {
                layoutPanel.Y           = box.BoundingBoxWithChildren.Height + MARGIN_VERTICAL;
                _form.Contents.BaseSize = (_form.Contents.BaseSize.Width, box.BoundingBoxWithChildren.Height + MARGIN_VERTICAL * 2f);
                _form.Width             = box.BoundingBoxWithChildren.Width + MARGIN_HORIZONTAL * 2f;
                _form.X = center - _form.Contents.BaseSize.Width / 2f;
            });

            layout.StartLayout();
            layout.ForceRefreshLayout();
        }