utility.tscript 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. function ActionMap::getCommandButtonBitmap(%this, %device, %command)
  2. {
  3. %binding = %this.getBinding(%command);
  4. if(%device $= "mouse" || %device $= "")
  5. %device = "keyboard";
  6. %bindingCount = getFieldCount(%binding);
  7. for(%i=0; %i < %bindingCount; %i+=2)
  8. {
  9. %mapDevice = stripTrailingNumber(getField(%binding, %i));
  10. if(%mapDevice $= %device)
  11. {
  12. %button = getField(%binding, %i+1);
  13. break;
  14. }
  15. }
  16. %assetId = getButtonBitmap(%device, %button);
  17. return %assetId;
  18. }
  19. function getButtonBitmap(%device, %button)
  20. {
  21. if(%device $= "gamepad")
  22. {
  23. //In the event we passed in a generic gamepad device name, we'll try fetching the actual device here
  24. %device = SDLInputManager::JoystickNameForIndex(0);
  25. //If we couldn't figure out what it was, just use the generic Xbox images
  26. if(%device $= "")
  27. %device = "Xbox";
  28. }
  29. %assetId = "";
  30. if(%device $= "PS4")
  31. {
  32. %assetId = "UI:PS4_";
  33. if(%button $= "A" || %button $= "btn_a")
  34. %assetId = %assetId @ "Cross";
  35. else if(%button $= "B" || %button $= "btn_b")
  36. %assetId = %assetId @ "Circle";
  37. else if(%button $= "X" || %button $= "btn_x")
  38. %assetId = %assetId @ "Square";
  39. else if(%button $= "Y" || %button $= "btn_y")
  40. %assetId = %assetId @ "Triangle";
  41. else if(%button $= "LB" || %button $= "btn_l")
  42. %assetId = %assetId @ "L1";
  43. else if(%button $= "LT" || %button $= "btn_lt")
  44. %assetId = %assetId @ "L2";
  45. else if(%button $= "RB" || %button $= "btn_r")
  46. %assetId = %assetId @ "R1";
  47. else if(%button $= "RT" || %button $= "btn_rt")
  48. %assetId = %assetId @ "R2";
  49. else if(%button $= "thumbrx" || %button $= "thumbry")
  50. %assetId = %assetId @ "Right_Stick";
  51. else if(%button $= "thumblx" || %button $= "thumbly")
  52. %assetId = %assetId @ "Left_Stick";
  53. else if(%button $= "start" || %button $= "btn_start" )
  54. %assetId = %assetId @ "Options";
  55. else if(%button $= "back"|| %button $= "btn_back")
  56. %assetId = %assetId @ "Share";
  57. else if(%button $= "dpadu")
  58. %assetId = %assetId @ "Dpad_Up";
  59. else if(%button $= "dpadd")
  60. %assetId = %assetId @ "Dpad_Down";
  61. else if(%button $= "dpadl")
  62. %assetId = %assetId @ "Dpad_Left";
  63. else if(%button $= "dpadr")
  64. %assetId = %assetId @ "Dpad_Right";
  65. %assetId = %assetId @ "_image";
  66. }
  67. else if(%device $= "Switch")
  68. {
  69. %assetId = "UI:Switch_";
  70. if(%button $= "A" || %button $= "btn_a")
  71. %assetId = %assetId @ "B";
  72. else if(%button $= "B" || %button $= "btn_b")
  73. %assetId = %assetId @ "A";
  74. else if(%button $= "X" || %button $= "btn_x")
  75. %assetId = %assetId @ "Y";
  76. else if(%button $= "Y" || %button $= "btn_y")
  77. %assetId = %assetId @ "X";
  78. else if(%button $= "LB" || %button $= "btn_l")
  79. %assetId = %assetId @ "LB";
  80. else if(%button $= "LT" || %button $= "btn_lt")
  81. %assetId = %assetId @ "LT";
  82. else if(%button $= "RB" || %button $= "btn_r")
  83. %assetId = %assetId @ "RB";
  84. else if(%button $= "RT" || %button $= "btn_rt")
  85. %assetId = %assetId @ "RT";
  86. else if(%button $= "thumbrx" || %button $= "thumbry")
  87. %assetId = %assetId @ "Right_Stick";
  88. else if(%button $= "thumblx" || %button $= "thumbly")
  89. %assetId = %assetId @ "Left_Stick";
  90. else if(%button $= "start" || %button $= "btn_start" )
  91. %assetId = %assetId @ "Plus";
  92. else if(%button $= "back" || %button $= "btn_back" )
  93. %assetId = %assetId @ "Minus";
  94. else if(%button $= "dpadu")
  95. %assetId = %assetId @ "Dpad_Up";
  96. else if(%button $= "dpadd")
  97. %assetId = %assetId @ "Dpad_Down";
  98. else if(%button $= "dpadl")
  99. %assetId = %assetId @ "Dpad_Left";
  100. else if(%button $= "dpadr")
  101. %assetId = %assetId @ "Dpad_Right";
  102. %assetId = %assetId @ "_image";
  103. }
  104. else if(%device $= "Keyboard" || %device $= "Mouse")
  105. {
  106. if(%button $= "lshift" || %button $= "rshift")
  107. %button = "shift";
  108. %assetId = "UI:Keyboard_Black_" @ %button @ "_image";
  109. }
  110. else if(%device !$= "")
  111. {
  112. %assetId = "UI:Xbox_";
  113. if(%button $= "btn_a")
  114. %assetId = %assetId @ "A";
  115. else if(%button $= "btn_b")
  116. %assetId = %assetId @ "B";
  117. else if(%button $= "btn_x")
  118. %assetId = %assetId @ "X";
  119. else if(%button $= "btn_y")
  120. %assetId = %assetId @ "Y";
  121. else if(%button $= "LB" || %button $= "btn_l")
  122. %assetId = %assetId @ "LB";
  123. else if(%button $= "LT" || %button $= "btn_lt")
  124. %assetId = %assetId @ "LT";
  125. else if(%button $= "RB" || %button $= "btn_r")
  126. %assetId = %assetId @ "RB";
  127. else if(%button $= "RT" || %button $= "btn_rt")
  128. %assetId = %assetId @ "RT";
  129. else if(%button $= "thumbrx" || %button $= "thumbry")
  130. %assetId = %assetId @ "Right_Stick";
  131. else if(%button $= "thumblx" || %button $= "thumbly")
  132. %assetId = %assetId @ "Left_Stick";
  133. else if(%button $= "start" || %button $= "btn_start" )
  134. %assetId = %assetId @ "Menu";
  135. else if(%button $= "back" || %button $= "btn_back" )
  136. %assetId = %assetId @ "Windows";
  137. else if(%button $= "dpadu")
  138. %assetId = %assetId @ "Dpad_Up";
  139. else if(%button $= "dpadd")
  140. %assetId = %assetId @ "Dpad_Down";
  141. else if(%button $= "dpadl")
  142. %assetId = %assetId @ "Dpad_Left";
  143. else if(%button $= "dpadr")
  144. %assetId = %assetId @ "Dpad_Right";
  145. %assetId = %assetId @ "_image";
  146. }
  147. if(!AssetDatabase.isDeclaredAsset(%assetId))
  148. %assetId = "UI:Keyboard_Black_Blank_image";
  149. return %assetId;
  150. }
  151. function createLangTable(%name)
  152. {
  153. // create a langtable, and global variable to be referenced by GUI elements
  154. // opeates as follows:
  155. // root gui element contains langTableMod = mylang;
  156. // subelements inherit or override
  157. // langTableMod then informs the underlying system to look for a $I18N::mylang
  158. // this holds a reference to a table defined in .lso files, using data/UI/langs/languageMap global defines as a key
  159. new LangTable(%name){};
  160. eval("$I18N::"@ %name @"="@ %name @".getId();");
  161. }
  162. function addLanguage(%langTable, %filename, %alias)
  163. {
  164. // generate an .lso file and if a languageMap file does not exist, it as well
  165. %needLangMap = true;
  166. if(isFile("data/UI/langs/languageMap"))
  167. %needLangMap = false;
  168. CompileLanguage("data/UI/langs/"@ %filename @".txt", %needLangMap);
  169. %langTable.addLanguage("data/UI/langs/"@ %filename @".lso", %alias);
  170. }
  171. function switchLanguage(%language) //use here the #n as it's the order of inclusion
  172. {
  173. // swap existing language from the current core langtable and refresh the gui contents
  174. getCoreLangTable().setCurrentLanguage(%language);
  175. Canvas.setContent(Canvas.getContent());
  176. }