Пример #1
0
        private void ChangeConfig(LinePropertyTarget target)
        {
            if (linePropertyTarget != target)
            {
                int index = (int)linePropertyTarget;
                lineWidth[index]             = sliderWidth.ValueInt;
                lineColor[index]             = sliderColor.color;
                lineTransmittance[index]     = sliderTransmittance.Value;
                labelConfig[index].TextColor = labelColorInactive;

                index = (int)target;
                sliderWidth.ValueInt         = lineWidth[index];
                sliderColor.color            = lineColor[index];
                sliderTransmittance.Value    = lineTransmittance[index];
                labelConfig[index].TextColor = labelColorSelected;

                linePropertyTarget = target;
            }
        }
Пример #2
0
        public void InitializeUI()
        {
            RemoveAllChildren();

            linePropertyTarget = LinePropertyTarget.Shapes;

            panelMain = new UIDragablePanel(true, false, false);
            panelMain.SetPadding(6);
            panelMain.Left.Set(438f, 0f);
            panelMain.Top.Set(400f, 0f);
            panelMain.Width.Set(200f, 0f);
            panelMain.MinWidth.Set(200f, 0f);
            panelMain.MaxWidth.Set(Main.screenWidth, 0f);
            panelMain.Height.Set(300, 0f);
            panelMain.MinHeight.Set(300, 0f);
            panelMain.MaxHeight.Set(Main.screenHeight, 0f);
            panelMain.OnClick += (a, b) =>
            {
                inputDistance.InputEnd();
                inputCount.InputEnd();
            };

            Texture2D texture = ModLoader.GetMod("TeraCAD").GetTexture("UIElements/closeButton");

            closeButton          = new UIHoverImageButton(texture, "Close");
            closeButton.OnClick += (a, b) => Show = false;
            closeButton.Left.Set(-20f, 1f);
            closeButton.Top.Set(6f, 0f);
            panelMain.Append(closeButton);

            float   topPos  = 0;
            float   leftPos = menuMargin;
            Vector2 textSize;

            //キャプション
            labelCaption = new UIText("Parallel Copy Setting");
            labelCaption.Left.Set(leftPos, 0f);
            labelCaption.Top.Set(topPos, 0f);
            panelMain.Append(labelCaption);
            panelMain.AddDragTarget(labelCaption);
            textSize = Main.fontMouseText.MeasureString(labelCaption.Text);
            topPos  += textSize.Y * 2;

            //距離:ラベル
            var label = new UIText("Distance (block):");

            label.Left.Set(leftPos, 0f);
            label.Top.Set(topPos, 0f);
            panelMain.Append(label);
            panelMain.AddDragTarget(label);
            textSize = Main.fontMouseText.MeasureString(label.Text);
            topPos  += textSize.Y;
            //距離:インプット
            inputDistance      = new UIInputTextBox((int)Main.fontMouseText.MeasureString("9999").X, 4, true);
            inputDistance.Text = "8";
            inputDistance.Left.Set(leftPos, 0f);
            inputDistance.Top.Set(topPos, 0f);
            inputDistance.OnClick += (a, b) => inputCount.InputEnd();
            panelMain.Append(inputDistance);
            topPos += inputDistance.Height.Pixels + textSize.Y;

            //カウント:ラベル
            label = new UIText("Copy count:");
            label.Left.Set(leftPos, 0f);
            label.Top.Set(topPos, 0f);
            panelMain.Append(label);
            panelMain.AddDragTarget(label);
            textSize = Main.fontMouseText.MeasureString(label.Text);
            topPos  += textSize.Y;
            //カウント:インプット
            inputCount      = new UIInputTextBox((int)Main.fontMouseText.MeasureString("99").X, 2, true);
            inputCount.Text = "10";
            inputCount.Left.Set(leftPos, 0f);
            inputCount.Top.Set(topPos, 0f);
            inputCount.OnClick += (a, b) => inputDistance.InputEnd();
            panelMain.Append(inputCount);
            topPos += inputCount.Height.Pixels + textSize.Y;

            panelMain.MinHeight.Set(topPos, 0f);
            panelMain.Height.Set(topPos, 0f);

            updateNeeded = true;
        }
