Merge branch 'feature/design' into dev

This commit is contained in:
Gravit 2019-04-13 03:30:56 +07:00
commit 81ae4c35f0
No known key found for this signature in database
GPG key ID: 061981E1E85D3216
26 changed files with 378 additions and 348 deletions

View file

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import com.jfoenix.controls.JFXButton?>
<?import com.jfoenix.controls.JFXTextArea?>
<?import java.net.URL?>
<?import javafx.scene.layout.Pane?>
<!-- DrLeonardo Design -->
<Pane fx:id="layout" prefWidth="740.0" xmlns="http://javafx.com/javafx/8.0.201" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Pane fx:id="consolePane" prefHeight="425.0" prefWidth="693.0" styleClass="consolePane">
<children>
<!-- Debug controls -->
<JFXTextArea fx:id="output" prefHeight="425.0" prefWidth="693.0" />
<JFXButton fx:id="copy" defaultButton="true" layoutX="465.0" layoutY="386.0" prefHeight="30.0" prefWidth="100.0" text="Копировать" />
<JFXButton fx:id="action" layoutX="579.0" layoutY="386.0" prefHeight="25.0" prefWidth="100.0" text="Убить" />
</children>
</Pane>
<Pane fx:id="bar" layoutX="693.0" prefHeight="425.0" prefWidth="43.0" styleClass="bar">
<children>
<JFXButton id="hide" alignment="CENTER" contentDisplay="CENTER" layoutY="45.0" text="" textAlignment="CENTER" />
<JFXButton id="close" alignment="CENTER" contentDisplay="CENTER" text="" textAlignment="CENTER" />
<JFXButton id="back" fx:id="back" alignment="CENTER" contentDisplay="CENTER" layoutY="380.0" text="" textAlignment="CENTER" />
</children>
</Pane>
<Pane id="mask" opacity="0.0" prefHeight="425.0" prefWidth="694.0" visible="false" />
</children>
<stylesheets>
<URL value="@styles.css" />
</stylesheets>
</Pane>

View file

