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; } }
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; }
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; }
public Color GetColor(LinePropertyTarget target) { Color result = lineColor[(int)target] * (1f - lineTransmittance[(int)target]); return(result); }
public int GetLineWidth(LinePropertyTarget target) { int result = lineWidth[(int)target]; return(result); }