11 if (options.Count() == 0)
13 Error(
"Invalid OptionSelectorMultistate options");
16 if (current_index < 0 || current_index >= m_Options.Count())
18 m_SelectedOptionIndex = 0;
22 m_SelectedOptionIndex = current_index;
25 m_SelectedOption.SetText(m_Options.Get(m_SelectedOptionIndex));
31 optionAccess.GetAllItemsText(items);
43 int idx = m_SelectedOptionIndex;
45 if (idx >= m_Options.Count())
50 m_AttemptOptionChange.Invoke(idx);
59 int idx = m_SelectedOptionIndex;
63 idx = m_Options.Count() - 1;
66 m_AttemptOptionChange.Invoke(idx);
75 m_SelectedOptionIndex = index;
76 m_SelectedOption.SetText(m_Options.Get(index));
77 m_OptionChanged.Invoke(index);
90 void SetValue(
int value,
bool fire_event =
true)
92 if (value < m_Options.Count() && value >= 0)
94 m_SelectedOptionIndex = value;
95 m_SelectedOption.SetText(m_Options.Get(m_SelectedOptionIndex));
97 m_OptionChanged.Invoke(m_SelectedOptionIndex);
101 void SetValue(
string value,
bool fire_event =
true)
103 int index = m_Options.Find(value);
106 m_SelectedOptionIndex = index;
107 m_SelectedOption.SetText(m_Options.Get(m_SelectedOptionIndex));
109 m_OptionChanged.Invoke(m_SelectedOptionIndex);
115 m_SelectedOptionIndex =
Math.
RandomInt(0, m_Options.Count());
116 m_SelectedOption.SetText(m_Options.Get(m_SelectedOptionIndex));
117 m_OptionChanged.Invoke(m_SelectedOptionIndex);
122 return m_SelectedOptionIndex;
127 int index = m_Options.Find(option);
130 m_SelectedOptionIndex = index;
131 m_SelectedOption.SetText(m_Options.Get(m_SelectedOptionIndex));
134 m_OptionChanged.Invoke(m_SelectedOptionIndex);
156 m_SelectedOption.SetText(
"#str_cfgvehicles_survivorM0");
158 else if (value ==
"Female")
160 m_SelectedOption.SetText(
"#str_cfgvehicles_survivorF0");
162 else if (appendix !=
"")
165 m_SelectedOption.SetText(
"NO ITEM - localization needed!");
167 m_SelectedOption.SetText(
"" +
displayname +
" " + appendix);
177 if (value ==
"Male" || value ==
"Female")
184 int index = m_Options.Find(value);
208 string child = value;
210 while (
GetGame().ConfigGetBaseName(
"cfgVehicles " + child, parent))
212 if (parent == baseclass)
223 super.SetNextOption();
229 super.SetPrevOption();
233 override void SetValue(
int value,
bool fire_event =
true)
235 super.SetValue(value,fire_event);
239 override void SetValue(
string value,
bool fire_event =
true)
241 super.SetValue(value,fire_event);
247 super.SetRandomValue();
253 super.SetStringOption(option, fire_event);
void SetTextSmart(string value)
override void SetValue(int value, bool fire_event=true)
bool InheritsFrom(string value, string baseclass)
void OptionSelectorMultistateCharacterMenu(Widget parent, int current_index, ScriptedWidgetEventHandler parent_c, bool disabled, notnull array< string > options)
class OptionSelectorMultistate extends OptionSelector class_name
override void SetStringOption(string option, bool fire_event=true)
override void SetNextOption()
void SetDisplayNameText(string value, string appendix)
override void SetPrevOption()
override void SetRandomValue()
proto bool ConfigGetText(string path, out string value)
Get string value from config on path.
override void SetNextOption()
override void SetStringOption(string option, bool fire_event=true)
void SetCanSwitch(bool value)
void LoadNewValues(notnull array< string > options, int current_index)
void SetValue(int value, bool fire_event=true)
override void SetPrevOption()
void SetValue(string value, bool fire_event=true)
void PerformSetOption(int index)
static OptionSelectorMultistate NewFromAccess(Widget parent, ListOptionsAccess optionAccess, ScriptedWidgetEventHandler parent_c, bool disabled)
void OptionSelectorMultistate(Widget parent, int current_index, ScriptedWidgetEventHandler parent_c, bool disabled, notnull array< string > options)
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()
void Error(string err)
Messagebox with error message.
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].