This commit is contained in:
2025-06-11 20:29:48 +08:00
15 changed files with 85 additions and 29 deletions

View File

@@ -0,0 +1,6 @@
namespace NBF.Setting
{
public abstract class ControllerOption : OptionBase
{
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 75e11d5298cd48718d39a3e2af82472f
timeCreated: 1749634909

View File

@@ -0,0 +1,6 @@
namespace NBF.Setting
{
public abstract class InputOption : OptionBase
{
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 0df4bee5d9b54ada8be3757d7fe02e30
timeCreated: 1749634814

View File

@@ -0,0 +1,6 @@
namespace NBF.Setting
{
public abstract class KeyBoardOption : InputOption
{
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 509d2fb0106b42b79854cca29707207d
timeCreated: 1749634771

View File

@@ -7,14 +7,13 @@ namespace NBF.Setting
public interface IMultiOption : IOptionBase
{
List<string> GetOptionNames();
string GetName();
}
public abstract class MultiOption<T> : OptionBase, IMultiOption
{
protected OptionTable<T> OptionTable = new OptionTable<T>();
protected void AddOption(string name, T value)
{
OptionTable.Add(name, value);
@@ -22,11 +21,7 @@ namespace NBF.Setting
public List<string> GetOptionNames() => OptionTable.GetNames();
public string GetName()
{
return OptionTable.GetName(Value);
}
protected void SelectOption(T value, int defaultIndex = 0)
{
SetValue(TryGetIndex(value, out var index) ? index : defaultIndex);
@@ -59,5 +54,10 @@ namespace NBF.Setting
}
public T GetSelectedOption() => OptionTable.GetValue(Value);
public override string GetDisplayString()
{
return OptionTable.GetName(Value);
}
}
}

View File

@@ -11,6 +11,7 @@ namespace NBF.Setting
void SetValue(int index);
bool HaveNotApple();
ISettings Root { get; }
string GetDisplayString();
}
public abstract class OptionBase : IOptionBase
@@ -50,6 +51,8 @@ namespace NBF.Setting
}
public ISettings Root { get; private set; }
public void Initialize(ISettings root)
{
@@ -81,6 +84,11 @@ namespace NBF.Setting
Value = DefaultValue;
}
public virtual string GetDisplayString()
{
return GetValue().ToString();
}
public virtual int GetValue()
{
return Value;

View File

@@ -1,4 +1,7 @@
namespace NBF.Setting
using System;
using System.Globalization;
namespace NBF.Setting
{
/// <summary>
/// 范围设置
@@ -9,12 +12,22 @@
public abstract int MaxValue { get; }
public virtual int ShowRate => 0;
public override void SetValue(int value)
{
if (value > MaxValue) value = MaxValue;
else if (value < MinValue) value = MinValue;
Value = value;
}
public override string GetDisplayString()
{
if (ShowRate > 0)
{
return Math.Round(GetValue() / (ShowRate * 1f), 1).ToString(CultureInfo.InvariantCulture);
}
return base.GetDisplayString();
}
}
}

View File

@@ -0,0 +1,7 @@
namespace NBF.Options.Input
{
public class InputAddBobSetting
{
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 673bfd453717403998342a57e58b9b3a
timeCreated: 1749634714

View File

@@ -1,7 +1,5 @@
// 本脚本只在不存在时会生成一次。组件逻辑写在当前脚本内。已存在不会再次生成覆盖
using System;
using System.Globalization;
using FairyGUI;
using NBC;
using NBF.Setting;
@@ -42,15 +40,6 @@ namespace NBF
private void SetShow()
{
if (Option is IMultiOption multiOption)
{
TextInfo.text = multiOption.GetName();
}
else if (Option is RangeOption range)
{
Slider.value = range.GetValue();
}
UpdateValueText();
}
@@ -148,14 +137,12 @@ namespace NBF
{
if (Option is RangeOption range)
{
if (range.ShowRate > 0)
{
TextSliderValue.text = Math.Round(range.GetValue() / 10f, 1).ToString(CultureInfo.InvariantCulture);
}
else
{
TextSliderValue.text = range.GetValue().ToString();
}
Slider.value = range.GetValue();
TextSliderValue.text = range.GetDisplayString();
}
else if (Option is IMultiOption multiOption)
{
TextInfo.text = multiOption.GetDisplayString();
}
}
}

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<component size="1920,1080" extention="Label">
<displayList>
<graph id="n13_j6rn" name="n13" xy="0,0" size="1920,1080" alpha="0.9" type="rect" lineSize="0" fillColor="#ff000000"/>
<text id="n14_j6rn" name="title" xy="941,483" size="36,35" fontSize="25" color="#ffffff" align="center" vAlign="middle" text="txt">
<relation target="" sidePair="center-center,middle-middle"/>
</text>
</displayList>
</component>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<component size="1920,1080" designImage="ui://hxr7rc7pe9z82" designImageAlpha="30">
<component size="1920,1080" extention="Label" designImage="ui://hxr7rc7pe9z82" designImageAlpha="30">
<displayList>
<image id="n1_e9z8" name="back" src="kryob" fileName="Images/Square.png" pkg="6hgkvlau" xy="0,0" size="1920,1080" color="#182128">
<relation target="" sidePair="width-width,height-height"/>
@@ -34,5 +34,6 @@
<image id="n12_e9z8" name="BottomLine" src="kryob" fileName="Images/Square.png" pkg="6hgkvlau" xy="57,974" size="898,4" alpha="0.2" color="#5c748b">
<relation target="n10_e9z8" sidePair="bottom-bottom,rightext-right,leftext-left"/>
</image>
<component id="n13_j6rn" name="Mask" src="j6rn18" fileName="Com/SettingMask.xml" xy="0,0"/>
</displayList>
</component>

View File

@@ -42,6 +42,7 @@
<component id="lvql15" name="MakePanel.xml" path="/" exported="true"/>
<component id="lvql16" name="MapPanel.xml" path="/" exported="true"/>
<component id="j6rn17" name="SettingSubTitleItem.xml" path="/Com/Items/" exported="true"/>
<component id="j6rn18" name="SettingMask.xml" path="/Com/"/>
</resources>
<publish name="" path="../Assets/Resources/Fgui/Main" packageCount="2" genCode="true"/>
</packageDescription>