WIP Totem
@@ -26,6 +26,8 @@ public class ClientController {
|
|||||||
/** Network client (either TCP or RMI) */
|
/** Network client (either TCP or RMI) */
|
||||||
private IClient client;
|
private IClient client;
|
||||||
|
|
||||||
|
public String myUsername;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs the ClientController.
|
* Constructs the ClientController.
|
||||||
@@ -56,6 +58,10 @@ public class ClientController {
|
|||||||
view.setModel(miniModel);
|
view.setModel(miniModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setMyUsername (String username) {
|
||||||
|
this.myUsername=username;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Displays an error message in the view.
|
* Displays an error message in the view.
|
||||||
|
|||||||
@@ -17,9 +17,18 @@ import static it.polimi.ingsw.gc14.Model.GamePackage.GameStages.TOTEM_CHOICE;
|
|||||||
|
|
||||||
public class GUI extends Application implements IView {
|
public class GUI extends Application implements IView {
|
||||||
private Stage primaryStage;
|
private Stage primaryStage;
|
||||||
|
|
||||||
|
FXMLLoader loaderLogin;
|
||||||
Scene loginScene;
|
Scene loginScene;
|
||||||
|
LoginFXMLController controllerLogin;
|
||||||
|
|
||||||
|
FXMLLoader loaderTotem;
|
||||||
Scene totemScene;
|
Scene totemScene;
|
||||||
|
TotemFXMLController controllerTotem;
|
||||||
|
|
||||||
|
FXMLLoader loaderMain;
|
||||||
Scene mainScene;
|
Scene mainScene;
|
||||||
|
MainFXMLController controllerMain;
|
||||||
|
|
||||||
private ClientController controller;
|
private ClientController controller;
|
||||||
private MiniModel model;
|
private MiniModel model;
|
||||||
@@ -30,17 +39,23 @@ public class GUI extends Application implements IView {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start(Stage stage) throws Exception {
|
public void start(Stage stage) throws Exception {
|
||||||
FXMLLoader loaderLogin = new FXMLLoader(getClass().getResource("/GUIScene/login.fxml"));
|
loaderLogin = new FXMLLoader(getClass().getResource("/GUIScene/login.fxml"));
|
||||||
loginScene = new Scene(loaderLogin.load());
|
loginScene = new Scene(loaderLogin.load());
|
||||||
LoginFXMLController controllerLogin = loaderLogin.getController();
|
controllerLogin = loaderLogin.getController();
|
||||||
controllerLogin.setController(controller);
|
controllerLogin.setController(controller);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
FXMLLoader loaderTotem = new FXMLLoader(getClass().getResource("/GUIScene/totem.fxml"));
|
loaderTotem = new FXMLLoader(getClass().getResource("/GUIScene/totem.fxml"));
|
||||||
totemScene = new Scene(loaderTotem.load());
|
totemScene = new Scene(loaderTotem.load());
|
||||||
FXMLLoader loaderMain = new FXMLLoader(getClass().getResource("/GUIScene/main.fxml"));
|
controllerTotem = loaderTotem.getController();
|
||||||
|
controllerTotem.setController(controller);
|
||||||
|
|
||||||
|
|
||||||
|
loaderMain = new FXMLLoader(getClass().getResource("/GUIScene/main.fxml"));
|
||||||
mainScene = new Scene(loaderMain.load());
|
mainScene = new Scene(loaderMain.load());
|
||||||
|
controllerMain = loaderMain.getController();
|
||||||
|
controllerMain.setController(controller);
|
||||||
|
|
||||||
showLogin();
|
showLogin();
|
||||||
stage.setTitle("Mesos");
|
stage.setTitle("Mesos");
|
||||||
@@ -64,6 +79,7 @@ public class GUI extends Application implements IView {
|
|||||||
public void render() {
|
public void render() {
|
||||||
if(controller.miniModel.currentState.getGameStage()==TOTEM_CHOICE) {
|
if(controller.miniModel.currentState.getGameStage()==TOTEM_CHOICE) {
|
||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
|
controllerTotem.render();
|
||||||
primaryStage.setScene(totemScene);
|
primaryStage.setScene(totemScene);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ public class LoginFXMLController {
|
|||||||
@FXML
|
@FXML
|
||||||
private void onAccediClick() {
|
private void onAccediClick() {
|
||||||
String nome = campoNome.getText().trim();
|
String nome = campoNome.getText().trim();
|
||||||
|
controller.setMyUsername(nome);
|
||||||
String ip = campoIP.getText().trim();
|
String ip = campoIP.getText().trim();
|
||||||
int numPlayers;
|
int numPlayers;
|
||||||
try {
|
try {
|
||||||
@@ -88,7 +89,6 @@ public class LoginFXMLController {
|
|||||||
RMIClient client = new RMIClient(controller, ip, 1099, interfaccia);
|
RMIClient client = new RMIClient(controller, ip, 1099, interfaccia);
|
||||||
if (client.connect(nome, numPlayers)) {
|
if (client.connect(nome, numPlayers)) {
|
||||||
controller.setClient(client);
|
controller.setClient(client);
|
||||||
// Da qui il server chiamerà gui.render() → cambio scena
|
|
||||||
} else {
|
} else {
|
||||||
Platform.runLater(() -> labelErrore.setText("Connessione RMI fallita."));
|
Platform.runLater(() -> labelErrore.setText("Connessione RMI fallita."));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
package it.polimi.ingsw.gc14.View.GUI;
|
||||||
|
|
||||||
|
import it.polimi.ingsw.gc14.Controller.ClientController;
|
||||||
|
import it.polimi.ingsw.gc14.Controller.GameController;
|
||||||
|
import it.polimi.ingsw.gc14.Model.Totems;
|
||||||
|
import javafx.fxml.FXML;
|
||||||
|
import javafx.scene.image.Image;
|
||||||
|
import javafx.scene.image.ImageView;
|
||||||
|
import javafx.scene.layout.HBox;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
public class TotemFXMLController {
|
||||||
|
@FXML private HBox mainHBox;
|
||||||
|
|
||||||
|
private ClientController controller;
|
||||||
|
|
||||||
|
public void setController(ClientController controller) {
|
||||||
|
this.controller=controller;
|
||||||
|
}
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
public void initialize() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void render() {
|
||||||
|
for (Totems totem : controller.miniModel.availableTotems) {
|
||||||
|
ImageView img = new ImageView(new Image(getClass().getResourceAsStream("/GUIImages/Totems/totem_"+ String.valueOf(totem).toLowerCase(Locale.ROOT) +".png")));
|
||||||
|
img.setFitHeight(240);
|
||||||
|
img.setPreserveRatio(true);
|
||||||
|
img.setOnMouseClicked(e -> controller.totemChoice(controller.myUsername));
|
||||||
|
mainHBox.getChildren().add(img);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 9.9 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
@@ -1,11 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<?import javafx.scene.layout.HBox?>
|
<?import javafx.scene.layout.HBox?>
|
||||||
<?import javafx.scene.text.Text?>
|
|
||||||
|
|
||||||
|
|
||||||
<HBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/26" xmlns:fx="http://javafx.com/fxml/1">
|
<HBox fx:id="mainHBox" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/26" xmlns:fx="http://javafx.com/fxml/1" fx:controller="it.polimi.ingsw.gc14.View.GUI.TotemFXMLController">
|
||||||
<children>
|
|
||||||
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" wrappingWidth="295.0152587890625" />
|
|
||||||
</children>
|
|
||||||
</HBox>
|
</HBox>
|
||||||
|
|||||||