Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
SettingsPerformanceScreen.cs
浏览该文件的文档.
1using System.Xml.Linq;
2using Engine;
3
4namespace Game {
6 public static List<int> m_presentationIntervals = [2, 1, 0];
7
8 public static List<int> m_visibilityRanges = [
9 32,
10 48,
11 64,
12 80,
13 96,
14 112,
15 128,
16 160,
17 192,
18 224,
19 256,
20 320,
21 384,
22 448,
23 512,
24 576,
25 640,
26 704,
27 768,
28 832,
29 896,
30 960,
31 1024,
32 1280,
33 1536,
34 2048
35 ];
36
38
40
42
44
46
48
50
52
54
56
58
60
62 public static string fName = "SettingsPerformanceScreen";
63
65 XElement node = ContentManager.Get<XElement>("Screens/SettingsPerformanceScreen");
66 LoadContents(this, node);
67 m_resolutionButton = Children.Find<ButtonWidget>("ResolutionButton");
68 m_visibilityRangeSlider = Children.Find<SliderWidget>("VisibilityRangeSlider");
69 m_visibilityRangeWarningLabel = Children.Find<LabelWidget>("VisibilityRangeWarningLabel");
70 m_terrainMipmapsButton = Children.Find<ButtonWidget>("TerrainMipmapsButton");
71 m_skyRenderingModeButton = Children.Find<ButtonWidget>("SkyRenderingModeButton");
72 m_objectShadowsButton = Children.Find<ButtonWidget>("ObjectShadowsButton");
73 m_framerateLimitSlider = Children.Find<SliderWidget>("FramerateLimitSlider");
74 m_displayFpsCounterButton = Children.Find<ButtonWidget>("DisplayFpsCounterButton");
75 m_displayFpsRibbonButton = Children.Find<ButtonWidget>("DisplayFpsRibbonButton");
76 m_lowFPSToTimeDecelerationSlider = Children.Find<SliderWidget>("LowFPSToTimeDeceleration");
77 m_useAPISleepTimeAccelerationButton = Children.Find<ButtonWidget>("UseAPISleepTimeAccelerationButton");
78 m_visibilityRangeSlider.MinValue = 0f;
79 m_visibilityRangeSlider.MaxValue = m_visibilityRanges.Count - 1;
80 m_lowFPSToTimeDecelerationSlider.MinValue = 0f;
81 m_lowFPSToTimeDecelerationSlider.MaxValue = 20f;
82 m_lowFPSToTimeDecelerationSlider.Value = SettingsManager.LowFPSToTimeDeceleration;
83 m_animatedTextureRefreshLimitSlider = Children.Find<SliderWidget>("AnimatedTextureRefreshLimitSlider");
84#if ANDROID || ANGLE
85 m_framerateLimitSlider.MinValue = 1;
86#elif BROWSER
87 m_framerateLimitSlider.MinValue = 1;
88 m_framerateLimitSlider.MaxValue = 1;
89#endif
90 }
91
92 public override void Enter(object[] parameters) {
94 }
95
96 public override void Update() {
97 if (m_resolutionButton.IsClicked) {
98 IList<int> enumValues = EnumUtils.GetEnumValues<ResolutionMode>();
99 SettingsManager.ResolutionMode = (ResolutionMode)((enumValues.IndexOf((int)SettingsManager.ResolutionMode) + 1) % enumValues.Count);
100 }
101 if (m_visibilityRangeSlider.IsSliding) {
103 }
104 if (m_terrainMipmapsButton.IsClicked) {
106 }
107 if (m_skyRenderingModeButton.IsClicked) {
108 IList<int> enumValues3 = EnumUtils.GetEnumValues<SkyRenderingMode>();
110 % enumValues3.Count);
111 }
112 if (m_objectShadowsButton.IsClicked) {
114 }
115 if (m_framerateLimitSlider.IsSliding) {
117 (int)m_framerateLimitSlider.Value,
118 0,
120 )];
122 }
123 if (m_displayFpsCounterButton.IsClicked) {
125 }
126 if (m_displayFpsRibbonButton.IsClicked) {
128 }
129 if (m_lowFPSToTimeDecelerationSlider.IsSliding) {
131 }
134 }
137 }
138 m_resolutionButton.Text = LanguageControl.Get("ResolutionMode", SettingsManager.ResolutionMode.ToString());
139 m_visibilityRangeSlider.Value = m_visibilityRanges.IndexOf(SettingsManager.VisibilityRange) >= 0
141 : 64;
142 m_visibilityRangeSlider.Text = string.Format(LanguageControl.Get(fName, 1), SettingsManager.VisibilityRange);
144 m_visibilityRangeWarningLabel.IsVisible = true;
145 m_visibilityRangeWarningLabel.Text = LanguageControl.Get(fName, 2);
146 }
147 else if (SettingsManager.VisibilityRange <= 64) {
148 m_visibilityRangeWarningLabel.IsVisible = false;
149 }
150 else if (SettingsManager.VisibilityRange <= 112) {
151 m_visibilityRangeWarningLabel.IsVisible = true;
152 m_visibilityRangeWarningLabel.Text = LanguageControl.Get(fName, 3);
153 }
154 else if (SettingsManager.VisibilityRange <= 224) {
155 m_visibilityRangeWarningLabel.IsVisible = true;
156 m_visibilityRangeWarningLabel.Text = LanguageControl.Get(fName, 4);
157 }
158 else if (SettingsManager.VisibilityRange <= 384) {
159 m_visibilityRangeWarningLabel.IsVisible = true;
160 m_visibilityRangeWarningLabel.Text = LanguageControl.Get(fName, 5);
161 }
162 else if (SettingsManager.VisibilityRange <= 512) {
163 m_visibilityRangeWarningLabel.IsVisible = true;
164 m_visibilityRangeWarningLabel.Text = LanguageControl.Get(fName, 6);
165 }
166 else if (SettingsManager.VisibilityRange <= 1024) {
167 m_visibilityRangeWarningLabel.IsVisible = true;
168 m_visibilityRangeWarningLabel.Text = LanguageControl.Get(fName, 7);
169 }
170 else {
171 m_visibilityRangeWarningLabel.IsVisible = true;
172 m_visibilityRangeWarningLabel.Text = LanguageControl.Get(fName, 18);
173 }
175 m_skyRenderingModeButton.Text = LanguageControl.Get("SkyRenderingMode", SettingsManager.SkyRenderingMode.ToString());
177 m_framerateLimitSlider.Value = m_presentationIntervals.IndexOf(SettingsManager.PresentationInterval) >= 0
179 : m_presentationIntervals.Count - 1;
180 string str = SettingsManager.PresentationInterval switch {
181 1 => "14",
182 2 => "15",
183 _ => "9"
184 };
185 m_framerateLimitSlider.Text = LanguageControl.Get(fName, str);
186 m_displayFpsCounterButton.Text = SettingsManager.DisplayFpsCounter ? LanguageControl.Yes : LanguageControl.No;
188 m_lowFPSToTimeDecelerationSlider.Text = SettingsManager.LowFPSToTimeDeceleration > 0
191 m_useAPISleepTimeAccelerationButton.Text = SettingsManager.UseAPISleepTimeAcceleration
195 case 0: m_animatedTextureRefreshLimitSlider.Text = LanguageControl.Get(fName, 16); break;
196 case >= 7: m_animatedTextureRefreshLimitSlider.Text = LanguageControl.Get(fName, 17); break;
197 default: m_animatedTextureRefreshLimitSlider.Text = (SettingsManager.AnimatedTextureRefreshLimit * 10).ToString(); break;
198 }
199 m_animatedTextureRefreshLimitSlider.Value = SettingsManager.AnimatedTextureRefreshLimit;
200 if (Input.Back
201 || Input.Cancel
202 || Children.Find<ButtonWidget>("TopBar.Back").IsClicked) {
203 bool flag = SettingsManager.VisibilityRange > 128;
206 null,
207 new MessageDialog(
212 delegate(MessageDialogButton button) {
213 if (button == MessageDialogButton.Button1) {
215 }
216 }
217 )
218 );
219 }
220 else {
222 }
223 }
224 }
225 }
226}
static int PresentationInterval
readonly WidgetsList Children
static object Get(Type type, string name)
static void ShowDialog(ContainerWidget parentWidget, Dialog dialog)
static IList< int > GetEnumValues(Type type)
static string Get(string className, int key)
获取在当前语言类名键对应的字符串
static Screen PreviousScreen
上一个Screen
static void SwitchScreen(string name, params object[] parameters)
static ResolutionMode ResolutionMode
static SkyRenderingMode SkyRenderingMode
override void Enter(object[] parameters)
virtual void LoadContents(object eventsTarget, XElement node)