WIP Totem

This commit is contained in:
2026-05-13 18:51:23 +02:00
parent 4fc2c1a458
commit 38bfcacbb5
10 changed files with 67 additions and 11 deletions
@@ -26,6 +26,8 @@ public class ClientController {
/** Network client (either TCP or RMI) */
private IClient client;
public String myUsername;
/**
* Constructs the ClientController.
@@ -56,6 +58,10 @@ public class ClientController {
view.setModel(miniModel);
}
public void setMyUsername (String username) {
this.myUsername=username;
}
/**
* 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 {
private Stage primaryStage;
FXMLLoader loaderLogin;
Scene loginScene;
LoginFXMLController controllerLogin;
FXMLLoader loaderTotem;
Scene totemScene;
TotemFXMLController controllerTotem;
FXMLLoader loaderMain;
Scene mainScene;
MainFXMLController controllerMain;
private ClientController controller;
private MiniModel model;
@@ -30,17 +39,23 @@ public class GUI extends Application implements IView {
@Override
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());
LoginFXMLController controllerLogin = loaderLogin.getController();
controllerLogin = loaderLogin.getController();
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());
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());
controllerMain = loaderMain.getController();
controllerMain.setController(controller);
showLogin();
stage.setTitle("Mesos");
@@ -64,6 +79,7 @@ public class GUI extends Application implements IView {
public void render() {
if(controller.miniModel.currentState.getGameStage()==TOTEM_CHOICE) {
Platform.runLater(() -> {
controllerTotem.render();
primaryStage.setScene(totemScene);
});
} else {
@@ -65,6 +65,7 @@ public class LoginFXMLController {
@FXML
private void onAccediClick() {
String nome = campoNome.getText().trim();
controller.setMyUsername(nome);
String ip = campoIP.getText().trim();
int numPlayers;
try {
@@ -88,7 +89,6 @@ public class LoginFXMLController {
RMIClient client = new RMIClient(controller, ip, 1099, interfaccia);
if (client.connect(nome, numPlayers)) {
controller.setClient(client);
// Da qui il server chiamerà gui.render() → cambio scena
} else {
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 -6
View File
@@ -1,11 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<?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">
<children>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" wrappingWidth="295.0152587890625" />
</children>
<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">
</HBox>