Improve mock

This commit is contained in:
Felix
2024-11-17 13:03:54 +01:00
parent cbeb296a44
commit ada90e787d
7 changed files with 86 additions and 79 deletions

View File

@@ -110,6 +110,8 @@ public void playState(MdgaState state) {
playGame = false;
asset = MusicAsset.CEREMONY;
break;
case NONE:
throw new RuntimeException("no music for state NONE");
}
assert (null != asset) : "music sceduling went wrong";

View File

@@ -14,7 +14,7 @@
import java.util.*;
public class BoardView {
public class BoardHandler {
private static final float GRID_SIZE = 1.72f;
private static final float GRID_ELEVATION = 0.0f;
private static final String MAP_NAME = "map.mdga";
@@ -29,14 +29,16 @@ public class BoardView {
private Map<Color, List<AssetOnMap>> playerMap;
public BoardView(MdgaApp app) {
public BoardHandler(MdgaApp app) {
assert (app != null) : "app is null";
this.app = app;
this.pieces = new HashMap<>();
this.playerMap = new HashMap<>();
}
public void init() {
initMap();
initCamera();
}

View File

@@ -87,7 +87,7 @@ private void setupStatistics() {
container.addChild(new Label("Spieler 3: Punkte 60"));
Button exitButton = container.addChild(new Button("Verlassen"));
exitButton.addClickCommands(source -> app.stop());
exitButton.addClickCommands(source -> app.enter(MdgaState.MAIN));
statisticsNode.attachChild(container);
}

View File

@@ -8,27 +8,6 @@
import pp.dialog.SimpleDialog;
import pp.mdga.client.MdgaApp;
public class StartDialog extends SimpleDialog {
StartDialog(MdgaApp app) {
super(app.getDialogView().getDialogManager());
public class StartDialog {
Checkbox serverHost = new Checkbox("sdgfsdg");
serverHost.setChecked(false);
//serverHost.addClickCommands(s -> toggleServerHost());
final Container input = new Container(new SpringGridLayout());
input.addChild(new Label("sdgsgsdg"));
//input.addChild(host, 1);
input.addChild(new Label("sdfdsgsdgsdg"));
//input.addChild(port, 1);
input.addChild(serverHost);
DialogBuilder.simple(app.getDialogView().getDialogManager())
.setTitle("server.dialog")
.setOkButton("button.connect")
.setNoButton("button.cancel")
.setOkClose(false)
.setNoClose(false)
.build(this);
}
}

View File

@@ -1,4 +1,31 @@
package pp.mdga.client;
public class GameView {
import com.jme3.material.Material;
import com.jme3.scene.Geometry;
import com.jme3.scene.Node;
import com.jme3.scene.shape.Quad;
import com.simsilica.lemur.Button;
import com.simsilica.lemur.Container;
import com.simsilica.lemur.Label;
import pp.mdga.client.Board.BoardHandler;
public class GameView extends MdgaView {
private BoardHandler boardHandler;
public GameView(MdgaApp app) {
super(app);
boardHandler = new BoardHandler(app);
}
@Override
public void enter() {
boardHandler.init();
}
@Override
public void leave() {
rootNode.detachAllChildren();
app.getGuiNode().detachChild(rootNode);
}
}

View File

@@ -35,7 +35,7 @@ public void enter() {
hostGameButton.addClickCommands(source -> System.out.println("Hosting game..."));
Button joinGameButton = menuContainer.addChild(new Button("Join Game"));
joinGameButton.addClickCommands(source -> System.out.println("Joining game..."));
joinGameButton.addClickCommands(source -> app.enter(MdgaState.LOBBY));
Button exitButton = menuContainer.addChild(new Button("Exit"));
exitButton.addClickCommands(source -> app.stop());

View File

@@ -2,24 +2,23 @@
import com.jme3.app.SimpleApplication;
import com.jme3.system.NanoTimer;
import com.simsilica.lemur.Button;
import com.simsilica.lemur.GuiGlobals;
import pp.mdga.client.Acoustic.AcousticHandler;
import pp.mdga.client.Acoustic.MdgaSound;
import pp.mdga.client.Animation.AnimationHandler;
import com.jme3.system.AppSettings;
import pp.mdga.client.Board.BoardView;
import pp.mdga.client.Board.BoardHandler;
import pp.mdga.client.Dialog.DialogView;
import pp.mdga.client.Dialog.SoundDialog;
public class MdgaApp extends SimpleApplication {
private AnimationHandler animationHandler;
private AcousticHandler acousticHandler;
private BoardView boardView;
private DialogView dialogView;
NanoTimer test = new NanoTimer();
private MdgaState testState = MdgaState.MAIN;
MdgaView view = null;
private MdgaState state = MdgaState.MAIN;
//TODO
private NanoTimer test = new NanoTimer();
public static void main(String[] args) {
AppSettings settings = new AppSettings(true);
@@ -38,53 +37,59 @@ public static void main(String[] args) {
public void simpleInitApp() {
animationHandler = new AnimationHandler(this);
acousticHandler = new AcousticHandler(this);
boardView = new BoardView(this);
dialogView = new DialogView(this);
//dialogView.mainMenu();
//acousticHandler.playState(MdgaState.GAME);
acousticHandler.playSound(MdgaSound.LOST);
acousticHandler.playSound(MdgaSound.VICTORY);
//SoundDialog settingsDialog = new SoundDialog(this);
//settingsDialog.show();
// Interact with the dialog
//Button closeButton = settingsDialog.getButton("close");
//closeButton.addClickCommands(source -> System.out.println("Closing dialog..."));
GuiGlobals.initialize(this);
MainMenuView mainMenuView = new MainMenuView(this);
LobbyView lobbyView = new LobbyView(this);
//mainMenuView.enter();
//lobbyView.enter();
CeremonyView ceremonyView = new CeremonyView(this);
ceremonyView.enter();
enter(state);
}
@Override
public void simpleUpdate(float tpf) {
acousticHandler.update();
//test.reset();
if (test.getTimeInSeconds() > 10) {
if (testState == MdgaState.MAIN) {
testState = MdgaState.LOBBY;
acousticHandler.playState(MdgaState.MAIN);
}
else if (testState == MdgaState.LOBBY) {
testState = MdgaState.CEREMONY;
acousticHandler.playState(MdgaState.LOBBY);
}
else {
testState = MdgaState.MAIN;
acousticHandler.playState(MdgaState.CEREMONY);
}
test.reset();
if(test.getTimeInSeconds() < 10) {
return;
}
switch (state) {
case LOBBY:
enter(MdgaState.GAME);
break;
case GAME:
enter(MdgaState.CEREMONY);
break;
}
}
public void enter(MdgaState state) {
if(null != view) {
view.leave();
}
this.state = state;
switch (state) {
case MAIN:
view = new MainMenuView(this);
break;
case LOBBY:
view = new LobbyView(this);
test.reset();
break;
case GAME:
view = new GameView(this);
test.reset();
break;
case CEREMONY:
view = new CeremonyView(this);
break;
case NONE:
throw new RuntimeException("cant enter state NONE");
}
acousticHandler.playState(state);
view.enter();
}
public AnimationHandler getAnimationHandler() {
@@ -94,12 +99,4 @@ public AnimationHandler getAnimationHandler() {
public AcousticHandler getAcousticHandler() {
return acousticHandler;
}
public BoardView getBoardView() {
return boardView;
}
public DialogView getDialogView() {
return dialogView;
}
}