@ -1,4 +1,4 @@
var authPane, dimPane, serverPane, bar; var authPane, dimPane, serverPane, bar, optionsPane, consolePane;
var loginField, passwordField, savePasswordBox; var loginField, passwordField, savePasswordBox;
var serverList, serverInfo, serverDescription, serverEntrance, serverLabel, serverStatus; var serverList, serverInfo, serverDescription, serverEntrance, serverLabel, serverStatus;
var profilesList = []; var profilesList = [];
@ -10,17 +10,18 @@ function initLauncher() {
initLoginScene(); initLoginScene();
initMenuScene(); initMenuScene();
initConsoleScene(); initConsoleScene();
initOptionsScene();
/* ======== init Overlays ======== */
debug.initOverlay(); debug.initOverlay();
processing.initOverlay(); processing.initOverlay();
settingsOverlay.initOverlay(); settingsOverlay.initOverlay();
update.initOverlay(); update.initOverlay();
options.initOverlay();
verifyLauncher(); verifyLauncher();
} }
/* ======== init Login ======== */ /* ======== init Login window======== */
function initLoginScene() { function initLoginScene() {
loginPane.setOnMousePressed(function(event){ movePoint = new javafx.geometry.Point2D(event.getSceneX(), event.getSceneY())}); loginPane.setOnMousePressed(function(event){ movePoint = new javafx.geometry.Point2D(event.getSceneX(), event.getSceneY())});
loginPane.setOnMouseDragged(function(event) { loginPane.setOnMouseDragged(function(event) {
@ -41,14 +42,14 @@ function initLoginScene() {
authPane = pane; authPane = pane;
loginField = pane.lookup("#login"); loginField = pane.lookup("#login");
loginField.setOnMouseMoved(function(event){rootPane.fireEvent(event)}); loginField.setOnMouseMoved(function(event){rootPane.fireEvent(event)});
loginField.setOnAction(goAuth); loginField.setOnAction(goAuth);
if (settings.login !== null) { if (settings.login !== null) {
loginField.setText(settings.login); loginField.setText(settings.login);
} }
passwordField = pane.lookup("#password"); passwordField = pane.lookup("#password");
passwordField.setOnMouseMoved(function(event){rootPane.fireEvent(event)}); passwordField.setOnMouseMoved(function(event){rootPane.fireEvent(event)});
passwordField.setOnAction(goAuth); passwordField.setOnAction(goAuth);
if (settings.rsaPassword !== null) { if (settings.rsaPassword !== null) {
passwordField.getStyleClass().add("hasSaved"); passwordField.getStyleClass().add("hasSaved");
@ -65,7 +66,7 @@ function initLoginScene() {
pane.lookup("#goAuth").setOnAction(goAuth); pane.lookup("#goAuth").setOnAction(goAuth);
} }
/* ======== init Menu ======== */ /* ======== init Menu window======== */
function initMenuScene() { function initMenuScene() {
menuPane.setOnMousePressed(function(event){ movePoint = new javafx.geometry.Point2D(event.getSceneX(), event.getSceneY())}); menuPane.setOnMousePressed(function(event){ movePoint = new javafx.geometry.Point2D(event.getSceneX(), event.getSceneY())});
menuPane.setOnMouseDragged(function(event) { menuPane.setOnMouseDragged(function(event) {
@ -95,7 +96,6 @@ function initMenuScene() {
serverList = pane.lookup("#serverlist").getContent(); serverList = pane.lookup("#serverlist").getContent();
serverInfo = pane.lookup("#serverinfo").getContent(); serverInfo = pane.lookup("#serverinfo").getContent();
serverDescription = serverInfo.lookup("#serverDescription"); serverDescription = serverInfo.lookup("#serverDescription");
serverEntrance = pane.lookup("#serverentrance"); serverEntrance = pane.lookup("#serverentrance");
serverStatus = serverEntrance.lookup("#serverStatus"); serverStatus = serverEntrance.lookup("#serverStatus");
serverLabel = serverEntrance.lookup("#serverLabel"); serverLabel = serverEntrance.lookup("#serverLabel");
@ -105,10 +105,10 @@ function initMenuScene() {
} }
/* ======== init Console ======== */ /* ======== init Console window======== */
function initConsoleScene() { function initConsoleScene() {
consolePane.setOnMousePressed(function(event){ movePoint = new javafx.geometry.Point2D(event.getSceneX(), event.getSceneY())}); consoleMenu.setOnMousePressed(function(event){ movePoint = new javafx.geometry.Point2D(event.getSceneX(), event.getSceneY())});
consolePane.setOnMouseDragged(function(event) { consoleMenu.setOnMouseDragged(function(event) {
if(movePoint === null) { if(movePoint === null) {
return; return;
} }
@ -117,18 +117,38 @@ function initConsoleScene() {
stage.setY(event.getScreenY() - movePoint.getY()); stage.setY(event.getScreenY() - movePoint.getY());
}); });
var pane = consolePane.lookup("#bar"); var pane = consoleMenu.lookup("#bar");
bar = pane; bar = pane;
consolePane.lookup("#close").setOnAction(function(event){ javafx.application.Platform.exit()}); pane.lookup("#close").setOnAction(function(event){ javafx.application.Platform.exit()});
consolePane.lookup("#hide").setOnAction(function(event){ stage.setIconified(true)}); pane.lookup("#hide").setOnAction(function(event){ stage.setIconified(true)});
consolePane.lookup("#back").setOnAction(function(){ pane.lookup("#back").setOnAction(function(){
setCurrentScene(menuScene); setCurrentScene(menuScene);
}); });
var pane = consolePane.lookup("#consolePane"); var pane = consoleMenu.lookup("#consolePane");
consolePane = pane; consolePane = pane;
}
/* ======== init Options window======== */
function initOptionsScene() {
optionsMenu.setOnMousePressed(function(event){ movePoint = new javafx.geometry.Point2D(event.getSceneX(), event.getSceneY())});
optionsMenu.setOnMouseDragged(function(event) {
if(movePoint === null) {
return;
}
stage.setX(event.getScreenX() - movePoint.getX());
stage.setY(event.getScreenY() - movePoint.getY());
});
var pane = optionsMenu.lookup("#bar");
bar = pane;
pane.lookup("#close").setOnAction(function(event){ javafx.application.Platform.exit()});
pane.lookup("#hide").setOnAction(function(event){ stage.setIconified(true)});
pane.lookup("#back").setOnAction(function(){
setCurrentScene(menuScene);
});
} }
/* ======== init Offline ======== */ /* ======== init Offline ======== */
@ -149,7 +169,7 @@ function initOffline() {
function goAuth(event) { function goAuth(event) {
if (overlay.current !== null) { if (overlay.current !== null) {
return; return;
} }
var login = loginField.getText(); var login = loginField.getText();
if (login.isEmpty()) { if (login.isEmpty()) {
@ -176,32 +196,23 @@ function goAuth(event) {
/* ======== Console ======== */ /* ======== Console ======== */
function goConsole(event) { function goConsole(event) {
if (overlay.current !== null) { setCurrentScene(consoleScene);
return;
}
} }
/* ======== Settings ======== */ /* ======== Settings ======== */
function goSettings(event) { function goSettings(event) {
// Verify there's no other overlays
if (overlay.current !== null) { if (overlay.current !== null) {
return; return;
} }
// Show settings overlay
overlay.show(settingsOverlay.overlay, null); overlay.show(settingsOverlay.overlay, null);
} }
/* ======== Options ======== */ /* ======== Options ======== */
function goOptions(event) { function goOptions(event) {
// Verify there's no other overlays setCurrentScene(optionsScene);
if (overlay.current !== null) {
return;
}
// Show options overlay
options.update(); options.update();
overlay.show(options.overlay, null);
} }
/* ======== Processing functions ======== */ /* ======== Processing functions ======== */
@ -210,19 +221,17 @@ function verifyLauncher(e) {
overlay.show(processing.overlay, function(event) makeLauncherRequest(function(result) { overlay.show(processing.overlay, function(event) makeLauncherRequest(function(result) {
settings.lastDigest = result.digest; settings.lastDigest = result.digest;
processing.resetOverlay(); processing.resetOverlay();
// Init offline if set
if (settings.offline) { if (settings.offline) {
initOffline(); initOffline();
} }
overlay.swap(0, processing.overlay, function(event) makeProfilesRequest(function(result) { overlay.swap(0, processing.overlay, function(event) makeProfilesRequest(function(result) {
settings.lastProfiles = result.profiles; settings.lastProfiles = result.profiles;
// Update profiles list and hide overlay
updateProfilesList(result.profiles); updateProfilesList(result.profiles);
options.load(); options.load();
overlay.hide(0, function() { overlay.hide(0, function() {
if (cliParams.autoLogin) { if (cliParams.autoLogin) {
goAuth(null); goAuth(null);
} }
}); });
})); }));
})); }));
@ -245,37 +254,37 @@ function doAuth(login, rsaPassword) {
} }
function doUpdate(profile, pp, accessToken) { function doUpdate(profile, pp, accessToken) {
var digest = profile.isUpdateFastCheck(); var digest = profile.isUpdateFastCheck();
overlay.swap(0, update.overlay, function(event) { overlay.swap(0, update.overlay, function(event) {
update.resetOverlay("Обновление файлов ресурсов"); update.resetOverlay("Обновление файлов ресурсов");
var assetDirName = profile.getAssetDir(); var assetDirName = profile.getAssetDir();
var assetDir = settings.updatesDir.resolve(assetDirName); var assetDir = settings.updatesDir.resolve(assetDirName);
var assetMatcher = profile.getAssetUpdateMatcher(); var assetMatcher = profile.getAssetUpdateMatcher();
makeSetProfileRequest(profile, function() { makeSetProfileRequest(profile, function() {
ClientLauncher.setProfile(profile); ClientLauncher.setProfile(profile);
makeUpdateRequest(assetDirName, assetDir, assetMatcher, digest, function(assetHDir) { makeUpdateRequest(assetDirName, assetDir, assetMatcher, digest, function(assetHDir) {
settings.lastHDirs.put(assetDirName, assetHDir.hdir); settings.lastHDirs.put(assetDirName, assetHDir.hdir);
update.resetOverlay("Обновление файлов клиента"); update.resetOverlay("Обновление файлов клиента");
var clientDirName = profile.getDir(); var clientDirName = profile.getDir();
var clientDir = settings.updatesDir.resolve(clientDirName); var clientDir = settings.updatesDir.resolve(clientDirName);
var clientMatcher = profile.getClientUpdateMatcher(); var clientMatcher = profile.getClientUpdateMatcher();
makeUpdateRequest(clientDirName, clientDir, clientMatcher, digest, function(clientHDir) { makeUpdateRequest(clientDirName, clientDir, clientMatcher, digest, function(clientHDir) {
settings.lastHDirs.put(clientDirName, clientHDir.hdir); settings.lastHDirs.put(clientDirName, clientHDir.hdir);
doLaunchClient(assetDir, assetHDir.hdir, clientDir, clientHDir.hdir, profile, pp, accessToken); doLaunchClient(assetDir, assetHDir.hdir, clientDir, clientHDir.hdir, profile, pp, accessToken);
});
}); });
}); });
});
}); });
} }
function doLaunchClient(assetDir, assetHDir, clientDir, clientHDir, profile, pp, accessToken) { function doLaunchClient(assetDir, assetHDir, clientDir, clientHDir, profile, pp, accessToken) {
processing.resetOverlay(); processing.resetOverlay();
overlay.swap(0, processing.overlay, function(event) overlay.swap(0, processing.overlay, function(event)
launchClient(assetHDir, clientHDir, profile, new ClientLauncherParams(settings.lastDigest, launchClient(assetHDir, clientHDir, profile, new ClientLauncherParams(settings.lastDigest,
assetDir, clientDir, pp, accessToken, settings.autoEnter, settings.fullScreen, settings.ram, 0, 0), doDebugClient) assetDir, clientDir, pp, accessToken, settings.autoEnter, settings.fullScreen, settings.ram, 0, 0), doDebugClient)
); );
} }
function doDebugClient(process) { function doDebugClient(process) {
@ -317,8 +326,8 @@ function updateProfilesList(profiles) {
}); });
LogHelper.debug("Load selected %d profile",settings.profile); LogHelper.debug("Load selected %d profile",settings.profile);
if(profiles.length > 0) { if(profiles.length > 0) {
if(settings.profile >= profiles.length) if(settings.profile >= profiles.length)
settings.profile = profiles.length-1; settings.profile = profiles.length-1;
serverHolder.set(serverList.getChildren().get(settings.profile)); serverHolder.set(serverList.getChildren().get(settings.profile));
} }
} }
@ -433,9 +442,11 @@ var serverHolder = {
} }
}; };
/* ======== Overlay scripts ======== */ /* ======== Scenes scripts ======== */
launcher.loadScript("dialog/overlay/debug/debug.js"); launcher.loadScript("dialog/overlay/debug/debug.js");
launcher.loadScript("dialog/overlay/processing/processing.js"); launcher.loadScript("dialog/overlay/processing/processing.js");
launcher.loadScript("dialog/overlay/settings/settings.js"); launcher.loadScript("dialog/overlay/settings/settings.js");
launcher.loadScript("dialog/overlay/options/options.js"); launcher.loadScript("dialog/overlay/update/update.js");
launcher.loadScript("dialog/overlay/update/update.js");
/* ======== Overlays scripts ======== */
launcher.loadScript("dialog/scenes/options/options.js");

Binary file not shown.

Before

Width:  |  Height:  |  Size: 346 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 586 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 781 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

View file

@ -3,6 +3,7 @@
<?import com.jfoenix.controls.JFXButton?> <?import com.jfoenix.controls.JFXButton?>
<?import com.jfoenix.controls.JFXTextArea?> <?import com.jfoenix.controls.JFXTextArea?>
<?import java.net.URL?> <?import java.net.URL?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.Pane?> <?import javafx.scene.layout.Pane?>
<!-- DrLeonardo Design --> <!-- DrLeonardo Design -->
@ -14,7 +15,10 @@
</stylesheets> </stylesheets>
<!-- Debug controls --> <!-- Debug controls -->
<JFXTextArea fx:id="output" prefHeight="425.0" prefWidth="693.0" /> <JFXTextArea fx:id="output" prefHeight="425.0" prefWidth="693.0">
<JFXButton fx:id="copy" defaultButton="true" layoutX="423.0" layoutY="390.0" prefHeight="30.0" prefWidth="100.0" text="Копировать" /> <padding>
<JFXButton fx:id="action" layoutX="583.0" layoutY="390.0" prefHeight="25.0" prefWidth="100.0" text="Убить" /> <Insets left="10.0" right="10.0" />
</padding></JFXTextArea>
<JFXButton fx:id="copy" defaultButton="true" layoutX="373.0" layoutY="390.0" prefHeight="30.0" prefWidth="100.0" text="Копировать" />
<JFXButton fx:id="action" layoutX="533.0" layoutY="390.0" prefHeight="25.0" prefWidth="150.0" text="Убить" />
</Pane> </Pane>

View file

@ -1,43 +0,0 @@
/*-- DrLeonardo Design --*/
#holder {
-fx-background-color: #fff;
}
/* Labels */
#holder > #settingsTitle {
-fx-font-size: 14pt;
-fx-alignment: baseline-center;
}
#holder > #apply{
-fx-background-color: #61B373;
-fx-background-radius: 0;
-fx-text-fill: white;
-fx-background-position: center;
-jfx-button-type: FLAT;
-fx-pref-width: 150px;
-fx-pref-height: 25px;
}
#holder > #apply:hover,
#holder > #apply:focused{
-fx-background-color: #74C085;
}
#holder > #modlist {
-fx-background-color: transparent;
}
#holder > #modlist > .viewport {
-fx-background-color: transparent;
}
.description-text {
-fx-font-smoothing-type: lcd;
-fx-fill: #8c8c8c;
-fx-font-size: 12px;
}
.separator *.line {
-fx-border-color: transparent;
-fx-border-width: 0 0 10 0;
}
/*-- DrLeonardo Design --*/

View file

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import com.jfoenix.controls.JFXButton?>
<?import com.jfoenix.controls.JFXScrollPane?>
<?import java.net.URL?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.layout.VBox?>
<!-- DrLeonardo Design -->
<Pane fx:id="overlay" prefHeight="425.0" prefWidth="693.0" xmlns="http://javafx.com/javafx/8.0.201" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Pane id="holder" prefHeight="425.0" prefWidth="693.0">
<children>
<JFXScrollPane id="modlist" prefHeight="425.0" prefWidth="694.0">
<content>
<VBox prefHeight="232.0" prefWidth="689.0">
<children>
</children>
<padding>
<Insets left="10.0" top="8.0" />
</padding>
</VBox>
</content>
</JFXScrollPane>
<JFXButton fx:id="apply" defaultButton="true" layoutX="532.0" layoutY="390.0" prefHeight="25.0" prefWidth="100.0" text="Применить" />
</children>
</Pane>
</children>
<stylesheets>
<URL value="@options.css" />
<URL value="@../../styles.css" />
</stylesheets>
</Pane>

View file

@ -7,7 +7,7 @@
<!-- DrLeonardo Design | Fixes by Yaroslavik --> <!-- DrLeonardo Design | Fixes by Yaroslavik -->
<Pane fx:id="overlay" prefHeight="425.0" prefWidth="693.0" xmlns="http://javafx.com/javafx/8.0.201" xmlns:fx="http://javafx.com/fxml/1"> <Pane fx:id="overlay" prefHeight="425.0" prefWidth="692.0" xmlns="http://javafx.com/javafx/8.0.201" xmlns:fx="http://javafx.com/fxml/1">
<children> <children>
<!-- Description --> <!-- Description -->
<Label fx:id="description" alignment="CENTER" contentDisplay="CENTER" layoutX="205.0" layoutY="272.0" prefHeight="120.0" prefWidth="283.0" text="..." textAlignment="CENTER" /> <Label fx:id="description" alignment="CENTER" contentDisplay="CENTER" layoutX="205.0" layoutY="272.0" prefHeight="120.0" prefWidth="283.0" text="..." textAlignment="CENTER" />

View file

@ -5,17 +5,14 @@ var processing = {
initOverlay: function() { initOverlay: function() {
processing.overlay = loadFXML("dialog/overlay/processing/processing.fxml"); processing.overlay = loadFXML("dialog/overlay/processing/processing.fxml");
// Lookup nodes
processing.spinner = processing.overlay.lookup("#spinner"); processing.spinner = processing.overlay.lookup("#spinner");
processing.description = processing.overlay.lookup("#description"); processing.description = processing.overlay.lookup("#description");
// Set images
processing.errorImage = new javafx.scene.image.Image( processing.errorImage = new javafx.scene.image.Image(
Launcher.getResourceURL("dialog/images/icons/error.png").toString()); Launcher.getResourceURL("dialog/images/icons/error.png").toString());
}, },
resetOverlay: function() {//JFXSpinner spinner = new JFXSpinner(); resetOverlay: function() {
//processing.spinner.setImage(processing.processingImage);
processing.description.getStyleClass().remove("error"); processing.description.getStyleClass().remove("error");
processing.description.setText("..."); processing.description.setText("...");
}, },

View file

@ -7,6 +7,7 @@
<?import javafx.scene.control.Hyperlink?> <?import javafx.scene.control.Hyperlink?>
<?import javafx.scene.control.Separator?> <?import javafx.scene.control.Separator?>
<?import javafx.scene.layout.Pane?> <?import javafx.scene.layout.Pane?>
<?import javafx.scene.shape.Line?>
<?import javafx.scene.text.Font?> <?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?> <?import javafx.scene.text.Text?>
<?import javafx.scene.text.TextFlow?> <?import javafx.scene.text.TextFlow?>
@ -17,33 +18,23 @@
<children> <children>
<Pane id="holder" prefHeight="425.0" prefWidth="694.0"> <Pane id="holder" prefHeight="425.0" prefWidth="694.0">
<children> <children>
<JFXCheckBox fx:id="autoEnter" checkedColor="#61b373" layoutX="14.0" layoutY="127.0" text="Автовход на сервер" unCheckedColor="#909090" /> <JFXCheckBox fx:id="autoEnter" checkedColor="#61b373" layoutX="14.0" layoutY="134.0" text="Автовход на сервер" unCheckedColor="#909090" />
<Text fill="#8c8c8c" layoutX="38.0" layoutY="143.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Включение авто-входа означает что вы сразу после загрузки клиента попадете на сервер" wrappingWidth="636.9999872148037" y="15.0" /> <Text fill="#8c8c8c" layoutX="38.0" layoutY="150.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Включение авто-входа означает что вы сразу после загрузки клиента попадете на сервер" wrappingWidth="636.9999872148037" y="15.0" />
<JFXCheckBox fx:id="fullScreen" checkedColor="#61b373" layoutX="13.0" layoutY="250.0" text="Клиент в полный экран" unCheckedColor="#909090" /> <JFXCheckBox fx:id="fullScreen" checkedColor="#61b373" layoutX="13.0" layoutY="257.0" text="Клиент в полный экран" unCheckedColor="#909090" />
<Text fill="#8c8c8c" layoutX="38.0" layoutY="267.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Включение данной функции позволяет запустить игру сразу в полноэкранном режиме" wrappingWidth="636.9999872148037" y="15.0" /> <Text fill="#8c8c8c" layoutX="38.0" layoutY="274.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Включение данной функции позволяет запустить игру сразу в полноэкранном режиме" wrappingWidth="636.9999872148037" y="15.0" />
<JFXCheckBox id="debug" checkedColor="#61b373" layoutX="13.0" layoutY="183.0" text="Режим Отладки" unCheckedColor="#909090" /> <JFXCheckBox id="debug" checkedColor="#61b373" layoutX="13.0" layoutY="190.0" text="Режим Отладки" unCheckedColor="#909090" />
<Text fill="#8c8c8c" layoutX="38.0" layoutY="198.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Режим отладки позволяет просмотреть лог запуска и работы программы в реальном времени прямо из лаунчера, что упрощает поиск нужной информации" wrappingWidth="637.0000016447157" y="15.0" /> <Text fill="#8c8c8c" layoutX="38.0" layoutY="205.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Режим отладки позволяет просмотреть лог запуска и работы программы в реальном времени прямо из лаунчера, что упрощает поиск нужной информации" wrappingWidth="637.0000016447157" y="15.0" />
<!-- RAM settings -->
<TextFlow layoutX="126.0" layoutY="15.0" prefHeight="16.0" prefWidth="112.0"> <TextFlow layoutX="126.0" layoutY="15.0" prefHeight="16.0" prefWidth="112.0">
<Text fx:id="ramLabel" /> <Text fx:id="ramLabel" />
</TextFlow> </TextFlow>
<Separator layoutY="112.0" prefHeight="3.0" prefWidth="693.0" /> <Line endX="589.0" layoutX="100.0" layoutY="115.0" startX="-100.0" stroke="#5b3636" styleClass="lineHead" />
<!-- RAM settings --> <JFXButton fx:id="deleteDir" layoutX="374.0" layoutY="356.0" prefHeight="25.0" prefWidth="245.0" text="Удалить клиенты" textAlignment="CENTER" wrapText="true" />
<!-- Deldir settings -->
<JFXButton fx:id="deleteDir" layoutX="374.0" layoutY="365.0" prefHeight="25.0" prefWidth="245.0" text="Удалить клиенты" textAlignment="CENTER" wrapText="true" />
<!-- Deldir settings -->
<!-- Changedir settings -->
<JFXButton fx:id="changeDir" layoutY="400.0" prefHeight="25.0" prefWidth="200.0" text="Сменить директорию загрузки" textAlignment="CENTER" wrapText="true" /> <JFXButton fx:id="changeDir" layoutY="400.0" prefHeight="25.0" prefWidth="200.0" text="Сменить директорию загрузки" textAlignment="CENTER" wrapText="true" />
<Hyperlink id="dirLabel" alignment="TOP_LEFT" layoutX="200.0" layoutY="401.0" prefHeight="23.0" prefWidth="493.0" text="C:/Users" /> <Hyperlink id="dirLabel" alignment="TOP_LEFT" layoutX="200.0" layoutY="401.0" prefHeight="23.0" prefWidth="493.0" text="C:/Users" />
<!-- Changedir settings --> <JFXButton fx:id="apply" defaultButton="true" layoutX="534.0" layoutY="356.0" prefHeight="23.0" prefWidth="100.0" text="Применить" />
<JFXButton fx:id="apply" defaultButton="true" layoutX="534.0" layoutY="365.0" prefHeight="23.0" prefWidth="100.0" text="Применить" />
<Text layoutX="16.0" layoutY="28.0">Выделение памяти: </Text> <Text layoutX="16.0" layoutY="28.0">Выделение памяти: </Text>
<JFXSlider fx:id="ramSlider" layoutX="14.0" layoutY="76.0" prefHeight="14.0" prefWidth="663.0" /> <JFXSlider fx:id="ramSlider" layoutX="14.0" layoutY="76.0" prefHeight="14.0" prefWidth="663.0" />
<Separator layoutY="400.0" prefHeight="3.0" prefWidth="693.0" /> <Separator layoutY="400.0" prefHeight="3.0" prefWidth="694.0" />
<Pane fx:id="transferDialog" prefHeight="425.0" prefWidth="694.0" visible="false"> <Pane fx:id="transferDialog" prefHeight="425.0" prefWidth="694.0" visible="false">
<children> <children>
<Text fill="WHITE" layoutX="147.0" layoutY="198.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Перенести все данные в новую директорию?" wrappingWidth="400.13671875"> <Text fill="WHITE" layoutX="147.0" layoutY="198.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Перенести все данные в новую директорию?" wrappingWidth="400.13671875">
@ -55,7 +46,7 @@
<JFXButton fx:id="cancelTransfer" layoutX="379.0" layoutY="226.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="124.0" text="Нет, не нужно." /> <JFXButton fx:id="cancelTransfer" layoutX="379.0" layoutY="226.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="124.0" text="Нет, не нужно." />
</children> </children>
</Pane> </Pane>
<Line endX="585.0" layoutX="104.0" layoutY="396.0" startX="-100.0" stroke="#5b3636" styleClass="lineHead" />
</children> </children>
</Pane> </Pane>
</children> </children>

View file

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import com.jfoenix.controls.JFXButton?>
<?import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIconView?>
<?import java.net.URL?>
<?import javafx.scene.layout.Pane?>
<!-- DrLeonardo Design -->
<Pane fx:id="background" prefWidth="738.0" xmlns="http://javafx.com/javafx/8.0.201" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Pane fx:id="bar" layoutX="692.0" prefHeight="425.0" prefWidth="43.0" styleClass="bar">
<children>
<JFXButton id="hide" alignment="CENTER" contentDisplay="CENTER" layoutY="45.0" ripplerFill="#646464" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="MINUS" size="30" textAlignment="CENTER" />
</graphic>
</JFXButton>
<JFXButton id="close" alignment="CENTER" contentDisplay="CENTER" ripplerFill="#fb8c8c" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="CLOSE" size="30" textAlignment="CENTER" />
</graphic>
</JFXButton>
<JFXButton id="back" alignment="CENTER" contentDisplay="CENTER" layoutY="380.0" ripplerFill="#646464" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="CHEVRON_LEFT" size="30" textAlignment="CENTER" />
</graphic>
</JFXButton>
</children>
</Pane>
<Pane id="mask" opacity="0.0" prefHeight="425.0" prefWidth="694.0" visible="false" />
</children>
<stylesheets>
<URL value="@../../styles.css" />
</stylesheets>
</Pane>

View file

@ -6,6 +6,7 @@
<?import com.jfoenix.controls.JFXMasonryPane?> <?import com.jfoenix.controls.JFXMasonryPane?>
<?import com.jfoenix.controls.JFXPasswordField?> <?import com.jfoenix.controls.JFXPasswordField?>
<?import com.jfoenix.controls.JFXTextField?> <?import com.jfoenix.controls.JFXTextField?>
<?import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIconView?>
<?import java.net.URL?> <?import java.net.URL?>
<?import javafx.scene.control.Hyperlink?> <?import javafx.scene.control.Hyperlink?>
<?import javafx.scene.layout.Pane?> <?import javafx.scene.layout.Pane?>
@ -27,16 +28,28 @@
</children> </children>
</Pane> </Pane>
<JFXMasonryPane fx:id="news" prefHeight="425.0" prefWidth="423.0" styleClass="news" /> <JFXMasonryPane fx:id="news" prefHeight="425.0" prefWidth="423.0" styleClass="news" />
<Pane fx:id="bar" layoutX="693.0" prefHeight="425.0" prefWidth="43.0" styleClass="bar"> <Pane fx:id="bar" layoutX="692.0" prefHeight="425.0" prefWidth="43.0" styleClass="bar">
<children> <children>
<JFXButton id="hide" alignment="CENTER" contentDisplay="CENTER" layoutY="45.0" text="" textAlignment="CENTER" /> <JFXButton id="hide" alignment="CENTER" contentDisplay="CENTER" layoutY="45.0" ripplerFill="#646464" text="" textAlignment="CENTER">
<JFXButton id="close" alignment="CENTER" contentDisplay="CENTER" text="" textAlignment="CENTER" /> <graphic>
<JFXButton id="discord" alignment="CENTER" contentDisplay="CENTER" layoutY="380.0" text="" textAlignment="CENTER" /> <MaterialDesignIconView fill="WHITE" glyphName="MINUS" size="30" textAlignment="CENTER" />
</children> </graphic>
</Pane> </JFXButton>
<Pane id="mask" opacity="0.0" prefHeight="425.0" prefWidth="694.0" visible="false" /> <JFXButton id="close" alignment="CENTER" contentDisplay="CENTER" ripplerFill="#fb8c8c" text="" textAlignment="CENTER">
</children> <graphic>
<MaterialDesignIconView fill="WHITE" glyphName="CLOSE" size="30" textAlignment="CENTER" />
</graphic>
</JFXButton>
<JFXButton id="discord" alignment="CENTER" contentDisplay="CENTER" layoutY="380.0" ripplerFill="#646464" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="MESSAGE_TEXT" size="30" textAlignment="CENTER" />
</graphic>
</JFXButton>
</children>
</Pane>
<Pane id="mask" opacity="0.0" prefHeight="425.0" prefWidth="694.0" visible="false" />
</children>
<stylesheets> <stylesheets>
<URL value="@styles.css" /> <URL value="@../../styles.css" />
</stylesheets> </stylesheets>
</Pane> </Pane>

View file

@ -1,6 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?import com.jfoenix.controls.JFXButton?> <?import com.jfoenix.controls.JFXButton?>
<?import de.jensd.fx.glyphs.fontawesome.FontAwesomeIconView?>
<?import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIconView?>
<?import java.net.URL?> <?import java.net.URL?>
<?import javafx.geometry.Insets?> <?import javafx.geometry.Insets?>
<?import javafx.scene.control.Label?> <?import javafx.scene.control.Label?>
@ -18,7 +20,7 @@
<ScrollPane id="serverlist" hbarPolicy="NEVER" layoutX="1.0" prefHeight="425.0" prefWidth="307.0" visible="true"> <ScrollPane id="serverlist" hbarPolicy="NEVER" layoutX="1.0" prefHeight="425.0" prefWidth="307.0" visible="true">
<content> <content>
<FlowPane focusTraversable="false" prefHeight="421.0" prefWidth="306.0" prefWrapLength="0.0" rowValignment="TOP" vgap="10.0" visible="true"> <FlowPane focusTraversable="false" prefHeight="421.0" prefWidth="306.0" prefWrapLength="0.0" rowValignment="TOP" vgap="10.0" visible="true">
<JFXButton id="servercontainer" text="Button"> <JFXButton id="servercontainer" ripplerFill="#ffffff80" text="">
<FlowPane.margin> <FlowPane.margin>
<Insets bottom="10.0" /> <Insets bottom="10.0" />
</FlowPane.margin></JFXButton> </FlowPane.margin></JFXButton>
@ -47,13 +49,16 @@
<Font size="22.0" /> <Font size="22.0" />
</font> </font>
</JFXButton> </JFXButton>
<JFXButton id="clientSettings" alignment="CENTER" centerShape="false" contentDisplay="CENTER" layoutX="281.0" layoutY="355.0" styleClass="clientSettings" text="" textAlignment="CENTER" /> <JFXButton id="clientSettings" alignment="CENTER" centerShape="false" contentDisplay="CENTER" layoutX="281.0" layoutY="355.0" ripplerFill="#84da96" styleClass="clientSettings" text="" textAlignment="CENTER">
<graphic>
<FontAwesomeIconView fill="WHITE" glyphName="SLIDERS" size="30.0" />
</graphic></JFXButton>
<Label id="serverStatus" alignment="TOP_RIGHT" contentDisplay="RIGHT" layoutX="246.0" layoutY="12.0" prefHeight="25.0" prefWidth="104.0" text="12/100" textAlignment="RIGHT" textFill="WHITE"> <Label id="serverStatus" alignment="TOP_RIGHT" contentDisplay="RIGHT" layoutX="246.0" layoutY="12.0" prefHeight="25.0" prefWidth="104.0" text="12/100" textAlignment="RIGHT" textFill="WHITE">
<font> <font>
<Font name="System Bold" size="16.0" /> <Font name="System Bold" size="16.0" />
</font> </font>
</Label> </Label>
<Label id="serverLabel" layoutX="4.0" layoutY="11.0" prefHeight="31.0" prefWidth="265.0" text="СЕРВЕР IFARM"> <Label id="serverLabel" layoutX="4.0" layoutY="11.0" prefHeight="31.0" prefWidth="265.0" text="СЕРВЕР">
<font> <font>
<Font name="System Bold" size="18.0" /> <Font name="System Bold" size="18.0" />
</font> </font>
@ -65,19 +70,44 @@
</Pane> </Pane>
</children> </children>
</Pane> </Pane>
<Pane fx:id="bar" layoutX="693.0" prefHeight="425.0" prefWidth="43.0" styleClass="bar"> <Pane fx:id="bar" layoutX="692.0" prefHeight="425.0" prefWidth="43.0" styleClass="bar">
<children> <children>
<JFXButton id="hide" alignment="CENTER" contentDisplay="CENTER" layoutY="45.0" text="" textAlignment="CENTER" /> <JFXButton id="hide" alignment="CENTER" contentDisplay="CENTER" layoutY="45.0" ripplerFill="#646464" text="" textAlignment="CENTER">
<JFXButton id="close" alignment="CENTER" contentDisplay="CENTER" styleClass="close" text="" textAlignment="CENTER" /> <graphic>
<JFXButton id="discord" alignment="CENTER" contentDisplay="CENTER" layoutY="380.0" text="" textAlignment="CENTER" /> <MaterialDesignIconView fill="WHITE" glyphName="MINUS" size="30" textAlignment="CENTER" />
<JFXButton id="settings" alignment="CENTER" contentDisplay="CENTER" layoutY="92.0" text="" textAlignment="CENTER" /> </graphic>
<JFXButton id="goConsole" fx:id="console" alignment="CENTER" contentDisplay="CENTER" layoutY="138.0" text="" textAlignment="CENTER" /> </JFXButton>
<JFXButton id="logout" alignment="CENTER" contentDisplay="CENTER" layoutY="334.0" text="" /> <JFXButton id="close" alignment="CENTER" contentDisplay="CENTER" ripplerFill="#fb8c8c" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="CLOSE" size="30" textAlignment="CENTER" />
</graphic>
</JFXButton>
<JFXButton id="discord" alignment="CENTER" contentDisplay="CENTER" layoutY="380.0" ripplerFill="#646464" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="MESSAGE_TEXT" size="30" smooth="false" textAlignment="CENTER" />
</graphic>
</JFXButton>
<JFXButton id="settings" alignment="CENTER" contentDisplay="CENTER" layoutY="90.0" ripplerFill="#646464" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="SETTINGS" size="30" textAlignment="CENTER" />
</graphic>
</JFXButton>
<JFXButton id="goConsole" alignment="CENTER" contentDisplay="CENTER" layoutY="138.0" ripplerFill="#646464" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="CONSOLE" size="30" textAlignment="CENTER" />
</graphic>
</JFXButton>
<JFXButton id="logout" alignment="CENTER" contentDisplay="CENTER" layoutY="332.0" ripplerFill="#646464" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="LOGOUT" size="30" textAlignment="CENTER" />
</graphic>
</JFXButton>
</children> </children>
</Pane> </Pane>
<Pane id="mask" opacity="0.0" prefHeight="425.0" prefWidth="694.0" visible="false" /> <Pane id="mask" opacity="0.0" prefHeight="425.0" prefWidth="694.0" visible="false" />
</children> </children>
<stylesheets> <stylesheets>
<URL value="@styles.css" /> <URL value="@../../styles.css" />
<URL value="@../../servers.css" />
</stylesheets> </stylesheets>
</Pane> </Pane>

View file

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import com.jfoenix.controls.JFXButton?>
<?import com.jfoenix.controls.JFXToggleButton?>
<?import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIconView?>
<?import java.net.URL?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.shape.Line?>
<!-- DrLeonardo Design -->
<Pane fx:id="background" prefHeight="425.0" prefWidth="738.0" xmlns="http://javafx.com/javafx/8.0.201" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Pane id="optionsPane" prefHeight="425.0" prefWidth="693.0" styleClass="optionsPane">
<children>
<JFXToggleButton layoutX="10.0" layoutY="10.0" styleClass="pressetLight" text="Presset 1" />
<JFXToggleButton layoutX="267.0" layoutY="10.0" styleClass="pressetMedium" text="Presset 2" />
<JFXToggleButton layoutX="549.0" layoutY="10.0" prefHeight="58.0" prefWidth="134.0" styleClass="pressetHigh" text="Presset 3" wrapText="true" />
<Line endX="595.0" layoutX="100.0" layoutY="80.0" startX="-100.0" stroke="#5b3636" styleClass="lineHead" />
<ScrollPane id="modlist" layoutY="84.0" prefHeight="341.0" prefWidth="693.0">
<content>
<VBox prefHeight="339.0" prefWidth="678.0">
<children>
</children>
<padding>
<Insets left="10.0" top="8.0" />
</padding>
</VBox>
</content>
</ScrollPane>
</children>
</Pane>
<Pane fx:id="bar" layoutX="692.0" prefHeight="425.0" prefWidth="43.0" styleClass="bar">
<children>
<JFXButton id="hide" alignment="CENTER" contentDisplay="CENTER" layoutY="45.0" ripplerFill="#646464" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="MINUS" size="30" textAlignment="CENTER" />
</graphic>
</JFXButton>
<JFXButton id="close" alignment="CENTER" contentDisplay="CENTER" ripplerFill="#fb8c8c" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="CLOSE" size="30" textAlignment="CENTER" />
</graphic>
</JFXButton>
<JFXButton id="back" alignment="CENTER" contentDisplay="CENTER" layoutY="379.0" ripplerFill="#61b373" text="" textAlignment="CENTER">
<graphic>
<MaterialDesignIconView fill="WHITE" glyphName="CHEVRON_LEFT" size="30" textAlignment="CENTER" />
</graphic>
</JFXButton>
</children>
</Pane>
</children>
<stylesheets>
<URL value="@../../styles.css" />
</stylesheets>
</Pane>

View file

@ -73,24 +73,21 @@ var options = {
}); });
}, },
/* ===================== OVERLAY ===================== */
count: 0, count: 0,
initOverlay: function() {
options.overlay = loadFXML("dialog/overlay/options/options.fxml");
var holder = options.overlay.lookup("#holder");
holder.lookup("#apply").setOnAction(function(event) overlay.hide(0, null));
},
update: function() { update: function() {
var holder = options.overlay.lookup("#modlist").getContent(); var pane = optionsMenu.lookup("#optionsPane");
optionsPane = pane;
var modlist = pane.lookup("#modlist").getContent();
var nodelist = new java.util.ArrayList; var nodelist = new java.util.ArrayList;
holder.getChildren().forEach(function(node,i,arr) { modlist.getChildren().forEach(function(node,i,arr) {
if(node instanceof com.jfoenix.controls.JFXCheckBox) if(node instanceof com.jfoenix.controls.JFXCheckBox)
nodelist.add(node); nodelist.add(node);
}); });
nodelist.forEach(function(node,i,arr) { nodelist.forEach(function(node,i,arr) {
holder.getChildren().remove(node); modlist.getChildren().remove(node);
}); });
var profile = profilesList[serverHolder.old]; var profile = profilesList[serverHolder.old];
var list = profile.getOptional(); var list = profile.getOptional();
@ -108,14 +105,14 @@ var options = {
LogHelper.debug("optionalMod %s permissions deny",modFile.name); LogHelper.debug("optionalMod %s permissions deny",modFile.name);
return; return;
} }
if(modFile.info != null) //Есть ли описание? if(modFile.info != null)
modDescription = modFile.info; modDescription = modFile.info;
if(modFile.subTreeLevel != null && modFile.subTreeLevel > 1)//Это суб-модификация? if(modFile.subTreeLevel != null && modFile.subTreeLevel > 1)
subLevel = modFile.subTreeLevel; subLevel = modFile.subTreeLevel;
var testMod = new com.jfoenix.controls.JFXCheckBox(modName); var testMod = new com.jfoenix.controls.JFXCheckBox(modName);
if(subLevel > 1) if(subLevel > 1)
for(var i = 1; i < subLevel; i++)//Выделение субмодификаций сдвигом. for(var i = 1; i < subLevel; i++)
testMod.setTranslateX(25*i); testMod.setTranslateX(25*i);
testMod.setSelected(modFile.mark); testMod.setSelected(modFile.mark);
@ -134,15 +131,15 @@ var options = {
options.update(); options.update();
}); });
checkBoxList.add(testMod); checkBoxList.add(testMod);
if(modDescription != "") { //Добавляем описание? if(modDescription != "") {
textDescr = new javafx.scene.text.Text(modDescription); textDescr = new javafx.scene.text.Text(modDescription);
if(subLevel > 1) { if(subLevel > 1) {
for(var i = 1; i < subLevel; i++){ for(var i = 1; i < subLevel; i++){
textDescr.setWrappingWidth(640-(25*i)); textDescr.setWrappingWidth(630-(25*i));
textDescr.setTranslateX(25+(25*i)); textDescr.setTranslateX(25+(25*i));
} }
} else { } else {
textDescr.setWrappingWidth(640); textDescr.setWrappingWidth(630);
textDescr.setTranslateX(25); textDescr.setTranslateX(25);
} }
textDescr.setTextAlignment(javafx.scene.text.TextAlignment.JUSTIFY); textDescr.setTextAlignment(javafx.scene.text.TextAlignment.JUSTIFY);
@ -153,7 +150,7 @@ var options = {
sep.getStyleClass().add("separator"); sep.getStyleClass().add("separator");
checkBoxList.add(sep); checkBoxList.add(sep);
}); });
holder.getChildren().clear(); modlist.getChildren().clear();
holder.getChildren().addAll(checkBoxList); modlist.getChildren().addAll(checkBoxList);
} }
}; };

