basic multiplayer
Some checks failed
Linux arm64 / Build (push) Failing after 5m3s

This commit is contained in:
2025-01-26 18:53:45 +01:00
parent 6658b0e884
commit df07f11a9c
11 changed files with 149 additions and 20 deletions

View File

@@ -14,8 +14,14 @@ public abstract class BaseView {
public void cleanResources() {}
public void closeMenu(int count) {
for (int i = 0; i < count; i++) {
this.stateMachine.popState();
}
}
public void closeMenu() {
this.stateMachine.popState();
closeMenu(1);
}
protected void renderReturnButton() {

View File

@@ -0,0 +1,38 @@
package gui.menu;
import gui.SudokuRenderer;
import imgui.ImGui;
import network.client.Client;
import network.server.Server;
import sudoku.MultiDoku;
public class MultiPlayerDokuView extends BaseView{
private final Client client;
private final Server server;
private final SudokuRenderer sudokuRenderer;
public MultiPlayerDokuView(StateMachine stateMachine, Client client, Server server) {
super(stateMachine);
this.client = client;
this.server = server;
this.sudokuRenderer = new SudokuRenderer(this.client.getGame().getDoku());
this.client.onDisconnect.connect(this::onDisconnect);
}
public void onDisconnect() {
if (server == null) {
closeMenu();
}
}
@Override
public void render() {
this.sudokuRenderer.render();
if (ImGui.button("Quitter")) {
this.client.stop();
this.closeMenu(3);
}
}
}

View File

@@ -4,6 +4,8 @@ import game.Player;
import imgui.ImGui;
import network.client.Client;
import network.server.Server;
import sudoku.MultiDoku;
import sudoku.SudokuFactory;
public class MultiPlayerView extends BaseView {
@@ -15,6 +17,7 @@ public class MultiPlayerView extends BaseView {
this.client = client;
this.server = server;
this.client.onDisconnect.connect(this::onDisconnect);
this.client.onGameStarted.connect(() -> this.stateMachine.pushState(new MultiPlayerDokuView(stateMachine, client, server)));
}
@Override
@@ -32,7 +35,9 @@ public class MultiPlayerView extends BaseView {
ImGui.text("En attente de l'administrateur du serveur ...");
} else {
if (ImGui.button("Démarrer")) {
// start the game
// temp
MultiDoku doku = SudokuFactory.createBasicEmptySquareSudoku(5);
this.server.startGame(doku);
}
}
}