package visualiser.Controllers; import com.interactivemesh.jfx.importer.stl.StlMeshImporter; import javafx.animation.AnimationTimer; import javafx.application.Platform; import javafx.collections.FXCollections; import javafx.collections.ListChangeListener; import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.geometry.Insets; import javafx.scene.AmbientLight; import javafx.scene.Node; import javafx.scene.PointLight; import javafx.scene.control.Alert; import javafx.scene.control.Button; import javafx.scene.control.ButtonType; import javafx.scene.control.Label; import javafx.scene.effect.Light; import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.GridPane; import javafx.scene.paint.Color; import javafx.scene.paint.PhongMaterial; import javafx.scene.shape.MeshView; import javafx.scene.shape.Shape3D; import mock.app.Event; import network.Messages.Enums.RaceStatusEnum; import network.Messages.Enums.RequestToJoinEnum; import shared.model.Boat; import visualiser.app.App; import visualiser.gameController.ControllerClient; import visualiser.layout.*; import visualiser.model.VisualiserBoat; import visualiser.model.VisualiserRaceEvent; import visualiser.model.VisualiserRaceState; import visualiser.network.HttpMatchBrowserHost; import java.io.IOException; import java.net.MalformedURLException; import java.net.Socket; import java.net.URL; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; /** * Controller for Hosting a game. */ public class InGameLobbyController extends Controller { @FXML private ImageView imageView; @FXML GridPane playerContainer; @FXML private Label playerLabel; @FXML private Label playerLabel2; @FXML private Label playerLabel3; @FXML private Label playerLabel4; @FXML private Label playerLabel5; @FXML private Label playerLabel6; @FXML private Button startButton; @FXML private Button quitButton; private Event game; private View3D playerBoat; private VisualiserRaceEvent visualiserRaceEvent; private boolean isHost; private ControllerClient controllerClient; private ArrayList