View file

@ -0,0 +1,32 @@
/*-- DrLeonardo Design --*/
/* Server buttons */
.server-button {
-jfx-button-type: FLAT;
-fx-font-weight: bold;
-fx-font-size: 16pt;
-fx-background-color: transparent;
-fx-background-size: cover;
-fx-background-radius: 0;
-fx-alignment: CENTER-LEFT;
-fx-padding: 0 0 0 75;
-fx-font-family: "Segoe UI";
-fx-text-fill: #323232;
-fx-pref-width: 282px;
-fx-pref-height: 75px;
}
.server-button:selected {
-fx-border-width: 0 0 0 2;
-fx-border-style: none none none solid;
-fx-border-color: #323232;
}
/** server-button-<your profile name> **/
.server-button-Example {
-fx-background-image: url('images/servers/example.png');
}
/*-- DrLeonardo Design --*/

View file

@ -3,7 +3,7 @@ Button, CheckBox, ComboBox, RadioButton {
-fx-cursor: hand; -fx-cursor: hand;
} }
/* Background */ /* Backgrounds */
#layout { #layout {
-fx-background-color: transparent; -fx-background-color: transparent;
-fx-background-size: cover; -fx-background-size: cover;
@ -11,11 +11,32 @@ #layout {
-fx-pref-height: 425px; -fx-pref-height: 425px;
-fx-background-image: url('images/background.jpg'); -fx-background-image: url('images/background.jpg');
} }
#background {
-fx-background-color: #fff;
}
/** Labels **/
#background > #settingsTitle {
-fx-font-size: 14pt;
-fx-alignment: baseline-center;
}
#serverLabel{
-fx-text-fill: #323232;
-fx-padding: 0 0 0 14;
-fx-pref-width: 265px;
-fx-pref-height: 25px;
}
#serverStatus{
-fx-text-fill: #323232;
-fx-pref-width: 120px;
-fx-pref-height: 25px;
}
/* Mask */ /* Mask */
#mask { #mask {
-fx-background-color: rgba(0, 0, 0, 0.5); -fx-background-color: rgba(0, 0, 0, 0.5);
-fx-pref-width: 693px; -fx-pref-width: 692px;
-fx-pref-height: 425px; -fx-pref-height: 425px;
} }
@ -33,82 +54,25 @@ .error{
/* bars */ /* bars */
#bar { #bar {
-fx-background-color: #323232; -fx-background-color: #323232;
-fx-pref-width: 45px; -fx-pref-width: 46px;
-fx-pref-height: 425px; -fx-pref-height: 425px;
} }
/** buttons in bar **/ /** buttons in bar **/
#close { #close {
-fx-background-position: center; -fx-background-position: center;
-jfx-button-type: FLAT; -jfx-button-type: FLAT;
-fx-background-repeat: no-repeat;
-fx-background-image: url('images/icons/close.png');
-fx-background-radius: 0; -fx-background-radius: 0;
-fx-background-color: #CE5757; -fx-background-color: #CE5757;
-fx-pref-width: 45px; -fx-pref-width: 46px;
-fx-pref-height: 45px; -fx-pref-height: 45px;
} }
#hide { #hide, #back, #goConsole, #settings, #logout, #discord {
-fx-background-position: center; -fx-background-position: center;
-jfx-button-type: FLAT; -jfx-button-type: FLAT;
-fx-background-repeat: no-repeat;
-fx-background-color: #323232;
-fx-background-radius: 0; -fx-background-radius: 0;
-fx-background-image: url('images/icons/hide.png'); -fx-pref-width: 46px;
-fx-pref-width: 45px;
-fx-pref-height: 45px; -fx-pref-height: 45px;
} }
#back {
-fx-background-position: center;
-jfx-button-type: FLAT;
-fx-background-repeat: no-repeat;
-fx-background-color: #323232;
-fx-background-radius: 0;
-fx-background-image: url('images/icons/back.png');
-fx-pref-width: 45px;
-fx-pref-height: 45px;
}
#goConsole {
-fx-background-position: center;
-jfx-button-type: FLAT;
-fx-background-repeat: no-repeat;
-fx-background-color: #323232;
-fx-background-radius: 0;
-fx-background-image: url('images/icons/console.png');
-fx-pref-width: 45px;
-fx-pref-height: 45px;
}
#settings {
-fx-background-position: center;
-jfx-button-type: FLAT;
-fx-background-repeat: no-repeat;
-fx-background-color: #323232;
-fx-background-radius: 0;
-fx-background-image: url('images/icons/settings.png');
-fx-pref-width: 45px;
-fx-pref-height: 45px;
}
#logout {
-fx-background-position: center;
-fx--button-type: FLAT;
-fx-background-repeat: no-repeat;
-fx-background-color: #323232;
-fx-background-radius: 0;
-fx-background-image: url('images/icons/exit.png');
-fx-pref-width: 45px;
-fx-pref-height: 45px;
}
#discord {
-fx-background-position: center;
-jfx-button-type: FLAT;
-fx-background-repeat: no-repeat;
-fx-background-color: #323232;
-fx-background-radius: 0;
-fx-background-image: url('images/icons/discord.png');
-fx-pref-width: 45px;
-fx-pref-height: 45px;
}
#close:hover, #close:pressed { -fx-background-color: #DB5252; }
#hide:hover, #hide:pressed, #discord:hover, #discord:pressed, #settings:hover, #settings:pressed, #logout:hover, #logout:pressed { -fx-background-color: #3d3d3d; }
/* LoginMenu */ /* LoginMenu */
#authPane { #authPane {
@ -190,7 +154,7 @@ #news {
/* MenuPane */ /* MenuPane */
.serverentrance { .serverentrance {
-fx-background-color: rgba(255, 255, 255, 0.71); -fx-background-color: rgba(255, 255, 255, 0.71);
-fx-pref-width: 387px; -fx-pref-width: 386px;
-fx-pref-height: 425px; -fx-pref-height: 425px;
} }
@ -208,16 +172,41 @@ .clientLaunch{
.clientSettings{ .clientSettings{
-fx-background-position: center; -fx-background-position: center;
-jfx-button-type: FLAT; -jfx-button-type: FLAT;
-fx-background-repeat: no-repeat;
-fx-background-color: #61B373; -fx-background-color: #61B373;
-fx-background-radius: 0; -fx-background-radius: 0;
-fx-pref-width: 85px; -fx-pref-width: 85px;
-fx-pref-height: 51px; -fx-pref-height: 51px;
-fx-background-image: url('images/icons/options.png');
} }
.clientLaunch:hover, .clientLaunch:pressed, .clientSettings:hover, .clientSettings:pressed { -fx-background-color: #74C085; } .clientLaunch:hover, .clientLaunch:pressed { -fx-background-color: #74C085; }
/* Pressets options */
.pressetLight {
-jfx-toggle-color: #61B373;
-jfx-untoggle-color: #FAFAFA;
-jfx-toggle-line-color: rgba(116, 192, 133, 0.79);
-jfx-untoggle-line-color: #999999;
-jfx-size: 10.0;
-jfx-disable-visual-focus: false;
}
.pressetMedium {
-jfx-toggle-color: #61B373;
-jfx-untoggle-color: #FAFAFA;
-jfx-toggle-line-color: rgba(116, 192, 133, 0.79);
-jfx-untoggle-line-color: #999999;
-jfx-size: 10.0;
-jfx-disable-visual-focus: false;
}
.pressetHigh {
-jfx-toggle-color: #61B373;
-jfx-untoggle-color: #FAFAFA;
-jfx-toggle-line-color: rgba(116, 192, 133, 0.79);
-jfx-untoggle-line-color: #999999;
-jfx-size: 10.0;
-jfx-disable-visual-focus: false;
}
/* Scrolls */ /* Scrolls */
.scroll-pane { .scroll-pane {
@ -254,56 +243,33 @@ .scroll-bar {
} }
.scroll-pane>.corner { .scroll-pane>.corner {
-fx-background-color: black; -fx-background-color: rgba(0, 0, 0, 0.19);
} }
/* Server buttons */ /* OptionsPane */
.server-button { #optionsPane > #modlist {
-jfx-button-type: FLAT; -fx-background-color: transparent;
-fx-font-weight: bold;
-fx-font-size: 16pt;
-fx-background-radius: 0;
-fx-alignment: CENTER-LEFT;
-fx-padding: 0 0 0 75;
-fx-font-family: "Segoe UI";
-fx-text-fill: #fff;
-fx-pref-width: 282px;
-fx-pref-height: 75px;
} }
.server-button:selected { #optionsPane > #modlist > .viewport {
-fx-border-width: 0 0 0 5; -fx-background-color: transparent;
-fx-border-style: none none none solid;
-fx-border-color: #323232;
} }
/** Server custom buttons **/ .description-text {
/** server-button-<your profile name> **/ -fx-font-smoothing-type: lcd;
.server-icon-Example { -fx-fill: #8c8c8c;
-fx-background-image: url('images/icons/example.png'); -fx-font-size: 12px;
}
.server-icon-Example2 {
-fx-background-image: url('images/icons/example2.png');
}
.server-button-Example {
-fx-background-image: url('images/servers/example.png');
}
.server-button-Example2 {
-fx-background-image: url('images/servers/example2.png');
} }
/* Labels */ .lineHead {
#serverLabel{ -fx-stroke: #d8d8d8;
-fx-text-fill: #323232; -fx-stroke-width: 10;
-fx-padding: 0 0 0 14;
-fx-pref-width: 265px;
-fx-pref-height: 25px;
} }
#serverStatus{ .separator *.line {
-fx-text-fill: #323232; -fx-border-color: transparent;
-fx-pref-width: 120px; -fx-border-width: 0 0 10 0;
-fx-pref-height: 25px;
} }
#serverlist{ #serverlist{

