DayZ 1.28
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CharacterCreationMenu.c
См. документацию.
1class CharacterCreationMenu extends UIScriptedMenu
2{
3 #ifdef PLATFORM_CONSOLE
4 DayZIntroSceneXbox m_Scene;
5 protected bool m_CharacterSaved;
6 #else
8 #endif
9
10 const int TOOLTIP_ID_SAVE = 1;
11 const int TOOLTIP_ID_APPLY = 2;
12
14 protected Widget m_Apply;
15 protected Widget m_Save;
19 protected TextWidget m_Version;
20 protected Widget m_DetailsRoot; //tooltips
24
25 protected ref OptionSelectorEditbox m_NameSelector;
31
33
35
37 {
38 MissionMainMenu mission = MissionMainMenu.Cast(GetGame().GetMission());
39
40 #ifdef PLATFORM_CONSOLE
41 m_Scene = mission.GetIntroSceneXbox();
42 #else
43 m_Scene = mission.GetIntroScenePC();
44 #endif
45
46 m_Scene.ResetIntroCamera();
47 }
48
50 {
51 return m_Scene.GetIntroCharacter().GetCharacterObj();
52 }
53
54 protected void OnInputDeviceChanged(EInputDeviceType pInputDeviceType)
55 {
56 #ifdef PLATFORM_CONSOLE
57 switch (pInputDeviceType)
58 {
59 case EInputDeviceType.CONTROLLER:
60 if (GetGame().GetInput().IsEnabledMouseAndKeyboard())
61 {
63 }
64 CheckNewOptions(); //TODO - pick only the 'focus' bit
65 break;
66
67 default:
68 if (GetGame().GetInput().IsEnabledMouseAndKeyboard())
69 {
71 }
72 break;
73 }
74
76 #endif
77 }
78
79 override Widget Init()
80 {
81 #ifdef PLATFORM_CONSOLE
82 layoutRoot = GetGame().GetWorkspace().CreateWidgets("gui/layouts/new_ui/character_creation/xbox/character_creation.layout");
83 m_CharacterSaved = false;
84 #else
85 layoutRoot = GetGame().GetWorkspace().CreateWidgets("gui/layouts/new_ui/character_creation/pc/character_creation.layout");
86 #endif
87
88 m_CharacterRotationFrame = layoutRoot.FindAnyWidget("character_rotation_frame");
89 m_Apply = layoutRoot.FindAnyWidget("apply");
90 m_Save = layoutRoot.FindAnyWidget("save");
91 m_RandomizeCharacter = layoutRoot.FindAnyWidget("randomize_character");
92 m_BackButton = layoutRoot.FindAnyWidget("back");
93 m_Version = TextWidget.Cast(layoutRoot.FindAnyWidget("version"));
94 m_DetailsRoot = layoutRoot.FindAnyWidget("menu_details_tooltip");
95 m_DetailsLabel = TextWidget.Cast(m_DetailsRoot.FindAnyWidget("menu_details_label"));
96 m_DetailsText = RichTextWidget.Cast(m_DetailsRoot.FindAnyWidget("menu_details_tooltip_content"));
97 m_CharacterHeaderText = TextWidget.Cast(layoutRoot.FindAnyWidget("char_header_text"));
98 m_PlayedCharacterInfo = layoutRoot.FindAnyWidget("played_char_info");
99
100 string version;
101 GetGame().GetVersion(version);
102 #ifdef PLATFORM_CONSOLE
103 version = "#main_menu_version" + " " + version + " (" + g_Game.GetDatabaseID() + ")";
104 #else
105 version = "#main_menu_version" + " " + version;
106 #endif
107 m_Version.SetText(version);
108
109 if (m_Scene && m_Scene.GetIntroCharacter())
110 {
111 m_OriginalCharacterID = m_Scene.GetIntroCharacter().GetCharacterID();
112 }
113
114 m_NameSelector = new OptionSelectorEditbox(layoutRoot.FindAnyWidget("character_name_setting_option"), m_Scene.GetIntroCharacter().GetCharacterName(), null, false);
115 m_GenderSelector = new OptionSelectorMultistateCharacterMenu(layoutRoot.FindAnyWidget("character_gender_setting_option"), 0, null, false, m_Scene.GetIntroCharacter().GetCharGenderList());
116 if (m_Scene.GetIntroCharacter().IsCharacterFemale())
117 {
118 m_GenderSelector.SetValue("Female");
119 m_SkinSelector = new OptionSelectorMultistateCharacterMenu(layoutRoot.FindAnyWidget("character_head_setting_option"), 0, null, false, m_Scene.GetIntroCharacter().GetCharList(ECharGender.Female));
120 }
121 else
122 {
123 m_GenderSelector.SetValue("Male");
124 m_SkinSelector = new OptionSelectorMultistateCharacterMenu(layoutRoot.FindAnyWidget("character_head_setting_option"), 0, null, false, m_Scene.GetIntroCharacter().GetCharList(ECharGender.Male));
125 }
126
127 m_TopSelector = new OptionSelectorMultistateCharacterMenu(layoutRoot.FindAnyWidget("character_top_setting_option"), 0, null, false, DefaultCharacterCreationMethods.GetConfigAttachmentTypes(InventorySlots.BODY));
128 m_BottomSelector = new OptionSelectorMultistateCharacterMenu(layoutRoot.FindAnyWidget("character_bottom_setting_option"), 0, null, false, DefaultCharacterCreationMethods.GetConfigAttachmentTypes(InventorySlots.LEGS));
129 m_ShoesSelector = new OptionSelectorMultistateCharacterMenu(layoutRoot.FindAnyWidget("character_shoes_setting_option"), 0, null, false, DefaultCharacterCreationMethods.GetConfigAttachmentTypes(InventorySlots.FEET));
130
131 m_GenderSelector.ShowNavigationButtons(true);
132 m_SkinSelector.ShowNavigationButtons(true);
133 m_TopSelector.ShowNavigationButtons(true);
134 m_BottomSelector.ShowNavigationButtons(true);
135 m_ShoesSelector.ShowNavigationButtons(true);
136
138 {
140 m_MultiOptionSelectors.Insert(layoutRoot.FindAnyWidget("character_gender_button"), m_GenderSelector);
141 m_MultiOptionSelectors.Insert(layoutRoot.FindAnyWidget("character_head_button"), m_SkinSelector);
142 m_MultiOptionSelectors.Insert(layoutRoot.FindAnyWidget("character_top_button"), m_TopSelector);
143 m_MultiOptionSelectors.Insert(layoutRoot.FindAnyWidget("character_bottom_button"), m_BottomSelector);
144 m_MultiOptionSelectors.Insert(layoutRoot.FindAnyWidget("character_shoes_button"), m_ShoesSelector);
145 }
146
147 PlayerBase scene_char = GetPlayerObj();
148 if (scene_char)
149 {
150 Object obj = scene_char.GetInventory().FindAttachment(InventorySlots.BODY);
151 if (obj)
152 m_TopSelector.SetValue(obj.GetType(), false);
153
154 obj = scene_char.GetInventory().FindAttachment(InventorySlots.LEGS);
155 if (obj)
156 m_BottomSelector.SetValue(obj.GetType(), false);
157
158 obj = scene_char.GetInventory().FindAttachment(InventorySlots.FEET);
159 if (obj)
160 m_ShoesSelector.SetValue(obj.GetType(), false);
161
162 m_SkinSelector.SetValue(scene_char.GetType());
163 }
164
165 m_GenderSelector.m_OptionChanged.Insert(GenderChanged);
166 m_SkinSelector.m_OptionChanged.Insert(SkinChanged);
167 m_TopSelector.m_OptionChanged.Insert(TopChanged);
168 m_BottomSelector.m_OptionChanged.Insert(BottomChanged);
169 m_ShoesSelector.m_OptionChanged.Insert(ShoesChanged);
170
171 Refresh();
172 SetCharacter();
174
176
177 return layoutRoot;
178 }
179
181 {
182 m_GenderSelector.m_OptionChanged.Remove(GenderChanged);
183 m_SkinSelector.m_OptionChanged.Remove(SkinChanged);
184 m_TopSelector.m_OptionChanged.Remove(TopChanged);
185 m_BottomSelector.m_OptionChanged.Remove(BottomChanged);
186 m_ShoesSelector.m_OptionChanged.Remove(ShoesChanged);
187 }
188
189 //Button Events
191 void Apply()
192 {
193 if (!m_Scene.GetIntroCharacter().IsDefaultCharacter())
194 {
195 string name = m_NameSelector.GetValue();
196 if (name == "")
198
199 m_Scene.GetIntroCharacter().SaveCharName(name);
200 }
201
202 MainMenu menu_main = MainMenu.Cast(GetGame().GetUIManager().FindMenu(MENU_MAIN));
203 if (menu_main)
204 {
205 menu_main.OnChangeCharacter(false);
206 }
208 }
209
211 void Save()
212 {
213 if (m_Scene.GetIntroCharacter().IsDefaultCharacter())
214 {
215 string name = m_NameSelector.GetValue();
216 if (name == "")
218
219 m_Scene.GetIntroCharacter().SaveCharName(name);
220 m_Scene.GetIntroCharacter().SaveDefaultCharacter();
221 m_Scene.GetIntroCharacter().SetToDefaultCharacter();
222 SetCharacterSaved(true);
223 }
224 }
225
226 void Back()
227 {
228 //bring back DefaultCharacter, if it exists (it should), or a previously played one.
230 #ifdef PLATFORM_CONSOLE
232 {
234 }
235 #endif
236 m_Scene.GetIntroCharacter().SetCharacterID(m_OriginalCharacterID);
237 m_Scene.GetIntroCharacter().CreateNewCharacterById(m_Scene.GetIntroCharacter().GetCharacterID());
239 }
240
242 {
243 if (m_Scene.GetIntroCharacter().IsDefaultCharacter())
244 {
245 GetGame().GetMenuDefaultCharacterData().EquipDefaultCharacter(m_Scene.GetIntroCharacter().GetCharacterObj());
246 }
247 }
248
250 {
251 m_Scene.GetIntroCharacter().SetToDefaultCharacter();
252
253 // make random selection
254 m_Scene.GetIntroCharacter().SetCharacterGender(Math.RandomInt(0, 2));
255
256 if (m_Scene.GetIntroCharacter().IsCharacterFemale())
257 {
258 m_GenderSelector.SetValue("Female");
259 m_SkinSelector.LoadNewValues(m_Scene.GetIntroCharacter().GetCharList(ECharGender.Female), 0);
260 m_SkinSelector.SetRandomValue();
261 }
262 else
263 {
264 m_GenderSelector.SetValue("Male");
265 m_SkinSelector.LoadNewValues(m_Scene.GetIntroCharacter().GetCharList(ECharGender.Male), 0);
266 m_SkinSelector.SetRandomValue();
267 }
268
270
271 m_TopSelector.SetValue(GetGame().GetMenuDefaultCharacterData().GetAttachmentMap().Get(InventorySlots.BODY),false);
272 m_BottomSelector.SetValue(GetGame().GetMenuDefaultCharacterData().GetAttachmentMap().Get(InventorySlots.LEGS),false);
273 m_ShoesSelector.SetValue(GetGame().GetMenuDefaultCharacterData().GetAttachmentMap().Get(InventorySlots.FEET),false);
274
275 Refresh();
276 SetCharacter();
277
279 }
280
281 //Selector Events
283 {
284 ECharGender gender = ECharGender.Male;
285
286 if (m_GenderSelector.GetStringValue() == "Female")
287 {
288 gender = ECharGender.Female;
289 }
290
291 m_Scene.GetIntroCharacter().SetCharacterGender(gender);
292
293 m_SkinSelector.LoadNewValues(m_Scene.GetIntroCharacter().GetCharList(gender) , 0);
294 m_SkinSelector.SetRandomValue();
295 SetCharacterSaved(false);
296 }
297
299 {
300 m_Scene.GetIntroCharacter().CreateNewCharacterByName(m_SkinSelector.GetStringValue(), false);
301 SetCharacterSaved(false);
302 }
303
305 {
307 GetGame().GetMenuDefaultCharacterData().EquipDefaultCharacter(m_Scene.GetIntroCharacter().GetCharacterObj());
308 SetCharacterSaved(false);
309 }
310
312 {
314 GetGame().GetMenuDefaultCharacterData().EquipDefaultCharacter(m_Scene.GetIntroCharacter().GetCharacterObj());
315 SetCharacterSaved(false);
316 }
317
319 {
321 GetGame().GetMenuDefaultCharacterData().EquipDefaultCharacter(m_Scene.GetIntroCharacter().GetCharacterObj());
322 SetCharacterSaved(false);
323 }
324
325 override bool OnKeyPress(Widget w, int x, int y, int key)
326 {
327 super.OnKeyPress(w, x, y, key);
328 return false;
329 }
330
331 override bool OnClick(Widget w, int x, int y, int button)
332 {
333 if (w == m_Apply)
334 {
335 Apply();
336 return true;
337 }
338 else if (w == m_Save)
339 {
340 Save();
342 return true;
343 }
344 else if (w == m_RandomizeCharacter)
345 {
347 return true;
348 }
349 else if (w == m_BackButton)
350 {
351 Back();
352 return true;
353 }
354 return false;
355 }
356
357 override bool OnMouseButtonDown(Widget w, int x, int y, int button)
358 {
359 #ifndef PLATFORM_CONSOLE
361 {
362 if (m_Scene)
364 return true;
365 }
366 #endif
367 return false;
368 }
369
370 override bool OnMouseButtonUp(Widget w, int x, int y, int button)
371 {
372 #ifndef PLATFORM_CONSOLE
373 if (m_Scene)
375 #endif
376 return false;
377 }
378
379 override bool OnMouseEnter(Widget w, int x, int y)
380 {
381 string tooltip_header = "";
382 string tooltip_text = "";
384 switch (w.GetUserID())
385 {
386 case TOOLTIP_ID_APPLY:
387 tooltip_header = "#layout_main_menu_rename";
388 tooltip_text = "#layout_character_creation_apply_tooltip";
389 break;
390
391 case TOOLTIP_ID_SAVE:
392 tooltip_header = "#layout_character_creation_save_character_alt";
393 tooltip_text = "#layout_character_creation_save_tooltip";
394 break;
395 }
396 SetTooltipTexts(w, tooltip_header, tooltip_text);
397 return true;
398 }
399
400 override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
401 {
402 ColorNormal(w);
403 SetFocus(null);
404
405 return true;
406 }
407
408 override bool OnFocus(Widget w, int x, int y)
409 {
410 string tooltip_header = "";
411 string tooltip_text = "";
412 if (IsFocusable(w))
413 {
415 switch (w.GetUserID())
416 {
417 case TOOLTIP_ID_APPLY:
418 tooltip_header = "#layout_main_menu_rename";
419 tooltip_text = "#layout_character_creation_apply_tooltip";
420 break;
421
422 case TOOLTIP_ID_SAVE:
423 tooltip_header = "#layout_character_creation_save_character_alt";
424 tooltip_text = "#layout_character_creation_save_tooltip";
425 break;
426 }
427 SetTooltipTexts(w, tooltip_header, tooltip_text);
428 return true;
429 }
431 return false;
432 }
433
434 override bool OnFocusLost(Widget w, int x, int y)
435 {
436 if (IsFocusable(w))
437 {
438 ColorNormal(w);
439 return true;
440 }
441 return false;
442 }
443
445 {
446 if (w)
447 {
448 return (w == m_Apply || w == m_Save || w == m_RandomizeCharacter || w == m_BackButton);
449 }
450 return false;
451 }
452
453 void SetTooltipTexts(Widget w, string header = "", string desc = "")
454 {
455 #ifndef PLATFORM_CONSOLE
456 bool show = header != "" && desc != "";
457 m_DetailsRoot.Show(show);
458 m_DetailsLabel.SetText(header);
459 m_DetailsText.SetText(desc);
460
461 //moves the widget to parent, setting is relative to widget alignment, case-specific implementation (getter missing!!!)
462 if (show)
463 {
464 float parent_pos_x, parent_pos_y;
465 float parent_size_x, parent_size_y;
466 float layout_size_x, layout_size_y;
467
468 w.GetScreenPos(parent_pos_x,parent_pos_y);
469 w.GetScreenSize(parent_size_x,parent_size_y);
470 layoutRoot.GetScreenSize(layout_size_x,layout_size_y);
471
472 float set_x = layout_size_x - parent_pos_x;
473 float set_y = layout_size_y - parent_pos_y - parent_size_y;
474 m_DetailsRoot.SetPos(set_x,set_y,true);
475 }
476
477 m_DetailsText.Update();
478 m_DetailsLabel.Update();
479 m_DetailsRoot.Update();
480 #endif
481 }
482
484 {
485 bool show_widgets = m_Scene.GetIntroCharacter().IsDefaultCharacter();
486 layoutRoot.FindAnyWidget("character_gender_button").Show(show_widgets);
487 layoutRoot.FindAnyWidget("character_head_button").Show(show_widgets);
488 layoutRoot.FindAnyWidget("character_top_button").Show(show_widgets);
489 layoutRoot.FindAnyWidget("character_bottom_button").Show(show_widgets);
490 layoutRoot.FindAnyWidget("character_shoes_button").Show(show_widgets);
491
492 if (show_widgets)
493 {
494 m_GenderSelector.Focus();
495 }
496 else
497 {
499 }
500 }
501
502 override void OnShow()
503 {
504#ifdef PLATFORM_CONSOLE
505 m_GenderSelector.Focus();
506 OnInputDeviceChanged(GetGame().GetInput().GetCurrentInputDevice());
507#endif
509 }
510
511 override void Refresh()
512 {
513 string name;
514 #ifdef PLATFORM_CONSOLE
515 if (GetGame().GetUserManager() && GetGame().GetUserManager().GetSelectedUser())
516 {
518 if (name.LengthUtf8() > 16)
519 {
520 name = name.SubstringUtf8(0, 16);
521 name += "...";
522 }
523 }
524 #else
525 name = m_Scene.GetIntroCharacter().GetCharacterName();
526 if (name == "")
528 #endif
529
530 m_NameSelector.SetValue(name);
531
532 string version;
533 GetGame().GetVersion(version);
534 #ifdef PLATFORM_CONSOLE
535 version = "#main_menu_version" + " " + version + " (" + g_Game.GetDatabaseID() + ")";
536
537 m_Apply.Show(m_CharacterSaved || !m_Scene.GetIntroCharacter().IsDefaultCharacter());
538 m_Save.Show(!m_CharacterSaved && m_Scene.GetIntroCharacter().IsDefaultCharacter());
539 #else
540 version = "#main_menu_version" + " " + version;
541 m_Apply.Show(!m_Scene.GetIntroCharacter().IsDefaultCharacter());
542 m_Save.Show(m_Scene.GetIntroCharacter().IsDefaultCharacter());
543 #endif
544 m_PlayedCharacterInfo.Show(!m_Scene.GetIntroCharacter().IsDefaultCharacter());
545
546 if (m_Scene.GetIntroCharacter().IsDefaultCharacter())
547 {
548 m_CharacterHeaderText.SetText("#character_menu_header");
549 }
550 else
551 {
552 m_CharacterHeaderText.SetText("#server_browser_prev_play_filter");
553 }
554
555 m_Version.SetText(version);
556
557 #ifdef PLATFORM_CONSOLE
560 #endif
561 }
562
563 override void Update(float timeslice)
564 {
565 if (GetUApi().GetInputByID(UAUIBack).LocalPress())
566 {
567 Back();
568 }
569
570 if (GetUApi().GetInputByID(UAUICtrlX).LocalPress())
571 {
573 }
574
575 if (GetUApi().GetInputByID(UAUIRight).LocalPress())
576 {
577 NextOption();
578 }
579
580 if (GetUApi().GetInputByID(UAUILeft).LocalPress())
581 {
583 }
584
585 #ifdef PLATFORM_CONSOLE
586 if (GetUApi().GetInputByID(UAUICtrlY).LocalPress())
587 {
588 if (m_Scene.GetIntroCharacter().IsDefaultCharacter() && !m_CharacterSaved)
589 {
590 Save();
591 }
592 }
593 #endif
594 }
595
596 protected void NextOption()
597 {
598 Widget w = GetFocus();
599 if (!w)
600 return;
601
603 if (optionSelector)
604 optionSelector.SetNextOption();
605 }
606
607 protected void PreviousOption()
608 {
609 Widget w = GetFocus();
610 if (!w)
611 return;
612
614 if (optionSelector)
615 optionSelector.SetPrevOption();
616 }
617
618 override void OnHide()
619 {
620 }
621
622 //Coloring functions (Until WidgetStyles are useful)
624 {
625 if (w.IsInherited(ButtonWidget))
626 {
627 ButtonWidget button = ButtonWidget.Cast(w);
628 button.SetTextColor(ARGB(255, 200, 0, 0));
629 }
630
631 w.SetColor(ARGB(255, 0, 0, 0));
632
633 TextWidget text1 = TextWidget.Cast(w.FindAnyWidget(w.GetName() + "_text"));
634 TextWidget text2 = TextWidget.Cast(w.FindAnyWidget(w.GetName() + "_label"));
635 TextWidget text3 = TextWidget.Cast(w.FindAnyWidget(w.GetName() + "_text_1"));
636 ImageWidget image = ImageWidget.Cast(w.FindAnyWidget(w.GetName() + "_image"));
637 Widget option = Widget.Cast(w.FindAnyWidget(w.GetName() + "_option_wrapper"));
638 Widget option_label = w.FindAnyWidget("option_label");
639
640 if (text1)
641 {
642 text1.SetColor(ARGB(255, 255, 0, 0));
643 }
644
645 if (text2)
646 {
647 text2.SetColor(ARGB(255, 255, 0, 0));
648 }
649
650 if (text3)
651 {
652 text3.SetColor(ARGB(255, 255, 0, 0));
653 w.SetAlpha(1);
654 }
655
656 if (image)
657 {
658 image.SetColor(ARGB(255, 200, 0, 0));
659 }
660
661 if (option)
662 {
663 option.SetColor(ARGB(255, 255, 0, 0));
664 }
665
666 #ifndef PLATFORM_CONSOLE
667 if (option_label)
668 {
669 option_label.SetColor(ARGB(255, 255, 0, 0));
670 }
671 #endif
672 }
673
675 {
676 if (w.IsInherited(ButtonWidget))
677 {
678 ButtonWidget button = ButtonWidget.Cast(w);
679 button.SetTextColor(ColorManager.COLOR_NORMAL_TEXT);
680 }
681
682 TextWidget text1 = TextWidget.Cast(w.FindAnyWidget(w.GetName() + "_text"));
683 TextWidget text2 = TextWidget.Cast(w.FindAnyWidget(w.GetName() + "_text_1"));
684 TextWidget text3 = TextWidget.Cast(w.FindAnyWidget(w.GetName() + "_label"));
685 ImageWidget image = ImageWidget.Cast(w.FindAnyWidget(w.GetName() + "_image"));
686 Widget option = w.FindAnyWidget(w.GetName() + "_option_wrapper");
687 Widget option_label = w.FindAnyWidget("option_label");
688
689 if (text1)
690 {
691 text1.SetColor(ColorManager.COLOR_NORMAL_TEXT);
692 }
693
694 if (text2)
695 {
696 text2.SetColor(ColorManager.COLOR_NORMAL_TEXT);
697 }
698
699 if (text3)
700 {
701 text3.SetColor(ColorManager.COLOR_NORMAL_TEXT);
702 w.SetAlpha(0);
703 }
704
705 if (image)
706 {
707 image.SetColor(ColorManager.COLOR_NORMAL_TEXT);
708 }
709
710 if (option)
711 {
712 option.SetColor(ARGB(150, 255, 255, 255));
713 }
714
715 #ifndef PLATFORM_CONSOLE
716 if (option_label)
717 {
718 option_label.SetColor(ColorManager.COLOR_NORMAL_TEXT);
719 }
720 #endif
721 }
722
724 {
725 #ifndef PLATFORM_CONSOLE
726 SetFocus(null);
727 #endif
728
729 if (w)
730 {
731 ButtonWidget button = ButtonWidget.Cast(w);
732 if (button)
733 {
734 button.SetTextColor(ColorManager.COLOR_DISABLED_TEXT);
735 }
736 }
737
738 TextWidget text1 = TextWidget.Cast(w.FindAnyWidget(w.GetName() + "_text"));
739 TextWidget text2 = TextWidget.Cast(w.FindAnyWidget(w.GetName() + "_label"));
740 TextWidget text3 = TextWidget.Cast(w.FindAnyWidget(w.GetName() + "_text_1"));
741 ImageWidget image = ImageWidget.Cast(w.FindAnyWidget(w.GetName() + "_image"));
742 Widget option = Widget.Cast(w.FindAnyWidget(w.GetName() + "_option_wrapper"));
743 Widget option_label = w.FindAnyWidget("option_label");
744
745 if (text1)
746 {
747 text1.SetColor(ColorManager.COLOR_DISABLED_TEXT);
748 }
749
750 if (text2)
751 {
752 text2.SetColor(ColorManager.COLOR_DISABLED_TEXT);
753 }
754
755 if (text3)
756 {
757 text3.SetColor(ColorManager.COLOR_DISABLED_TEXT);
758 w.SetAlpha(1);
759 }
760
761 if (image)
762 {
763 image.SetColor(ColorManager.COLOR_DISABLED_TEXT);
764 }
765
766 if (option)
767 {
768 option.SetColor(ColorManager.COLOR_DISABLED_TEXT);
769 }
770
771 #ifndef PLATFORM_CONSOLE
772 if (option_label)
773 {
774 option_label.SetColor(ColorManager.COLOR_DISABLED_TEXT);
775 }
776 #endif
777 }
778
779 void SetCharacterSaved(bool state)
780 {
781 #ifdef PLATFORM_CONSOLE
782 m_CharacterSaved = state;
783 Refresh();
784 #endif
785 }
786
787 protected void UpdateControlsElements()
788 {
789 #ifdef PLATFORM_CONSOLE
790 RichTextWidget toolbar_text = RichTextWidget.Cast(layoutRoot.FindAnyWidget("ContextToolbarText"));
791 string text = "";
792 if (!m_CharacterSaved && m_Scene.GetIntroCharacter().IsDefaultCharacter()) //can be saved..
793 {
794 text += string.Format(" %1",InputUtils.GetRichtextButtonIconFromInputAction("UAUICtrlY", "#layout_character_creation_save_character_alt", EUAINPUT_DEVICE_CONTROLLER, InputUtils.ICON_SCALE_TOOLBAR));
795 }
796 text += string.Format(" %1",InputUtils.GetRichtextButtonIconFromInputAction("UAUICtrlX", "#layout_character_creation_toolbar_randomize", EUAINPUT_DEVICE_CONTROLLER, InputUtils.ICON_SCALE_TOOLBAR));
797 if (m_Scene.GetIntroCharacter().IsDefaultCharacter()) //edit options available
798 {
799 #ifdef PLATFORM_PS4
800 string result = string.Format("<image set=\"%1\" name=\"%2\" scale=\"%3\" />", "playstation_buttons", "DPAD_left_short", 1.92);
801 string result2 = string.Format("<image set=\"%1\" name=\"%2\" scale=\"%3\" />", "playstation_buttons", "DPAD_right_short", 1.92);
802 #else
803 string result = string.Format("<image set=\"%1\" name=\"%2\" scale=\"%3\" />", "xbox_buttons", "DPAD_left_short", 1.92);
804 string result2 = string.Format("<image set=\"%1\" name=\"%2\" scale=\"%3\" />", "xbox_buttons", "DPAD_right_short", 1.92);
805 #endif
806 text += string.Format(" %1%2 %3", result, result2, "#layout_character_creation_toolbar_select");
807 }
808 text += string.Format(" %1",InputUtils.GetRichtextButtonIconFromInputAction("UAUIBack", "#layout_character_creation_toolbar_back", EUAINPUT_DEVICE_CONTROLLER, InputUtils.ICON_SCALE_TOOLBAR));
809 toolbar_text.SetText(text);
810
811 RichTextWidget toolbar_b2 = RichTextWidget.Cast(layoutRoot.FindAnyWidget("BackIcon0"));
812 RichTextWidget toolbar_x2 = RichTextWidget.Cast(layoutRoot.FindAnyWidget("RandomizeIcon0"));
813 RichTextWidget toolbar_y2 = RichTextWidget.Cast(layoutRoot.FindAnyWidget("SaveIcon0"));
814 RichTextWidget toolbar_y2_2 = RichTextWidget.Cast(layoutRoot.FindAnyWidget("ApplyIcon0"));
815
816 string saveTextIcon = InputUtils.GetRichtextButtonIconFromInputAction("UAUICtrlY", "", EUAINPUT_DEVICE_CONTROLLER);
817 toolbar_b2.SetText(InputUtils.GetRichtextButtonIconFromInputAction("UAUIBack", "", EUAINPUT_DEVICE_CONTROLLER));
818 toolbar_x2.SetText(InputUtils.GetRichtextButtonIconFromInputAction("UAUICtrlX", "", EUAINPUT_DEVICE_CONTROLLER));
819 toolbar_y2.SetText(saveTextIcon);
820 toolbar_y2_2.SetText(saveTextIcon);
821 #endif
822 }
823
825 {
826 #ifdef PLATFORM_CONSOLE
828 layoutRoot.FindAnyWidget("toolbar_bg").Show(toolbarShow);
829 layoutRoot.FindAnyWidget("play_panel_root").Show(!toolbarShow);
830 #endif
831 }
832}
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
map
Определения ControlsXboxNew.c:4
DayZGame g_Game
Определения DayZGame.c:3868
Mission mission
Определения DisplayStatus.c:28
ECharGender
Определения ECharGender.c:2
Icon x
Icon y
void OptionSelectorMultistateCharacterMenu(Widget parent, int current_index, ScriptedWidgetEventHandler parent_c, bool disabled, notnull array< string > options)
Определения OptionSelectorMultistate.c:145
override float Get()
Определения PlayerStatBase.c:134
proto native UAInputAPI GetUApi()
proto native owned string GetName()
proto native BiosUser GetSelectedUser()
Returns the currently selected user.
proto native UIManager GetUIManager()
proto native BiosUserManager GetUserManager()
proto native MenuData GetMenuData()
Return singleton of MenuData class - at main menu contains characters played with current profile.
proto native WorkspaceWidget GetWorkspace()
proto void GetVersion(out string version)
proto native Input GetInput()
proto native Mission GetMission()
MenuDefaultCharacterData GetMenuDefaultCharacterData(bool fill_data=true)
Определения Global/game.c:1548
static int COLOR_NORMAL_TEXT
Определения ColorManager.c:5
static int COLOR_DISABLED_TEXT
Определения ColorManager.c:11
Определения ColorManager.c:2
void CharacterRotationStart()
Определения DayZIntroScenePC.c:59
void CharacterRotationStop()
Определения DayZIntroScenePC.c:71
proto native EInputDeviceType GetCurrentInputDevice()
proto native bool IsEnabledMouseAndKeyboard()
static string GetRichtextButtonIconFromInputAction(notnull UAInput pInput, string pLocalizedDescription, int pInputDeviceType=EUAINPUT_DEVICE_CONTROLLER, float pScale=ICON_SCALE_NORMAL, bool pVertical=false)
Определения InputUtils.c:167
static const float ICON_SCALE_TOOLBAR
Определения InputUtils.c:15
Определения InputUtils.c:2
provides access to slot configuration
Определения InventorySlots.c:6
Определения EnMath.c:7
proto bool RequestGetDefaultCharacterData()
void SetDefaultAttachment(int slotID, string type)
Определения gameplay.c:1012
void GenerateRandomEquip()
Определения gameplay.c:1017
void EquipDefaultCharacter(Man player)
Определения gameplay.c:1035
ScriptInvoker GetOnInputDeviceChanged()
Определения gameplay.c:851
Определения ObjectTyped.c:2
Определения PlayerBaseClient.c:2
Определения gameplay.c:317
proto bool Insert(func fn, int flags=EScriptInvokerInsertFlags.IMMEDIATE)
insert method to list
Определения EnWidgets.c:220
void ShowUICursor(bool visible)
Определения UIManager.c:244
bool Back()
Close top window on windows stack, returns true when any window is closed.
Определения UIManager.c:62
void UpdateControlsElementVisibility()
Определения ControlsXboxNew.c:540
ref OptionSelectorMultistateCharacterMenu m_BottomSelector
Определения CharacterCreationMenu.c:29
ref OptionSelectorMultistateCharacterMenu m_TopSelector
Определения CharacterCreationMenu.c:28
void PreviousOption()
Определения CharacterCreationMenu.c:607
RichTextWidget m_DetailsText
Определения CharacterCreationMenu.c:22
override bool OnMouseEnter(Widget w, int x, int y)
Определения CharacterCreationMenu.c:379
void GenderChanged()
Определения CharacterCreationMenu.c:282
override void OnShow()
Определения CharacterCreationMenu.c:502
void ShoesChanged()
Определения CharacterCreationMenu.c:318
void ColorDisable(Widget w)
Определения CharacterCreationMenu.c:723
ButtonWidget m_Save
Определения CameraToolsMenu.c:43
override bool OnFocus(Widget w, int x, int y)
Определения CharacterCreationMenu.c:408
override void Update(float timeslice)
Определения CharacterCreationMenu.c:563
int m_OriginalCharacterID
Определения CharacterCreationMenu.c:34
TextWidget m_DetailsLabel
Определения CharacterCreationMenu.c:21
override void Refresh()
Определения ChatInputMenu.c:70
TextWidget m_Version
Определения InGameMenuXbox.c:33
TextWidget m_CharacterHeaderText
Определения CharacterCreationMenu.c:23
void ColorHighlight(Widget w)
Определения ControlsXboxNew.c:446
bool IsFocusable(Widget w)
Определения CameraToolsMenu.c:960
const int TOOLTIP_ID_SAVE
Определения CharacterCreationMenu.c:10
void SetTooltipTexts(Widget w, string header="", string desc="")
Определения CharacterCreationMenu.c:453
Widget m_Apply
Определения CharacterCreationMenu.c:14
ref OptionSelectorMultistateCharacterMenu m_GenderSelector
Определения CharacterCreationMenu.c:26
const int TOOLTIP_ID_APPLY
Определения CharacterCreationMenu.c:11
ref OptionSelectorMultistateCharacterMenu m_SkinSelector
Определения CharacterCreationMenu.c:27
void Apply()
renames character
Определения CharacterCreationMenu.c:191
void OnInputDeviceChanged(EInputDeviceType pInputDeviceType)
Определения CharacterCreationMenu.c:54
void CheckNewOptions()
Определения CharacterCreationMenu.c:483
void BottomChanged()
Определения CharacterCreationMenu.c:311
void NextOption()
Определения CharacterCreationMenu.c:596
override bool OnKeyPress(Widget w, int x, int y, int key)
Определения CharacterCreationMenu.c:325
Widget m_CharacterRotationFrame
Определения CharacterCreationMenu.c:13
override void OnHide()
Определения CharacterCreationMenu.c:618
void SkinChanged()
Определения CharacterCreationMenu.c:298
void TopChanged()
Определения CharacterCreationMenu.c:304
void SetCharacterSaved(bool state)
Определения CharacterCreationMenu.c:779
override bool OnMouseButtonUp(Widget w, int x, int y, int button)
Определения CharacterCreationMenu.c:370
override bool OnFocusLost(Widget w, int x, int y)
Определения CharacterCreationMenu.c:434
override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
Определения CharacterCreationMenu.c:400
void Back()
Определения CharacterCreationMenu.c:226
ref OptionSelectorMultistateCharacterMenu m_ShoesSelector
Определения CharacterCreationMenu.c:30
void Save()
saves default character
Определения CharacterCreationMenu.c:211
override bool OnMouseButtonDown(Widget w, int x, int y, int button)
Определения CharacterCreationMenu.c:357
void CharacterCreationMenu()
Определения CharacterCreationMenu.c:36
DayZIntroScenePC m_Scene
Определения CharacterCreationMenu.c:7
Widget m_BackButton
Определения CharacterCreationMenu.c:17
void UpdateControlsElements()
Определения ControlsXboxNew.c:527
PlayerBase GetPlayerObj()
Определения CharacterCreationMenu.c:49
Widget m_RandomizeCharacter
Определения CharacterCreationMenu.c:16
ref map< Widget, OptionSelectorMultistateCharacterMenu > m_MultiOptionSelectors
Определения CharacterCreationMenu.c:32
void ~CharacterCreationMenu()
Определения CharacterCreationMenu.c:180
override Widget Init()
Определения CharacterCreationMenu.c:79
override bool OnClick(Widget w, int x, int y, int button)
Определения CharacterCreationMenu.c:331
Widget m_DetailsRoot
Определения CharacterCreationMenu.c:20
void RandomizeCharacter()
Определения CharacterCreationMenu.c:249
void SetCharacter()
Определения CharacterCreationMenu.c:241
void ColorNormal(Widget w)
Определения ControlsXboxNew.c:463
ref OptionSelectorEditbox m_NameSelector
Определения CharacterCreationMenu.c:25
Widget m_PlayedCharacterInfo
Определения CharacterCreationMenu.c:18
Определения DayZGame.c:64
Определения EnWidgets.c:190
proto native CGame GetGame()
const int DEFAULT_CHARACTER_MENU_ID
Определения 3_Game/constants.c:984
const string DEFAULT_CHARACTER_NAME
Определения 3_Game/constants.c:982
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].
const int MENU_MAIN
Определения 3_Game/constants.c:182
static proto string Format(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
Gets n-th character from string.
proto native external Widget CreateWidgets(string layout, Widget parentWidget=NULL, bool immedUpdate=true)
Create widgets from *.layout file.
proto native Widget GetFocus()
proto native void SetFocus(Widget w)
EInputDeviceType
Определения input.c:3
int ARGB(int a, int r, int g, int b)
Определения proto.c:322