Advertisement
Guest User

Untitled

a guest
Jan 21st, 2020
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.02 KB | None | 0 0
  1. var authPane, dimPane, serverPane, bar, consoleBar, optionsPane, consolePane, loginPaneLayout, serverPaneLayout;
  2. var loginField, passwordField, savePasswordBox, authOptions;
  3. var serverList;
  4. var profilesList = [];
  5. var movePoint = null;
  6. var pingers = {};
  7. var loginData;
  8. var authTypes = {};
  9. var playbtn;
  10.  
  11.  
  12. function initLauncher() {
  13. initLoginScene();
  14. initMenuScene();
  15. initConsoleScene();
  16. initOptionsScene();
  17.  
  18. /* ======== init Overlays ======== */
  19. debug.initOverlay();
  20. processing.initOverlay();
  21. settingsOverlay.initOverlay();
  22. update.initOverlay();
  23.  
  24. verifyLauncher();
  25. }
  26.  
  27. /* ======== init Login window======== */
  28. function initLoginScene() {
  29. var i = 0;
  30. loginPane.setOnMousePressed(function(event) { movePoint = new javafx.geometry.Point2D(event.getSceneX(), event.getSceneY()) });
  31. loginPane.setOnMouseDragged(function(event) {
  32. if (movePoint === null) {
  33. return;
  34. }
  35. stage.setX(event.getScreenX() - movePoint.getX());
  36. stage.setY(event.getScreenY() - movePoint.getY());
  37. });
  38. var pane = loginPane.lookup("#bar");
  39. bar = pane;
  40. loginPane.lookup("#close").setOnAction(function(event) { javafx.application.Platform.exit() });
  41. loginPane.lookup("#hide").setOnAction(function(event) { stage.setIconified(true) });
  42.  
  43. var btn0 = loginPane.lookup("#bg_btn0");
  44. var btn1 = loginPane.lookup("#bg_btn1");
  45. var btn2 = loginPane.lookup("#bg_btn2");
  46. var btn3 = loginPane.lookup("#bg_btn3");
  47. var slide0 = loginPane.lookup("#slide0");
  48. var slide1 = loginPane.lookup("#slide1");
  49. var slide2 = loginPane.lookup("#slide2");
  50. var slide3 = loginPane.lookup("#slide3");
  51.  
  52. btn0.setOnAction(function(event) {
  53. if (btn0.isSelected()) {
  54. btn1.setSelected(false);
  55. btn2.setSelected(false);
  56. btn3.setSelected(false);
  57. slide0.setVisible(true);
  58. slide1.setVisible(false);
  59. slide2.setVisible(false);
  60. slide3.setVisible(false);
  61. } else { btn0.setSelected(true); }
  62. });
  63. btn1.setOnAction(function(event) {
  64. if (btn1.isSelected()) {
  65. btn0.setSelected(false);
  66. btn2.setSelected(false);
  67. btn3.setSelected(false);
  68. slide0.setVisible(false);
  69. slide1.setVisible(true);
  70. slide2.setVisible(false);
  71. slide3.setVisible(false);
  72. } else { btn1.setSelected(true); }
  73. });
  74. btn2.setOnAction(function(event) {
  75. if (btn2.isSelected()) {
  76. btn0.setSelected(false);
  77. btn1.setSelected(false);
  78. btn3.setSelected(false);
  79. slide0.setVisible(false);
  80. slide1.setVisible(false);
  81. slide2.setVisible(true);
  82. slide3.setVisible(false);
  83. } else { btn2.setSelected(true); }
  84. });
  85. btn3.setOnAction(function(event) {
  86. if (btn3.isSelected()) {
  87. btn0.setSelected(false);
  88. btn1.setSelected(false);
  89. btn2.setSelected(false);
  90. slide0.setVisible(false);
  91. slide1.setVisible(false);
  92. slide2.setVisible(false);
  93. slide3.setVisible(true);
  94. } else { btn3.setSelected(true); }
  95. });
  96. /*loginPane.lookup("#go").setOnAction(function(event) {
  97. if (i == 3) { i = 0; } else { i++; }
  98. pane.lookup("#slide" + i).setVisible(true);
  99. if (i == 0) { pane.lookup("#slide" + 3).setVisible(false); } else { pane.lookup("#slide" + (i - 1)).setVisible(false); }
  100. });
  101. loginPane.lookup("#back").setOnAction(function(event) {
  102. if (i == 0) { i = 3; } else { i--; }
  103. if (i == 0) { pane.lookup("#slide" + 3).setVisible(true); } else { pane.lookup("#slide" + (i - 1)).setVisible(true); }
  104. pane.lookup("#slide" + i).setVisible(false);
  105. });*/
  106.  
  107. var pane = loginPane.lookup("#authPane");
  108. authPane = pane;
  109.  
  110. var loginLayout = loginPane.lookup("#layout");
  111. loginPaneLayout = loginLayout;
  112.  
  113. loginField = pane.lookup("#login");
  114. loginField.setOnMouseMoved(function(event) { rootPane.fireEvent(event) });
  115. loginField.setOnAction(goAuth);
  116. if (settings.login !== null) {
  117. loginField.setText(settings.login);
  118. }
  119.  
  120. passwordField = pane.lookup("#password");
  121. passwordField.setOnMouseMoved(function(event) { rootPane.fireEvent(event) });
  122. passwordField.setOnAction(goAuth);
  123. if (settings.rsaPassword !== null) {
  124. passwordField.getStyleClass().add("hasSaved");
  125. passwordField.setPromptText("*** Сохранённый ***");
  126. }
  127.  
  128. savePasswordBox = pane.lookup("#rememberchb");
  129. savePasswordBox.setSelected(settings.login === null || settings.rsaPassword !== null);
  130.  
  131. authOptions = pane.lookup("#authOptions");
  132.  
  133. pane.lookup("#goAuth").setOnAction(goAuth);
  134.  
  135. var pane = loginPane;
  136. config.links.forEach(function(link) {
  137. var el = pane.lookup("#link_" + link.id);
  138. if (el === null) return;
  139.  
  140. el.setOnAction(function() {
  141. openURL(new java.net.URL(link.url));
  142. });
  143.  
  144. if (link.text === "") return;
  145.  
  146. el.setText(link.text);
  147. });
  148.  
  149. function newSlide() {
  150. if (i == 0) {
  151. pane.lookup("#bg_btn" + i).setSelected(true);
  152. pane.lookup("#slide" + i).setVisible(true);
  153. pane.lookup("#bg_btn3").setSelected(false);
  154. pane.lookup("#slide3").setVisible(false);
  155. } else {
  156. pane.lookup("#bg_btn" + (i - 1)).setSelected(false);
  157. pane.lookup("#slide" + (i - 1)).setVisible(false);
  158. pane.lookup("#bg_btn" + i).setSelected(true);
  159. pane.lookup("#slide" + i).setVisible(true);
  160. }
  161. if (i == 3) { i = 0; } else { i++; }
  162. }
  163.  
  164. timer = new java.util.Timer(true);
  165. timer.scheduleAtFixedRate(newSlide, 0, 5*1000);
  166. }
  167.  
  168. /* ======== init Menu window======== */
  169. function initMenuScene() {
  170. menuPane.setOnMousePressed(function(event) { movePoint = new javafx.geometry.Point2D(event.getSceneX(), event.getSceneY()) });
  171. menuPane.setOnMouseDragged(function(event) {
  172. if (movePoint === null) {
  173. return;
  174. }
  175.  
  176. stage.setX(event.getScreenX() - movePoint.getX());
  177. stage.setY(event.getScreenY() - movePoint.getY());
  178. });
  179.  
  180. var menuBtn = menuPane.lookup("#menu_btn");
  181. var menupane = menuPane.lookup("#menupane");
  182. menuBtn.setOnAction(function(event) {
  183. if (menuBtn.isSelected()) {
  184. menupane.setVisible(true);
  185. } else { menupane.setVisible(false); }
  186. });
  187.  
  188. var fireStyle = "-fx-background-image: url('/runtime/visual/1366/images/mainmenu/main/togglebuttons2.png'); -fx-opacity: 1.0";
  189. var unfireStyle = "-fx-background-image: url('/runtime/visual/1366/images/mainmenu/main/togglebuttons0.png'); -fx-opacity: 0.7";
  190. var mainBtn = menuPane.lookup("#main");
  191. var newsBtn = menuPane.lookup("#news");
  192. var settingsBtn = menuPane.lookup("#settings");
  193.  
  194. mainBtn.setStyle(fireStyle);
  195.  
  196. mainBtn.setOnMousePressed(function(event) {
  197. mainBtn.setStyle(fireStyle);
  198. newsBtn.setStyle(unfireStyle);
  199. settingsBtn.setStyle(unfireStyle);
  200. });
  201. /* F U T U R E */
  202. /*newsBtn.setOnMousePressed(function(event) {
  203. mainBtn.setStyle(unfireStyle);
  204. newsBtn.setStyle(fireStyle);
  205. settingsBtn.setStyle(unfireStyle);
  206. });
  207. */
  208. settingsBtn.setOnMousePressed(function(event) {
  209. mainBtn.setStyle(unfireStyle);
  210. newsBtn.setStyle(unfireStyle);
  211. settingsBtn.setStyle(fireStyle);
  212. });
  213.  
  214.  
  215. //menupane.lookup("#main").setOnAction(function(event) { setCurrentScene(loginScene); });
  216. menuPane.lookup("#close").setOnAction(function(event) { javafx.application.Platform.exit() });
  217. menuPane.lookup("#hide").setOnAction(function(event) { stage.setIconified(true) });
  218. menuPane.lookup("#settings").setOnAction(goSettings);
  219. menupane.lookup("#exit_btn").setOnAction(function(event) {
  220. setCurrentScene(loginScene);
  221. menupane.setVisible(false);
  222. });
  223.  
  224. var pane = menuPane;
  225. serverPane = pane;
  226.  
  227. var menuLayout = menuPane;
  228. serverPaneLayout = menuLayout;
  229.  
  230. serverList = pane.lookup("#serverlist").getContent();
  231.  
  232. playbtn = menuPane.lookup("#clientLaunch");
  233. playbtn.setOnAction(function() {
  234. doUpdate(profilesList[serverHolder.old], loginData.pp, loginData.accessToken);
  235. });
  236.  
  237. /*
  238. pane.lookup("#clientSettings").setOnAction(goOptions);
  239. pane.lookup("#logout").setOnAction(function() {
  240. setCurrentScene(loginScene);
  241. });
  242. */
  243. var pane = menuPane;
  244. config.links.forEach(function(link) {
  245. var el = pane.lookup("#link_" + link.id);
  246. if (el === null) return;
  247.  
  248. el.setOnAction(function() {
  249. openURL(new java.net.URL(link.url));
  250. });
  251.  
  252. if (link.text === "") return;
  253.  
  254. el.setText(link.text);
  255. });
  256. }
  257.  
  258. /* ======== init Console window======== */
  259. function initConsoleScene() {
  260. consoleMenu.setOnMousePressed(function(event) { movePoint = new javafx.geometry.Point2D(event.getSceneX(), event.getSceneY()) });
  261. consoleMenu.setOnMouseDragged(function(event) {
  262. if (movePoint === null) {
  263. return;
  264. }
  265.  
  266. consoleStage.setX(event.getScreenX() - movePoint.getX());
  267. consoleStage.setY(event.getScreenY() - movePoint.getY());
  268. });
  269.  
  270. var pane = consoleMenu.lookup("#bar");
  271. consoleBar = pane;
  272. pane.lookup("#close").setOnAction(function() {
  273. consoleStage.hide();
  274. });
  275. var text = consoleMenu.lookup("#textField");
  276. var output = consoleMenu.lookup("#output");
  277. var appendFunction = function(line) javafx.application.Platform.runLater(function() output.appendText(line));
  278. consoleMenu.lookup("#send").setOnAction(function() {
  279. execCommand(text.getText());
  280. if (text.getText() == "clear") {
  281. output.setText("");
  282. }
  283. text.setText("");
  284. });
  285. FunctionalBridge.addPlainOutput(function(string) {
  286. appendFunction(string + "\n");
  287. })
  288. pane.lookup("#hide").setOnAction(function(event) { consoleStage.setIconified(true) });
  289.  
  290. var pane = consoleMenu.lookup("#consolePane");
  291. consolePane = pane;
  292.  
  293. }
  294.  
  295. /* ======== init Options window======== */
  296. function initOptionsScene() {
  297. optionsMenu.setOnMousePressed(function(event) { movePoint = new javafx.geometry.Point2D(event.getSceneX(), event.getSceneY()) });
  298. optionsMenu.setOnMouseDragged(function(event) {
  299. if (movePoint === null) {
  300. return;
  301. }
  302.  
  303. stage.setX(event.getScreenX() - movePoint.getX());
  304. stage.setY(event.getScreenY() - movePoint.getY());
  305. });
  306.  
  307. var pane = optionsMenu.lookup("#bar");
  308. bar = pane;
  309. pane.lookup("#close").setOnAction(function(event) { javafx.application.Platform.exit() });
  310. pane.lookup("#hide").setOnAction(function(event) { stage.setIconified(true) });
  311. pane.lookup("#back").setOnAction(function() {
  312. setCurrentScene(menuScene);
  313. });
  314. }
  315.  
  316. /* ======== init Offline ======== */
  317. function initOffline() {
  318. stage.setTitle(config.title + " [Offline]");
  319.  
  320. loginField.setPromptText("Имя пользователя");
  321. if (!VerifyHelper.isValidUsername(settings.login)) {
  322. loginField.setText(""); // Reset if not valid
  323. }
  324.  
  325. passwordField.setDisable(true);
  326. passwordField.setPromptText("Недоступно");
  327. passwordField.setText("");
  328. }
  329.  
  330. /* ======== Auth ======== */
  331. function goAuth(event) {
  332. if (overlay.current !== null) {
  333. return;
  334. }
  335.  
  336. var login = loginField.getText();
  337. if (login.isEmpty()) {
  338. return;
  339. }
  340.  
  341. var auth = authOptions.getSelectionModel().getSelectedItem();
  342. if (auth === null) {
  343. return; // No auth selected
  344. }
  345.  
  346. var rsaPassword = null;
  347. var auth = authOptions.getSelectionModel().getSelectedItem();
  348. if (auth === null) {
  349. return;
  350. }
  351. if (!passwordField.isDisable()) {
  352. var password = passwordField.getText();
  353. if (password !== null && !password.isEmpty()) {
  354. rsaPassword = settingsOverlay.setPassword(password);
  355. } else if (settings.rsaPassword !== null) {
  356. rsaPassword = settings.rsaPassword;
  357. } else {
  358. return;
  359. }
  360.  
  361. settings.rsaPassword = savePasswordBox.isSelected() ? rsaPassword : null;
  362. }
  363.  
  364. settings.login = login;
  365. doAuth(login, rsaPassword, authTypes[auth]);
  366. }
  367.  
  368. /* ======== Console ======== */
  369. function goConsole(event) {
  370. setConsoleCurrentScene(consoleScene);
  371. }
  372.  
  373. /* ======== Settings ======== */
  374. function goSettings(event) {
  375. if (overlay.current !== null) {
  376. return;
  377. }
  378.  
  379. overlay.show(settingsOverlay.overlay, null);
  380. }
  381.  
  382. /* ======== Options ======== */
  383. function goOptions(event) {
  384. setCurrentScene(optionsScene);
  385.  
  386. options.update();
  387. }
  388.  
  389. /* ======== Processing functions ======== */
  390. function verifyLauncher(e) {
  391. processing.resetOverlay();
  392. overlay.show(processing.overlay, function(event) makeLauncherRequest(function(result) {
  393. settings.lastDigest = result.digest;
  394. processing.resetOverlay();
  395. if (settings.offline) {
  396. initOffline();
  397. }
  398. overlay.swap(0, processing.overlay, function(event) makeAuthAvailabilityRequest(function(result) {
  399. var iter = 0;
  400. authTypes = {};
  401. result.list.forEach(function(auth_type, i, arr) {
  402. var serverAuth = new javafx.scene.control.ComboBox();
  403. serverAuth.getStyleClass().add("authOptions");
  404. authOptions.getItems().add(auth_type.displayName);
  405. authTypes[auth_type.displayName] = auth_type.name;
  406. iter++;
  407. });
  408. authOptions.getSelectionModel().select(0);
  409. var sm = authOptions.getSelectionModel().selectedIndexProperty();
  410. sm.addListener(new javafx.beans.value.ChangeListener({
  411. changed: function(observableValue, oldSelection, newSelection) {
  412. settings.auth = authTypes[authOptions.getSelectionModel().getSelectedItem()];
  413. }
  414. }));
  415. overlay.swap(0, processing.overlay, function(event) makeProfilesRequest(function(result) {
  416. settings.lastProfiles = result.profiles;
  417. updateProfilesList(result.profiles);
  418. options.load();
  419. overlay.hide(0, function() {
  420. if (cliParams.autoLogin) {
  421. goAuth(null);
  422. }
  423. });
  424. }));
  425. }));
  426. }));
  427. }
  428.  
  429. function doAuth(login, rsaPassword, auth_type) {
  430. processing.resetOverlay();
  431. overlay.show(processing.overlay, function(event) {
  432. FunctionalBridge.getHWID.join();
  433. makeAuthRequest(login, rsaPassword, auth_type, function(result) {
  434. FunctionalBridge.setAuthParams(result);
  435. loginData = {
  436. pp: result.playerProfile,
  437. accessToken: result.accessToken,
  438. permissions: result.permissions,
  439. auth_type: settings.auth
  440. };
  441.  
  442. overlay.hide(0, function() {
  443. try {
  444. menuPane.lookup("#personal_skin").getEngine().load(config.skinUrl + "?type=skin&mode=3&user=" + result.playerProfile.username + "&size=64");
  445. } catch (e) {}
  446. setCurrentScene(menuScene);
  447. menuPane.lookup("#username").setText(result.playerProfile.username);
  448. });
  449. return result;
  450. })
  451. });
  452. }
  453.  
  454. function doUpdate(profile, pp, accessToken) {
  455. var digest = profile.isUpdateFastCheck();
  456. overlay.swap(0, update.overlay, function(event) {
  457. if (config.jvm.enable) {
  458. makeSetProfileRequest(profile, function() {
  459. ClientLauncher.setProfile(profile);
  460. var jvmDir = settings.updatesDir.resolve(jvmDirName);
  461. update.resetOverlay("Обновление файлов JVM");
  462. makeUpdateRequest(jvmDirName, jvmDir, null, digest, function(jvmHDir) {
  463. ClientLauncher.setJavaBinPath(jvmDir);
  464. update.resetOverlay("Обновление файлов ресурсов");
  465. var assetDirName = profile.getAssetDir();
  466. var assetDir = settings.updatesDir.resolve(assetDirName);
  467. var assetMatcher = profile.getAssetUpdateMatcher();
  468. makeUpdateRequest(assetDirName, assetDir, assetMatcher, digest, function(assetHDir) {
  469. settings.putHDir(assetDirName, assetDir, assetHDir.hdir);
  470. update.resetOverlay("Обновление файлов клиента");
  471. var clientDirName = profile.getDir();
  472. var clientDir = settings.updatesDir.resolve(clientDirName);
  473. var clientMatcher = profile.getClientUpdateMatcher();
  474. makeUpdateRequest(clientDirName, clientDir, clientMatcher, digest, function(clientHDir) {
  475. settings.putHDir(clientDirName, clientDir, clientHDir.hdir);
  476. doLaunchClient(assetDir, assetHDir.hdir, clientDir, clientHDir.hdir, profile, pp, accessToken);
  477. });
  478. });
  479. });
  480. });
  481. } else {
  482. update.resetOverlay("Обновление файлов ресурсов");
  483. var assetDirName = profile.getAssetDir();
  484. var assetDir = settings.updatesDir.resolve(assetDirName);
  485. var assetMatcher = profile.getAssetUpdateMatcher();
  486. makeSetProfileRequest(profile, function() {
  487. ClientLauncher.setProfile(profile);
  488. makeUpdateRequest(assetDirName, assetDir, assetMatcher, digest, function(assetHDir) {
  489. settings.putHDir(assetDirName, assetDir, assetHDir.hdir);
  490.  
  491. update.resetOverlay("Обновление файлов клиента");
  492. var clientDirName = profile.getDir();
  493. var clientDir = settings.updatesDir.resolve(clientDirName);
  494. var clientMatcher = profile.getClientUpdateMatcher();
  495. makeUpdateRequest(clientDirName, clientDir, clientMatcher, digest, function(clientHDir) {
  496. settings.putHDir(clientDirName, clientDir, clientHDir.hdir);
  497. doLaunchClient(assetDir, assetHDir.hdir, clientDir, clientHDir.hdir, profile, pp, accessToken);
  498. });
  499. });
  500. });
  501. }
  502. });
  503. }
  504.  
  505. function doLaunchClient(assetDir, assetHDir, clientDir, clientHDir, profile, pp, accessToken) {
  506. processing.resetOverlay();
  507. overlay.swap(0, processing.overlay, function(event) launchClient(assetHDir, clientHDir, profile, new ClientLauncherParams(settings.lastDigest,
  508. assetDir, clientDir, pp, accessToken, settings.autoEnter, settings.fullScreen, settings.ram, 0, 0), doDebugClient));
  509. }
  510.  
  511. function doDebugClient(process) {
  512. if (!settings.debug) {
  513. javafx.application.Platform.exit();
  514. return;
  515. }
  516.  
  517. debug.resetOverlay();
  518. overlay.swap(0, debug.overlay, function(event) debugProcess(process));
  519. }
  520.  
  521.  
  522. function updateProfilesList(profiles) {
  523. profilesList = [];
  524. serverList.getChildren().clear();
  525. var index = 0;
  526.  
  527. profiles.forEach(function (profile, i, arr) {
  528. pingers[profile] = new ServerPinger(profile);
  529.  
  530. var cell = resloadFXML("servercell.fxml");
  531. servercell = cell.lookup("#serverbuttonlayer");
  532.  
  533. servercell.lookup("#servercell_serverimage").setImage(new javafx.scene.image.Image("/runtime/visual/" + resolution + "/images/mainmenu/serversbuttons/icons/" + profile + ".png"));
  534.  
  535. servercell.lookup("#servercell_serverlabel").setText(serversConfig.getServerProperty(profile, "title"));
  536. var online = servercell.lookup("#servercell_onlinelabel");
  537. var progress = servercell.lookup("#servercell_onlineprogress");
  538.  
  539. var task = newTask(function () pingers[profile].ping());
  540. task.setOnSucceeded(function (event) {
  541. var result = task.getValue();
  542. online.setText(java.lang.String.format("Онлайн %d из %d", result.onlinePlayers, result.maxPlayers));
  543. var percent = result.onlinePlayers / result.maxPlayers;
  544. progress.setProgress(percent);
  545. });
  546. task.setOnFailed(function (event) {
  547. online.setText("Отключен");
  548. progress.setProgress(0);
  549. });
  550. startTask(task);
  551.  
  552. var serverBtn = new javafx.scene.control.ToggleButton(profile, servercell);
  553. serverBtn.getStyleClass().add("serverbutton");
  554.  
  555. (function () {
  556. profilesList[serverBtn] = profile;
  557. var hold = serverBtn;
  558. var hIndex = index;
  559. serverBtn.setOnAction(function (event) {
  560. serverHolder.set(hold);
  561. settings.profile = hIndex;
  562. });
  563. })();
  564.  
  565. serverList.getChildren().add(serverBtn);
  566. if (profile.getOptional() != null) profile.updateOptionalGraph();
  567. index++;
  568. });
  569. LogHelper.debug("Load selected %d profile", settings.profile);
  570. if (profiles.length > 0) {
  571. if (settings.profile >= profiles.length)
  572. settings.profile = profiles.length - 1;
  573. serverHolder.set(serverList.getChildren().get(settings.profile));
  574. }
  575. }
  576.  
  577. /* ======== Overlay helper functions ======== */
  578. function fade(region, delay, from, to, onFinished) {
  579. var transition = new javafx.animation.FadeTransition(javafx.util.Duration.millis(100), region);
  580. if (onFinished !== null) {
  581. transition.setOnFinished(onFinished);
  582. }
  583.  
  584. transition.setDelay(javafx.util.Duration.millis(delay));
  585. transition.setFromValue(from);
  586. transition.setToValue(to);
  587. transition.play();
  588. }
  589.  
  590. var overlay = {
  591. current: null,
  592.  
  593. show: function(newOverlay, onFinished) {
  594. authPane.setDisable(true);
  595. overlay.current = newOverlay;
  596.  
  597. dimPane.setVisible(true);
  598. fade(dimPane, 0.0, 0.0, 1.0, function(event) {
  599. dimPane.requestFocus();
  600. dimPane.getChildren().add(newOverlay);
  601.  
  602. newOverlay.setLayoutX((dimPane.getPrefWidth() - newOverlay.getPrefWidth()) / 2.0);
  603. newOverlay.setLayoutY((dimPane.getPrefHeight() - newOverlay.getPrefHeight()) / 2.0);
  604.  
  605. fade(newOverlay, 0.0, 0.0, 1.0, onFinished);
  606. });
  607. },
  608.  
  609. hide: function(delay, onFinished) {
  610. fade(overlay.current, delay, 1.0, 0.0, function(event) {
  611. dimPane.getChildren().remove(overlay.current);
  612. fade(dimPane, 0.0, 1.0, 0.0, function(event) {
  613. dimPane.setVisible(false);
  614.  
  615. authPane.setDisable(false);
  616. rootPane.requestFocus();
  617. overlay.current = null;
  618. if (onFinished !== null) {
  619. onFinished();
  620. }
  621. });
  622. });
  623. },
  624.  
  625. swap: function(delay, newOverlay, onFinished) {
  626. if (overlay.current == newOverlay) {
  627. onFinished();
  628. return;
  629. }
  630. fade(overlay.current, delay, 1.0, 0.0, function(event) {
  631. dimPane.requestFocus();
  632.  
  633. if (overlay.current == null) {
  634. overlay.show(newOverlay, onFinished);
  635. return;
  636. }
  637.  
  638. if (overlay.current !== newOverlay) {
  639. var child = dimPane.getChildren();
  640. child.set(child.indexOf(overlay.current), newOverlay);
  641. }
  642.  
  643. newOverlay.setLayoutX((dimPane.getPrefWidth() - newOverlay.getPrefWidth()) / 2.0);
  644. newOverlay.setLayoutY((dimPane.getPrefHeight() - newOverlay.getPrefHeight()) / 2.0);
  645.  
  646. overlay.current = newOverlay;
  647. fade(newOverlay, 0.0, 0.0, 1.0, onFinished);
  648. });
  649. }
  650. };
  651.  
  652. var serverHolder = {
  653. old: null,
  654.  
  655. set: function(btn) {
  656. var gameDir = settings.updatesDir.resolve(profilesList[btn]);
  657. if (!IOHelper.isDir(gameDir)) {
  658. playbtn.getStyleClass().add("download");
  659. } else {
  660. playbtn.getStyleClass().removeAll("download");
  661. }
  662.  
  663. menuPane.lookup("#info_title").setText(serversConfig.getServerProperty(profilesList[btn], "title"));
  664. menuPane.lookup("#info_desc").setText(serversConfig.getServerProperty(profilesList[btn], "desc"));
  665. menuPane.lookup("#info_startdate").setText(serversConfig.getServerProperty(profilesList[btn], "startdate"));
  666. menuPane.lookup("#info_ver").setText(serversConfig.getServerProperty(profilesList[btn], "ver"));
  667. menuPane.lookup("#info_type").setText(serversConfig.getServerProperty(profilesList[btn], "type"));
  668. menuPane.lookup("#info_worldsize").setText(serversConfig.getServerProperty(profilesList[btn], "worldsize"));
  669. menuPane.lookup("#info_nethersize").setText(serversConfig.getServerProperty(profilesList[btn], "nethersize"));
  670. menuPane.lookup("#info_endersize").setText(serversConfig.getServerProperty(profilesList[btn], "endersize"));
  671. menuPane.lookup("#info_pvp").setText(serversConfig.getServerProperty(profilesList[btn], "pvp"));
  672. menuPane.lookup("#info_worldwipe").setText(serversConfig.getServerProperty(profilesList[btn], "worldwipe"));
  673. menuPane.lookup("#info_subworldswipe").setText(serversConfig.getServerProperty(profilesList[btn], "subworldswipe"));
  674. menuPane.lookup("#info_info").setText(profilesList[btn].info);
  675.  
  676. var descriptionStyle = "-fx-background-image: url('/runtime/visual/" + resolution + "/images/mainmenu/serversbuttons/descriptions/" + serversConfig.getServerProperty(profilesList[btn], "title") + ".png')";
  677. var selectedStyle = "-fx-background-image: url('/runtime/visual/" + resolution + "/images/mainmenu/serversbuttons/selected/" + serversConfig.getServerProperty(profilesList[btn], "title") + ".png')";
  678. var selectedFireStyle = "-fx-background-image: url('/runtime/visual/" + resolution + "/images/mainmenu/serversbuttons/selected/" + serversConfig.getServerProperty(profilesList[btn], "title") + "_hover.png')";
  679. var descriptionFireStyle = "-fx-background-image: url('/runtime/visual/" + resolution + "/images/mainmenu/serversbuttons/descriptions/" + serversConfig.getServerProperty(profilesList[btn], "title") + "_hover.png')";
  680. menuPane.lookup("#youselect").setStyle(selectedStyle);
  681. menuPane.lookup("#information").setStyle(descriptionStyle);
  682. menuPane.lookup("#youselect").setOnMouseMoved(function(event) { menuPane.lookup("#youselect").setStyle(selectedFireStyle); });
  683. menuPane.lookup("#information").setOnMouseMoved(function(event) { menuPane.lookup("#information").setStyle(descriptionFireStyle); });
  684. menuPane.lookup("#contentPane").setOnMouseMoved(function(event) {
  685. menuPane.lookup("#information").setStyle(descriptionStyle);
  686. menuPane.lookup("#youselect").setStyle(selectedStyle);
  687. });
  688.  
  689. btn.setSelected(true);
  690. btn.setDisable(true);
  691. if (serverHolder.old != null) {
  692. serverHolder.old.setSelected(false);
  693. serverHolder.old.setDisable(false);
  694. }
  695. serverHolder.old = btn;
  696. }
  697. };
  698.  
  699. function execCommand(cmd) {
  700. FunctionalBridge.evalCommand(cmd);
  701. }
  702.  
  703. /* ======== Overlays scripts ======== */
  704. launcher.loadScript("engine/settings.js");
  705. launcher.loadScript("engine/debug.js");
  706. launcher.loadScript("engine/processing.js");
  707. launcher.loadScript("engine/update.js");
  708.  
  709. /* ======== Scenes scripts ======== */
  710. launcher.loadScript("engine/options.js");
  711. launcher.loadScript("servers.js");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement