creditsdepartmentelement.c 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. class CreditsDepartmentElement extends CreditsElement
  2. {
  3. protected TextWidget m_DepartmentTitle;
  4. protected GridSpacerWidget m_DepartmentSections;
  5. protected ref array<ref CreditsDepartmentSection> m_DepartmentSectionEntries = new array<ref CreditsDepartmentSection>;
  6. void CreditsDepartmentElement( int index, Widget parent, JsonDataCreditsDepartment department_data )
  7. {
  8. m_Root = GetGame().GetWorkspace().CreateWidgets( "gui/layouts/new_ui/credits/department_element/department_element.layout", parent );
  9. m_DepartmentTitle = TextWidget.Cast( m_Root.FindAnyWidget( "department_title" ) );
  10. m_DepartmentSections = GridSpacerWidget.Cast( m_Root.FindAnyWidget( "department_sections" ) );
  11. if( department_data.DepartmentName != "" )
  12. {
  13. m_DepartmentTitle.SetText( department_data.DepartmentName );
  14. }
  15. else
  16. {
  17. m_DepartmentTitle.Show( false );
  18. m_Root.FindAnyWidget( "SeparatorPanel" ).Show( false );
  19. }
  20. m_Root.SetSort( index );
  21. LoadDataAsync( department_data.Sections );
  22. }
  23. void LoadDataAsync( array<ref JsonDataCreditsSection> department_data )
  24. {
  25. for( int i = 1; i <= department_data.Count(); i++ )
  26. {
  27. ref CreditsDepartmentSection e = new CreditsDepartmentSection( i, m_DepartmentSections, department_data.Get( i - 1 ) );
  28. m_DepartmentSectionEntries.Insert( e );
  29. }
  30. m_DepartmentSections.Update();
  31. }
  32. }
  33. class CreditsDepartmentSection extends CreditsElement
  34. {
  35. protected TextWidget m_SectionTitle;
  36. protected WrapSpacerWidget m_SectionSections;
  37. protected ref array<Widget> m_SectionEntries = new array<Widget>;
  38. void CreditsDepartmentSection( int index, Widget parent, JsonDataCreditsSection section_data )
  39. {
  40. m_Root = GetGame().GetWorkspace().CreateWidgets( "gui/layouts/new_ui/credits/department_element/department_section.layout", parent );
  41. m_SectionTitle = TextWidget.Cast( m_Root.FindAnyWidget( "section_title" ) );
  42. m_SectionSections = WrapSpacerWidget.Cast( m_Root.FindAnyWidget( "section_elements" ) );
  43. if( section_data.SectionName != "" )
  44. {
  45. m_SectionTitle.SetText( section_data.SectionName );
  46. }
  47. else
  48. {
  49. m_SectionTitle.Show( false );
  50. m_Root.FindAnyWidget( "SeparatorPanel" ).Show( false );
  51. }
  52. LoadDataAsync( section_data.SectionLines );
  53. m_Root.SetSort( index );
  54. }
  55. void LoadDataAsync( array<string> section_data )
  56. {
  57. for( int i = 1; i <= section_data.Count(); i++ )
  58. {
  59. TextWidget w = TextWidget.Cast( GetGame().GetWorkspace().CreateWidgets( "gui/layouts/new_ui/credits/department_element/department_section_element.layout", m_SectionSections ) );
  60. w.SetText( section_data.Get( i - 1 ) + " \n" );
  61. w.Update();
  62. m_Root.SetSort( i );
  63. m_SectionEntries.Insert( w );
  64. }
  65. m_SectionSections.Update();
  66. }
  67. }