ThatGayFaggot

Gregtech 6 Multipurpose Omniocular Scripts [/{M}mcg/ edit]

May 5th, 2021 (edited)
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 47.84 KB | None | 0 0
  1. <oo>
  2. <!-- 关于脚本的一些配置 -->
  3. <!-- 当EnableTempratureLimit = 1 且 CrucibleMaxShowTemp < 200的情况下,坩埚温度将不会显示 -->
  4. <init>
  5. importClass(Packages.gregapi.util.UT);
  6. importClass(Packages.gregapi.data.MT);
  7. function getConfig(aString){
  8. switch(aString){
  9. case "ScriptStyle":{return "2018a";}
  10. case "ShowEnergyCache":{return 1;}
  11. case "ShowLiquidCache":{return 1;}
  12. }
  13. }
  14. </init>
  15.  
  16. <init>
  17. function getReactorHeat(nbt){
  18. var inv = nbt['gt.invlist'];
  19. var heat = 0;
  20. for(i = 0;i < 4;i++){
  21. if(inv[i.toString()] == null) continue;
  22. var type = getRodType(inv[i.toString()]['Damage']);
  23. var neutron = nbt[("gt.value.o." + inv[i.toString()]['s'])];
  24. if(neutron == undefined) continue;
  25. switch(type){
  26. case "breeder": {heat += neutron / 2;break;}
  27. case "absorber": {heat += neutron * 2;break;}
  28. case "fuel": {heat += neutron;break;}
  29. default: continue;
  30. }
  31. }
  32.  
  33. if(nbt['gt.tank.0']['FluidName'] == "molten.tin") {
  34. if(heat % 3 == 0) return parseInt(heat / 3);
  35. return parseInt(heat / 3) + 1;
  36. }
  37. if(nbt['gt.tank.0']['FluidName'] == "molten.sodium") {
  38. if(heat % 3 == 0) return parseInt(heat / 6);
  39. return parseInt(heat / 6) + 1;
  40. }
  41. return heat;
  42. }
  43. </init>
  44.  
  45. <init>
  46. function getRodType(aID){
  47. switch(aID){
  48. case 9202: return "absorber";
  49. case 9203: return "reflector";
  50. case 9204: return "moderator";
  51. default:
  52. if(aID > 9400) return "breeder";
  53. if(aID > 9300) return "none";
  54. if(aID > 9209) return "fuel";
  55. return "none";
  56. }
  57. }
  58. </init>
  59.  
  60. <init>
  61. function getInternalODName(aID){
  62. var t = Packages.gregapi.oredict.OreDictMaterial.get(aID);
  63. return t.mNameInternal;
  64. }
  65. </init>
  66.  
  67. <init>
  68. importClass(Packages.java.lang.reflect.Field);
  69. importClass(Packages.java.lang.Class);
  70.  
  71. function getPlayer(){
  72. var _class = Class.forName("me.exz.omniocular.handler.JSHandler");
  73. var _field = _class.getDeclaredField("entityPlayer");
  74. _field.setAccessible(true);
  75. return _field.get(null);
  76. }
  77. </init>
  78.  
  79.  
  80. <init>
  81. importClass(Packages.net.minecraft.client.Minecraft);
  82. function getWorld(){
  83. return Minecraft.func_71410_x().field_71441_e;
  84. }
  85. </init>
  86. <init>
  87. function isRaining(){
  88. return getWorld().func_72896_J();
  89. }
  90. </init>
  91. function canBlockSeeSky(xPos,yPos,zPos){
  92. return getWorld().func_72937_j(xPos,yPos,zPos);
  93. }
  94.  
  95.  
  96. <init>
  97. try{
  98. importClass(Packages.gregapi.block.multitileentity.MultiTileEntityRegistry);
  99. importClass(Packages.java.lang.reflect.Field);
  100. importClass(Packages.java.lang.Class);
  101. }catch(e){}
  102.  
  103. function getTimer(tile){
  104. var _class = Class.forName("gregapi.tileentity.base.TileEntityBase02AdjacentTEBuffer");
  105. var _field = _class.getDeclaredField("mTimer");
  106. _field.setAccessible(true);
  107. return _field.get(tile);
  108. }
  109.  
  110. </init>
  111.  
  112. <!-- ID to EnergyTier -->
  113. <!-- HU SU - 蒸汽锅炉,SU KU - 蒸汽引擎,EU KU - 电动引擎,SU RU - 单方块涡轮,EU HU - 电力加热器, -->
  114. <!-- EU RU - 电力旋转动能引擎,EU MU - 电磁铁,EU EU - 变压器,EU EU - 电池盒,EU LU - CO2激光器, -->
  115. <!-- RU EU - 发电机,LU QU - 量子充能器, LU LU - 晶体充能器,LU EU - 激光接收器,EU CU HU - 半导体制冷器, -->
  116. <init>
  117. function ID2Tier(mID,mInput,mOutput,isInput){
  118. var tInput = 0;
  119. var tOutput = 0;
  120.  
  121. if(mInput == "HU"){
  122. if(mOutput == "SU"){
  123. if(mID >= 17200){
  124. switch(mID){
  125. case 17201:{tInput = 4096;break;}
  126. case 17202:{tInput = 8192;break;}
  127. case 17203:{tInput = 16384;break;}
  128. case 17204:{tInput = 131072;break;}
  129. case 17205:{tInput = 4096;break;}
  130. }
  131. }
  132. else if(mID >= 1250){
  133. tInput = 4 * ID2Tier(mID - 50,"HU","SU",1);
  134. }
  135. else if(mID >= 1200){
  136. switch(mID){
  137. case 1200:{tInput = 16;break;}
  138. case 1201:{tInput = 20;break;}
  139. case 1202:{tInput = 24;break;}
  140. case 1203:{tInput = 16;break;}
  141. case 1204:{tInput = 32;break;}
  142. case 1205:{tInput = 96;break;}
  143. case 1206:{tInput = 112;break;}
  144. case 1207:{tInput = 128;break;}
  145. case 1208:{tInput = 128;break;}
  146. }
  147. }
  148.  
  149. tOutput = tInput * 2;
  150. }
  151. }
  152. if(mInput == "SU"){
  153. if(mOutput == "KU"){
  154. if(mID > 1311){
  155. tOutput = 4 * ID2Tier(mID - 50,"SU","KU",0);
  156. }
  157. else if(mID >= 1300){
  158. switch(mID){
  159. case 1300:{tOutput = 8;break;}
  160. case 1301:{tOutput = 10;break;}
  161. case 1302:{tOutput = 12;break;}
  162. case 1303:{tOutput = 8;break;}
  163. case 1304:{tOutput = 16;break;}
  164. case 1305:{tOutput = 48;break;}
  165. case 1306:{tOutput = 56;break;}
  166. case 1307:{tOutput = 64;break;}
  167. case 1308:{tOutput = 64;break;}
  168. case 1309:{tOutput = 12;break;}
  169. case 1310:{tOutput = 8;break;}
  170. case 1311:{tOutput = 32;break;}
  171. }
  172. }
  173.  
  174. tInput = parseInt(tOutput * 2 * 10000 / SteamEff(mID));
  175. }
  176. if(mOutput == "RU"){
  177. switch(mID){
  178. case 1512:{tOutput = 16;break;}
  179. case 1515:{tOutput = 24;break;}
  180. case 1518:{tOutput = 32;break;}
  181. case 1522:{tOutput = 64;break;}
  182. case 1525:{tOutput = 96;break;}
  183. case 1527:{tOutput = 128;break;}
  184. case 1528:{tOutput = 128;break;}
  185. case 1529:{tOutput = 128;break;}
  186. case 1530:{tOutput = 256;break;}
  187. case 1531:{tOutput = 256;break;}
  188. case 1535:{tOutput = 384;break;}
  189. case 1538:{tOutput = 512;break;}
  190. case 1540:{tOutput = 768;break;}
  191. case 1545:{tOutput = 1024;break;}
  192. case 1548:{tOutput = 2048;break;}
  193. case 17211:{tOutput = 4096;break;}
  194. case 17212:{tOutput = 8192;break;}
  195. case 17213:{tOutput = 16384;break;}
  196. case 17214:{tOutput = 131072;break;}
  197. }
  198.  
  199. tInput = tOutput * 3;
  200. }
  201. }
  202. if(mInput == "EU"){
  203. if(mOutput == "KU"){
  204. tInput = 8 * Math.pow(4,(mID % 10010));
  205. tOutput = tInput / 2;
  206. }
  207. if(mOutput == "HU"){
  208. if(mID >= 10160){
  209. tInput = 8 * Math.pow(4,(mID % 10160));
  210. tOutput = tInput / 4;
  211. }
  212. else if(mID >= 10000){
  213. tInput = 8 * Math.pow(4,(mID % 10000));
  214. tOutput = tInput / 2;
  215. }
  216. }
  217. if(mOutput == "RU"){
  218. tInput = 8 * Math.pow(4,(mID % 10020));
  219. tOutput = tInput / 2;
  220. }
  221. if(mOutput == "MU"){
  222. tInput = 8 * Math.pow(4,(mID % 10030));
  223. tOutput = tInput / 2;
  224. }
  225. if(mOutput == "EU"){
  226. if(mID >= 10090){
  227. tInput = 8 * Math.pow(4,(mID % 10090));
  228. tOutput = tInput;
  229. }
  230. else if(mID >= 10080){
  231. tInput = 8 * Math.pow(4,(mID % 10080));
  232. tOutput = tInput;
  233. }
  234. else if(mID >= 10040){
  235. tOutput = 8 * Math.pow(4,(mID % 10040));
  236. tInput = tOutput * 4;
  237. }
  238. }
  239. if(mOutput == "LU"){
  240. tInput = 8 * Math.pow(4,(mID % 10100));
  241. tOutput = tInput / 2;
  242. }
  243. if(mOutput == "CU"){
  244. if(mID >= 10160){
  245. tInput = 8 * Math.pow(4,(mID % 10160));
  246. tOutput = tInput / 4;
  247. }
  248. }
  249. }
  250. if(mInput == "RU"){
  251. if(mOutput == "EU"){
  252. if(mID > 17220){
  253. switch(mID){
  254. case 17221:{tInput = 4096;break;}
  255. case 17222:{tInput = 8192;break;}
  256. case 17223:{tInput = 16384;break;}
  257. case 17224:{tInput = 131072;break;}
  258. }
  259. tOutput = tInput * 3 / 4
  260. }
  261. else{
  262. tInput = 8 * Math.pow(4,(mID % 10110));
  263. tOutput = parseInt(tInput * 6875 / 10000);
  264. }
  265. }
  266. }
  267. if(mInput == "RF"){
  268. if(mOutput == "HU"){
  269. tInput = 32 * Math.pow(4,(mID % 11000));
  270. tOutput = tInput / 4 / 2;
  271. }
  272. if(mOutput == "KU"){
  273. tInput = 32 * Math.pow(4,(mID % 11010));
  274. tOutput = tInput / 4 / 2;
  275. }
  276. if(mOutput == "RU"){
  277. tInput = 32 * Math.pow(4,(mID % 11020));
  278. tOutput = tInput / 4 / 2;
  279. }
  280. if(mOutput == "MU"){
  281. tInput = 32 * Math.pow(4,(mID % 11030));
  282. tOutput = tInput / 4 / 2;
  283. }
  284. if(mOutput == "LU"){
  285. tInput = 32 * Math.pow(4,(mID % 11100));
  286. tOutput = tInput / 4 / 2;
  287. }
  288. if(mOutput == "CU"){
  289. tInput = 32 * Math.pow(4,(mID % 11160));
  290. tOutput = tInput / 4 / 4;
  291. }
  292.  
  293. }
  294. if(mInput == "LU"){
  295. if(mOutput == "QU"){
  296. tInput = 8 * Math.pow(4,(mID % 10120));
  297. tOutput = tInput / 2;
  298. }
  299. if(mOutput == "LU"){
  300. if(mID >= 10140){
  301. tInput = 8 * Math.pow(4,(mID % 10140));
  302. tOutput = tInput;
  303. }
  304. else if(mID >= 10130){
  305. tInput = 8 * Math.pow(4,(mID % 10130));
  306. tOutput = tInput;
  307. }
  308. }
  309. if(mOutput == "EU"){
  310. tInput = 8 * Math.pow(4,(mID % 10150));
  311. tOutput = tInput / 2;
  312. }
  313. }
  314.  
  315. if(isInput == 1){
  316. return tInput;
  317. }
  318. else if(isInput == 0){
  319. return tOutput;
  320. }
  321. }
  322. </init>
  323.  
  324. <init>
  325. function isMachineWork(aNBT){
  326. if(aNBT['gt.active'] != undefined){
  327. return BLUE + "Processing";
  328. }
  329. if(aNBT['gt.running'] != undefined){
  330. if(nbt['gt.mte.id'] < 22000){
  331. if(nbt['gt.mte.id'] == 17110){
  332. return BLUE + "Standby";
  333. }
  334. return BLUE + "Standby - Usage";
  335. }
  336. return BLUE + "Standby";
  337. }
  338. return RED + "Offline";
  339. }
  340. </init>
  341.  
  342. <!-- gt砧耐久 -->
  343. <init>
  344. function anvilDurability(aNBT){
  345. switch(aNBT['gt.mte.id']){
  346. case 32025:{return 1;}
  347. case 32026:{return 10;}
  348. case 32027:{return 10;}
  349. case 32028:{return 100;}
  350. case 32029:{return 200;}
  351. case 32030:{return 750;}
  352. case 32031:{return 1000;}
  353. case 32032:{return 2500;}
  354. case 32034:{return 3000;}
  355. case 32035:{return 4000;}
  356. case 32036:{return 5000;}
  357. case 32037:{return 7000;}
  358. case 32038:{return 8000;}
  359. case 32040:{return 10000;}
  360. case 32043:{return 40000;}
  361. case 32044:{return 100000;}
  362. case 32045:{return 200000;}
  363. case 32046:{return 1000000;}
  364. case 32048:{return 100000000;}
  365. case 32049:{return 100000000;}
  366. case 32050:{return 80;}
  367. case 32071:{return 1250;}
  368. case 32088:{return 15000;}
  369. case 32092:{return 2000;}
  370. case 32095:{return 10;}
  371. }
  372.  
  373. }
  374. </init>
  375.  
  376. <!--流体燃烧室容量 -->
  377. <init>
  378. function BurningBox_Cap(id){
  379. switch(id){
  380. case 1402:{return 240;}
  381. case 1403:{return 160;}
  382. case 1404:{return 320;}
  383. case 1405:{return 1120;}
  384. case 1406:{return 960;}
  385. case 1407:{return 1280;}
  386. case 1408:{return 1280;}
  387. case 1409:{return 2560;}
  388. case 1410:{return 960;}
  389. case 1411:{return 240;}
  390. case 1412:{return 280;}
  391. default:{
  392. if(id > 1460){
  393. return BurningBox_Cap(id - 200);
  394. }
  395. if(id > 1410){
  396. return BurningBox_Cap(id - 50);
  397. }
  398. }
  399. }
  400. }
  401. </init>
  402.  
  403. <init>
  404. function SteamEff(mID){
  405. if(mID >= 1350){
  406. return SteamEff(mID - 50);
  407. }
  408. switch(mID){
  409. case 1300:{return 3000;}
  410. case 1301:{return 4000;}
  411. case 1302:{return 5000;}
  412. case 1303:{return 6400;}
  413. case 1304:{return 5000;}
  414. case 1305:{return 6300;}
  415. case 1306:{return 5800;}
  416. case 1307:{return 5800;}
  417. case 1308:{return 6000;}
  418. case 1309:{return 5000;}
  419. case 1310:{return 6450;}
  420. case 1311:{return 6200;}
  421. }
  422. }
  423. </init>
  424.  
  425. <init>
  426. function bind(aMin,aMax,aValue){
  427. return Math.max(aMin,Math.min(aMax,aValue));
  428. }
  429. </init>
  430.  
  431. <init>
  432. function SteamCap(SC){
  433. return ID2Tier(SC['gt.mte.id'],"HU","SU",1) * 10000;
  434. }
  435. </init>
  436.  
  437. <!-- 电池盒参数 -->
  438. <init>
  439. function BatteryBoxArg(BBA,isLarge,ArgType,isEU){
  440. var BatteryAmount = 0;
  441. var EUAmount = 0;
  442. var BatteryCap = 0;
  443. var BatteryIDArg = 200;
  444. var BatteryIDArg_2 = 14000;
  445. var BatteryBoxArg_0 = 10080;
  446. var BatteryBoxArg_1 = 10090;
  447. var errorAmount = 0;
  448.  
  449. if(isEU != 1){
  450. BatteryIDArg = 210;
  451. BatteryIDArg_2 = 14500;
  452. BatteryBoxArg_0 = 10130;
  453. BatteryBoxArg_1 = 10140;
  454. }
  455.  
  456. for (var i = 0; i < 16;i++) {
  457. if(isLarge != 1){
  458. if(i >= 4){
  459. break;
  460. }
  461. }
  462. if(BBA['gt.invlist'][i.toString()] != undefined){
  463. try{
  464. if((BBA['gt.invlist'][i.toString()]['Damage'] >= 20100) && (parseInt((BBA['gt.invlist'][i.toString()]['Damage'] / 100) % BatteryIDArg) == (BBA['gt.mte.id'] % BatteryBoxArg_0) || parseInt((BBA['gt.invlist'][i.toString()]['Damage'] / 100) % BatteryIDArg) == (BBA['gt.mte.id'] % BatteryBoxArg_1))){
  465. if(BBA['gt.invlist'][i.toString()]['tag'] != undefined){
  466. EUAmount += BBA['gt.invlist'][i.toString()]['tag']['gt.energy'];
  467. }
  468. BatteryAmount++;
  469. if(isEU == 1){
  470. BatteryCap += ID2Cap(BBA['gt.invlist'][i.toString()]['Damage'],"EU");
  471. }else{
  472. BatteryCap += ID2Cap(BBA['gt.invlist'][i.toString()]['Damage'],"LU");
  473. }
  474. }
  475. else if((BBA['gt.invlist'][i.toString()]['Damage'] >= 14000) && (BBA['gt.invlist'][i.toString()]['Damage'] <= 14515) && (parseInt((BBA['gt.invlist'][i.toString()]['Damage'] % BatteryIDArg_2) % 10) == (BBA['gt.mte.id'] % BatteryBoxArg_0) || parseInt((BBA['gt.invlist'][i.toString()]['Damage'] % BatteryIDArg_2) % 10) == (BBA['gt.mte.id'] % BatteryBoxArg_1))){
  476. if(BBA['gt.invlist'][i.toString()]['tag'] != undefined){
  477. EUAmount += BBA['gt.invlist'][i.toString()]['tag']['gt.energy'];
  478. }
  479. BatteryAmount++;
  480. if(isEU == 1){
  481. BatteryCap += ID2Cap(BBA['gt.invlist'][i.toString()]['Damage'],"EU");
  482. }else{
  483. BatteryCap += ID2Cap(BBA['gt.invlist'][i.toString()]['Damage'],"LU");
  484. }
  485. }
  486. else{
  487. errorAmount++;
  488. }
  489. }
  490. catch(e){
  491. errorAmount++;
  492. }
  493. }
  494. }
  495.  
  496. switch(ArgType){
  497. case 0:{return BatteryAmount;}
  498. case 1:{return EUAmount;}
  499. case 2:{return BatteryCap;}
  500. case 3:{return errorAmount;}
  501. }
  502. }
  503. </init>
  504.  
  505. <!-- 电池容量 -->
  506. <init>
  507. function ID2Cap(mID,mInput){
  508. if(mInput == "EU"){
  509. if(mID >= 14100){
  510. if(mID > 20300){
  511. return 16 * ID2Cap(mID - 200,"EU");
  512. }
  513. if(mID > 20200){
  514. return 4 * ID2Cap(mID - 100,"EU");
  515. }
  516. switch(mID){
  517. case 20101:{return 32000;}
  518. case 20102:{return 48000;}
  519. case 20103:{return 64000;}
  520. case 20104:{return 8000;}
  521. case 20105:{return 16000;}
  522. case 20106:{return 16000;}
  523. case 20107:{return 16000;}
  524. }
  525. }
  526. else{
  527. if(mID >= 14020){
  528. return 2 * ID2Cap(mID - 20,"EU");
  529. }
  530. if(mID >= 14010){
  531. return 2 * ID2Cap(mID - 10,"EU");
  532. }
  533. switch(mID){
  534. case 14000:{return 16000;}
  535. case 14001:{return 64000;}
  536. case 14002:{return 256000;}
  537. case 14003:{return 1024000;}
  538. case 14004:{return 4096000;}
  539. }
  540. }
  541. }
  542. if(mInput == "LU"){
  543. if(mID >= 14510){
  544. return 2 * ID2Cap(mID - 10,"LU");
  545. }
  546. return 3200000 * Math.pow(4,parseInt(mID % 14500));
  547. }
  548. }
  549. </init>
  550.  
  551. <!-- Status -->
  552. <init>
  553. function isRun(iR){
  554. if(iR['gt.active.energy'] != undefined){
  555. return GREEN + "Running";
  556. }
  557. if((iR['gt.active'] != undefined)||(iR['gt.can.energy'] != undefined)){
  558. return BLUE + "Standby";
  559. }
  560. return RED + "Offline";
  561. }
  562. </init>
  563. <!-- 多方块结构完整检查 -->
  564. <init>
  565. function checkComplete(aNBT){
  566. if(aNBT['gt.state.str'] == undefined){
  567. return RED + "Incorrect Structure";
  568. }
  569. }
  570. </init>
  571. <!-- -->
  572. <init>
  573. function getSlotItem(aNBT,aSlot){
  574. var index = 0;
  575. while(index <= aSlot){
  576. if(aNBT['gt.invlist'][index.toString()]['s'] == aSlot){
  577. return nbt['gt.invlist'][index.toString()]['Count'] + Unit("个") + name(nbt['gt.invlist'][index.toString()]);
  578. }
  579. index++;
  580. }
  581. }
  582. </init>
  583. <init>
  584. function overload_attention(aNBT){
  585. var str = "Machine overloaded, use less power";
  586. if(ID2EnergyType(aNBT['gt.mte.id'] == "EU")){
  587. str += ", or the machine will explode!"
  588. }
  589. return RED + str;
  590. }
  591. </init>
  592.  
  593. <init>
  594. function Unit(Type){
  595. switch(Type){
  596. case "EU":{return BLUE + " EU" + WHITE;}
  597. case "RU":{return GREEN + " RU" + WHITE;}
  598. case "KU":{return DGREEN + " KU" + WHITE;}
  599. case "HU":{return RED + " HU" + WHITE;}
  600. case "CU":{return AQUA + " CU" + WHITE;}
  601. case "LU":{return YELLOW + " LU" + WHITE;}
  602. case "MU":{return DGRAY + " MU" + WHITE;}
  603. case "QU":{return DPURPLE + " QU" + WHITE;}
  604. case "SU":{return GRAY + " SU" + WHITE;}
  605. case "L":{return AQUA + " L" + WHITE;}
  606. case "A":{return AQUA + " A" + WHITE;}
  607. case "Angle":{return DAQUA + " °" + WHITE;}
  608. case "份 ":{return AQUA + " Unit " + WHITE;}
  609. case "种":{return AQUA + " Kind" + WHITE;}
  610. case "S":{return AQUA + " S" + WHITE;}
  611. case "个":{return AQUA + " " + WHITE;}
  612. case "次":{return AQUA + " Hits" + WHITE;}
  613. }
  614. }
  615. </init>
  616.  
  617. <!--Anvil-->
  618. <tileentity id = "gt.multitileentity.anvil.simple">
  619.  
  620. <line displayname = "Side:">
  621. try{
  622. var side = Minecraft.func_71410_x().field_71476_x.field_72310_e;
  623.  
  624. switch(nbt['gt.facing']){
  625. case 0:
  626. case 1:
  627. {
  628. return "Invalid Anvil Facing!";
  629. }
  630. case 2:
  631. case 3:
  632. {
  633. if(side >= 4){
  634. var isBig = (side - nbt['gt.facing']) % 2;
  635. if(isBig == 1) return "Big";
  636. else return "Small";
  637. }
  638. return undefined;
  639. }
  640. case 4:
  641. case 5:
  642. {
  643. if(side < 4 && side > 1){
  644. var isBig = (nbt['gt.facing'] - side) % 2;
  645. if(isBig == 1) return "Big";
  646. else return "Small";
  647. }
  648. }
  649. return undefined;
  650. }
  651. }catch(e){
  652. return e.message;
  653. }
  654. </line>
  655.  
  656.  
  657.  
  658. <line displayname = "Durability:">
  659. var t = parseInt(nbt['gt.durability']) / 10000;
  660. if(t < anvilDurability(nbt) / 5){
  661. return RED + t + Unit("次");
  662. }
  663. else if(t < anvilDurability(nbt) / 2){
  664. return YELLOW + t + Unit("次");
  665. }
  666. return WHITE + t + Unit("次");
  667. </line>
  668. </tileentity>
  669.  
  670. <!-- Crucible -->
  671. <tileentity id = "gt.multitileentity.smeltery">
  672. <line displayname= "Temperature:">
  673. return YELLOW+nbt['gt.temperature']+WHITE+"K"
  674. </line>
  675. <line displayname= "Smelting:">
  676. return nbt['gt.materials']['0']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['0']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['0']['i']].mMeltingPoint
  677. </line>
  678. <line>
  679. return nbt['gt.materials']['1']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['1']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['1']['i']].mMeltingPoint
  680. </line>
  681. <line>
  682. return nbt['gt.materials']['2']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['2']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['2']['i']].mMeltingPoint
  683. </line>
  684. <line>
  685. return nbt['gt.materials']['3']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['3']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['3']['i']].mMeltingPoint
  686. </line>
  687. <line>
  688. return nbt['gt.materials']['4']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['4']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['4']['i']].mMeltingPoint
  689. </line>
  690. <line>
  691. return nbt['gt.materials']['5']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['5']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['5']['i']].mMeltingPoint
  692. </line>
  693. <line>
  694. return nbt['gt.materials']['6']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['6']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['6']['i']].mMeltingPoint
  695. </line>
  696. <line>
  697. return nbt['gt.materials']['7']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['7']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['7']['i']].mMeltingPoint
  698. </line>
  699. </tileentity>
  700.  
  701. <!-- Multiblock Crucible -->
  702. <tileentity id = "gt.multitileentity.multiblock.crucible">
  703. <line displayname= "Temperature:">
  704. return YELLOW+nbt['gt.temperature']+WHITE+"K"
  705. </line>
  706. <line displayname= "Smelting:">
  707. return nbt['gt.materials']['0']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['0']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['0']['i']].mMeltingPoint
  708. </line>
  709. <line>
  710. return nbt['gt.materials']['1']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['1']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['1']['i']].mMeltingPoint
  711. </line>
  712. <line>
  713. return nbt['gt.materials']['2']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['2']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['2']['i']].mMeltingPoint
  714. </line>
  715. <line>
  716. return nbt['gt.materials']['3']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['3']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['3']['i']].mMeltingPoint
  717. </line>
  718. <line>
  719. return nbt['gt.materials']['4']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['4']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['4']['i']].mMeltingPoint
  720. </line>
  721. <line>
  722. return nbt['gt.materials']['5']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['5']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['5']['i']].mMeltingPoint
  723. </line>
  724. <line>
  725. return nbt['gt.materials']['6']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['6']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['6']['i']].mMeltingPoint
  726. </line>
  727. <line>
  728. return nbt['gt.materials']['7']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['7']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['7']['i']].mMeltingPoint
  729. </line>
  730. <line>
  731. return nbt['gt.materials']['8']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['8']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['8']['i']].mMeltingPoint
  732. </line>
  733. <line>
  734. return nbt['gt.materials']['9']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['9']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['9']['i']].mMeltingPoint
  735. </line>
  736. <line>
  737. return nbt['gt.materials']['10']['a'] / 648648000+" "+Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['10']['i']].getLocal()+" "+RED+ Packages.gregapi.oredict.OreDictMaterial.MATERIAL_ARRAY[nbt['gt.materials']['10']['i']].mMeltingPoint
  738. </line>
  739. </tileentity>
  740.  
  741. <tileentity id = "gt.multitileentity.mold">
  742. <line displayname= "Current Temperature:">
  743. return nbt['gt.temperature']+RED+" K"
  744. </line>
  745. <line displayname= "Currently casting">
  746. return nbt['gt.materials']['m']
  747. </line>
  748. <line displayname = "Connected Direction">
  749. var str = "";
  750. if((nbt['gt.connection'] & 4) == 4){
  751. str += "N";
  752. if((nbt['gt.connection'] & 8) == 8 || (nbt['gt.connection'] & 16) == 16 || (nbt['gt.connection'] & 32) == 32){
  753. str += " | ";
  754. }
  755. }
  756. if((nbt['gt.connection'] & 8) == 8){
  757. str += "S";
  758. if((nbt['gt.connection'] & 16) == 16 || (nbt['gt.connection'] & 32) == 32){
  759. str += " | ";
  760. }
  761. }
  762. if((nbt['gt.connection'] & 16) == 16){
  763. str += "W";
  764. if((nbt['gt.connection'] & 32) == 32){
  765. str += " | ";
  766. }
  767. }
  768. if((nbt['gt.connection'] & 32) == 32){
  769. str += "E";
  770. }
  771. if(str != ""){
  772. return str;
  773. }
  774. return "Nothing";
  775. </line>
  776. <line displayname = "Output">
  777. if(nbt['gt.mode'] != undefined){
  778. return RED + "RS";}
  779. </line>
  780. </tileentity>
  781.  
  782. <tileentity id = "gt.multitileentity.smeltery.drain">
  783. <line displayname = "Output">
  784. if(nbt['gt.mode'] != undefined){
  785. return WHITE + "Auto";
  786. }
  787. return RED + "RS";
  788. </line>
  789. </tileentity>
  790.  
  791.  
  792. <tileentity id = "gt.multitileentity.basin">
  793. <line displayname= "Current Temperature:">
  794. return nbt['gt.temperature']+RED+" K"
  795. </line>
  796.  
  797. <line displayname= "Currently casting">
  798. return nbt['gt.materials']['m']
  799. </line>
  800.  
  801. <line displayname = "Connected Direction">
  802. var str = "";
  803. if((nbt['gt.connection'] & 4) == 4){
  804. str += "N";
  805. if((nbt['gt.connection'] & 8) == 8 || (nbt['gt.connection'] & 16) == 16 || (nbt['gt.connection'] & 32) == 32){
  806. str += " | ";
  807. }
  808. }
  809. if((nbt['gt.connection'] & 8) == 8){
  810. str += "S";
  811. if((nbt['gt.connection'] & 16) == 16 || (nbt['gt.connection'] & 32) == 32){
  812. str += " | ";
  813. }
  814. }
  815. if((nbt['gt.connection'] & 16) == 16){
  816. str += "W";
  817. if((nbt['gt.connection'] & 32) == 32){
  818. str += " | ";
  819. }
  820. }
  821. if((nbt['gt.connection'] & 32) == 32){
  822. str += "E";
  823. }
  824. if(str != ""){
  825. return str;
  826. }
  827. return "Nothing";
  828. </line>
  829.  
  830. <line displayname = "Output">
  831. if(nbt['gt.mode'] != undefined){
  832. return RED + "Auto";
  833. }
  834. return RED + "RS";
  835. </line>
  836. </tileentity>
  837.  
  838. <!-- Burning Box -->
  839. <tileentity id = "gt.multitileentity.generator.burning_solid">
  840. <line displayname= "Remaining Heat Power:">
  841. if(nbt['gt.energy']!=undefined){
  842. return nbt['gt.energy']+RED+ "HU"}
  843. </line>
  844. </tileentity>
  845.  
  846. <!-- Burning Box -->
  847. <tileentity id = "gt.multitileentity.generator.burning_brick">
  848. <line displayname= "Remaining Heat Power:">
  849. if(nbt['gt.active']!=undefined){
  850. return nbt['gt.energy']+RED+"HU"}
  851. </line>
  852. </tileentity>
  853.  
  854. <!-- Burning Box -->
  855. <tileentity id = "gt.multitileentity.generator.burning_liquid">
  856. <line displayname= "Output:">
  857. if(nbt['gt.active']!= undefined){
  858. return nbt['gt.energy']+RED+"HU"}
  859. </line>
  860. </tileentity>
  861.  
  862. <!-- Burning Box -->
  863. <tileentity id = "gt.multitileentity.generator.burning_gas">
  864. <line displayname= "Output:">
  865. if(nbt['gt.active']!= undefined){
  866. return nbt['gt.energy']+RED+"HU"}
  867. </line>
  868. </tileentity>
  869.  
  870. <!-- Burning Box -->
  871. <tileentity id = "gt.multitileentity.generator.burning_fluidbed">
  872. <line displayname= "Remaining Heat Power:">
  873. if(nbt['gt.active']!=undefined){
  874. return nbt['gt.energy']+RED+"HU"}
  875. </line>
  876. </tileentity>
  877.  
  878. <!--Steam Engine-->
  879. <tileentity id = "gt.multitileentity.engine.kinetic_steam">
  880. <line displayname = "Output">
  881. if(nbt['gt.active'] == 1){
  882. return ID2Tier(nbt['gt.mte.id'],"SU","KU",0) * ((nbt['gt.visual'] + 1) / 16) + Unit("KU") + "/t";
  883. }
  884. return "0" + Unit("KU") + "/t";
  885. </line>
  886. <line displayname = "Steam">
  887. if(nbt['gt.energy'] != undefined){
  888. return nbt['gt.energy'] + "/" + bind(2000,2147483647,ID2Tier(nbt['gt.mte.id'],"SU","KU",0) * 2000);
  889. }
  890. </line>
  891. </tileentity>
  892.  
  893. <!-- Steam Turbine -->
  894. <tileentity id = "gt.multitileentity.turbines.rotation_steam">
  895. <line displayname= "Output">
  896. if(nbt['gt.output.su'] != undefined){
  897. return parseInt(nbt['gt.output.su'] / 3) + Unit("RU") + "/t";
  898. }
  899. if(nbt['gt.tank.0'] != undefined){
  900. return parseInt(nbt['gt.tank.0']['Amount'] / 3) + Unit("RU") + "/t";
  901. }
  902. return "0" + Unit("RU") + "/t";
  903. </line>
  904. </tileentity>
  905.  
  906. <tileentity id = "gt.multitileentity.engine.kinetic_electricity">
  907. <line displayname = "Input">
  908. if(nbt['gt.mode'] == undefined){
  909. return ID2Tier(nbt['gt.mte.id'],"EU","KU",1) + Unit("EU") + "/t" + " - " + "1" + Unit("A");
  910. }
  911. if(nbt['gt.mode'] < 7){
  912. return ID2Tier(nbt['gt.mte.id'],"EU","KU",1) / 2 + Unit("EU") + "/t" + " - " + ((1 + nbt['gt.mode']) / 8) + Unit("A");
  913. }
  914. return ID2Tier(nbt['gt.mte.id'],"EU","KU",1) * (nbt['gt.mode'] + 1) / 16 + Unit("EU") + "/t" + " - " + "1" + Unit("A");
  915. </line>
  916. <line displayname = "Output">
  917. if(nbt['gt.mode'] == undefined){
  918. return ID2Tier(nbt['gt.mte.id'],"EU","KU",0) + Unit("KU") + "/t";
  919. }
  920. return ID2Tier(nbt['gt.mte.id'],"EU","KU",0) * (nbt['gt.mode'] + 1) / 16 + Unit("KU") + "/t";
  921. </line>
  922. </tileentity>
  923.  
  924. <tileentity id = "gt.multitileentity.heater.heat_electric">
  925. <line displayname = "Input">
  926. return ID2Tier(nbt['gt.mte.id'],"EU","HU",1) + Unit("EU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"EU","HU",1) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"EU","HU",1) * 2 + ")";
  927. </line>
  928.  
  929. <line displayname = "Output">
  930. return ID2Tier(nbt['gt.mte.id'],"EU","HU",0) + Unit("HU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"EU","HU",0) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"EU","HU",0) * 2 + ")";
  931. </line>
  932. </tileentity>
  933.  
  934. <tileentity id = "gt.multitileentity.motors.rotation_electric">
  935.  
  936. <line displayname = "Input">
  937. return ID2Tier(nbt['gt.mte.id'],"EU","RU",1) + Unit("EU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"EU","RU",1) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"EU","RU",1) * 2 + ")";
  938. </line>
  939.  
  940. <line displayname = "Output">
  941. return ID2Tier(nbt['gt.mte.id'],"EU","RU",0) + Unit("RU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"EU","RU",0) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"EU","RU",0) * 2 + ")";
  942. </line>
  943.  
  944. <line displayname = "Speed">
  945. if(nbt['gt.can.energy'] == 1 && nbt['gt.facing'] == 1){
  946. if(nbt['gt.visual'] == 1){
  947. return "10" + Unit("Angle") + "/t" + " - " + "1.8" + BLUE + " Seconds" + WHITE + "/Rotation";
  948. }
  949. return "5" + Unit("Angle") + "/t" + " - " + "3.6" + BLUE + " Seconds" + WHITE + "/Rotation";
  950. }
  951. </line>
  952. </tileentity>
  953.  
  954. <tileentity id = "gt.multitileentity.magnet.magnet_electric">
  955. <line displayname = "Input">
  956. return ID2Tier(nbt['gt.mte.id'],"EU","MU",1) + Unit("EU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"EU","MU",1) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"EU","MU",1) * 2 + ")";
  957. </line>
  958.  
  959. <line displayname = "Output">
  960. return ID2Tier(nbt['gt.mte.id'],"EU","MU",0) + Unit("MU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"EU","MU",0) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"EU","MU",0) * 2 + ")";
  961. </line>
  962. </tileentity>
  963.  
  964. <tileentity id = "gt.multitileentity.transformers.transformer_electric">
  965.  
  966. <line displayname = "Input">
  967. if(nbt['gt.reversed'] != undefined){
  968. return ID2Tier(nbt['gt.mte.id'],"EU","EU",0) + Unit("EU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"EU","EU",0) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"EU","EU",0) * 2 + ")";
  969. }
  970. return ID2Tier(nbt['gt.mte.id'],"EU","EU",1) + Unit("EU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"EU","EU",1) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"EU","EU",1) * 2 + ")";
  971. </line>
  972.  
  973. <line displayname = "Output">
  974. if(nbt['gt.reversed'] != undefined){
  975. return ID2Tier(nbt['gt.mte.id'],"EU","EU",1) + Unit("EU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"EU","EU",1) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"EU","EU",1) * 2 + ")";
  976. }
  977. return ID2Tier(nbt['gt.mte.id'],"EU","EU",0) + Unit("EU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"EU","EU",0) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"EU","EU",0) * 2 + ")";
  978. </line>
  979. </tileentity>
  980.  
  981. <!-- 电池盒 -->
  982. <tileentity id = "gt.multitileentity.energystorages.battery_electric">
  983. <line displayname = "Status">
  984. isRun(nbt);
  985. </line>
  986.  
  987. <line displayname = "Output">
  988. if(nbt['gt.mode'] != undefined){
  989. return ID2Tier(nbt['gt.mte.id'],"EU","EU",0) + Unit("EU") + "/t" + " - " + Math.min(nbt['gt.mode'],BatteryBoxArg(nbt,0,0,1)) + Unit("A");
  990. }
  991. return ID2Tier(nbt['gt.mte.id'],"EU","EU",0) + Unit("EU") + "/t" + " - " + BatteryBoxArg(nbt,0,0,1) + Unit("A");
  992. </line>
  993.  
  994. <line displayname = "Invalid Batteries">
  995. return BatteryBoxArg(nbt,0,3,1) + Unit("个");
  996. </line>
  997.  
  998. <line displayname = "Capacity">
  999. return BatteryBoxArg(nbt,0,1,1) + Unit("EU");
  1000. </line>
  1001.  
  1002. <line displayname = "Maximum Capacity">
  1003. return BatteryBoxArg(nbt,0,2,1) + Unit("EU");
  1004. </line>
  1005.  
  1006. </tileentity>
  1007.  
  1008. <!-- 大型电池盒 -->
  1009. <tileentity id = "gt.multitileentity.energystorages.battery_electric_large">
  1010. <line displayname = "Status">
  1011. isRun(nbt);
  1012. </line>
  1013.  
  1014. <line displayname = "Output">
  1015. if(nbt['gt.mode'] != undefined){
  1016. return ID2Tier(nbt['gt.mte.id'],"EU","EU",0) + Unit("EU") + "/t" + " - " + Math.min(nbt['gt.mode'],BatteryBoxArg(nbt,1,0,1)) + Unit("A");
  1017. }
  1018. return ID2Tier(nbt['gt.mte.id'],"EU","EU",0) + Unit("EU") + "/t" + " - " + BatteryBoxArg(nbt,1,0,1) + Unit("A");
  1019. </line>
  1020.  
  1021. <line displayname = "Invalid Batteries">
  1022. return BatteryBoxArg(nbt,1,3,1) + Unit("个");
  1023. </line>
  1024.  
  1025. <line displayname = "Capacity">
  1026. return BatteryBoxArg(nbt,1,1,1) + Unit("EU");
  1027. </line>
  1028.  
  1029. <line displayname = "Max Capacity">
  1030. return BatteryBoxArg(nbt,1,2,1) + Unit("EU");
  1031. </line>
  1032.  
  1033. </tileentity>
  1034.  
  1035. <!-- 太阳能电池板 -->
  1036. <tileentity id = "gt.multitileentity.solarpanel.electric_8eu">
  1037. <line displayname = "Warning">
  1038. if(nbt['gt.active'] == undefined){
  1039. return RED + "There are blocks in the way!";
  1040. }
  1041. </line>
  1042.  
  1043. <line displayname = "Status">
  1044. isRun(nbt);
  1045. </line>
  1046.  
  1047. <line displayname = "Capacity">
  1048. if(nbt['gt.energy'] != undefined){
  1049. return nbt['gt.energy'] + Unit("EU");
  1050. </line>
  1051.  
  1052. </tileentity>
  1053.  
  1054. <tileentity id = "gt.multitileentity.laser.laser_electric">
  1055. <line displayname = "Input">
  1056. return ID2Tier(nbt['gt.mte.id'],"EU","LU",1) + Unit("EU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"EU","LU",1) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"EU","LU",1) * 2 + ")";
  1057. </line>
  1058. <line displayname = "Output">
  1059. return ID2Tier(nbt['gt.mte.id'],"EU","LU",0) + Unit("LU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"EU","LU",0) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"EU","LU",0) * 2 + ")";
  1060. </line>
  1061. </tileentity>
  1062.  
  1063. <tileentity id = "gt.multitileentity.dynamo.electric_rotation">
  1064. <line displayname = "Input">
  1065. return ID2Tier(nbt['gt.mte.id'],"RU","EU",1) + Unit("RU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"RU","EU",1) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"RU","EU",1) * 2 + ")";
  1066. </line>
  1067. <line displayname = "Output">
  1068. return ID2Tier(nbt['gt.mte.id'],"RU","EU",0) + Unit("EU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"RU","EU",0) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"RU","EU",0) * 2 + ")";
  1069. </line>
  1070. </tileentity>
  1071.  
  1072. <tileentity id = "gt.multitileentity.quantumenergizer.quantum_laser">
  1073. <line displayname = "Input">
  1074. return ID2Tier(nbt['gt.mte.id'],"LU","QU",1) + Unit("LU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"LU","QU",1) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"LU","QU",1) * 2 + ")";
  1075. </line>
  1076. <line displayname = "Output">
  1077. return ID2Tier(nbt['gt.mte.id'],"LU","QU",0) + Unit("QU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"LU","QU",0) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"LU","QU",0) * 2 + ")";
  1078. </line>
  1079. </tileentity>
  1080.  
  1081. <!-- 晶体充能器 -->
  1082. <tileentity id = "gt.multitileentity.energystorages.crystal_laser">
  1083. <line displayname = "Status">
  1084. isRun(nbt);
  1085. </line>
  1086.  
  1087. <line displayname = "Output">
  1088. if(nbt['gt.mode'] != undefined){
  1089. return ID2Tier(nbt['gt.mte.id'],"LU","LU",0) + Unit("LU") + "/t" + " - " + Math.min(nbt['gt.mode'],BatteryBoxArg(nbt,0,0,0)) + Unit("A");
  1090. }
  1091. return ID2Tier(nbt['gt.mte.id'],"LU","LU",0) + Unit("LU") + "/t" + " - " + BatteryBoxArg(nbt,0,0,0) + Unit("A");
  1092. </line>
  1093.  
  1094. <line displayname = "Invalid Batteries">
  1095. return BatteryBoxArg(nbt,0,3,0) + Unit("个");
  1096. </line>
  1097.  
  1098. <line displayname = "Capacity">
  1099. return BatteryBoxArg(nbt,0,1,0) + Unit("LU");
  1100. </line>
  1101.  
  1102. <line displayname = "Max Capacity">
  1103. return BatteryBoxArg(nbt,0,2,0) + Unit("LU");
  1104. </line>
  1105.  
  1106. </tileentity>
  1107.  
  1108. <tileentity id = "gt.multitileentity.generator.motor_liquid">
  1109. <line displayname = "Status">
  1110. if(nbt['gt.energy'] > 0){
  1111. return GREEN + "Running";
  1112. }
  1113. return RED + "Offline";
  1114. </line>
  1115. </tileentity>
  1116.  
  1117. <!-- 大型晶体充能器 -->
  1118. <tileentity id = "gt.multitileentity.energystorages.crystal_laser_large">
  1119. <line displayname = "Status">
  1120. isRun(nbt);
  1121. </line>
  1122.  
  1123. <line displayname = "Output">
  1124. if(nbt['gt.mode'] != undefined){
  1125. return ID2Tier(nbt['gt.mte.id'],"LU","LU",0) + Unit("LU") + "/t" + " - " + Math.min(nbt['gt.mode'],BatteryBoxArg(nbt,1,0,0)) + Unit("A");
  1126. }
  1127. return ID2Tier(nbt['gt.mte.id'],"LU","LU",0) + Unit("LU") + "/t" + " - " + BatteryBoxArg(nbt,1,0,0) + Unit("A");
  1128. </line>
  1129.  
  1130. <line displayname = "Invalid Batteries">
  1131. return BatteryBoxArg(nbt,1,3,0) + Unit("个");
  1132. </line>
  1133.  
  1134. <line displayname = "Capacity">
  1135. return BatteryBoxArg(nbt,1,1,0) + Unit("LU");
  1136. </line>
  1137.  
  1138. <line displayname = "Max Capacity">
  1139. return BatteryBoxArg(nbt,1,2,0) + Unit("LU");
  1140. </line>
  1141.  
  1142. </tileentity>
  1143.  
  1144. <tileentity id = "gt.multitileentity.laserabsorbers.electric_laser">
  1145. <line displayname = "Input">
  1146. return ID2Tier(nbt['gt.mte.id'],"LU","EU",1) + Unit("LU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"LU","EU",1) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"LU","EU",1) * 2 + ")";
  1147. </line>
  1148. <line displayname = "Output">
  1149. return ID2Tier(nbt['gt.mte.id'],"LU","EU",0) + Unit("EU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"LU","EU",0) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"LU","EU",0) * 2 + ")";
  1150. </line>
  1151. </tileentity>
  1152.  
  1153. <tileentity id = "gt.multitileentity.cooler.cryo_electric">
  1154. <line displayname = "Input">
  1155. return ID2Tier(nbt['gt.mte.id'],"EU","CU",1) + Unit("EU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"EU","CU",1) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"EU","CU",1) * 2 + ")";
  1156. </line>
  1157. <line displayname = "Output">
  1158. return ID2Tier(nbt['gt.mte.id'],"EU","CU",0) + Unit("CU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"EU","CU",0) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"EU","CU",0) * 2 + ")";
  1159. </line>
  1160. <line displayname = "Output">
  1161. return ID2Tier(nbt['gt.mte.id'],"EU","HU",0) + Unit("HU") + "/t" + " - " + "(" + ID2Tier(nbt['gt.mte.id'],"EU","HU",0) / 2 + " to " + ID2Tier(nbt['gt.mte.id'],"EU","HU",0) * 2 + ")";
  1162. </line>
  1163. </tileentity>
  1164.  
  1165. <tileentity id = "gt.multitileentity.fluid.spring">
  1166. <line displayname = "Speed">
  1167. var str = '1 Bucket * ';
  1168. var AmountTemp = nbt['gt.spring']['Amount'];
  1169. if(AmountTemp > 20 * 60 * 60 * 24){
  1170. str += parseInt(AmountTemp / (20 * 60 * 60 * 24)) + " Day ";
  1171. AmountTemp = AmountTemp % (20 * 60 * 60 * 24);
  1172. }
  1173. if(AmountTemp > 20 * 60 * 60){
  1174. str += parseInt(AmountTemp / (20 * 60 * 60)) + " Hour ";
  1175. AmountTemp = AmountTemp % (20 * 60 * 60);
  1176. }
  1177. if(AmountTemp > 20 * 60){
  1178. str += parseInt(AmountTemp / (20 * 60)) + " Min ";
  1179. AmountTemp = AmountTemp % (20 * 60);
  1180. }
  1181. if(AmountTemp > 20){
  1182. str += parseInt(AmountTemp / (20)) + " Sec";
  1183. AmountTemp = AmountTemp % (20);
  1184. }
  1185. if(AmountTemp > 0){
  1186. str += parseInt(AmountTemp) + " Tick";
  1187. }
  1188.  
  1189. return str + "";
  1190. </line>
  1191.  
  1192. <line displayname = "Fluid">
  1193. if(nbt['gt.spring']['FluidName'] != null){
  1194. return fluidName(nbt['gt.spring']['FluidName']);
  1195. }
  1196. </line>
  1197. </tileentity>
  1198.  
  1199. <!-- -->
  1200. <tileentity id = "gt.multitileentity.multiblock.centrifuge">
  1201. <line displayname = "Status">
  1202. if(nbt['gt.state.str'] == undefined){}
  1203. else{
  1204. return isMachineWork(nbt);
  1205. }
  1206. </line>
  1207. <line displayname = "Progress">
  1208. if(nbt['gt.maxprogress'] != undefined){
  1209. switch(getConfig("ScriptStyle")){
  1210. case "2018a":{return nbt['gt.progress'] / 20 / nbt['gt.minenergy'] + Unit("S") + " / " + nbt['gt.maxprogress'] / 20 / nbt['gt.minenergy'] + Unit("S") + " - " + parseInt(nbt['gt.progress'] * 10000 / nbt['gt.maxprogress']) / 100 + " %";}
  1211. case "2020":{return (nbt['gt.progress'] / nbt['gt.maxprogress'] * 100).toFixed(2) + "%"}
  1212. }
  1213. }
  1214. </line>
  1215. <line displayname = "Input">
  1216. getSlotItem(nbt,0);
  1217. </line>
  1218.  
  1219. </tileentity>
  1220.  
  1221. <!-- 单元式流体容器 -->
  1222. <tileentity id = "gt.multitileentity.cell">
  1223. <line displayname = "Contains:">
  1224. return nbt['gt.tank']['Amount'] + "/1000" + Unit("L") + " " + fluidName(nbt['gt.tank']['FluidName']);
  1225. </line>
  1226.  
  1227. </tileentity>
  1228.  
  1229. <!-- 瓷杯 -->
  1230. <tileentity id = "gt.multitileentity.cup">
  1231. <line displayname = "Contains:">
  1232. return nbt['gt.tank']['Amount'] + "/250" + Unit("L") + " " + fluidName(nbt['gt.tank']['FluidName']);
  1233. </line>
  1234.  
  1235. </tileentity>
  1236.  
  1237. <!-- 陶杯 -->
  1238. <tileentity id = "gt.multitileentity.jug">
  1239. <line displayname = "Contains:">
  1240. return nbt['gt.tank']['Amount'] + "/2000" + Unit("L") + " " + fluidName(nbt['gt.tank']['FluidName']);
  1241. </line>
  1242.  
  1243. </tileentity>
  1244.  
  1245. <!-- 量杯 -->
  1246. <tileentity id = "gt.multitileentity.measuring.pot">
  1247. <line displayname = "Contains:">
  1248. return nbt['gt.tank']['Amount'] + "/1000" + Unit("L") + " " + fluidName(nbt['gt.tank']['FluidName']);
  1249. </line>
  1250.  
  1251. </tileentity>
  1252.  
  1253. <!-- 保温杯 -->
  1254. <tileentity id = "gt.multitileentity.thermos.can">
  1255. <line displayname = "Contains:">
  1256. return nbt['gt.tank']['Amount'] + "/4000" + Unit("L") + " " + fluidName(nbt['gt.tank']['FluidName']);
  1257. </line>
  1258.  
  1259. </tileentity>
  1260.  
  1261. <tileentity id = "gt.multitileentity.multiblock.lightningrod">
  1262. <line displayname = "Warning">
  1263. checkComplete(nbt);
  1264. </line>
  1265. </tileentity>
  1266. <tileentity id = "gt.multitileentity.multiblock.drill.bedrock">
  1267. <line displayname = "Energy">
  1268. return nbt['gt.energy'] + " / 32768" + Unit("EU");
  1269. </line>
  1270. </tileentity>
  1271.  
  1272. <!-- 浆果 -->
  1273. <tileentity id = "gt.multitileentity.plant.bush">
  1274. <line displayname = "Growth">
  1275. if(nbt['gt.state'] != 3){
  1276. var t = nbt['gt.state'] * 256;
  1277. if(nbt['gt.progress'] < 0) t = t + 256;
  1278. t = t + nbt['gt.progress'];
  1279. var progress = parseInt(t * 1000 / (256 * 3)) / 10;
  1280. return progress + " %";
  1281. }
  1282. return AQUA + "Ready";
  1283. </line>
  1284. </tileentity>
  1285.  
  1286. <tileentity id = "gt.multitileentity.multiblock.*">
  1287. <line displayname = "Warning">
  1288. if(nbt['id'] != "gt.multitileentity.multiblock.part") return checkComplete(nbt);
  1289. </line>
  1290. </tileentity>
  1291.  
  1292. <tileentity id = "gt.multitileentity.generator.reactor.core.*">
  1293. <line displayname = "Coolant Input">
  1294. return nbt['gt.tank.0']['Amount'] + " / 64000" + Unit("L") + " " + fluidName(nbt['gt.tank.0']['FluidName']) ;
  1295. </line>
  1296. <line displayname = "Hot Coolant Output">
  1297. return nbt['gt.tank.1']['Amount'] + " / 64000" + Unit("L") + " " + fluidName(nbt['gt.tank.1']['FluidName']) ;
  1298. </line>
  1299. <line displayname = "Status">
  1300. if(nbt['gt.stopped'] == 1) return RED + "Shutdown";
  1301. return GREEN + "Running";
  1302. </line>
  1303. <line displayname = "Heat Output">
  1304. try{
  1305. if(nbt['gt.stopped'] == undefined){
  1306. return getReactorHeat(nbt) + Unit("HU") + "/t";
  1307. }
  1308.  
  1309. }
  1310. catch(e){
  1311.  
  1312. }
  1313.  
  1314. </line>
  1315.  
  1316. <line displayname = "Fuel Rod 1">
  1317. try{
  1318. for(i = 0;i < 4;i++){
  1319. if(nbt['gt.invlist'][i.toString()] != undefined){
  1320. if(nbt['gt.invlist'][i.toString()]['s'] == 0){
  1321.  
  1322. var str = name(nbt['gt.invlist'][i.toString()]);
  1323. if(nbt['gt.invlist'][i.toString()]['tag'] != undefined) str += "|耐久:" + parseInt(nbt['gt.invlist'][i.toString()]['tag']['gt.durability'] / 120000) + " mins";
  1324. return str;
  1325. }
  1326. }
  1327. }
  1328. }catch(e){
  1329. }
  1330.  
  1331. </line>
  1332. <line displayname = "Fuel Rod 2">
  1333. for(i = 0;i < 4;i++){
  1334. if(nbt['gt.invlist'][i.toString()] != undefined){
  1335. if(nbt['gt.invlist'][i.toString()]['s'] == 1){
  1336.  
  1337. var str = name(nbt['gt.invlist'][i.toString()]);
  1338. if(nbt['gt.invlist'][i.toString()]['tag']!= undefined) str += "|耐久:" + parseInt(nbt['gt.invlist'][i.toString()]['tag']['gt.durability'] / 120000) + " mins";
  1339. return str;
  1340. }
  1341. }
  1342. }
  1343. </line>
  1344. <line displayname = "Fuel Rod 3">
  1345. for(i = 0;i < 4;i++){
  1346. if(nbt['gt.invlist'][i.toString()] != undefined){
  1347. if(nbt['gt.invlist'][i.toString()]['s'] == 2){
  1348. var str = name(nbt['gt.invlist'][i.toString()]);
  1349. if(nbt['gt.invlist'][i.toString()]['tag'] != undefined) str += "|耐久:" + parseInt(nbt['gt.invlist'][i.toString()]['tag']['gt.durability'] / 120000) + " mins";
  1350. return str;
  1351. }
  1352. }
  1353. }
  1354. </line>
  1355. <line displayname = "Fuel Rod 4">
  1356. for(i = 0;i < 4;i++){
  1357. if(nbt['gt.invlist'][i.toString()] != undefined){
  1358. if(nbt['gt.invlist'][i.toString()]['s'] == 3){
  1359. var str = name(nbt['gt.invlist'][i.toString()]);
  1360. if(nbt['gt.invlist'][i.toString()]['tag'] != undefined) str += "|耐久:" + parseInt(nbt['gt.invlist'][i.toString()]['tag']['gt.durability'] / 120000) + " mins";
  1361. return str;
  1362. }
  1363. }
  1364. }
  1365. </line>
  1366.  
  1367. <line displayname = "Neutrons">
  1368. try{
  1369. if(nbt['gt.stopped'] == 1) return undefined;
  1370. var n1,n2,n3,n4,str = "";
  1371. var inv = nbt['gt.invlist'];
  1372. for(i = 0;i < 4;i++){
  1373. if(inv[i.toString()] == null) continue;
  1374. switch(nbt['gt.invlist'][i.toString()]['s']){
  1375. case 0: {n1 = nbt[("gt.value.o." + inv[i.toString()]['s'])];break;}
  1376. case 1: {n2 = nbt[("gt.value.o." + inv[i.toString()]['s'])];break;}
  1377. case 2: {n3 = nbt[("gt.value.o." + inv[i.toString()]['s'])];break;}
  1378. case 3: {n4 = nbt[("gt.value.o." + inv[i.toString()]['s'])];break;}
  1379. }
  1380. }
  1381. if(n1 != undefined) str += "1: " + n1;
  1382. if(str != "" && n2 != undefined) str += " | ";
  1383. if(n2 != undefined) str += "2: " + n2;
  1384. if(str != "" && n3 != undefined) str += " | ";
  1385. if(n3 != undefined) str += "3: " + n3;
  1386. if(str != "" && n4 != undefined) str += " | ";
  1387. if(n4 != undefined) str += "4: " + n4;
  1388. if(str != "") return str;
  1389. else return undefined;
  1390. }catch(e){
  1391. }
  1392. </line>
  1393. </tileentity>
  1394.  
  1395. <tileentity id = "gt.multitileentity.multiblock.fusionreactor">
  1396. <line displayname = "Energy Requirements">
  1397. if(nbt['gt.active'] != 1 && nbt['gt.input.eu'] != undefined) return nbt['gt.input.eu'] + Unit("LU");
  1398. </line>
  1399.  
  1400. <line displayname = "Energy Output">
  1401. if(nbt['gt.active'] == 1){
  1402. return nbt['gt.output'] + Unit("EU") + "/t";
  1403. }
  1404. </line>
  1405.  
  1406. <line displayname = "Progress">
  1407. if(nbt['gt.active'] == 1){
  1408. return (nbt['gt.progress'] / 20) + " / " + (nbt['gt.maxprogress'] / 20) +Unit("S") + " - " + parseInt(nbt['gt.progress'] / nbt['gt.maxprogress'] * 1000) / 10 + "%"
  1409. }
  1410. </line>
  1411. <line displayname = "Processing">
  1412. if(nbt['gt.active'] != 1) return undefined;
  1413. var t1,t2,str = "";
  1414. if(nbt['gt.tankout.0'] != undefined) t1 = nbt['gt.tankout.0']['Amount'] + Unit("L") + " " +fluidName(nbt['gt.tankout.0']['FluidName']);
  1415. if(nbt['gt.tankout.1'] != undefined) t2 = nbt['gt.tankout.1']['Amount'] + Unit("L") + " "+ fluidName(nbt['gt.tankout.1']['FluidName']);
  1416. if(t1 != undefined){
  1417. str += t1;
  1418. }
  1419. if(t2 != undefined){
  1420. str += " | ";
  1421. str += t2;
  1422. }
  1423. return str;
  1424. </line>
  1425. <line displayname = "Processing">
  1426. if(nbt['gt.active'] != 1) return undefined;
  1427. var t1,t2,str = "";
  1428. if(nbt['gt.tankout.2'] != undefined) t1 = nbt['gt.tankout.2']['Amount'] + Unit("L") + " " +fluidName(nbt['gt.tankout.2']['FluidName']);
  1429. if(nbt['gt.tankout.3'] != undefined) t2 = nbt['gt.tankout.3']['Amount'] + Unit("L") + " "+ fluidName(nbt['gt.tankout.3']['FluidName']);
  1430. if(t1 != undefined){
  1431. str += t1;
  1432. }
  1433. if(t2 != undefined){
  1434. str += " | ";
  1435. str += t2;
  1436. }
  1437. return str;
  1438. </line>
  1439. <line displayname = "Processing">
  1440. if(nbt['gt.active'] != 1) return undefined;
  1441. if(nbt['gt.invout.0'] != undefined) return nbt['gt.invout.0']['Count'] + Unit("个") + " " + name(nbt['gt.invout.0']);
  1442. </line>
  1443.  
  1444. </tileentity>
  1445.  
  1446. </oo>
Add Comment
Please, Sign In to add comment