Пример #3
0
        public void InitializeUI()
        {
            RemoveAllChildren();

            linePropertyTarget = LinePropertyTarget.Shapes;

            panelMain = new UIDragablePanel(true, false, false);
            panelMain.SetPadding(6);
            panelMain.Left.Set(438f, 0f);
            panelMain.Top.Set(400f, 0f);
            panelMain.Width.Set(200f, 0f);
            panelMain.MinWidth.Set(200f, 0f);
            panelMain.MaxWidth.Set(Main.screenWidth, 0f);
            panelMain.Height.Set(300, 0f);
            panelMain.MinHeight.Set(300, 0f);
            panelMain.MaxHeight.Set(Main.screenHeight, 0f);

            Texture2D texture = ModLoader.GetMod("TeraCAD").GetTexture("UIElements/closeButton");

            closeButton          = new UIHoverImageButton(texture, "Close");
            closeButton.OnClick += (a, b) => Show = false;
            closeButton.Left.Set(-20f, 1f);
            closeButton.Top.Set(6f, 0f);
            panelMain.Append(closeButton);

            float topPos  = 0;
            float leftPos = menuMargin;

            //キャプション
            var label = new UIText("Line Property");

            label.Left.Set(leftPos, 0f);
            label.Top.Set(topPos, 0f);
            panelMain.Append(label);
            panelMain.AddDragTarget(label);
            topPos += Main.fontMouseText.MeasureString("Line Property").Y;

            labelConfig = new UIText[3];
            //設定対象:図形
            labelConfig[0]           = new UIText("Shapes");
            labelConfig[0].TextColor = labelColorSelected;
            labelConfig[0].Left.Set(leftPos, 0f);
            labelConfig[0].Top.Set(topPos, 0f);
            labelConfig[0].OnMouseOver += Label_OnMouseOver;
            labelConfig[0].OnMouseOut  += Label_OnMouseOut;
            labelConfig[0].OnClick     += (a, b) => ChangeConfig(LinePropertyTarget.Shapes);
            panelMain.Append(labelConfig[0]);
            leftPos += Main.fontMouseText.MeasureString("Shapes").X + menuMargin;

            //設定対象:カーソル
            labelConfig[1]           = new UIText("Cursor");
            labelConfig[1].TextColor = labelColorInactive;
            labelConfig[1].Left.Set(leftPos, 0f);
            labelConfig[1].Top.Set(topPos, 0f);
            labelConfig[1].OnMouseOver += Label_OnMouseOver;
            labelConfig[1].OnMouseOut  += Label_OnMouseOut;
            labelConfig[1].OnClick     += (a, b) => ChangeConfig(LinePropertyTarget.Cursor);
            panelMain.Append(labelConfig[1]);
            leftPos += Main.fontMouseText.MeasureString("Cursor").X + menuMargin;

            //設定対象:カーソルスナップ
            labelConfig[2]           = new UIText("Snap");
            labelConfig[2].TextColor = labelColorInactive;
            labelConfig[2].Left.Set(leftPos, 0f);
            labelConfig[2].Top.Set(topPos, 0f);
            labelConfig[2].OnMouseOver += Label_OnMouseOver;
            labelConfig[2].OnMouseOut  += Label_OnMouseOut;
            labelConfig[2].OnClick     += (a, b) => ChangeConfig(LinePropertyTarget.CursorSnap);
            panelMain.Append(labelConfig[2]);
            leftPos += Main.fontMouseText.MeasureString("Snap").X + menuMargin;

            leftPos = menuMargin;
            topPos += Main.fontMouseText.MeasureString("Shapes").Y * 2;

            //線幅
            label = new UIText("Line width:");
            label.Left.Set(leftPos, 0f);
            label.Top.Set(topPos, 0f);
            panelMain.Append(label);
            panelMain.AddDragTarget(label);
            topPos += Main.fontMouseText.MeasureString("Line width:").Y;

            sliderWidth = new UISlider(1, 16);
            sliderWidth.Left.Set(leftPos, 0f);
            sliderWidth.Top.Set(topPos, 0f);
            sliderWidth.OnChanged += SliderWidth_OnChanged;
            panelMain.Append(sliderWidth);
            topPos += sliderWidth.Height.Pixels;

            //線色
            label = new UIText("Line color:");
            label.Left.Set(leftPos, 0f);
            label.Top.Set(topPos, 0f);
            panelMain.Append(label);
            panelMain.AddDragTarget(label);
            topPos += Main.fontMouseText.MeasureString("Line color:").Y;

            sliderColor = new UISliderColor();
            sliderColor.Left.Set(leftPos, 0f);
            sliderColor.Top.Set(topPos, 0f);
            sliderColor.OnChanged += SliderColor_OnChanged;
            panelMain.Append(sliderColor);
            topPos += sliderColor.Height.Pixels;

            //透過率
            label = new UIText("Color transmittance:");
            label.Left.Set(leftPos, 0f);
            label.Top.Set(topPos, 0f);
            panelMain.Append(label);
            panelMain.AddDragTarget(label);
            topPos += Main.fontMouseText.MeasureString("Color transmittance:").Y;

            sliderTransmittance = new UISlider();
            sliderTransmittance.Left.Set(leftPos, 0f);
            sliderTransmittance.Top.Set(topPos, 0f);
            sliderTransmittance.OnChanged += SliderTransmittance_OnChanged;
            panelMain.Append(sliderTransmittance);
            topPos += sliderTransmittance.Height.Pixels * 2;

            panelMain.MinHeight.Set(topPos, 0f);
            panelMain.Height.Set(topPos, 0f);

            updateNeeded = true;
        }
Пример #4
0
        public Color GetColor(LinePropertyTarget target)
        {
            Color result = lineColor[(int)target] * (1f - lineTransmittance[(int)target]);

            return(result);
        }
Пример #5
0
        public int GetLineWidth(LinePropertyTarget target)
        {
            int result = lineWidth[(int)target];

            return(result);
        }