Beispiel #1
0
    private void CreateUI()
    {
        _Frame = new Skill.Editor.UI.EditorFrame("Frame", this);
        _Frame.Grid.RowDefinitions.Add(140, Skill.Framework.UI.GridUnitType.Pixel); // Panel
        _Frame.Grid.RowDefinitions.Add(1, Skill.Framework.UI.GridUnitType.Star);    // Empty
        _Frame.Grid.Padding = new Skill.Framework.UI.Thickness(2, 4);

        _Panel = new Skill.Framework.UI.Grid();
        _Panel.RowDefinitions.Add(24, Skill.Framework.UI.GridUnitType.Pixel); // _UnitsField
        _Panel.RowDefinitions.Add(36, Skill.Framework.UI.GridUnitType.Pixel); // _BtnOrganizeByPrefab
        _Panel.RowDefinitions.Add(36, Skill.Framework.UI.GridUnitType.Pixel); // _BtnOrganizeByUnits
        _Panel.RowDefinitions.Add(36, Skill.Framework.UI.GridUnitType.Pixel); // _BtnRemoveEmptyObjects
        _Panel.RowDefinitions.Add(4, Skill.Framework.UI.GridUnitType.Pixel);  // empty
        _Frame.Controls.Add(_Panel);

        var margin = new Skill.Framework.UI.Thickness(0, 4, 0, 0);

        Grid g = new Grid()
        {
            Row = 0, Column = 0, Margin = margin
        };

        g.ColumnDefinitions.Add(40, GridUnitType.Pixel);
        g.ColumnDefinitions.Add(1, GridUnitType.Star);
        _UnitsLabel = new Label()
        {
            Column = 0, Text = "Units"
        };
        g.Controls.Add(_UnitsLabel);

        _BtnOrganizeByPrefab = new Button()
        {
            Row = 1, Column = 0, Margin = margin
        }; _BtnOrganizeByPrefab.Content.text = "Organize by prefab";
        _Panel.Controls.Add(_BtnOrganizeByPrefab);

        _UnitsField = new Skill.Editor.UI.Vector3Field()
        {
            Column = 1, Value = _UnitLength
        };
        g.Controls.Add(_UnitsField);

        _Panel.Controls.Add(g);

        _BtnOrganizeByUnits = new Button()
        {
            Row = 2, Column = 0, Margin = margin
        }; _BtnOrganizeByUnits.Content.text = "Organize by units";
        _Panel.Controls.Add(_BtnOrganizeByUnits);

        _BtnRemoveEmptyObjects = new Button()
        {
            Row = 3, Column = 0, Margin = margin
        }; _BtnRemoveEmptyObjects.Content.text = "Delete empty objects";
        _Panel.Controls.Add(_BtnRemoveEmptyObjects);

        _BtnOrganizeByPrefab.Click   += _BtnOrganizeByPrefab_Click;
        _BtnOrganizeByUnits.Click    += _BtnOrganizeByUnits_Click;
        _BtnRemoveEmptyObjects.Click += _BtnRemoveEmptyObjects_Click;
        _UnitsField.ValueChanged     += _UnitsField_ValueChanged;
    }
Beispiel #2
0
        public ImplantObjectPropertiesField()
        {
            this.Margin = new Thickness(0, 0, 0, 8);
            this.Width  = 300;

            this._MinScaleField = new FloatField()
            {
                Margin = new Thickness(2, 2, 2, 0)
            };
            this._MinScaleField.Label.text = "Min Scale Percent";

            this._MaxScaleField = new FloatField()
            {
                Margin = new Thickness(2, 2, 2, 0)
            };
            this._MaxScaleField.Label.text = "Max Scale Percent";

            this._ChanceField = new Skill.Editor.UI.Slider()
            {
                MinValue = 0.1f, MaxValue = 1.0f, Margin = new Thickness(2, 2, 2, 2)
            };
            this._ChanceField.Label.text = "Chance";

            _RandomRotationPanel = new Grid()
            {
                Height = 45
            };

            _RandomRotationPanel.ColumnDefinitions.Add(30, GridUnitType.Pixel);
            _RandomRotationPanel.ColumnDefinitions.Add(1, GridUnitType.Star);

            _RandomRotationPanel.RowDefinitions.Add(1, GridUnitType.Star);
            _RandomRotationPanel.RowDefinitions.Add(1, GridUnitType.Star);

            _MinRandomRotation = new Vector3Field()
            {
                Row = 0, Column = 1
            };
            _MaxRandomRotation = new Vector3Field()
            {
                Row = 1, Column = 1
            };
            _RandomRotationPanel.Controls.Add(_MinRandomRotation);
            _RandomRotationPanel.Controls.Add(_MaxRandomRotation);

            Label lblMin = new Label()
            {
                Row = 0, Column = 0, Text = "Min"
            };
            Label lblMax = new Label()
            {
                Row = 1, Column = 0, Text = "Max"
            };

            _RandomRotationPanel.Controls.Add(lblMin);
            _RandomRotationPanel.Controls.Add(lblMax);
            _CustomRotation = new Skill.Editor.UI.Vector3Field();

            _RandomYaw = new Skill.Framework.UI.ToggleButton()
            {
                HorizontalAlignment = Skill.Framework.UI.HorizontalAlignment.Left, Margin = new Thickness(20, 0, 0, 0)
            };
            _RandomYaw.Content.text = "Random Yaw";

            _RotationSF = new Skill.Editor.UI.SelectionField()
            {
                Margin = new Thickness(2)
            };
            _RotationSF.Label.Width           = 110;
            _RotationSF.Background.Visibility = Skill.Framework.UI.Visibility.Hidden;

            _RotationSF.AddField(_RandomYaw, "Surface Normal ");
            _RotationSF.AddField(_CustomRotation, "Custom ");
            _RotationSF.AddField(_RandomRotationPanel, "Random ");

            _RotationLabel = new DropShadowLabel()
            {
                Text = "Rotation", Margin = new Thickness(4, 0, 0, 0)
            };

            this.Orientation = Orientation.Vertical;
            this.Controls.Add(_MinScaleField);
            this.Controls.Add(_MaxScaleField);
            this.Controls.Add(_ChanceField);
            this.Controls.Add(_RotationLabel);
            this.Controls.Add(_RotationSF);

            this._MinScaleField.ValueChanged      += new EventHandler(_MinScaleField_ValueChanged);
            this._MaxScaleField.ValueChanged      += new EventHandler(_MaxScaleField_ValueChanged);
            this._ChanceField.ValueChanged        += new EventHandler(_ChanceField_ValueChanged);
            this._RotationSF.SelectedFieldChanged += new EventHandler(_RotationSF_SelectedFieldChanged);

            this._MinRandomRotation.ValueChanged += _MinRandomRotation_ValueChanged;
            this._MaxRandomRotation.ValueChanged += _MaxRandomRotation_ValueChanged;

            this._CustomRotation.ValueChanged += new EventHandler(_CustomRotation_ValueChanged);
            this._RandomYaw.Changed           += new EventHandler(_RandomYaw_Changed);


            this.Object = null;
            this.Height = _MinScaleField.LayoutHeight + _MinScaleField.Margin.Vertical +
                          _MaxScaleField.LayoutHeight + _MaxScaleField.Margin.Vertical +
                          _ChanceField.LayoutHeight + _ChanceField.Margin.Vertical +
                          _RotationLabel.LayoutHeight + _RotationLabel.Margin.Vertical +
                          _RotationSF.LayoutHeight + _RotationSF.Margin.Vertical + 20;
        }