View file

@ -1,5 +1,5 @@
var app, stage, scene, loginScene, menuScene, consoleScene; var app, stage, scene, loginScene, menuScene, consoleScene, optionsScene;
var rootPane, loginPane, authPane, menuPane, consolePane; var rootPane, loginPane, menuPane, consoleMenu, optionsMenu;
var LauncherApp = Java.extend(JSApplication, { var LauncherApp = Java.extend(JSApplication, {
init: function() { init: function() {
@ -9,7 +9,7 @@ var LauncherApp = Java.extend(JSApplication, {
cliParams.applySettings(); cliParams.applySettings();
}, start: function(primaryStage) { }, start: function(primaryStage) {
stage = primaryStage; stage = primaryStage;
stage.initStyle(javafx.stage.StageStyle.TRANSPARENT); stage.initStyle(javafx.stage.StageStyle.TRANSPARENT);
stage.setResizable(false); stage.setResizable(false);
stage.setTitle(config.title); stage.setTitle(config.title);
@ -18,9 +18,10 @@ var LauncherApp = Java.extend(JSApplication, {
stage.getIcons().add(new javafx.scene.image.Image(iconURL)); stage.getIcons().add(new javafx.scene.image.Image(iconURL));
}); });
loginPane = loadFXML("dialog/login.fxml"); loginPane = loadFXML("dialog/scenes/login/login.fxml");
menuPane = loadFXML("dialog/mainmenu.fxml"); menuPane = loadFXML("dialog/scenes/mainmenu/mainmenu.fxml");
consolePane = loadFXML("dialog/console.fxml"); consoleMenu = loadFXML("dialog/scenes/console/console.fxml");
optionsMenu = loadFXML("dialog/scenes/options/options.fxml");
loginScene = new javafx.scene.Scene(loginPane); loginScene = new javafx.scene.Scene(loginPane);
loginScene.setFill(javafx.scene.paint.Color.TRANSPARENT); loginScene.setFill(javafx.scene.paint.Color.TRANSPARENT);
@ -28,9 +29,12 @@ var LauncherApp = Java.extend(JSApplication, {
menuScene = new javafx.scene.Scene(menuPane); menuScene = new javafx.scene.Scene(menuPane);
menuScene.setFill(javafx.scene.paint.Color.TRANSPARENT); menuScene.setFill(javafx.scene.paint.Color.TRANSPARENT);
consoleScene = new javafx.scene.Scene(consolePane); consoleScene = new javafx.scene.Scene(consoleMenu);
consoleScene.setFill(javafx.scene.paint.Color.TRANSPARENT); consoleScene.setFill(javafx.scene.paint.Color.TRANSPARENT);
optionsScene = new javafx.scene.Scene(optionsMenu);
optionsScene.setFill(javafx.scene.paint.Color.TRANSPARENT);
setCurrentScene(loginScene); setCurrentScene(loginScene);
initLauncher(); initLauncher();